@juzi/wechaty-puppet-service 1.0.0

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 (602) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +166 -0
  3. package/dist/cjs/examples/ding-dong-bot.d.ts +2 -0
  4. package/dist/cjs/examples/ding-dong-bot.d.ts.map +1 -0
  5. package/dist/cjs/examples/ding-dong-bot.js +156 -0
  6. package/dist/cjs/examples/ding-dong-bot.js.map +1 -0
  7. package/dist/cjs/package.json +3 -0
  8. package/dist/cjs/src/auth/auth-impl-token.d.ts +4 -0
  9. package/dist/cjs/src/auth/auth-impl-token.d.ts.map +1 -0
  10. package/dist/cjs/src/auth/auth-impl-token.js +81 -0
  11. package/dist/cjs/src/auth/auth-impl-token.js.map +1 -0
  12. package/dist/cjs/src/auth/auth-impl-token.spec.d.ts +3 -0
  13. package/dist/cjs/src/auth/auth-impl-token.spec.d.ts.map +1 -0
  14. package/dist/cjs/src/auth/auth-impl-token.spec.js +65 -0
  15. package/dist/cjs/src/auth/auth-impl-token.spec.js.map +1 -0
  16. package/dist/cjs/src/auth/ca.d.ts +46 -0
  17. package/dist/cjs/src/auth/ca.d.ts.map +1 -0
  18. package/dist/cjs/src/auth/ca.js +135 -0
  19. package/dist/cjs/src/auth/ca.js.map +1 -0
  20. package/dist/cjs/src/auth/ca.spec.d.ts +3 -0
  21. package/dist/cjs/src/auth/ca.spec.d.ts.map +1 -0
  22. package/dist/cjs/src/auth/ca.spec.js +115 -0
  23. package/dist/cjs/src/auth/ca.spec.js.map +1 -0
  24. package/dist/cjs/src/auth/call-cred.d.ts +9 -0
  25. package/dist/cjs/src/auth/call-cred.d.ts.map +1 -0
  26. package/dist/cjs/src/auth/call-cred.js +17 -0
  27. package/dist/cjs/src/auth/call-cred.js.map +1 -0
  28. package/dist/cjs/src/auth/call-cred.spec.d.ts +3 -0
  29. package/dist/cjs/src/auth/call-cred.spec.d.ts.map +1 -0
  30. package/dist/cjs/src/auth/call-cred.spec.js +18 -0
  31. package/dist/cjs/src/auth/call-cred.spec.js.map +1 -0
  32. package/dist/cjs/src/auth/env-vars.d.ts +13 -0
  33. package/dist/cjs/src/auth/env-vars.d.ts.map +1 -0
  34. package/dist/cjs/src/auth/env-vars.js +29 -0
  35. package/dist/cjs/src/auth/env-vars.js.map +1 -0
  36. package/dist/cjs/src/auth/grpc-js.d.ts +7 -0
  37. package/dist/cjs/src/auth/grpc-js.d.ts.map +1 -0
  38. package/dist/cjs/src/auth/grpc-js.js +10 -0
  39. package/dist/cjs/src/auth/grpc-js.js.map +1 -0
  40. package/dist/cjs/src/auth/mod.d.ts +5 -0
  41. package/dist/cjs/src/auth/mod.d.ts.map +1 -0
  42. package/dist/cjs/src/auth/mod.js +10 -0
  43. package/dist/cjs/src/auth/mod.js.map +1 -0
  44. package/dist/cjs/src/auth/mokey-patch-header-authorization.d.ts +11 -0
  45. package/dist/cjs/src/auth/mokey-patch-header-authorization.d.ts.map +1 -0
  46. package/dist/cjs/src/auth/mokey-patch-header-authorization.js +32 -0
  47. package/dist/cjs/src/auth/mokey-patch-header-authorization.js.map +1 -0
  48. package/dist/cjs/src/auth/monkey-patch-header-authorization.spec.d.ts +3 -0
  49. package/dist/cjs/src/auth/monkey-patch-header-authorization.spec.d.ts.map +1 -0
  50. package/dist/cjs/src/auth/monkey-patch-header-authorization.spec.js +19 -0
  51. package/dist/cjs/src/auth/monkey-patch-header-authorization.spec.js.map +1 -0
  52. package/dist/cjs/src/client/duck/actions.d.ts +6 -0
  53. package/dist/cjs/src/client/duck/actions.d.ts.map +1 -0
  54. package/dist/cjs/src/client/duck/actions.js +54 -0
  55. package/dist/cjs/src/client/duck/actions.js.map +1 -0
  56. package/dist/cjs/src/client/duck/epic-recover.d.ts +36 -0
  57. package/dist/cjs/src/client/duck/epic-recover.d.ts.map +1 -0
  58. package/dist/cjs/src/client/duck/epic-recover.js +41 -0
  59. package/dist/cjs/src/client/duck/epic-recover.js.map +1 -0
  60. package/dist/cjs/src/client/duck/epic-recover.spec.d.ts +3 -0
  61. package/dist/cjs/src/client/duck/epic-recover.spec.d.ts.map +1 -0
  62. package/dist/cjs/src/client/duck/epic-recover.spec.js +131 -0
  63. package/dist/cjs/src/client/duck/epic-recover.spec.js.map +1 -0
  64. package/dist/cjs/src/client/duck/epics.d.ts +4 -0
  65. package/dist/cjs/src/client/duck/epics.d.ts.map +1 -0
  66. package/dist/cjs/src/client/duck/epics.js +36 -0
  67. package/dist/cjs/src/client/duck/epics.js.map +1 -0
  68. package/dist/cjs/src/client/duck/mod.d.ts +29 -0
  69. package/dist/cjs/src/client/duck/mod.d.ts.map +1 -0
  70. package/dist/cjs/src/client/duck/mod.js +63 -0
  71. package/dist/cjs/src/client/duck/mod.js.map +1 -0
  72. package/dist/cjs/src/client/duck/operations.d.ts +23 -0
  73. package/dist/cjs/src/client/duck/operations.d.ts.map +1 -0
  74. package/dist/cjs/src/client/duck/operations.js +30 -0
  75. package/dist/cjs/src/client/duck/operations.js.map +1 -0
  76. package/dist/cjs/src/client/duck/reducers.d.ts +59 -0
  77. package/dist/cjs/src/client/duck/reducers.d.ts.map +1 -0
  78. package/dist/cjs/src/client/duck/reducers.js +51 -0
  79. package/dist/cjs/src/client/duck/reducers.js.map +1 -0
  80. package/dist/cjs/src/client/duck/selectors.d.ts +21 -0
  81. package/dist/cjs/src/client/duck/selectors.d.ts.map +1 -0
  82. package/dist/cjs/src/client/duck/selectors.js +23 -0
  83. package/dist/cjs/src/client/duck/selectors.js.map +1 -0
  84. package/dist/cjs/src/client/duck/tests.spec.d.ts +3 -0
  85. package/dist/cjs/src/client/duck/tests.spec.d.ts.map +1 -0
  86. package/dist/cjs/src/client/duck/tests.spec.js +49 -0
  87. package/dist/cjs/src/client/duck/tests.spec.js.map +1 -0
  88. package/dist/cjs/src/client/duck/types.d.ts +21 -0
  89. package/dist/cjs/src/client/duck/types.d.ts.map +1 -0
  90. package/dist/cjs/src/client/duck/types.js +24 -0
  91. package/dist/cjs/src/client/duck/types.js.map +1 -0
  92. package/dist/cjs/src/client/duck/utils.d.ts +21 -0
  93. package/dist/cjs/src/client/duck/utils.d.ts.map +1 -0
  94. package/dist/cjs/src/client/duck/utils.js +3 -0
  95. package/dist/cjs/src/client/duck/utils.js.map +1 -0
  96. package/dist/cjs/src/client/grpc-manager.d.ts +29 -0
  97. package/dist/cjs/src/client/grpc-manager.d.ts.map +1 -0
  98. package/dist/cjs/src/client/grpc-manager.js +359 -0
  99. package/dist/cjs/src/client/grpc-manager.js.map +1 -0
  100. package/dist/cjs/src/client/grpc-manager.spec.d.ts +3 -0
  101. package/dist/cjs/src/client/grpc-manager.spec.d.ts.map +1 -0
  102. package/dist/cjs/src/client/grpc-manager.spec.js +19 -0
  103. package/dist/cjs/src/client/grpc-manager.spec.js.map +1 -0
  104. package/dist/cjs/src/client/payload-store.d.ts +26 -0
  105. package/dist/cjs/src/client/payload-store.d.ts.map +1 -0
  106. package/dist/cjs/src/client/payload-store.js +118 -0
  107. package/dist/cjs/src/client/payload-store.js.map +1 -0
  108. package/dist/cjs/src/client/payload-store.spec.d.ts +3 -0
  109. package/dist/cjs/src/client/payload-store.spec.d.ts.map +1 -0
  110. package/dist/cjs/src/client/payload-store.spec.js +17 -0
  111. package/dist/cjs/src/client/payload-store.spec.js.map +1 -0
  112. package/dist/cjs/src/client/puppet-service.d.ts +161 -0
  113. package/dist/cjs/src/client/puppet-service.d.ts.map +1 -0
  114. package/dist/cjs/src/client/puppet-service.js +1384 -0
  115. package/dist/cjs/src/client/puppet-service.js.map +1 -0
  116. package/dist/cjs/src/client/puppet-service.spec.d.ts +3 -0
  117. package/dist/cjs/src/client/puppet-service.spec.d.ts.map +1 -0
  118. package/dist/cjs/src/client/puppet-service.spec.js +55 -0
  119. package/dist/cjs/src/client/puppet-service.spec.js.map +1 -0
  120. package/dist/cjs/src/config.d.ts +20 -0
  121. package/dist/cjs/src/config.d.ts.map +1 -0
  122. package/dist/cjs/src/config.js +49 -0
  123. package/dist/cjs/src/config.js.map +1 -0
  124. package/dist/cjs/src/deprecated/chunk-pb.d.ts +15 -0
  125. package/dist/cjs/src/deprecated/chunk-pb.d.ts.map +1 -0
  126. package/dist/cjs/src/deprecated/chunk-pb.js +60 -0
  127. package/dist/cjs/src/deprecated/chunk-pb.js.map +1 -0
  128. package/dist/cjs/src/deprecated/chunk-pb.spec.d.ts +3 -0
  129. package/dist/cjs/src/deprecated/chunk-pb.spec.d.ts.map +1 -0
  130. package/dist/cjs/src/deprecated/chunk-pb.spec.js +144 -0
  131. package/dist/cjs/src/deprecated/chunk-pb.spec.js.map +1 -0
  132. package/dist/cjs/src/deprecated/conversation-id-file-box.d.ts +21 -0
  133. package/dist/cjs/src/deprecated/conversation-id-file-box.d.ts.map +1 -0
  134. package/dist/cjs/src/deprecated/conversation-id-file-box.js +43 -0
  135. package/dist/cjs/src/deprecated/conversation-id-file-box.js.map +1 -0
  136. package/dist/cjs/src/deprecated/conversation-id-file-box.spec.d.ts +3 -0
  137. package/dist/cjs/src/deprecated/conversation-id-file-box.spec.d.ts.map +1 -0
  138. package/dist/cjs/src/deprecated/conversation-id-file-box.spec.js +94 -0
  139. package/dist/cjs/src/deprecated/conversation-id-file-box.spec.js.map +1 -0
  140. package/dist/cjs/src/deprecated/file-box-chunk.d.ts +14 -0
  141. package/dist/cjs/src/deprecated/file-box-chunk.d.ts.map +1 -0
  142. package/dist/cjs/src/deprecated/file-box-chunk.js +67 -0
  143. package/dist/cjs/src/deprecated/file-box-chunk.js.map +1 -0
  144. package/dist/cjs/src/deprecated/file-box-chunk.spec.d.ts +3 -0
  145. package/dist/cjs/src/deprecated/file-box-chunk.spec.d.ts.map +1 -0
  146. package/dist/cjs/src/deprecated/file-box-chunk.spec.js +134 -0
  147. package/dist/cjs/src/deprecated/file-box-chunk.spec.js.map +1 -0
  148. package/dist/cjs/src/deprecated/file-box-pb.d.ts +15 -0
  149. package/dist/cjs/src/deprecated/file-box-pb.d.ts.map +1 -0
  150. package/dist/cjs/src/deprecated/file-box-pb.js +26 -0
  151. package/dist/cjs/src/deprecated/file-box-pb.js.map +1 -0
  152. package/dist/cjs/src/deprecated/file-box-pb.spec.d.ts +3 -0
  153. package/dist/cjs/src/deprecated/file-box-pb.spec.d.ts.map +1 -0
  154. package/dist/cjs/src/deprecated/file-box-pb.spec.js +18 -0
  155. package/dist/cjs/src/deprecated/file-box-pb.spec.js.map +1 -0
  156. package/dist/cjs/src/deprecated/file-box-pb.type.d.ts +15 -0
  157. package/dist/cjs/src/deprecated/file-box-pb.type.d.ts.map +1 -0
  158. package/dist/cjs/src/deprecated/file-box-pb.type.js +3 -0
  159. package/dist/cjs/src/deprecated/file-box-pb.type.js.map +1 -0
  160. package/dist/cjs/src/deprecated/mod.d.ts +3 -0
  161. package/dist/cjs/src/deprecated/mod.d.ts.map +1 -0
  162. package/dist/cjs/src/deprecated/mod.js +10 -0
  163. package/dist/cjs/src/deprecated/mod.js.map +1 -0
  164. package/dist/cjs/src/deprecated/next-data.d.ts +7 -0
  165. package/dist/cjs/src/deprecated/next-data.d.ts.map +1 -0
  166. package/dist/cjs/src/deprecated/next-data.js +26 -0
  167. package/dist/cjs/src/deprecated/next-data.js.map +1 -0
  168. package/dist/cjs/src/deprecated/serialize-file-box.d.ts +6 -0
  169. package/dist/cjs/src/deprecated/serialize-file-box.d.ts.map +1 -0
  170. package/dist/cjs/src/deprecated/serialize-file-box.js +22 -0
  171. package/dist/cjs/src/deprecated/serialize-file-box.js.map +1 -0
  172. package/dist/cjs/src/env-vars.d.ts +5 -0
  173. package/dist/cjs/src/env-vars.d.ts.map +1 -0
  174. package/dist/cjs/src/env-vars.js +88 -0
  175. package/dist/cjs/src/env-vars.js.map +1 -0
  176. package/dist/cjs/src/env-vars.spec.d.ts +3 -0
  177. package/dist/cjs/src/env-vars.spec.d.ts.map +1 -0
  178. package/dist/cjs/src/env-vars.spec.js +21 -0
  179. package/dist/cjs/src/env-vars.spec.js.map +1 -0
  180. package/dist/cjs/src/event-type-rev.d.ts +11 -0
  181. package/dist/cjs/src/event-type-rev.d.ts.map +1 -0
  182. package/dist/cjs/src/event-type-rev.js +17 -0
  183. package/dist/cjs/src/event-type-rev.js.map +1 -0
  184. package/dist/cjs/src/file-box-helper/mod.d.ts +4 -0
  185. package/dist/cjs/src/file-box-helper/mod.d.ts.map +1 -0
  186. package/dist/cjs/src/file-box-helper/mod.js +8 -0
  187. package/dist/cjs/src/file-box-helper/mod.js.map +1 -0
  188. package/dist/cjs/src/file-box-helper/normalize-filebox.d.ts +6 -0
  189. package/dist/cjs/src/file-box-helper/normalize-filebox.d.ts.map +1 -0
  190. package/dist/cjs/src/file-box-helper/normalize-filebox.js +76 -0
  191. package/dist/cjs/src/file-box-helper/normalize-filebox.js.map +1 -0
  192. package/dist/cjs/src/file-box-helper/normalize-filebox.spec.d.ts +3 -0
  193. package/dist/cjs/src/file-box-helper/normalize-filebox.spec.d.ts.map +1 -0
  194. package/dist/cjs/src/file-box-helper/normalize-filebox.spec.js +35 -0
  195. package/dist/cjs/src/file-box-helper/normalize-filebox.spec.js.map +1 -0
  196. package/dist/cjs/src/file-box-helper/uuidify-file-box-grpc.d.ts +6 -0
  197. package/dist/cjs/src/file-box-helper/uuidify-file-box-grpc.d.ts.map +1 -0
  198. package/dist/cjs/src/file-box-helper/uuidify-file-box-grpc.js +45 -0
  199. package/dist/cjs/src/file-box-helper/uuidify-file-box-grpc.js.map +1 -0
  200. package/dist/cjs/src/file-box-helper/uuidify-file-box-local.d.ts +5 -0
  201. package/dist/cjs/src/file-box-helper/uuidify-file-box-local.d.ts.map +1 -0
  202. package/dist/cjs/src/file-box-helper/uuidify-file-box-local.js +19 -0
  203. package/dist/cjs/src/file-box-helper/uuidify-file-box-local.js.map +1 -0
  204. package/dist/cjs/src/mod.d.ts +8 -0
  205. package/dist/cjs/src/mod.d.ts.map +1 -0
  206. package/dist/cjs/src/mod.js +13 -0
  207. package/dist/cjs/src/mod.js.map +1 -0
  208. package/dist/cjs/src/mod.spec.d.ts +3 -0
  209. package/dist/cjs/src/mod.spec.d.ts.map +1 -0
  210. package/dist/cjs/src/mod.spec.js +32 -0
  211. package/dist/cjs/src/mod.spec.js.map +1 -0
  212. package/dist/cjs/src/package-json.d.ts +6 -0
  213. package/dist/cjs/src/package-json.d.ts.map +1 -0
  214. package/dist/cjs/src/package-json.js +101 -0
  215. package/dist/cjs/src/package-json.js.map +1 -0
  216. package/dist/cjs/src/package-json.spec.d.ts +3 -0
  217. package/dist/cjs/src/package-json.spec.d.ts.map +1 -0
  218. package/dist/cjs/src/package-json.spec.js +10 -0
  219. package/dist/cjs/src/package-json.spec.js.map +1 -0
  220. package/dist/cjs/src/pure-functions/timestamp.d.ts +8 -0
  221. package/dist/cjs/src/pure-functions/timestamp.d.ts.map +1 -0
  222. package/dist/cjs/src/pure-functions/timestamp.js +23 -0
  223. package/dist/cjs/src/pure-functions/timestamp.js.map +1 -0
  224. package/dist/cjs/src/server/event-stream-manager.d.ts +40 -0
  225. package/dist/cjs/src/server/event-stream-manager.d.ts.map +1 -0
  226. package/dist/cjs/src/server/event-stream-manager.js +344 -0
  227. package/dist/cjs/src/server/event-stream-manager.js.map +1 -0
  228. package/dist/cjs/src/server/grpc-error.d.ts +5 -0
  229. package/dist/cjs/src/server/grpc-error.d.ts.map +1 -0
  230. package/dist/cjs/src/server/grpc-error.js +12 -0
  231. package/dist/cjs/src/server/grpc-error.js.map +1 -0
  232. package/dist/cjs/src/server/health-implementation.d.ts +5 -0
  233. package/dist/cjs/src/server/health-implementation.d.ts.map +1 -0
  234. package/dist/cjs/src/server/health-implementation.js +55 -0
  235. package/dist/cjs/src/server/health-implementation.js.map +1 -0
  236. package/dist/cjs/src/server/puppet-implementation.d.ts +6 -0
  237. package/dist/cjs/src/server/puppet-implementation.d.ts.map +1 -0
  238. package/dist/cjs/src/server/puppet-implementation.js +1226 -0
  239. package/dist/cjs/src/server/puppet-implementation.js.map +1 -0
  240. package/dist/cjs/src/server/puppet-server.d.ts +23 -0
  241. package/dist/cjs/src/server/puppet-server.d.ts.map +1 -0
  242. package/dist/cjs/src/server/puppet-server.js +159 -0
  243. package/dist/cjs/src/server/puppet-server.js.map +1 -0
  244. package/dist/cjs/src/server/puppet-server.spec.d.ts +3 -0
  245. package/dist/cjs/src/server/puppet-server.spec.d.ts.map +1 -0
  246. package/dist/cjs/src/server/puppet-server.spec.js +15 -0
  247. package/dist/cjs/src/server/puppet-server.spec.js.map +1 -0
  248. package/dist/cjs/tests/grpc-client.spec.d.ts +3 -0
  249. package/dist/cjs/tests/grpc-client.spec.d.ts.map +1 -0
  250. package/dist/cjs/tests/grpc-client.spec.js +137 -0
  251. package/dist/cjs/tests/grpc-client.spec.js.map +1 -0
  252. package/dist/cjs/tests/grpc-stream.spec.d.ts +15 -0
  253. package/dist/cjs/tests/grpc-stream.spec.d.ts.map +1 -0
  254. package/dist/cjs/tests/grpc-stream.spec.js +67 -0
  255. package/dist/cjs/tests/grpc-stream.spec.js.map +1 -0
  256. package/dist/cjs/tests/integration.spec.d.ts +3 -0
  257. package/dist/cjs/tests/integration.spec.d.ts.map +1 -0
  258. package/dist/cjs/tests/integration.spec.js +70 -0
  259. package/dist/cjs/tests/integration.spec.js.map +1 -0
  260. package/dist/cjs/tests/performance.spec.d.ts +14 -0
  261. package/dist/cjs/tests/performance.spec.d.ts.map +1 -0
  262. package/dist/cjs/tests/performance.spec.js +129 -0
  263. package/dist/cjs/tests/performance.spec.js.map +1 -0
  264. package/dist/cjs/tests/ready-event.spec.d.ts +3 -0
  265. package/dist/cjs/tests/ready-event.spec.d.ts.map +1 -0
  266. package/dist/cjs/tests/ready-event.spec.js +80 -0
  267. package/dist/cjs/tests/ready-event.spec.js.map +1 -0
  268. package/dist/cjs/tests/uuid-file-box.spec.d.ts +3 -0
  269. package/dist/cjs/tests/uuid-file-box.spec.d.ts.map +1 -0
  270. package/dist/cjs/tests/uuid-file-box.spec.js +77 -0
  271. package/dist/cjs/tests/uuid-file-box.spec.js.map +1 -0
  272. package/dist/esm/examples/ding-dong-bot.d.ts +2 -0
  273. package/dist/esm/examples/ding-dong-bot.d.ts.map +1 -0
  274. package/dist/esm/examples/ding-dong-bot.js +131 -0
  275. package/dist/esm/examples/ding-dong-bot.js.map +1 -0
  276. package/dist/esm/src/auth/auth-impl-token.d.ts +4 -0
  277. package/dist/esm/src/auth/auth-impl-token.d.ts.map +1 -0
  278. package/dist/esm/src/auth/auth-impl-token.js +78 -0
  279. package/dist/esm/src/auth/auth-impl-token.js.map +1 -0
  280. package/dist/esm/src/auth/auth-impl-token.spec.d.ts +3 -0
  281. package/dist/esm/src/auth/auth-impl-token.spec.d.ts.map +1 -0
  282. package/dist/esm/src/auth/auth-impl-token.spec.js +63 -0
  283. package/dist/esm/src/auth/auth-impl-token.spec.js.map +1 -0
  284. package/dist/esm/src/auth/ca.d.ts +46 -0
  285. package/dist/esm/src/auth/ca.d.ts.map +1 -0
  286. package/dist/esm/src/auth/ca.js +129 -0
  287. package/dist/esm/src/auth/ca.js.map +1 -0
  288. package/dist/esm/src/auth/ca.spec.d.ts +3 -0
  289. package/dist/esm/src/auth/ca.spec.d.ts.map +1 -0
  290. package/dist/esm/src/auth/ca.spec.js +87 -0
  291. package/dist/esm/src/auth/ca.spec.js.map +1 -0
  292. package/dist/esm/src/auth/call-cred.d.ts +9 -0
  293. package/dist/esm/src/auth/call-cred.d.ts.map +1 -0
  294. package/dist/esm/src/auth/call-cred.js +13 -0
  295. package/dist/esm/src/auth/call-cred.js.map +1 -0
  296. package/dist/esm/src/auth/call-cred.spec.d.ts +3 -0
  297. package/dist/esm/src/auth/call-cred.spec.d.ts.map +1 -0
  298. package/dist/esm/src/auth/call-cred.spec.js +16 -0
  299. package/dist/esm/src/auth/call-cred.spec.js.map +1 -0
  300. package/dist/esm/src/auth/env-vars.d.ts +13 -0
  301. package/dist/esm/src/auth/env-vars.d.ts.map +1 -0
  302. package/dist/esm/src/auth/env-vars.js +21 -0
  303. package/dist/esm/src/auth/env-vars.js.map +1 -0
  304. package/dist/esm/src/auth/grpc-js.d.ts +7 -0
  305. package/dist/esm/src/auth/grpc-js.d.ts.map +1 -0
  306. package/dist/esm/src/auth/grpc-js.js +4 -0
  307. package/dist/esm/src/auth/grpc-js.js.map +1 -0
  308. package/dist/esm/src/auth/mod.d.ts +5 -0
  309. package/dist/esm/src/auth/mod.d.ts.map +1 -0
  310. package/dist/esm/src/auth/mod.js +5 -0
  311. package/dist/esm/src/auth/mod.js.map +1 -0
  312. package/dist/esm/src/auth/mokey-patch-header-authorization.d.ts +11 -0
  313. package/dist/esm/src/auth/mokey-patch-header-authorization.d.ts.map +1 -0
  314. package/dist/esm/src/auth/mokey-patch-header-authorization.js +29 -0
  315. package/dist/esm/src/auth/mokey-patch-header-authorization.js.map +1 -0
  316. package/dist/esm/src/auth/monkey-patch-header-authorization.spec.d.ts +3 -0
  317. package/dist/esm/src/auth/monkey-patch-header-authorization.spec.d.ts.map +1 -0
  318. package/dist/esm/src/auth/monkey-patch-header-authorization.spec.js +17 -0
  319. package/dist/esm/src/auth/monkey-patch-header-authorization.spec.js.map +1 -0
  320. package/dist/esm/src/client/duck/actions.d.ts +6 -0
  321. package/dist/esm/src/client/duck/actions.d.ts.map +1 -0
  322. package/dist/esm/src/client/duck/actions.js +28 -0
  323. package/dist/esm/src/client/duck/actions.js.map +1 -0
  324. package/dist/esm/src/client/duck/epic-recover.d.ts +36 -0
  325. package/dist/esm/src/client/duck/epic-recover.d.ts.map +1 -0
  326. package/dist/esm/src/client/duck/epic-recover.js +36 -0
  327. package/dist/esm/src/client/duck/epic-recover.js.map +1 -0
  328. package/dist/esm/src/client/duck/epic-recover.spec.d.ts +3 -0
  329. package/dist/esm/src/client/duck/epic-recover.spec.d.ts.map +1 -0
  330. package/dist/esm/src/client/duck/epic-recover.spec.js +126 -0
  331. package/dist/esm/src/client/duck/epic-recover.spec.js.map +1 -0
  332. package/dist/esm/src/client/duck/epics.d.ts +4 -0
  333. package/dist/esm/src/client/duck/epics.d.ts.map +1 -0
  334. package/dist/esm/src/client/duck/epics.js +33 -0
  335. package/dist/esm/src/client/duck/epics.js.map +1 -0
  336. package/dist/esm/src/client/duck/mod.d.ts +29 -0
  337. package/dist/esm/src/client/duck/mod.d.ts.map +1 -0
  338. package/dist/esm/src/client/duck/mod.js +29 -0
  339. package/dist/esm/src/client/duck/mod.js.map +1 -0
  340. package/dist/esm/src/client/duck/operations.d.ts +23 -0
  341. package/dist/esm/src/client/duck/operations.d.ts.map +1 -0
  342. package/dist/esm/src/client/duck/operations.js +4 -0
  343. package/dist/esm/src/client/duck/operations.js.map +1 -0
  344. package/dist/esm/src/client/duck/reducers.d.ts +59 -0
  345. package/dist/esm/src/client/duck/reducers.d.ts.map +1 -0
  346. package/dist/esm/src/client/duck/reducers.js +26 -0
  347. package/dist/esm/src/client/duck/reducers.js.map +1 -0
  348. package/dist/esm/src/client/duck/selectors.d.ts +21 -0
  349. package/dist/esm/src/client/duck/selectors.d.ts.map +1 -0
  350. package/dist/esm/src/client/duck/selectors.js +22 -0
  351. package/dist/esm/src/client/duck/selectors.js.map +1 -0
  352. package/dist/esm/src/client/duck/tests.spec.d.ts +3 -0
  353. package/dist/esm/src/client/duck/tests.spec.d.ts.map +1 -0
  354. package/dist/esm/src/client/duck/tests.spec.js +24 -0
  355. package/dist/esm/src/client/duck/tests.spec.js.map +1 -0
  356. package/dist/esm/src/client/duck/types.d.ts +21 -0
  357. package/dist/esm/src/client/duck/types.d.ts.map +1 -0
  358. package/dist/esm/src/client/duck/types.js +21 -0
  359. package/dist/esm/src/client/duck/types.js.map +1 -0
  360. package/dist/esm/src/client/duck/utils.d.ts +21 -0
  361. package/dist/esm/src/client/duck/utils.d.ts.map +1 -0
  362. package/dist/esm/src/client/duck/utils.js +2 -0
  363. package/dist/esm/src/client/duck/utils.js.map +1 -0
  364. package/dist/esm/src/client/grpc-manager.d.ts +29 -0
  365. package/dist/esm/src/client/grpc-manager.d.ts.map +1 -0
  366. package/dist/esm/src/client/grpc-manager.js +353 -0
  367. package/dist/esm/src/client/grpc-manager.js.map +1 -0
  368. package/dist/esm/src/client/grpc-manager.spec.d.ts +3 -0
  369. package/dist/esm/src/client/grpc-manager.spec.d.ts.map +1 -0
  370. package/dist/esm/src/client/grpc-manager.spec.js +17 -0
  371. package/dist/esm/src/client/grpc-manager.spec.js.map +1 -0
  372. package/dist/esm/src/client/payload-store.d.ts +26 -0
  373. package/dist/esm/src/client/payload-store.d.ts.map +1 -0
  374. package/dist/esm/src/client/payload-store.js +112 -0
  375. package/dist/esm/src/client/payload-store.js.map +1 -0
  376. package/dist/esm/src/client/payload-store.spec.d.ts +3 -0
  377. package/dist/esm/src/client/payload-store.spec.d.ts.map +1 -0
  378. package/dist/esm/src/client/payload-store.spec.js +15 -0
  379. package/dist/esm/src/client/payload-store.spec.js.map +1 -0
  380. package/dist/esm/src/client/puppet-service.d.ts +161 -0
  381. package/dist/esm/src/client/puppet-service.d.ts.map +1 -0
  382. package/dist/esm/src/client/puppet-service.js +1357 -0
  383. package/dist/esm/src/client/puppet-service.js.map +1 -0
  384. package/dist/esm/src/client/puppet-service.spec.d.ts +3 -0
  385. package/dist/esm/src/client/puppet-service.spec.d.ts.map +1 -0
  386. package/dist/esm/src/client/puppet-service.spec.js +50 -0
  387. package/dist/esm/src/client/puppet-service.spec.js.map +1 -0
  388. package/dist/esm/src/config.d.ts +20 -0
  389. package/dist/esm/src/config.d.ts.map +1 -0
  390. package/dist/esm/src/config.js +20 -0
  391. package/dist/esm/src/config.js.map +1 -0
  392. package/dist/esm/src/deprecated/chunk-pb.d.ts +15 -0
  393. package/dist/esm/src/deprecated/chunk-pb.d.ts.map +1 -0
  394. package/dist/esm/src/deprecated/chunk-pb.js +56 -0
  395. package/dist/esm/src/deprecated/chunk-pb.js.map +1 -0
  396. package/dist/esm/src/deprecated/chunk-pb.spec.d.ts +3 -0
  397. package/dist/esm/src/deprecated/chunk-pb.spec.d.ts.map +1 -0
  398. package/dist/esm/src/deprecated/chunk-pb.spec.js +142 -0
  399. package/dist/esm/src/deprecated/chunk-pb.spec.js.map +1 -0
  400. package/dist/esm/src/deprecated/conversation-id-file-box.d.ts +21 -0
  401. package/dist/esm/src/deprecated/conversation-id-file-box.d.ts.map +1 -0
  402. package/dist/esm/src/deprecated/conversation-id-file-box.js +39 -0
  403. package/dist/esm/src/deprecated/conversation-id-file-box.js.map +1 -0
  404. package/dist/esm/src/deprecated/conversation-id-file-box.spec.d.ts +3 -0
  405. package/dist/esm/src/deprecated/conversation-id-file-box.spec.d.ts.map +1 -0
  406. package/dist/esm/src/deprecated/conversation-id-file-box.spec.js +92 -0
  407. package/dist/esm/src/deprecated/conversation-id-file-box.spec.js.map +1 -0
  408. package/dist/esm/src/deprecated/file-box-chunk.d.ts +14 -0
  409. package/dist/esm/src/deprecated/file-box-chunk.d.ts.map +1 -0
  410. package/dist/esm/src/deprecated/file-box-chunk.js +63 -0
  411. package/dist/esm/src/deprecated/file-box-chunk.js.map +1 -0
  412. package/dist/esm/src/deprecated/file-box-chunk.spec.d.ts +3 -0
  413. package/dist/esm/src/deprecated/file-box-chunk.spec.d.ts.map +1 -0
  414. package/dist/esm/src/deprecated/file-box-chunk.spec.js +132 -0
  415. package/dist/esm/src/deprecated/file-box-chunk.spec.js.map +1 -0
  416. package/dist/esm/src/deprecated/file-box-pb.d.ts +15 -0
  417. package/dist/esm/src/deprecated/file-box-pb.d.ts.map +1 -0
  418. package/dist/esm/src/deprecated/file-box-pb.js +22 -0
  419. package/dist/esm/src/deprecated/file-box-pb.js.map +1 -0
  420. package/dist/esm/src/deprecated/file-box-pb.spec.d.ts +3 -0
  421. package/dist/esm/src/deprecated/file-box-pb.spec.d.ts.map +1 -0
  422. package/dist/esm/src/deprecated/file-box-pb.spec.js +16 -0
  423. package/dist/esm/src/deprecated/file-box-pb.spec.js.map +1 -0
  424. package/dist/esm/src/deprecated/file-box-pb.type.d.ts +15 -0
  425. package/dist/esm/src/deprecated/file-box-pb.type.d.ts.map +1 -0
  426. package/dist/esm/src/deprecated/file-box-pb.type.js +2 -0
  427. package/dist/esm/src/deprecated/file-box-pb.type.js.map +1 -0
  428. package/dist/esm/src/deprecated/mod.d.ts +3 -0
  429. package/dist/esm/src/deprecated/mod.d.ts.map +1 -0
  430. package/dist/esm/src/deprecated/mod.js +3 -0
  431. package/dist/esm/src/deprecated/mod.js.map +1 -0
  432. package/dist/esm/src/deprecated/next-data.d.ts +7 -0
  433. package/dist/esm/src/deprecated/next-data.d.ts.map +1 -0
  434. package/dist/esm/src/deprecated/next-data.js +23 -0
  435. package/dist/esm/src/deprecated/next-data.js.map +1 -0
  436. package/dist/esm/src/deprecated/serialize-file-box.d.ts +6 -0
  437. package/dist/esm/src/deprecated/serialize-file-box.d.ts.map +1 -0
  438. package/dist/esm/src/deprecated/serialize-file-box.js +18 -0
  439. package/dist/esm/src/deprecated/serialize-file-box.js.map +1 -0
  440. package/dist/esm/src/env-vars.d.ts +5 -0
  441. package/dist/esm/src/env-vars.d.ts.map +1 -0
  442. package/dist/esm/src/env-vars.js +83 -0
  443. package/dist/esm/src/env-vars.js.map +1 -0
  444. package/dist/esm/src/env-vars.spec.d.ts +3 -0
  445. package/dist/esm/src/env-vars.spec.d.ts.map +1 -0
  446. package/dist/esm/src/env-vars.spec.js +19 -0
  447. package/dist/esm/src/env-vars.spec.js.map +1 -0
  448. package/dist/esm/src/event-type-rev.d.ts +11 -0
  449. package/dist/esm/src/event-type-rev.d.ts.map +1 -0
  450. package/dist/esm/src/event-type-rev.js +14 -0
  451. package/dist/esm/src/event-type-rev.js.map +1 -0
  452. package/dist/esm/src/file-box-helper/mod.d.ts +4 -0
  453. package/dist/esm/src/file-box-helper/mod.d.ts.map +1 -0
  454. package/dist/esm/src/file-box-helper/mod.js +4 -0
  455. package/dist/esm/src/file-box-helper/mod.js.map +1 -0
  456. package/dist/esm/src/file-box-helper/normalize-filebox.d.ts +6 -0
  457. package/dist/esm/src/file-box-helper/normalize-filebox.d.ts.map +1 -0
  458. package/dist/esm/src/file-box-helper/normalize-filebox.js +72 -0
  459. package/dist/esm/src/file-box-helper/normalize-filebox.js.map +1 -0
  460. package/dist/esm/src/file-box-helper/normalize-filebox.spec.d.ts +3 -0
  461. package/dist/esm/src/file-box-helper/normalize-filebox.spec.d.ts.map +1 -0
  462. package/dist/esm/src/file-box-helper/normalize-filebox.spec.js +33 -0
  463. package/dist/esm/src/file-box-helper/normalize-filebox.spec.js.map +1 -0
  464. package/dist/esm/src/file-box-helper/uuidify-file-box-grpc.d.ts +6 -0
  465. package/dist/esm/src/file-box-helper/uuidify-file-box-grpc.d.ts.map +1 -0
  466. package/dist/esm/src/file-box-helper/uuidify-file-box-grpc.js +42 -0
  467. package/dist/esm/src/file-box-helper/uuidify-file-box-grpc.js.map +1 -0
  468. package/dist/esm/src/file-box-helper/uuidify-file-box-local.d.ts +5 -0
  469. package/dist/esm/src/file-box-helper/uuidify-file-box-local.d.ts.map +1 -0
  470. package/dist/esm/src/file-box-helper/uuidify-file-box-local.js +16 -0
  471. package/dist/esm/src/file-box-helper/uuidify-file-box-local.js.map +1 -0
  472. package/dist/esm/src/mod.d.ts +8 -0
  473. package/dist/esm/src/mod.d.ts.map +1 -0
  474. package/dist/esm/src/mod.js +7 -0
  475. package/dist/esm/src/mod.js.map +1 -0
  476. package/dist/esm/src/mod.spec.d.ts +3 -0
  477. package/dist/esm/src/mod.spec.d.ts.map +1 -0
  478. package/dist/esm/src/mod.spec.js +7 -0
  479. package/dist/esm/src/mod.spec.js.map +1 -0
  480. package/dist/esm/src/package-json.d.ts +6 -0
  481. package/dist/esm/src/package-json.d.ts.map +1 -0
  482. package/dist/esm/src/package-json.js +98 -0
  483. package/dist/esm/src/package-json.js.map +1 -0
  484. package/dist/esm/src/package-json.spec.d.ts +3 -0
  485. package/dist/esm/src/package-json.spec.d.ts.map +1 -0
  486. package/dist/esm/src/package-json.spec.js +8 -0
  487. package/dist/esm/src/package-json.spec.js.map +1 -0
  488. package/dist/esm/src/pure-functions/timestamp.d.ts +8 -0
  489. package/dist/esm/src/pure-functions/timestamp.d.ts.map +1 -0
  490. package/dist/esm/src/pure-functions/timestamp.js +19 -0
  491. package/dist/esm/src/pure-functions/timestamp.js.map +1 -0
  492. package/dist/esm/src/server/event-stream-manager.d.ts +40 -0
  493. package/dist/esm/src/server/event-stream-manager.d.ts.map +1 -0
  494. package/dist/esm/src/server/event-stream-manager.js +318 -0
  495. package/dist/esm/src/server/event-stream-manager.js.map +1 -0
  496. package/dist/esm/src/server/grpc-error.d.ts +5 -0
  497. package/dist/esm/src/server/grpc-error.d.ts.map +1 -0
  498. package/dist/esm/src/server/grpc-error.js +8 -0
  499. package/dist/esm/src/server/grpc-error.js.map +1 -0
  500. package/dist/esm/src/server/health-implementation.d.ts +5 -0
  501. package/dist/esm/src/server/health-implementation.d.ts.map +1 -0
  502. package/dist/esm/src/server/health-implementation.js +52 -0
  503. package/dist/esm/src/server/health-implementation.js.map +1 -0
  504. package/dist/esm/src/server/puppet-implementation.d.ts +6 -0
  505. package/dist/esm/src/server/puppet-implementation.d.ts.map +1 -0
  506. package/dist/esm/src/server/puppet-implementation.js +1200 -0
  507. package/dist/esm/src/server/puppet-implementation.js.map +1 -0
  508. package/dist/esm/src/server/puppet-server.d.ts +23 -0
  509. package/dist/esm/src/server/puppet-server.d.ts.map +1 -0
  510. package/dist/esm/src/server/puppet-server.js +152 -0
  511. package/dist/esm/src/server/puppet-server.js.map +1 -0
  512. package/dist/esm/src/server/puppet-server.spec.d.ts +3 -0
  513. package/dist/esm/src/server/puppet-server.spec.d.ts.map +1 -0
  514. package/dist/esm/src/server/puppet-server.spec.js +13 -0
  515. package/dist/esm/src/server/puppet-server.spec.js.map +1 -0
  516. package/dist/esm/tests/grpc-client.spec.d.ts +3 -0
  517. package/dist/esm/tests/grpc-client.spec.d.ts.map +1 -0
  518. package/dist/esm/tests/grpc-client.spec.js +132 -0
  519. package/dist/esm/tests/grpc-client.spec.js.map +1 -0
  520. package/dist/esm/tests/grpc-stream.spec.d.ts +15 -0
  521. package/dist/esm/tests/grpc-stream.spec.d.ts.map +1 -0
  522. package/dist/esm/tests/grpc-stream.spec.js +62 -0
  523. package/dist/esm/tests/grpc-stream.spec.js.map +1 -0
  524. package/dist/esm/tests/integration.spec.d.ts +3 -0
  525. package/dist/esm/tests/integration.spec.d.ts.map +1 -0
  526. package/dist/esm/tests/integration.spec.js +65 -0
  527. package/dist/esm/tests/integration.spec.js.map +1 -0
  528. package/dist/esm/tests/performance.spec.d.ts +14 -0
  529. package/dist/esm/tests/performance.spec.d.ts.map +1 -0
  530. package/dist/esm/tests/performance.spec.js +104 -0
  531. package/dist/esm/tests/performance.spec.js.map +1 -0
  532. package/dist/esm/tests/ready-event.spec.d.ts +3 -0
  533. package/dist/esm/tests/ready-event.spec.d.ts.map +1 -0
  534. package/dist/esm/tests/ready-event.spec.js +52 -0
  535. package/dist/esm/tests/ready-event.spec.js.map +1 -0
  536. package/dist/esm/tests/uuid-file-box.spec.d.ts +3 -0
  537. package/dist/esm/tests/uuid-file-box.spec.d.ts.map +1 -0
  538. package/dist/esm/tests/uuid-file-box.spec.js +49 -0
  539. package/dist/esm/tests/uuid-file-box.spec.js.map +1 -0
  540. package/package.json +97 -0
  541. package/src/auth/README.md +10 -0
  542. package/src/auth/auth-impl-token.spec.ts +81 -0
  543. package/src/auth/auth-impl-token.ts +108 -0
  544. package/src/auth/ca.spec.ts +116 -0
  545. package/src/auth/ca.ts +137 -0
  546. package/src/auth/call-cred.spec.ts +25 -0
  547. package/src/auth/call-cred.ts +22 -0
  548. package/src/auth/env-vars.ts +32 -0
  549. package/src/auth/grpc-js.ts +29 -0
  550. package/src/auth/mod.ts +9 -0
  551. package/src/auth/mokey-patch-header-authorization.ts +45 -0
  552. package/src/auth/monkey-patch-header-authorization.spec.ts +26 -0
  553. package/src/client/duck/actions.ts +31 -0
  554. package/src/client/duck/epic-recover.spec.ts +180 -0
  555. package/src/client/duck/epic-recover.ts +109 -0
  556. package/src/client/duck/epics.ts +53 -0
  557. package/src/client/duck/mod.ts +38 -0
  558. package/src/client/duck/operations.ts +28 -0
  559. package/src/client/duck/reducers.ts +36 -0
  560. package/src/client/duck/selectors.ts +27 -0
  561. package/src/client/duck/tests.spec.ts +25 -0
  562. package/src/client/duck/types.ts +20 -0
  563. package/src/client/duck/utils.ts +20 -0
  564. package/src/client/grpc-manager.spec.ts +20 -0
  565. package/src/client/grpc-manager.ts +440 -0
  566. package/src/client/payload-store.spec.ts +19 -0
  567. package/src/client/payload-store.ts +153 -0
  568. package/src/client/puppet-service.spec.ts +59 -0
  569. package/src/client/puppet-service.ts +1938 -0
  570. package/src/config.ts +31 -0
  571. package/src/deprecated/chunk-pb.spec.ts +210 -0
  572. package/src/deprecated/chunk-pb.ts +75 -0
  573. package/src/deprecated/conversation-id-file-box.spec.ts +131 -0
  574. package/src/deprecated/conversation-id-file-box.ts +72 -0
  575. package/src/deprecated/file-box-chunk.spec.ts +184 -0
  576. package/src/deprecated/file-box-chunk.ts +87 -0
  577. package/src/deprecated/file-box-pb.spec.ts +31 -0
  578. package/src/deprecated/file-box-pb.ts +41 -0
  579. package/src/deprecated/file-box-pb.type.ts +16 -0
  580. package/src/deprecated/mod.ts +8 -0
  581. package/src/deprecated/next-data.ts +35 -0
  582. package/src/deprecated/serialize-file-box.ts +24 -0
  583. package/src/env-vars.spec.ts +23 -0
  584. package/src/env-vars.ts +100 -0
  585. package/src/event-type-rev.ts +19 -0
  586. package/src/file-box-helper/mod.ts +11 -0
  587. package/src/file-box-helper/normalize-filebox.spec.ts +47 -0
  588. package/src/file-box-helper/normalize-filebox.ts +90 -0
  589. package/src/file-box-helper/uuidify-file-box-grpc.ts +83 -0
  590. package/src/file-box-helper/uuidify-file-box-local.ts +31 -0
  591. package/src/mod.spec.ts +9 -0
  592. package/src/mod.ts +25 -0
  593. package/src/package-json.spec.ts +10 -0
  594. package/src/package-json.ts +101 -0
  595. package/src/pure-functions/timestamp.ts +28 -0
  596. package/src/server/event-stream-manager.ts +383 -0
  597. package/src/server/grpc-error.ts +23 -0
  598. package/src/server/health-implementation.ts +78 -0
  599. package/src/server/puppet-implementation.ts +1539 -0
  600. package/src/server/puppet-server.spec.ts +21 -0
  601. package/src/server/puppet-server.ts +239 -0
  602. package/src/typings.d.ts +68 -0
@@ -0,0 +1,1200 @@
1
+ import { chunkDecoder, chunkEncoder, StringValue, grpc, puppet as grpcPuppet, } from '@juzi/wechaty-grpc';
2
+ import * as PUPPET from '@juzi/wechaty-puppet';
3
+ import { timeoutPromise } from 'gerror';
4
+ import { packFileBoxToPb, unpackConversationIdFileBoxArgsFromPb, } from '../deprecated/mod.js';
5
+ import { timestampFromMilliseconds, } from '../pure-functions/timestamp.js';
6
+ import { normalizeFileBoxUuid, } from '../file-box-helper/mod.js';
7
+ import { log } from '../config.js';
8
+ import { grpcError } from './grpc-error.js';
9
+ import { EventStreamManager } from './event-stream-manager.js';
10
+ function puppetImplementation(puppet, FileBoxUuid) {
11
+ /**
12
+ * Save scan payload to send it to the puppet-service right after connected (if needed)
13
+ *
14
+ * TODO: clean the listeners if necessary
15
+ */
16
+ let scanPayload;
17
+ let readyPayload;
18
+ let readyTimeout;
19
+ puppet.on('scan', payload => { scanPayload = payload; });
20
+ puppet.on('ready', payload => { readyPayload = payload; });
21
+ puppet.on('logout', _ => {
22
+ readyPayload = undefined;
23
+ if (readyTimeout) {
24
+ clearTimeout(readyTimeout);
25
+ }
26
+ });
27
+ puppet.on('login', _ => {
28
+ scanPayload = undefined;
29
+ readyTimeout = setTimeout(() => {
30
+ // Huan(202110): should we emit ready event here?
31
+ readyPayload && eventStreamManager.grpcEmit(grpcPuppet.EventType.EVENT_TYPE_READY, readyPayload);
32
+ }, 5 * 1000);
33
+ });
34
+ const eventStreamManager = new EventStreamManager(puppet);
35
+ const serializeFileBox = async (fileBox) => {
36
+ /**
37
+ * 1. if the fileBox is one of type `Url`, `QRCode`, `Uuid`, etc,
38
+ * then it can be serialized by `fileBox.toString()`
39
+ * 2. if the fileBox is one of type `Stream`, `Buffer`, `File`, etc,
40
+ * then it need to be convert to type `Uuid`
41
+ * before serialized by `fileBox.toString()`
42
+ */
43
+ const normalizedFileBox = await normalizeFileBoxUuid(FileBoxUuid)(fileBox);
44
+ return JSON.stringify(normalizedFileBox);
45
+ };
46
+ const puppetServerImpl = {
47
+ contactAlias: async (call, callback) => {
48
+ log.verbose('PuppetServiceImpl', 'contactAlias()');
49
+ const id = call.request.getId();
50
+ /**
51
+ * Set
52
+ */
53
+ if (call.request.hasAlias()) {
54
+ try {
55
+ await puppet.contactAlias(id, call.request.getAlias());
56
+ return callback(null, new grpcPuppet.ContactAliasResponse());
57
+ }
58
+ catch (e) {
59
+ return grpcError('contactAlias', e, callback);
60
+ }
61
+ }
62
+ /**
63
+ * Get
64
+ */
65
+ try {
66
+ const alias = await puppet.contactAlias(id);
67
+ const response = new grpcPuppet.ContactAliasResponse();
68
+ response.setAlias(alias);
69
+ return callback(null, response);
70
+ }
71
+ catch (e) {
72
+ return grpcError('contactAlias', e, callback);
73
+ }
74
+ },
75
+ contactAvatar: async (call, callback) => {
76
+ log.verbose('PuppetServiceImpl', 'contactAvatar()');
77
+ const id = call.request.getId();
78
+ /**
79
+ * Set
80
+ */
81
+ try {
82
+ if (call.request.hasFileBox()) {
83
+ const fileBox = FileBoxUuid.fromJSON(call.request.getFileBox());
84
+ await puppet.contactAvatar(id, fileBox);
85
+ return callback(null, new grpcPuppet.ContactAvatarResponse());
86
+ }
87
+ }
88
+ catch (e) {
89
+ return grpcError('contactAvatar', e, callback);
90
+ }
91
+ /**
92
+ * Get
93
+ */
94
+ try {
95
+ const fileBox = await puppet.contactAvatar(id);
96
+ const serializedFileBox = await serializeFileBox(fileBox);
97
+ const response = new grpcPuppet.ContactAvatarResponse();
98
+ response.setFileBox(serializedFileBox);
99
+ return callback(null, response);
100
+ }
101
+ catch (e) {
102
+ return grpcError('contactAvatar', e, callback);
103
+ }
104
+ },
105
+ contactCorporationRemark: async (call, callback) => {
106
+ log.verbose('PuppetServiceImpl', 'contactCorporationRemark()');
107
+ const contactId = call.request.getContactId();
108
+ try {
109
+ await puppet.contactCorporationRemark(contactId, call.request.getCorporationRemark() || null);
110
+ return callback(null, new grpcPuppet.ContactCorporationRemarkResponse());
111
+ }
112
+ catch (e) {
113
+ return grpcError('contactCorporationRemark', e, callback);
114
+ }
115
+ },
116
+ contactDescription: async (call, callback) => {
117
+ log.verbose('PuppetServiceImpl', 'contactDescription()');
118
+ const contactId = call.request.getContactId();
119
+ try {
120
+ const description = call.request.getDescription();
121
+ await puppet.contactDescription(contactId, description || null);
122
+ return callback(null, new grpcPuppet.ContactDescriptionResponse());
123
+ }
124
+ catch (e) {
125
+ return grpcError('contactDescription', e, callback);
126
+ }
127
+ },
128
+ contactList: async (call, callback) => {
129
+ log.verbose('PuppetServiceImpl', 'contactList()');
130
+ void call; // empty request
131
+ try {
132
+ const idList = await puppet.contactList();
133
+ const response = new grpcPuppet.ContactListResponse();
134
+ response.setIdsList(idList);
135
+ return callback(null, response);
136
+ }
137
+ catch (e) {
138
+ return grpcError('contactList', e, callback);
139
+ }
140
+ },
141
+ contactPayload: async (call, callback) => {
142
+ log.verbose('PuppetServiceImpl', 'contactPayload()');
143
+ const id = call.request.getId();
144
+ try {
145
+ const payload = await puppet.contactPayload(id);
146
+ const response = new grpcPuppet.ContactPayloadResponse();
147
+ response.setAddress(payload.address || '');
148
+ response.setAlias(payload.alias || '');
149
+ response.setAvatar(payload.avatar);
150
+ response.setCity(payload.city || '');
151
+ response.setFriend(payload.friend || false);
152
+ response.setGender(payload.gender);
153
+ response.setId(payload.id);
154
+ response.setName(payload.name);
155
+ response.setProvince(payload.province || '');
156
+ response.setSignature(payload.signature || '');
157
+ response.setStar(payload.star || false);
158
+ response.setType(payload.type);
159
+ /**
160
+ * @deprecated `payload.weixin` will be removed in v2.0
161
+ * @link https://github.com/wechaty/grpc/issues/174
162
+ */
163
+ response.setWeixin(payload.handle || payload.weixin || '');
164
+ response.setPhonesList(payload.phone);
165
+ response.setCoworker(payload.coworker || false);
166
+ response.setCorporation(payload.corporation || '');
167
+ response.setTitle(payload.title || '');
168
+ response.setDescription(payload.description || '');
169
+ return callback(null, response);
170
+ }
171
+ catch (e) {
172
+ return grpcError('contactPayload', e, callback);
173
+ }
174
+ },
175
+ contactPhone: async (call, callback) => {
176
+ log.verbose('PuppetServiceImpl', 'contactPhone()');
177
+ try {
178
+ const contactId = call.request.getContactId();
179
+ const phoneList = call.request.getPhonesList();
180
+ await puppet.contactPhone(contactId, phoneList);
181
+ return callback(null, new grpcPuppet.ContactPhoneResponse());
182
+ }
183
+ catch (e) {
184
+ return grpcError('contactPhone', e, callback);
185
+ }
186
+ },
187
+ contactSelfName: async (call, callback) => {
188
+ log.verbose('PuppetServiceImpl', 'contactSelfName()');
189
+ try {
190
+ const name = call.request.getName();
191
+ await puppet.contactSelfName(name);
192
+ return callback(null, new grpcPuppet.ContactSelfNameResponse());
193
+ }
194
+ catch (e) {
195
+ return grpcError('contactSelfName', e, callback);
196
+ }
197
+ },
198
+ contactSelfQRCode: async (call, callback) => {
199
+ log.verbose('PuppetServiceImpl', 'contactSelfName()');
200
+ void call;
201
+ try {
202
+ const qrcode = await puppet.contactSelfQRCode();
203
+ const response = new grpcPuppet.ContactSelfQRCodeResponse();
204
+ response.setQrcode(qrcode);
205
+ return callback(null, response);
206
+ }
207
+ catch (e) {
208
+ return grpcError('contactSelfQRCode', e, callback);
209
+ }
210
+ },
211
+ contactSelfSignature: async (call, callback) => {
212
+ log.verbose('PuppetServiceImpl', 'contactSelfSignature()');
213
+ try {
214
+ const signature = call.request.getSignature();
215
+ await puppet.contactSelfSignature(signature);
216
+ return callback(null, new grpcPuppet.ContactSelfSignatureResponse());
217
+ }
218
+ catch (e) {
219
+ return grpcError('contactSelfSignature', e, callback);
220
+ }
221
+ },
222
+ ding: async (call, callback) => {
223
+ log.verbose('PuppetServiceImpl', 'ding()');
224
+ try {
225
+ const data = call.request.getData();
226
+ await puppet.ding(data);
227
+ return callback(null, new grpcPuppet.DingResponse());
228
+ }
229
+ catch (e) {
230
+ return grpcError('ding', e, callback);
231
+ }
232
+ },
233
+ dirtyPayload: async (call, callback) => {
234
+ log.verbose('PuppetServiceImpl', 'dirtyPayload()');
235
+ try {
236
+ const id = call.request.getId();
237
+ const type = call.request.getType();
238
+ await puppet.dirtyPayload(type, id);
239
+ return callback(null, new grpcPuppet.DirtyPayloadResponse());
240
+ }
241
+ catch (e) {
242
+ return grpcError('puppet.dirtyPayload() rejection: ', e, callback);
243
+ }
244
+ },
245
+ /**
246
+ *
247
+ * Bridge Event Emitter Events
248
+ *
249
+ */
250
+ event: (streamingCall) => {
251
+ log.verbose('PuppetServiceImpl', 'event()');
252
+ if (eventStreamManager.busy()) {
253
+ log.error('PuppetServiceImpl', 'event() there is another event() call not end when receiving a new one.');
254
+ const error = {
255
+ ...new Error('GrpcServerImpl.event() can not call twice.'),
256
+ code: grpc.status.ALREADY_EXISTS,
257
+ details: 'GrpcServerImpl.event() can not call twice.',
258
+ metadata: streamingCall.metadata,
259
+ };
260
+ /**
261
+ * Send error from gRPC server stream:
262
+ * https://github.com/grpc/grpc-node/issues/287#issuecomment-383218225
263
+ *
264
+ * Streaming RPCs
265
+ * - https://grpc.io/docs/tutorials/basic/node/
266
+ * Only one of 'error' or 'end' will be emitted. Finally, the 'status' event fires when the server sends the status.
267
+ */
268
+ streamingCall.emit('error', error);
269
+ return;
270
+ }
271
+ eventStreamManager.start(streamingCall);
272
+ /**
273
+ * If `scanPayload` is not undefined, then we emit it to downstream immediatelly
274
+ */
275
+ if (scanPayload) {
276
+ eventStreamManager.grpcEmit(grpcPuppet.EventType.EVENT_TYPE_SCAN, scanPayload);
277
+ }
278
+ },
279
+ friendshipAccept: async (call, callback) => {
280
+ log.verbose('PuppetServiceImpl', 'friendshipAccept()');
281
+ try {
282
+ const id = call.request.getId();
283
+ await puppet.friendshipAccept(id);
284
+ return callback(null, new grpcPuppet.FriendshipAcceptResponse());
285
+ }
286
+ catch (e) {
287
+ return grpcError('friendshipAccept', e, callback);
288
+ }
289
+ },
290
+ friendshipAdd: async (call, callback) => {
291
+ log.verbose('PuppetServiceImpl', 'friendshipAdd()');
292
+ try {
293
+ const contactId = call.request.getContactId();
294
+ // FIXME: for backward compatibility, need to be removed after all puppet has updated.
295
+ const hello = call.request.getHello();
296
+ const referrer = call.request.getReferrer();
297
+ const friendshipAddOptions = {
298
+ hello,
299
+ ...referrer,
300
+ };
301
+ {
302
+ // Deprecated: will be removed after Dec 31, 2022
303
+ const sourceContactId = call.request.getSourceContactIdStringValueDeprecated()?.getValue();
304
+ const sourceRoomId = call.request.getSourceRoomIdStringValueDeprecated()?.getValue();
305
+ if (sourceContactId) {
306
+ friendshipAddOptions['contactId'] = sourceContactId;
307
+ }
308
+ if (sourceRoomId) {
309
+ friendshipAddOptions['roomId'] = sourceRoomId;
310
+ }
311
+ }
312
+ await puppet.friendshipAdd(contactId, friendshipAddOptions);
313
+ return callback(null, new grpcPuppet.FriendshipAddResponse());
314
+ }
315
+ catch (e) {
316
+ return grpcError('friendshipAdd', e, callback);
317
+ }
318
+ },
319
+ friendshipPayload: async (call, callback) => {
320
+ log.verbose('PuppetServiceImpl', 'friendshipPayload()');
321
+ try {
322
+ const id = call.request.getId();
323
+ const payload = await puppet.friendshipPayload(id);
324
+ const payloadReceive = payload;
325
+ const response = new grpcPuppet.FriendshipPayloadResponse();
326
+ response.setContactId(payload.contactId);
327
+ response.setHello(payload.hello || '');
328
+ response.setId(payload.id);
329
+ response.setScene(payloadReceive.scene || PUPPET.types.FriendshipScene.Unknown);
330
+ response.setStranger(payloadReceive.stranger || '');
331
+ response.setTicket(payloadReceive.ticket);
332
+ response.setType(payload.type);
333
+ return callback(null, response);
334
+ }
335
+ catch (e) {
336
+ return grpcError('friendshipPayload', e, callback);
337
+ }
338
+ },
339
+ friendshipSearchPhone: async (call, callback) => {
340
+ log.verbose('PuppetServiceImpl', 'friendshipSearchPhone()');
341
+ try {
342
+ const phone = call.request.getPhone();
343
+ const contactId = await puppet.friendshipSearchPhone(phone);
344
+ const response = new grpcPuppet.FriendshipSearchPhoneResponse();
345
+ if (contactId) {
346
+ response.setContactId(contactId);
347
+ }
348
+ return callback(null, response);
349
+ }
350
+ catch (e) {
351
+ return grpcError('friendshipSearchPhone', e, callback);
352
+ }
353
+ },
354
+ /**
355
+ * @deprecated use `friendshipSearchHandle()` instead, will be removed in v3.0
356
+ */
357
+ friendshipSearchWeixin: async (call, callback) => {
358
+ log.warn('PuppetServiceImpl', 'friendshipSearchWeixin() is deprecated, use friendshipSearchHandle() instead. %s', new Error().stack);
359
+ return puppetServerImpl.friendshipSearchHandle(call, callback);
360
+ },
361
+ friendshipSearchHandle: async (call, callback) => {
362
+ log.verbose('PuppetServiceImpl', 'friendshipSearchHandle()');
363
+ try {
364
+ /**
365
+ * Huan(202203): rename `getWeixin()` to `getHandle()` in v2.0.0
366
+ * @link https://github.com/wechaty/grpc/issues/174
367
+ */
368
+ const handle = call.request.getWeixin();
369
+ const contactId = await puppet.friendshipSearchHandle(handle);
370
+ const response = new grpcPuppet.FriendshipSearchHandleResponse();
371
+ if (contactId) {
372
+ response.setContactId(contactId);
373
+ }
374
+ return callback(null, response);
375
+ }
376
+ catch (e) {
377
+ return grpcError('friendshipSearchHandle', e, callback);
378
+ }
379
+ },
380
+ logout: async (call, callback) => {
381
+ log.verbose('PuppetServiceImpl', 'logout()');
382
+ void call; // empty arguments
383
+ try {
384
+ await puppet.logout();
385
+ return callback(null, new grpcPuppet.LogoutResponse());
386
+ }
387
+ catch (e) {
388
+ return grpcError('logout', e, callback);
389
+ }
390
+ },
391
+ messageContact: async (call, callback) => {
392
+ log.verbose('PuppetServiceImpl', 'messageContact()');
393
+ try {
394
+ const id = call.request.getId();
395
+ const contactId = await puppet.messageContact(id);
396
+ const response = new grpcPuppet.MessageContactResponse();
397
+ response.setId(contactId);
398
+ return callback(null, response);
399
+ }
400
+ catch (e) {
401
+ return grpcError('messageContact', e, callback);
402
+ }
403
+ },
404
+ messageFile: async (call, callback) => {
405
+ log.verbose('PuppetServiceImpl', 'messageFile()');
406
+ try {
407
+ const id = call.request.getId();
408
+ const fileBox = await puppet.messageFile(id);
409
+ const serializedFileBox = await serializeFileBox(fileBox);
410
+ const response = new grpcPuppet.MessageFileResponse();
411
+ response.setFileBox(serializedFileBox);
412
+ return callback(null, response);
413
+ }
414
+ catch (e) {
415
+ return grpcError('messageFile', e, callback);
416
+ }
417
+ },
418
+ /**
419
+ * @deprecated will be removed after Dec 31, 2022
420
+ */
421
+ messageFileStream: async (call) => {
422
+ log.verbose('PuppetServiceImpl', 'messageFileStream()');
423
+ try {
424
+ const id = call.request.getId();
425
+ const fileBox = await puppet.messageFile(id);
426
+ const response = await packFileBoxToPb(grpcPuppet.MessageFileStreamResponse)(fileBox);
427
+ response.on('error', e => call.destroy(e));
428
+ response.pipe(call); // Huan(202203): FIXME: as unknown as
429
+ }
430
+ catch (e) {
431
+ log.error('PuppetServiceImpl', 'grpcError() messageFileStream() rejection: %s', e && e.message);
432
+ call.destroy(e);
433
+ }
434
+ },
435
+ messageForward: async (call, callback) => {
436
+ log.verbose('PuppetServiceImpl', 'messageForward()');
437
+ try {
438
+ const conversationId = call.request.getConversationId();
439
+ const messageId = call.request.getMessageId();
440
+ const id = await puppet.messageForward(conversationId, messageId);
441
+ const response = new grpcPuppet.MessageForwardResponse();
442
+ if (id) {
443
+ response.setId(id);
444
+ {
445
+ /**
446
+ * Huan(202110): Deprecated: will be removed after Dec 31, 2022
447
+ */
448
+ const idWrapper = new StringValue();
449
+ idWrapper.setValue(id);
450
+ response.setIdStringValueDeprecated(idWrapper);
451
+ }
452
+ }
453
+ return callback(null, response);
454
+ }
455
+ catch (e) {
456
+ return grpcError('messageForward', e, callback);
457
+ }
458
+ },
459
+ messageImage: async (call, callback) => {
460
+ log.verbose('PuppetServiceImpl', 'messageImage()');
461
+ try {
462
+ const id = call.request.getId();
463
+ const type = call.request.getType();
464
+ const fileBox = await puppet.messageImage(id, type);
465
+ const serializedFileBox = await serializeFileBox(fileBox);
466
+ const response = new grpcPuppet.MessageImageResponse();
467
+ response.setFileBox(serializedFileBox);
468
+ return callback(null, response);
469
+ }
470
+ catch (e) {
471
+ return grpcError('messageImage', e, callback);
472
+ }
473
+ },
474
+ /**
475
+ * @deprecated will be removed after Dec 31, 2022
476
+ */
477
+ messageImageStream: async (call) => {
478
+ log.verbose('PuppetServiceImpl', 'messageImageStream()');
479
+ try {
480
+ const id = call.request.getId();
481
+ const type = call.request.getType();
482
+ const fileBox = await puppet.messageImage(id, type); // as number as PUPPET.types.Image
483
+ const response = await packFileBoxToPb(grpcPuppet.MessageImageStreamResponse)(fileBox);
484
+ response.on('error', e => call.destroy(e));
485
+ response.pipe(call); // Huan(202203) FIXME: as unknown as
486
+ }
487
+ catch (e) {
488
+ log.error('PuppetServiceImpl', 'grpcError() messageImageStream() rejection: %s', e.message);
489
+ call.destroy(e);
490
+ }
491
+ },
492
+ messageLocation: async (call, callback) => {
493
+ log.verbose('PuppetServiceImpl', 'messageLocation()');
494
+ try {
495
+ const id = call.request.getId();
496
+ const payload = await puppet.messageLocation(id);
497
+ const response = new grpcPuppet.MessageLocationResponse();
498
+ const pbLocationPayload = new grpcPuppet.LocationPayload();
499
+ pbLocationPayload.setLatitude(payload.latitude);
500
+ pbLocationPayload.setLongitude(payload.longitude);
501
+ pbLocationPayload.setAccuracy(payload.accuracy);
502
+ pbLocationPayload.setAddress(payload.address);
503
+ pbLocationPayload.setName(payload.name);
504
+ response.setLocation(pbLocationPayload);
505
+ return callback(null, response);
506
+ }
507
+ catch (e) {
508
+ return grpcError('messageLocation', e, callback);
509
+ }
510
+ },
511
+ messageMiniProgram: async (call, callback) => {
512
+ log.verbose('PuppetServiceImpl', 'messageMiniProgram()');
513
+ try {
514
+ const id = call.request.getId();
515
+ const payload = await puppet.messageMiniProgram(id);
516
+ const response = new grpcPuppet.MessageMiniProgramResponse();
517
+ const pbMiniProgramPayload = new grpcPuppet.MiniProgramPayload();
518
+ if (payload.appid) {
519
+ pbMiniProgramPayload.setAppid(payload.appid);
520
+ }
521
+ if (payload.description) {
522
+ pbMiniProgramPayload.setDescription(payload.description);
523
+ }
524
+ if (payload.iconUrl) {
525
+ pbMiniProgramPayload.setIconUrl(payload.iconUrl);
526
+ }
527
+ if (payload.pagePath) {
528
+ pbMiniProgramPayload.setPagePath(payload.pagePath);
529
+ }
530
+ if (payload.shareId) {
531
+ pbMiniProgramPayload.setShareId(payload.shareId);
532
+ }
533
+ if (payload.thumbKey) {
534
+ pbMiniProgramPayload.setThumbKey(payload.thumbKey);
535
+ }
536
+ if (payload.thumbUrl) {
537
+ pbMiniProgramPayload.setThumbUrl(payload.thumbUrl);
538
+ }
539
+ if (payload.title) {
540
+ pbMiniProgramPayload.setTitle(payload.title);
541
+ }
542
+ if (payload.username) {
543
+ pbMiniProgramPayload.setUsername(payload.username);
544
+ }
545
+ response.setMiniProgram(pbMiniProgramPayload);
546
+ // Deprecated after Dec 31, 2022
547
+ response.setMiniProgramDeprecated(JSON.stringify(payload));
548
+ return callback(null, response);
549
+ }
550
+ catch (e) {
551
+ return grpcError('messageMiniProgram', e, callback);
552
+ }
553
+ },
554
+ messagePayload: async (call, callback) => {
555
+ log.verbose('PuppetServiceImpl', 'messagePayload()');
556
+ try {
557
+ const id = call.request.getId();
558
+ const payload = await puppet.messagePayload(id);
559
+ const mentionIdList = ('mentionIdList' in payload)
560
+ ? payload.mentionIdList || []
561
+ : [];
562
+ const response = new grpcPuppet.MessagePayloadResponse();
563
+ response.setFilename(payload.filename || '');
564
+ /**
565
+ * Huan(202203):`payload.fromId` is deprecated, will be removed in v2.0
566
+ */
567
+ response.setTalkerId(payload.talkerId || payload.fromId || '');
568
+ response.setId(payload.id);
569
+ response.setMentionIdsList(mentionIdList);
570
+ response.setRoomId(payload.roomId || '');
571
+ response.setText(payload.text || '');
572
+ response.setReceiveTime(timestampFromMilliseconds(payload.timestamp));
573
+ // Deprecated: will be removed after Dec 31, 2022
574
+ response.setTimestampDeprecated(Math.floor(payload.timestamp));
575
+ /**
576
+ * Huan(202203):`payload.toId` is deprecated, will be removed in v2.0
577
+ */
578
+ response.setListenerId(payload.listenerId || payload.toId || '');
579
+ response.setType(payload.type);
580
+ return callback(null, response);
581
+ }
582
+ catch (e) {
583
+ return grpcError('messagePayload', e, callback);
584
+ }
585
+ },
586
+ messageRecall: async (call, callback) => {
587
+ log.verbose('PuppetServiceImpl', 'messageRecall()');
588
+ try {
589
+ const id = call.request.getId();
590
+ const success = await puppet.messageRecall(id);
591
+ const response = new grpcPuppet.MessageRecallResponse();
592
+ response.setSuccess(success);
593
+ return callback(null, response);
594
+ }
595
+ catch (e) {
596
+ return grpcError('messageRecall', e, callback);
597
+ }
598
+ },
599
+ messageSendContact: async (call, callback) => {
600
+ log.verbose('PuppetServiceImpl', 'messageSendContact()');
601
+ try {
602
+ const conversationId = call.request.getConversationId();
603
+ const contactId = call.request.getContactId();
604
+ const messageId = await puppet.messageSendContact(conversationId, contactId);
605
+ const response = new grpcPuppet.MessageSendContactResponse();
606
+ if (messageId) {
607
+ response.setId(messageId);
608
+ {
609
+ /**
610
+ * Huan(202110): Deprecated: will be removed after Dec 31, 2022
611
+ */
612
+ const idWrapper = new StringValue();
613
+ idWrapper.setValue(messageId);
614
+ response.setIdStringValueDeprecated(idWrapper);
615
+ }
616
+ }
617
+ return callback(null, response);
618
+ }
619
+ catch (e) {
620
+ return grpcError('messageSendContact', e, callback);
621
+ }
622
+ },
623
+ messageSendFile: async (call, callback) => {
624
+ log.verbose('PuppetServiceImpl', 'messageSendFile()');
625
+ try {
626
+ const conversationId = call.request.getConversationId();
627
+ const jsonText = call.request.getFileBox();
628
+ const fileBox = FileBoxUuid.fromJSON(jsonText);
629
+ const messageId = await puppet.messageSendFile(conversationId, fileBox);
630
+ const response = new grpcPuppet.MessageSendFileResponse();
631
+ if (messageId) {
632
+ response.setId(messageId);
633
+ {
634
+ /**
635
+ * Huan(202110): Deprecated: will be removed after Dec 31, 2022
636
+ */
637
+ const idWrapper = new StringValue();
638
+ idWrapper.setValue(messageId);
639
+ response.setIdStringValueDeprecated(idWrapper);
640
+ }
641
+ }
642
+ return callback(null, response);
643
+ }
644
+ catch (e) {
645
+ return grpcError('messageSendFile', e, callback);
646
+ }
647
+ },
648
+ /**
649
+ * @deprecated will be removed after Dec 31, 2022
650
+ */
651
+ messageSendFileStream: async (call, callback) => {
652
+ log.verbose('PuppetServiceImpl', 'messageSendFileStream()');
653
+ try {
654
+ const requestArgs = await unpackConversationIdFileBoxArgsFromPb(call);
655
+ const conversationId = requestArgs.conversationId;
656
+ const fileBox = requestArgs.fileBox;
657
+ const messageId = await puppet.messageSendFile(conversationId, fileBox);
658
+ const response = new grpcPuppet.MessageSendFileStreamResponse();
659
+ if (messageId) {
660
+ response.setId(messageId);
661
+ {
662
+ /**
663
+ * Huan(202110): Deprecated: will be removed after Dec 31, 2022
664
+ */
665
+ const idWrapper = new StringValue();
666
+ idWrapper.setValue(messageId);
667
+ response.setIdStringValueDeprecated(idWrapper);
668
+ }
669
+ }
670
+ return callback(null, response);
671
+ }
672
+ catch (e) {
673
+ return grpcError('messageSendFileStream', e, callback);
674
+ }
675
+ },
676
+ messageSendLocation: async (call, callback) => {
677
+ log.verbose('PuppetServiceImpl', 'messageSendLocation()');
678
+ try {
679
+ const conversationId = call.request.getConversationId();
680
+ const pbLocationPayload = call.request.getLocation();
681
+ const payload = {
682
+ accuracy: 0,
683
+ address: 'NOADDRESS',
684
+ latitude: 0,
685
+ longitude: 0,
686
+ name: 'NONAME',
687
+ ...pbLocationPayload,
688
+ };
689
+ const messageId = await puppet.messageSendLocation(conversationId, payload);
690
+ const response = new grpcPuppet.MessageSendLocationResponse();
691
+ if (messageId) {
692
+ response.setId(messageId);
693
+ }
694
+ return callback(null, response);
695
+ }
696
+ catch (e) {
697
+ return grpcError('messageSendLocation', e, callback);
698
+ }
699
+ },
700
+ messageSendMiniProgram: async (call, callback) => {
701
+ log.verbose('PuppetServiceImpl', 'messageSendMiniProgram()');
702
+ try {
703
+ const conversationId = call.request.getConversationId();
704
+ let pbMiniProgramPayload = call.request.getMiniProgram()?.toObject();
705
+ if (!pbMiniProgramPayload) {
706
+ // Deprecated: will be removed after Dec 31, 2022
707
+ const jsonText = call.request.getMiniProgramDeprecated();
708
+ pbMiniProgramPayload = JSON.parse(jsonText);
709
+ }
710
+ const payload = {
711
+ ...pbMiniProgramPayload,
712
+ };
713
+ const messageId = await puppet.messageSendMiniProgram(conversationId, payload);
714
+ const response = new grpcPuppet.MessageSendMiniProgramResponse();
715
+ if (messageId) {
716
+ response.setId(messageId);
717
+ {
718
+ /**
719
+ * Huan(202110): Deprecated: will be removed after Dec 31, 2022
720
+ */
721
+ const idWrapper = new StringValue();
722
+ idWrapper.setValue(messageId);
723
+ response.setIdStringValueDeprecated(idWrapper);
724
+ }
725
+ }
726
+ return callback(null, response);
727
+ }
728
+ catch (e) {
729
+ return grpcError('messageSendMiniProgram', e, callback);
730
+ }
731
+ },
732
+ messageSendText: async (call, callback) => {
733
+ log.verbose('PuppetServiceImpl', 'messageSendText()');
734
+ try {
735
+ const conversationId = call.request.getConversationId();
736
+ const text = call.request.getText();
737
+ const mentionIdList = call.request.getMentionalIdsList();
738
+ const messageId = await puppet.messageSendText(conversationId, text, mentionIdList);
739
+ const response = new grpcPuppet.MessageSendTextResponse();
740
+ if (messageId) {
741
+ response.setId(messageId);
742
+ {
743
+ /**
744
+ * Huan(202110): Deprecated: will be removed after Dec 31, 2022
745
+ */
746
+ const idWrapper = new StringValue();
747
+ idWrapper.setValue(messageId);
748
+ response.setIdStringValueDeprecated(idWrapper);
749
+ }
750
+ }
751
+ return callback(null, response);
752
+ }
753
+ catch (e) {
754
+ return grpcError('messageSendText', e, callback);
755
+ }
756
+ },
757
+ messageSendUrl: async (call, callback) => {
758
+ log.verbose('PuppetServiceImpl', 'messageSendUrl()');
759
+ try {
760
+ const conversationId = call.request.getConversationId();
761
+ let pbUrlLinkPayload = call.request.getUrlLink()?.toObject();
762
+ if (!pbUrlLinkPayload) {
763
+ // Deprecated: will be removed after Dec 31, 2022
764
+ const jsonText = call.request.getUrlLinkDeprecated();
765
+ pbUrlLinkPayload = JSON.parse(jsonText);
766
+ }
767
+ const payload = {
768
+ title: 'NOTITLE',
769
+ url: 'NOURL',
770
+ ...pbUrlLinkPayload,
771
+ };
772
+ const messageId = await puppet.messageSendUrl(conversationId, payload);
773
+ const response = new grpcPuppet.MessageSendUrlResponse();
774
+ if (messageId) {
775
+ response.setId(messageId);
776
+ {
777
+ /**
778
+ * Huan(202110): Deprecated: will be removed after Dec 31, 2022
779
+ */
780
+ const idWrapper = new StringValue();
781
+ idWrapper.setValue(messageId);
782
+ response.setIdStringValueDeprecated(idWrapper);
783
+ }
784
+ }
785
+ return callback(null, response);
786
+ }
787
+ catch (e) {
788
+ return grpcError('messageSendUrl', e, callback);
789
+ }
790
+ },
791
+ messageUrl: async (call, callback) => {
792
+ log.verbose('PuppetServiceImpl', 'messageUrl()');
793
+ try {
794
+ const id = call.request.getId();
795
+ const payload = await puppet.messageUrl(id);
796
+ const response = new grpcPuppet.MessageUrlResponse();
797
+ const pbUrlLinkPayload = new grpcPuppet.UrlLinkPayload();
798
+ pbUrlLinkPayload.setTitle(payload.title);
799
+ pbUrlLinkPayload.setUrl(payload.url);
800
+ if (payload.thumbnailUrl) {
801
+ pbUrlLinkPayload.setThumbnailUrl(payload.thumbnailUrl);
802
+ }
803
+ if (payload.description) {
804
+ pbUrlLinkPayload.setDescription(payload.description);
805
+ }
806
+ response.setUrlLink(pbUrlLinkPayload);
807
+ // Deprecated: will be removed after Dec 31, 2022
808
+ response.setUrlLinkDeprecated(JSON.stringify(payload));
809
+ return callback(null, response);
810
+ }
811
+ catch (e) {
812
+ return grpcError('messageUrl', e, callback);
813
+ }
814
+ },
815
+ roomAdd: async (call, callback) => {
816
+ log.verbose('PuppetServiceImpl', 'roomAdd()');
817
+ try {
818
+ const roomId = call.request.getId();
819
+ const contactId = call.request.getContactId();
820
+ const inviteOnly = call.request.getInviteOnly();
821
+ await puppet.roomAdd(roomId, contactId, inviteOnly);
822
+ return callback(null, new grpcPuppet.RoomAddResponse());
823
+ }
824
+ catch (e) {
825
+ return grpcError('roomAdd', e, callback);
826
+ }
827
+ },
828
+ roomAnnounce: async (call, callback) => {
829
+ log.verbose('PuppetServiceImpl', 'roomAnnounce()');
830
+ try {
831
+ const roomId = call.request.getId();
832
+ /**
833
+ * Set
834
+ */
835
+ if (call.request.hasText()) {
836
+ await puppet.roomAnnounce(roomId, call.request.getText());
837
+ return callback(null, new grpcPuppet.RoomAnnounceResponse());
838
+ }
839
+ /**
840
+ * Get
841
+ */
842
+ const text = await puppet.roomAnnounce(roomId);
843
+ const response = new grpcPuppet.RoomAnnounceResponse();
844
+ response.setText(text);
845
+ return callback(null, response);
846
+ }
847
+ catch (e) {
848
+ return grpcError('roomAnnounce', e, callback);
849
+ }
850
+ },
851
+ roomAvatar: async (call, callback) => {
852
+ log.verbose('PuppetServiceImpl', 'roomAvatar()');
853
+ try {
854
+ const roomId = call.request.getId();
855
+ const fileBox = await puppet.roomAvatar(roomId);
856
+ const serializedFileBox = await serializeFileBox(fileBox);
857
+ const response = new grpcPuppet.RoomAvatarResponse();
858
+ response.setFileBox(serializedFileBox);
859
+ return callback(null, response);
860
+ }
861
+ catch (e) {
862
+ return grpcError('roomAvatar', e, callback);
863
+ }
864
+ },
865
+ roomCreate: async (call, callback) => {
866
+ log.verbose('PuppetServiceImpl', 'roomCreate()');
867
+ try {
868
+ const contactIdList = call.request.getContactIdsList();
869
+ const topic = call.request.getTopic();
870
+ const roomId = await puppet.roomCreate(contactIdList, topic);
871
+ const response = new grpcPuppet.RoomCreateResponse();
872
+ response.setId(roomId);
873
+ return callback(null, response);
874
+ }
875
+ catch (e) {
876
+ return grpcError('roomCreate', e, callback);
877
+ }
878
+ },
879
+ roomDel: async (call, callback) => {
880
+ log.verbose('PuppetServiceImpl', 'roomDel()');
881
+ try {
882
+ const roomId = call.request.getId();
883
+ const contactId = call.request.getContactId();
884
+ await puppet.roomDel(roomId, contactId);
885
+ return callback(null, new grpcPuppet.RoomDelResponse());
886
+ }
887
+ catch (e) {
888
+ return grpcError('roomDel', e, callback);
889
+ }
890
+ },
891
+ roomInvitationAccept: async (call, callback) => {
892
+ log.verbose('PuppetServiceImpl', 'roomInvitationAccept()');
893
+ try {
894
+ const id = call.request.getId();
895
+ await puppet.roomInvitationAccept(id);
896
+ return callback(null, new grpcPuppet.RoomInvitationAcceptResponse());
897
+ }
898
+ catch (e) {
899
+ return grpcError('roomInvitationAccept', e, callback);
900
+ }
901
+ },
902
+ roomInvitationPayload: async (call, callback) => {
903
+ log.verbose('PuppetServiceImpl', 'roomInvitationPayload()');
904
+ try {
905
+ const roomInvitationId = call.request.getId();
906
+ /**
907
+ * Set
908
+ */
909
+ {
910
+ const jsonText = call.request.getPayload();
911
+ if (jsonText) {
912
+ const payload = JSON.parse(jsonText);
913
+ await puppet.roomInvitationPayload(roomInvitationId, payload);
914
+ return callback(null, new grpcPuppet.RoomInvitationPayloadResponse());
915
+ }
916
+ {
917
+ /**
918
+ * Huan(202110): Deprecated: will be removed after Dec 31, 2022
919
+ */
920
+ const payloadWrapper = call.request.getPayloadStringValueDeprecated();
921
+ if (payloadWrapper) {
922
+ const jsonText = payloadWrapper.getValue();
923
+ const payload = JSON.parse(jsonText);
924
+ await puppet.roomInvitationPayload(roomInvitationId, payload);
925
+ return callback(null, new grpcPuppet.RoomInvitationPayloadResponse());
926
+ }
927
+ }
928
+ }
929
+ /**
930
+ * Get
931
+ */
932
+ const payload = await puppet.roomInvitationPayload(roomInvitationId);
933
+ const response = new grpcPuppet.RoomInvitationPayloadResponse();
934
+ response.setAvatar(payload.avatar);
935
+ response.setId(payload.id);
936
+ response.setInvitation(payload.invitation);
937
+ response.setInviterId(payload.inviterId);
938
+ response.setReceiverId(payload.receiverId);
939
+ response.setMemberCount(payload.memberCount);
940
+ response.setMemberIdsList(payload.memberIdList);
941
+ response.setReceiveTime(timestampFromMilliseconds(payload.timestamp));
942
+ {
943
+ // Deprecated: will be removed after Dec 31, 2022
944
+ const deprecated = true;
945
+ void deprecated;
946
+ response.setTimestampUint64Deprecated(Math.floor(payload.timestamp));
947
+ }
948
+ response.setTopic(payload.topic);
949
+ return callback(null, response);
950
+ }
951
+ catch (e) {
952
+ return grpcError('roomInvitationPayload', e, callback);
953
+ }
954
+ },
955
+ roomList: async (call, callback) => {
956
+ log.verbose('PuppetServiceImpl', 'roomList()');
957
+ void call;
958
+ try {
959
+ const roomIdList = await puppet.roomList();
960
+ const response = new grpcPuppet.RoomListResponse();
961
+ response.setIdsList(roomIdList);
962
+ return callback(null, response);
963
+ }
964
+ catch (e) {
965
+ return grpcError('roomList', e, callback);
966
+ }
967
+ },
968
+ roomMemberList: async (call, callback) => {
969
+ log.verbose('PuppetServiceImpl', 'roomMemberList()');
970
+ try {
971
+ const roomId = call.request.getId();
972
+ const roomMemberIdList = await puppet.roomMemberList(roomId);
973
+ const response = new grpcPuppet.RoomMemberListResponse();
974
+ response.setMemberIdsList(roomMemberIdList);
975
+ return callback(null, response);
976
+ }
977
+ catch (e) {
978
+ return grpcError('roomMemberList', e, callback);
979
+ }
980
+ },
981
+ roomMemberPayload: async (call, callback) => {
982
+ log.verbose('PuppetServiceImpl', 'roomMemberPayload()');
983
+ try {
984
+ const roomId = call.request.getId();
985
+ const memberId = call.request.getMemberId();
986
+ const payload = await puppet.roomMemberPayload(roomId, memberId);
987
+ const response = new grpcPuppet.RoomMemberPayloadResponse();
988
+ response.setAvatar(payload.avatar);
989
+ response.setId(payload.id);
990
+ response.setInviterId(payload.inviterId || '');
991
+ response.setName(payload.name);
992
+ response.setRoomAlias(payload.roomAlias || '');
993
+ return callback(null, response);
994
+ }
995
+ catch (e) {
996
+ return grpcError('roomMemberPayload', e, callback);
997
+ }
998
+ },
999
+ roomPayload: async (call, callback) => {
1000
+ log.verbose('PuppetServiceImpl', 'roomPayload()');
1001
+ try {
1002
+ const roomId = call.request.getId();
1003
+ const payload = await puppet.roomPayload(roomId);
1004
+ const response = new grpcPuppet.RoomPayloadResponse();
1005
+ response.setAdminIdsList(payload.adminIdList);
1006
+ response.setAvatar(payload.avatar || '');
1007
+ response.setHandle(payload.handle || '');
1008
+ response.setId(payload.id);
1009
+ response.setMemberIdsList(payload.memberIdList);
1010
+ response.setOwnerId(payload.ownerId || '');
1011
+ response.setTopic(payload.topic);
1012
+ return callback(null, response);
1013
+ }
1014
+ catch (e) {
1015
+ return grpcError('roomPayload', e, callback);
1016
+ }
1017
+ },
1018
+ roomQRCode: async (call, callback) => {
1019
+ log.verbose('PuppetServiceImpl', 'roomQRCode()');
1020
+ try {
1021
+ const roomId = call.request.getId();
1022
+ const qrcode = await puppet.roomQRCode(roomId);
1023
+ const response = new grpcPuppet.RoomQRCodeResponse();
1024
+ response.setQrcode(qrcode);
1025
+ return callback(null, response);
1026
+ }
1027
+ catch (e) {
1028
+ return grpcError('roomQRCode', e, callback);
1029
+ }
1030
+ },
1031
+ roomQuit: async (call, callback) => {
1032
+ log.verbose('PuppetServiceImpl', 'roomQuit()');
1033
+ try {
1034
+ const roomId = call.request.getId();
1035
+ await puppet.roomQuit(roomId);
1036
+ return callback(null, new grpcPuppet.RoomQuitResponse());
1037
+ }
1038
+ catch (e) {
1039
+ return grpcError('roomQuit', e, callback);
1040
+ }
1041
+ },
1042
+ roomTopic: async (call, callback) => {
1043
+ log.verbose('PuppetServiceImpl', 'roomTopic()');
1044
+ try {
1045
+ const roomId = call.request.getId();
1046
+ /**
1047
+ * Set
1048
+ */
1049
+ if (call.request.hasTopic()) {
1050
+ await puppet.roomTopic(roomId, call.request.getTopic());
1051
+ return callback(null, new grpcPuppet.RoomTopicResponse());
1052
+ }
1053
+ /**
1054
+ * Get
1055
+ */
1056
+ const topic = await puppet.roomTopic(roomId);
1057
+ const response = new grpcPuppet.RoomTopicResponse();
1058
+ response.setTopic(topic);
1059
+ return callback(null, response);
1060
+ }
1061
+ catch (e) {
1062
+ return grpcError('roomTopic', e, callback);
1063
+ }
1064
+ },
1065
+ start: async (call, callback) => {
1066
+ log.verbose('PuppetServiceImpl', 'start()');
1067
+ void call;
1068
+ try {
1069
+ await timeoutPromise(puppet.start(), 15 * 1000);
1070
+ return callback(null, new grpcPuppet.StartResponse());
1071
+ }
1072
+ catch (e) {
1073
+ return grpcError('start', e, callback);
1074
+ }
1075
+ },
1076
+ stop: async (call, callback) => {
1077
+ log.verbose('PuppetServiceImpl', 'stop()');
1078
+ void call;
1079
+ try {
1080
+ if (eventStreamManager.busy()) {
1081
+ eventStreamManager.stop();
1082
+ }
1083
+ else {
1084
+ log.error('PuppetServiceImpl', 'stop() eventStreamManager is not busy?');
1085
+ }
1086
+ readyPayload = undefined;
1087
+ await timeoutPromise(puppet.stop(), 15 * 1000);
1088
+ return callback(null, new grpcPuppet.StopResponse());
1089
+ }
1090
+ catch (e) {
1091
+ return grpcError('stop', e, callback);
1092
+ }
1093
+ },
1094
+ tagContactAdd: async (call, callback) => {
1095
+ log.verbose('PuppetServiceImpl', 'tagContactAdd()');
1096
+ try {
1097
+ const tagId = call.request.getId();
1098
+ const contactId = call.request.getContactId();
1099
+ await puppet.tagContactAdd(tagId, contactId);
1100
+ return callback(null, new grpcPuppet.TagContactAddResponse());
1101
+ }
1102
+ catch (e) {
1103
+ return grpcError('tagContactAdd', e, callback);
1104
+ }
1105
+ },
1106
+ tagContactDelete: async (call, callback) => {
1107
+ log.verbose('PuppetServiceImpl', 'tagContactDelete()');
1108
+ try {
1109
+ const tagId = call.request.getId();
1110
+ await puppet.tagContactDelete(tagId);
1111
+ return callback(null, new grpcPuppet.TagContactDeleteResponse());
1112
+ }
1113
+ catch (e) {
1114
+ return grpcError('tagContactDelete', e, callback);
1115
+ }
1116
+ },
1117
+ tagContactList: async (call, callback) => {
1118
+ log.verbose('PuppetServiceImpl', 'tagContactList()');
1119
+ try {
1120
+ const contactId = call.request.getContactId();
1121
+ /**
1122
+ * for a specific contact
1123
+ */
1124
+ if (contactId) {
1125
+ const tagIdList = await puppet.tagContactList(contactId);
1126
+ const response = new grpcPuppet.TagContactListResponse();
1127
+ response.setIdsList(tagIdList);
1128
+ return callback(null, new grpcPuppet.TagContactListResponse());
1129
+ }
1130
+ {
1131
+ /**
1132
+ * Huan(202110): Deprecated: will be removed after Dec 31, 2022
1133
+ */
1134
+ const contactIdWrapper = call.request.getContactIdStringValueDeprecated();
1135
+ if (contactIdWrapper) {
1136
+ const contactId = contactIdWrapper.getValue();
1137
+ const tagIdList = await puppet.tagContactList(contactId);
1138
+ const response = new grpcPuppet.TagContactListResponse();
1139
+ response.setIdsList(tagIdList);
1140
+ return callback(null, new grpcPuppet.TagContactListResponse());
1141
+ }
1142
+ }
1143
+ /**
1144
+ * get all tags for all contact
1145
+ */
1146
+ const tagIdList = await puppet.tagContactList();
1147
+ const response = new grpcPuppet.TagContactListResponse();
1148
+ response.setIdsList(tagIdList);
1149
+ return callback(null, response);
1150
+ }
1151
+ catch (e) {
1152
+ return grpcError('tagContactList', e, callback);
1153
+ }
1154
+ },
1155
+ tagContactRemove: async (call, callback) => {
1156
+ log.verbose('PuppetServiceImpl', 'tagContactRemove()');
1157
+ try {
1158
+ const tagId = call.request.getId();
1159
+ const contactId = call.request.getContactId();
1160
+ await puppet.tagContactRemove(tagId, contactId);
1161
+ return callback(null, new grpcPuppet.TagContactRemoveResponse());
1162
+ }
1163
+ catch (e) {
1164
+ return grpcError('tagContactRemove', e, callback);
1165
+ }
1166
+ },
1167
+ version: async (call, callback) => {
1168
+ log.verbose('PuppetServiceImpl', 'version() v%s', puppet.version());
1169
+ void call;
1170
+ try {
1171
+ const version = puppet.version();
1172
+ const response = new grpcPuppet.VersionResponse();
1173
+ response.setVersion(version);
1174
+ return callback(null, response);
1175
+ }
1176
+ catch (e) {
1177
+ return grpcError('version', e, callback);
1178
+ }
1179
+ },
1180
+ download: async (call) => {
1181
+ log.verbose('PuppetServiceImpl', 'download()');
1182
+ const uuid = call.request.getId();
1183
+ const fileBox = FileBoxUuid.fromUuid(uuid, { name: 'uuid.dat' });
1184
+ fileBox
1185
+ .pipe(chunkEncoder(grpcPuppet.DownloadResponse))
1186
+ .pipe(call); // Huan(202203) FIXME: as unknown as
1187
+ },
1188
+ upload: async (call, callback) => {
1189
+ log.verbose('PuppetServiceImpl', 'upload()');
1190
+ const fileBox = FileBoxUuid.fromStream(call.pipe(chunkDecoder()), 'uuid.dat');
1191
+ const uuid = await fileBox.toUuid();
1192
+ const response = new grpcPuppet.UploadResponse();
1193
+ response.setId(uuid);
1194
+ return callback(null, response);
1195
+ },
1196
+ };
1197
+ return puppetServerImpl;
1198
+ }
1199
+ export { puppetImplementation };
1200
+ //# sourceMappingURL=puppet-implementation.js.map