@upsnap/strapi 1.0.10 → 1.0.14

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.
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const bootstrap = ({ strapi }) => {
3
+ const crypto = require("crypto");
4
+ const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
5
+ const crypto__default = /* @__PURE__ */ _interopDefault(crypto);
6
+ const bootstrap = async ({ strapi: strapi2 }) => {
4
7
  };
5
- const destroy = ({ strapi }) => {
8
+ const destroy = ({ strapi: strapi2 }) => {
6
9
  };
7
- const register = ({ strapi }) => {
10
+ const register = ({ strapi: strapi2 }) => {
8
11
  };
9
12
  const config = {
10
13
  default: {},
@@ -12,18 +15,51 @@ const config = {
12
15
  }
13
16
  };
14
17
  const contentTypes = {};
15
- const controller = ({ strapi }) => ({
18
+ const controller = ({ strapi: strapi2 }) => ({
16
19
  index(ctx) {
17
- ctx.body = strapi.plugin("upsnap").service("service").getWelcomeMessage();
20
+ ctx.body = strapi2.plugin("upsnap").service("service").getWelcomeMessage();
18
21
  }
19
22
  });
20
23
  const BACKEND_URL = "https://api.upsnap.ai/v1";
24
+ const IP_API_BASE_URL = "https://ipapi.co";
21
25
  const LIGHTHOUSE_CHECKS = ["performance", "accessibility", "bestPractices", "seo", "pwa"];
22
- const service = ({ strapi }) => ({
26
+ const version = "1.0.14";
27
+ const repository = { "type": "git", "url": "https://github.com/Appfoster/upsnap-strapi" };
28
+ const keywords = [];
29
+ const type = "commonjs";
30
+ const exports$1 = { "./package.json": "./package.json", "./strapi-admin": { "types": "./dist/admin/src/index.d.ts", "source": "./admin/src/index.ts", "import": "./dist/admin/index.mjs", "require": "./dist/admin/index.js", "default": "./dist/admin/index.js" }, "./strapi-server": { "types": "./dist/server/src/index.d.ts", "source": "./server/src/index.ts", "import": "./dist/server/index.mjs", "require": "./dist/server/index.js", "default": "./dist/server/index.js" } };
31
+ const files = ["dist"];
32
+ const scripts = { "build": "strapi-plugin build", "watch": "strapi-plugin watch", "watch:link": "strapi-plugin watch:link", "verify": "strapi-plugin verify", "test:ts:front": "run -T tsc -p admin/tsconfig.json", "test:ts:back": "run -T tsc -p server/tsconfig.json" };
33
+ const dependencies = { "@strapi/design-system": "^2.0.0-rc.30", "@strapi/icons": "^2.0.0-rc.30", "axios": "^1.13.5", "react-apexcharts": "^2.0.1", "react-intl": "^6.6.0", "react-toastify": "^11.0.5" };
34
+ const devDependencies = { "@strapi/sdk-plugin": "^6.0.1", "@strapi/strapi": "^5.37.1", "@strapi/typescript-utils": "^5.37.1", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "prettier": "^3.8.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^6.30.3", "styled-components": "^6.3.11", "typescript": "^5.9.3" };
35
+ const peerDependencies = { "@strapi/sdk-plugin": "^5.4.0", "@strapi/strapi": "^5.0.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^6.30.3", "styled-components": "^6.3.11" };
36
+ const strapi = { "kind": "plugin", "name": "upsnap", "displayName": "Upsnap", "description": "Complete website health monitoring for Strapi, including uptime, SSL certificates, broken links, performance metrics, domain health, and mixed content issues." };
37
+ const name = "@upsnap/strapi";
38
+ const description = "Complete website health monitoring for Strapi, including uptime, SSL certificates, broken links, performance metrics, domain health, and mixed content issues.";
39
+ const license = "MIT";
40
+ const author = "Upsnap <support@upsnap.ai>";
41
+ const packageJson = {
42
+ version,
43
+ repository,
44
+ keywords,
45
+ type,
46
+ exports: exports$1,
47
+ files,
48
+ scripts,
49
+ dependencies,
50
+ devDependencies,
51
+ peerDependencies,
52
+ strapi,
53
+ name,
54
+ description,
55
+ license,
56
+ author
57
+ };
58
+ const service = ({ strapi: strapi2 }) => ({
23
59
  getWelcomeMessage() {
24
60
  return "Welcome to Strapi 🚀";
25
61
  },
26
- settingsStore: strapi.store({
62
+ settingsStore: strapi2.store({
27
63
  type: "plugin",
28
64
  name: "upsnap",
29
65
  key: "settings"
@@ -61,11 +97,89 @@ const service = ({ strapi }) => ({
61
97
  data: await response.arrayBuffer(),
62
98
  headers: response.headers
63
99
  };
100
+ },
101
+ async trackInstallation(userPayload) {
102
+ try {
103
+ const settings2 = await this.settingsStore.get();
104
+ if (settings2?.installationTracked) {
105
+ return;
106
+ }
107
+ const pluginVersion = packageJson.version;
108
+ const strapiVersion = strapi2.config.get("info.strapi");
109
+ const siteUrl = strapi2.config.get("server.url") || `http://${strapi2.config.get("server.host") || "localhost"}:${strapi2.config.get("server.port") || 1337}`;
110
+ const users = await strapi2.db.query("admin::user").findMany({
111
+ orderBy: { createdAt: "ASC" },
112
+ limit: 1
113
+ });
114
+ const firstUser = users?.[0];
115
+ const email = firstUser?.email || "";
116
+ const name2 = `${firstUser?.firstname || ""} ${firstUser?.lastname || ""}`.trim();
117
+ const phoneNumber = firstUser?.phoneNumber || firstUser?.phone || "";
118
+ const company = firstUser?.company || "";
119
+ const installId = settings2?.installId || crypto__default.default.randomUUID();
120
+ let finalDetails = {
121
+ version: pluginVersion,
122
+ site_url: siteUrl,
123
+ strapi_version: strapiVersion,
124
+ install_id: installId,
125
+ email,
126
+ name: name2,
127
+ phone_number: phoneNumber,
128
+ company
129
+ };
130
+ if (userPayload) {
131
+ finalDetails = { ...finalDetails, ...userPayload };
132
+ } else {
133
+ let ipAddress = "";
134
+ let country = "";
135
+ let timezone = Intl.DateTimeFormat().resolvedOptions().timeZone || "";
136
+ let browserOs = `Node.js ${process.version} / ${process.platform}`;
137
+ try {
138
+ const ipRes = await fetch(`${IP_API_BASE_URL}/json/`);
139
+ if (ipRes.ok) {
140
+ const ipData = await ipRes.json();
141
+ ipAddress = ipData.ip || "";
142
+ country = ipData.country_name || ipData.country || "";
143
+ if (ipData.timezone) timezone = ipData.timezone;
144
+ }
145
+ } catch (e) {
146
+ }
147
+ finalDetails = {
148
+ ...finalDetails,
149
+ ip_address: ipAddress,
150
+ country,
151
+ browser_os: browserOs,
152
+ timezone
153
+ };
154
+ }
155
+ const response = await this.makeBackendRequest(
156
+ "/installation-data",
157
+ {
158
+ method: "POST",
159
+ body: JSON.stringify({
160
+ platform: "strapi",
161
+ details: finalDetails
162
+ })
163
+ },
164
+ true
165
+ );
166
+ if (response?.status === "success" && !settings2?.installationTracked) {
167
+ await this.settingsStore.set({
168
+ value: {
169
+ ...settings2 || {},
170
+ installId,
171
+ installationTracked: true
172
+ }
173
+ });
174
+ }
175
+ } catch (error) {
176
+ console.log("UpSnap: Failed to track installation data ", error);
177
+ }
64
178
  }
65
179
  });
66
- const settings = ({ strapi }) => ({
180
+ const settings = ({ strapi: strapi2 }) => ({
67
181
  async get(ctx) {
68
- const settings2 = await service({ strapi }).settingsStore.get();
182
+ const settings2 = await service({ strapi: strapi2 }).settingsStore.get();
69
183
  ctx.body = {
70
184
  token: settings2?.token ?? null,
71
185
  primaryMonitorId: settings2?.primaryMonitorId ?? null
@@ -74,7 +188,7 @@ const settings = ({ strapi }) => ({
74
188
  async set(ctx) {
75
189
  const { token, logOut } = ctx.request.body;
76
190
  if (!logOut) {
77
- const isValidData = await service({ strapi }).makeBackendRequest("/tokens/validate", {
191
+ const isValidData = await service({ strapi: strapi2 }).makeBackendRequest("/tokens/validate", {
78
192
  method: "POST",
79
193
  body: JSON.stringify({ token })
80
194
  }, true);
@@ -83,7 +197,7 @@ const settings = ({ strapi }) => ({
83
197
  return;
84
198
  }
85
199
  }
86
- const store = service({ strapi }).settingsStore;
200
+ const store = service({ strapi: strapi2 }).settingsStore;
87
201
  const current = await store.get() || {};
88
202
  await store.set({
89
203
  value: {
@@ -95,7 +209,7 @@ const settings = ({ strapi }) => ({
95
209
  },
96
210
  async setPrimaryMonitorId(ctx) {
97
211
  const { monitorId } = ctx.request.body;
98
- const store = service({ strapi }).settingsStore;
212
+ const store = service({ strapi: strapi2 }).settingsStore;
99
213
  const current = await store.get() || {};
100
214
  await store.set({
101
215
  value: {
@@ -106,8 +220,39 @@ const settings = ({ strapi }) => ({
106
220
  ctx.body = { ok: true };
107
221
  },
108
222
  async getPrimaryMonitorId(ctx) {
109
- const settings2 = await service({ strapi }).settingsStore.get();
223
+ const settings2 = await service({ strapi: strapi2 }).settingsStore.get();
110
224
  ctx.body = { primaryMonitorId: settings2?.primaryMonitorId };
225
+ },
226
+ async trackUserData(ctx) {
227
+ const { browser, os, language, screen, client_timezone } = ctx.request.body || {};
228
+ const settings2 = await service({ strapi: strapi2 }).settingsStore.get();
229
+ if (settings2?.installationTracked) {
230
+ ctx.body = { ok: false, error: "Installation already tracked" };
231
+ return;
232
+ }
233
+ const ip = ctx.ip;
234
+ let country = "";
235
+ let ipAddress = ip;
236
+ try {
237
+ if (ip && ip !== "127.0.0.1" && ip !== "::1") {
238
+ const ipRes = await fetch(`${IP_API_BASE_URL}/${ip}/json/`);
239
+ if (ipRes.ok) {
240
+ const ipData = await ipRes.json();
241
+ country = ipData.country_name || ipData.country || "";
242
+ }
243
+ }
244
+ } catch (e) {
245
+ }
246
+ const userPayload = {
247
+ ip_address: ipAddress,
248
+ country,
249
+ browser_os: `${browser || ""} / ${os || ""}`,
250
+ timezone: client_timezone || "",
251
+ language: language || "",
252
+ screen: screen || ""
253
+ };
254
+ await service({ strapi: strapi2 }).trackInstallation(userPayload);
255
+ ctx.body = { ok: true };
111
256
  }
112
257
  });
113
258
  function getMixedContentMessage(meta) {
@@ -334,10 +479,10 @@ function buildBrokenLinksErrorResponse(raw) {
334
479
  data: raw
335
480
  };
336
481
  }
337
- const monitor = ({ strapi }) => ({
482
+ const monitor = ({ strapi: strapi2 }) => ({
338
483
  async getById(ctx) {
339
484
  const monitorId = ctx.params.id;
340
- const token = await service({ strapi }).getToken();
485
+ const token = await service({ strapi: strapi2 }).getToken();
341
486
  const monitorResponse = await fetch(`${BACKEND_URL}/user/monitors/${monitorId}`, {
342
487
  method: "GET",
343
488
  headers: {
@@ -349,7 +494,7 @@ const monitor = ({ strapi }) => ({
349
494
  ctx.body = { monitor: monitor2 };
350
495
  },
351
496
  async get(ctx) {
352
- const monitorsData = await service({ strapi }).makeBackendRequest(
497
+ const monitorsData = await service({ strapi: strapi2 }).makeBackendRequest(
353
498
  `/user/monitors`,
354
499
  {
355
500
  method: "GET"
@@ -360,7 +505,7 @@ const monitor = ({ strapi }) => ({
360
505
  async getMonitorUptimeStats(ctx) {
361
506
  const monitorId = ctx.params.id;
362
507
  const { region } = ctx.query;
363
- const uptimeStatsData = await service({ strapi }).makeBackendRequest(
508
+ const uptimeStatsData = await service({ strapi: strapi2 }).makeBackendRequest(
364
509
  `/user/monitors/${monitorId}/uptime-stats?uptime_stats_time_frames=day,week,month&region=${region}`,
365
510
  {
366
511
  method: "GET"
@@ -371,7 +516,7 @@ const monitor = ({ strapi }) => ({
371
516
  async getMonitorHistogram(ctx) {
372
517
  const monitorId = ctx.params.id;
373
518
  const { region } = ctx.query;
374
- const histogramData = await service({ strapi }).makeBackendRequest(
519
+ const histogramData = await service({ strapi: strapi2 }).makeBackendRequest(
375
520
  `/user/monitors/${monitorId}/histogram?region=${region}`,
376
521
  {
377
522
  method: "GET"
@@ -381,7 +526,7 @@ const monitor = ({ strapi }) => ({
381
526
  },
382
527
  async getHealthChecks(ctx) {
383
528
  const { monitorUrl } = ctx.request.body;
384
- const healthCheckData = await service({ strapi }).makeBackendRequest(`/healthcheck`, {
529
+ const healthCheckData = await service({ strapi: strapi2 }).makeBackendRequest(`/healthcheck`, {
385
530
  method: "POST",
386
531
  headers: {
387
532
  "X-Requested-From": "craft"
@@ -397,7 +542,7 @@ const monitor = ({ strapi }) => ({
397
542
  },
398
543
  async getUptimeHealthCheck(ctx) {
399
544
  const { monitorUrl } = ctx.request.body;
400
- const uptimeHealthCheckData = await service({ strapi }).makeBackendRequest(
545
+ const uptimeHealthCheckData = await service({ strapi: strapi2 }).makeBackendRequest(
401
546
  `/healthcheck`,
402
547
  {
403
548
  method: "POST",
@@ -422,7 +567,7 @@ const monitor = ({ strapi }) => ({
422
567
  },
423
568
  async getSslHealthCheck(ctx) {
424
569
  const { monitorUrl } = ctx.request.body;
425
- const sslHealthCheckData = await service({ strapi }).makeBackendRequest(`/healthcheck`, {
570
+ const sslHealthCheckData = await service({ strapi: strapi2 }).makeBackendRequest(`/healthcheck`, {
426
571
  method: "POST",
427
572
  headers: {
428
573
  "X-Requested-From": "craft"
@@ -444,7 +589,7 @@ const monitor = ({ strapi }) => ({
444
589
  },
445
590
  async getDomainHealthCheck(ctx) {
446
591
  const { monitorUrl } = ctx.request.body;
447
- const domainHealthCheckData = await service({ strapi }).makeBackendRequest(
592
+ const domainHealthCheckData = await service({ strapi: strapi2 }).makeBackendRequest(
448
593
  `/healthcheck`,
449
594
  {
450
595
  method: "POST",
@@ -469,7 +614,7 @@ const monitor = ({ strapi }) => ({
469
614
  },
470
615
  async getLighthouseHealthCheck(ctx) {
471
616
  const { monitorUrl, strategy } = ctx.request.body;
472
- const lighthouseHealthCheckData = await service({ strapi }).makeBackendRequest(
617
+ const lighthouseHealthCheckData = await service({ strapi: strapi2 }).makeBackendRequest(
473
618
  `/healthcheck`,
474
619
  {
475
620
  method: "POST",
@@ -499,7 +644,7 @@ const monitor = ({ strapi }) => ({
499
644
  },
500
645
  async getBrokenLinksHealthCheck(ctx) {
501
646
  const { monitorUrl } = ctx.request.body;
502
- const brokenLinksHealthCheckData = await service({ strapi }).makeBackendRequest(
647
+ const brokenLinksHealthCheckData = await service({ strapi: strapi2 }).makeBackendRequest(
503
648
  `/healthcheck`,
504
649
  {
505
650
  method: "POST",
@@ -528,7 +673,7 @@ const monitor = ({ strapi }) => ({
528
673
  },
529
674
  async getMixedContentHealthCheck(ctx) {
530
675
  const { monitorUrl } = ctx.request.body;
531
- const mixedContentHealthCheckData = await service({ strapi }).makeBackendRequest(
676
+ const mixedContentHealthCheckData = await service({ strapi: strapi2 }).makeBackendRequest(
532
677
  `/healthcheck`,
533
678
  {
534
679
  method: "POST",
@@ -547,7 +692,7 @@ const monitor = ({ strapi }) => ({
547
692
  async getMonitorResponseTime(ctx) {
548
693
  const monitorId = ctx.params.id;
549
694
  const { start, end, region } = ctx.query;
550
- const responseTimeData = await service({ strapi }).makeBackendRequest(
695
+ const responseTimeData = await service({ strapi: strapi2 }).makeBackendRequest(
551
696
  `/user/monitors/${monitorId}/response-time?start=${start}&end=${end}&region=${region || "default"}`,
552
697
  {
553
698
  method: "GET"
@@ -557,7 +702,7 @@ const monitor = ({ strapi }) => ({
557
702
  },
558
703
  async getMonitorIncidents(ctx) {
559
704
  const monitorId = ctx.params.id;
560
- const incidentsData = await service({ strapi }).makeBackendRequest(
705
+ const incidentsData = await service({ strapi: strapi2 }).makeBackendRequest(
561
706
  `/user/monitors/incidents?monitorId=${monitorId}&page=1&page_size=20&time_range=7D`,
562
707
  {
563
708
  method: "GET"
@@ -567,7 +712,7 @@ const monitor = ({ strapi }) => ({
567
712
  },
568
713
  async getMonitorSettings(ctx) {
569
714
  const monitorId = ctx.params.id;
570
- const monitorSettingsData = await service({ strapi }).makeBackendRequest(
715
+ const monitorSettingsData = await service({ strapi: strapi2 }).makeBackendRequest(
571
716
  `/user/monitors/settings?id=${monitorId}`,
572
717
  {
573
718
  method: "GET"
@@ -577,7 +722,7 @@ const monitor = ({ strapi }) => ({
577
722
  },
578
723
  async createMonitor(ctx) {
579
724
  const { ...data } = ctx.request.body;
580
- const monitorsData = await service({ strapi }).makeBackendRequest(`/user/monitors`, {
725
+ const monitorsData = await service({ strapi: strapi2 }).makeBackendRequest(`/user/monitors`, {
581
726
  method: "POST",
582
727
  body: JSON.stringify(data)
583
728
  });
@@ -586,7 +731,7 @@ const monitor = ({ strapi }) => ({
586
731
  async updateMonitor(ctx) {
587
732
  const monitorId = ctx.params.id;
588
733
  const { ...data } = ctx.request.body;
589
- const monitorsData = await service({ strapi }).makeBackendRequest(
734
+ const monitorsData = await service({ strapi: strapi2 }).makeBackendRequest(
590
735
  `/user/monitors/${monitorId}`,
591
736
  {
592
737
  method: "PUT",
@@ -597,7 +742,7 @@ const monitor = ({ strapi }) => ({
597
742
  },
598
743
  async deleteMonitor(ctx) {
599
744
  const monitorId = ctx.params.id;
600
- const monitorsData = await service({ strapi }).makeBackendRequest(
745
+ const monitorsData = await service({ strapi: strapi2 }).makeBackendRequest(
601
746
  `/user/monitors/${monitorId}`,
602
747
  {
603
748
  method: "DELETE"
@@ -607,7 +752,7 @@ const monitor = ({ strapi }) => ({
607
752
  },
608
753
  async deleteMonitors(ctx) {
609
754
  const { monitorIds } = ctx.request.body;
610
- const monitorsData = await service({ strapi }).makeBackendRequest(`/user/monitors`, {
755
+ const monitorsData = await service({ strapi: strapi2 }).makeBackendRequest(`/user/monitors`, {
611
756
  method: "PATCH",
612
757
  body: JSON.stringify({ ids: monitorIds, action: "delete" })
613
758
  });
@@ -642,7 +787,7 @@ const monitor = ({ strapi }) => ({
642
787
  if (search) queryParams.set("search", search);
643
788
  if (sortBy) queryParams.set("sort_by", sortBy);
644
789
  if (sortOrder) queryParams.set("sort_order", sortOrder);
645
- const incidentsData = await service({ strapi }).makeBackendRequest(
790
+ const incidentsData = await service({ strapi: strapi2 }).makeBackendRequest(
646
791
  `/user/monitors/incidents?${queryParams.toString()}`,
647
792
  {
648
793
  method: "GET"
@@ -652,20 +797,20 @@ const monitor = ({ strapi }) => ({
652
797
  },
653
798
  async exportIncidents(ctx) {
654
799
  try {
655
- const { monitorId, region, type, start_time, end_time, search, file_type } = ctx.request.body;
800
+ const { monitorId, region, type: type2, start_time, end_time, search, file_type } = ctx.request.body;
656
801
  if (!monitorId) {
657
802
  ctx.status = 400;
658
803
  ctx.body = { error: "monitorId is required" };
659
804
  return;
660
805
  }
661
806
  const queryParams = new URLSearchParams();
662
- if (type) queryParams.set("type", type);
807
+ if (type2) queryParams.set("type", type2);
663
808
  if (start_time) queryParams.set("start_time", start_time);
664
809
  if (end_time) queryParams.set("end_time", end_time);
665
810
  if (search) queryParams.set("search", search);
666
811
  if (file_type) queryParams.set("file_type", file_type);
667
812
  if (region) queryParams.set("region", region);
668
- const response = await service({ strapi }).makeBackendRequest(
813
+ const response = await service({ strapi: strapi2 }).makeBackendRequest(
669
814
  `/user/monitors/${monitorId}/incidents/export?${queryParams.toString()}`,
670
815
  { method: "GET" }
671
816
  );
@@ -689,16 +834,16 @@ const monitor = ({ strapi }) => ({
689
834
  }
690
835
  }
691
836
  });
692
- const statusPage = ({ strapi }) => ({
837
+ const statusPage = ({ strapi: strapi2 }) => ({
693
838
  async getStatusPages(ctx) {
694
- const statusPagesData = await service({ strapi }).makeBackendRequest(`/user/status-pages`, {
839
+ const statusPagesData = await service({ strapi: strapi2 }).makeBackendRequest(`/user/status-pages`, {
695
840
  method: "GET"
696
841
  });
697
842
  ctx.body = { statusPagesData };
698
843
  },
699
844
  async getStatusPagesByID(ctx) {
700
845
  const id = ctx.params.id;
701
- const statusPagesData = await service({ strapi }).makeBackendRequest(
846
+ const statusPagesData = await service({ strapi: strapi2 }).makeBackendRequest(
702
847
  `/user/status-pages/${id}`,
703
848
  {
704
849
  method: "GET"
@@ -707,16 +852,16 @@ const statusPage = ({ strapi }) => ({
707
852
  ctx.body = { statusPagesData };
708
853
  },
709
854
  async saveStatusPages(ctx) {
710
- const { name, monitor_ids, is_published } = ctx.request.body;
711
- const statusPagesData = await service({ strapi }).makeBackendRequest(`/user/status-pages`, {
855
+ const { name: name2, monitor_ids, is_published } = ctx.request.body;
856
+ const statusPagesData = await service({ strapi: strapi2 }).makeBackendRequest(`/user/status-pages`, {
712
857
  method: "POST",
713
- body: JSON.stringify({ name, monitor_ids, is_published })
858
+ body: JSON.stringify({ name: name2, monitor_ids, is_published })
714
859
  });
715
860
  ctx.body = { statusPagesData };
716
861
  },
717
862
  async updateStatusPages(ctx) {
718
863
  const { id, ...data } = ctx.request.body;
719
- const statusPagesData = await service({ strapi }).makeBackendRequest(
864
+ const statusPagesData = await service({ strapi: strapi2 }).makeBackendRequest(
720
865
  `/user/status-pages/${id}`,
721
866
  {
722
867
  method: "PUT",
@@ -727,7 +872,7 @@ const statusPage = ({ strapi }) => ({
727
872
  },
728
873
  async resetLink(ctx) {
729
874
  const { id } = ctx.request.body;
730
- const statusPagesData = await service({ strapi }).makeBackendRequest(
875
+ const statusPagesData = await service({ strapi: strapi2 }).makeBackendRequest(
731
876
  `/user/status-pages/${id}/reset`,
732
877
  {
733
878
  method: "POST"
@@ -737,7 +882,7 @@ const statusPage = ({ strapi }) => ({
737
882
  },
738
883
  async deleteStatusPages(ctx) {
739
884
  const id = ctx.params.id;
740
- const statusPagesData = await service({ strapi }).makeBackendRequest(
885
+ const statusPagesData = await service({ strapi: strapi2 }).makeBackendRequest(
741
886
  `/user/status-pages/${id}`,
742
887
  {
743
888
  method: "DELETE"
@@ -746,17 +891,17 @@ const statusPage = ({ strapi }) => ({
746
891
  ctx.body = { statusPagesData };
747
892
  }
748
893
  });
749
- const regions = ({ strapi }) => ({
894
+ const regions = ({ strapi: strapi2 }) => ({
750
895
  async getRegions(ctx) {
751
- const regionsData = await service({ strapi }).makeBackendRequest(`/regions`, {
896
+ const regionsData = await service({ strapi: strapi2 }).makeBackendRequest(`/regions`, {
752
897
  method: "GET"
753
898
  });
754
899
  ctx.body = { regionsData };
755
900
  }
756
901
  });
757
- const userDetailsService = ({ strapi }) => ({
902
+ const userDetailsService = ({ strapi: strapi2 }) => ({
758
903
  async createUserApiToken(sessionToken) {
759
- const apiTokens = await service({ strapi }).makeBackendRequest(
904
+ const apiTokens = await service({ strapi: strapi2 }).makeBackendRequest(
760
905
  `/tokens/generate`,
761
906
  {
762
907
  method: "POST",
@@ -776,7 +921,7 @@ const userDetailsService = ({ strapi }) => ({
776
921
  return null;
777
922
  },
778
923
  async getUserApiToken(sessionToken) {
779
- const apiTokens = await service({ strapi }).makeBackendRequest(
924
+ const apiTokens = await service({ strapi: strapi2 }).makeBackendRequest(
780
925
  `/tokens`,
781
926
  {
782
927
  method: "GET"
@@ -845,7 +990,7 @@ const userDetailsService = ({ strapi }) => ({
845
990
  }
846
991
  }
847
992
  };
848
- const monitorsData = await service({ strapi }).makeBackendRequest(`/user/monitors`, {
993
+ const monitorsData = await service({ strapi: strapi2 }).makeBackendRequest(`/user/monitors`, {
849
994
  method: "POST",
850
995
  body: JSON.stringify(payload)
851
996
  }, true, apiToken);
@@ -860,9 +1005,9 @@ const userDetailsService = ({ strapi }) => ({
860
1005
  }
861
1006
  }
862
1007
  });
863
- const userDetails = ({ strapi }) => ({
1008
+ const userDetails = ({ strapi: strapi2 }) => ({
864
1009
  async getUserDetails(ctx) {
865
- const userDetailsData = await service({ strapi }).makeBackendRequest(`/user/details`, {
1010
+ const userDetailsData = await service({ strapi: strapi2 }).makeBackendRequest(`/user/details`, {
866
1011
  method: "GET"
867
1012
  });
868
1013
  ctx.body = { userDetailsData };
@@ -870,7 +1015,7 @@ const userDetails = ({ strapi }) => ({
870
1015
  async signUp(ctx) {
871
1016
  try {
872
1017
  const { email, password, source, site_url, fullName } = ctx.request.body;
873
- const registerData = await service({ strapi }).makeBackendRequest(
1018
+ const registerData = await service({ strapi: strapi2 }).makeBackendRequest(
874
1019
  `/user/register`,
875
1020
  {
876
1021
  method: "POST",
@@ -884,13 +1029,13 @@ const userDetails = ({ strapi }) => ({
884
1029
  true
885
1030
  );
886
1031
  if (registerData?.data?.token) {
887
- const apiToken = await userDetailsService({ strapi }).getUserApiToken(registerData?.data?.token);
888
- const monitorId = await userDetailsService({ strapi }).createInitialMonitor(site_url, apiToken);
1032
+ const apiToken = await userDetailsService({ strapi: strapi2 }).getUserApiToken(registerData?.data?.token);
1033
+ const monitorId = await userDetailsService({ strapi: strapi2 }).createInitialMonitor(site_url, apiToken);
889
1034
  if (!apiToken || !monitorId) {
890
1035
  ctx.body = { ok: false, message: "Error creating API token or Monitor" };
891
1036
  return;
892
1037
  }
893
- const store = service({ strapi }).settingsStore;
1038
+ const store = service({ strapi: strapi2 }).settingsStore;
894
1039
  const current = await store.get() || {};
895
1040
  await store.set({
896
1041
  value: {
@@ -910,7 +1055,7 @@ const userDetails = ({ strapi }) => ({
910
1055
  async signIn(ctx) {
911
1056
  try {
912
1057
  const { email, password } = ctx.request.body;
913
- const loginData = await service({ strapi }).makeBackendRequest(
1058
+ const loginData = await service({ strapi: strapi2 }).makeBackendRequest(
914
1059
  `/user/login`,
915
1060
  {
916
1061
  method: "POST",
@@ -922,8 +1067,8 @@ const userDetails = ({ strapi }) => ({
922
1067
  true
923
1068
  );
924
1069
  if (loginData?.data?.token) {
925
- const apiToken = await userDetailsService({ strapi }).getUserApiToken(loginData?.data?.token);
926
- const store = service({ strapi }).settingsStore;
1070
+ const apiToken = await userDetailsService({ strapi: strapi2 }).getUserApiToken(loginData?.data?.token);
1071
+ const store = service({ strapi: strapi2 }).settingsStore;
927
1072
  const current = await store.get() || {};
928
1073
  await store.set({
929
1074
  value: {
@@ -942,7 +1087,7 @@ const userDetails = ({ strapi }) => ({
942
1087
  async forgotPassword(ctx) {
943
1088
  try {
944
1089
  const { email } = ctx.request.body;
945
- const forgotPasswordData = await service({ strapi }).makeBackendRequest(
1090
+ const forgotPasswordData = await service({ strapi: strapi2 }).makeBackendRequest(
946
1091
  `/user/forgot-password`,
947
1092
  {
948
1093
  method: "POST",
@@ -962,9 +1107,9 @@ const userDetails = ({ strapi }) => ({
962
1107
  }
963
1108
  }
964
1109
  });
965
- const notificationChannels = ({ strapi }) => ({
1110
+ const notificationChannels = ({ strapi: strapi2 }) => ({
966
1111
  async getNotificationChannels(ctx) {
967
- const notificationChannelsData = await service({ strapi }).makeBackendRequest(
1112
+ const notificationChannelsData = await service({ strapi: strapi2 }).makeBackendRequest(
968
1113
  `/user/integrations`,
969
1114
  {
970
1115
  method: "GET"
@@ -974,7 +1119,7 @@ const notificationChannels = ({ strapi }) => ({
974
1119
  },
975
1120
  async createNotificationChannel(ctx) {
976
1121
  const { ...data } = ctx.request.body;
977
- const notificationChannelsData = await service({ strapi }).makeBackendRequest(
1122
+ const notificationChannelsData = await service({ strapi: strapi2 }).makeBackendRequest(
978
1123
  `/user/integrations`,
979
1124
  {
980
1125
  method: "POST",
@@ -984,7 +1129,7 @@ const notificationChannels = ({ strapi }) => ({
984
1129
  ctx.body = { notificationChannelsData };
985
1130
  },
986
1131
  async getSupportedIntegrations(ctx) {
987
- const supportedIntegrationsData = await service({ strapi }).makeBackendRequest(
1132
+ const supportedIntegrationsData = await service({ strapi: strapi2 }).makeBackendRequest(
988
1133
  `/integrations/supported`,
989
1134
  {
990
1135
  method: "GET"
@@ -994,7 +1139,7 @@ const notificationChannels = ({ strapi }) => ({
994
1139
  },
995
1140
  async testNotificationChannel(ctx) {
996
1141
  const { id } = ctx.params;
997
- const testResult = await service({ strapi }).makeBackendRequest(
1142
+ const testResult = await service({ strapi: strapi2 }).makeBackendRequest(
998
1143
  `/user/integrations/${id}/test`,
999
1144
  {
1000
1145
  method: "POST"
@@ -1005,7 +1150,7 @@ const notificationChannels = ({ strapi }) => ({
1005
1150
  async updateNotificationChannel(ctx) {
1006
1151
  const { id } = ctx.params;
1007
1152
  const { ...data } = ctx.request.body;
1008
- const updatedChannel = await service({ strapi }).makeBackendRequest(
1153
+ const updatedChannel = await service({ strapi: strapi2 }).makeBackendRequest(
1009
1154
  `/user/integrations/${id}`,
1010
1155
  {
1011
1156
  method: "PUT",
@@ -1016,22 +1161,22 @@ const notificationChannels = ({ strapi }) => ({
1016
1161
  },
1017
1162
  async deleteNotificationChannel(ctx) {
1018
1163
  const { id } = ctx.params;
1019
- const deleteResult = await service({ strapi }).makeBackendRequest(`/user/integrations/${id}`, {
1164
+ const deleteResult = await service({ strapi: strapi2 }).makeBackendRequest(`/user/integrations/${id}`, {
1020
1165
  method: "DELETE"
1021
1166
  });
1022
1167
  ctx.body = { deleteResult };
1023
1168
  }
1024
1169
  });
1025
- const tags = ({ strapi }) => ({
1170
+ const tags = ({ strapi: strapi2 }) => ({
1026
1171
  async getTags(ctx) {
1027
- const tagsData = await service({ strapi }).makeBackendRequest(`/user/tags`, {
1172
+ const tagsData = await service({ strapi: strapi2 }).makeBackendRequest(`/user/tags`, {
1028
1173
  method: "GET"
1029
1174
  });
1030
1175
  ctx.body = { tagsData };
1031
1176
  },
1032
1177
  async getTagsByID(ctx) {
1033
1178
  const id = ctx.params.id;
1034
- const tagsData = await service({ strapi }).makeBackendRequest(
1179
+ const tagsData = await service({ strapi: strapi2 }).makeBackendRequest(
1035
1180
  `/user/tags/${id}`,
1036
1181
  {
1037
1182
  method: "GET"
@@ -1040,10 +1185,10 @@ const tags = ({ strapi }) => ({
1040
1185
  ctx.body = { tagsData };
1041
1186
  },
1042
1187
  async createTag(ctx) {
1043
- const { name, color } = ctx.request.body;
1044
- const tagsData = await service({ strapi }).makeBackendRequest(`/user/tags`, {
1188
+ const { name: name2, color } = ctx.request.body;
1189
+ const tagsData = await service({ strapi: strapi2 }).makeBackendRequest(`/user/tags`, {
1045
1190
  method: "POST",
1046
- body: JSON.stringify({ name, color })
1191
+ body: JSON.stringify({ name: name2, color })
1047
1192
  });
1048
1193
  ctx.body = { tagsData };
1049
1194
  },
@@ -1055,7 +1200,7 @@ const tags = ({ strapi }) => ({
1055
1200
  ctx.body = { error: "Tag ID is required" };
1056
1201
  return;
1057
1202
  }
1058
- const tagsData = await service({ strapi }).makeBackendRequest(
1203
+ const tagsData = await service({ strapi: strapi2 }).makeBackendRequest(
1059
1204
  `/user/tags/${id}`,
1060
1205
  {
1061
1206
  method: "PUT",
@@ -1066,7 +1211,7 @@ const tags = ({ strapi }) => ({
1066
1211
  },
1067
1212
  async deleteTags(ctx) {
1068
1213
  const id = ctx.params.id;
1069
- const tagsData = await service({ strapi }).makeBackendRequest(
1214
+ const tagsData = await service({ strapi: strapi2 }).makeBackendRequest(
1070
1215
  `/user/tags/${id}`,
1071
1216
  {
1072
1217
  method: "DELETE"
@@ -1109,6 +1254,15 @@ const routes = {
1109
1254
  auth: false
1110
1255
  }
1111
1256
  },
1257
+ {
1258
+ method: "POST",
1259
+ path: "/track-user-data",
1260
+ handler: "settings.trackUserData",
1261
+ config: {
1262
+ policies: [],
1263
+ auth: false
1264
+ }
1265
+ },
1112
1266
  {
1113
1267
  method: "GET",
1114
1268
  path: "/monitor/:id",