@oneuptime/common 7.0.3526 → 7.0.3538
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/Models/DatabaseModels/AlertFeed.ts +12 -4
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +2 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.ts +59 -2
- package/Models/DatabaseModels/UserNotificationRule.ts +50 -0
- package/Models/DatabaseModels/UserOnCallLog.ts +48 -1
- package/Models/DatabaseModels/UserOnCallLogTimeline.ts +49 -2
- package/Server/API/UserOnCallLogTimelineAPI.ts +32 -8
- package/Server/Infrastructure/Postgres/SchemaMigrations/1737141420441-MigrationName.ts +131 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Services/AlertInternalNoteService.ts +73 -0
- package/Server/Services/AlertOwnerTeamService.ts +112 -0
- package/Server/Services/AlertOwnerUserService.ts +114 -0
- package/Server/Services/AlertService.ts +121 -0
- package/Server/Services/AlertStateTimelineService.ts +52 -0
- package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +32 -14
- package/Server/Services/OnCallDutyPolicyExecutionLogService.ts +86 -27
- package/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.ts +30 -12
- package/Server/Services/UserNotificationRuleService.ts +450 -67
- package/Server/Services/UserOnCallLogService.ts +61 -18
- package/Server/Services/UserOnCallLogTimelineService.ts +25 -11
- package/Types/Email/EmailTemplateType.ts +1 -0
- package/Types/NotificationRule/NotificationRuleType.ts +1 -1
- package/build/dist/Models/DatabaseModels/AlertFeed.js +12 -4
- package/build/dist/Models/DatabaseModels/AlertFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +2 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js +60 -2
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserNotificationRule.js +49 -0
- package/build/dist/Models/DatabaseModels/UserNotificationRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js +48 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +50 -2
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
- package/build/dist/Server/API/UserOnCallLogTimelineAPI.js +10 -2
- package/build/dist/Server/API/UserOnCallLogTimelineAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1737141420441-MigrationName.js +50 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1737141420441-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AlertInternalNoteService.js +56 -0
- package/build/dist/Server/Services/AlertInternalNoteService.js.map +1 -1
- package/build/dist/Server/Services/AlertOwnerTeamService.js +86 -0
- package/build/dist/Server/Services/AlertOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/AlertOwnerUserService.js +89 -0
- package/build/dist/Server/Services/AlertOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +107 -3
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/AlertStateTimelineService.js +44 -1
- package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +18 -8
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js +70 -24
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js +26 -11
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationRuleService.js +334 -67
- package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/UserOnCallLogService.js +66 -27
- package/build/dist/Server/Services/UserOnCallLogService.js.map +1 -1
- package/build/dist/Server/Services/UserOnCallLogTimelineService.js +16 -5
- package/build/dist/Server/Services/UserOnCallLogTimelineService.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/NotificationRule/NotificationRuleType.js +1 -1
- package/build/dist/Types/NotificationRule/NotificationRuleType.js.map +1 -1
- package/package.json +2 -2
|
@@ -6,10 +6,12 @@ import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
|
6
6
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
7
7
|
import NotificationRuleType from "../../Types/NotificationRule/NotificationRuleType";
|
|
8
8
|
import OnCallDutyExecutionLogTimelineStatus from "../../Types/OnCallDutyPolicy/OnCalDutyExecutionLogTimelineStatus";
|
|
9
|
+
import PositiveNumber from "../../Types/PositiveNumber";
|
|
9
10
|
import UserNotificationEventType from "../../Types/UserNotification/UserNotificationEventType";
|
|
10
11
|
import UserNotificationExecutionStatus from "../../Types/UserNotification/UserNotificationExecutionStatus";
|
|
11
12
|
import Model from "Common/Models/DatabaseModels/UserOnCallLog";
|
|
12
13
|
import { IsBillingEnabled } from "../EnvironmentConfig";
|
|
14
|
+
import AlertService from "./AlertService";
|
|
13
15
|
export class Service extends DatabaseService {
|
|
14
16
|
constructor() {
|
|
15
17
|
super(Model);
|
|
@@ -85,29 +87,59 @@ export class Service extends DatabaseService {
|
|
|
85
87
|
},
|
|
86
88
|
});
|
|
87
89
|
const notificationRuleType = this.getNotificationRuleType(createdItem.userNotificationEventType);
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
90
|
+
let ruleCount = new PositiveNumber(0);
|
|
91
|
+
let incident = null;
|
|
92
|
+
let alert = null;
|
|
93
|
+
if (createdItem.triggeredByIncidentId) {
|
|
94
|
+
incident = await IncidentService.findOneById({
|
|
95
|
+
id: createdItem.triggeredByIncidentId,
|
|
96
|
+
props: {
|
|
97
|
+
isRoot: true,
|
|
98
|
+
},
|
|
99
|
+
select: {
|
|
100
|
+
incidentSeverityId: true,
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
// Check if there are any rules .
|
|
104
|
+
ruleCount = await UserNotificationRuleService.countBy({
|
|
105
|
+
query: {
|
|
106
|
+
userId: createdItem.userId,
|
|
107
|
+
projectId: createdItem.projectId,
|
|
108
|
+
ruleType: notificationRuleType,
|
|
109
|
+
incidentSeverityId: incident === null || incident === void 0 ? void 0 : incident.incidentSeverityId,
|
|
110
|
+
},
|
|
111
|
+
skip: 0,
|
|
112
|
+
limit: LIMIT_PER_PROJECT,
|
|
113
|
+
props: {
|
|
114
|
+
isRoot: true,
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
// get rule count for alerts.
|
|
119
|
+
if (createdItem.triggeredByAlertId) {
|
|
120
|
+
alert = await AlertService.findOneById({
|
|
121
|
+
id: createdItem.triggeredByAlertId,
|
|
122
|
+
props: {
|
|
123
|
+
isRoot: true,
|
|
124
|
+
},
|
|
125
|
+
select: {
|
|
126
|
+
alertSeverityId: true,
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
ruleCount = await UserNotificationRuleService.countBy({
|
|
130
|
+
query: {
|
|
131
|
+
userId: createdItem.userId,
|
|
132
|
+
projectId: createdItem.projectId,
|
|
133
|
+
ruleType: notificationRuleType,
|
|
134
|
+
alertSeverityId: alert === null || alert === void 0 ? void 0 : alert.alertSeverityId,
|
|
135
|
+
},
|
|
136
|
+
skip: 0,
|
|
137
|
+
limit: LIMIT_PER_PROJECT,
|
|
138
|
+
props: {
|
|
139
|
+
isRoot: true,
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
}
|
|
111
143
|
if (ruleCount.toNumber() === 0) {
|
|
112
144
|
// update this item to be processed.
|
|
113
145
|
await this.updateOneById({
|
|
@@ -140,7 +172,12 @@ export class Service extends DatabaseService {
|
|
|
140
172
|
projectId: createdItem.projectId,
|
|
141
173
|
notifyAfterMinutes: 0,
|
|
142
174
|
ruleType: notificationRuleType,
|
|
143
|
-
incidentSeverityId: incident
|
|
175
|
+
incidentSeverityId: incident && incident.incidentSeverityId
|
|
176
|
+
? incident === null || incident === void 0 ? void 0 : incident.incidentSeverityId
|
|
177
|
+
: undefined,
|
|
178
|
+
alertSeverityId: alert && alert.alertSeverityId
|
|
179
|
+
? alert === null || alert === void 0 ? void 0 : alert.alertSeverityId
|
|
180
|
+
: undefined,
|
|
144
181
|
},
|
|
145
182
|
select: {
|
|
146
183
|
_id: true,
|
|
@@ -156,6 +193,7 @@ export class Service extends DatabaseService {
|
|
|
156
193
|
userNotificationLogId: createdItem.id,
|
|
157
194
|
projectId: createdItem.projectId,
|
|
158
195
|
triggeredByIncidentId: createdItem.triggeredByIncidentId,
|
|
196
|
+
triggeredByAlertId: createdItem.triggeredByAlertId,
|
|
159
197
|
userNotificationEventType: createdItem.userNotificationEventType,
|
|
160
198
|
onCallPolicyExecutionLogId: createdItem.onCallDutyPolicyExecutionLogId,
|
|
161
199
|
onCallPolicyId: createdItem.onCallDutyPolicyId,
|
|
@@ -188,9 +226,10 @@ export class Service extends DatabaseService {
|
|
|
188
226
|
return createdItem;
|
|
189
227
|
}
|
|
190
228
|
getNotificationRuleType(userNotificationEventType) {
|
|
191
|
-
let notificationRuleType = NotificationRuleType.
|
|
192
|
-
if (userNotificationEventType === UserNotificationEventType.IncidentCreated
|
|
193
|
-
|
|
229
|
+
let notificationRuleType = NotificationRuleType.ON_CALL_EXECUTED;
|
|
230
|
+
if (userNotificationEventType === UserNotificationEventType.IncidentCreated ||
|
|
231
|
+
userNotificationEventType === UserNotificationEventType.AlertCreated) {
|
|
232
|
+
notificationRuleType = NotificationRuleType.ON_CALL_EXECUTED;
|
|
194
233
|
}
|
|
195
234
|
else {
|
|
196
235
|
// Invalid user notification event type.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserOnCallLogService.js","sourceRoot":"","sources":["../../../../Server/Services/UserOnCallLogService.ts"],"names":[],"mappings":"AAEA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,2CAA2C,MAAM,+CAA+C,CAAC;AACxG,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AACtE,OAAO,oBAAoB,MAAM,mDAAmD,CAAC;AAErF,OAAO,oCAAoC,MAAM,kEAAkE,CAAC;
|
|
1
|
+
{"version":3,"file":"UserOnCallLogService.js","sourceRoot":"","sources":["../../../../Server/Services/UserOnCallLogService.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import OnCallDutyExecutionLogTimelineStatus from "../../Types/OnCallDutyPolicy/O
|
|
|
10
10
|
import OnCallDutyPolicyStatus from "../../Types/OnCallDutyPolicy/OnCallDutyPolicyStatus";
|
|
11
11
|
import UserNotificationExecutionStatus from "../../Types/UserNotification/UserNotificationExecutionStatus";
|
|
12
12
|
import Model from "Common/Models/DatabaseModels/UserOnCallLogTimeline";
|
|
13
|
+
import AlertService from "./AlertService";
|
|
13
14
|
export class Service extends DatabaseService {
|
|
14
15
|
constructor() {
|
|
15
16
|
super(Model);
|
|
@@ -26,6 +27,7 @@ export class Service extends DatabaseService {
|
|
|
26
27
|
userNotificationLogId: true,
|
|
27
28
|
onCallDutyPolicyExecutionLogId: true,
|
|
28
29
|
triggeredByIncidentId: true,
|
|
30
|
+
triggeredByAlertId: true,
|
|
29
31
|
onCallDutyPolicyExecutionLogTimelineId: true,
|
|
30
32
|
},
|
|
31
33
|
skip: 0,
|
|
@@ -35,6 +37,8 @@ export class Service extends DatabaseService {
|
|
|
35
37
|
},
|
|
36
38
|
});
|
|
37
39
|
for (const item of items) {
|
|
40
|
+
const isIncident = Boolean(item.triggeredByIncidentId);
|
|
41
|
+
const isAlert = Boolean(item.triggeredByAlertId);
|
|
38
42
|
// this incident is acknowledged.
|
|
39
43
|
// now we need to ack the parent log.
|
|
40
44
|
const user = await UserService.findOneById({
|
|
@@ -51,13 +55,14 @@ export class Service extends DatabaseService {
|
|
|
51
55
|
if (!user) {
|
|
52
56
|
throw new BadDataException("User not found.");
|
|
53
57
|
}
|
|
58
|
+
const statusMessage = `${isIncident ? "Incident" : "Alert"} acknowledged by ${user.name} (${user.email})`;
|
|
54
59
|
await UserOnCallLogService.updateOneById({
|
|
55
60
|
id: item.userNotificationLogId,
|
|
56
61
|
data: {
|
|
57
62
|
acknowledgedAt: onUpdate.updateBy.data.acknowledgedAt,
|
|
58
63
|
acknowledgedByUserId: item.userId,
|
|
59
64
|
status: UserNotificationExecutionStatus.Completed,
|
|
60
|
-
statusMessage:
|
|
65
|
+
statusMessage: statusMessage,
|
|
61
66
|
},
|
|
62
67
|
props: {
|
|
63
68
|
isRoot: true,
|
|
@@ -70,7 +75,7 @@ export class Service extends DatabaseService {
|
|
|
70
75
|
acknowledgedAt: onUpdate.updateBy.data.acknowledgedAt,
|
|
71
76
|
acknowledgedByUserId: item.userId,
|
|
72
77
|
status: OnCallDutyPolicyStatus.Completed,
|
|
73
|
-
statusMessage:
|
|
78
|
+
statusMessage: statusMessage,
|
|
74
79
|
},
|
|
75
80
|
props: {
|
|
76
81
|
isRoot: true,
|
|
@@ -83,14 +88,20 @@ export class Service extends DatabaseService {
|
|
|
83
88
|
acknowledgedAt: onUpdate.updateBy.data.acknowledgedAt,
|
|
84
89
|
isAcknowledged: true,
|
|
85
90
|
status: OnCallDutyExecutionLogTimelineStatus.SuccessfullyAcknowledged,
|
|
86
|
-
statusMessage:
|
|
91
|
+
statusMessage: statusMessage,
|
|
87
92
|
},
|
|
88
93
|
props: {
|
|
89
94
|
isRoot: true,
|
|
90
95
|
},
|
|
91
96
|
});
|
|
92
|
-
|
|
93
|
-
|
|
97
|
+
if (isIncident) {
|
|
98
|
+
// incident.
|
|
99
|
+
await IncidentService.acknowledgeIncident(item.triggeredByIncidentId, item.userId);
|
|
100
|
+
}
|
|
101
|
+
if (isAlert) {
|
|
102
|
+
// alert.
|
|
103
|
+
await AlertService.acknowledgeAlert(item.triggeredByAlertId, item.userId);
|
|
104
|
+
}
|
|
94
105
|
}
|
|
95
106
|
}
|
|
96
107
|
return onUpdate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserOnCallLogTimelineService.js","sourceRoot":"","sources":["../../../../Server/Services/UserOnCallLogTimelineService.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,2CAA2C,MAAM,+CAA+C,CAAC;AACxG,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AAEtE,OAAO,oCAAoC,MAAM,kEAAkE,CAAC;AACpH,OAAO,sBAAsB,MAAM,qDAAqD,CAAC;AACzF,OAAO,+BAA+B,MAAM,8DAA8D,CAAC;AAE3G,OAAO,KAAK,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"UserOnCallLogTimelineService.js","sourceRoot":"","sources":["../../../../Server/Services/UserOnCallLogTimelineService.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,7 @@ var EmailTemplateType;
|
|
|
45
45
|
EmailTemplateType["SimpleMessage"] = "SimpleMessage.hbs";
|
|
46
46
|
EmailTemplateType["VerificationCode"] = "VerificationCode.hbs";
|
|
47
47
|
EmailTemplateType["AcknowledgeIncident"] = "AcknowledgeIncident.hbs";
|
|
48
|
+
EmailTemplateType["AcknowledgeAlert"] = "AcknowledgeAlert.hbs";
|
|
48
49
|
})(EmailTemplateType || (EmailTemplateType = {}));
|
|
49
50
|
export default EmailTemplateType;
|
|
50
51
|
//# sourceMappingURL=EmailTemplateType.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailTemplateType.js","sourceRoot":"","sources":["../../../../Types/Email/EmailTemplateType.ts"],"names":[],"mappings":"AAAA,IAAK,
|
|
1
|
+
{"version":3,"file":"EmailTemplateType.js","sourceRoot":"","sources":["../../../../Types/Email/EmailTemplateType.ts"],"names":[],"mappings":"AAAA,IAAK,iBAkDJ;AAlDD,WAAK,iBAAiB;IACpB,0DAAqC,CAAA;IACrC,sDAAiC,CAAA;IACjC,kEAA6C,CAAA;IAC7C,oFAA+D,CAAA;IAC/D,wFAAmE,CAAA;IACnE,wDAAmC,CAAA;IACnC,4DAAuC,CAAA;IACvC,4DAAuC,CAAA;IACvC,sDAAiC,CAAA;IACjC,sDAAiC,CAAA;IACjC,0EAAqD,CAAA;IACrD,wFAAmE,CAAA;IACnE,gFAA2D,CAAA;IAC3D,kFAA6D,CAAA;IAC7D,wFAAmE,CAAA;IACnE,0FAAqE,CAAA;IACrE,kHAA6F,CAAA;IAC7F,4HAAuG,CAAA;IACvG,8EAAyD,CAAA;IACzD,gFAA2D,CAAA;IAC3D,0EAAqD,CAAA;IACrD,0HAAqG,CAAA;IACrG,8CAAyB,CAAA;IACzB,gEAA2C,CAAA;IAC3C,oFAA+D,CAAA;IAC/D,oEAA+C,CAAA;IAC/C,gFAA2D,CAAA;IAE3D,kEAA6C,CAAA;IAC7C,gFAA2D,CAAA;IAC3D,4EAAuD,CAAA;IACvD,sFAAiE,CAAA;IAEjE,4DAAuC,CAAA;IACvC,0EAAqD,CAAA;IACrD,sEAAiD,CAAA;IACjD,gFAA2D,CAAA;IAE3D,oGAA+E,CAAA;IAC/E,0FAAqE,CAAA;IACrE,wGAAmF,CAAA;IACnF,8GAAyF,CAAA;IACzF,0FAAqE,CAAA;IACrE,sEAAiD,CAAA;IACjD,gGAA2E,CAAA;IAC3E,wDAAmC,CAAA;IACnC,8DAAyC,CAAA;IACzC,oEAA+C,CAAA;IAC/C,8DAAyC,CAAA;AAC3C,CAAC,EAlDI,iBAAiB,KAAjB,iBAAiB,QAkDrB;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var NotificationRuleType;
|
|
2
2
|
(function (NotificationRuleType) {
|
|
3
|
-
NotificationRuleType["
|
|
3
|
+
NotificationRuleType["ON_CALL_EXECUTED"] = "When on-call policy is executed";
|
|
4
4
|
NotificationRuleType["WHEN_USER_GOES_ON_CALL"] = "When user goes on call";
|
|
5
5
|
NotificationRuleType["WHEN_USER_GOES_OFF_CALL"] = "When user goes off call";
|
|
6
6
|
})(NotificationRuleType || (NotificationRuleType = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationRuleType.js","sourceRoot":"","sources":["../../../../Types/NotificationRule/NotificationRuleType.ts"],"names":[],"mappings":"AAAA,IAAK,oBAIJ;AAJD,WAAK,oBAAoB;IACvB,
|
|
1
|
+
{"version":3,"file":"NotificationRuleType.js","sourceRoot":"","sources":["../../../../Types/NotificationRule/NotificationRuleType.ts"],"names":[],"mappings":"AAAA,IAAK,oBAIJ;AAJD,WAAK,oBAAoB;IACvB,4EAAoD,CAAA;IACpD,yEAAiD,CAAA;IACjD,2EAAmD,CAAA;AACrD,CAAC,EAJI,oBAAoB,KAApB,oBAAoB,QAIxB;AAED,eAAe,oBAAoB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneuptime/common",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.3538",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"airtable": "^0.12.2",
|
|
78
78
|
"axios": "^1.7.2",
|
|
79
79
|
"bullmq": "^5.3.3",
|
|
80
|
-
"Common": "npm:@oneuptime/common@7.0.
|
|
80
|
+
"Common": "npm:@oneuptime/common@7.0.3538",
|
|
81
81
|
"cookie-parser": "^1.4.7",
|
|
82
82
|
"cors": "^2.8.5",
|
|
83
83
|
"cron-parser": "^4.8.1",
|