@ever-gauzy/plugin-integration-plane-api 0.1.0 → 0.1.1

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 (181) hide show
  1. package/README.md +1 -1
  2. package/dist/config/serializers/analytics/analytics.serializer.d.ts +4 -0
  3. package/dist/config/serializers/analytics/analytics.serializer.js +1 -0
  4. package/dist/config/serializers/analytics/analytics.serializer.js.map +1 -1
  5. package/dist/config/serializers/cycles/cycle.serializer.d.ts +9 -0
  6. package/dist/config/serializers/cycles/cycle.serializer.js +32 -2
  7. package/dist/config/serializers/cycles/cycle.serializer.js.map +1 -1
  8. package/dist/config/serializers/index.d.ts +1 -0
  9. package/dist/config/serializers/index.js +1 -0
  10. package/dist/config/serializers/index.js.map +1 -1
  11. package/dist/config/serializers/issue-link/issue-link.serializer.js +6 -3
  12. package/dist/config/serializers/issue-link/issue-link.serializer.js.map +1 -1
  13. package/dist/config/serializers/modules/module.serializer.js +6 -10
  14. package/dist/config/serializers/modules/module.serializer.js.map +1 -1
  15. package/dist/config/serializers/notification/notification.serializer.js +3 -2
  16. package/dist/config/serializers/notification/notification.serializer.js.map +1 -1
  17. package/dist/config/serializers/recent-visits/recent-visits.serializer.js +2 -2
  18. package/dist/config/serializers/recent-visits/recent-visits.serializer.js.map +1 -1
  19. package/dist/config/serializers/stickies/index.d.ts +1 -0
  20. package/dist/config/serializers/stickies/index.js +18 -0
  21. package/dist/config/serializers/stickies/index.js.map +1 -0
  22. package/dist/config/serializers/stickies/sticky.serializer.d.ts +14 -0
  23. package/dist/config/serializers/stickies/sticky.serializer.js +100 -0
  24. package/dist/config/serializers/stickies/sticky.serializer.js.map +1 -0
  25. package/dist/config/serializers/tasks/tasks.serializer.d.ts +19 -16
  26. package/dist/config/serializers/tasks/tasks.serializer.js +147 -132
  27. package/dist/config/serializers/tasks/tasks.serializer.js.map +1 -1
  28. package/dist/config/serializers/user/actor-details.helper.d.ts +1 -1
  29. package/dist/config/serializers/user/actor-details.helper.js.map +1 -1
  30. package/dist/config/serializers/user/user.serializer.d.ts +37 -0
  31. package/dist/config/serializers/user/user.serializer.js +48 -0
  32. package/dist/config/serializers/user/user.serializer.js.map +1 -1
  33. package/dist/main.js +12 -0
  34. package/dist/main.js.map +1 -1
  35. package/dist/modules/activity/activity.service.js +1 -1
  36. package/dist/modules/activity/activity.service.js.map +1 -1
  37. package/dist/modules/advance-analytics/advance-analytics.controller.d.ts +10 -14
  38. package/dist/modules/advance-analytics/advance-analytics.controller.js +32 -71
  39. package/dist/modules/advance-analytics/advance-analytics.controller.js.map +1 -1
  40. package/dist/modules/advance-analytics/advance-analytics.module.d.ts +3 -11
  41. package/dist/modules/advance-analytics/advance-analytics.module.js +4 -30
  42. package/dist/modules/advance-analytics/advance-analytics.module.js.map +1 -1
  43. package/dist/modules/advance-analytics/advance-analytics.service.d.ts +59 -4
  44. package/dist/modules/advance-analytics/advance-analytics.service.js +274 -8
  45. package/dist/modules/advance-analytics/advance-analytics.service.js.map +1 -1
  46. package/dist/modules/advance-analytics/index.d.ts +2 -0
  47. package/dist/modules/advance-analytics/index.js +2 -0
  48. package/dist/modules/advance-analytics/index.js.map +1 -1
  49. package/dist/modules/advance-analytics/workspace-advance-analytics.controller.d.ts +37 -0
  50. package/dist/modules/advance-analytics/workspace-advance-analytics.controller.js +98 -0
  51. package/dist/modules/advance-analytics/workspace-advance-analytics.controller.js.map +1 -0
  52. package/dist/modules/advance-analytics/workspace-advance-analytics.module.d.ts +7 -0
  53. package/dist/modules/advance-analytics/workspace-advance-analytics.module.js +30 -0
  54. package/dist/modules/advance-analytics/workspace-advance-analytics.module.js.map +1 -0
  55. package/dist/modules/api-fetch/api-fetch.service.d.ts +26 -4
  56. package/dist/modules/api-fetch/api-fetch.service.js +70 -7
  57. package/dist/modules/api-fetch/api-fetch.service.js.map +1 -1
  58. package/dist/modules/auth/auth.guard.js +9 -4
  59. package/dist/modules/auth/auth.guard.js.map +1 -1
  60. package/dist/modules/auth/auth.service.js +17 -12
  61. package/dist/modules/auth/auth.service.js.map +1 -1
  62. package/dist/modules/comments/comments.service.js +7 -7
  63. package/dist/modules/comments/comments.service.js.map +1 -1
  64. package/dist/modules/cycles/archived-cycles.controller.d.ts +19 -0
  65. package/dist/modules/cycles/archived-cycles.controller.js +65 -0
  66. package/dist/modules/cycles/archived-cycles.controller.js.map +1 -0
  67. package/dist/modules/cycles/archived-cycles.module.d.ts +2 -0
  68. package/dist/modules/cycles/archived-cycles.module.js +22 -0
  69. package/dist/modules/cycles/archived-cycles.module.js.map +1 -0
  70. package/dist/modules/cycles/cycles.controller.d.ts +29 -1
  71. package/dist/modules/cycles/cycles.controller.js +66 -0
  72. package/dist/modules/cycles/cycles.controller.js.map +1 -1
  73. package/dist/modules/cycles/cycles.service.d.ts +56 -0
  74. package/dist/modules/cycles/cycles.service.js +209 -11
  75. package/dist/modules/cycles/cycles.service.js.map +1 -1
  76. package/dist/modules/dashboard/dashboard.service.js +3 -4
  77. package/dist/modules/dashboard/dashboard.service.js.map +1 -1
  78. package/dist/modules/dashboard/widget.service.js +2 -2
  79. package/dist/modules/dashboard/widget.service.js.map +1 -1
  80. package/dist/modules/employee-properties/employee-properties.service.js +3 -3
  81. package/dist/modules/employee-properties/employee-properties.service.js.map +1 -1
  82. package/dist/modules/invitation/invitation.service.js +23 -13
  83. package/dist/modules/invitation/invitation.service.js.map +1 -1
  84. package/dist/modules/issue-links/issue-links.service.js +5 -5
  85. package/dist/modules/issue-links/issue-links.service.js.map +1 -1
  86. package/dist/modules/issue-relations/issue-relations.service.js +3 -3
  87. package/dist/modules/issue-relations/issue-relations.service.js.map +1 -1
  88. package/dist/modules/issues/draft-issues/draft-issues.service.js +4 -4
  89. package/dist/modules/issues/draft-issues/draft-issues.service.js.map +1 -1
  90. package/dist/modules/issues/intake-issues/intake-issues.service.js +4 -4
  91. package/dist/modules/issues/intake-issues/intake-issues.service.js.map +1 -1
  92. package/dist/modules/issues/issue-labels/issue-labels.service.js +4 -4
  93. package/dist/modules/issues/issue-labels/issue-labels.service.js.map +1 -1
  94. package/dist/modules/issues/issues.service.js +34 -28
  95. package/dist/modules/issues/issues.service.js.map +1 -1
  96. package/dist/modules/mention/mention.service.js +1 -1
  97. package/dist/modules/mention/mention.service.js.map +1 -1
  98. package/dist/modules/notification/notification.service.js +4 -4
  99. package/dist/modules/notification/notification.service.js.map +1 -1
  100. package/dist/modules/pages/pages.controller.d.ts +7 -0
  101. package/dist/modules/pages/pages.controller.js +8 -7
  102. package/dist/modules/pages/pages.controller.js.map +1 -1
  103. package/dist/modules/pages/pages.service.d.ts +4 -4
  104. package/dist/modules/pages/pages.service.js +42 -68
  105. package/dist/modules/pages/pages.service.js.map +1 -1
  106. package/dist/modules/project/project-deploy-boards/project-deploy-boards.service.js +3 -3
  107. package/dist/modules/project/project-deploy-boards/project-deploy-boards.service.js.map +1 -1
  108. package/dist/modules/project/project-identifiers/project-identifiers.service.js +1 -1
  109. package/dist/modules/project/project-identifiers/project-identifiers.service.js.map +1 -1
  110. package/dist/modules/project/project.module.js +11 -9
  111. package/dist/modules/project/project.module.js.map +1 -1
  112. package/dist/modules/project/project.service.js +10 -10
  113. package/dist/modules/project/project.service.js.map +1 -1
  114. package/dist/modules/project-module/archived-modules.controller.d.ts +19 -0
  115. package/dist/modules/project-module/archived-modules.controller.js +65 -0
  116. package/dist/modules/project-module/archived-modules.controller.js.map +1 -0
  117. package/dist/modules/project-module/archived-modules.module.d.ts +2 -0
  118. package/dist/modules/project-module/archived-modules.module.js +22 -0
  119. package/dist/modules/project-module/archived-modules.module.js.map +1 -0
  120. package/dist/modules/project-module/project-module.controller.d.ts +62 -2
  121. package/dist/modules/project-module/project-module.controller.js +161 -2
  122. package/dist/modules/project-module/project-module.controller.js.map +1 -1
  123. package/dist/modules/project-module/project-module.module.js +2 -1
  124. package/dist/modules/project-module/project-module.module.js.map +1 -1
  125. package/dist/modules/project-module/project-module.service.d.ts +33 -0
  126. package/dist/modules/project-module/project-module.service.js +115 -7
  127. package/dist/modules/project-module/project-module.service.js.map +1 -1
  128. package/dist/modules/reactions/reactions.service.js +3 -3
  129. package/dist/modules/reactions/reactions.service.js.map +1 -1
  130. package/dist/modules/recent-visits/recent-visits.service.js +1 -1
  131. package/dist/modules/recent-visits/recent-visits.service.js.map +1 -1
  132. package/dist/modules/states/states.service.js +3 -5
  133. package/dist/modules/states/states.service.js.map +1 -1
  134. package/dist/modules/stickies/stickies.controller.d.ts +41 -0
  135. package/dist/modules/stickies/stickies.controller.js +116 -0
  136. package/dist/modules/stickies/stickies.controller.js.map +1 -0
  137. package/dist/modules/stickies/stickies.module.d.ts +2 -0
  138. package/dist/modules/stickies/stickies.module.js +23 -0
  139. package/dist/modules/stickies/stickies.module.js.map +1 -0
  140. package/dist/modules/stickies/stickies.service.d.ts +47 -0
  141. package/dist/modules/stickies/stickies.service.js +162 -0
  142. package/dist/modules/stickies/stickies.service.js.map +1 -0
  143. package/dist/modules/subscription/subscription.service.js +3 -3
  144. package/dist/modules/subscription/subscription.service.js.map +1 -1
  145. package/dist/modules/user/user.service.d.ts +9 -1
  146. package/dist/modules/user/user.service.js +94 -7
  147. package/dist/modules/user/user.service.js.map +1 -1
  148. package/dist/modules/user-favorites/user-favorites.service.js +3 -3
  149. package/dist/modules/user-favorites/user-favorites.service.js.map +1 -1
  150. package/dist/modules/views/view.service.js +4 -4
  151. package/dist/modules/views/view.service.js.map +1 -1
  152. package/dist/modules/work-items/work-items.controller.d.ts +11 -1
  153. package/dist/modules/work-items/work-items.controller.js +14 -3
  154. package/dist/modules/work-items/work-items.controller.js.map +1 -1
  155. package/dist/modules/work-items/work-items.module.js +3 -0
  156. package/dist/modules/work-items/work-items.module.js.map +1 -1
  157. package/dist/modules/work-items/work-items.service.d.ts +20 -4
  158. package/dist/modules/work-items/work-items.service.js +76 -9
  159. package/dist/modules/work-items/work-items.service.js.map +1 -1
  160. package/dist/modules/workspace/workspace-context.service.d.ts +18 -0
  161. package/dist/modules/workspace/workspace-context.service.js +29 -3
  162. package/dist/modules/workspace/workspace-context.service.js.map +1 -1
  163. package/dist/modules/workspace/workspace.controller.d.ts +9 -0
  164. package/dist/modules/workspace/workspace.controller.js +26 -0
  165. package/dist/modules/workspace/workspace.controller.js.map +1 -1
  166. package/dist/modules/workspace/workspace.middleware.d.ts +14 -1
  167. package/dist/modules/workspace/workspace.middleware.js +57 -4
  168. package/dist/modules/workspace/workspace.middleware.js.map +1 -1
  169. package/dist/modules/workspace/workspace.module.js +20 -2
  170. package/dist/modules/workspace/workspace.module.js.map +1 -1
  171. package/dist/modules/workspace/workspace.service.d.ts +13 -2
  172. package/dist/modules/workspace/workspace.service.js +106 -27
  173. package/dist/modules/workspace/workspace.service.js.map +1 -1
  174. package/dist/mount.js +8 -3
  175. package/dist/mount.js.map +1 -1
  176. package/dist/plane-proxy.module.js +5 -3
  177. package/dist/plane-proxy.module.js.map +1 -1
  178. package/dist/request-context.d.ts +53 -0
  179. package/dist/request-context.js +67 -0
  180. package/dist/request-context.js.map +1 -0
  181. package/package.json +109 -109
@@ -30,8 +30,32 @@ let AdvanceAnalyticsService = class AdvanceAnalyticsService extends api_fetch_se
30
30
  this._serverFetchService = _serverFetchService;
31
31
  this.path = '/tasks';
32
32
  }
33
+ /*
34
+ |--------------------------------------------------------------------------
35
+ | PRIVATE: Task fetching helpers
36
+ |--------------------------------------------------------------------------
37
+ */
33
38
  /**
34
- * Get tasks from external API with optional filters
39
+ * Get ALL tasks from external API (workspace-level, no project filter)
40
+ */
41
+ async getAllTasks() {
42
+ var _a, _b;
43
+ try {
44
+ const query = qs_1.default.stringify((0, config_1.getTaskQuery)(undefined, {}, ['members.user', 'tags', 'taskStatus', 'organizationSprint', 'modules'], undefined, false));
45
+ const tasks = (await this.apiFetch({
46
+ method: 'GET',
47
+ path: this.path,
48
+ query
49
+ })).data;
50
+ return tasks.items || [];
51
+ }
52
+ catch (error) {
53
+ this.logger.error(`Failed to fetch all tasks: ${((_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) || error.message}`, error.stack);
54
+ this.handleApiError(error);
55
+ }
56
+ }
57
+ /**
58
+ * Get tasks from external API with optional project/cycle/module filters
35
59
  */
36
60
  async getTasks(projectId, cycleId, moduleId) {
37
61
  var _a, _b;
@@ -55,12 +79,17 @@ let AdvanceAnalyticsService = class AdvanceAnalyticsService extends api_fetch_se
55
79
  }
56
80
  catch (error) {
57
81
  this.logger.error(`Failed to fetch tasks: ${((_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) || error.message}`, error.stack);
58
- throw new common_1.BadRequestException(error);
82
+ this.handleApiError(error);
59
83
  }
60
84
  }
85
+ /*
86
+ |--------------------------------------------------------------------------
87
+ | PROJECT-LEVEL analytics (with projectId)
88
+ |--------------------------------------------------------------------------
89
+ */
61
90
  /**
62
91
  * Get advance analytics stats (total/started/backlog/unstarted/completed counts)
63
- * Endpoint: GET /:projectId/advance-analytics
92
+ * Endpoint: GET /projects/:projectId/advance-analytics
64
93
  */
65
94
  async getAdvanceAnalytics(projectId, query) {
66
95
  var _a, _b;
@@ -70,12 +99,12 @@ let AdvanceAnalyticsService = class AdvanceAnalyticsService extends api_fetch_se
70
99
  }
71
100
  catch (error) {
72
101
  this.logger.error(`Failed to get advance analytics: ${((_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) || error.message}`, error.stack);
73
- throw new common_1.BadRequestException(error);
102
+ this.handleApiError(error);
74
103
  }
75
104
  }
76
105
  /**
77
106
  * Get advance analytics stats per assignee (for table view)
78
- * Endpoint: GET /:projectId/advance-analytics-stats/
107
+ * Endpoint: GET /projects/:projectId/advance-analytics-stats/
79
108
  */
80
109
  async getAdvanceAnalyticsStats(projectId, query) {
81
110
  var _a, _b;
@@ -88,12 +117,12 @@ let AdvanceAnalyticsService = class AdvanceAnalyticsService extends api_fetch_se
88
117
  }
89
118
  catch (error) {
90
119
  this.logger.error(`Failed to get advance analytics stats: ${((_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) || error.message}`, error.stack);
91
- throw new common_1.BadRequestException(error);
120
+ this.handleApiError(error);
92
121
  }
93
122
  }
94
123
  /**
95
124
  * Get advance analytics charts data
96
- * Endpoint: GET /:projectId/advance-analytics-charts/
125
+ * Endpoint: GET /projects/:projectId/advance-analytics-charts/
97
126
  */
98
127
  async getAdvanceAnalyticsCharts(projectId, query) {
99
128
  var _a, _b;
@@ -129,9 +158,246 @@ let AdvanceAnalyticsService = class AdvanceAnalyticsService extends api_fetch_se
129
158
  }
130
159
  catch (error) {
131
160
  this.logger.error(`Failed to get advance analytics charts: ${((_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) || error.message}`, error.stack);
132
- throw new common_1.BadRequestException(error);
161
+ this.handleApiError(error);
162
+ }
163
+ }
164
+ /*
165
+ |--------------------------------------------------------------------------
166
+ | WORKSPACE-LEVEL analytics (no projectId)
167
+ |--------------------------------------------------------------------------
168
+ */
169
+ /**
170
+ * Get workspace-level advance analytics.
171
+ *
172
+ * Matches Plane's AdvanceAnalyticsEndpoint.get() which dispatches by tab:
173
+ *
174
+ * - tab=overview → { total_users, total_admins, total_members, total_guests,
175
+ * total_projects, total_work_items, total_cycles, total_intake }
176
+ * Each field is { count: number }.
177
+ *
178
+ * - tab=work-items → { total_work_items, started_work_items, backlog_work_items,
179
+ * un_started_work_items, completed_work_items }
180
+ * Each field is { count: number }.
181
+ */
182
+ async getWorkspaceAdvanceAnalytics(tab, query) {
183
+ var _a, _b;
184
+ try {
185
+ const resolvedTab = tab || 'overview';
186
+ if (resolvedTab === 'overview') {
187
+ return this.getOverviewData();
188
+ }
189
+ else if (resolvedTab === 'work-items') {
190
+ const tasks = await this.getAllTasks();
191
+ return (0, analytics_1.transformToAdvanceAnalytics)(tasks);
192
+ }
193
+ throw new common_1.BadRequestException('Invalid tab');
194
+ }
195
+ catch (error) {
196
+ this.logger.error(`Failed to get workspace advance analytics: ${((_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) || error.message}`, error.stack);
197
+ this.handleApiError(error);
198
+ }
199
+ }
200
+ /**
201
+ * Get workspace-level advance analytics charts data.
202
+ *
203
+ * Matches Plane's AdvanceAnalyticsChartEndpoint.get() which dispatches by type:
204
+ *
205
+ * - type=projects → Returns a flat array [{key, name, count}]
206
+ * (work_items, cycles, modules, intake, members, pages, views)
207
+ *
208
+ * - type=work-items → Returns {data, schema} with created vs completed over time
209
+ *
210
+ * - type=custom-work-items → Returns {data, schema} with x_axis/group_by charting
211
+ */
212
+ async getWorkspaceAdvanceAnalyticsCharts(query) {
213
+ var _a, _b;
214
+ try {
215
+ if (query.type === plugin_integration_plane_models_1.AnalyticsType.PROJECTS || !query.type) {
216
+ return this.getProjectChart();
217
+ }
218
+ const tasks = await this.getAllTasks();
219
+ if (query.type === plugin_integration_plane_models_1.AnalyticsType.CUSTOM_WORK_ITEMS) {
220
+ const xAxis = query.x_axis || plugin_integration_plane_models_1.ChartXAxisProperty.PRIORITY;
221
+ const groupBy = query.group_by;
222
+ return (0, analytics_1.buildChartData)(tasks, xAxis, groupBy);
223
+ }
224
+ else if (query.type === plugin_integration_plane_models_1.AnalyticsType.WORK_ITEMS) {
225
+ // Work item completion chart (created vs completed over time)
226
+ const startDate = new Date();
227
+ startDate.setMonth(startDate.getMonth() - 6);
228
+ startDate.setDate(1);
229
+ const endDate = new Date();
230
+ return (0, analytics_1.buildWorkItemCompletionChart)(tasks, startDate, endDate, 'month');
231
+ }
232
+ throw new common_1.BadRequestException('Invalid type');
233
+ }
234
+ catch (error) {
235
+ this.logger.error(`Failed to get workspace advance analytics charts: ${((_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) || error.message}`, error.stack);
236
+ this.handleApiError(error);
133
237
  }
134
238
  }
239
+ /**
240
+ * Get workspace-level advance analytics stats (table view).
241
+ *
242
+ * Matches Plane's AdvanceAnalyticsStatsEndpoint.get_work_items_stats():
243
+ * returns per-project work item counts grouped by state group.
244
+ * [{project_id, project__name, cancelled_work_items, completed_work_items,
245
+ * backlog_work_items, un_started_work_items, started_work_items}]
246
+ */
247
+ async getWorkspaceAdvanceAnalyticsStats(query) {
248
+ var _a, _b;
249
+ try {
250
+ if (query.type !== plugin_integration_plane_models_1.AnalyticsType.WORK_ITEMS) {
251
+ throw new common_1.BadRequestException('Invalid type. Expected: work-items');
252
+ }
253
+ const tasks = await this.getAllTasks();
254
+ // Group tasks by projectId and compute per-project counts
255
+ const projectMap = new Map();
256
+ for (const task of tasks) {
257
+ const projectId = task.projectId || 'none';
258
+ if (!projectMap.has(projectId)) {
259
+ projectMap.set(projectId, { name: projectId, tasks: [] });
260
+ }
261
+ projectMap.get(projectId).tasks.push(task);
262
+ }
263
+ // Fetch project names
264
+ const projects = await this._projectService.getExternalProjects([]);
265
+ const projectNameMap = new Map();
266
+ for (const project of projects) {
267
+ if (project.id) {
268
+ projectNameMap.set(project.id, project.name || project.id);
269
+ }
270
+ }
271
+ const result = [];
272
+ projectMap.forEach((data, projectId) => {
273
+ const counts = {
274
+ cancelled: 0,
275
+ completed: 0,
276
+ backlog: 0,
277
+ unstarted: 0,
278
+ started: 0
279
+ };
280
+ for (const task of data.tasks) {
281
+ const group = (0, analytics_1.getStateGroup)(task);
282
+ switch (group) {
283
+ case 'completed':
284
+ counts.completed++;
285
+ break;
286
+ case 'started':
287
+ counts.started++;
288
+ break;
289
+ case 'backlog':
290
+ counts.backlog++;
291
+ break;
292
+ case 'cancelled':
293
+ counts.cancelled++;
294
+ break;
295
+ default:
296
+ counts.unstarted++;
297
+ break;
298
+ }
299
+ }
300
+ result.push({
301
+ project_id: projectId,
302
+ project__name: projectNameMap.get(projectId) || projectId,
303
+ cancelled_work_items: counts.cancelled,
304
+ completed_work_items: counts.completed,
305
+ backlog_work_items: counts.backlog,
306
+ un_started_work_items: counts.unstarted,
307
+ started_work_items: counts.started
308
+ });
309
+ });
310
+ return result.sort((a, b) => (a.project__name || '').localeCompare(b.project__name || ''));
311
+ }
312
+ catch (error) {
313
+ this.logger.error(`Failed to get workspace advance analytics stats: ${((_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) || error.message}`, error.stack);
314
+ this.handleApiError(error);
315
+ }
316
+ }
317
+ /*
318
+ |--------------------------------------------------------------------------
319
+ | PRIVATE: Workspace overview data builders
320
+ |--------------------------------------------------------------------------
321
+ */
322
+ /**
323
+ * Build overview data matching Plane's AdvanceAnalyticsEndpoint.get_overview_data().
324
+ *
325
+ * Returns counts for: total_users, total_admins, total_members, total_guests,
326
+ * total_projects, total_work_items, total_cycles, total_intake.
327
+ * Each field is { count: number }.
328
+ */
329
+ async getOverviewData() {
330
+ const [projects, tasks] = await Promise.all([
331
+ this._projectService.getExternalProjects([
332
+ 'members.employee.user.role',
333
+ 'organizationSprints'
334
+ ]),
335
+ this.getAllTasks()
336
+ ]);
337
+ // Collect unique member IDs across all projects
338
+ const memberSet = new Set();
339
+ projects.forEach((p) => {
340
+ var _a;
341
+ (_a = p.members) === null || _a === void 0 ? void 0 : _a.forEach((m) => {
342
+ if (typeof m !== 'string' && m.employeeId) {
343
+ memberSet.add(m.employeeId);
344
+ }
345
+ });
346
+ });
347
+ const totalMembers = memberSet.size;
348
+ // Count total cycles across all projects
349
+ const totalCycles = projects.reduce((sum, p) => { var _a; return sum + (((_a = p.organizationSprints) === null || _a === void 0 ? void 0 : _a.length) || 0); }, 0);
350
+ return {
351
+ total_users: { count: totalMembers },
352
+ total_admins: { count: 0 },
353
+ total_members: { count: totalMembers },
354
+ total_guests: { count: 0 },
355
+ total_projects: { count: projects.length },
356
+ total_work_items: { count: tasks.length },
357
+ total_cycles: { count: totalCycles },
358
+ total_intake: { count: 0 }
359
+ };
360
+ }
361
+ /**
362
+ * Build project chart matching Plane's AdvanceAnalyticsChartEndpoint.project_chart().
363
+ *
364
+ * Returns a flat array (NOT wrapped in {data, schema}) of:
365
+ * [{key, name, count}] for work_items, cycles, modules, intake, members, pages, views.
366
+ */
367
+ async getProjectChart() {
368
+ const projects = await this._projectService.getExternalProjects([
369
+ 'members',
370
+ 'organizationSprints',
371
+ 'modules'
372
+ ]);
373
+ const tasks = await this.getAllTasks();
374
+ // Count unique members across all projects
375
+ const memberSet = new Set();
376
+ projects.forEach((p) => {
377
+ var _a;
378
+ (_a = p.members) === null || _a === void 0 ? void 0 : _a.forEach((m) => {
379
+ if (typeof m !== 'string' && m.employeeId) {
380
+ memberSet.add(m.employeeId);
381
+ }
382
+ });
383
+ });
384
+ const totalCycles = projects.reduce((sum, p) => { var _a; return sum + (((_a = p.organizationSprints) === null || _a === void 0 ? void 0 : _a.length) || 0); }, 0);
385
+ const totalModules = projects.reduce((sum, p) => { var _a; return sum + (((_a = p.modules) === null || _a === void 0 ? void 0 : _a.length) || 0); }, 0);
386
+ const data = {
387
+ work_items: tasks.length,
388
+ cycles: totalCycles,
389
+ modules: totalModules,
390
+ intake: 0,
391
+ members: memberSet.size,
392
+ pages: 0,
393
+ views: 0
394
+ };
395
+ return Object.entries(data).map(([key, value]) => ({
396
+ key,
397
+ name: key.replace(/_/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase()),
398
+ count: value || 0
399
+ }));
400
+ }
135
401
  };
136
402
  exports.AdvanceAnalyticsService = AdvanceAnalyticsService;
137
403
  exports.AdvanceAnalyticsService = AdvanceAnalyticsService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"advance-analytics.service.js","sourceRoot":"","sources":["../../../../../../packages/plugin-plane/src/modules/advance-analytics/advance-analytics.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advance-analytics.service.js","sourceRoot":"","sources":["../../../../../../packages/plugin-plane/src/modules/advance-analytics/advance-analytics.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export * from './advance-analytics.module';
2
+ export * from './workspace-advance-analytics.module';
2
3
  export * from './advance-analytics.service';
3
4
  export * from './advance-analytics.controller';
5
+ export * from './workspace-advance-analytics.controller';
4
6
  export * from './dto';
@@ -15,7 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./advance-analytics.module"), exports);
18
+ __exportStar(require("./workspace-advance-analytics.module"), exports);
18
19
  __exportStar(require("./advance-analytics.service"), exports);
19
20
  __exportStar(require("./advance-analytics.controller"), exports);
21
+ __exportStar(require("./workspace-advance-analytics.controller"), exports);
20
22
  __exportStar(require("./dto"), exports);
21
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugin-plane/src/modules/advance-analytics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,8DAA4C;AAC5C,iEAA+C;AAC/C,wCAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugin-plane/src/modules/advance-analytics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,uEAAqD;AACrD,8DAA4C;AAC5C,iEAA+C;AAC/C,2EAAyD;AACzD,wCAAsB"}
@@ -0,0 +1,37 @@
1
+ import { IWorkItemInsightRow } from '@ever-gauzy/plugin-integration-plane-models';
2
+ import { AdvanceAnalyticsService } from './advance-analytics.service';
3
+ import { AdvanceAnalyticsChartsQueryDto, AdvanceAnalyticsQueryDto, AdvanceAnalyticsStatsQueryDto } from './dto';
4
+ /**
5
+ * Controller for workspace-level advance analytics routes.
6
+ * Mounted under /workspaces/:workspace_name/ via RouterModule in WorkspaceModule.
7
+ */
8
+ export declare class WorkspaceAdvanceAnalyticsController {
9
+ private readonly _advanceAnalyticsService;
10
+ constructor(_advanceAnalyticsService: AdvanceAnalyticsService);
11
+ /**
12
+ * Get workspace-level advance analytics.
13
+ *
14
+ * Matches Plane's AdvanceAnalyticsEndpoint.get() — dispatches by ?tab= param:
15
+ * - tab=overview → { total_users, total_admins, total_members, total_guests,
16
+ * total_projects, total_work_items, total_cycles, total_intake }
17
+ * - tab=work-items → { total_work_items, started_work_items, backlog_work_items,
18
+ * un_started_work_items, completed_work_items }
19
+ */
20
+ getWorkspaceAdvanceAnalytics(tab: string, query: AdvanceAnalyticsQueryDto): Promise<any>;
21
+ /**
22
+ * Get workspace-level advance analytics stats (table view).
23
+ *
24
+ * Matches Plane's AdvanceAnalyticsStatsEndpoint.get() — returns per-project
25
+ * work item counts grouped by state group.
26
+ */
27
+ getWorkspaceAdvanceAnalyticsStats(query: AdvanceAnalyticsStatsQueryDto): Promise<IWorkItemInsightRow[]>;
28
+ /**
29
+ * Get workspace-level advance analytics charts.
30
+ *
31
+ * Matches Plane's AdvanceAnalyticsChartEndpoint.get() — dispatches by ?type= param:
32
+ * - type=projects → flat array [{key, name, count}]
33
+ * - type=work-items → {data, schema} with created vs completed over time
34
+ * - type=custom-work-items → {data, schema} with x_axis/group_by charting
35
+ */
36
+ getWorkspaceAdvanceAnalyticsCharts(query: AdvanceAnalyticsChartsQueryDto): Promise<any>;
37
+ }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.WorkspaceAdvanceAnalyticsController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const advance_analytics_service_1 = require("./advance-analytics.service");
19
+ const dto_1 = require("./dto");
20
+ /**
21
+ * Controller for workspace-level advance analytics routes.
22
+ * Mounted under /workspaces/:workspace_name/ via RouterModule in WorkspaceModule.
23
+ */
24
+ let WorkspaceAdvanceAnalyticsController = class WorkspaceAdvanceAnalyticsController {
25
+ constructor(_advanceAnalyticsService) {
26
+ this._advanceAnalyticsService = _advanceAnalyticsService;
27
+ }
28
+ /**
29
+ * Get workspace-level advance analytics.
30
+ *
31
+ * Matches Plane's AdvanceAnalyticsEndpoint.get() — dispatches by ?tab= param:
32
+ * - tab=overview → { total_users, total_admins, total_members, total_guests,
33
+ * total_projects, total_work_items, total_cycles, total_intake }
34
+ * - tab=work-items → { total_work_items, started_work_items, backlog_work_items,
35
+ * un_started_work_items, completed_work_items }
36
+ */
37
+ async getWorkspaceAdvanceAnalytics(tab, query) {
38
+ return this._advanceAnalyticsService.getWorkspaceAdvanceAnalytics(tab, query);
39
+ }
40
+ /**
41
+ * Get workspace-level advance analytics stats (table view).
42
+ *
43
+ * Matches Plane's AdvanceAnalyticsStatsEndpoint.get() — returns per-project
44
+ * work item counts grouped by state group.
45
+ */
46
+ async getWorkspaceAdvanceAnalyticsStats(query) {
47
+ return this._advanceAnalyticsService.getWorkspaceAdvanceAnalyticsStats(query);
48
+ }
49
+ /**
50
+ * Get workspace-level advance analytics charts.
51
+ *
52
+ * Matches Plane's AdvanceAnalyticsChartEndpoint.get() — dispatches by ?type= param:
53
+ * - type=projects → flat array [{key, name, count}]
54
+ * - type=work-items → {data, schema} with created vs completed over time
55
+ * - type=custom-work-items → {data, schema} with x_axis/group_by charting
56
+ */
57
+ async getWorkspaceAdvanceAnalyticsCharts(query) {
58
+ return this._advanceAnalyticsService.getWorkspaceAdvanceAnalyticsCharts(query);
59
+ }
60
+ };
61
+ exports.WorkspaceAdvanceAnalyticsController = WorkspaceAdvanceAnalyticsController;
62
+ __decorate([
63
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
64
+ (0, swagger_1.ApiOperation)({ summary: 'Get workspace advance analytics' }),
65
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Successfully retrieved workspace advance analytics' }),
66
+ (0, common_1.Get)('advance-analytics'),
67
+ __param(0, (0, common_1.Query)('tab')),
68
+ __param(1, (0, common_1.Query)()),
69
+ __metadata("design:type", Function),
70
+ __metadata("design:paramtypes", [String, dto_1.AdvanceAnalyticsQueryDto]),
71
+ __metadata("design:returntype", Promise)
72
+ ], WorkspaceAdvanceAnalyticsController.prototype, "getWorkspaceAdvanceAnalytics", null);
73
+ __decorate([
74
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
75
+ (0, swagger_1.ApiOperation)({ summary: 'Get workspace advance analytics stats' }),
76
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Successfully retrieved workspace advance analytics stats' }),
77
+ (0, common_1.Get)('advance-analytics-stats'),
78
+ __param(0, (0, common_1.Query)()),
79
+ __metadata("design:type", Function),
80
+ __metadata("design:paramtypes", [dto_1.AdvanceAnalyticsStatsQueryDto]),
81
+ __metadata("design:returntype", Promise)
82
+ ], WorkspaceAdvanceAnalyticsController.prototype, "getWorkspaceAdvanceAnalyticsStats", null);
83
+ __decorate([
84
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
85
+ (0, swagger_1.ApiOperation)({ summary: 'Get workspace advance analytics charts' }),
86
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Successfully retrieved workspace advance analytics charts' }),
87
+ (0, common_1.Get)('advance-analytics-charts'),
88
+ __param(0, (0, common_1.Query)()),
89
+ __metadata("design:type", Function),
90
+ __metadata("design:paramtypes", [dto_1.AdvanceAnalyticsChartsQueryDto]),
91
+ __metadata("design:returntype", Promise)
92
+ ], WorkspaceAdvanceAnalyticsController.prototype, "getWorkspaceAdvanceAnalyticsCharts", null);
93
+ exports.WorkspaceAdvanceAnalyticsController = WorkspaceAdvanceAnalyticsController = __decorate([
94
+ (0, swagger_1.ApiTags)('Workspace Advance Analytics'),
95
+ (0, common_1.Controller)(),
96
+ __metadata("design:paramtypes", [advance_analytics_service_1.AdvanceAnalyticsService])
97
+ ], WorkspaceAdvanceAnalyticsController);
98
+ //# sourceMappingURL=workspace-advance-analytics.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-advance-analytics.controller.js","sourceRoot":"","sources":["../../../../../../packages/plugin-plane/src/modules/advance-analytics/workspace-advance-analytics.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8E;AAC9E,6CAAqE;AAErE,2EAAsE;AACtE,+BAIe;AAEf;;;GAGG;AAGI,IAAM,mCAAmC,GAAzC,MAAM,mCAAmC;IAC/C,YACkB,wBAAiD;QAAjD,6BAAwB,GAAxB,wBAAwB,CAAyB;IAChE,CAAC;IAEJ;;;;;;;;OAQG;IAKG,AAAN,KAAK,CAAC,4BAA4B,CACnB,GAAW,EAChB,KAA+B;QAExC,OAAO,IAAI,CAAC,wBAAwB,CAAC,4BAA4B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;OAKG;IAKG,AAAN,KAAK,CAAC,iCAAiC,CAC7B,KAAoC;QAE7C,OAAO,IAAI,CAAC,wBAAwB,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;OAOG;IAKG,AAAN,KAAK,CAAC,kCAAkC,CAC9B,KAAqC;QAE9C,OAAO,IAAI,CAAC,wBAAwB,CAAC,kCAAkC,CAAC,KAAK,CAAC,CAAC;IAChF,CAAC;CACD,CAAA;AA1DY,kFAAmC;AAkBzC;IAJL,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAC5D,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,oDAAoD,EAAE,CAAC;IAC/F,IAAA,YAAG,EAAC,mBAAmB,CAAC;IAEvB,WAAA,IAAA,cAAK,EAAC,KAAK,CAAC,CAAA;IACZ,WAAA,IAAA,cAAK,GAAE,CAAA;;6CAAQ,8BAAwB;;uFAGxC;AAYK;IAJL,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;IAClE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,0DAA0D,EAAE,CAAC;IACrG,IAAA,YAAG,EAAC,yBAAyB,CAAC;IAE7B,WAAA,IAAA,cAAK,GAAE,CAAA;;qCAAQ,mCAA6B;;4FAG7C;AAcK;IAJL,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IACnE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2DAA2D,EAAE,CAAC;IACtG,IAAA,YAAG,EAAC,0BAA0B,CAAC;IAE9B,WAAA,IAAA,cAAK,GAAE,CAAA;;qCAAQ,oCAA8B;;6FAG9C;8CAzDW,mCAAmC;IAF/C,IAAA,iBAAO,EAAC,6BAA6B,CAAC;IACtC,IAAA,mBAAU,GAAE;qCAGgC,mDAAuB;GAFvD,mCAAmC,CA0D/C"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Module for workspace-level advance analytics routes.
3
+ * Provides advance-analytics, advance-analytics-stats, and advance-analytics-charts
4
+ * endpoints at the workspace scope (without projectId).
5
+ */
6
+ export declare class WorkspaceAdvanceAnalyticsModule {
7
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.WorkspaceAdvanceAnalyticsModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const project_module_1 = require("../project/project.module");
12
+ const advance_analytics_service_1 = require("./advance-analytics.service");
13
+ const workspace_advance_analytics_controller_1 = require("./workspace-advance-analytics.controller");
14
+ /**
15
+ * Module for workspace-level advance analytics routes.
16
+ * Provides advance-analytics, advance-analytics-stats, and advance-analytics-charts
17
+ * endpoints at the workspace scope (without projectId).
18
+ */
19
+ let WorkspaceAdvanceAnalyticsModule = class WorkspaceAdvanceAnalyticsModule {
20
+ };
21
+ exports.WorkspaceAdvanceAnalyticsModule = WorkspaceAdvanceAnalyticsModule;
22
+ exports.WorkspaceAdvanceAnalyticsModule = WorkspaceAdvanceAnalyticsModule = __decorate([
23
+ (0, common_1.Module)({
24
+ imports: [(0, common_1.forwardRef)(() => project_module_1.ProjectModule)],
25
+ providers: [advance_analytics_service_1.AdvanceAnalyticsService],
26
+ controllers: [workspace_advance_analytics_controller_1.WorkspaceAdvanceAnalyticsController],
27
+ exports: [advance_analytics_service_1.AdvanceAnalyticsService]
28
+ })
29
+ ], WorkspaceAdvanceAnalyticsModule);
30
+ //# sourceMappingURL=workspace-advance-analytics.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-advance-analytics.module.js","sourceRoot":"","sources":["../../../../../../packages/plugin-plane/src/modules/advance-analytics/workspace-advance-analytics.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,8DAA0D;AAC1D,2EAAsE;AACtE,qGAA+F;AAE/F;;;;GAIG;AAOI,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;CAAG,CAAA;AAAlC,0EAA+B;0CAA/B,+BAA+B;IAN3C,IAAA,eAAM,EAAC;QACP,OAAO,EAAE,CAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC,CAAC;QAC1C,SAAS,EAAE,CAAC,mDAAuB,CAAC;QACpC,WAAW,EAAE,CAAC,4EAAmC,CAAC;QAClD,OAAO,EAAE,CAAC,mDAAuB,CAAC;KAClC,CAAC;GACW,+BAA+B,CAAG"}
@@ -3,6 +3,7 @@ import { Logger } from '@nestjs/common';
3
3
  import { IServerFetchInputs } from '@ever-gauzy/plugin-integration-plane-models';
4
4
  export declare class ApiFetchService {
5
5
  private readonly _httpService;
6
+ /** Fallback token for non-request contexts (tests, scripts). */
6
7
  private static token;
7
8
  private _logger;
8
9
  constructor(_httpService: HttpService);
@@ -13,15 +14,36 @@ export declare class ApiFetchService {
13
14
  */
14
15
  protected get logger(): Logger;
15
16
  /**
16
- * Set the token for the API fetch service
17
- * @param token - The token to set
17
+ * Set the token for the API fetch service.
18
+ * Writes to the per-request AsyncLocalStorage context when available,
19
+ * and always updates the static fallback for non-request callers.
20
+ * @param token - The JWT token to set
18
21
  */
19
22
  setToken(token: string): void;
20
23
  /**
21
- * Get the token for the API fetch service
22
- * @returns The token
24
+ * Get the token for the API fetch service.
25
+ *
26
+ * When inside a request context (ALS store active), returns the
27
+ * request-scoped token — even if empty — to avoid leaking another
28
+ * user's token via the static fallback.
29
+ *
30
+ * Falls back to the static token only when called outside a request
31
+ * (tests, scripts, background jobs).
32
+ *
33
+ * @returns The JWT token
23
34
  */
24
35
  static getToken(): string;
36
+ /**
37
+ * Extracts the real HTTP status and message from an upstream API error
38
+ * and throws the corresponding NestJS HttpException.
39
+ *
40
+ * This preserves the original status code (401, 403, 404, 500 …)
41
+ * instead of always returning 400 Bad Request.
42
+ *
43
+ * @param error - The caught error (AxiosError, HttpException, or unknown)
44
+ * @throws {HttpException} Always — this method never returns.
45
+ */
46
+ protected handleApiError(error: unknown): never;
25
47
  /**
26
48
  * Fetch data from the API
27
49
  * @param configs - The configurations for the API fetch