@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
@@ -33,10 +33,13 @@ import {
33
33
  } from '../config.js'
34
34
  import { WECHATY_PUPPET_SERVICE_DISABLE_EVENT_CACHE } from '../env-vars.js'
35
35
 
36
+ type LoggerLike = PUPPET.LoggerLike
37
+
36
38
  const { major, minor } = semverPkg
37
39
 
38
40
  interface PayloadStoreOptions {
39
- token: string
41
+ token : string
42
+ logger? : LoggerLike
40
43
  }
41
44
 
42
45
  interface StoreRoomMemberPayload {
@@ -57,8 +60,11 @@ class PayloadStore {
57
60
  protected storeDir: string
58
61
  protected accountId?: string
59
62
 
63
+ private readonly _log: LoggerLike
64
+
60
65
  constructor (private options: PayloadStoreOptions) {
61
- log.verbose('PayloadStore', 'constructor(%s)', JSON.stringify(options))
66
+ this._log = options.logger ?? log
67
+ this._log.verbose('PayloadStore', 'constructor(%s)', JSON.stringify(options))
62
68
 
63
69
  this.storeDir = path.join(
64
70
  os.homedir(),
@@ -67,7 +73,7 @@ class PayloadStore {
67
73
  this.options.token,
68
74
  `v${major(VERSION)}.${minor(VERSION)}`,
69
75
  )
70
- log.silly('PayloadStore', 'constructor() storeDir: "%s"', this.storeDir)
76
+ this._log.silly('PayloadStore', 'constructor() storeDir: "%s"', this.storeDir)
71
77
 
72
78
  if (!fs.existsSync(this.storeDir)) {
73
79
  fs.mkdirSync(this.storeDir, { recursive: true })
@@ -83,7 +89,7 @@ class PayloadStore {
83
89
  * so that we can save the payloads under a specific account folder.
84
90
  */
85
91
  async start (accountId: string): Promise<void> {
86
- log.verbose('PayloadStore', 'start(%s)', accountId)
92
+ this._log.verbose('PayloadStore', 'start(%s)', accountId)
87
93
 
88
94
  if (this.accountId) {
89
95
  throw new Error('PayloadStore should be stop() before start() again.')
@@ -112,7 +118,7 @@ class PayloadStore {
112
118
  */
113
119
  // const lruOptions: LRU.Options<string, MessagePayload> = {
114
120
  // dispose (key, val) {
115
- // log.silly('PayloadStore', `constructor() lruOptions.dispose(${key}, ${JSON.stringify(val)})`)
121
+ // this._log.silly('PayloadStore', `constructor() lruOptions.dispose(${key}, ${JSON.stringify(val)})`)
116
122
  // },
117
123
  // max : 1000, // 1000 messages
118
124
  // maxAge : 60 * 60 * 1000, // 1 hour
@@ -121,7 +127,7 @@ class PayloadStore {
121
127
  }
122
128
 
123
129
  async stop (): Promise<void> {
124
- log.verbose('PayloadStore', 'stop()')
130
+ this._log.verbose('PayloadStore', 'stop()')
125
131
 
126
132
  const contactStore = this.contact
127
133
  const roomMemberStore = this.roomMember
@@ -153,7 +159,7 @@ class PayloadStore {
153
159
  }
154
160
 
155
161
  async destroy (): Promise<void> {
156
- log.verbose('PayloadStore', 'destroy()')
162
+ this._log.verbose('PayloadStore', 'destroy()')
157
163
  if (this.accountId) {
158
164
  throw new Error('Can not destroy() a start()-ed store. Call stop() to stop it first')
159
165
  }