@oneuptime/common 7.0.4913 → 7.0.4922

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,58 +1,150 @@
1
1
  import { MigrationInterface, QueryRunner } from "typeorm";
2
2
 
3
3
  export class MigrationName1754671483948 implements MigrationInterface {
4
- public name = 'RenameSubscriberNotificationFailedReasonToStatusMessage1754484441976'
4
+ public name =
5
+ "RenameSubscriberNotificationFailedReasonToStatusMessage1754484441976";
5
6
 
6
- public async up(queryRunner: QueryRunner): Promise<void> {
7
- await queryRunner.query(`ALTER TABLE "Incident" DROP COLUMN "isStatusPageSubscribersNotifiedOnIncidentCreated"`);
8
- await queryRunner.query(`ALTER TABLE "IncidentPublicNote" DROP COLUMN "isStatusPageSubscribersNotifiedOnNoteCreated"`);
9
- await queryRunner.query(`ALTER TABLE "IncidentStateTimeline" DROP COLUMN "isStatusPageSubscribersNotified"`);
10
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenance" DROP COLUMN "isStatusPageSubscribersNotifiedOnEventScheduled"`);
11
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenancePublicNote" DROP COLUMN "isStatusPageSubscribersNotifiedOnNoteCreated"`);
12
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenanceStateTimeline" DROP COLUMN "isStatusPageSubscribersNotified"`);
13
- await queryRunner.query(`ALTER TABLE "StatusPageAnnouncement" DROP COLUMN "isStatusPageSubscribersNotified"`);
14
- await queryRunner.query(`ALTER TABLE "Incident" ADD "subscriberNotificationStatusOnIncidentCreated" character varying NOT NULL DEFAULT 'Pending'`);
15
- await queryRunner.query(`ALTER TABLE "Incident" ADD "subscriberNotificationStatusMessage" text`);
16
- await queryRunner.query(`ALTER TABLE "IncidentPublicNote" ADD "subscriberNotificationStatusOnNoteCreated" character varying NOT NULL DEFAULT 'Pending'`);
17
- await queryRunner.query(`ALTER TABLE "IncidentPublicNote" ADD "subscriberNotificationStatusMessage" text`);
18
- await queryRunner.query(`ALTER TABLE "IncidentStateTimeline" ADD "subscriberNotificationStatus" character varying NOT NULL DEFAULT 'Pending'`);
19
- await queryRunner.query(`ALTER TABLE "IncidentStateTimeline" ADD "subscriberNotificationStatusMessage" text`);
20
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenance" ADD "subscriberNotificationStatusOnEventScheduled" character varying NOT NULL DEFAULT 'Pending'`);
21
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenance" ADD "subscriberNotificationStatusMessage" text`);
22
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenancePublicNote" ADD "subscriberNotificationStatusOnNoteCreated" character varying NOT NULL DEFAULT 'Pending'`);
23
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenancePublicNote" ADD "subscriberNotificationStatusMessage" text`);
24
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenanceStateTimeline" ADD "subscriberNotificationStatus" character varying NOT NULL DEFAULT 'Pending'`);
25
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenanceStateTimeline" ADD "subscriberNotificationStatusMessage" text`);
26
- await queryRunner.query(`ALTER TABLE "StatusPageAnnouncement" ADD "subscriberNotificationStatus" character varying NOT NULL DEFAULT 'Pending'`);
27
- await queryRunner.query(`ALTER TABLE "StatusPageAnnouncement" ADD "subscriberNotificationStatusMessage" text`);
28
- await queryRunner.query(`ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "rotation" SET DEFAULT '{"_type":"Recurring","value":{"intervalType":"Day","intervalCount":{"_type":"PositiveNumber","value":1}}}'`);
29
- await queryRunner.query(`ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "restrictionTimes" SET DEFAULT '{"_type":"RestrictionTimes","value":{"restictionType":"None","dayRestrictionTimes":null,"weeklyRestrictionTimes":[]}}'`);
30
- }
31
-
32
- public async down(queryRunner: QueryRunner): Promise<void> {
33
- await queryRunner.query(`ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "restrictionTimes" SET DEFAULT '{"_type": "RestrictionTimes", "value": {"restictionType": "None", "dayRestrictionTimes": null, "weeklyRestrictionTimes": []}}'`);
34
- await queryRunner.query(`ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "rotation" SET DEFAULT '{"_type": "Recurring", "value": {"intervalType": "Day", "intervalCount": {"_type": "PositiveNumber", "value": 1}}}'`);
35
- await queryRunner.query(`ALTER TABLE "StatusPageAnnouncement" DROP COLUMN "subscriberNotificationStatusMessage"`);
36
- await queryRunner.query(`ALTER TABLE "StatusPageAnnouncement" DROP COLUMN "subscriberNotificationStatus"`);
37
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenanceStateTimeline" DROP COLUMN "subscriberNotificationStatusMessage"`);
38
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenanceStateTimeline" DROP COLUMN "subscriberNotificationStatus"`);
39
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenancePublicNote" DROP COLUMN "subscriberNotificationStatusMessage"`);
40
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenancePublicNote" DROP COLUMN "subscriberNotificationStatusOnNoteCreated"`);
41
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenance" DROP COLUMN "subscriberNotificationStatusMessage"`);
42
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenance" DROP COLUMN "subscriberNotificationStatusOnEventScheduled"`);
43
- await queryRunner.query(`ALTER TABLE "IncidentStateTimeline" DROP COLUMN "subscriberNotificationStatusMessage"`);
44
- await queryRunner.query(`ALTER TABLE "IncidentStateTimeline" DROP COLUMN "subscriberNotificationStatus"`);
45
- await queryRunner.query(`ALTER TABLE "IncidentPublicNote" DROP COLUMN "subscriberNotificationStatusMessage"`);
46
- await queryRunner.query(`ALTER TABLE "IncidentPublicNote" DROP COLUMN "subscriberNotificationStatusOnNoteCreated"`);
47
- await queryRunner.query(`ALTER TABLE "Incident" DROP COLUMN "subscriberNotificationStatusMessage"`);
48
- await queryRunner.query(`ALTER TABLE "Incident" DROP COLUMN "subscriberNotificationStatusOnIncidentCreated"`);
49
- await queryRunner.query(`ALTER TABLE "StatusPageAnnouncement" ADD "isStatusPageSubscribersNotified" boolean NOT NULL DEFAULT false`);
50
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenanceStateTimeline" ADD "isStatusPageSubscribersNotified" boolean NOT NULL DEFAULT false`);
51
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenancePublicNote" ADD "isStatusPageSubscribersNotifiedOnNoteCreated" boolean NOT NULL DEFAULT false`);
52
- await queryRunner.query(`ALTER TABLE "ScheduledMaintenance" ADD "isStatusPageSubscribersNotifiedOnEventScheduled" boolean NOT NULL DEFAULT false`);
53
- await queryRunner.query(`ALTER TABLE "IncidentStateTimeline" ADD "isStatusPageSubscribersNotified" boolean NOT NULL DEFAULT false`);
54
- await queryRunner.query(`ALTER TABLE "IncidentPublicNote" ADD "isStatusPageSubscribersNotifiedOnNoteCreated" boolean NOT NULL DEFAULT false`);
55
- await queryRunner.query(`ALTER TABLE "Incident" ADD "isStatusPageSubscribersNotifiedOnIncidentCreated" boolean NOT NULL DEFAULT false`);
56
- }
7
+ public async up(queryRunner: QueryRunner): Promise<void> {
8
+ await queryRunner.query(
9
+ `ALTER TABLE "Incident" DROP COLUMN "isStatusPageSubscribersNotifiedOnIncidentCreated"`,
10
+ );
11
+ await queryRunner.query(
12
+ `ALTER TABLE "IncidentPublicNote" DROP COLUMN "isStatusPageSubscribersNotifiedOnNoteCreated"`,
13
+ );
14
+ await queryRunner.query(
15
+ `ALTER TABLE "IncidentStateTimeline" DROP COLUMN "isStatusPageSubscribersNotified"`,
16
+ );
17
+ await queryRunner.query(
18
+ `ALTER TABLE "ScheduledMaintenance" DROP COLUMN "isStatusPageSubscribersNotifiedOnEventScheduled"`,
19
+ );
20
+ await queryRunner.query(
21
+ `ALTER TABLE "ScheduledMaintenancePublicNote" DROP COLUMN "isStatusPageSubscribersNotifiedOnNoteCreated"`,
22
+ );
23
+ await queryRunner.query(
24
+ `ALTER TABLE "ScheduledMaintenanceStateTimeline" DROP COLUMN "isStatusPageSubscribersNotified"`,
25
+ );
26
+ await queryRunner.query(
27
+ `ALTER TABLE "StatusPageAnnouncement" DROP COLUMN "isStatusPageSubscribersNotified"`,
28
+ );
29
+ await queryRunner.query(
30
+ `ALTER TABLE "Incident" ADD "subscriberNotificationStatusOnIncidentCreated" character varying NOT NULL DEFAULT 'Pending'`,
31
+ );
32
+ await queryRunner.query(
33
+ `ALTER TABLE "Incident" ADD "subscriberNotificationStatusMessage" text`,
34
+ );
35
+ await queryRunner.query(
36
+ `ALTER TABLE "IncidentPublicNote" ADD "subscriberNotificationStatusOnNoteCreated" character varying NOT NULL DEFAULT 'Pending'`,
37
+ );
38
+ await queryRunner.query(
39
+ `ALTER TABLE "IncidentPublicNote" ADD "subscriberNotificationStatusMessage" text`,
40
+ );
41
+ await queryRunner.query(
42
+ `ALTER TABLE "IncidentStateTimeline" ADD "subscriberNotificationStatus" character varying NOT NULL DEFAULT 'Pending'`,
43
+ );
44
+ await queryRunner.query(
45
+ `ALTER TABLE "IncidentStateTimeline" ADD "subscriberNotificationStatusMessage" text`,
46
+ );
47
+ await queryRunner.query(
48
+ `ALTER TABLE "ScheduledMaintenance" ADD "subscriberNotificationStatusOnEventScheduled" character varying NOT NULL DEFAULT 'Pending'`,
49
+ );
50
+ await queryRunner.query(
51
+ `ALTER TABLE "ScheduledMaintenance" ADD "subscriberNotificationStatusMessage" text`,
52
+ );
53
+ await queryRunner.query(
54
+ `ALTER TABLE "ScheduledMaintenancePublicNote" ADD "subscriberNotificationStatusOnNoteCreated" character varying NOT NULL DEFAULT 'Pending'`,
55
+ );
56
+ await queryRunner.query(
57
+ `ALTER TABLE "ScheduledMaintenancePublicNote" ADD "subscriberNotificationStatusMessage" text`,
58
+ );
59
+ await queryRunner.query(
60
+ `ALTER TABLE "ScheduledMaintenanceStateTimeline" ADD "subscriberNotificationStatus" character varying NOT NULL DEFAULT 'Pending'`,
61
+ );
62
+ await queryRunner.query(
63
+ `ALTER TABLE "ScheduledMaintenanceStateTimeline" ADD "subscriberNotificationStatusMessage" text`,
64
+ );
65
+ await queryRunner.query(
66
+ `ALTER TABLE "StatusPageAnnouncement" ADD "subscriberNotificationStatus" character varying NOT NULL DEFAULT 'Pending'`,
67
+ );
68
+ await queryRunner.query(
69
+ `ALTER TABLE "StatusPageAnnouncement" ADD "subscriberNotificationStatusMessage" text`,
70
+ );
71
+ await queryRunner.query(
72
+ `ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "rotation" SET DEFAULT '{"_type":"Recurring","value":{"intervalType":"Day","intervalCount":{"_type":"PositiveNumber","value":1}}}'`,
73
+ );
74
+ await queryRunner.query(
75
+ `ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "restrictionTimes" SET DEFAULT '{"_type":"RestrictionTimes","value":{"restictionType":"None","dayRestrictionTimes":null,"weeklyRestrictionTimes":[]}}'`,
76
+ );
77
+ }
57
78
 
79
+ public async down(queryRunner: QueryRunner): Promise<void> {
80
+ await queryRunner.query(
81
+ `ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "restrictionTimes" SET DEFAULT '{"_type": "RestrictionTimes", "value": {"restictionType": "None", "dayRestrictionTimes": null, "weeklyRestrictionTimes": []}}'`,
82
+ );
83
+ await queryRunner.query(
84
+ `ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "rotation" SET DEFAULT '{"_type": "Recurring", "value": {"intervalType": "Day", "intervalCount": {"_type": "PositiveNumber", "value": 1}}}'`,
85
+ );
86
+ await queryRunner.query(
87
+ `ALTER TABLE "StatusPageAnnouncement" DROP COLUMN "subscriberNotificationStatusMessage"`,
88
+ );
89
+ await queryRunner.query(
90
+ `ALTER TABLE "StatusPageAnnouncement" DROP COLUMN "subscriberNotificationStatus"`,
91
+ );
92
+ await queryRunner.query(
93
+ `ALTER TABLE "ScheduledMaintenanceStateTimeline" DROP COLUMN "subscriberNotificationStatusMessage"`,
94
+ );
95
+ await queryRunner.query(
96
+ `ALTER TABLE "ScheduledMaintenanceStateTimeline" DROP COLUMN "subscriberNotificationStatus"`,
97
+ );
98
+ await queryRunner.query(
99
+ `ALTER TABLE "ScheduledMaintenancePublicNote" DROP COLUMN "subscriberNotificationStatusMessage"`,
100
+ );
101
+ await queryRunner.query(
102
+ `ALTER TABLE "ScheduledMaintenancePublicNote" DROP COLUMN "subscriberNotificationStatusOnNoteCreated"`,
103
+ );
104
+ await queryRunner.query(
105
+ `ALTER TABLE "ScheduledMaintenance" DROP COLUMN "subscriberNotificationStatusMessage"`,
106
+ );
107
+ await queryRunner.query(
108
+ `ALTER TABLE "ScheduledMaintenance" DROP COLUMN "subscriberNotificationStatusOnEventScheduled"`,
109
+ );
110
+ await queryRunner.query(
111
+ `ALTER TABLE "IncidentStateTimeline" DROP COLUMN "subscriberNotificationStatusMessage"`,
112
+ );
113
+ await queryRunner.query(
114
+ `ALTER TABLE "IncidentStateTimeline" DROP COLUMN "subscriberNotificationStatus"`,
115
+ );
116
+ await queryRunner.query(
117
+ `ALTER TABLE "IncidentPublicNote" DROP COLUMN "subscriberNotificationStatusMessage"`,
118
+ );
119
+ await queryRunner.query(
120
+ `ALTER TABLE "IncidentPublicNote" DROP COLUMN "subscriberNotificationStatusOnNoteCreated"`,
121
+ );
122
+ await queryRunner.query(
123
+ `ALTER TABLE "Incident" DROP COLUMN "subscriberNotificationStatusMessage"`,
124
+ );
125
+ await queryRunner.query(
126
+ `ALTER TABLE "Incident" DROP COLUMN "subscriberNotificationStatusOnIncidentCreated"`,
127
+ );
128
+ await queryRunner.query(
129
+ `ALTER TABLE "StatusPageAnnouncement" ADD "isStatusPageSubscribersNotified" boolean NOT NULL DEFAULT false`,
130
+ );
131
+ await queryRunner.query(
132
+ `ALTER TABLE "ScheduledMaintenanceStateTimeline" ADD "isStatusPageSubscribersNotified" boolean NOT NULL DEFAULT false`,
133
+ );
134
+ await queryRunner.query(
135
+ `ALTER TABLE "ScheduledMaintenancePublicNote" ADD "isStatusPageSubscribersNotifiedOnNoteCreated" boolean NOT NULL DEFAULT false`,
136
+ );
137
+ await queryRunner.query(
138
+ `ALTER TABLE "ScheduledMaintenance" ADD "isStatusPageSubscribersNotifiedOnEventScheduled" boolean NOT NULL DEFAULT false`,
139
+ );
140
+ await queryRunner.query(
141
+ `ALTER TABLE "IncidentStateTimeline" ADD "isStatusPageSubscribersNotified" boolean NOT NULL DEFAULT false`,
142
+ );
143
+ await queryRunner.query(
144
+ `ALTER TABLE "IncidentPublicNote" ADD "isStatusPageSubscribersNotifiedOnNoteCreated" boolean NOT NULL DEFAULT false`,
145
+ );
146
+ await queryRunner.query(
147
+ `ALTER TABLE "Incident" ADD "isStatusPageSubscribersNotifiedOnIncidentCreated" boolean NOT NULL DEFAULT false`,
148
+ );
149
+ }
58
150
  }
@@ -303,5 +303,5 @@ export default [
303
303
  MigrationName1754304193228,
304
304
  MigrationName1754315774827,
305
305
  MigrationName1754384418632,
306
- MigrationName1754671483948
306
+ MigrationName1754671483948,
307
307
  ];
@@ -27,6 +27,8 @@ export type QueueJob = Job;
27
27
 
28
28
  export default class Queue {
29
29
  private static queueDict: Dictionary<BullQueue> = {};
30
+ // track queues we have already run initial cleanup on
31
+ private static cleanedQueueNames: Set<string> = new Set<string>();
30
32
 
31
33
  @CaptureSpan()
32
34
  public static getQueue(queueName: QueueName): BullQueue {
@@ -41,11 +43,37 @@ export default class Queue {
41
43
  port: RedisPort.toNumber(),
42
44
  password: RedisPassword,
43
45
  },
46
+ // Keep BullMQ data under control to avoid Redis bloat
47
+ defaultJobOptions: {
48
+ // keep only recent completed/failed jobs
49
+ removeOnComplete: { count: 500 }, // keep last 1000 completed jobs
50
+ removeOnFail: { count: 100 }, // keep last 500 failed jobs
51
+ },
52
+ // Optionally cap the event stream length (supported in BullMQ >= v5)
53
+ // This helps prevent the :events stream from growing indefinitely
54
+ streams: {
55
+ events: { maxLen: 1000 },
56
+ },
44
57
  });
45
58
 
46
59
  // save it to the dictionary
47
60
  this.queueDict[queueName] = queue;
48
61
 
62
+ // Fire-and-forget initial cleanup for legacy/old data if not done before
63
+ if (!this.cleanedQueueNames.has(queueName)) {
64
+ this.cleanedQueueNames.add(queueName);
65
+ // Clean jobs older than 1 days to reclaim memory from historic runs
66
+ const oneDaysMs: number = 1 * 24 * 60 * 60 * 1000;
67
+ void (async () => {
68
+ try {
69
+ await queue.clean(oneDaysMs, 1000, "completed");
70
+ await queue.clean(oneDaysMs, 1000, "failed");
71
+ } catch {
72
+ // ignore cleanup errors to not impact normal flow
73
+ }
74
+ })();
75
+ }
76
+
49
77
  return queue;
50
78
  }
51
79
 
@@ -1,6 +1,6 @@
1
1
  export class MigrationName1754671483948 {
2
2
  constructor() {
3
- this.name = 'RenameSubscriberNotificationFailedReasonToStatusMessage1754484441976';
3
+ this.name = "RenameSubscriberNotificationFailedReasonToStatusMessage1754484441976";
4
4
  }
5
5
  async up(queryRunner) {
6
6
  await queryRunner.query(`ALTER TABLE "Incident" DROP COLUMN "isStatusPageSubscribersNotifiedOnIncidentCreated"`);
@@ -1 +1 @@
1
- {"version":3,"file":"1754671483948-MigrationName.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1754671483948-MigrationName.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"1754671483948-MigrationName.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1754671483948-MigrationName.ts"],"names":[],"mappings":"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"}
@@ -302,6 +302,6 @@ export default [
302
302
  MigrationName1754304193228,
303
303
  MigrationName1754315774827,
304
304
  MigrationName1754384418632,
305
- MigrationName1754671483948
305
+ MigrationName1754671483948,
306
306
  ];
307
307
  //# sourceMappingURL=Index.js.map
@@ -35,9 +35,35 @@ class Queue {
35
35
  port: RedisPort.toNumber(),
36
36
  password: RedisPassword,
37
37
  },
38
+ // Keep BullMQ data under control to avoid Redis bloat
39
+ defaultJobOptions: {
40
+ // keep only recent completed/failed jobs
41
+ removeOnComplete: { count: 500 }, // keep last 1000 completed jobs
42
+ removeOnFail: { count: 100 }, // keep last 500 failed jobs
43
+ },
44
+ // Optionally cap the event stream length (supported in BullMQ >= v5)
45
+ // This helps prevent the :events stream from growing indefinitely
46
+ streams: {
47
+ events: { maxLen: 1000 },
48
+ },
38
49
  });
39
50
  // save it to the dictionary
40
51
  this.queueDict[queueName] = queue;
52
+ // Fire-and-forget initial cleanup for legacy/old data if not done before
53
+ if (!this.cleanedQueueNames.has(queueName)) {
54
+ this.cleanedQueueNames.add(queueName);
55
+ // Clean jobs older than 1 days to reclaim memory from historic runs
56
+ const oneDaysMs = 1 * 24 * 60 * 60 * 1000;
57
+ void (async () => {
58
+ try {
59
+ await queue.clean(oneDaysMs, 1000, "completed");
60
+ await queue.clean(oneDaysMs, 1000, "failed");
61
+ }
62
+ catch (_a) {
63
+ // ignore cleanup errors to not impact normal flow
64
+ }
65
+ })();
66
+ }
41
67
  return queue;
42
68
  }
43
69
  static async removeJob(queueName, jobId) {
@@ -137,6 +163,8 @@ class Queue {
137
163
  }
138
164
  }
139
165
  Queue.queueDict = {};
166
+ // track queues we have already run initial cleanup on
167
+ Queue.cleanedQueueNames = new Set();
140
168
  export default Queue;
141
169
  __decorate([
142
170
  CaptureSpan(),
@@ -1 +1 @@
1
- {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/Queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/Queue.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneuptime/common",
3
- "version": "7.0.4913",
3
+ "version": "7.0.4922",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {