@juzi/wechaty-puppet-service 1.0.122 → 1.0.124

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 (47) hide show
  1. package/dist/cjs/src/client/grpc-manager.d.ts +1 -0
  2. package/dist/cjs/src/client/grpc-manager.d.ts.map +1 -1
  3. package/dist/cjs/src/client/grpc-manager.js +49 -47
  4. package/dist/cjs/src/client/grpc-manager.js.map +1 -1
  5. package/dist/cjs/src/client/payload-store.d.ts +3 -0
  6. package/dist/cjs/src/client/payload-store.d.ts.map +1 -1
  7. package/dist/cjs/src/client/payload-store.js +8 -6
  8. package/dist/cjs/src/client/payload-store.js.map +1 -1
  9. package/dist/cjs/src/client/puppet-service.d.ts +14 -0
  10. package/dist/cjs/src/client/puppet-service.d.ts.map +1 -1
  11. package/dist/cjs/src/client/puppet-service.js +284 -219
  12. package/dist/cjs/src/client/puppet-service.js.map +1 -1
  13. package/dist/cjs/src/package-json.d.ts.map +1 -1
  14. package/dist/cjs/src/package-json.js +4 -3
  15. package/dist/cjs/src/package-json.js.map +1 -1
  16. package/dist/cjs/tests/fast-dirty-room-member.spec.js +123 -21
  17. package/dist/cjs/tests/fast-dirty-room-member.spec.js.map +1 -1
  18. package/dist/cjs/tests/grpc-stream-dirty-order.spec.d.ts +3 -0
  19. package/dist/cjs/tests/grpc-stream-dirty-order.spec.d.ts.map +1 -0
  20. package/dist/cjs/tests/grpc-stream-dirty-order.spec.js +135 -0
  21. package/dist/cjs/tests/grpc-stream-dirty-order.spec.js.map +1 -0
  22. package/dist/esm/src/client/grpc-manager.d.ts +1 -0
  23. package/dist/esm/src/client/grpc-manager.d.ts.map +1 -1
  24. package/dist/esm/src/client/grpc-manager.js +50 -48
  25. package/dist/esm/src/client/grpc-manager.js.map +1 -1
  26. package/dist/esm/src/client/payload-store.d.ts +3 -0
  27. package/dist/esm/src/client/payload-store.d.ts.map +1 -1
  28. package/dist/esm/src/client/payload-store.js +8 -6
  29. package/dist/esm/src/client/payload-store.js.map +1 -1
  30. package/dist/esm/src/client/puppet-service.d.ts +14 -0
  31. package/dist/esm/src/client/puppet-service.d.ts.map +1 -1
  32. package/dist/esm/src/client/puppet-service.js +284 -219
  33. package/dist/esm/src/client/puppet-service.js.map +1 -1
  34. package/dist/esm/src/package-json.d.ts.map +1 -1
  35. package/dist/esm/src/package-json.js +4 -3
  36. package/dist/esm/src/package-json.js.map +1 -1
  37. package/dist/esm/tests/fast-dirty-room-member.spec.js +123 -21
  38. package/dist/esm/tests/fast-dirty-room-member.spec.js.map +1 -1
  39. package/dist/esm/tests/grpc-stream-dirty-order.spec.d.ts +3 -0
  40. package/dist/esm/tests/grpc-stream-dirty-order.spec.d.ts.map +1 -0
  41. package/dist/esm/tests/grpc-stream-dirty-order.spec.js +110 -0
  42. package/dist/esm/tests/grpc-stream-dirty-order.spec.js.map +1 -0
  43. package/package.json +4 -3
  44. package/src/client/grpc-manager.ts +54 -48
  45. package/src/client/payload-store.ts +13 -7
  46. package/src/client/puppet-service.ts +283 -220
  47. package/src/package-json.ts +4 -3
@@ -47,6 +47,20 @@ class PuppetService extends PUPPET.Puppet {
47
47
  options;
48
48
  static VERSION = VERSION;
49
49
  _payloadStore;
50
+ /**
51
+ * Per-roomId serialization chain for RoomMember compound dirty events.
52
+ *
53
+ * The compound RoomMember handler is a `get → mutate → set` sequence
54
+ * across an async FlashStore. Two dirty events for the same roomId
55
+ * (e.g. member-A and member-B, arriving back-to-back) would otherwise
56
+ * both read the same snapshot and each write back with only their own
57
+ * key removed -- losing one of the deletes.
58
+ *
59
+ * Keyed by roomId, each entry chains the pending handler run so a
60
+ * follow-up dirty for the same room waits for the in-flight one to
61
+ * finish. Entries self-clean after their tail resolves.
62
+ */
63
+ _roomMemberDirtyChain = new Map();
50
64
  timeoutMilliseconds;
51
65
  _grpcManager;
52
66
  get grpcManager() {
@@ -67,6 +81,7 @@ class PuppetService extends PUPPET.Puppet {
67
81
  this.options = options;
68
82
  this._payloadStore = new PayloadStore({
69
83
  token: envVars.WECHATY_PUPPET_SERVICE_TOKEN(this.options.token),
84
+ logger: this.options.logger,
70
85
  });
71
86
  this.hookPayloadStore();
72
87
  this.FileBoxUuid = uuidifyFileBoxGrpc(() => this.grpcManager.client);
@@ -96,77 +111,77 @@ class PuppetService extends PUPPET.Puppet {
96
111
  return packageJson.version || '0.0.0';
97
112
  }
98
113
  async onStart() {
99
- log.verbose('PuppetService', 'onStart()');
114
+ this.log.verbose('PuppetService', 'onStart()');
100
115
  this.waitingForLogin = false;
101
116
  this.waitingForReady = false;
102
117
  if (this._grpcManager) {
103
- log.warn('PuppetService', 'onStart() found this.grpc is already existed. dropped.');
118
+ this.log.warn('PuppetService', 'onStart() found this.grpc is already existed. dropped.');
104
119
  this._grpcManager = undefined;
105
120
  }
106
- log.info('PuppetService', 'start() instanciating GrpcManager ...');
121
+ this.log.info('PuppetService', 'start() instanciating GrpcManager ...');
107
122
  const grpcManager = new GrpcManager(this.options);
108
- log.info('PuppetService', 'start() instanciating GrpcManager ... done');
123
+ this.log.info('PuppetService', 'start() instanciating GrpcManager ... done');
109
124
  /**
110
125
  * Huan(202108): when we started the event stream,
111
126
  * the `this.grpc` need to be available for all listeners.
112
127
  */
113
128
  this._grpcManager = grpcManager;
114
- log.info('PuppetService', 'start() setting up bridge grpc event stream ...');
129
+ this.log.info('PuppetService', 'start() setting up bridge grpc event stream ...');
115
130
  this.bridgeGrpcEventStream(grpcManager);
116
- log.info('PuppetService', 'start() setting up bridge grpc event stream ... done');
117
- log.info('PuppetService', 'start() starting grpc manager...');
131
+ this.log.info('PuppetService', 'start() setting up bridge grpc event stream ... done');
132
+ this.log.info('PuppetService', 'start() starting grpc manager...');
118
133
  const { lastEventSeq, accountId } = await this.getMiscellaneousStoreData();
119
134
  await grpcManager.start(lastEventSeq, accountId);
120
- log.info('PuppetService', 'start() starting grpc manager... done');
121
- log.info('PuppetService', 'start healthCheck');
135
+ this.log.info('PuppetService', 'start() starting grpc manager... done');
136
+ this.log.info('PuppetService', 'start healthCheck');
122
137
  this.startHealthCheck();
123
- log.info('PuppetService', 'onStart() ... done');
138
+ this.log.info('PuppetService', 'onStart() ... done');
124
139
  }
125
140
  async onStop() {
126
- log.info('PuppetService', 'onStop()');
141
+ this.log.info('PuppetService', 'onStop()');
127
142
  if (this._grpcManager) {
128
- log.info('PuppetService', 'onStop() stopping grpc manager ...');
143
+ this.log.info('PuppetService', 'onStop() stopping grpc manager ...');
129
144
  const grpcManager = this._grpcManager;
130
145
  this._grpcManager = undefined;
131
146
  await grpcManager.stop();
132
- log.info('PuppetService', 'onStop() stopping grpc manager ... done');
147
+ this.log.info('PuppetService', 'onStop() stopping grpc manager ... done');
133
148
  }
134
- log.info('PuppetService', 'onStop() ... done');
135
- log.info('PuppetService', 'stop healthCheck');
149
+ this.log.info('PuppetService', 'onStop() ... done');
150
+ this.log.info('PuppetService', 'stop healthCheck');
136
151
  this.stopHealthCheck();
137
152
  }
138
153
  hookPayloadStore() {
139
- log.verbose('PuppetService', 'hookPayloadStore()');
154
+ this.log.verbose('PuppetService', 'hookPayloadStore()');
140
155
  this.on('login', async ({ contactId }) => {
141
156
  try {
142
- log.verbose('PuppetService', 'hookPayloadStore() this.on(login) contactId: "%s"', contactId);
157
+ this.log.verbose('PuppetService', 'hookPayloadStore() this.on(login) contactId: "%s"', contactId);
143
158
  await this._payloadStore.start(contactId);
144
159
  }
145
160
  catch (e) {
146
- log.verbose('PuppetService', 'hookPayloadStore() this.on(login) rejection "%s"', e.message);
161
+ this.log.verbose('PuppetService', 'hookPayloadStore() this.on(login) rejection "%s"', e.message);
147
162
  }
148
163
  });
149
164
  this.on('logout', async ({ contactId }) => {
150
- log.verbose('PuppetService', 'hookPayloadStore() this.on(logout) contactId: "%s"', contactId);
165
+ this.log.verbose('PuppetService', 'hookPayloadStore() this.on(logout) contactId: "%s"', contactId);
151
166
  try {
152
167
  await this._payloadStore.stop();
153
168
  }
154
169
  catch (e) {
155
- log.verbose('PuppetService', 'hookPayloadStore() this.on(logout) rejection "%s"', e.message);
170
+ this.log.verbose('PuppetService', 'hookPayloadStore() this.on(logout) rejection "%s"', e.message);
156
171
  }
157
172
  });
158
173
  }
159
174
  bridgeGrpcEventStream(client) {
160
- log.verbose('PuppetService', 'bridgeGrpcEventStream(client)');
175
+ this.log.verbose('PuppetService', 'bridgeGrpcEventStream(client)');
161
176
  client
162
177
  .on('data', this.onGrpcStreamEvent.bind(this))
163
178
  .on('end', () => {
164
- log.verbose('PuppetService', 'bridgeGrpcEventStream() eventStream.on(end)');
179
+ this.log.verbose('PuppetService', 'bridgeGrpcEventStream() eventStream.on(end)');
165
180
  })
166
181
  .on('error', (e) => {
167
182
  this.emit('error', e);
168
183
  // https://github.com/wechaty/wechaty-puppet-service/issues/16
169
- // log.verbose('PuppetService', 'bridgeGrpcEventStream() eventStream.on(error) %s', e)
184
+ // this.log.verbose('PuppetService', 'bridgeGrpcEventStream() eventStream.on(error) %s', e)
170
185
  // const reason = 'bridgeGrpcEventStream() eventStream.on(error) ' + e
171
186
  /**
172
187
  * Huan(202110): simple reset puppet when grpc client has error? (or not?)
@@ -181,7 +196,7 @@ class PuppetService extends PUPPET.Puppet {
181
196
  // }
182
197
  })
183
198
  .on('cancel', (...args) => {
184
- log.verbose('PuppetService', 'bridgeGrpcEventStream() eventStream.on(cancel), %s', JSON.stringify(args));
199
+ this.log.verbose('PuppetService', 'bridgeGrpcEventStream() eventStream.on(cancel), %s', JSON.stringify(args));
185
200
  });
186
201
  }
187
202
  async onGrpcStreamEvent(event) {
@@ -190,9 +205,9 @@ class PuppetService extends PUPPET.Puppet {
190
205
  const seq = event.getSeq();
191
206
  const timestamp = String(Date.now());
192
207
  if (!NO_LOG_EVENTS.includes(type)) {
193
- log.info('PuppetService', `received grpc event ${EventTypeRev[type]} on ${new Date().toString()}, content: ${JSON.stringify(payload)}, seq: ${seq}, timestamp: ${timestamp}`);
208
+ this.log.info('PuppetService', `received grpc event ${EventTypeRev[type]} on ${new Date().toString()}, content: ${JSON.stringify(payload)}, seq: ${seq}, timestamp: ${timestamp}`);
194
209
  }
195
- log.silly('PuppetService', 'onGrpcStreamEvent({type:%s(%s), payload:"%s"})', EventTypeRev[type], type, payload);
210
+ this.log.silly('PuppetService', 'onGrpcStreamEvent({type:%s(%s), payload:"%s"})', EventTypeRev[type], type, payload);
196
211
  if (type !== grpcPuppet.EventType.EVENT_TYPE_HEARTBEAT) {
197
212
  this.emit('heartbeat', {
198
213
  data: `onGrpcStreamEvent(${EventTypeRev[type]})`,
@@ -223,7 +238,7 @@ class PuppetService extends PUPPET.Puppet {
223
238
  case grpcPuppet.EventType.EVENT_TYPE_LOGIN:
224
239
  {
225
240
  if (this.waitingForLogin && this.isLoggedIn) {
226
- log.warn('PuppetService', 'this login event is ignored because the it is expected by event stream reconnect and this puppet is already logged in');
241
+ this.log.warn('PuppetService', 'this login event is ignored because the it is expected by event stream reconnect and this puppet is already logged in');
227
242
  return;
228
243
  }
229
244
  const loginPayload = JSON.parse(payload);
@@ -236,7 +251,7 @@ class PuppetService extends PUPPET.Puppet {
236
251
  });
237
252
  }
238
253
  }
239
- (async () => this.login(loginPayload.contactId))().catch(e => log.error('PuppetService', 'onGrpcStreamEvent() this.login() rejection %s', e.message));
254
+ (async () => this.login(loginPayload.contactId))().catch(e => this.log.error('PuppetService', 'onGrpcStreamEvent() this.login() rejection %s', e.message));
240
255
  }
241
256
  break;
242
257
  case grpcPuppet.EventType.EVENT_TYPE_LOGOUT:
@@ -246,7 +261,7 @@ class PuppetService extends PUPPET.Puppet {
246
261
  await this.resetMiscellaneousStoreData();
247
262
  }
248
263
  ;
249
- (async () => this.logout(logoutPayload.data))().catch(e => log.error('PuppetService', 'onGrpcStreamEvent() this.logout() rejection %s', e.message));
264
+ (async () => this.logout(logoutPayload.data))().catch(e => this.log.error('PuppetService', 'onGrpcStreamEvent() this.logout() rejection %s', e.message));
250
265
  }
251
266
  break;
252
267
  case grpcPuppet.EventType.EVENT_TYPE_DIRTY: {
@@ -269,7 +284,7 @@ class PuppetService extends PUPPET.Puppet {
269
284
  break;
270
285
  case grpcPuppet.EventType.EVENT_TYPE_READY:
271
286
  if (this.waitingForReady && this.readyIndicator.value()) {
272
- log.warn('PuppetService', 'this ready event is ignored because the it is expected by event stream reconnect and this puppet is already ready');
287
+ this.log.warn('PuppetService', 'this ready event is ignored because the it is expected by event stream reconnect and this puppet is already ready');
273
288
  return;
274
289
  }
275
290
  this.emit('ready', JSON.parse(payload));
@@ -299,14 +314,14 @@ class PuppetService extends PUPPET.Puppet {
299
314
  this.emit('tag-group', JSON.parse(payload));
300
315
  break;
301
316
  case grpcPuppet.EventType.EVENT_TYPE_RESET:
302
- log.warn('PuppetService', 'onGrpcStreamEvent() got an EventType.EVENT_TYPE_RESET ?');
317
+ this.log.warn('PuppetService', 'onGrpcStreamEvent() got an EventType.EVENT_TYPE_RESET ?');
303
318
  // the `reset` event should be dealed not send out
304
319
  break;
305
320
  case grpcPuppet.EventType.EVENT_TYPE_VERIFY_CODE:
306
321
  this.emit('verify-code', JSON.parse(payload));
307
322
  break;
308
323
  case grpcPuppet.EventType.EVENT_TYPE_UNSPECIFIED:
309
- log.error('PuppetService', 'onGrpcStreamEvent() got an EventType.EVENT_TYPE_UNSPECIFIED ?');
324
+ this.log.error('PuppetService', 'onGrpcStreamEvent() got an EventType.EVENT_TYPE_UNSPECIFIED ?');
310
325
  break;
311
326
  case grpcPuppet.EventType.EVENT_TYPE_VERIFY_SLIDE:
312
327
  this.emit('verify-slide', JSON.parse(payload));
@@ -316,27 +331,27 @@ class PuppetService extends PUPPET.Puppet {
316
331
  break;
317
332
  default:
318
333
  // Huan(202003): in default, the `type` type should be `never`, please check.
319
- log.error(`eventType ${type} unsupported! data: ${payload}`);
334
+ this.log.error(`eventType ${type} unsupported! data: ${payload}`);
320
335
  }
321
336
  }
322
337
  async logout(reason) {
323
- log.verbose('PuppetService', 'logout(%s)', reason ? `"${reason}"` : '');
338
+ this.log.verbose('PuppetService', 'logout(%s)', reason ? `"${reason}"` : '');
324
339
  await super.logout(reason);
325
340
  try {
326
341
  await util.promisify(this.grpcManager.client.logout
327
342
  .bind(this.grpcManager.client))(new grpcPuppet.LogoutRequest());
328
343
  }
329
344
  catch (e) {
330
- log.silly('PuppetService', 'logout() no grpc client');
345
+ this.log.silly('PuppetService', 'logout() no grpc client');
331
346
  }
332
347
  }
333
348
  ding(data) {
334
- log.silly('PuppetService', 'ding(%s)', data);
349
+ this.log.silly('PuppetService', 'ding(%s)', data);
335
350
  const request = new grpcPuppet.DingRequest();
336
351
  request.setData(data || '');
337
352
  this.grpcManager.client.ding(request, (error, _response) => {
338
353
  if (error) {
339
- log.error('PuppetService', 'ding() rejection: %s', error);
354
+ this.log.error('PuppetService', 'ding() rejection: %s', error);
340
355
  }
341
356
  });
342
357
  }
@@ -349,7 +364,7 @@ class PuppetService extends PUPPET.Puppet {
349
364
  *
350
365
  */
351
366
  async dirtyPayload(type, id) {
352
- log.verbose('PuppetService', 'dirtyPayload(%s, %s)', type, id);
367
+ this.log.verbose('PuppetService', 'dirtyPayload(%s, %s)', type, id);
353
368
  const request = new grpcPuppet.DirtyPayloadRequest();
354
369
  request.setId(id);
355
370
  request.setType(type);
@@ -358,7 +373,7 @@ class PuppetService extends PUPPET.Puppet {
358
373
  .bind(this.grpcManager.client))(request);
359
374
  }
360
375
  catch (e) {
361
- log.error('PuppetService', 'dirtyPayload() rejection: %s', e && e.message);
376
+ this.log.error('PuppetService', 'dirtyPayload() rejection: %s', e && e.message);
362
377
  throw e;
363
378
  }
364
379
  }
@@ -382,9 +397,55 @@ class PuppetService extends PUPPET.Puppet {
382
397
  [PUPPET.types.Dirty.Post]: async (_) => { },
383
398
  [PUPPET.types.Dirty.Room]: async (id) => this._payloadStore.room?.delete(id),
384
399
  [PUPPET.types.Dirty.RoomMember]: async (id) => {
385
- const [roomId] = id.split(PUPPET.STRING_SPLITTER);
386
- if (roomId) {
387
- await this._payloadStore.roomMember?.delete(roomId);
400
+ const [roomId, memberId] = id.split(PUPPET.STRING_SPLITTER);
401
+ if (!roomId) {
402
+ return;
403
+ }
404
+ const store = this._payloadStore.roomMember;
405
+ if (!store) {
406
+ return;
407
+ }
408
+ // Bare roomId: the whole member set is stale, drop the row.
409
+ // Row-level delete is idempotent so it does not need serialization.
410
+ if (memberId === undefined) {
411
+ await store.delete(roomId);
412
+ return;
413
+ }
414
+ // Compound id: `get → mutate → set` is a read-modify-write across
415
+ // an async store. Serialize per roomId so two concurrent compound
416
+ // dirties don't each read the same snapshot and each drop only
417
+ // their own key -- which would lose one of the two deletes.
418
+ const previous = this._roomMemberDirtyChain.get(roomId) ?? Promise.resolve();
419
+ const next = (async () => {
420
+ // Swallow the previous link's rejection so a failure upstream
421
+ // does not silently skip our own mutation. The prior handler
422
+ // already reported its error via fastDirty()'s try/catch.
423
+ try {
424
+ await previous;
425
+ }
426
+ catch (_) { /* ignore, upstream already reported */ }
427
+ const current = await store.get(roomId);
428
+ if (!current || !Object.prototype.hasOwnProperty.call(current, memberId)) {
429
+ return;
430
+ }
431
+ const { [memberId]: _drop, ...rest } = current;
432
+ if (Object.keys(rest).length === 0) {
433
+ await store.delete(roomId);
434
+ }
435
+ else {
436
+ await store.set(roomId, rest);
437
+ }
438
+ })();
439
+ this._roomMemberDirtyChain.set(roomId, next);
440
+ try {
441
+ await next;
442
+ }
443
+ finally {
444
+ // Only clear the slot if we are still the tail; otherwise a
445
+ // later handler has already extended the chain and owns cleanup.
446
+ if (this._roomMemberDirtyChain.get(roomId) === next) {
447
+ this._roomMemberDirtyChain.delete(roomId);
448
+ }
388
449
  }
389
450
  },
390
451
  [PUPPET.types.Dirty.Tag]: async (id) => this._payloadStore.tag?.delete(id),
@@ -394,7 +455,7 @@ class PuppetService extends PUPPET.Puppet {
394
455
  [PUPPET.types.Dirty.Call]: async (_) => { },
395
456
  [PUPPET.types.Dirty.Unspecified]: async (id) => {
396
457
  const msg = `fastDirty() received Unspecified dirty type (id=${id}); upstream puppet is leaking protobuf default — this is a server-side contract bug`;
397
- log.error('PuppetService', msg);
458
+ this.log.error('PuppetService', msg);
398
459
  this.emit('error', new Error(msg));
399
460
  },
400
461
  };
@@ -404,14 +465,14 @@ class PuppetService extends PUPPET.Puppet {
404
465
  * the event listener will be registered in `start()` from the `PuppetAbstract` class
405
466
  */
406
467
  async fastDirty({ payloadType, payloadId, }) {
407
- log.verbose('PuppetService', 'fastDirty(%s<%s>, %s)', PUPPET.types.Dirty[payloadType], payloadType, payloadId);
468
+ this.log.verbose('PuppetService', 'fastDirty(%s<%s>, %s)', PUPPET.types.Dirty[payloadType], payloadType, payloadId);
408
469
  // payloadType is typed as the enum, but at runtime the server may emit a
409
470
  // value outside our enum (forward-compat). Look it up via a
410
471
  // possibly-undefined view so the runtime guard stays meaningful.
411
472
  const lookup = this._dirtyHandlerMap;
412
473
  const handler = lookup[payloadType];
413
474
  if (!handler) {
414
- log.warn('PuppetService', 'fastDirty() no handler for payloadType=%s', payloadType);
475
+ this.log.warn('PuppetService', 'fastDirty() no handler for payloadType=%s', payloadType);
415
476
  return;
416
477
  }
417
478
  try {
@@ -422,7 +483,7 @@ class PuppetService extends PUPPET.Puppet {
422
483
  }
423
484
  }
424
485
  async enterVerifyCode(id, code) {
425
- log.verbose('PuppetService', 'enterVerifyCode(%s, %s)', id, code);
486
+ this.log.verbose('PuppetService', 'enterVerifyCode(%s, %s)', id, code);
426
487
  const request = new grpcPuppet.EnterVerifyCodeRequest();
427
488
  request.setId(id);
428
489
  request.setCode(code);
@@ -430,20 +491,20 @@ class PuppetService extends PUPPET.Puppet {
430
491
  .bind(this.grpcManager.client))(request);
431
492
  }
432
493
  async cancelVerifyCode(id) {
433
- log.verbose('PuppetService', 'cancelVerifyCode(%s)', id);
494
+ this.log.verbose('PuppetService', 'cancelVerifyCode(%s)', id);
434
495
  const request = new grpcPuppet.CancelVerifyCodeRequest();
435
496
  request.setId(id);
436
497
  await util.promisify(this.grpcManager.client.cancelVerifyCode
437
498
  .bind(this.grpcManager.client))(request);
438
499
  }
439
500
  async refreshQRCode() {
440
- log.verbose('PuppetService', 'refreshQRCode(%s)');
501
+ this.log.verbose('PuppetService', 'refreshQRCode(%s)');
441
502
  const request = new grpcPuppet.RefreshQRCodeRequest();
442
503
  await util.promisify(this.grpcManager.client.refreshQRCode
443
504
  .bind(this.grpcManager.client))(request);
444
505
  }
445
506
  async contactAlias(contactId, alias) {
446
- log.verbose('PuppetService', 'contactAlias(%s, %s)', contactId, alias);
507
+ this.log.verbose('PuppetService', 'contactAlias(%s, %s)', contactId, alias);
447
508
  /**
448
509
  * Get alias
449
510
  */
@@ -481,7 +542,7 @@ class PuppetService extends PUPPET.Puppet {
481
542
  .bind(this.grpcManager.client))(request);
482
543
  }
483
544
  async contactPhone(contactId, phoneList) {
484
- log.verbose('PuppetService', 'contactPhone(%s, %s)', contactId, phoneList);
545
+ this.log.verbose('PuppetService', 'contactPhone(%s, %s)', contactId, phoneList);
485
546
  const request = new grpcPuppet.ContactPhoneRequest();
486
547
  request.setContactId(contactId);
487
548
  request.setPhonesList(phoneList);
@@ -489,7 +550,7 @@ class PuppetService extends PUPPET.Puppet {
489
550
  .bind(this.grpcManager.client))(request);
490
551
  }
491
552
  async contactCorporationRemark(contactId, corporationRemark) {
492
- log.verbose('PuppetService', 'contactCorporationRemark(%s, %s)', contactId, corporationRemark);
553
+ this.log.verbose('PuppetService', 'contactCorporationRemark(%s, %s)', contactId, corporationRemark);
493
554
  const request = new grpcPuppet.ContactCorporationRemarkRequest();
494
555
  request.setContactId(contactId);
495
556
  if (corporationRemark) {
@@ -507,7 +568,7 @@ class PuppetService extends PUPPET.Puppet {
507
568
  .bind(this.grpcManager.client))(request);
508
569
  }
509
570
  async contactDescription(contactId, description) {
510
- log.verbose('PuppetService', 'contactDescription(%s, %s)', contactId, description);
571
+ this.log.verbose('PuppetService', 'contactDescription(%s, %s)', contactId, description);
511
572
  const request = new grpcPuppet.ContactDescriptionRequest();
512
573
  request.setContactId(contactId);
513
574
  if (description) {
@@ -525,13 +586,13 @@ class PuppetService extends PUPPET.Puppet {
525
586
  .bind(this.grpcManager.client))(request);
526
587
  }
527
588
  async contactList() {
528
- log.verbose('PuppetService', 'contactList()');
589
+ this.log.verbose('PuppetService', 'contactList()');
529
590
  const response = await util.promisify(this.grpcManager.client.contactList
530
591
  .bind(this.grpcManager.client))(new grpcPuppet.ContactListRequest());
531
592
  return response.getIdsList();
532
593
  }
533
594
  async contactAvatar(contactId, fileBox) {
534
- log.verbose('PuppetService', 'contactAvatar(%s)', contactId);
595
+ this.log.verbose('PuppetService', 'contactAvatar(%s)', contactId);
535
596
  /**
536
597
  * 1. set
537
598
  */
@@ -568,10 +629,10 @@ class PuppetService extends PUPPET.Puppet {
568
629
  return this.FileBoxUuid.fromJSON(jsonText);
569
630
  }
570
631
  async contactRawPayload(id) {
571
- log.verbose('PuppetService', 'contactRawPayload(%s)', id);
632
+ this.log.verbose('PuppetService', 'contactRawPayload(%s)', id);
572
633
  const cachedPayload = await this._payloadStore.contact?.get(id);
573
634
  if (cachedPayload) {
574
- log.silly('PuppetService', 'contactRawPayload(%s) cache HIT', id);
635
+ this.log.silly('PuppetService', 'contactRawPayload(%s) cache HIT', id);
575
636
  return cachedPayload;
576
637
  }
577
638
  const request = new grpcPuppet.ContactPayloadRequest();
@@ -612,16 +673,16 @@ class PuppetService extends PUPPET.Puppet {
612
673
  aka: response.getAka(),
613
674
  };
614
675
  await this._payloadStore.contact?.set(id, payload);
615
- log.silly('PuppetService', 'contactRawPayload(%s) cache SET', id);
676
+ this.log.silly('PuppetService', 'contactRawPayload(%s) cache SET', id);
616
677
  return payload;
617
678
  }
618
679
  async contactRawPayloadParser(payload) {
619
- // log.silly('PuppetService', 'contactRawPayloadParser({id:%s})', payload.id)
680
+ // this.log.silly('PuppetService', 'contactRawPayloadParser({id:%s})', payload.id)
620
681
  // passthrough
621
682
  return payload;
622
683
  }
623
684
  async batchContactRawPayload(contactIdList) {
624
- log.verbose('PuppetService', 'batchContactRawPayload(%s)', contactIdList);
685
+ this.log.verbose('PuppetService', 'batchContactRawPayload(%s)', contactIdList);
625
686
  const result = new Map();
626
687
  const contactIdSet = new Set(contactIdList);
627
688
  const needGetSet = new Set();
@@ -649,7 +710,7 @@ class PuppetService extends PUPPET.Puppet {
649
710
  }
650
711
  }
651
712
  catch (e) {
652
- log.error('PuppetService', 'batchContactRawPayload(%s, %s) error: %s, use one by one method', contactIdList, needGetSet, e);
713
+ this.log.error('PuppetService', 'batchContactRawPayload(%s, %s) error: %s, use one by one method', contactIdList, needGetSet, e);
653
714
  for (const contactId of needGetSet) {
654
715
  const payload = await this.contactRawPayload(contactId);
655
716
  result.set(contactId, payload);
@@ -659,7 +720,7 @@ class PuppetService extends PUPPET.Puppet {
659
720
  return result;
660
721
  }
661
722
  async contactPayloadModify(contactId, payload) {
662
- log.verbose('PuppetService', 'contactPayloadModify(%s, %s)', contactId, JSON.stringify(payload));
723
+ this.log.verbose('PuppetService', 'contactPayloadModify(%s, %s)', contactId, JSON.stringify(payload));
663
724
  const request = new grpcPuppet.ContactPayloadModifyRequest();
664
725
  request.setId(contactId);
665
726
  if (payload.id) {
@@ -729,41 +790,41 @@ class PuppetService extends PUPPET.Puppet {
729
790
  .bind(this.grpcManager.client))(request);
730
791
  }
731
792
  async contactSelfName(name) {
732
- log.verbose('PuppetService', 'contactSelfName(%s)', name);
793
+ this.log.verbose('PuppetService', 'contactSelfName(%s)', name);
733
794
  const request = new grpcPuppet.ContactSelfNameRequest();
734
795
  request.setName(name);
735
796
  await util.promisify(this.grpcManager.client.contactSelfName
736
797
  .bind(this.grpcManager.client))(request);
737
798
  }
738
799
  async contactSelfRealName(realName) {
739
- log.verbose('PuppetService', 'contactSelfRealName(%s)', realName);
800
+ this.log.verbose('PuppetService', 'contactSelfRealName(%s)', realName);
740
801
  const request = new grpcPuppet.ContactSelfRealNameRequest();
741
802
  request.setRealName(realName);
742
803
  await util.promisify(this.grpcManager.client.contactSelfRealName
743
804
  .bind(this.grpcManager.client))(request);
744
805
  }
745
806
  async contactSelfAka(aka) {
746
- log.verbose('PuppetService', 'contactSelfAka(%s)', aka);
807
+ this.log.verbose('PuppetService', 'contactSelfAka(%s)', aka);
747
808
  const request = new grpcPuppet.ContactSelfAkaRequest();
748
809
  request.setAka(aka);
749
810
  await util.promisify(this.grpcManager.client.contactSelfAka
750
811
  .bind(this.grpcManager.client))(request);
751
812
  }
752
813
  async contactSelfQRCode() {
753
- log.verbose('PuppetService', 'contactSelfQRCode()');
814
+ this.log.verbose('PuppetService', 'contactSelfQRCode()');
754
815
  const response = await util.promisify(this.grpcManager.client.contactSelfQRCode
755
816
  .bind(this.grpcManager.client))(new grpcPuppet.ContactSelfQRCodeRequest());
756
817
  return response.getQrcode();
757
818
  }
758
819
  async contactSelfSignature(signature) {
759
- log.verbose('PuppetService', 'contactSelfSignature(%s)', signature);
820
+ this.log.verbose('PuppetService', 'contactSelfSignature(%s)', signature);
760
821
  const request = new grpcPuppet.ContactSelfSignatureRequest();
761
822
  request.setSignature(signature);
762
823
  await util.promisify(this.grpcManager.client.contactSelfSignature
763
824
  .bind(this.grpcManager.client))(request);
764
825
  }
765
826
  async contactSelfRoomAlias(roomId, alias) {
766
- log.verbose('PuppetService', 'contactSelfRoomAlias(%s, %s)', roomId, alias);
827
+ this.log.verbose('PuppetService', 'contactSelfRoomAlias(%s, %s)', roomId, alias);
767
828
  const request = new grpcPuppet.ContactSelfRoomAliasRequest();
768
829
  request.setRoomId(roomId);
769
830
  request.setAlias(alias);
@@ -771,7 +832,7 @@ class PuppetService extends PUPPET.Puppet {
771
832
  .bind(this.grpcManager.client))(request);
772
833
  }
773
834
  async contactDelete(contactId) {
774
- log.verbose('PuppetService', 'contactDelete(%s)', contactId);
835
+ this.log.verbose('PuppetService', 'contactDelete(%s)', contactId);
775
836
  const request = new grpcPuppet.ContactDeleteRequest();
776
837
  request.setContactId(contactId);
777
838
  await util.promisify(this.grpcManager.client.contactDelete
@@ -783,7 +844,7 @@ class PuppetService extends PUPPET.Puppet {
783
844
  *
784
845
  */
785
846
  async conversationReadMark(conversationId, hasRead = true) {
786
- log.verbose('PuppetService', 'conversationMarkRead(%s, %s)', conversationId, hasRead);
847
+ this.log.verbose('PuppetService', 'conversationMarkRead(%s, %s)', conversationId, hasRead);
787
848
  const request = new grpcPuppet.ConversationReadRequest();
788
849
  request.setConversationId(conversationId);
789
850
  request.setHasRead(hasRead);
@@ -796,7 +857,7 @@ class PuppetService extends PUPPET.Puppet {
796
857
  *
797
858
  */
798
859
  async messageMiniProgram(messageId) {
799
- log.verbose('PuppetService', 'messageMiniProgram(%s)', messageId);
860
+ this.log.verbose('PuppetService', 'messageMiniProgram(%s)', messageId);
800
861
  const request = new grpcPuppet.MessageMiniProgramRequest();
801
862
  request.setId(messageId);
802
863
  const response = await util.promisify(this.grpcManager.client.messageMiniProgram
@@ -815,7 +876,7 @@ class PuppetService extends PUPPET.Puppet {
815
876
  return payload;
816
877
  }
817
878
  async messageLocation(messageId) {
818
- log.verbose('PuppetService', 'messageLocation(%s)', messageId);
879
+ this.log.verbose('PuppetService', 'messageLocation(%s)', messageId);
819
880
  const request = new grpcPuppet.MessageLocationRequest();
820
881
  request.setId(messageId);
821
882
  const response = await util.promisify(this.grpcManager.client.messageLocation
@@ -831,7 +892,7 @@ class PuppetService extends PUPPET.Puppet {
831
892
  return payload;
832
893
  }
833
894
  async messageImage(messageId, imageType) {
834
- log.verbose('PuppetService', 'messageImage(%s, %s[%s])', messageId, imageType, PUPPET.types.Image[imageType]);
895
+ this.log.verbose('PuppetService', 'messageImage(%s, %s[%s])', messageId, imageType, PUPPET.types.Image[imageType]);
835
896
  const request = new grpcPuppet.MessageImageRequest();
836
897
  request.setId(messageId);
837
898
  request.setType(imageType);
@@ -844,7 +905,7 @@ class PuppetService extends PUPPET.Puppet {
844
905
  throw new Error(`failed to get image filebox for message ${messageId}`);
845
906
  }
846
907
  async messageContact(messageId) {
847
- log.verbose('PuppetService', 'messageContact(%s)', messageId);
908
+ this.log.verbose('PuppetService', 'messageContact(%s)', messageId);
848
909
  const request = new grpcPuppet.MessageContactRequest();
849
910
  request.setId(messageId);
850
911
  const response = await util.promisify(this.grpcManager.client.messageContact
@@ -853,7 +914,7 @@ class PuppetService extends PUPPET.Puppet {
853
914
  return contactId;
854
915
  }
855
916
  async messageChannel(messageId) {
856
- log.verbose('PuppetService', 'messageChannel(%s)', messageId);
917
+ this.log.verbose('PuppetService', 'messageChannel(%s)', messageId);
857
918
  const request = new grpcPuppet.MessageChannelRequest();
858
919
  request.setId(messageId);
859
920
  const response = await util.promisify(this.grpcManager.client.messageChannel
@@ -862,7 +923,7 @@ class PuppetService extends PUPPET.Puppet {
862
923
  return payload;
863
924
  }
864
925
  async messageChannelCard(messageId) {
865
- log.verbose('PuppetService', 'messageChannelCard(%s)', messageId);
926
+ this.log.verbose('PuppetService', 'messageChannelCard(%s)', messageId);
866
927
  const request = new grpcPuppet.MessageChannelCardRequest();
867
928
  request.setId(messageId);
868
929
  const response = await util.promisify(this.grpcManager.client.messageChannelCard
@@ -871,7 +932,7 @@ class PuppetService extends PUPPET.Puppet {
871
932
  return payload;
872
933
  }
873
934
  async messageCallRecord(messageId) {
874
- log.verbose('PuppetService', 'messageCallRecord(%s)', messageId);
935
+ this.log.verbose('PuppetService', 'messageCallRecord(%s)', messageId);
875
936
  const request = new grpcPuppet.MessageCallRecordRequest();
876
937
  request.setId(messageId);
877
938
  const response = await util.promisify(this.grpcManager.client.messageCallRecord
@@ -880,7 +941,7 @@ class PuppetService extends PUPPET.Puppet {
880
941
  return payload;
881
942
  }
882
943
  async callInvite(contactIds, media) {
883
- log.verbose('PuppetService', 'callInvite(%s, %s)', contactIds, media);
944
+ this.log.verbose('PuppetService', 'callInvite(%s, %s)', contactIds, media);
884
945
  const request = new grpcPuppet.CallInviteRequest();
885
946
  request.setContactIdsList(contactIds);
886
947
  request.setMedia(puppetCallMediaTypeToGrpc(media));
@@ -893,20 +954,20 @@ class PuppetService extends PUPPET.Puppet {
893
954
  return callId;
894
955
  }
895
956
  async callAdd(callId, contactIds) {
896
- log.verbose('PuppetService', 'callAdd(%s, %s)', callId, contactIds);
957
+ this.log.verbose('PuppetService', 'callAdd(%s, %s)', callId, contactIds);
897
958
  const request = new grpcPuppet.CallAddRequest();
898
959
  request.setCallId(callId);
899
960
  request.setContactIdsList(contactIds);
900
961
  await this.grpcUnary(this.grpcManager.client.callAdd, request);
901
962
  }
902
963
  async callAccept(callId) {
903
- log.verbose('PuppetService', 'callAccept(%s)', callId);
964
+ this.log.verbose('PuppetService', 'callAccept(%s)', callId);
904
965
  const request = new grpcPuppet.CallAcceptRequest();
905
966
  request.setCallId(callId);
906
967
  await this.grpcUnary(this.grpcManager.client.callAccept, request);
907
968
  }
908
969
  async callReject(callId, reason) {
909
- log.verbose('PuppetService', 'callReject(%s, %s)', callId, reason);
970
+ this.log.verbose('PuppetService', 'callReject(%s, %s)', callId, reason);
910
971
  const request = new grpcPuppet.CallRejectRequest();
911
972
  request.setCallId(callId);
912
973
  if (reason !== undefined && reason !== '') {
@@ -915,13 +976,13 @@ class PuppetService extends PUPPET.Puppet {
915
976
  await this.grpcUnary(this.grpcManager.client.callReject, request);
916
977
  }
917
978
  async callCancel(callId) {
918
- log.verbose('PuppetService', 'callCancel(%s)', callId);
979
+ this.log.verbose('PuppetService', 'callCancel(%s)', callId);
919
980
  const request = new grpcPuppet.CallCancelRequest();
920
981
  request.setCallId(callId);
921
982
  await this.grpcUnary(this.grpcManager.client.callCancel, request);
922
983
  }
923
984
  async callHangup(callId, reason) {
924
- log.verbose('PuppetService', 'callHangup(%s, %s)', callId, reason);
985
+ this.log.verbose('PuppetService', 'callHangup(%s, %s)', callId, reason);
925
986
  const request = new grpcPuppet.CallHangupRequest();
926
987
  request.setCallId(callId);
927
988
  if (reason !== undefined && reason !== '') {
@@ -930,7 +991,7 @@ class PuppetService extends PUPPET.Puppet {
930
991
  await this.grpcUnary(this.grpcManager.client.callHangup, request);
931
992
  }
932
993
  async callMediaEndpoint(callId) {
933
- log.verbose('PuppetService', 'callMediaEndpoint(%s)', callId);
994
+ this.log.verbose('PuppetService', 'callMediaEndpoint(%s)', callId);
934
995
  const request = new grpcPuppet.CallMediaEndpointRequest();
935
996
  request.setCallId(callId);
936
997
  const response = await util.promisify(this.grpcManager.client.callMediaEndpoint
@@ -954,7 +1015,7 @@ class PuppetService extends PUPPET.Puppet {
954
1015
  return payload;
955
1016
  }
956
1017
  async callRawPayload(callId) {
957
- log.verbose('PuppetService', 'callRawPayload(%s)', callId);
1018
+ this.log.verbose('PuppetService', 'callRawPayload(%s)', callId);
958
1019
  const request = new grpcPuppet.CallPayloadRequest();
959
1020
  request.setId(callId);
960
1021
  const response = await util.promisify(this.grpcManager.client.callPayload
@@ -962,6 +1023,10 @@ class PuppetService extends PUPPET.Puppet {
962
1023
  return response.toObject();
963
1024
  }
964
1025
  async callRawPayloadParser(rawPayload) {
1026
+ // Intentionally uses the module-level `log` instead of `this.log`: the
1027
+ // matching unit spec invokes this parser via `prototype.call({}, raw)` and
1028
+ // never binds a real PuppetService instance. Keep this `this`-free so that
1029
+ // contract survives the pluggable-logger migration.
965
1030
  log.verbose('PuppetService', 'callRawPayloadParser({id:%s})', rawPayload.id);
966
1031
  const media = grpcCallTypeToPuppetMedia(rawPayload.media);
967
1032
  if (media === undefined) {
@@ -985,7 +1050,7 @@ class PuppetService extends PUPPET.Puppet {
985
1050
  return payload;
986
1051
  }
987
1052
  async messageChatHistory(messageId) {
988
- log.verbose('PuppetService', 'messageChatHistory(%s)', messageId);
1053
+ this.log.verbose('PuppetService', 'messageChatHistory(%s)', messageId);
989
1054
  const request = new grpcPuppet.MessageChatHistoryRequest();
990
1055
  request.setId(messageId);
991
1056
  const response = await util.promisify(this.grpcManager.client.messageChatHistory
@@ -994,7 +1059,7 @@ class PuppetService extends PUPPET.Puppet {
994
1059
  return payload;
995
1060
  }
996
1061
  async messageSendMiniProgram(conversationId, miniProgramPayload) {
997
- log.verbose('PuppetService', 'messageSendMiniProgram(%s, "%s")', conversationId, JSON.stringify(miniProgramPayload));
1062
+ this.log.verbose('PuppetService', 'messageSendMiniProgram(%s, "%s")', conversationId, JSON.stringify(miniProgramPayload));
998
1063
  const request = new grpcPuppet.MessageSendMiniProgramRequest();
999
1064
  request.setConversationId(conversationId);
1000
1065
  const pbMiniProgramPayload = new grpcPuppet.MiniProgramPayload();
@@ -1030,11 +1095,11 @@ class PuppetService extends PUPPET.Puppet {
1030
1095
  * Deprecated: will be removed after Dec 31, 2022
1031
1096
  */
1032
1097
  request.setMiniProgramDeprecated(JSON.stringify(miniProgramPayload));
1033
- log.info('PuppetService', `messageSendMiniProgram(${conversationId}, ${miniProgramPayload.description}) about to call grpc`);
1098
+ this.log.info('PuppetService', `messageSendMiniProgram(${conversationId}, ${miniProgramPayload.description}) about to call grpc`);
1034
1099
  const response = await util.promisify(this.grpcManager.client.messageSendMiniProgram
1035
1100
  .bind(this.grpcManager.client))(request);
1036
1101
  const messageId = response.getId();
1037
- log.info('PuppetService', `messageSendMiniProgram(${conversationId}, ${miniProgramPayload.description}) grpc called, messageId: ${messageId}`);
1102
+ this.log.info('PuppetService', `messageSendMiniProgram(${conversationId}, ${miniProgramPayload.description}) grpc called, messageId: ${messageId}`);
1038
1103
  if (messageId) {
1039
1104
  return messageId;
1040
1105
  }
@@ -1049,7 +1114,7 @@ class PuppetService extends PUPPET.Puppet {
1049
1114
  }
1050
1115
  }
1051
1116
  async messageSendLocation(conversationId, locationPayload) {
1052
- log.verbose('PuppetService', 'messageSendLocation(%s)', conversationId, JSON.stringify(locationPayload));
1117
+ this.log.verbose('PuppetService', 'messageSendLocation(%s)', conversationId, JSON.stringify(locationPayload));
1053
1118
  const request = new grpcPuppet.MessageSendLocationRequest();
1054
1119
  request.setConversationId(conversationId);
1055
1120
  const pbLocationPayload = new grpcPuppet.LocationPayload();
@@ -1059,47 +1124,47 @@ class PuppetService extends PUPPET.Puppet {
1059
1124
  pbLocationPayload.setLongitude(locationPayload.longitude);
1060
1125
  pbLocationPayload.setName(locationPayload.name);
1061
1126
  request.setLocation(pbLocationPayload);
1062
- log.info('PuppetService', `messageSendLocation(${conversationId}, ${locationPayload.name}) about to call grpc`);
1127
+ this.log.info('PuppetService', `messageSendLocation(${conversationId}, ${locationPayload.name}) about to call grpc`);
1063
1128
  const response = await util.promisify(this.grpcManager.client.messageSendLocation
1064
1129
  .bind(this.grpcManager.client))(request);
1065
1130
  const id = response.getId();
1066
- log.info('PuppetService', `messageSendMiniProgram(${conversationId}, ${locationPayload.name}) grpc called, messageId: ${id}`);
1131
+ this.log.info('PuppetService', `messageSendMiniProgram(${conversationId}, ${locationPayload.name}) grpc called, messageId: ${id}`);
1067
1132
  if (id) {
1068
1133
  return id;
1069
1134
  }
1070
1135
  }
1071
1136
  async messageSendChannel(conversationId, channelPayload) {
1072
- log.verbose('PuppetService', 'messageSendChannel(%s, "%s")', conversationId, JSON.stringify(channelPayload));
1137
+ this.log.verbose('PuppetService', 'messageSendChannel(%s, "%s")', conversationId, JSON.stringify(channelPayload));
1073
1138
  const request = new grpcPuppet.MessageSendChannelRequest();
1074
1139
  request.setConversationId(conversationId);
1075
1140
  const pbChannelPayload = channelPayloadToPb(grpcPuppet, channelPayload);
1076
1141
  request.setChannel(pbChannelPayload);
1077
- log.info('PuppetService', `messageSendChannel(${conversationId}, ${channelPayload.desc}) about to call grpc`);
1142
+ this.log.info('PuppetService', `messageSendChannel(${conversationId}, ${channelPayload.desc}) about to call grpc`);
1078
1143
  const response = await util.promisify(this.grpcManager.client.messageSendChannel
1079
1144
  .bind(this.grpcManager.client))(request);
1080
1145
  const messageId = response.getId();
1081
- log.info('PuppetService', `messageSendChannel(${conversationId}, ${channelPayload.desc}) grpc called, messageId: ${messageId}`);
1146
+ this.log.info('PuppetService', `messageSendChannel(${conversationId}, ${channelPayload.desc}) grpc called, messageId: ${messageId}`);
1082
1147
  if (messageId) {
1083
1148
  return messageId;
1084
1149
  }
1085
1150
  }
1086
1151
  async messageSendChannelCard(conversationId, channelCardPayload) {
1087
- log.verbose('PuppetService', 'messageSendChannelCard(%s, "%s")', conversationId, JSON.stringify(channelCardPayload));
1152
+ this.log.verbose('PuppetService', 'messageSendChannelCard(%s, "%s")', conversationId, JSON.stringify(channelCardPayload));
1088
1153
  const request = new grpcPuppet.MessageSendChannelCardRequest();
1089
1154
  request.setConversationId(conversationId);
1090
1155
  const pbChannelCardPayload = channelCardPayloadToPb(grpcPuppet, channelCardPayload);
1091
1156
  request.setChannelCard(pbChannelCardPayload);
1092
- log.info('PuppetService', `messageSendChannelCard(${conversationId}, ${channelCardPayload.nickname}) about to call grpc`);
1157
+ this.log.info('PuppetService', `messageSendChannelCard(${conversationId}, ${channelCardPayload.nickname}) about to call grpc`);
1093
1158
  const response = await util.promisify(this.grpcManager.client.messageSendChannelCard
1094
1159
  .bind(this.grpcManager.client))(request);
1095
1160
  const messageId = response.getId();
1096
- log.info('PuppetService', `messageSendChannelCard(${conversationId}, ${channelCardPayload.nickname}) grpc called, messageId: ${messageId}`);
1161
+ this.log.info('PuppetService', `messageSendChannelCard(${conversationId}, ${channelCardPayload.nickname}) grpc called, messageId: ${messageId}`);
1097
1162
  if (messageId) {
1098
1163
  return messageId;
1099
1164
  }
1100
1165
  }
1101
1166
  async messageRecall(messageId) {
1102
- log.verbose('PuppetService', 'messageRecall(%s)', messageId);
1167
+ this.log.verbose('PuppetService', 'messageRecall(%s)', messageId);
1103
1168
  const request = new grpcPuppet.MessageRecallRequest();
1104
1169
  request.setId(messageId);
1105
1170
  const response = await util.promisify(this.grpcManager.client.messageRecall
@@ -1107,7 +1172,7 @@ class PuppetService extends PUPPET.Puppet {
1107
1172
  return response.getSuccess();
1108
1173
  }
1109
1174
  async messageFile(id) {
1110
- log.verbose('PuppetService', 'messageFile(%s)', id);
1175
+ this.log.verbose('PuppetService', 'messageFile(%s)', id);
1111
1176
  const request = new grpcPuppet.MessageFileRequest();
1112
1177
  request.setId(id);
1113
1178
  const response = await util.promisify(this.grpcManager.client.messageFile
@@ -1119,7 +1184,7 @@ class PuppetService extends PUPPET.Puppet {
1119
1184
  throw new Error(`failed to get filebox for message ${id}`);
1120
1185
  }
1121
1186
  async messageVoice(id) {
1122
- log.verbose('PuppetService', 'messageVoice(%s)', id);
1187
+ this.log.verbose('PuppetService', 'messageVoice(%s)', id);
1123
1188
  const request = new grpcPuppet.MessageVoiceRequest();
1124
1189
  request.setId(id);
1125
1190
  const response = await util.promisify(this.grpcManager.client.messageVoice
@@ -1131,7 +1196,7 @@ class PuppetService extends PUPPET.Puppet {
1131
1196
  throw new Error(`failed to get voice filebox for message ${id}`);
1132
1197
  }
1133
1198
  async messageVoiceText(id) {
1134
- log.verbose('PuppetService', 'messageVoiceText(%s)', id);
1199
+ this.log.verbose('PuppetService', 'messageVoiceText(%s)', id);
1135
1200
  const request = new grpcPuppet.MessageVoiceTextRequest();
1136
1201
  request.setId(id);
1137
1202
  const response = await util.promisify(this.grpcManager.client.messageVoiceText
@@ -1142,7 +1207,7 @@ class PuppetService extends PUPPET.Puppet {
1142
1207
  };
1143
1208
  }
1144
1209
  async messagePreview(id) {
1145
- log.verbose('PuppetService', 'messagePreview(%s)', id);
1210
+ this.log.verbose('PuppetService', 'messagePreview(%s)', id);
1146
1211
  const request = new grpcPuppet.MessagePreviewRequest();
1147
1212
  request.setId(id);
1148
1213
  const response = await util.promisify(this.grpcManager.client.messagePreview
@@ -1154,7 +1219,7 @@ class PuppetService extends PUPPET.Puppet {
1154
1219
  return undefined;
1155
1220
  }
1156
1221
  async messageForward(conversationId, messageIds) {
1157
- log.verbose('PuppetService', 'messageForward(%s, %s)', conversationId, messageIds);
1222
+ this.log.verbose('PuppetService', 'messageForward(%s, %s)', conversationId, messageIds);
1158
1223
  const request = new grpcPuppet.MessageForwardRequest();
1159
1224
  request.setConversationId(conversationId);
1160
1225
  if (Array.isArray(messageIds)) {
@@ -1166,11 +1231,11 @@ class PuppetService extends PUPPET.Puppet {
1166
1231
  else {
1167
1232
  request.setMessageId(messageIds);
1168
1233
  }
1169
- log.info('PuppetService', `messageForward(${conversationId}, ${messageIds}) about to call grpc`);
1234
+ this.log.info('PuppetService', `messageForward(${conversationId}, ${messageIds}) about to call grpc`);
1170
1235
  const response = await util.promisify(this.grpcManager.client.messageForward
1171
1236
  .bind(this.grpcManager.client))(request);
1172
1237
  const forwardedMessageId = response.getId();
1173
- log.info('PuppetService', `messageForward(${conversationId}, ${messageIds}) grpc called, messageId: ${forwardedMessageId}`);
1238
+ this.log.info('PuppetService', `messageForward(${conversationId}, ${messageIds}) grpc called, messageId: ${forwardedMessageId}`);
1174
1239
  if (forwardedMessageId) {
1175
1240
  return forwardedMessageId;
1176
1241
  }
@@ -1185,10 +1250,10 @@ class PuppetService extends PUPPET.Puppet {
1185
1250
  }
1186
1251
  }
1187
1252
  async messageRawPayload(id) {
1188
- log.verbose('PuppetService', 'messageRawPayload(%s)', id);
1253
+ this.log.verbose('PuppetService', 'messageRawPayload(%s)', id);
1189
1254
  // const cachedPayload = await this.payloadStore.message?.get(id)
1190
1255
  // if (cachedPayload) {
1191
- // log.silly('PuppetService', 'messageRawPayload(%s) cache HIT', id)
1256
+ // this.log.silly('PuppetService', 'messageRawPayload(%s) cache HIT', id)
1192
1257
  // return cachedPayload
1193
1258
  // }
1194
1259
  const request = new grpcPuppet.MessagePayloadRequest();
@@ -1237,21 +1302,21 @@ class PuppetService extends PUPPET.Puppet {
1237
1302
  break;
1238
1303
  }
1239
1304
  default:
1240
- log.warn('PuppetService', `unknown text content type ${type}`);
1305
+ this.log.warn('PuppetService', `unknown text content type ${type}`);
1241
1306
  }
1242
1307
  payload.textContent?.push(contentData);
1243
1308
  }
1244
- // log.silly('PuppetService', 'messageRawPayload(%s) cache SET', id)
1309
+ // this.log.silly('PuppetService', 'messageRawPayload(%s) cache SET', id)
1245
1310
  // await this.payloadStore.message?.set(id, payload)
1246
1311
  return payload;
1247
1312
  }
1248
1313
  async messageRawPayloadParser(payload) {
1249
- // log.silly('PuppetService', 'messagePayload({id:%s})', payload.id)
1314
+ // this.log.silly('PuppetService', 'messagePayload({id:%s})', payload.id)
1250
1315
  // passthrough
1251
1316
  return payload;
1252
1317
  }
1253
1318
  async messageSendText(conversationId, text, options) {
1254
- log.verbose('PuppetService', 'messageSend(%s, %s)', conversationId, text);
1319
+ this.log.verbose('PuppetService', 'messageSend(%s, %s)', conversationId, text);
1255
1320
  let mentionIdList;
1256
1321
  let quoteId;
1257
1322
  if (Array.isArray(options)) {
@@ -1270,11 +1335,11 @@ class PuppetService extends PUPPET.Puppet {
1270
1335
  if (typeof quoteId !== 'undefined') {
1271
1336
  request.setQuoteId(quoteId);
1272
1337
  }
1273
- log.info('PuppetService', `messageSend(${conversationId}, ${text}) about to call grpc`);
1338
+ this.log.info('PuppetService', `messageSend(${conversationId}, ${text}) about to call grpc`);
1274
1339
  const response = await util.promisify(this.grpcManager.client.messageSendText
1275
1340
  .bind(this.grpcManager.client))(request);
1276
1341
  const messageId = response.getId();
1277
- log.info('PuppetService', `messageSend(${conversationId}, ${text}) grpc called, messageId: ${messageId}`);
1342
+ this.log.info('PuppetService', `messageSend(${conversationId}, ${text}) grpc called, messageId: ${messageId}`);
1278
1343
  if (messageId) {
1279
1344
  return messageId;
1280
1345
  }
@@ -1289,7 +1354,7 @@ class PuppetService extends PUPPET.Puppet {
1289
1354
  }
1290
1355
  }
1291
1356
  async messageBatchSendText(conversationIds, text, batchTaskId) {
1292
- log.verbose('PuppetService', 'messageBatchSendText(%s)', conversationIds.join(','));
1357
+ this.log.verbose('PuppetService', 'messageBatchSendText(%s)', conversationIds.join(','));
1293
1358
  const request = new grpcPuppet.MessageBatchSendTextRequest();
1294
1359
  request.setConversationIdsList(conversationIds);
1295
1360
  request.setText(text);
@@ -1300,7 +1365,7 @@ class PuppetService extends PUPPET.Puppet {
1300
1365
  return grpcBatchResultsToPayload(response);
1301
1366
  }
1302
1367
  async messageBatchSendFile(conversationIds, fileBox, batchTaskId) {
1303
- log.verbose('PuppetService', 'messageBatchSendFile(%s)', conversationIds.join(','));
1368
+ this.log.verbose('PuppetService', 'messageBatchSendFile(%s)', conversationIds.join(','));
1304
1369
  const request = new grpcPuppet.MessageBatchSendFileRequest();
1305
1370
  request.setConversationIdsList(conversationIds);
1306
1371
  request.setFileBox(await this.serializeFileBox(fileBox));
@@ -1311,7 +1376,7 @@ class PuppetService extends PUPPET.Puppet {
1311
1376
  return grpcBatchResultsToPayload(response);
1312
1377
  }
1313
1378
  async messageBatchForward(conversationIds, messageIds, batchTaskId) {
1314
- log.verbose('PuppetService', 'messageBatchForward(%s, %s)', conversationIds.join(','), messageIds);
1379
+ this.log.verbose('PuppetService', 'messageBatchForward(%s, %s)', conversationIds.join(','), messageIds);
1315
1380
  const request = new grpcPuppet.MessageBatchForwardRequest();
1316
1381
  request.setConversationIdsList(conversationIds);
1317
1382
  if (Array.isArray(messageIds)) {
@@ -1330,7 +1395,7 @@ class PuppetService extends PUPPET.Puppet {
1330
1395
  return grpcBatchResultsToPayload(response);
1331
1396
  }
1332
1397
  async messageBatchSendContact(conversationIds, contactId, batchTaskId) {
1333
- log.verbose('PuppetService', 'messageBatchSendContact(%s, %s)', conversationIds.join(','), contactId);
1398
+ this.log.verbose('PuppetService', 'messageBatchSendContact(%s, %s)', conversationIds.join(','), contactId);
1334
1399
  const request = new grpcPuppet.MessageBatchSendContactRequest();
1335
1400
  request.setConversationIdsList(conversationIds);
1336
1401
  request.setContactId(contactId);
@@ -1341,7 +1406,7 @@ class PuppetService extends PUPPET.Puppet {
1341
1406
  return grpcBatchResultsToPayload(response);
1342
1407
  }
1343
1408
  async messageBatchSendUrl(conversationIds, urlLinkPayload, batchTaskId) {
1344
- log.verbose('PuppetService', 'messageBatchSendUrl(%s)', conversationIds.join(','));
1409
+ this.log.verbose('PuppetService', 'messageBatchSendUrl(%s)', conversationIds.join(','));
1345
1410
  const request = new grpcPuppet.MessageBatchSendUrlRequest();
1346
1411
  request.setConversationIdsList(conversationIds);
1347
1412
  request.setUrlLink(urlLinkPayloadToPb(grpcPuppet, urlLinkPayload));
@@ -1352,7 +1417,7 @@ class PuppetService extends PUPPET.Puppet {
1352
1417
  return grpcBatchResultsToPayload(response);
1353
1418
  }
1354
1419
  async messageBatchSendMiniProgram(conversationIds, miniProgramPayload, batchTaskId) {
1355
- log.verbose('PuppetService', 'messageBatchSendMiniProgram(%s)', conversationIds.join(','));
1420
+ this.log.verbose('PuppetService', 'messageBatchSendMiniProgram(%s)', conversationIds.join(','));
1356
1421
  const request = new grpcPuppet.MessageBatchSendMiniProgramRequest();
1357
1422
  request.setConversationIdsList(conversationIds);
1358
1423
  request.setMiniProgram(miniProgramPayloadToPb(grpcPuppet, miniProgramPayload));
@@ -1363,7 +1428,7 @@ class PuppetService extends PUPPET.Puppet {
1363
1428
  return grpcBatchResultsToPayload(response);
1364
1429
  }
1365
1430
  async messageBatchSendLocation(conversationIds, locationPayload, batchTaskId) {
1366
- log.verbose('PuppetService', 'messageBatchSendLocation(%s)', conversationIds.join(','));
1431
+ this.log.verbose('PuppetService', 'messageBatchSendLocation(%s)', conversationIds.join(','));
1367
1432
  const request = new grpcPuppet.MessageBatchSendLocationRequest();
1368
1433
  request.setConversationIdsList(conversationIds);
1369
1434
  request.setLocation(locationPayloadToPb(grpcPuppet, locationPayload));
@@ -1374,7 +1439,7 @@ class PuppetService extends PUPPET.Puppet {
1374
1439
  return grpcBatchResultsToPayload(response);
1375
1440
  }
1376
1441
  async messageBatchSendChannel(conversationIds, channelPayload, batchTaskId) {
1377
- log.verbose('PuppetService', 'messageBatchSendChannel(%s)', conversationIds.join(','));
1442
+ this.log.verbose('PuppetService', 'messageBatchSendChannel(%s)', conversationIds.join(','));
1378
1443
  const request = new grpcPuppet.MessageBatchSendChannelRequest();
1379
1444
  request.setConversationIdsList(conversationIds);
1380
1445
  request.setChannel(channelPayloadToPb(grpcPuppet, channelPayload));
@@ -1385,7 +1450,7 @@ class PuppetService extends PUPPET.Puppet {
1385
1450
  return grpcBatchResultsToPayload(response);
1386
1451
  }
1387
1452
  async messageBatchSendChannelCard(conversationIds, channelCardPayload, batchTaskId) {
1388
- log.verbose('PuppetService', 'messageBatchSendChannelCard(%s)', conversationIds.join(','));
1453
+ this.log.verbose('PuppetService', 'messageBatchSendChannelCard(%s)', conversationIds.join(','));
1389
1454
  const request = new grpcPuppet.MessageBatchSendChannelCardRequest();
1390
1455
  request.setConversationIdsList(conversationIds);
1391
1456
  request.setChannelCard(channelCardPayloadToPb(grpcPuppet, channelCardPayload));
@@ -1396,16 +1461,16 @@ class PuppetService extends PUPPET.Puppet {
1396
1461
  return grpcBatchResultsToPayload(response);
1397
1462
  }
1398
1463
  async messageSendFile(conversationId, fileBox) {
1399
- log.verbose('PuppetService', 'messageSendFile(%s, %s)', conversationId, fileBox);
1464
+ this.log.verbose('PuppetService', 'messageSendFile(%s, %s)', conversationId, fileBox);
1400
1465
  const request = new grpcPuppet.MessageSendFileRequest();
1401
1466
  request.setConversationId(conversationId);
1402
1467
  const serializedFileBox = await this.serializeFileBox(fileBox);
1403
1468
  request.setFileBox(serializedFileBox);
1404
- log.info('PuppetService', `messageSendFile(${conversationId}, ${fileBox}) about to call grpc`);
1469
+ this.log.info('PuppetService', `messageSendFile(${conversationId}, ${fileBox}) about to call grpc`);
1405
1470
  const response = await util.promisify(this.grpcManager.client.messageSendFile
1406
1471
  .bind(this.grpcManager.client))(request);
1407
1472
  const messageId = response.getId();
1408
- log.info('PuppetService', `messageSendFile(${conversationId}, ${fileBox}) grpc called, messageId: ${messageId}`);
1473
+ this.log.info('PuppetService', `messageSendFile(${conversationId}, ${fileBox}) grpc called, messageId: ${messageId}`);
1409
1474
  if (messageId) {
1410
1475
  return messageId;
1411
1476
  }
@@ -1420,15 +1485,15 @@ class PuppetService extends PUPPET.Puppet {
1420
1485
  }
1421
1486
  }
1422
1487
  async messageSendContact(conversationId, contactId) {
1423
- log.verbose('PuppetService', 'messageSend("%s", %s)', conversationId, contactId);
1488
+ this.log.verbose('PuppetService', 'messageSend("%s", %s)', conversationId, contactId);
1424
1489
  const request = new grpcPuppet.MessageSendContactRequest();
1425
1490
  request.setConversationId(conversationId);
1426
1491
  request.setContactId(contactId);
1427
- log.info('PuppetService', `messageSendContact(${conversationId}, ${contactId}) about to call grpc`);
1492
+ this.log.info('PuppetService', `messageSendContact(${conversationId}, ${contactId}) about to call grpc`);
1428
1493
  const response = await util.promisify(this.grpcManager.client.messageSendContact
1429
1494
  .bind(this.grpcManager.client))(request);
1430
1495
  const messageId = response.getId();
1431
- log.info('PuppetService', `messageSendContact(${conversationId}, ${contactId}) grpc called, messageId: ${messageId}`);
1496
+ this.log.info('PuppetService', `messageSendContact(${conversationId}, ${contactId}) grpc called, messageId: ${messageId}`);
1432
1497
  if (messageId) {
1433
1498
  return messageId;
1434
1499
  }
@@ -1443,7 +1508,7 @@ class PuppetService extends PUPPET.Puppet {
1443
1508
  }
1444
1509
  }
1445
1510
  async messageSendUrl(conversationId, urlLinkPayload) {
1446
- log.verbose('PuppetService', 'messageSendUrl("%s", %s)', conversationId, JSON.stringify(urlLinkPayload));
1511
+ this.log.verbose('PuppetService', 'messageSendUrl("%s", %s)', conversationId, JSON.stringify(urlLinkPayload));
1447
1512
  const request = new grpcPuppet.MessageSendUrlRequest();
1448
1513
  request.setConversationId(conversationId);
1449
1514
  const pbUrlLinkPayload = new grpcPuppet.UrlLinkPayload();
@@ -1458,11 +1523,11 @@ class PuppetService extends PUPPET.Puppet {
1458
1523
  request.setUrlLink(pbUrlLinkPayload);
1459
1524
  // Deprecated: will be removed after Dec 31, 2022
1460
1525
  request.setUrlLinkDeprecated(JSON.stringify(urlLinkPayload));
1461
- log.info('PuppetService', `messageSendUrl(${conversationId}, ${urlLinkPayload}) about to call grpc`);
1526
+ this.log.info('PuppetService', `messageSendUrl(${conversationId}, ${urlLinkPayload}) about to call grpc`);
1462
1527
  const response = await util.promisify(this.grpcManager.client.messageSendUrl
1463
1528
  .bind(this.grpcManager.client))(request);
1464
1529
  const messageId = response.getId();
1465
- log.info('PuppetService', `messageSendUrl(${conversationId}, ${urlLinkPayload}) grpc called, messageId: ${messageId}`);
1530
+ this.log.info('PuppetService', `messageSendUrl(${conversationId}, ${urlLinkPayload}) grpc called, messageId: ${messageId}`);
1466
1531
  if (messageId) {
1467
1532
  return messageId;
1468
1533
  }
@@ -1477,22 +1542,22 @@ class PuppetService extends PUPPET.Puppet {
1477
1542
  }
1478
1543
  }
1479
1544
  async messageSendPost(conversationId, postPayload) {
1480
- log.verbose('PuppetService', 'messageSendPost("%s", %s)', conversationId, JSON.stringify(postPayload));
1545
+ this.log.verbose('PuppetService', 'messageSendPost("%s", %s)', conversationId, JSON.stringify(postPayload));
1481
1546
  const request = new grpcPuppet.MessageSendPostRequest();
1482
1547
  const post = await postPayloadToPb(grpcPuppet, postPayload, this.serializeFileBox.bind(this));
1483
1548
  request.setContent(post);
1484
1549
  request.setConversationId(conversationId);
1485
- log.info('PuppetService', `messageSendPost(${conversationId}, ${postPayload}) about to call grpc`);
1550
+ this.log.info('PuppetService', `messageSendPost(${conversationId}, ${postPayload}) about to call grpc`);
1486
1551
  const response = await util.promisify(this.grpcManager.client.messageSendPost
1487
1552
  .bind(this.grpcManager.client))(request);
1488
1553
  const messageId = response.getId();
1489
- log.info('PuppetService', `messageSendPost(${conversationId}, ${postPayload}) grpc called, messageId: ${messageId}`);
1554
+ this.log.info('PuppetService', `messageSendPost(${conversationId}, ${postPayload}) grpc called, messageId: ${messageId}`);
1490
1555
  if (messageId) {
1491
1556
  return messageId;
1492
1557
  }
1493
1558
  }
1494
1559
  async messageUrl(messageId) {
1495
- log.verbose('PuppetService', 'messageUrl(%s)', messageId);
1560
+ this.log.verbose('PuppetService', 'messageUrl(%s)', messageId);
1496
1561
  const request = new grpcPuppet.MessageUrlRequest();
1497
1562
  request.setId(messageId);
1498
1563
  const response = await util.promisify(this.grpcManager.client.messageUrl
@@ -1511,7 +1576,7 @@ class PuppetService extends PUPPET.Puppet {
1511
1576
  return payload;
1512
1577
  }
1513
1578
  async getMessageBroadcastTarget() {
1514
- log.verbose('PuppetService', 'getMessageBroadcastTarget()');
1579
+ this.log.verbose('PuppetService', 'getMessageBroadcastTarget()');
1515
1580
  const request = new grpcPuppet.GetMessageBroadcastTargetRequest();
1516
1581
  const response = await util.promisify(this.grpcManager.client.getMessageBroadcastTarget.bind(this.grpcManager.client))(request);
1517
1582
  return {
@@ -1520,7 +1585,7 @@ class PuppetService extends PUPPET.Puppet {
1520
1585
  };
1521
1586
  }
1522
1587
  async createMessageBroadcast(targets, content) {
1523
- log.verbose('PuppetService', 'createMessageBroadcast()');
1588
+ this.log.verbose('PuppetService', 'createMessageBroadcast()');
1524
1589
  if (!PUPPET.payloads.isPostClient(content)) {
1525
1590
  throw new Error('can only create broadcast with client post');
1526
1591
  }
@@ -1532,7 +1597,7 @@ class PuppetService extends PUPPET.Puppet {
1532
1597
  return response.getId();
1533
1598
  }
1534
1599
  async getMessageBroadcastStatus(id) {
1535
- log.verbose('PuppetService', 'getMessageBroadcastStatus()');
1600
+ this.log.verbose('PuppetService', 'getMessageBroadcastStatus()');
1536
1601
  const request = new grpcPuppet.GetMessageBroadcastStatusRequest();
1537
1602
  request.setId(id);
1538
1603
  const response = await util.promisify(this.grpcManager.client.getMessageBroadcastStatus.bind(this.grpcManager.client))(request);
@@ -1556,10 +1621,10 @@ class PuppetService extends PUPPET.Puppet {
1556
1621
  *
1557
1622
  */
1558
1623
  async roomRawPayload(id) {
1559
- log.verbose('PuppetService', 'roomRawPayload(%s)', id);
1624
+ this.log.verbose('PuppetService', 'roomRawPayload(%s)', id);
1560
1625
  const cachedPayload = await this._payloadStore.room?.get(id);
1561
1626
  if (cachedPayload) {
1562
- log.silly('PuppetService', 'roomRawPayload(%s) cache HIT', id);
1627
+ this.log.silly('PuppetService', 'roomRawPayload(%s) cache HIT', id);
1563
1628
  return cachedPayload;
1564
1629
  }
1565
1630
  const request = new grpcPuppet.RoomPayloadRequest();
@@ -1583,16 +1648,16 @@ class PuppetService extends PUPPET.Puppet {
1583
1648
  payload.createTime = millisecondsFromTimestamp(createTime);
1584
1649
  }
1585
1650
  await this._payloadStore.room?.set(id, payload);
1586
- log.silly('PuppetService', 'roomRawPayload(%s) cache SET', id);
1651
+ this.log.silly('PuppetService', 'roomRawPayload(%s) cache SET', id);
1587
1652
  return payload;
1588
1653
  }
1589
1654
  async roomRawPayloadParser(payload) {
1590
- // log.silly('PuppetService', 'roomRawPayloadParser({id:%s})', payload.id)
1655
+ // this.log.silly('PuppetService', 'roomRawPayloadParser({id:%s})', payload.id)
1591
1656
  // passthrough
1592
1657
  return payload;
1593
1658
  }
1594
1659
  async batchRoomRawPayload(roomIdList) {
1595
- log.verbose('PuppetService', 'batchRoomRawPayload(%s)', roomIdList);
1660
+ this.log.verbose('PuppetService', 'batchRoomRawPayload(%s)', roomIdList);
1596
1661
  const result = new Map();
1597
1662
  const roomIdSet = new Set(roomIdList);
1598
1663
  const needGetSet = new Set();
@@ -1635,7 +1700,7 @@ class PuppetService extends PUPPET.Puppet {
1635
1700
  }
1636
1701
  }
1637
1702
  catch (e) {
1638
- log.error('PuppetService', 'batchRoomRawPayload(%s, %s) error: %s, use one by one method', roomIdList, needGetSet, e);
1703
+ this.log.error('PuppetService', 'batchRoomRawPayload(%s, %s) error: %s, use one by one method', roomIdList, needGetSet, e);
1639
1704
  for (const roomId of needGetSet) {
1640
1705
  const payload = await this.roomRawPayload(roomId);
1641
1706
  result.set(roomId, payload);
@@ -1645,13 +1710,13 @@ class PuppetService extends PUPPET.Puppet {
1645
1710
  return result;
1646
1711
  }
1647
1712
  async roomList() {
1648
- log.verbose('PuppetService', 'roomList()');
1713
+ this.log.verbose('PuppetService', 'roomList()');
1649
1714
  const response = await util.promisify(this.grpcManager.client.roomList
1650
1715
  .bind(this.grpcManager.client))(new grpcPuppet.RoomListRequest());
1651
1716
  return response.getIdsList();
1652
1717
  }
1653
1718
  async roomDel(roomId, contactIds) {
1654
- log.verbose('PuppetService', 'roomDel(%s, %s)', roomId, contactIds);
1719
+ this.log.verbose('PuppetService', 'roomDel(%s, %s)', roomId, contactIds);
1655
1720
  const request = new grpcPuppet.RoomDelRequest();
1656
1721
  request.setId(roomId);
1657
1722
  if (Array.isArray(contactIds)) {
@@ -1667,7 +1732,7 @@ class PuppetService extends PUPPET.Puppet {
1667
1732
  .bind(this.grpcManager.client))(request);
1668
1733
  }
1669
1734
  async roomDelV2(roomId, contactIds) {
1670
- log.verbose('PuppetService', 'roomDelV2(%s, %s)', roomId, contactIds);
1735
+ this.log.verbose('PuppetService', 'roomDelV2(%s, %s)', roomId, contactIds);
1671
1736
  const request = new grpcPuppet.RoomDelV2Request();
1672
1737
  request.setId(roomId);
1673
1738
  request.setContactIdsList(contactIds);
@@ -1680,7 +1745,7 @@ class PuppetService extends PUPPET.Puppet {
1680
1745
  };
1681
1746
  }
1682
1747
  async roomAvatar(roomId) {
1683
- log.verbose('PuppetService', 'roomAvatar(%s)', roomId);
1748
+ this.log.verbose('PuppetService', 'roomAvatar(%s)', roomId);
1684
1749
  const request = new grpcPuppet.RoomAvatarRequest();
1685
1750
  request.setId(roomId);
1686
1751
  const response = await util.promisify(this.grpcManager.client.roomAvatar
@@ -1689,7 +1754,7 @@ class PuppetService extends PUPPET.Puppet {
1689
1754
  return this.FileBoxUuid.fromJSON(jsonText);
1690
1755
  }
1691
1756
  async roomAdd(roomId, contactId, inviteOnly, quoteIds) {
1692
- log.verbose('PuppetService', 'roomAdd(%s, %s)', roomId, contactId);
1757
+ this.log.verbose('PuppetService', 'roomAdd(%s, %s)', roomId, contactId);
1693
1758
  const request = new grpcPuppet.RoomAddRequest();
1694
1759
  request.setId(roomId);
1695
1760
  if (Array.isArray(contactId)) {
@@ -1704,7 +1769,7 @@ class PuppetService extends PUPPET.Puppet {
1704
1769
  .bind(this.grpcManager.client))(request);
1705
1770
  }
1706
1771
  async roomAddV2(roomId, contactIds, inviteOnly, quoteIds) {
1707
- log.verbose('PuppetService', 'roomAddV2(%s, %s)', roomId, contactIds);
1772
+ this.log.verbose('PuppetService', 'roomAddV2(%s, %s)', roomId, contactIds);
1708
1773
  const request = new grpcPuppet.RoomAddV2Request();
1709
1774
  request.setId(roomId);
1710
1775
  request.setContactIdsList(contactIds);
@@ -1719,7 +1784,7 @@ class PuppetService extends PUPPET.Puppet {
1719
1784
  };
1720
1785
  }
1721
1786
  async roomTopic(roomId, topic) {
1722
- log.verbose('PuppetService', 'roomTopic(%s, %s)', roomId, topic);
1787
+ this.log.verbose('PuppetService', 'roomTopic(%s, %s)', roomId, topic);
1723
1788
  /**
1724
1789
  * Get
1725
1790
  */
@@ -1757,7 +1822,7 @@ class PuppetService extends PUPPET.Puppet {
1757
1822
  .bind(this.grpcManager.client))(request);
1758
1823
  }
1759
1824
  async roomRemark(roomId, remark) {
1760
- log.verbose('PuppetService', 'roomRemark(%s)', roomId);
1825
+ this.log.verbose('PuppetService', 'roomRemark(%s)', roomId);
1761
1826
  const request = new grpcPuppet.RoomRemarkRequest();
1762
1827
  request.setId(roomId);
1763
1828
  request.setRemark(remark);
@@ -1765,7 +1830,7 @@ class PuppetService extends PUPPET.Puppet {
1765
1830
  .bind(this.grpcManager.client))(request);
1766
1831
  }
1767
1832
  async roomCreate(contactIdList, topic) {
1768
- log.verbose('PuppetService', 'roomCreate(%s, %s)', contactIdList, topic);
1833
+ this.log.verbose('PuppetService', 'roomCreate(%s, %s)', contactIdList, topic);
1769
1834
  const request = new grpcPuppet.RoomCreateRequest();
1770
1835
  request.setContactIdsList(contactIdList);
1771
1836
  request.setTopic(topic);
@@ -1774,14 +1839,14 @@ class PuppetService extends PUPPET.Puppet {
1774
1839
  return response.getId();
1775
1840
  }
1776
1841
  async roomQuit(roomId) {
1777
- log.verbose('PuppetService', 'roomQuit(%s)', roomId);
1842
+ this.log.verbose('PuppetService', 'roomQuit(%s)', roomId);
1778
1843
  const request = new grpcPuppet.RoomQuitRequest();
1779
1844
  request.setId(roomId);
1780
1845
  await util.promisify(this.grpcManager.client.roomQuit
1781
1846
  .bind(this.grpcManager.client))(request);
1782
1847
  }
1783
1848
  async roomQRCode(roomId) {
1784
- log.verbose('PuppetService', 'roomQRCode(%s)', roomId);
1849
+ this.log.verbose('PuppetService', 'roomQRCode(%s)', roomId);
1785
1850
  const request = new grpcPuppet.RoomQRCodeRequest();
1786
1851
  request.setId(roomId);
1787
1852
  const response = await util.promisify(this.grpcManager.client.roomQRCode
@@ -1789,7 +1854,7 @@ class PuppetService extends PUPPET.Puppet {
1789
1854
  return response.getQrcode();
1790
1855
  }
1791
1856
  async roomParseDynamicQRCode(url) {
1792
- log.verbose('PuppetService', 'roomParseDynamicQRCode(%s)', url);
1857
+ this.log.verbose('PuppetService', 'roomParseDynamicQRCode(%s)', url);
1793
1858
  const request = new grpcPuppet.RoomParseDynamicQRCodeRequest();
1794
1859
  request.setUrl(url);
1795
1860
  const response = await util.promisify(this.grpcManager.client.roomParseDynamicQRCode
@@ -1801,7 +1866,7 @@ class PuppetService extends PUPPET.Puppet {
1801
1866
  };
1802
1867
  }
1803
1868
  async roomMemberList(roomId) {
1804
- log.verbose('PuppetService', 'roomMemberList(%s)', roomId);
1869
+ this.log.verbose('PuppetService', 'roomMemberList(%s)', roomId);
1805
1870
  const request = new grpcPuppet.RoomMemberListRequest();
1806
1871
  request.setId(roomId);
1807
1872
  const response = await util.promisify(this.grpcManager.client.roomMemberList
@@ -1809,11 +1874,11 @@ class PuppetService extends PUPPET.Puppet {
1809
1874
  return response.getMemberIdsList();
1810
1875
  }
1811
1876
  async roomMemberRawPayload(roomId, contactId) {
1812
- log.verbose('PuppetService', 'roomMemberRawPayload(%s, %s)', roomId, contactId);
1877
+ this.log.verbose('PuppetService', 'roomMemberRawPayload(%s, %s)', roomId, contactId);
1813
1878
  const cachedPayload = await this._payloadStore.roomMember?.get(roomId);
1814
1879
  const cachedRoomMemberPayload = cachedPayload && cachedPayload[contactId];
1815
1880
  if (cachedRoomMemberPayload) {
1816
- log.silly('PuppetService', 'roomMemberRawPayload(%s, %s) cache HIT', roomId, contactId);
1881
+ this.log.silly('PuppetService', 'roomMemberRawPayload(%s, %s) cache HIT', roomId, contactId);
1817
1882
  return cachedRoomMemberPayload;
1818
1883
  }
1819
1884
  const request = new grpcPuppet.RoomMemberPayloadRequest();
@@ -1835,16 +1900,16 @@ class PuppetService extends PUPPET.Puppet {
1835
1900
  ...cachedPayload,
1836
1901
  [contactId]: payload,
1837
1902
  });
1838
- log.silly('PuppetService', 'roomMemberRawPayload(%s, %s) cache SET', roomId, contactId);
1903
+ this.log.silly('PuppetService', 'roomMemberRawPayload(%s, %s) cache SET', roomId, contactId);
1839
1904
  return payload;
1840
1905
  }
1841
1906
  async roomMemberRawPayloadParser(payload) {
1842
- // log.silly('PuppetService', 'roomMemberRawPayloadParser({id:%s})', payload.id)
1907
+ // this.log.silly('PuppetService', 'roomMemberRawPayloadParser({id:%s})', payload.id)
1843
1908
  // passthrough
1844
1909
  return payload;
1845
1910
  }
1846
1911
  async batchRoomMemberRawPayload(roomId, contactIdList) {
1847
- log.verbose('PuppetService', 'batchRoomMemberRawPayload(%s, %s)', roomId, contactIdList);
1912
+ this.log.verbose('PuppetService', 'batchRoomMemberRawPayload(%s, %s)', roomId, contactIdList);
1848
1913
  const result = new Map();
1849
1914
  const contactIdSet = new Set(contactIdList);
1850
1915
  let needGetSet = new Set();
@@ -1880,7 +1945,7 @@ class PuppetService extends PUPPET.Puppet {
1880
1945
  await this._payloadStore.roomMember?.set(roomId, cachedPayload);
1881
1946
  }
1882
1947
  catch (e) {
1883
- log.error('PuppetService', 'batchRoomMemberRawPayload(%s, %s) error: %s, use one by one method', roomId, needGetSet, e);
1948
+ this.log.error('PuppetService', 'batchRoomMemberRawPayload(%s, %s) error: %s, use one by one method', roomId, needGetSet, e);
1884
1949
  for (const contactId of needGetSet) {
1885
1950
  const payload = await this.roomMemberRawPayload(roomId, contactId);
1886
1951
  result.set(contactId, payload);
@@ -1890,7 +1955,7 @@ class PuppetService extends PUPPET.Puppet {
1890
1955
  return result;
1891
1956
  }
1892
1957
  async roomAnnounce(roomId, text) {
1893
- log.verbose('PuppetService', 'roomAnnounce(%s%s)', roomId, typeof text === 'undefined'
1958
+ this.log.verbose('PuppetService', 'roomAnnounce(%s%s)', roomId, typeof text === 'undefined'
1894
1959
  ? ''
1895
1960
  : `, ${text}`);
1896
1961
  /**
@@ -1931,14 +1996,14 @@ class PuppetService extends PUPPET.Puppet {
1931
1996
  return '';
1932
1997
  }
1933
1998
  async roomInvitationAccept(roomInvitationId) {
1934
- log.verbose('PuppetService', 'roomInvitationAccept(%s)', roomInvitationId);
1999
+ this.log.verbose('PuppetService', 'roomInvitationAccept(%s)', roomInvitationId);
1935
2000
  const request = new grpcPuppet.RoomInvitationAcceptRequest();
1936
2001
  request.setId(roomInvitationId);
1937
2002
  await util.promisify(this.grpcManager.client.roomInvitationAccept
1938
2003
  .bind(this.grpcManager.client))(request);
1939
2004
  }
1940
2005
  async roomInvitationAcceptByQRCode(qrcode) {
1941
- log.verbose('PuppetService', 'roomInvitationAcceptByQRCode(%s)', qrcode);
2006
+ this.log.verbose('PuppetService', 'roomInvitationAcceptByQRCode(%s)', qrcode);
1942
2007
  const request = new grpcPuppet.RoomInvitationAcceptByQRCodeRequest();
1943
2008
  request.setQrcode(qrcode);
1944
2009
  const response = await util.promisify(this.grpcManager.client.roomInvitationAcceptByQRCode
@@ -1949,7 +2014,7 @@ class PuppetService extends PUPPET.Puppet {
1949
2014
  };
1950
2015
  }
1951
2016
  async roomInvitationRawPayload(id) {
1952
- log.verbose('PuppetService', 'roomInvitationRawPayload(%s)', id);
2017
+ this.log.verbose('PuppetService', 'roomInvitationRawPayload(%s)', id);
1953
2018
  const request = new grpcPuppet.RoomInvitationPayloadRequest();
1954
2019
  request.setId(id);
1955
2020
  const response = await util.promisify(this.grpcManager.client.roomInvitationPayload
@@ -1983,12 +2048,12 @@ class PuppetService extends PUPPET.Puppet {
1983
2048
  return payload;
1984
2049
  }
1985
2050
  async roomInvitationRawPayloadParser(payload) {
1986
- // log.silly('PuppetService', 'roomInvitationRawPayloadParser({id:%s})', payload.id)
2051
+ // this.log.silly('PuppetService', 'roomInvitationRawPayloadParser({id:%s})', payload.id)
1987
2052
  // passthrough
1988
2053
  return payload;
1989
2054
  }
1990
2055
  async roomPermission(roomId, permission) {
1991
- log.verbose('PuppetService', 'roomPermission(%s, %s)', roomId, JSON.stringify(permission));
2056
+ this.log.verbose('PuppetService', 'roomPermission(%s, %s)', roomId, JSON.stringify(permission));
1992
2057
  const request = new grpcPuppet.RoomPermissionRequest();
1993
2058
  request.setId(roomId);
1994
2059
  let set = false;
@@ -2014,7 +2079,7 @@ class PuppetService extends PUPPET.Puppet {
2014
2079
  return set ? undefined : result;
2015
2080
  }
2016
2081
  async roomOwnerTransfer(roomId, contactId) {
2017
- log.verbose('PuppetService', 'roomOwnerTransfer(%s, %s)', roomId, contactId);
2082
+ this.log.verbose('PuppetService', 'roomOwnerTransfer(%s, %s)', roomId, contactId);
2018
2083
  const request = new grpcPuppet.RoomOwnerTransferRequest();
2019
2084
  request.setId(roomId);
2020
2085
  request.setContactId(contactId);
@@ -2022,7 +2087,7 @@ class PuppetService extends PUPPET.Puppet {
2022
2087
  .bind(this.grpcManager.client))(request);
2023
2088
  }
2024
2089
  async roomAddAdmins(roomId, contactIdList) {
2025
- log.verbose('PuppetService', 'roomAddAdmins(%s, %s)', roomId, contactIdList);
2090
+ this.log.verbose('PuppetService', 'roomAddAdmins(%s, %s)', roomId, contactIdList);
2026
2091
  const request = new grpcPuppet.RoomAdminsRequest();
2027
2092
  request.setId(roomId);
2028
2093
  request.setContactIdsList(contactIdList);
@@ -2030,7 +2095,7 @@ class PuppetService extends PUPPET.Puppet {
2030
2095
  .bind(this.grpcManager.client))(request);
2031
2096
  }
2032
2097
  async roomDelAdmins(roomId, contactIdList) {
2033
- log.verbose('PuppetService', 'roomDelAdmins(%s, %s)', roomId, contactIdList);
2098
+ this.log.verbose('PuppetService', 'roomDelAdmins(%s, %s)', roomId, contactIdList);
2034
2099
  const request = new grpcPuppet.RoomAdminsRequest();
2035
2100
  request.setId(roomId);
2036
2101
  request.setContactIdsList(contactIdList);
@@ -2038,7 +2103,7 @@ class PuppetService extends PUPPET.Puppet {
2038
2103
  .bind(this.grpcManager.client))(request);
2039
2104
  }
2040
2105
  async roomDismiss(roomId) {
2041
- log.verbose('PuppetService', 'roomDelAdmins(%s)', roomId);
2106
+ this.log.verbose('PuppetService', 'roomDelAdmins(%s)', roomId);
2042
2107
  const request = new grpcPuppet.RoomDismissRequest();
2043
2108
  request.setId(roomId);
2044
2109
  await util.promisify(this.grpcManager.client.roomDismiss
@@ -2050,7 +2115,7 @@ class PuppetService extends PUPPET.Puppet {
2050
2115
  *
2051
2116
  */
2052
2117
  async friendshipSearchPhone(phone, type) {
2053
- log.verbose('PuppetService', 'friendshipSearchPhone(%s)', phone);
2118
+ this.log.verbose('PuppetService', 'friendshipSearchPhone(%s)', phone);
2054
2119
  const request = new grpcPuppet.FriendshipSearchPhoneRequest();
2055
2120
  request.setPhone(phone);
2056
2121
  if (typeof (type) === 'undefined') {
@@ -2075,7 +2140,7 @@ class PuppetService extends PUPPET.Puppet {
2075
2140
  return null;
2076
2141
  }
2077
2142
  async friendshipSearchHandle(handle, type) {
2078
- log.verbose('PuppetService', 'friendshipSearchHandle(%s)', handle);
2143
+ this.log.verbose('PuppetService', 'friendshipSearchHandle(%s)', handle);
2079
2144
  const request = new grpcPuppet.FriendshipSearchHandleRequest();
2080
2145
  /**
2081
2146
  * TODO: use `setHandle()` in v2.0.0
@@ -2104,7 +2169,7 @@ class PuppetService extends PUPPET.Puppet {
2104
2169
  return null;
2105
2170
  }
2106
2171
  async friendshipRawPayload(id) {
2107
- log.verbose('PuppetService', 'friendshipRawPayload(%s)', id);
2172
+ this.log.verbose('PuppetService', 'friendshipRawPayload(%s)', id);
2108
2173
  const request = new grpcPuppet.FriendshipPayloadRequest();
2109
2174
  request.setId(id);
2110
2175
  const response = await util.promisify(this.grpcManager.client.friendshipPayload
@@ -2121,12 +2186,12 @@ class PuppetService extends PUPPET.Puppet {
2121
2186
  return payload;
2122
2187
  }
2123
2188
  async friendshipRawPayloadParser(payload) {
2124
- // log.silly('PuppetService', 'friendshipRawPayloadParser({id:%s})', payload.id)
2189
+ // this.log.silly('PuppetService', 'friendshipRawPayloadParser({id:%s})', payload.id)
2125
2190
  // passthrough
2126
2191
  return payload;
2127
2192
  }
2128
2193
  async friendshipAdd(contactId, options) {
2129
- log.verbose('PuppetService', 'friendshipAdd(%s, %s)', contactId, JSON.stringify(options));
2194
+ this.log.verbose('PuppetService', 'friendshipAdd(%s, %s)', contactId, JSON.stringify(options));
2130
2195
  const request = new grpcPuppet.FriendshipAddRequest();
2131
2196
  request.setContactId(contactId);
2132
2197
  // FIXME: for backward compatibility, need to be removed after all puppet has updated.
@@ -2157,7 +2222,7 @@ class PuppetService extends PUPPET.Puppet {
2157
2222
  .bind(this.grpcManager.client))(request);
2158
2223
  }
2159
2224
  async friendshipAccept(friendshipId) {
2160
- log.verbose('PuppetService', 'friendshipAccept(%s)', friendshipId);
2225
+ this.log.verbose('PuppetService', 'friendshipAccept(%s)', friendshipId);
2161
2226
  const request = new grpcPuppet.FriendshipAcceptRequest();
2162
2227
  request.setId(friendshipId);
2163
2228
  await util.promisify(this.grpcManager.client.friendshipAccept
@@ -2169,7 +2234,7 @@ class PuppetService extends PUPPET.Puppet {
2169
2234
  *
2170
2235
  */
2171
2236
  async tagContactTagAdd(tagIds, contactIds) {
2172
- log.verbose('PuppetService', 'tagContactTagAdd(%s, %s)', tagIds, contactIds);
2237
+ this.log.verbose('PuppetService', 'tagContactTagAdd(%s, %s)', tagIds, contactIds);
2173
2238
  const request = new grpcPuppet.TagContactTagAddRequest();
2174
2239
  request.setTagIdsList(tagIds);
2175
2240
  request.setContactIdsList(contactIds);
@@ -2177,7 +2242,7 @@ class PuppetService extends PUPPET.Puppet {
2177
2242
  .bind(this.grpcManager.client))(request);
2178
2243
  }
2179
2244
  async tagContactTagRemove(tagIds, contactIds) {
2180
- log.verbose('PuppetService', 'tagContactTagRemove(%s, %s)', tagIds, contactIds);
2245
+ this.log.verbose('PuppetService', 'tagContactTagRemove(%s, %s)', tagIds, contactIds);
2181
2246
  const request = new grpcPuppet.TagContactTagRemoveRequest();
2182
2247
  request.setTagIdsList(tagIds);
2183
2248
  request.setContactIdsList(contactIds);
@@ -2185,7 +2250,7 @@ class PuppetService extends PUPPET.Puppet {
2185
2250
  .bind(this.grpcManager.client))(request);
2186
2251
  }
2187
2252
  async tagGroupAdd(tagGroupName) {
2188
- log.verbose('PuppetService', 'tagGroupAdd(%s)', tagGroupName);
2253
+ this.log.verbose('PuppetService', 'tagGroupAdd(%s)', tagGroupName);
2189
2254
  const request = new grpcPuppet.TagGroupAddRequest();
2190
2255
  request.setTagGroupName(tagGroupName);
2191
2256
  const result = await util.promisify(this.grpcManager.client.tagGroupAdd
@@ -2194,14 +2259,14 @@ class PuppetService extends PUPPET.Puppet {
2194
2259
  return id;
2195
2260
  }
2196
2261
  async tagGroupDelete(tagGroupId) {
2197
- log.verbose('PuppetService', 'tagGroupDelete(%s)', tagGroupId);
2262
+ this.log.verbose('PuppetService', 'tagGroupDelete(%s)', tagGroupId);
2198
2263
  const request = new grpcPuppet.TagGroupDeleteRequest();
2199
2264
  request.setTagGroupId(tagGroupId);
2200
2265
  await util.promisify(this.grpcManager.client.tagGroupDelete
2201
2266
  .bind(this.grpcManager.client))(request);
2202
2267
  }
2203
2268
  async tagTagAdd(tagNameList, tagGroupId) {
2204
- log.verbose('PuppetService', 'tagTagAdd(%s, %s)', tagNameList, tagGroupId);
2269
+ this.log.verbose('PuppetService', 'tagTagAdd(%s, %s)', tagNameList, tagGroupId);
2205
2270
  const request = new grpcPuppet.TagTagAddRequest();
2206
2271
  if (typeof tagGroupId !== 'undefined') {
2207
2272
  request.setTagGroupId(tagGroupId);
@@ -2216,14 +2281,14 @@ class PuppetService extends PUPPET.Puppet {
2216
2281
  return tagInfoList;
2217
2282
  }
2218
2283
  async tagTagDelete(tagIdList) {
2219
- log.verbose('PuppetService', 'tagTagDelete(%s)', tagIdList);
2284
+ this.log.verbose('PuppetService', 'tagTagDelete(%s)', tagIdList);
2220
2285
  const request = new grpcPuppet.TagTagDeleteRequest();
2221
2286
  request.setTagIdList(tagIdList);
2222
2287
  await util.promisify(this.grpcManager.client.tagTagDelete
2223
2288
  .bind(this.grpcManager.client))(request);
2224
2289
  }
2225
2290
  async tagTagModify(tagNewInfoList) {
2226
- log.verbose('PuppetService', 'tagTagModify(%o)', tagNewInfoList);
2291
+ this.log.verbose('PuppetService', 'tagTagModify(%o)', tagNewInfoList);
2227
2292
  const request = new grpcPuppet.TagTagModifyRequest();
2228
2293
  const newInfoList = tagNewInfoList.map(i => {
2229
2294
  const tagInfo = new grpcPuppet.TagTagInfo();
@@ -2241,7 +2306,7 @@ class PuppetService extends PUPPET.Puppet {
2241
2306
  return tagInfoList;
2242
2307
  }
2243
2308
  async tagGroupList() {
2244
- log.verbose('PuppetService', 'tagGroupList()');
2309
+ this.log.verbose('PuppetService', 'tagGroupList()');
2245
2310
  const request = new grpcPuppet.TagGroupListRequest();
2246
2311
  const result = await util.promisify(this.grpcManager.client.tagGroupList
2247
2312
  .bind(this.grpcManager.client))(request);
@@ -2249,7 +2314,7 @@ class PuppetService extends PUPPET.Puppet {
2249
2314
  return groupIds;
2250
2315
  }
2251
2316
  async tagGroupTagList(tagGroupId) {
2252
- log.verbose('PuppetService', 'tagGroupTagList(%s)', tagGroupId);
2317
+ this.log.verbose('PuppetService', 'tagGroupTagList(%s)', tagGroupId);
2253
2318
  const request = new grpcPuppet.TagGroupTagListRequest();
2254
2319
  if (typeof tagGroupId !== 'undefined') {
2255
2320
  request.setTagGroupId(tagGroupId);
@@ -2260,7 +2325,7 @@ class PuppetService extends PUPPET.Puppet {
2260
2325
  return tagIds;
2261
2326
  }
2262
2327
  async tagTagList() {
2263
- log.verbose('PuppetService', 'tagTagList()');
2328
+ this.log.verbose('PuppetService', 'tagTagList()');
2264
2329
  const request = new grpcPuppet.TagTagListRequest();
2265
2330
  const result = await util.promisify(this.grpcManager.client.tagTagList
2266
2331
  .bind(this.grpcManager.client))(request);
@@ -2268,7 +2333,7 @@ class PuppetService extends PUPPET.Puppet {
2268
2333
  return tagIds;
2269
2334
  }
2270
2335
  async tagContactTagList(contactId) {
2271
- log.verbose('PuppetService', 'tagContactTagList(%s)', contactId);
2336
+ this.log.verbose('PuppetService', 'tagContactTagList(%s)', contactId);
2272
2337
  const request = new grpcPuppet.TagContactTagListRequest();
2273
2338
  request.setContactId(contactId);
2274
2339
  const result = await util.promisify(this.grpcManager.client.tagContactTagList
@@ -2277,7 +2342,7 @@ class PuppetService extends PUPPET.Puppet {
2277
2342
  return tagIds;
2278
2343
  }
2279
2344
  async tagTagContactList(tagId) {
2280
- log.verbose('PuppetService', 'tagTagContactList(%s)', tagId);
2345
+ this.log.verbose('PuppetService', 'tagTagContactList(%s)', tagId);
2281
2346
  const request = new grpcPuppet.TagTagContactListRequest();
2282
2347
  request.setTagId(tagId);
2283
2348
  const result = await util.promisify(this.grpcManager.client.tagTagContactList
@@ -2286,10 +2351,10 @@ class PuppetService extends PUPPET.Puppet {
2286
2351
  return contactIds;
2287
2352
  }
2288
2353
  async tagGroupPayloadPuppet(id) {
2289
- log.verbose('PuppetService', 'tagGroupPayload(%s)', id);
2354
+ this.log.verbose('PuppetService', 'tagGroupPayload(%s)', id);
2290
2355
  const cachedPayload = await this._payloadStore.tagGroup?.get(id);
2291
2356
  if (cachedPayload) {
2292
- log.silly('PuppetService', 'tagGroupPayload(%s) cache HIT', id);
2357
+ this.log.silly('PuppetService', 'tagGroupPayload(%s) cache HIT', id);
2293
2358
  return cachedPayload;
2294
2359
  }
2295
2360
  const request = new grpcPuppet.TagGroupPayloadRequest();
@@ -2306,14 +2371,14 @@ class PuppetService extends PUPPET.Puppet {
2306
2371
  type: grpcPayload.getType(),
2307
2372
  };
2308
2373
  await this._payloadStore.tagGroup?.set(id, payload);
2309
- log.silly('PuppetService', 'tagGroupPayloadPuppet(%s) cache SET', id);
2374
+ this.log.silly('PuppetService', 'tagGroupPayloadPuppet(%s) cache SET', id);
2310
2375
  return payload;
2311
2376
  }
2312
2377
  async tagPayloadPuppet(tagId) {
2313
- log.verbose('PuppetService', 'tagPayloadPuppet(%s)', tagId);
2378
+ this.log.verbose('PuppetService', 'tagPayloadPuppet(%s)', tagId);
2314
2379
  const cachedPayload = await this._payloadStore.tag?.get(tagId);
2315
2380
  if (cachedPayload) {
2316
- log.silly('PuppetService', 'tagPayloadPuppet(%s) cache HIT', tagId);
2381
+ this.log.silly('PuppetService', 'tagPayloadPuppet(%s) cache HIT', tagId);
2317
2382
  return cachedPayload;
2318
2383
  }
2319
2384
  const request = new grpcPuppet.TagPayloadRequest();
@@ -2331,7 +2396,7 @@ class PuppetService extends PUPPET.Puppet {
2331
2396
  type: grpcPayload.getType(),
2332
2397
  };
2333
2398
  await this._payloadStore.tag?.set(tagId, payload);
2334
- log.silly('PuppetService', 'tagPayloadPuppet(%s) cache SET', tagId);
2399
+ this.log.silly('PuppetService', 'tagPayloadPuppet(%s) cache SET', tagId);
2335
2400
  return payload;
2336
2401
  }
2337
2402
  /**
@@ -2340,7 +2405,7 @@ class PuppetService extends PUPPET.Puppet {
2340
2405
  *
2341
2406
  */
2342
2407
  async postPublish(payload) {
2343
- log.verbose('PuppetService', 'postPublish(%s)', payload);
2408
+ this.log.verbose('PuppetService', 'postPublish(%s)', payload);
2344
2409
  if (!PUPPET.payloads.isPostClient(payload)) {
2345
2410
  throw new Error('can only publish client post now');
2346
2411
  }
@@ -2353,13 +2418,13 @@ class PuppetService extends PUPPET.Puppet {
2353
2418
  return momentId;
2354
2419
  }
2355
2420
  async postUnpublish(id) {
2356
- log.verbose('PuppetService', 'postUnpublish(%s)', id);
2421
+ this.log.verbose('PuppetService', 'postUnpublish(%s)', id);
2357
2422
  const request = new grpcPuppet.MomentUnpublishRequest();
2358
2423
  request.setMomentId(id);
2359
2424
  await util.promisify(this.grpcManager.client.momentUnpublish.bind(this.grpcManager.client))(request);
2360
2425
  }
2361
2426
  async momentSignature(text) {
2362
- log.verbose('PuppetService', 'momentSignature(%s)', text);
2427
+ this.log.verbose('PuppetService', 'momentSignature(%s)', text);
2363
2428
  const request = new grpcPuppet.MomentSignatureRequest();
2364
2429
  if (text) {
2365
2430
  request.setText(text);
@@ -2370,7 +2435,7 @@ class PuppetService extends PUPPET.Puppet {
2370
2435
  return signature;
2371
2436
  }
2372
2437
  async momentCoverage(cover) {
2373
- log.verbose('PuppetService', 'momentCoverage(%s)', JSON.stringify(cover));
2438
+ this.log.verbose('PuppetService', 'momentCoverage(%s)', JSON.stringify(cover));
2374
2439
  const request = new grpcPuppet.MomentCoverageRequest();
2375
2440
  if (cover) {
2376
2441
  const serializedFileBox = await this.serializeFileBox(cover);
@@ -2384,7 +2449,7 @@ class PuppetService extends PUPPET.Puppet {
2384
2449
  }
2385
2450
  }
2386
2451
  async postPayloadSayable(postId, sayableId) {
2387
- log.verbose('PuppetService', 'postPayloadSayable(%s, %s)', postId, sayableId);
2452
+ this.log.verbose('PuppetService', 'postPayloadSayable(%s, %s)', postId, sayableId);
2388
2453
  const request = new grpcPuppet.PostPayloadSayableRequest();
2389
2454
  request.setPostId(postId);
2390
2455
  request.setSayableId(sayableId);
@@ -2436,7 +2501,7 @@ class PuppetService extends PUPPET.Puppet {
2436
2501
  }
2437
2502
  }
2438
2503
  async postRawPayload(id) {
2439
- log.verbose('PuppetService', 'postRawPayload(%s)', id);
2504
+ this.log.verbose('PuppetService', 'postRawPayload(%s)', id);
2440
2505
  const request = new grpcPuppet.PostPayloadRequest();
2441
2506
  request.setPostId(id);
2442
2507
  const response = await util.promisify(this.grpcManager.client.postPayload
@@ -2480,12 +2545,12 @@ class PuppetService extends PUPPET.Puppet {
2480
2545
  return payload;
2481
2546
  }
2482
2547
  async postRawPayloadParser(payload) {
2483
- // log.silly('PuppetService', 'postRawPayloadParser({id:%s})', payload.id)
2548
+ // this.log.silly('PuppetService', 'postRawPayloadParser({id:%s})', payload.id)
2484
2549
  // passthrough
2485
2550
  return payload;
2486
2551
  }
2487
2552
  async tap(postId, type, tap = true) {
2488
- log.verbose('PuppetService', 'tap(%s, %s, %s)', postId, type, tap);
2553
+ this.log.verbose('PuppetService', 'tap(%s, %s, %s)', postId, type, tap);
2489
2554
  const request = new grpcPuppet.PostTapRequest();
2490
2555
  request.setPostId(postId);
2491
2556
  if (type) {
@@ -2498,14 +2563,14 @@ class PuppetService extends PUPPET.Puppet {
2498
2563
  return result;
2499
2564
  }
2500
2565
  async momentVisibleList() {
2501
- log.verbose('PuppetService', 'momentVisibleList()');
2566
+ this.log.verbose('PuppetService', 'momentVisibleList()');
2502
2567
  const request = new grpcPuppet.MomentVisibleListRequest();
2503
2568
  const response = await util.promisify(this.grpcManager.client.momentVisibleList.bind(this.grpcManager.client))(request);
2504
2569
  const contactIdsList = response.getContactIdsList();
2505
2570
  return contactIdsList;
2506
2571
  }
2507
2572
  async getContactExternalUserId(contactIds, serviceProviderId) {
2508
- log.verbose('PuppetService', 'getContactExternalUserId(%s, %s)', JSON.stringify(contactIds), serviceProviderId);
2573
+ this.log.verbose('PuppetService', 'getContactExternalUserId(%s, %s)', JSON.stringify(contactIds), serviceProviderId);
2509
2574
  const request = new grpcPuppet.GetContactExternalUserIdRequest();
2510
2575
  request.setContactIdsList(contactIds);
2511
2576
  if (serviceProviderId) {
@@ -2523,7 +2588,7 @@ class PuppetService extends PUPPET.Puppet {
2523
2588
  return result;
2524
2589
  }
2525
2590
  async getRoomAntiSpamStrategyList() {
2526
- log.verbose('PuppetService', 'getRoomAntiSpamStrategyList()');
2591
+ this.log.verbose('PuppetService', 'getRoomAntiSpamStrategyList()');
2527
2592
  const request = new grpcPuppet.GetRoomAntiSpamStrategyListRequest();
2528
2593
  const response = await util.promisify(this.grpcManager.client.getRoomAntiSpamStrategyList.bind(this.grpcManager.client))(request);
2529
2594
  const result = [];
@@ -2537,7 +2602,7 @@ class PuppetService extends PUPPET.Puppet {
2537
2602
  return result;
2538
2603
  }
2539
2604
  async getRoomAntiSpamStrategyEffectRoomList(strategyId) {
2540
- log.verbose('PuppetService', 'getRoomAntiSpamStrategyEffectRoomList(%s)', strategyId);
2605
+ this.log.verbose('PuppetService', 'getRoomAntiSpamStrategyEffectRoomList(%s)', strategyId);
2541
2606
  const request = new grpcPuppet.GetRoomAntiSpamStrategyEffectRoomListRequest();
2542
2607
  request.setStrategyId(strategyId);
2543
2608
  const response = await util.promisify(this.grpcManager.client.getRoomAntiSpamStrategyEffectRoomList.bind(this.grpcManager.client))(request);
@@ -2545,7 +2610,7 @@ class PuppetService extends PUPPET.Puppet {
2545
2610
  return result;
2546
2611
  }
2547
2612
  async applyRoomAntiSpamStrategy(strategyId, roomIds, active) {
2548
- log.verbose('PuppetService', 'applyRoomAntiSpamStrategy(%s, %s, %s)', strategyId, roomIds, active);
2613
+ this.log.verbose('PuppetService', 'applyRoomAntiSpamStrategy(%s, %s, %s)', strategyId, roomIds, active);
2549
2614
  const request = new grpcPuppet.ApplyRoomAntiSpamStrategyRequest();
2550
2615
  request.setStrategyId(strategyId);
2551
2616
  request.setRoomIdsList(roomIds);
@@ -2553,7 +2618,7 @@ class PuppetService extends PUPPET.Puppet {
2553
2618
  await util.promisify(this.grpcManager.client.applyRoomAntiSpamStrategy.bind(this.grpcManager.client))(request);
2554
2619
  }
2555
2620
  async getCorpMessageInterceptionStrategies() {
2556
- log.verbose('PuppetService', 'getCorpMessageInterceptionStrategies()');
2621
+ this.log.verbose('PuppetService', 'getCorpMessageInterceptionStrategies()');
2557
2622
  const request = new grpcPuppet.GetCorpMessageInterceptionStrategiesRequest();
2558
2623
  const response = await util.promisify(this.grpcManager.client.getCorpMessageInterceptionStrategies.bind(this.grpcManager.client))(request);
2559
2624
  const result = [];
@@ -2586,15 +2651,15 @@ class PuppetService extends PUPPET.Puppet {
2586
2651
  reconnectIndicator;
2587
2652
  async reset() {
2588
2653
  if (!this._grpcManager) {
2589
- log.warn('PuppetService', 'grpc manager not constructed, perform regular reset');
2654
+ this.log.warn('PuppetService', 'grpc manager not constructed, perform regular reset');
2590
2655
  return super.reset();
2591
2656
  }
2592
2657
  if (!this.isLoggedIn) {
2593
- log.warn('PuppetService', 'puppet not logged in, perform regular reset');
2658
+ this.log.warn('PuppetService', 'puppet not logged in, perform regular reset');
2594
2659
  return super.reset();
2595
2660
  }
2596
2661
  if (this.reconnectIndicator.value()) {
2597
- log.warn('PuppetService', 'already trying to reconnect, pass this one');
2662
+ this.log.warn('PuppetService', 'already trying to reconnect, pass this one');
2598
2663
  return;
2599
2664
  }
2600
2665
  this.reconnectIndicator.value(true);
@@ -2644,13 +2709,13 @@ class PuppetService extends PUPPET.Puppet {
2644
2709
  }
2645
2710
  catch (e) {
2646
2711
  if (Date.now() - startTime < timeoutMilliseconds) {
2647
- log.warn('failed to start stream, will try again in 15 seconds');
2712
+ this.log.warn('failed to start stream, will try again in 15 seconds');
2648
2713
  await new Promise(resolve => {
2649
2714
  setTimeout(resolve, 5000);
2650
2715
  });
2651
2716
  }
2652
2717
  else {
2653
- log.warn('failed to start stream and reaches timeout, will perform regular reset');
2718
+ this.log.warn('failed to start stream and reaches timeout, will perform regular reset');
2654
2719
  this.reconnectIndicator.value(false);
2655
2720
  return super.reset();
2656
2721
  }
@@ -2667,7 +2732,7 @@ class PuppetService extends PUPPET.Puppet {
2667
2732
  });
2668
2733
  }
2669
2734
  catch (e) {
2670
- log.warn('PuppetService', 'waiting for event reset login error, will perform regular reset');
2735
+ this.log.warn('PuppetService', 'waiting for event reset login error, will perform regular reset');
2671
2736
  return super.reset();
2672
2737
  }
2673
2738
  try {
@@ -2678,7 +2743,7 @@ class PuppetService extends PUPPET.Puppet {
2678
2743
  });
2679
2744
  }
2680
2745
  catch (e) {
2681
- log.warn('PuppetService', 'waiting for event reset ready error, will do nothing');
2746
+ this.log.warn('PuppetService', 'waiting for event reset ready error, will do nothing');
2682
2747
  }
2683
2748
  }
2684
2749
  async getMiscellaneousStoreData() {
@@ -2692,7 +2757,7 @@ class PuppetService extends PUPPET.Puppet {
2692
2757
  const lastEventTimestamp = await this._payloadStore.miscellaneous?.get('lastEventTimestamp');
2693
2758
  let lastEventSeq = await this._payloadStore.miscellaneous?.get('lastEventSeq');
2694
2759
  if ((Date.now() - Number(lastEventTimestamp || 0)) > this.timeoutMilliseconds) {
2695
- log.warn(`last event was ${(Date.now() - Number(lastEventTimestamp || 0)) / 1000} seconds ago, will not request event cache`);
2760
+ this.log.warn(`last event was ${(Date.now() - Number(lastEventTimestamp || 0)) / 1000} seconds ago, will not request event cache`);
2696
2761
  lastEventSeq = undefined;
2697
2762
  }
2698
2763
  const accountId = await this._payloadStore.miscellaneous?.get('accountId');