@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.
- package/README.md +15 -25
- package/dist/admin/{App-BIxhBt5_.mjs → App-QKoGSuNi.mjs} +60 -303
- package/dist/admin/{App-CH5fBeNI.js → App-l5dYTPZP.js} +221 -465
- package/dist/admin/index-BWyzuEFm.js +344 -0
- package/dist/admin/index-Ct7siGlB.mjs +343 -0
- package/dist/admin/index.js +2 -63
- package/dist/admin/index.mjs +2 -63
- package/dist/server/index.js +230 -76
- package/dist/server/index.mjs +228 -76
- package/dist/server/src/index.d.ts +3 -1
- package/package.json +1 -1
package/dist/server/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
-
const
|
|
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 =
|
|
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
|
|
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:
|
|
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®ion=${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}®ion=${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 (
|
|
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",
|