@juzi/wechaty-puppet-service 1.0.17 → 1.0.20
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.
- package/dist/cjs/src/client/payload-store.d.ts +2 -0
- package/dist/cjs/src/client/payload-store.d.ts.map +1 -1
- package/dist/cjs/src/client/payload-store.js +10 -0
- package/dist/cjs/src/client/payload-store.js.map +1 -1
- package/dist/cjs/src/client/puppet-service.d.ts +14 -11
- package/dist/cjs/src/client/puppet-service.d.ts.map +1 -1
- package/dist/cjs/src/client/puppet-service.js +130 -82
- package/dist/cjs/src/client/puppet-service.js.map +1 -1
- package/dist/cjs/src/config.d.ts +1 -0
- package/dist/cjs/src/config.d.ts.map +1 -1
- package/dist/cjs/src/config.js +2 -1
- package/dist/cjs/src/config.js.map +1 -1
- package/dist/cjs/src/package-json.js +5 -5
- package/dist/cjs/src/package-json.js.map +1 -1
- package/dist/cjs/src/server/event-stream-manager.d.ts.map +1 -1
- package/dist/cjs/src/server/event-stream-manager.js +7 -0
- package/dist/cjs/src/server/event-stream-manager.js.map +1 -1
- package/dist/cjs/src/server/puppet-implementation.d.ts.map +1 -1
- package/dist/cjs/src/server/puppet-implementation.js +98 -58
- package/dist/cjs/src/server/puppet-implementation.js.map +1 -1
- package/dist/esm/src/client/payload-store.d.ts +2 -0
- package/dist/esm/src/client/payload-store.d.ts.map +1 -1
- package/dist/esm/src/client/payload-store.js +10 -0
- package/dist/esm/src/client/payload-store.js.map +1 -1
- package/dist/esm/src/client/puppet-service.d.ts +14 -11
- package/dist/esm/src/client/puppet-service.d.ts.map +1 -1
- package/dist/esm/src/client/puppet-service.js +131 -83
- package/dist/esm/src/client/puppet-service.js.map +1 -1
- package/dist/esm/src/config.d.ts +1 -0
- package/dist/esm/src/config.d.ts.map +1 -1
- package/dist/esm/src/config.js +1 -0
- package/dist/esm/src/config.js.map +1 -1
- package/dist/esm/src/package-json.js +5 -5
- package/dist/esm/src/package-json.js.map +1 -1
- package/dist/esm/src/server/event-stream-manager.d.ts.map +1 -1
- package/dist/esm/src/server/event-stream-manager.js +7 -0
- package/dist/esm/src/server/event-stream-manager.js.map +1 -1
- package/dist/esm/src/server/puppet-implementation.d.ts.map +1 -1
- package/dist/esm/src/server/puppet-implementation.js +98 -58
- package/dist/esm/src/server/puppet-implementation.js.map +1 -1
- package/package.json +5 -5
- package/src/client/payload-store.ts +10 -0
- package/src/client/puppet-service.ts +165 -100
- package/src/config.ts +1 -0
- package/src/package-json.ts +5 -5
- package/src/server/event-stream-manager.ts +7 -0
- package/src/server/puppet-implementation.ts +106 -58
|
@@ -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
|
|
@@ -439,6 +444,8 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
439
444
|
[PUPPET.types.Dirty.Post]: async (_: string) => {},
|
|
440
445
|
[PUPPET.types.Dirty.Room]: async (id: string) => this._payloadStore.room?.delete(id),
|
|
441
446
|
[PUPPET.types.Dirty.RoomMember]: async (id: string) => this._payloadStore.roomMember?.delete(id),
|
|
447
|
+
[PUPPET.types.Dirty.Tag]: async (key: string) => this._payloadStore.tag?.delete(key),
|
|
448
|
+
[PUPPET.types.Dirty.TagGroup]: async (id: string) => this._payloadStore.tagGroup?.delete(id),
|
|
442
449
|
[PUPPET.types.Dirty.Unspecified]: async (id: string) => { throw new Error('Unspecified type with id: ' + id) },
|
|
443
450
|
}
|
|
444
451
|
|
|
@@ -1432,13 +1439,20 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
1432
1439
|
|
|
1433
1440
|
override async roomDel (
|
|
1434
1441
|
roomId : string,
|
|
1435
|
-
|
|
1442
|
+
contactIds : string | string[],
|
|
1436
1443
|
): Promise<void> {
|
|
1437
|
-
log.verbose('PuppetService', 'roomDel(%s, %s)', roomId,
|
|
1444
|
+
log.verbose('PuppetService', 'roomDel(%s, %s)', roomId, contactIds)
|
|
1438
1445
|
|
|
1439
1446
|
const request = new grpcPuppet.RoomDelRequest()
|
|
1440
1447
|
request.setId(roomId)
|
|
1441
|
-
|
|
1448
|
+
if (Array.isArray(contactIds)) {
|
|
1449
|
+
request.setContactIdsList(contactIds)
|
|
1450
|
+
if (contactIds.length === 1) {
|
|
1451
|
+
request.setContactId(contactIds[0] as string)
|
|
1452
|
+
}
|
|
1453
|
+
} else {
|
|
1454
|
+
request.setContactId(contactIds)
|
|
1455
|
+
}
|
|
1442
1456
|
|
|
1443
1457
|
await util.promisify(
|
|
1444
1458
|
this.grpcManager.client.roomDel
|
|
@@ -1922,19 +1936,20 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
1922
1936
|
*/
|
|
1923
1937
|
|
|
1924
1938
|
override async tagContactTagAdd (
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
contactId: string,
|
|
1939
|
+
tags: TagIdentifier[],
|
|
1940
|
+
contactIds: string[],
|
|
1928
1941
|
): Promise<void> {
|
|
1929
|
-
log.verbose('PuppetService', 'tagContactTagAdd(%s, %s
|
|
1942
|
+
log.verbose('PuppetService', 'tagContactTagAdd(%s, %s)', JSON.stringify(tags), contactIds)
|
|
1930
1943
|
|
|
1931
1944
|
const request = new grpcPuppet.TagContactTagAddRequest()
|
|
1932
1945
|
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1946
|
+
request.setTagsList(tags.map(t => {
|
|
1947
|
+
const tag = new grpcPuppet.TagIdentifier()
|
|
1948
|
+
t.groupId && tag.setGroupId(t.groupId)
|
|
1949
|
+
tag.setId(t.id)
|
|
1950
|
+
return tag
|
|
1951
|
+
}))
|
|
1952
|
+
request.setContactIdsList(contactIds)
|
|
1938
1953
|
|
|
1939
1954
|
await util.promisify(
|
|
1940
1955
|
this.grpcManager.client.tagContactTagAdd
|
|
@@ -1943,19 +1958,20 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
1943
1958
|
}
|
|
1944
1959
|
|
|
1945
1960
|
override async tagContactTagRemove (
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
contactId: string,
|
|
1961
|
+
tags: TagIdentifier[],
|
|
1962
|
+
contactIds: string[],
|
|
1949
1963
|
): Promise<void> {
|
|
1950
|
-
log.verbose('PuppetService', 'tagContactTagRemove(%s, %s
|
|
1964
|
+
log.verbose('PuppetService', 'tagContactTagRemove(%s, %s)', JSON.stringify(tags), contactIds)
|
|
1951
1965
|
|
|
1952
1966
|
const request = new grpcPuppet.TagContactTagRemoveRequest()
|
|
1953
1967
|
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1968
|
+
request.setTagsList(tags.map(t => {
|
|
1969
|
+
const tag = new grpcPuppet.TagIdentifier()
|
|
1970
|
+
t.groupId && tag.setGroupId(t.groupId)
|
|
1971
|
+
tag.setId(t.id)
|
|
1972
|
+
return tag
|
|
1973
|
+
}))
|
|
1974
|
+
request.setContactIdsList(contactIds)
|
|
1959
1975
|
|
|
1960
1976
|
await util.promisify(
|
|
1961
1977
|
this.grpcManager.client.tagContactTagRemove
|
|
@@ -1965,7 +1981,7 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
1965
1981
|
|
|
1966
1982
|
override async tagGroupAdd (
|
|
1967
1983
|
tagGroupName: string,
|
|
1968
|
-
): Promise<
|
|
1984
|
+
): Promise<string | void> {
|
|
1969
1985
|
log.verbose('PuppetService', 'tagGroupAdd(%s)', tagGroupName)
|
|
1970
1986
|
|
|
1971
1987
|
const request = new grpcPuppet.TagGroupAddRequest()
|
|
@@ -1977,18 +1993,9 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
1977
1993
|
.bind(this.grpcManager.client),
|
|
1978
1994
|
)(request)
|
|
1979
1995
|
|
|
1980
|
-
const
|
|
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
|
-
}
|
|
1996
|
+
const id = result.getTagGroupId()
|
|
1991
1997
|
|
|
1998
|
+
return id
|
|
1992
1999
|
}
|
|
1993
2000
|
|
|
1994
2001
|
override async tagGroupDelete (
|
|
@@ -2008,10 +2015,10 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
2008
2015
|
}
|
|
2009
2016
|
|
|
2010
2017
|
override async tagTagAdd (
|
|
2011
|
-
tagGroupId: string | undefined,
|
|
2012
2018
|
tagName: string,
|
|
2013
|
-
|
|
2014
|
-
|
|
2019
|
+
tagGroupId?: string,
|
|
2020
|
+
): Promise<PUPPET.filters.TagIdentifier | void> {
|
|
2021
|
+
log.verbose('PuppetService', 'tagTagAdd(%s, %s)', tagName, tagGroupId)
|
|
2015
2022
|
|
|
2016
2023
|
const request = new grpcPuppet.TagTagAddRequest()
|
|
2017
2024
|
|
|
@@ -2025,36 +2032,31 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
2025
2032
|
.bind(this.grpcManager.client),
|
|
2026
2033
|
)(request)
|
|
2027
2034
|
|
|
2028
|
-
const
|
|
2029
|
-
const id =
|
|
2030
|
-
const
|
|
2031
|
-
const groupId = grpcPayload?.getGroupId()
|
|
2032
|
-
const type = grpcPayload?.getType()
|
|
2035
|
+
const tag = result.getTag()
|
|
2036
|
+
const id = tag?.getId()
|
|
2037
|
+
const groupId = tag?.getGroupId()
|
|
2033
2038
|
|
|
2034
|
-
if (id
|
|
2035
|
-
|
|
2039
|
+
if (id) {
|
|
2040
|
+
return {
|
|
2036
2041
|
id,
|
|
2037
|
-
name,
|
|
2038
2042
|
groupId,
|
|
2039
|
-
type,
|
|
2040
2043
|
}
|
|
2041
|
-
return payload
|
|
2042
2044
|
}
|
|
2043
|
-
|
|
2044
2045
|
}
|
|
2045
2046
|
|
|
2046
2047
|
override async tagTagDelete (
|
|
2047
|
-
|
|
2048
|
-
tagId: string,
|
|
2048
|
+
tag: TagIdentifier,
|
|
2049
2049
|
): Promise<void> {
|
|
2050
|
-
log.verbose('PuppetService', 'tagTagDelete(%s
|
|
2050
|
+
log.verbose('PuppetService', 'tagTagDelete(%s)', JSON.stringify(tag))
|
|
2051
2051
|
|
|
2052
2052
|
const request = new grpcPuppet.TagTagDeleteRequest()
|
|
2053
|
+
const tagProb = new grpcPuppet.TagIdentifier()
|
|
2053
2054
|
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2055
|
+
tag.groupId && tagProb.setGroupId(tag.groupId)
|
|
2056
|
+
tagProb.setId(tag.id)
|
|
2057
|
+
request.setTag(tagProb)
|
|
2058
|
+
|
|
2059
|
+
request.setTag(tagProb)
|
|
2058
2060
|
|
|
2059
2061
|
await util.promisify(
|
|
2060
2062
|
this.grpcManager.client.tagTagDelete
|
|
@@ -2063,7 +2065,7 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
2063
2065
|
|
|
2064
2066
|
}
|
|
2065
2067
|
|
|
2066
|
-
override async tagGroupList (): Promise<
|
|
2068
|
+
override async tagGroupList (): Promise<string[]> {
|
|
2067
2069
|
log.verbose('PuppetService', 'tagGroupList()')
|
|
2068
2070
|
|
|
2069
2071
|
const request = new grpcPuppet.TagGroupListRequest()
|
|
@@ -2073,19 +2075,13 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
2073
2075
|
.bind(this.grpcManager.client),
|
|
2074
2076
|
)(request)
|
|
2075
2077
|
|
|
2076
|
-
const
|
|
2077
|
-
|
|
2078
|
-
return {
|
|
2079
|
-
id: payload.getId(),
|
|
2080
|
-
name: payload.getName(),
|
|
2081
|
-
} as PUPPET.payloads.TagGroup
|
|
2082
|
-
})
|
|
2083
|
-
return payloads
|
|
2078
|
+
const groupIds = result.getTagGroupIdsList()
|
|
2079
|
+
return groupIds
|
|
2084
2080
|
}
|
|
2085
2081
|
|
|
2086
2082
|
override async tagGroupTagList (
|
|
2087
|
-
tagGroupId
|
|
2088
|
-
): Promise<PUPPET.
|
|
2083
|
+
tagGroupId?: string,
|
|
2084
|
+
): Promise<PUPPET.filters.TagIdentifier[]> {
|
|
2089
2085
|
log.verbose('PuppetService', 'tagGroupTagList(%s)', tagGroupId)
|
|
2090
2086
|
|
|
2091
2087
|
const request = new grpcPuppet.TagGroupTagListRequest()
|
|
@@ -2098,20 +2094,18 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
2098
2094
|
.bind(this.grpcManager.client),
|
|
2099
2095
|
)(request)
|
|
2100
2096
|
|
|
2101
|
-
const
|
|
2102
|
-
const
|
|
2097
|
+
const tags = result.getTagsList()
|
|
2098
|
+
const tagIdentifiers = tags.map(tag => {
|
|
2103
2099
|
return {
|
|
2104
|
-
id:
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
type: payload.getType(),
|
|
2108
|
-
} as PUPPET.payloads.Tag
|
|
2100
|
+
id: tag.getId(),
|
|
2101
|
+
groupId: tag.getGroupId(),
|
|
2102
|
+
}
|
|
2109
2103
|
})
|
|
2110
|
-
return
|
|
2104
|
+
return tagIdentifiers
|
|
2111
2105
|
}
|
|
2112
2106
|
|
|
2113
2107
|
override async tagTagList (
|
|
2114
|
-
): Promise<PUPPET.
|
|
2108
|
+
): Promise<PUPPET.filters.TagIdentifier[]> {
|
|
2115
2109
|
log.verbose('PuppetService', 'tagTagList()')
|
|
2116
2110
|
|
|
2117
2111
|
const request = new grpcPuppet.TagTagListRequest()
|
|
@@ -2121,21 +2115,19 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
2121
2115
|
.bind(this.grpcManager.client),
|
|
2122
2116
|
)(request)
|
|
2123
2117
|
|
|
2124
|
-
const
|
|
2125
|
-
const
|
|
2118
|
+
const tags = result.getTagsList()
|
|
2119
|
+
const tagIdentifiers = tags.map(tag => {
|
|
2126
2120
|
return {
|
|
2127
|
-
id:
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
type: payload.getType(),
|
|
2131
|
-
} as PUPPET.payloads.Tag
|
|
2121
|
+
id: tag.getId(),
|
|
2122
|
+
groupId: tag.getGroupId(),
|
|
2123
|
+
}
|
|
2132
2124
|
})
|
|
2133
|
-
return
|
|
2125
|
+
return tagIdentifiers
|
|
2134
2126
|
}
|
|
2135
2127
|
|
|
2136
2128
|
override async tagContactTagList (
|
|
2137
2129
|
contactId: string,
|
|
2138
|
-
): Promise<PUPPET.
|
|
2130
|
+
): Promise<PUPPET.filters.TagIdentifier[]> {
|
|
2139
2131
|
log.verbose('PuppetService', 'tagContactTagList(%s)', contactId)
|
|
2140
2132
|
|
|
2141
2133
|
const request = new grpcPuppet.TagContactTagListRequest()
|
|
@@ -2146,37 +2138,110 @@ class PuppetService extends PUPPET.Puppet {
|
|
|
2146
2138
|
.bind(this.grpcManager.client),
|
|
2147
2139
|
)(request)
|
|
2148
2140
|
|
|
2149
|
-
const grpcPayloads = result.
|
|
2150
|
-
const
|
|
2141
|
+
const grpcPayloads = result.getTagsList()
|
|
2142
|
+
const tags: PUPPET.filters.TagIdentifier[] = grpcPayloads.map(tag => {
|
|
2151
2143
|
return {
|
|
2152
|
-
id:
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
type: payload.getType(),
|
|
2156
|
-
} as PUPPET.payloads.Tag
|
|
2144
|
+
id: tag.getId(),
|
|
2145
|
+
groupId: tag.getGroupId(),
|
|
2146
|
+
}
|
|
2157
2147
|
})
|
|
2158
|
-
return
|
|
2148
|
+
return tags
|
|
2159
2149
|
}
|
|
2160
2150
|
|
|
2161
2151
|
override async tagTagContactList (
|
|
2162
|
-
|
|
2163
|
-
tagId: string,
|
|
2152
|
+
tag: TagIdentifier,
|
|
2164
2153
|
): Promise<string[]> {
|
|
2165
|
-
log.verbose('PuppetService', 'tagTagContactList(%s
|
|
2154
|
+
log.verbose('PuppetService', 'tagTagContactList(%s)', JSON.stringify(tag))
|
|
2166
2155
|
|
|
2167
2156
|
const request = new grpcPuppet.TagTagContactListRequest()
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2157
|
+
const tagProb = new grpcPuppet.TagIdentifier()
|
|
2158
|
+
|
|
2159
|
+
tag.groupId && tagProb.setGroupId(tag.groupId)
|
|
2160
|
+
tagProb.setId(tag.id)
|
|
2161
|
+
request.setTag(tagProb)
|
|
2172
2162
|
|
|
2173
2163
|
const result = await util.promisify(
|
|
2174
2164
|
this.grpcManager.client.tagTagContactList
|
|
2175
2165
|
.bind(this.grpcManager.client),
|
|
2176
2166
|
)(request)
|
|
2177
2167
|
|
|
2178
|
-
const
|
|
2179
|
-
return
|
|
2168
|
+
const contactIds = result.getContactIdsList()
|
|
2169
|
+
return contactIds
|
|
2170
|
+
}
|
|
2171
|
+
|
|
2172
|
+
override async tagGroupPayloadPuppet (id: string): Promise<PUPPET.payloads.TagGroup> {
|
|
2173
|
+
log.verbose('PuppetService', 'tagGroupPayload(%s)', id)
|
|
2174
|
+
|
|
2175
|
+
const cachedPayload = await this._payloadStore.tagGroup?.get(id)
|
|
2176
|
+
if (cachedPayload) {
|
|
2177
|
+
log.silly('PuppetService', 'tagGroupPayload(%s) cache HIT', id)
|
|
2178
|
+
return cachedPayload
|
|
2179
|
+
}
|
|
2180
|
+
|
|
2181
|
+
const request = new grpcPuppet.TagGroupPayloadRequest()
|
|
2182
|
+
request.setGroupId(id)
|
|
2183
|
+
|
|
2184
|
+
const response = await util.promisify(
|
|
2185
|
+
this.grpcManager.client.tagGroupPayload
|
|
2186
|
+
.bind(this.grpcManager.client),
|
|
2187
|
+
)(request)
|
|
2188
|
+
const grpcPayload = response.getPayload()
|
|
2189
|
+
|
|
2190
|
+
if (!grpcPayload) {
|
|
2191
|
+
throw new Error(`tagGroup ${id} got no payload!`)
|
|
2192
|
+
}
|
|
2193
|
+
|
|
2194
|
+
const payload: PUPPET.payloads.TagGroup = {
|
|
2195
|
+
id: grpcPayload.getId(),
|
|
2196
|
+
name: grpcPayload.getName(),
|
|
2197
|
+
type: grpcPayload.getType(),
|
|
2198
|
+
}
|
|
2199
|
+
|
|
2200
|
+
await this._payloadStore.tagGroup?.set(id, payload)
|
|
2201
|
+
log.silly('PuppetService', 'tagGroupPayloadPuppet(%s) cache SET', id)
|
|
2202
|
+
|
|
2203
|
+
return payload
|
|
2204
|
+
}
|
|
2205
|
+
|
|
2206
|
+
override async tagPayloadPuppet (tag: PUPPET.filters.TagIdentifier): Promise<PUPPET.payloads.Tag> {
|
|
2207
|
+
log.verbose('PuppetService', 'tagPayloadPuppet(%s)', JSON.stringify(tag))
|
|
2208
|
+
|
|
2209
|
+
const key = tag.groupId || '' + FOUR_PER_EM_SPACE + tag.id
|
|
2210
|
+
const cachedPayload = await this._payloadStore.tag?.get(key)
|
|
2211
|
+
if (cachedPayload) {
|
|
2212
|
+
log.silly('PuppetService', 'tagPayloadPuppet(%s) cache HIT', tag)
|
|
2213
|
+
return cachedPayload
|
|
2214
|
+
}
|
|
2215
|
+
|
|
2216
|
+
const tagIdentifier = new grpcPuppet.TagIdentifier()
|
|
2217
|
+
tagIdentifier.setId(tag.id)
|
|
2218
|
+
if (tag.groupId) {
|
|
2219
|
+
tagIdentifier.setGroupId(tag.groupId)
|
|
2220
|
+
}
|
|
2221
|
+
const request = new grpcPuppet.TagPayloadRequest()
|
|
2222
|
+
request.setTag(tagIdentifier)
|
|
2223
|
+
|
|
2224
|
+
const response = await util.promisify(
|
|
2225
|
+
this.grpcManager.client.tagPayload
|
|
2226
|
+
.bind(this.grpcManager.client),
|
|
2227
|
+
)(request)
|
|
2228
|
+
const grpcPayload = response.getPayload()
|
|
2229
|
+
|
|
2230
|
+
if (!grpcPayload) {
|
|
2231
|
+
throw new Error(`tag ${JSON.stringify(tag)} got no payload!`)
|
|
2232
|
+
}
|
|
2233
|
+
|
|
2234
|
+
const payload: PUPPET.payloads.Tag = {
|
|
2235
|
+
id: grpcPayload.getId(),
|
|
2236
|
+
name: grpcPayload.getName(),
|
|
2237
|
+
groupId: grpcPayload.getGroupId(),
|
|
2238
|
+
type: grpcPayload.getType(),
|
|
2239
|
+
}
|
|
2240
|
+
|
|
2241
|
+
await this._payloadStore.tag?.set(key, payload)
|
|
2242
|
+
log.silly('PuppetService', 'tagPayloadPuppet(%s) cache SET', JSON.stringify(tag))
|
|
2243
|
+
|
|
2244
|
+
return payload
|
|
2180
2245
|
}
|
|
2181
2246
|
|
|
2182
2247
|
/**
|
package/src/config.ts
CHANGED
package/src/package-json.ts
CHANGED
|
@@ -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.
|
|
7
|
+
"version": "1.0.20",
|
|
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.
|
|
72
|
+
"@juzi/wechaty-puppet": "^1.0.24"
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@juzi/wechaty-grpc": "^1.0.
|
|
75
|
+
"@juzi/wechaty-grpc": "^1.0.14",
|
|
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
|