@oneuptime/common 7.0.4313 → 7.0.4337

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 (76) hide show
  1. package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +3 -3
  2. package/Server/Services/ProjectService.ts +10 -0
  3. package/Server/Utils/OpenAPI.ts +173 -105
  4. package/Types/Billing/SubscriptionStatus.ts +29 -1
  5. package/Types/Color.ts +15 -0
  6. package/Types/Database/DatabaseProperty.ts +5 -0
  7. package/Types/Domain.ts +15 -0
  8. package/Types/Email/EmailTemplateType.ts +2 -0
  9. package/Types/Email.ts +16 -0
  10. package/Types/IP/IP.ts +15 -0
  11. package/Types/Monitor/CriteriaAlert.ts +11 -0
  12. package/Types/Monitor/CriteriaFilter.ts +20 -0
  13. package/Types/Monitor/CriteriaIncident.ts +11 -0
  14. package/Types/Monitor/MonitorCriteria.ts +24 -0
  15. package/Types/Monitor/MonitorCriteriaInstance.ts +51 -2
  16. package/Types/Monitor/MonitorStep.ts +43 -0
  17. package/Types/Monitor/MonitorSteps.ts +27 -0
  18. package/Types/Name.ts +15 -0
  19. package/Types/ObjectID.ts +18 -0
  20. package/Types/Phone.ts +15 -0
  21. package/Types/Port.ts +15 -0
  22. package/Types/Version.ts +15 -0
  23. package/UI/Utils/Project.ts +15 -2
  24. package/Utils/Schema/ModelSchema.ts +215 -70
  25. package/Utils/Schema/Zod.ts +20 -0
  26. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +3 -3
  27. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
  28. package/build/dist/Server/Services/ProjectService.js +11 -0
  29. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  30. package/build/dist/Server/Utils/OpenAPI.js +137 -92
  31. package/build/dist/Server/Utils/OpenAPI.js.map +1 -1
  32. package/build/dist/Types/Billing/SubscriptionStatus.js +19 -1
  33. package/build/dist/Types/Billing/SubscriptionStatus.js.map +1 -1
  34. package/build/dist/Types/Color.js +14 -0
  35. package/build/dist/Types/Color.js.map +1 -1
  36. package/build/dist/Types/Database/DatabaseProperty.js +3 -0
  37. package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
  38. package/build/dist/Types/Domain.js +14 -0
  39. package/build/dist/Types/Domain.js.map +1 -1
  40. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  41. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  42. package/build/dist/Types/Email.js +15 -0
  43. package/build/dist/Types/Email.js.map +1 -1
  44. package/build/dist/Types/IP/IP.js +14 -0
  45. package/build/dist/Types/IP/IP.js.map +1 -1
  46. package/build/dist/Types/Monitor/CriteriaAlert.js +10 -1
  47. package/build/dist/Types/Monitor/CriteriaAlert.js.map +1 -1
  48. package/build/dist/Types/Monitor/CriteriaFilter.js +18 -0
  49. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  50. package/build/dist/Types/Monitor/CriteriaIncident.js +10 -1
  51. package/build/dist/Types/Monitor/CriteriaIncident.js.map +1 -1
  52. package/build/dist/Types/Monitor/MonitorCriteria.js +21 -0
  53. package/build/dist/Types/Monitor/MonitorCriteria.js.map +1 -1
  54. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +50 -1
  55. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  56. package/build/dist/Types/Monitor/MonitorStep.js +42 -0
  57. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  58. package/build/dist/Types/Monitor/MonitorSteps.js +26 -0
  59. package/build/dist/Types/Monitor/MonitorSteps.js.map +1 -1
  60. package/build/dist/Types/Name.js +14 -0
  61. package/build/dist/Types/Name.js.map +1 -1
  62. package/build/dist/Types/ObjectID.js +17 -0
  63. package/build/dist/Types/ObjectID.js.map +1 -1
  64. package/build/dist/Types/Phone.js +14 -0
  65. package/build/dist/Types/Phone.js.map +1 -1
  66. package/build/dist/Types/Port.js +14 -0
  67. package/build/dist/Types/Port.js.map +1 -1
  68. package/build/dist/Types/Version.js +14 -0
  69. package/build/dist/Types/Version.js.map +1 -1
  70. package/build/dist/UI/Utils/Project.js +5 -2
  71. package/build/dist/UI/Utils/Project.js.map +1 -1
  72. package/build/dist/Utils/Schema/ModelSchema.js +228 -46
  73. package/build/dist/Utils/Schema/ModelSchema.js.map +1 -1
  74. package/build/dist/Utils/Schema/Zod.js +6 -0
  75. package/build/dist/Utils/Schema/Zod.js.map +1 -0
  76. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import ObjectID from "../ObjectID";
2
+ import Zod, { ZodSchema } from "../../Utils/Schema/Zod";
2
3
 
3
4
  export interface CriteriaAlert {
4
5
  title: string;
@@ -9,3 +10,13 @@ export interface CriteriaAlert {
9
10
  id: string;
10
11
  onCallPolicyIds?: Array<ObjectID> | undefined;
11
12
  }
13
+
14
+ export const CriteriaAlertSchema: ZodSchema = Zod.object({
15
+ title: Zod.string(),
16
+ description: Zod.string(),
17
+ alertSeverityId: Zod.any().optional(),
18
+ autoResolveAlert: Zod.boolean().optional(),
19
+ remediationNotes: Zod.string().optional(),
20
+ id: Zod.string(),
21
+ onCallPolicyIds: Zod.array(Zod.any()).optional(),
22
+ });
@@ -1,3 +1,5 @@
1
+ import Zod, { ZodSchema } from "../../Utils/Schema/Zod";
2
+
1
3
  export enum CheckOn {
2
4
  ResponseTime = "Response Time (in ms)",
3
5
  ResponseStatusCode = "Response Status Code",
@@ -179,3 +181,21 @@ export class CriteriaFilterUtil {
179
181
  );
180
182
  }
181
183
  }
184
+
185
+ export const CriteriaFilterSchema: ZodSchema = Zod.object({
186
+ checkOn: Zod.string(),
187
+ serverMonitorOptions: Zod.object({
188
+ diskPath: Zod.string().optional(),
189
+ }).optional(),
190
+ metricMonitorOptions: Zod.object({
191
+ metricAlias: Zod.string().optional(),
192
+ metricAggregationType: Zod.string().optional(),
193
+ }).optional(),
194
+ filterType: Zod.string().optional(),
195
+ value: Zod.union([Zod.string(), Zod.number()]).optional(),
196
+ eveluateOverTime: Zod.boolean().optional(),
197
+ evaluateOverTimeOptions: Zod.object({
198
+ timeValueInMinutes: Zod.number().optional(),
199
+ evaluateOverTimeType: Zod.string().optional(),
200
+ }).optional(),
201
+ });
@@ -1,4 +1,5 @@
1
1
  import ObjectID from "../ObjectID";
2
+ import Zod, { ZodSchema } from "../../Utils/Schema/Zod";
2
3
 
3
4
  export interface CriteriaIncident {
4
5
  title: string;
@@ -9,3 +10,13 @@ export interface CriteriaIncident {
9
10
  id: string;
10
11
  onCallPolicyIds?: Array<ObjectID> | undefined;
11
12
  }
13
+
14
+ export const CriteriaIncidentSchema: ZodSchema = Zod.object({
15
+ title: Zod.string(),
16
+ description: Zod.string(),
17
+ incidentSeverityId: Zod.any().optional(),
18
+ autoResolveIncident: Zod.boolean().optional(),
19
+ remediationNotes: Zod.string().optional(),
20
+ id: Zod.string(),
21
+ onCallPolicyIds: Zod.array(Zod.any()).optional(),
22
+ });
@@ -6,6 +6,7 @@ import ObjectID from "../ObjectID";
6
6
  import MonitorCriteriaInstance from "./MonitorCriteriaInstance";
7
7
  import MonitorType from "./MonitorType";
8
8
  import { FindOperator } from "typeorm";
9
+ import Zod, { ZodSchema } from "../../Utils/Schema/Zod";
9
10
 
10
11
  export interface MonitorCriteriaType {
11
12
  monitorCriteriaInstanceArray: Array<MonitorCriteriaInstance>;
@@ -179,4 +180,27 @@ export default class MonitorCriteria extends DatabaseProperty {
179
180
  public override toString(): string {
180
181
  return JSON.stringify(this.toJSON());
181
182
  }
183
+
184
+ public static override getSchema(): ZodSchema {
185
+ return Zod.object({
186
+ _type: Zod.literal(ObjectType.MonitorCriteria),
187
+ value: Zod.object({
188
+ monitorCriteriaInstanceArray: Zod.array(
189
+ MonitorCriteriaInstance.getSchema(),
190
+ ),
191
+ }).openapi({
192
+ type: "object",
193
+ example: {
194
+ monitorCriteriaInstanceArray: [],
195
+ },
196
+ }),
197
+ }).openapi({
198
+ type: "object",
199
+ description: "MonitorCriteria object",
200
+ example: {
201
+ _type: ObjectType.MonitorCriteria,
202
+ value: { monitorCriteriaInstanceArray: [] },
203
+ },
204
+ });
205
+ }
182
206
  }
@@ -5,17 +5,19 @@ import { JSONObject, ObjectType } from "../JSON";
5
5
  import JSONFunctions from "../JSONFunctions";
6
6
  import ObjectID from "../ObjectID";
7
7
  import Typeof from "../Typeof";
8
- import { CriteriaAlert } from "./CriteriaAlert";
8
+ import { CriteriaAlert, CriteriaAlertSchema } from "./CriteriaAlert";
9
9
  import {
10
10
  CheckOn,
11
11
  CriteriaFilter,
12
12
  FilterType,
13
13
  EvaluateOverTimeType,
14
14
  CriteriaFilterUtil,
15
+ CriteriaFilterSchema,
15
16
  } from "./CriteriaFilter";
16
- import { CriteriaIncident } from "./CriteriaIncident";
17
+ import { CriteriaIncident, CriteriaIncidentSchema } from "./CriteriaIncident";
17
18
  import MonitorType from "./MonitorType";
18
19
  import { FindOperator } from "typeorm";
20
+ import Zod, { ZodSchema } from "../../Utils/Schema/Zod";
19
21
 
20
22
  export interface MonitorCriteriaInstanceType {
21
23
  monitorStatusId: ObjectID | undefined;
@@ -1018,6 +1020,53 @@ export default class MonitorCriteriaInstance extends DatabaseProperty {
1018
1020
  return monitorCriteriaInstance;
1019
1021
  }
1020
1022
 
1023
+ public static override getSchema(): ZodSchema {
1024
+ return Zod.object({
1025
+ _type: Zod.literal(ObjectType.MonitorCriteriaInstance),
1026
+ value: Zod.object({
1027
+ id: Zod.string(),
1028
+ monitorStatusId: Zod.any(),
1029
+ filterCondition: Zod.any(),
1030
+ filters: Zod.array(CriteriaFilterSchema),
1031
+ incidents: Zod.array(CriteriaIncidentSchema),
1032
+ alerts: Zod.array(CriteriaAlertSchema),
1033
+ name: Zod.string(),
1034
+ description: Zod.string(),
1035
+ changeMonitorStatus: Zod.boolean().optional(),
1036
+ createIncidents: Zod.boolean().optional(),
1037
+ createAlerts: Zod.boolean().optional(),
1038
+ }).openapi({
1039
+ type: "object",
1040
+ example: {
1041
+ id: "id",
1042
+ monitorStatusId: "statusId",
1043
+ filterCondition: "All",
1044
+ filters: [],
1045
+ incidents: [],
1046
+ alerts: [],
1047
+ name: "Criteria Name",
1048
+ description: "Description",
1049
+ },
1050
+ }),
1051
+ }).openapi({
1052
+ type: "object",
1053
+ description: "MonitorCriteriaInstance object",
1054
+ example: {
1055
+ _type: ObjectType.MonitorCriteriaInstance,
1056
+ value: {
1057
+ id: "id",
1058
+ monitorStatusId: "statusId",
1059
+ filterCondition: "All",
1060
+ filters: [],
1061
+ incidents: [],
1062
+ alerts: [],
1063
+ name: "Criteria Name",
1064
+ description: "Description",
1065
+ },
1066
+ },
1067
+ });
1068
+ }
1069
+
1021
1070
  public static isValid(_json: JSONObject): boolean {
1022
1071
  return true;
1023
1072
  }
@@ -23,6 +23,7 @@ import MonitorStepTraceMonitor, {
23
23
  import MonitorStepMetricMonitor, {
24
24
  MonitorStepMetricMonitorUtil,
25
25
  } from "./MonitorStepMetricMonitor";
26
+ import Zod, { ZodSchema } from "../../Utils/Schema/Zod";
26
27
 
27
28
  export interface MonitorStepType {
28
29
  id: string;
@@ -425,6 +426,48 @@ export default class MonitorStep extends DatabaseProperty {
425
426
  return monitorStep;
426
427
  }
427
428
 
429
+ public static override getSchema(): ZodSchema {
430
+ return Zod.object({
431
+ _type: Zod.literal(ObjectType.MonitorStep),
432
+ value: Zod.object({
433
+ id: Zod.string(),
434
+ monitorDestination: Zod.any().optional(),
435
+ monitorCriteria: Zod.any(),
436
+ requestType: Zod.any(),
437
+ requestHeaders: Zod.any().optional(),
438
+ requestBody: Zod.string().optional(),
439
+ doNotFollowRedirects: Zod.boolean().optional(),
440
+ monitorDestinationPort: Zod.any().optional(),
441
+ customCode: Zod.string().optional(),
442
+ screenSizeTypes: Zod.any().optional(),
443
+ browserTypes: Zod.any().optional(),
444
+ logMonitor: Zod.any().optional(),
445
+ traceMonitor: Zod.any().optional(),
446
+ metricMonitor: Zod.any().optional(),
447
+ }).openapi({
448
+ type: "object",
449
+ example: {
450
+ id: "stepId",
451
+ monitorDestination: undefined,
452
+ monitorCriteria: {},
453
+ requestType: "GET",
454
+ },
455
+ }),
456
+ }).openapi({
457
+ type: "object",
458
+ description: "MonitorStep object",
459
+ example: {
460
+ _type: ObjectType.MonitorStep,
461
+ value: {
462
+ id: "stepId",
463
+ monitorDestination: undefined,
464
+ monitorCriteria: {},
465
+ requestType: "GET",
466
+ },
467
+ },
468
+ });
469
+ }
470
+
428
471
  public isValid(): boolean {
429
472
  return true;
430
473
  }
@@ -6,6 +6,7 @@ import ObjectID from "../ObjectID";
6
6
  import MonitorStep from "./MonitorStep";
7
7
  import MonitorType from "./MonitorType";
8
8
  import { FindOperator } from "typeorm";
9
+ import Zod, { ZodSchema } from "../../Utils/Schema/Zod";
9
10
 
10
11
  export interface MonitorStepsType {
11
12
  monitorStepsInstanceArray: Array<MonitorStep>;
@@ -192,4 +193,30 @@ export default class MonitorSteps extends DatabaseProperty {
192
193
  public override toString(): string {
193
194
  return JSON.stringify(this.toJSON());
194
195
  }
196
+
197
+ public static override getSchema(): ZodSchema {
198
+ return Zod.object({
199
+ _type: Zod.literal(ObjectType.MonitorSteps),
200
+ value: Zod.object({
201
+ monitorStepsInstanceArray: Zod.array(MonitorStep.getSchema()),
202
+ defaultMonitorStatusId: Zod.string().optional(),
203
+ }).openapi({
204
+ type: "object",
205
+ example: {
206
+ monitorStepsInstanceArray: [],
207
+ defaultMonitorStatusId: undefined,
208
+ },
209
+ }),
210
+ }).openapi({
211
+ type: "object",
212
+ description: "MonitorSteps object",
213
+ example: {
214
+ _type: ObjectType.MonitorSteps,
215
+ value: {
216
+ monitorStepsInstanceArray: [],
217
+ defaultMonitorStatusId: undefined,
218
+ },
219
+ },
220
+ });
221
+ }
195
222
  }
package/Types/Name.ts CHANGED
@@ -2,6 +2,7 @@ import DatabaseProperty from "./Database/DatabaseProperty";
2
2
  import BadDataException from "./Exception/BadDataException";
3
3
  import { JSONObject, ObjectType } from "./JSON";
4
4
  import { FindOperator } from "typeorm";
5
+ import Zod, { ZodSchema } from "../Utils/Schema/Zod";
5
6
 
6
7
  export default class Name extends DatabaseProperty {
7
8
  private _title: string = "";
@@ -83,4 +84,18 @@ export default class Name extends DatabaseProperty {
83
84
 
84
85
  return null;
85
86
  }
87
+
88
+ public static override getSchema(): ZodSchema {
89
+ return Zod.object({
90
+ _type: Zod.literal(ObjectType.Name),
91
+ value: Zod.string().openapi({
92
+ type: "string",
93
+ example: "John Doe",
94
+ }),
95
+ }).openapi({
96
+ type: "object",
97
+ description: "Name object",
98
+ example: { _type: ObjectType.Name, value: "John Doe" },
99
+ });
100
+ }
86
101
  }
package/Types/ObjectID.ts CHANGED
@@ -4,6 +4,7 @@ import DatabaseProperty from "./Database/DatabaseProperty";
4
4
  import BadDataException from "./Exception/BadDataException";
5
5
  import { JSONObject, ObjectType } from "./JSON";
6
6
  import { FindOperator } from "typeorm";
7
+ import Zod, { ZodSchema } from "../Utils/Schema/Zod";
7
8
 
8
9
  export default class ObjectID extends DatabaseProperty {
9
10
  private _id: string = "";
@@ -110,4 +111,21 @@ export default class ObjectID extends DatabaseProperty {
110
111
  public static fromString(id: string): ObjectID {
111
112
  return new ObjectID(id);
112
113
  }
114
+
115
+ public static override getSchema(): ZodSchema {
116
+ return Zod.object({
117
+ _type: Zod.literal(ObjectType.ObjectID),
118
+ value: Zod.string().openapi({
119
+ type: "string",
120
+ example: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
121
+ }),
122
+ }).openapi({
123
+ type: "object",
124
+ description: "ObjectID object",
125
+ example: {
126
+ _type: ObjectType.ObjectID,
127
+ value: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
128
+ },
129
+ });
130
+ }
113
131
  }
package/Types/Phone.ts CHANGED
@@ -2,6 +2,7 @@ import DatabaseProperty from "./Database/DatabaseProperty";
2
2
  import BadDataException from "./Exception/BadDataException";
3
3
  import { JSONObject, ObjectType } from "./JSON";
4
4
  import { FindOperator } from "typeorm";
5
+ import Zod, { ZodSchema } from "../Utils/Schema/Zod";
5
6
 
6
7
  export default class Phone extends DatabaseProperty {
7
8
  private _phone: string = "";
@@ -131,4 +132,18 @@ export default class Phone extends DatabaseProperty {
131
132
 
132
133
  return null;
133
134
  }
135
+
136
+ public static override getSchema(): ZodSchema {
137
+ return Zod.object({
138
+ _type: Zod.literal(ObjectType.Phone),
139
+ value: Zod.string().openapi({
140
+ type: "string",
141
+ example: "+1-555-123-4567",
142
+ }),
143
+ }).openapi({
144
+ type: "object",
145
+ description: "Phone object",
146
+ example: { _type: ObjectType.Phone, value: "+1-555-123-4567" },
147
+ });
148
+ }
134
149
  }
package/Types/Port.ts CHANGED
@@ -4,6 +4,7 @@ import { JSONObject, ObjectType } from "./JSON";
4
4
  import PositiveNumber from "./PositiveNumber";
5
5
  import Typeof from "./Typeof";
6
6
  import { FindOperator } from "typeorm/find-options/FindOperator";
7
+ import Zod, { ZodSchema } from "../Utils/Schema/Zod";
7
8
 
8
9
  export default class Port extends DatabaseProperty {
9
10
  private _port: PositiveNumber = new PositiveNumber(0);
@@ -89,4 +90,18 @@ export default class Port extends DatabaseProperty {
89
90
  public toNumber(): number {
90
91
  return this.port.toNumber();
91
92
  }
93
+
94
+ public static override getSchema(): ZodSchema {
95
+ return Zod.object({
96
+ _type: Zod.literal(ObjectType.Port),
97
+ value: Zod.number().int().min(0).max(65535).openapi({
98
+ type: "number",
99
+ example: 8080,
100
+ }),
101
+ }).openapi({
102
+ type: "object",
103
+ description: "Port object",
104
+ example: { _type: ObjectType.Port, value: 8080 },
105
+ });
106
+ }
92
107
  }
package/Types/Version.ts CHANGED
@@ -2,6 +2,7 @@ import DatabaseProperty from "./Database/DatabaseProperty";
2
2
  import BadDataException from "./Exception/BadDataException";
3
3
  import { JSONObject, ObjectType } from "./JSON";
4
4
  import { FindOperator } from "typeorm";
5
+ import Zod, { ZodSchema } from "../Utils/Schema/Zod";
5
6
 
6
7
  export default class Version extends DatabaseProperty {
7
8
  private _version: string = "";
@@ -63,4 +64,18 @@ export default class Version extends DatabaseProperty {
63
64
 
64
65
  return null;
65
66
  }
67
+
68
+ public static override getSchema(): ZodSchema {
69
+ return Zod.object({
70
+ _type: Zod.literal(ObjectType.Version),
71
+ value: Zod.string().openapi({
72
+ type: "string",
73
+ example: "1.0.0",
74
+ }),
75
+ }).openapi({
76
+ type: "object",
77
+ description: "Version object",
78
+ example: { _type: ObjectType.Version, value: "1.0.0" },
79
+ });
80
+ }
66
81
  }
@@ -37,7 +37,7 @@ export default class ProjectUtil {
37
37
  return null;
38
38
  }
39
39
 
40
- public static setIsSubscriptionInactive(data: {
40
+ public static setIsSubscriptionInactiveOrOverdue(data: {
41
41
  paymentProviderMeteredSubscriptionStatus: SubscriptionStatus;
42
42
  paymentProviderSubscriptionStatus: SubscriptionStatus;
43
43
  }): boolean {
@@ -52,13 +52,26 @@ export default class ProjectUtil {
52
52
  data.paymentProviderSubscriptionStatus,
53
53
  );
54
54
 
55
+ const isSubscriptionOverdue: boolean =
56
+ SubscriptionStatusUtil.isSubscriptionOverdue(
57
+ data.paymentProviderMeteredSubscriptionStatus,
58
+ ) ||
59
+ SubscriptionStatusUtil.isSubscriptionOverdue(
60
+ data.paymentProviderSubscriptionStatus,
61
+ );
62
+
55
63
  // save this to local storage
56
64
  LocalStorage.setItem(
57
65
  currentProjectId?.toString() + "_isSubscriptionInactive",
58
66
  isSubscriptionInactive,
59
67
  );
60
68
 
61
- return isSubscriptionInactive;
69
+ LocalStorage.setItem(
70
+ currentProjectId?.toString() + "_isSubscriptionOverdue",
71
+ isSubscriptionOverdue,
72
+ );
73
+
74
+ return isSubscriptionInactive || isSubscriptionOverdue;
62
75
  }
63
76
 
64
77
  public static isSubscriptionInactive(): boolean {