@wireapp/core 45.2.1 → 45.2.3

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 +1 @@
1
- {"version":3,"file":"E2EIServiceExternal.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAIzD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,UAAU,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAMnG,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAIrD,OAAO,EAAC,sBAAsB,EAAuB,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAC,sBAAsB,EAAC,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG;IACnE,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,WAAW,CAAC;CAC9B,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;CAC9B,CAAC;AAGF,qBAAa,mBAAoB,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAK9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAR7B,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiD;gBAGhE,gBAAgB,EAAE,UAAU,EAC5B,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,sBAAsB,EAC9C,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU;IAU5B,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKhD,gBAAgB;IAIhB,oBAAoB,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIhF,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,0BAA0B,CACrC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,EAAE,CAAC,GAAG,SAAS,CAAC;IAsBxD,kBAAkB,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,EAAE,GACrB,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,EAAE,CAAC,GAAG,SAAS,CAAC;IAwDxD,oBAAoB,CAC/B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAC1C,OAAO,CAAC,cAAc,EAAE,CAAC;IAgBf,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;YAQvC,4BAA4B;IAO1C;;;;;OAKG;IACU,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,OAAO,KAAK,WAAW,GAKtB;YAEa,+BAA+B;IAK7C;;;;;;;;;;;;OAYG;YACW,0BAA0B;IA6BxC,OAAO,CAAC,4BAA4B;YAStB,+BAA+B;YAQ/B,uBAAuB;YAKvB,0BAA0B;YAI1B,4BAA4B;YAO5B,WAAW;YAkBX,8BAA8B;CAK7C"}
1
+ {"version":3,"file":"E2EIServiceExternal.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAIzD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,UAAU,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAMnG,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAIrD,OAAO,EAAC,sBAAsB,EAAuB,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAC,sBAAsB,EAAC,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG;IACnE,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,WAAW,CAAC;CAC9B,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;CAC9B,CAAC;AAGF,qBAAa,mBAAoB,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAK9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAR7B,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiD;gBAGhE,gBAAgB,EAAE,UAAU,EAC5B,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,sBAAsB,EAC9C,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU;IAU5B,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKhD,gBAAgB;IAIhB,oBAAoB,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIhF,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,0BAA0B,CACrC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,EAAE,CAAC,GAAG,SAAS,CAAC;IAsBxD,kBAAkB,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,EAAE,GACrB,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,EAAE,CAAC,GAAG,SAAS,CAAC;IAwDxD,oBAAoB,CAC/B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAC1C,OAAO,CAAC,cAAc,EAAE,CAAC;IAgBf,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;YAQvC,4BAA4B;IAO1C;;;;;OAKG;IACU,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,OAAO,KAAK,WAAW,GAKtB;YAEa,+BAA+B;IAK7C;;;;;;;;;;;;OAYG;YACW,0BAA0B;IA6BxC,OAAO,CAAC,4BAA4B;YAStB,+BAA+B;YAQ/B,uBAAuB;YAKvB,0BAA0B;YAI1B,4BAA4B;YAO5B,WAAW;YAkBX,8BAA8B;CAM7C"}
@@ -184,7 +184,7 @@ class E2EIServiceExternal extends commons_1.TypedEventEmitter {
184
184
  }
185
185
  }
186
186
  async addCrlDistributionTimer({ expiresAt, url }) {
187
- await this.coreDatabase.add('crls', { expiresAt, url }, url);
187
+ await this.coreDatabase.put('crls', { expiresAt, url }, url);
188
188
  this.scheduleCrlDistributionTimer({ expiresAt, url });
189
189
  }
190
190
  async cancelCrlDistributionTimer(url) {
@@ -209,7 +209,8 @@ class E2EIServiceExternal extends commons_1.TypedEventEmitter {
209
209
  }
210
210
  }
211
211
  async handleNewCrlDistributionPoints(distributionPoints) {
212
- for (const distributionPointUrl of distributionPoints) {
212
+ const uniqueDistributionPoints = Array.from(new Set(distributionPoints));
213
+ for (const distributionPointUrl of uniqueDistributionPoints) {
213
214
  await this.validateCrlDistributionPoint(distributionPointUrl);
214
215
  }
215
216
  }
@@ -684,7 +684,7 @@ class MLSService extends commons_1.TypedEventEmitter {
684
684
  const groupId = await groupIdFromConversationId(qualifiedConversationId, event.subconv);
685
685
  // We should not receive a message for a group the client is not aware of
686
686
  if (!groupId) {
687
- throw new Error(`Could not find a group_id for conversation ${qualifiedConversationId.id}@${qualifiedConversationId.domain}`);
687
+ throw new Error(`Could not find a group_id for conversation ${qualifiedConversationId.id}@${qualifiedConversationId.domain}${event.subconv ? `/subconversation:${event.subconv}` : ''}`);
688
688
  }
689
689
  return (0, messageAdd_1.queueIncomingMLSMessage)(groupId, () => (0, events_1.handleMLSMessageAdd)({ event, mlsService: this, groupId }));
690
690
  }
@@ -1,9 +1,9 @@
1
1
  interface IntervalTask {
2
- key: string;
3
2
  firingDate: number;
4
3
  task: () => void;
5
4
  }
6
5
  interface ScheduleLowPrecisionTaskParams extends IntervalTask {
6
+ key: string;
7
7
  intervalDelay: number;
8
8
  }
9
9
  interface CancelLowPrecisionTaskParams {
@@ -1 +1 @@
1
- {"version":3,"file":"LowPrecisionTaskScheduler.d.ts","sourceRoot":"","sources":["../../../src/util/LowPrecisionTaskScheduler/LowPrecisionTaskScheduler.ts"],"names":[],"mappings":"AAqBA,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,UAAU,8BAA+B,SAAQ,YAAY;IAC3D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,4BAA4B;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB;AAkCD,UAAU,4BAA4B;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB;AAgBD,eAAO,MAAM,yBAAyB;wDAhDmB,8BAA8B;yCAkC7C,4BAA4B;CAcR,CAAC"}
1
+ {"version":3,"file":"LowPrecisionTaskScheduler.d.ts","sourceRoot":"","sources":["../../../src/util/LowPrecisionTaskScheduler/LowPrecisionTaskScheduler.ts"],"names":[],"mappings":"AAqBA,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,UAAU,8BAA+B,SAAQ,YAAY;IAC3D,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,4BAA4B;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB;AAsCD,UAAU,4BAA4B;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB;AAmBD,eAAO,MAAM,yBAAyB;wDAvDmB,8BAA8B;yCAsC7C,4BAA4B;CAiBR,CAAC"}
@@ -31,20 +31,21 @@ const addTask = ({ key, firingDate, task, intervalDelay }) => {
31
31
  if (existingIntervalId) {
32
32
  clearInterval(existingIntervalId);
33
33
  }
34
- const tasks = ((_b = intervals[intervalDelay]) === null || _b === void 0 ? void 0 : _b.tasks) || [];
35
- tasks.push({ key, firingDate, task });
34
+ const tasks = ((_b = intervals[intervalDelay]) === null || _b === void 0 ? void 0 : _b.tasks) || {};
35
+ tasks[key] = { firingDate, task };
36
36
  const timeoutId = setInterval(async () => {
37
37
  var _a;
38
38
  const nowTime = new Date().getTime();
39
39
  const tasks = (_a = intervals[intervalDelay]) === null || _a === void 0 ? void 0 : _a.tasks;
40
- if ((tasks === null || tasks === void 0 ? void 0 : tasks.length) !== 0) {
41
- for (const taskData of tasks) {
42
- if (nowTime >= taskData.firingDate) {
43
- const { task, key } = taskData;
44
- logger.info(`Executing task with key "${key}"`);
45
- cancelTask({ intervalDelay, key });
46
- task();
47
- }
40
+ if (!tasks) {
41
+ return;
42
+ }
43
+ for (const key in tasks) {
44
+ if (tasks[key].firingDate <= nowTime) {
45
+ const { task } = tasks[key];
46
+ logger.info(`Executing task with key "${key}"`);
47
+ delete tasks[key];
48
+ task();
48
49
  }
49
50
  }
50
51
  }, intervalDelay);
@@ -53,11 +54,12 @@ const addTask = ({ key, firingDate, task, intervalDelay }) => {
53
54
  };
54
55
  const cancelTask = ({ intervalDelay, key }) => {
55
56
  if (intervals[intervalDelay]) {
56
- const tasks = intervals[intervalDelay].tasks || [];
57
- const newTasks = tasks.filter(task => task.key !== key);
57
+ const tasks = intervals[intervalDelay].tasks || {};
58
+ const newTasks = Object.assign({}, tasks);
59
+ delete newTasks[key];
58
60
  intervals[intervalDelay].tasks = newTasks;
59
61
  logger.info(`Scheduled task with key "${key}" prematurely cleared`);
60
- if (newTasks.length === 0) {
62
+ if (Object.keys(newTasks).length === 0) {
61
63
  clearInterval(intervals[intervalDelay].timeoutId);
62
64
  delete intervals[intervalDelay];
63
65
  }
@@ -70,6 +70,25 @@ describe('LowPrecisionTaskScheduler', () => {
70
70
  expect(mockedTask1).toHaveBeenCalled();
71
71
  expect(mockedTask2).toHaveBeenCalled();
72
72
  });
73
+ it('adding a task with the same delay and key should overwrite the previous task', async () => {
74
+ const mockedTask1 = jest.fn().mockReturnValue(Promise.resolve('hello task 1'));
75
+ LowPrecisionTaskScheduler_1.LowPrecisionTaskScheduler.addTask({
76
+ key: 'same-key',
77
+ firingDate: 5000,
78
+ intervalDelay: 1000,
79
+ task: mockedTask1,
80
+ });
81
+ LowPrecisionTaskScheduler_1.LowPrecisionTaskScheduler.addTask({
82
+ key: 'same-key',
83
+ firingDate: 7000,
84
+ intervalDelay: 1000,
85
+ task: mockedTask1,
86
+ });
87
+ await (0, testUtils_1.advanceJestTimersWithPromise)(5000);
88
+ expect(mockedTask1).not.toHaveBeenCalled();
89
+ await (0, testUtils_1.advanceJestTimersWithPromise)(2000);
90
+ expect(mockedTask1).toHaveBeenCalled();
91
+ });
73
92
  it('cancels tasks', async () => {
74
93
  const mockedTask3 = jest.fn().mockReturnValue(Promise.resolve('hello task 3'));
75
94
  const mockedTask4 = jest.fn().mockReturnValue(Promise.resolve('hello task 4'));
package/package.json CHANGED
@@ -61,6 +61,6 @@
61
61
  "test:coverage": "jest --coverage",
62
62
  "watch": "tsc --watch"
63
63
  },
64
- "version": "45.2.1",
65
- "gitHead": "c36966446fba95ec9e32f7815b8d1af99ad3c25f"
64
+ "version": "45.2.3",
65
+ "gitHead": "3a3d693ea10b9684892ffe8947eaedf681955136"
66
66
  }