@juzi/wechaty-puppet-service 1.0.16 → 1.0.19

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/payload-store.d.ts +2 -0
  2. package/dist/cjs/src/client/payload-store.d.ts.map +1 -1
  3. package/dist/cjs/src/client/payload-store.js +10 -0
  4. package/dist/cjs/src/client/payload-store.js.map +1 -1
  5. package/dist/cjs/src/client/puppet-service.d.ts +14 -11
  6. package/dist/cjs/src/client/puppet-service.d.ts.map +1 -1
  7. package/dist/cjs/src/client/puppet-service.js +127 -82
  8. package/dist/cjs/src/client/puppet-service.js.map +1 -1
  9. package/dist/cjs/src/config.d.ts +1 -0
  10. package/dist/cjs/src/config.d.ts.map +1 -1
  11. package/dist/cjs/src/config.js +2 -1
  12. package/dist/cjs/src/config.js.map +1 -1
  13. package/dist/cjs/src/package-json.js +5 -5
  14. package/dist/cjs/src/package-json.js.map +1 -1
  15. package/dist/cjs/src/server/event-stream-manager.d.ts.map +1 -1
  16. package/dist/cjs/src/server/event-stream-manager.js +7 -0
  17. package/dist/cjs/src/server/event-stream-manager.js.map +1 -1
  18. package/dist/cjs/src/server/puppet-implementation.d.ts.map +1 -1
  19. package/dist/cjs/src/server/puppet-implementation.js +98 -59
  20. package/dist/cjs/src/server/puppet-implementation.js.map +1 -1
  21. package/dist/esm/src/client/payload-store.d.ts +2 -0
  22. package/dist/esm/src/client/payload-store.d.ts.map +1 -1
  23. package/dist/esm/src/client/payload-store.js +10 -0
  24. package/dist/esm/src/client/payload-store.js.map +1 -1
  25. package/dist/esm/src/client/puppet-service.d.ts +14 -11
  26. package/dist/esm/src/client/puppet-service.d.ts.map +1 -1
  27. package/dist/esm/src/client/puppet-service.js +128 -83
  28. package/dist/esm/src/client/puppet-service.js.map +1 -1
  29. package/dist/esm/src/config.d.ts +1 -0
  30. package/dist/esm/src/config.d.ts.map +1 -1
  31. package/dist/esm/src/config.js +1 -0
  32. package/dist/esm/src/config.js.map +1 -1
  33. package/dist/esm/src/package-json.js +5 -5
  34. package/dist/esm/src/package-json.js.map +1 -1
  35. package/dist/esm/src/server/event-stream-manager.d.ts.map +1 -1
  36. package/dist/esm/src/server/event-stream-manager.js +7 -0
  37. package/dist/esm/src/server/event-stream-manager.js.map +1 -1
  38. package/dist/esm/src/server/puppet-implementation.d.ts.map +1 -1
  39. package/dist/esm/src/server/puppet-implementation.js +98 -59
  40. package/dist/esm/src/server/puppet-implementation.js.map +1 -1
  41. package/package.json +5 -5
  42. package/src/client/payload-store.ts +10 -0
  43. package/src/client/puppet-service.ts +162 -100
  44. package/src/config.ts +1 -0
  45. package/src/package-json.ts +5 -5
  46. package/src/server/event-stream-manager.ts +7 -0
  47. package/src/server/puppet-implementation.ts +106 -59
@@ -57,6 +57,7 @@ import {
57
57
  } from '../file-box-helper/mod.js'
58
58
  import {
59
59
  envVars,
60
+ FOUR_PER_EM_SPACE,
60
61
  log,
61
62
  NO_LOG_EVENTS,
62
63
  VERSION,
@@ -68,6 +69,7 @@ import { packageJson } from '../package-json.js'
68
69
 
69
70
  import { GrpcManager } from './grpc-manager.js'
70
71
  import { PayloadStore } from './payload-store.js'
72
+ import type { TagIdentifier } from '@juzi/wechaty-puppet/filters'
71
73
 
72
74
  export type PuppetServiceOptions = PUPPET.PuppetOptions & {
73
75
  authority? : string
@@ -347,6 +349,9 @@ class PuppetService extends PUPPET.Puppet {
347
349
  case grpcPuppet.EventType.EVENT_TYPE_SCAN:
348
350
  this.emit('scan', JSON.parse(payload) as PUPPET.payloads.EventScan)
349
351
  break
352
+ case grpcPuppet.EventType.EVENT_TYPE_TAG:
353
+ this.emit('tag', JSON.parse(payload) as PUPPET.payloads.EventTag)
354
+ break
350
355
  case grpcPuppet.EventType.EVENT_TYPE_RESET:
351
356
  log.warn('PuppetService', 'onGrpcStreamEvent() got an EventType.EVENT_TYPE_RESET ?')
352
357
  // the `reset` event should be dealed not send out
@@ -1432,13 +1437,20 @@ class PuppetService extends PUPPET.Puppet {
1432
1437
 
1433
1438
  override async roomDel (
1434
1439
  roomId : string,
1435
- contactId : string,
1440
+ contactIds : string | string[],
1436
1441
  ): Promise<void> {
1437
- log.verbose('PuppetService', 'roomDel(%s, %s)', roomId, contactId)
1442
+ log.verbose('PuppetService', 'roomDel(%s, %s)', roomId, contactIds)
1438
1443
 
1439
1444
  const request = new grpcPuppet.RoomDelRequest()
1440
1445
  request.setId(roomId)
1441
- request.setContactId(contactId)
1446
+ if (Array.isArray(contactIds)) {
1447
+ request.setContactIdsList(contactIds)
1448
+ if (contactIds.length === 1) {
1449
+ request.setContactId(contactIds[0] as string)
1450
+ }
1451
+ } else {
1452
+ request.setContactId(contactIds)
1453
+ }
1442
1454
 
1443
1455
  await util.promisify(
1444
1456
  this.grpcManager.client.roomDel
@@ -1922,19 +1934,20 @@ class PuppetService extends PUPPET.Puppet {
1922
1934
  */
1923
1935
 
1924
1936
  override async tagContactTagAdd (
1925
- tagGroupId: string | undefined,
1926
- tagId: string,
1927
- contactId: string,
1937
+ tags: TagIdentifier[],
1938
+ contactIds: string[],
1928
1939
  ): Promise<void> {
1929
- log.verbose('PuppetService', 'tagContactTagAdd(%s, %s, %s)', tagGroupId, tagId, contactId)
1940
+ log.verbose('PuppetService', 'tagContactTagAdd(%s, %s)', JSON.stringify(tags), contactIds)
1930
1941
 
1931
1942
  const request = new grpcPuppet.TagContactTagAddRequest()
1932
1943
 
1933
- if (typeof tagGroupId !== 'undefined') {
1934
- request.setTagGroupId(tagGroupId)
1935
- }
1936
- request.setTagId(tagId)
1937
- request.setContactId(contactId)
1944
+ request.setTagsList(tags.map(t => {
1945
+ const tag = new grpcPuppet.TagIdentifier()
1946
+ t.groupId && tag.setGroupId(t.groupId)
1947
+ tag.setId(t.id)
1948
+ return tag
1949
+ }))
1950
+ request.setContactIdsList(contactIds)
1938
1951
 
1939
1952
  await util.promisify(
1940
1953
  this.grpcManager.client.tagContactTagAdd
@@ -1943,19 +1956,20 @@ class PuppetService extends PUPPET.Puppet {
1943
1956
  }
1944
1957
 
1945
1958
  override async tagContactTagRemove (
1946
- tagGroupId: string | undefined,
1947
- tagId: string,
1948
- contactId: string,
1959
+ tags: TagIdentifier[],
1960
+ contactIds: string[],
1949
1961
  ): Promise<void> {
1950
- log.verbose('PuppetService', 'tagContactTagRemove(%s, %s, %s)', tagGroupId, tagId, contactId)
1962
+ log.verbose('PuppetService', 'tagContactTagRemove(%s, %s)', JSON.stringify(tags), contactIds)
1951
1963
 
1952
1964
  const request = new grpcPuppet.TagContactTagRemoveRequest()
1953
1965
 
1954
- if (typeof tagGroupId !== 'undefined') {
1955
- request.setTagGroupId(tagGroupId)
1956
- }
1957
- request.setTagId(tagId)
1958
- request.setContactId(contactId)
1966
+ request.setTagsList(tags.map(t => {
1967
+ const tag = new grpcPuppet.TagIdentifier()
1968
+ t.groupId && tag.setGroupId(t.groupId)
1969
+ tag.setId(t.id)
1970
+ return tag
1971
+ }))
1972
+ request.setContactIdsList(contactIds)
1959
1973
 
1960
1974
  await util.promisify(
1961
1975
  this.grpcManager.client.tagContactTagRemove
@@ -1965,7 +1979,7 @@ class PuppetService extends PUPPET.Puppet {
1965
1979
 
1966
1980
  override async tagGroupAdd (
1967
1981
  tagGroupName: string,
1968
- ): Promise<PUPPET.payloads.TagGroup | void> {
1982
+ ): Promise<string | void> {
1969
1983
  log.verbose('PuppetService', 'tagGroupAdd(%s)', tagGroupName)
1970
1984
 
1971
1985
  const request = new grpcPuppet.TagGroupAddRequest()
@@ -1977,18 +1991,9 @@ class PuppetService extends PUPPET.Puppet {
1977
1991
  .bind(this.grpcManager.client),
1978
1992
  )(request)
1979
1993
 
1980
- const grpcPayload = result.getPayload()
1981
- const id = grpcPayload?.getId()
1982
- const name = grpcPayload?.getName()
1983
-
1984
- if (id && name) {
1985
- const payload: PUPPET.payloads.TagGroup = {
1986
- id,
1987
- name,
1988
- }
1989
- return payload
1990
- }
1994
+ const id = result.getTagGroupId()
1991
1995
 
1996
+ return id
1992
1997
  }
1993
1998
 
1994
1999
  override async tagGroupDelete (
@@ -2008,10 +2013,10 @@ class PuppetService extends PUPPET.Puppet {
2008
2013
  }
2009
2014
 
2010
2015
  override async tagTagAdd (
2011
- tagGroupId: string | undefined,
2012
2016
  tagName: string,
2013
- ): Promise<PUPPET.payloads.Tag | void> {
2014
- log.verbose('PuppetService', 'tagTagAdd(%s, %s)', tagGroupId, tagName)
2017
+ tagGroupId?: string,
2018
+ ): Promise<PUPPET.filters.TagIdentifier | void> {
2019
+ log.verbose('PuppetService', 'tagTagAdd(%s, %s)', tagName, tagGroupId)
2015
2020
 
2016
2021
  const request = new grpcPuppet.TagTagAddRequest()
2017
2022
 
@@ -2025,36 +2030,31 @@ class PuppetService extends PUPPET.Puppet {
2025
2030
  .bind(this.grpcManager.client),
2026
2031
  )(request)
2027
2032
 
2028
- const grpcPayload = result.getPayload()
2029
- const id = grpcPayload?.getId()
2030
- const name = grpcPayload?.getName()
2031
- const groupId = grpcPayload?.getGroupId()
2032
- const type = grpcPayload?.getType()
2033
+ const tag = result.getTag()
2034
+ const id = tag?.getId()
2035
+ const groupId = tag?.getGroupId()
2033
2036
 
2034
- if (id && name && type) {
2035
- const payload: PUPPET.payloads.Tag = {
2037
+ if (id) {
2038
+ return {
2036
2039
  id,
2037
- name,
2038
2040
  groupId,
2039
- type,
2040
2041
  }
2041
- return payload
2042
2042
  }
2043
-
2044
2043
  }
2045
2044
 
2046
2045
  override async tagTagDelete (
2047
- tagGroupId: string | undefined,
2048
- tagId: string,
2046
+ tag: TagIdentifier,
2049
2047
  ): Promise<void> {
2050
- log.verbose('PuppetService', 'tagTagDelete(%s, %s)', tagGroupId, tagId)
2048
+ log.verbose('PuppetService', 'tagTagDelete(%s)', JSON.stringify(tag))
2051
2049
 
2052
2050
  const request = new grpcPuppet.TagTagDeleteRequest()
2051
+ const tagProb = new grpcPuppet.TagIdentifier()
2053
2052
 
2054
- if (typeof tagGroupId !== 'undefined') {
2055
- request.setTagGroupId(tagGroupId)
2056
- }
2057
- request.setTagId(tagId)
2053
+ tag.groupId && tagProb.setGroupId(tag.groupId)
2054
+ tagProb.setId(tag.id)
2055
+ request.setTag(tagProb)
2056
+
2057
+ request.setTag(tagProb)
2058
2058
 
2059
2059
  await util.promisify(
2060
2060
  this.grpcManager.client.tagTagDelete
@@ -2063,7 +2063,7 @@ class PuppetService extends PUPPET.Puppet {
2063
2063
 
2064
2064
  }
2065
2065
 
2066
- override async tagGroupList (): Promise<PUPPET.payloads.TagGroup[]> {
2066
+ override async tagGroupList (): Promise<string[]> {
2067
2067
  log.verbose('PuppetService', 'tagGroupList()')
2068
2068
 
2069
2069
  const request = new grpcPuppet.TagGroupListRequest()
@@ -2073,19 +2073,13 @@ class PuppetService extends PUPPET.Puppet {
2073
2073
  .bind(this.grpcManager.client),
2074
2074
  )(request)
2075
2075
 
2076
- const grpcPayloads = result.getPayloadsList()
2077
- const payloads: PUPPET.payloads.TagGroup[] = grpcPayloads.map(payload => {
2078
- return {
2079
- id: payload.getId(),
2080
- name: payload.getName(),
2081
- } as PUPPET.payloads.TagGroup
2082
- })
2083
- return payloads
2076
+ const groupIds = result.getTagGroupIdsList()
2077
+ return groupIds
2084
2078
  }
2085
2079
 
2086
2080
  override async tagGroupTagList (
2087
- tagGroupId: string | undefined,
2088
- ): Promise<PUPPET.payloads.Tag[]> {
2081
+ tagGroupId?: string,
2082
+ ): Promise<PUPPET.filters.TagIdentifier[]> {
2089
2083
  log.verbose('PuppetService', 'tagGroupTagList(%s)', tagGroupId)
2090
2084
 
2091
2085
  const request = new grpcPuppet.TagGroupTagListRequest()
@@ -2098,20 +2092,18 @@ class PuppetService extends PUPPET.Puppet {
2098
2092
  .bind(this.grpcManager.client),
2099
2093
  )(request)
2100
2094
 
2101
- const grpcPayloads = result.getPayloadsList()
2102
- const payloads: PUPPET.payloads.Tag[] = grpcPayloads.map(payload => {
2095
+ const tags = result.getTagsList()
2096
+ const tagIdentifiers = tags.map(tag => {
2103
2097
  return {
2104
- id: payload.getId(),
2105
- name: payload.getName(),
2106
- groupId: payload.getGroupId(),
2107
- type: payload.getType(),
2108
- } as PUPPET.payloads.Tag
2098
+ id: tag.getId(),
2099
+ groupId: tag.getGroupId(),
2100
+ }
2109
2101
  })
2110
- return payloads
2102
+ return tagIdentifiers
2111
2103
  }
2112
2104
 
2113
2105
  override async tagTagList (
2114
- ): Promise<PUPPET.payloads.Tag[]> {
2106
+ ): Promise<PUPPET.filters.TagIdentifier[]> {
2115
2107
  log.verbose('PuppetService', 'tagTagList()')
2116
2108
 
2117
2109
  const request = new grpcPuppet.TagTagListRequest()
@@ -2121,21 +2113,19 @@ class PuppetService extends PUPPET.Puppet {
2121
2113
  .bind(this.grpcManager.client),
2122
2114
  )(request)
2123
2115
 
2124
- const grpcPayloads = result.getPayloadsList()
2125
- const payloads: PUPPET.payloads.Tag[] = grpcPayloads.map(payload => {
2116
+ const tags = result.getTagsList()
2117
+ const tagIdentifiers = tags.map(tag => {
2126
2118
  return {
2127
- id: payload.getId(),
2128
- name: payload.getName(),
2129
- groupId: payload.getGroupId(),
2130
- type: payload.getType(),
2131
- } as PUPPET.payloads.Tag
2119
+ id: tag.getId(),
2120
+ groupId: tag.getGroupId(),
2121
+ }
2132
2122
  })
2133
- return payloads
2123
+ return tagIdentifiers
2134
2124
  }
2135
2125
 
2136
2126
  override async tagContactTagList (
2137
2127
  contactId: string,
2138
- ): Promise<PUPPET.payloads.Tag[]> {
2128
+ ): Promise<PUPPET.filters.TagIdentifier[]> {
2139
2129
  log.verbose('PuppetService', 'tagContactTagList(%s)', contactId)
2140
2130
 
2141
2131
  const request = new grpcPuppet.TagContactTagListRequest()
@@ -2146,37 +2136,109 @@ class PuppetService extends PUPPET.Puppet {
2146
2136
  .bind(this.grpcManager.client),
2147
2137
  )(request)
2148
2138
 
2149
- const grpcPayloads = result.getPayloadsList()
2150
- const payloads: PUPPET.payloads.Tag[] = grpcPayloads.map(payload => {
2139
+ const grpcPayloads = result.getTagsList()
2140
+ const tags: PUPPET.filters.TagIdentifier[] = grpcPayloads.map(tag => {
2151
2141
  return {
2152
- id: payload.getId(),
2153
- name: payload.getName(),
2154
- groupId: payload.getGroupId(),
2155
- type: payload.getType(),
2156
- } as PUPPET.payloads.Tag
2142
+ id: tag.getId(),
2143
+ groupId: tag.getGroupId(),
2144
+ }
2157
2145
  })
2158
- return payloads
2146
+ return tags
2159
2147
  }
2160
2148
 
2161
2149
  override async tagTagContactList (
2162
- tagGroupId: string | undefined,
2163
- tagId: string,
2150
+ tag: TagIdentifier,
2164
2151
  ): Promise<string[]> {
2165
- log.verbose('PuppetService', 'tagTagContactList(%s, %s)', tagGroupId, tagId)
2152
+ log.verbose('PuppetService', 'tagTagContactList(%s)', JSON.stringify(tag))
2166
2153
 
2167
2154
  const request = new grpcPuppet.TagTagContactListRequest()
2168
- if (typeof tagGroupId !== 'undefined') {
2169
- request.setTagGroupId(tagGroupId)
2170
- }
2171
- request.setTagId(tagId)
2155
+ const tagProb = new grpcPuppet.TagIdentifier()
2156
+
2157
+ tag.groupId && tagProb.setGroupId(tag.groupId)
2158
+ tagProb.setId(tag.id)
2159
+ request.setTag(tagProb)
2172
2160
 
2173
2161
  const result = await util.promisify(
2174
2162
  this.grpcManager.client.tagTagContactList
2175
2163
  .bind(this.grpcManager.client),
2176
2164
  )(request)
2177
2165
 
2178
- const payloads = result.getPayloadsList()
2179
- return payloads
2166
+ const contactIds = result.getContactIdsList()
2167
+ return contactIds
2168
+ }
2169
+
2170
+ override async tagGroupPayloadPuppet (id: string): Promise<PUPPET.payloads.TagGroup> {
2171
+ log.verbose('PuppetService', 'tagGroupPayload(%s)', id)
2172
+
2173
+ const cachedPayload = await this._payloadStore.tagGroup?.get(id)
2174
+ if (cachedPayload) {
2175
+ log.silly('PuppetService', 'tagGroupPayload(%s) cache HIT', id)
2176
+ return cachedPayload
2177
+ }
2178
+
2179
+ const request = new grpcPuppet.TagGroupPayloadRequest()
2180
+ request.setGroupId(id)
2181
+
2182
+ const response = await util.promisify(
2183
+ this.grpcManager.client.tagGroupPayload
2184
+ .bind(this.grpcManager.client),
2185
+ )(request)
2186
+ const grpcPayload = response.getPayload()
2187
+
2188
+ if (!grpcPayload) {
2189
+ throw new Error(`tagGroup ${id} got no payload!`)
2190
+ }
2191
+
2192
+ const payload: PUPPET.payloads.TagGroup = {
2193
+ id: grpcPayload.getId(),
2194
+ name: grpcPayload.getName(),
2195
+ }
2196
+
2197
+ await this._payloadStore.tagGroup?.set(id, payload)
2198
+ log.silly('PuppetService', 'tagGroupPayloadPuppet(%s) cache SET', id)
2199
+
2200
+ return payload
2201
+ }
2202
+
2203
+ override async tagPayloadPuppet (tag: PUPPET.filters.TagIdentifier): Promise<PUPPET.payloads.Tag> {
2204
+ log.verbose('PuppetService', 'tagPayloadPuppet(%s)', JSON.stringify(tag))
2205
+
2206
+ const key = tag.groupId || '' + FOUR_PER_EM_SPACE + tag.id
2207
+ const cachedPayload = await this._payloadStore.tag?.get(key)
2208
+ if (cachedPayload) {
2209
+ log.silly('PuppetService', 'tagPayloadPuppet(%s) cache HIT', tag)
2210
+ return cachedPayload
2211
+ }
2212
+
2213
+ const tagIdentifier = new grpcPuppet.TagIdentifier()
2214
+ tagIdentifier.setId(tag.id)
2215
+ if (tag.groupId) {
2216
+ tagIdentifier.setGroupId(tag.groupId)
2217
+ }
2218
+ const request = new grpcPuppet.TagPayloadRequest()
2219
+ request.setTag(tagIdentifier)
2220
+
2221
+ const response = await util.promisify(
2222
+ this.grpcManager.client.tagPayload
2223
+ .bind(this.grpcManager.client),
2224
+ )(request)
2225
+ const grpcPayload = response.getPayload()
2226
+
2227
+ if (!grpcPayload) {
2228
+ throw new Error(`tag ${JSON.stringify(tag)} got no payload!`)
2229
+ }
2230
+
2231
+ const payload: PUPPET.payloads.Tag = {
2232
+ id: grpcPayload.getId(),
2233
+ name: grpcPayload.getName(),
2234
+ groupId: grpcPayload.getGroupId(),
2235
+ type: grpcPayload.getType(),
2236
+ }
2237
+
2238
+ await this._payloadStore.tag?.set(key, payload)
2239
+ log.silly('PuppetService', 'tagPayloadPuppet(%s) cache SET', JSON.stringify(tag))
2240
+
2241
+ return payload
2180
2242
  }
2181
2243
 
2182
2244
  /**
package/src/config.ts CHANGED
@@ -12,6 +12,7 @@ import {
12
12
  } from '@juzi/wechaty-grpc'
13
13
 
14
14
  const VERSION = packageJson.version || '0.0.0'
15
+ export const FOUR_PER_EM_SPACE = String.fromCharCode(0x2005)
15
16
 
16
17
  const envVars = {
17
18
  ...rootEnvVars,
@@ -4,7 +4,7 @@
4
4
  import type { PackageJson } from 'type-fest'
5
5
  export const packageJson: PackageJson = {
6
6
  "name": "@juzi/wechaty-puppet-service",
7
- "version": "1.0.16",
7
+ "version": "1.0.19",
8
8
  "description": "Puppet Service for Wechaty",
9
9
  "type": "module",
10
10
  "exports": {
@@ -55,6 +55,7 @@ export const packageJson: PackageJson = {
55
55
  "@chatie/eslint-config": "^1.0.4",
56
56
  "@chatie/semver": "^0.4.7",
57
57
  "@chatie/tsconfig": "^4.6.3",
58
+ "@juzi/wechaty-puppet-mock": "^1.0.1",
58
59
  "@types/google-protobuf": "^3.15.5",
59
60
  "@types/lru-cache": "^7.5.0",
60
61
  "@types/semver": "^7.3.9",
@@ -65,14 +66,14 @@ export const packageJson: PackageJson = {
65
66
  "temp": "^0.9.4",
66
67
  "typed-emitter": "^1.5.0-from-event",
67
68
  "utility-types": "^3.10.0",
68
- "@juzi/wechaty-puppet-mock": "^1.0.1",
69
69
  "why-is-node-running": "^2.2.1"
70
70
  },
71
71
  "peerDependencies": {
72
- "@juzi/wechaty-puppet": "^1.0.12"
72
+ "@juzi/wechaty-puppet": "^1.0.22"
73
73
  },
74
74
  "dependencies": {
75
- "@juzi/wechaty-grpc": "^1.0.11",
75
+ "@juzi/wechaty-grpc": "^1.0.13",
76
+ "@juzi/wechaty-redux": "^1.0.1",
76
77
  "clone-class": "^1.1.1",
77
78
  "ducks": "^1.0.2",
78
79
  "file-box": "^1.5.5",
@@ -83,7 +84,6 @@ export const packageJson: PackageJson = {
83
84
  "semver": "^7.3.5",
84
85
  "stronger-typed-streams": "^0.2.0",
85
86
  "uuid": "^8.3.2",
86
- "@juzi/wechaty-redux": "^1.0.1",
87
87
  "wechaty-token": "^1.0.6"
88
88
  },
89
89
  "publishConfig": {
@@ -273,6 +273,13 @@ class EventStreamManager {
273
273
  this.offCallbackList.push(off)
274
274
  break
275
275
  }
276
+ case 'tag': {
277
+ const listener = (payload: PUPPET.payloads.EventTag) => this.grpcEmit(grpcPuppet.EventType.EVENT_TYPE_TAG, payload)
278
+ this.puppet.on('tag', listener)
279
+ const off = () => this.puppet.off('tag', listener)
280
+ this.offCallbackList.push(off)
281
+ break
282
+ }
276
283
  case 'reset':
277
284
  // the `reset` event should be dealed internally, should not send out
278
285
  break