@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,87 @@
1
+ import { FileBox } from 'file-box'
2
+ import type { FileBoxInterface } from 'file-box'
3
+ import { PassThrough } from 'stream'
4
+ import {
5
+ Readable,
6
+ Transform,
7
+ } from 'stronger-typed-streams'
8
+
9
+ import { puppet } from '@juzi/wechaty-grpc'
10
+
11
+ import { nextData } from './next-data.js'
12
+
13
+ /**
14
+ * @deprecated Will be removed after Dec 31, 2022
15
+ */
16
+ const decoder = () => new Transform<puppet.FileBoxChunk, any>({
17
+ objectMode: true,
18
+ transform: (chunk: puppet.FileBoxChunk, _: any, callback: any) => {
19
+ if (!chunk.hasData()) {
20
+ callback(new Error('no data'))
21
+ return
22
+ }
23
+ const data = chunk.getData()
24
+ callback(null, data)
25
+ },
26
+ })
27
+
28
+ /**
29
+ * @deprecated Will be removed after Dec 31, 2022
30
+ */
31
+ async function unpackFileBoxFromChunk (
32
+ stream: Readable<puppet.FileBoxChunk>,
33
+ ): Promise<FileBox> {
34
+ const chunk = await nextData(stream)
35
+ if (!chunk.hasName()) {
36
+ throw new Error('no name')
37
+ }
38
+ const fileName = chunk.getName()
39
+
40
+ const fileStream = new PassThrough({ objectMode: true })
41
+ const transformedStream = stream.pipe(decoder())
42
+ transformedStream.pipe(fileStream)
43
+ stream.on('error', e => fileStream.emit('error', e))
44
+ transformedStream.on('error', e => fileStream.emit('error', e))
45
+
46
+ const fileBox = FileBox.fromStream(fileStream, fileName)
47
+
48
+ return fileBox
49
+ }
50
+
51
+ /**
52
+ * @deprecated Will be removed after Dec 31, 2022
53
+ */
54
+ const encoder = () => new Transform<any, puppet.FileBoxChunk>({
55
+ objectMode: true,
56
+ transform: (chunk: any, _: any, callback: any) => {
57
+ const fileBoxChunk = new puppet.FileBoxChunk()
58
+ fileBoxChunk.setData(chunk)
59
+ callback(null, fileBoxChunk)
60
+ },
61
+ })
62
+
63
+ /**
64
+ * @deprecated Will be removed after Dec 31, 2022
65
+ */
66
+ async function packFileBoxToChunk (
67
+ fileBox: FileBoxInterface,
68
+ ): Promise<Readable<puppet.FileBoxChunk>> {
69
+ const stream = new PassThrough({ objectMode: true })
70
+
71
+ const chunk = new puppet.FileBoxChunk()
72
+ chunk.setName(fileBox.name)
73
+
74
+ // FIXME: Huan(202010) write might return false
75
+ stream.write(chunk)
76
+
77
+ fileBox
78
+ .pipe(encoder())
79
+ .pipe(stream)
80
+
81
+ return stream
82
+ }
83
+
84
+ export {
85
+ unpackFileBoxFromChunk,
86
+ packFileBoxToChunk,
87
+ }
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env -S node --no-warnings --loader ts-node/esm
2
+
3
+ import { test } from 'tstest'
4
+
5
+ import { FileBox } from 'file-box'
6
+
7
+ import {
8
+ puppet,
9
+ } from '@juzi/wechaty-grpc'
10
+
11
+ import {
12
+ packFileBoxToPb,
13
+ unpackFileBoxFromPb,
14
+ } from './file-box-pb.js'
15
+
16
+ test('packFileBoxToPb()', async t => {
17
+ const FILE_BOX_DATA = 'test'
18
+ const FILE_BOX_NAME = 'test.dat'
19
+
20
+ const fileBox = FileBox.fromBuffer(
21
+ Buffer.from(FILE_BOX_DATA),
22
+ FILE_BOX_NAME,
23
+ )
24
+
25
+ const pb = await packFileBoxToPb(puppet.MessageFileStreamResponse)(fileBox)
26
+ const restoredFileBox = await unpackFileBoxFromPb(pb)
27
+ t.ok(restoredFileBox instanceof FileBox, 'should get an instance of FileBOX')
28
+
29
+ t.equal(restoredFileBox.name, fileBox.name, 'should get the right file box name')
30
+ t.equal(await restoredFileBox.toBase64(), await fileBox.toBase64(), 'should get the right file box content')
31
+ })
@@ -0,0 +1,41 @@
1
+ import type { FileBoxInterface } from 'file-box'
2
+ import type { Readable } from 'stronger-typed-streams'
3
+
4
+ import {
5
+ packFileBoxToChunk,
6
+ unpackFileBoxFromChunk,
7
+ } from './file-box-chunk.js'
8
+ import {
9
+ packFileBoxChunkToPb,
10
+ unpackFileBoxChunkFromPb,
11
+ } from './chunk-pb.js'
12
+ import type { FileBoxPb } from './file-box-pb.type.js'
13
+
14
+ /**
15
+ * @deprecated Will be removed after Dec 31, 2022
16
+ */
17
+ function packFileBoxToPb<T extends FileBoxPb> (
18
+ PbConstructor: { new(): T },
19
+ ) {
20
+ return async (fileBox: FileBoxInterface) => {
21
+ const fileBoxChunkStream = await packFileBoxToChunk(fileBox)
22
+ const pbFileBox = packFileBoxChunkToPb(PbConstructor)(fileBoxChunkStream)
23
+ return pbFileBox
24
+ }
25
+ }
26
+
27
+ /**
28
+ * @deprecated Will be removed after Dec 31, 2022
29
+ */
30
+ async function unpackFileBoxFromPb<T extends FileBoxPb> (
31
+ pbStream: Readable<T>,
32
+ ): Promise<FileBoxInterface> {
33
+ const fileBoxChunkStream = unpackFileBoxChunkFromPb(pbStream)
34
+ const fileBox = await unpackFileBoxFromChunk(fileBoxChunkStream)
35
+ return fileBox
36
+ }
37
+
38
+ export {
39
+ packFileBoxToPb,
40
+ unpackFileBoxFromPb,
41
+ }
@@ -0,0 +1,16 @@
1
+ import type { puppet } from '@juzi/wechaty-grpc'
2
+
3
+ /**
4
+ * Any Protocol Buffer message that include a FileBoxChunk
5
+ */
6
+ export interface FileBoxPb {
7
+ hasFileBoxChunk(): boolean
8
+ getFileBoxChunk(): puppet.FileBoxChunk | undefined
9
+ setFileBoxChunk(value?: puppet.FileBoxChunk): void
10
+ }
11
+
12
+ export interface ConversationIdFileBoxPb extends FileBoxPb {
13
+ hasConversationId(): boolean
14
+ getConversationId(): string
15
+ setConversationId(value: string): void
16
+ }
@@ -0,0 +1,8 @@
1
+ export {
2
+ packConversationIdFileBoxToPb,
3
+ unpackConversationIdFileBoxArgsFromPb,
4
+ } from './conversation-id-file-box.js'
5
+ export {
6
+ packFileBoxToPb,
7
+ unpackFileBoxFromPb,
8
+ } from './file-box-pb.js'
@@ -0,0 +1,35 @@
1
+ import type {
2
+ Readable,
3
+ } from 'stronger-typed-streams'
4
+
5
+ /**
6
+ * windmemory(20201027): generating fileBox data in server side might take longer.
7
+ * Set to 60 sec to avoid unexpected timeout.
8
+ */
9
+ const TIMEOUT = 60 * 1000
10
+
11
+ /**
12
+ * @deprecated Will be removed after Dec 31, 2022
13
+ */
14
+ async function nextData<T> (
15
+ stream: Readable<T>,
16
+ ): Promise<T> {
17
+ const chunk = await new Promise<T>((resolve, reject) => {
18
+ const timer = setTimeout(reject, TIMEOUT)
19
+ stream.once('data', chunk => {
20
+ stream.pause()
21
+ clearTimeout(timer)
22
+
23
+ resolve(chunk)
24
+ })
25
+ stream.once('error', reject)
26
+
27
+ })
28
+
29
+ stream.resume()
30
+ return chunk
31
+ }
32
+
33
+ export {
34
+ nextData,
35
+ }
@@ -0,0 +1,24 @@
1
+ import {
2
+ FileBox,
3
+ FileBoxType,
4
+ } from 'file-box'
5
+ import type {
6
+ FileBoxInterface,
7
+ } from 'file-box'
8
+
9
+ /**
10
+ * @deprecated Will be removed after Dec 31, 2022
11
+ */
12
+ export const serializeFileBox = async (fileBox: FileBoxInterface): Promise<string> => {
13
+ const serializableFileBoxTypes = [
14
+ FileBoxType.Base64,
15
+ FileBoxType.Url,
16
+ FileBoxType.QRCode,
17
+ ]
18
+ if (serializableFileBoxTypes.includes(fileBox.type)) {
19
+ return JSON.stringify(fileBox)
20
+ }
21
+ const base64 = await fileBox.toBase64()
22
+ const name = fileBox.name
23
+ return JSON.stringify(FileBox.fromBase64(base64, name))
24
+ }
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env -S node --no-warnings --loader ts-node/esm
2
+
3
+ // tslint:disable:no-shadowed-variable
4
+ import { test } from 'tstest'
5
+
6
+ import { WECHATY_PUPPET_SERVICE_AUTHORITY } from './env-vars.js'
7
+
8
+ /**
9
+ * Huan(202108): compatible with old env var
10
+ * See: https://github.com/wechaty/wechaty-puppet-service/issues/156
11
+ *
12
+ * This feature will be removed after Dec 31, 2022
13
+ */
14
+ test('WECHATY_PUPPET_SERVICE_AUTHORITY()', async t => {
15
+ const EXPECTED_AUTHORITY = 'api.wechaty.io'
16
+ const oldValue = process.env['WECHATY_SERVICE_DISCOVERY_ENDPOINT']
17
+ process.env['WECHATY_SERVICE_DISCOVERY_ENDPOINT'] = `https://${EXPECTED_AUTHORITY}`
18
+
19
+ const result = WECHATY_PUPPET_SERVICE_AUTHORITY()
20
+ t.equal(result, EXPECTED_AUTHORITY, 'should extract authority')
21
+
22
+ process.env['WECHATY_SERVICE_DISCOVERY_ENDPOINT'] = oldValue
23
+ })
@@ -0,0 +1,100 @@
1
+ import { log } from '@juzi/wechaty-puppet'
2
+
3
+ // Huan(202011): use a function to return the value in time.
4
+ const WECHATY_PUPPET_SERVICE_TOKEN: (token?: string) => string = token => {
5
+ if (token) {
6
+ return token
7
+ }
8
+
9
+ if (process.env['WECHATY_PUPPET_SERVICE_TOKEN']) {
10
+ return process.env['WECHATY_PUPPET_SERVICE_TOKEN']
11
+ }
12
+
13
+ /**
14
+ * Huan(202102): remove this deprecated warning after Dec 31, 2021
15
+ */
16
+ if (process.env['WECHATY_PUPPET_HOSTIE_TOKEN']) {
17
+ log.warn('wechaty-puppet-service', [
18
+ '',
19
+ 'WECHATY_PUPPET_HOSTIE_TOKEN has been deprecated,',
20
+ 'please use WECHATY_PUPPET_SERVICE_TOKEN instead.',
21
+ 'See: https://github.com/wechaty/wechaty-puppet-service/issues/118',
22
+ '',
23
+ ].join(' '))
24
+ return process.env['WECHATY_PUPPET_HOSTIE_TOKEN']
25
+ }
26
+
27
+ const tokenNotFoundError = 'wechaty-puppet-service: WECHATY_PUPPET_SERVICE_TOKEN not found'
28
+
29
+ console.error([
30
+ '',
31
+ tokenNotFoundError,
32
+ '(save token to WECHATY_PUPPET_SERVICE_TOKEN env var or pass it to puppet options is required.).',
33
+ '',
34
+ 'To learn how to get Wechaty Puppet Service Token,',
35
+ 'please visit <https://wechaty.js.org/docs/puppet-services/>',
36
+ 'to see our Wechaty Puppet Service Providers.',
37
+ '',
38
+ ].join('\n'))
39
+
40
+ throw new Error(tokenNotFoundError)
41
+ }
42
+
43
+ const WECHATY_PUPPET_SERVICE_ENDPOINT = (endpoint?: string) => {
44
+ if (endpoint) {
45
+ return endpoint
46
+ }
47
+
48
+ if (process.env['WECHATY_PUPPET_SERVICE_ENDPOINT']) {
49
+ return process.env['WECHATY_PUPPET_SERVICE_ENDPOINT']
50
+ }
51
+ /**
52
+ * Huan(202102): remove this deprecated warning after Dec 31, 2021
53
+ */
54
+ if (process.env['WECHATY_PUPPET_HOSTIE_ENDPOINT']) {
55
+ log.warn('wechaty-puppet-service', [
56
+ '',
57
+ 'WECHATY_PUPPET_HOSTIE_ENDPOINT has been deprecated,',
58
+ 'please use WECHATY_PUPPET_SERVICE_ENDPOINT instead.',
59
+ 'See: https://github.com/wechaty/wechaty-puppet-service/issues/118',
60
+ '',
61
+ ].join(' '))
62
+ return process.env['WECHATY_PUPPET_HOSTIE_ENDPOINT']
63
+ }
64
+
65
+ return undefined
66
+ }
67
+
68
+ const WECHATY_PUPPET_SERVICE_AUTHORITY = (authority?: string) => {
69
+ if (authority) {
70
+ return authority
71
+ }
72
+
73
+ authority = process.env['WECHATY_PUPPET_SERVICE_AUTHORITY']
74
+ if (authority) {
75
+ return authority
76
+ }
77
+
78
+ const deprecatedDiscoveryEndpoint = process.env['WECHATY_SERVICE_DISCOVERY_ENDPOINT']
79
+ if (deprecatedDiscoveryEndpoint) {
80
+ console.error([
81
+ 'Environment variable WECHATY_SERVICE_DISCOVERY_ENDPOINT is deprecated,',
82
+ 'Use WECHATY_PUPPET_SERVICE_AUTHORITY instead.',
83
+ 'See: https://github.com/wechaty/wechaty-puppet-service/issues/156',
84
+ ].join('\n'))
85
+ return deprecatedDiscoveryEndpoint
86
+ .replace(/^https?:\/\//, '')
87
+ .replace(/\/*$/, '')
88
+ }
89
+
90
+ /**
91
+ * Huan(202108): Wechaty community default authority
92
+ */
93
+ return 'api.chatie.io'
94
+ }
95
+
96
+ export {
97
+ WECHATY_PUPPET_SERVICE_ENDPOINT,
98
+ WECHATY_PUPPET_SERVICE_TOKEN,
99
+ WECHATY_PUPPET_SERVICE_AUTHORITY,
100
+ }
@@ -0,0 +1,19 @@
1
+ import {
2
+ puppet,
3
+ } from '@juzi/wechaty-grpc'
4
+
5
+ /**
6
+ * Huan(202003):
7
+ * @chatie/GRPC proto gen TS does not generate the ENUM type with reverse mapping.
8
+ * So we need to do it by ourselves:
9
+ * 1. define the EventTypeRev, and
10
+ * 2. loop EventType to fill it.
11
+ */
12
+ export const EventTypeRev = {} as {
13
+ [key: number]: string,
14
+ }
15
+
16
+ for (const key in puppet.EventType) {
17
+ const val = puppet.EventType[key as keyof puppet.EventTypeMap]
18
+ EventTypeRev[val] = key
19
+ }
@@ -0,0 +1,11 @@
1
+ import {
2
+ uuidifyFileBoxGrpc,
3
+ } from './uuidify-file-box-grpc.js'
4
+ import {
5
+ normalizeFileBoxUuid,
6
+ } from './normalize-filebox.js'
7
+
8
+ export {
9
+ normalizeFileBoxUuid,
10
+ uuidifyFileBoxGrpc,
11
+ }
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env -S node --no-warnings --loader ts-node/esm
2
+
3
+ import { test } from 'tstest'
4
+ import { FileBox } from 'file-box'
5
+
6
+ import { canPassthrough } from './normalize-filebox.js'
7
+
8
+ const kbFileBox = (size: number) => FileBox.fromBuffer(Buffer.from(
9
+ new Int8Array(size * 1024).fill(0),
10
+ ), size + 'KB.txt')
11
+
12
+ test('canPassthrough() size threshold', async t => {
13
+ t.ok(canPassthrough(kbFileBox(16)), 'should passthrough 16KB')
14
+ t.notOk(canPassthrough(kbFileBox(32)), 'should not passthrough 32KB')
15
+ })
16
+
17
+ test('canPassthrough(): always true for green types', async t => {
18
+ const URL = 'https://example.com'
19
+ const QRCODE = 'qrcode'
20
+ const UUID = '12345678-1234-5678-1234-567812345678'
21
+
22
+ t.ok(canPassthrough(FileBox.fromUrl(URL)), 'should passthrough Url')
23
+ t.ok(canPassthrough(FileBox.fromQRCode(QRCODE)), 'should passthrough QRCode')
24
+ t.ok(canPassthrough(FileBox.fromUuid(UUID)), 'should passthrough UUID')
25
+ })
26
+
27
+ test('canPassthrough(): always false for red types', async t => {
28
+ const streamFileBox = FileBox.fromStream(
29
+ await FileBox.fromQRCode('qr').toStream(),
30
+ )
31
+ const localFileBox = FileBox.fromFile('tests/fixtures/smoke-testing.ts')
32
+
33
+ t.notOk(canPassthrough(streamFileBox), 'should not passthrough Stream')
34
+ t.notOk(canPassthrough(localFileBox), 'should not passthrough File')
35
+ })
36
+
37
+ test('canPassthrough(): will depend on the size for yellow types', async t => {
38
+ const bufferFileBox = FileBox.fromBuffer(Buffer.from('buf'))
39
+ const base64FileBox = FileBox.fromBase64(Buffer.from('buf').toString('base64'))
40
+
41
+ t.ok(canPassthrough(bufferFileBox), 'should not passthrough small Buffer')
42
+ t.ok(canPassthrough(base64FileBox), 'should not passthrough small Base64')
43
+
44
+ /**
45
+ * TODO: add the large size test which will over the threshold
46
+ */
47
+ })
@@ -0,0 +1,90 @@
1
+ import type {
2
+ FileBox,
3
+ } from 'file-box'
4
+ import {
5
+ FileBoxType,
6
+ FileBoxInterface,
7
+ } from 'file-box'
8
+
9
+ /**
10
+ * Huan(202110): for testing propose, use 20KB as the threshold
11
+ * after stable we should use a value between 64KB to 256KB as the threshold
12
+ */
13
+ const PASS_THROUGH_THRESHOLD_BYTES = 20 * 1024 // 20KB
14
+
15
+ /**
16
+ * 1. Green:
17
+ * Can be serialized directly
18
+ */
19
+ const greenFileBoxTypes = [
20
+ FileBoxType.Url,
21
+ FileBoxType.Uuid,
22
+ FileBoxType.QRCode,
23
+ ]
24
+ /**
25
+ * 2. Yellow:
26
+ * Can be serialized directly, if the size is less than a threshold
27
+ * if it's bigger than the threshold,
28
+ * then it should be convert to a UUID file box before send out
29
+ */
30
+ const yellowFileBoxTypes = [
31
+ FileBoxType.Buffer,
32
+ FileBoxType.Base64,
33
+ ]
34
+
35
+ const canPassthrough = (fileBox: FileBoxInterface) => {
36
+ /**
37
+ * 1. Green types: YES
38
+ */
39
+ if (greenFileBoxTypes.includes(fileBox.type)) {
40
+ return true
41
+ }
42
+
43
+ /**
44
+ * 2. Red types: NO
45
+ */
46
+ if (!yellowFileBoxTypes.includes(fileBox.type)) {
47
+ return false
48
+ }
49
+
50
+ /**
51
+ * 3. Yellow types: CHECK size
52
+ */
53
+ const size = fileBox.size
54
+ if (size < 0) {
55
+ // 1. Size unknown: NO
56
+ return false
57
+ } else if (size > PASS_THROUGH_THRESHOLD_BYTES) {
58
+ // 2. Size: bigger than threshold: NO
59
+ return false
60
+ } else {
61
+ // 3. Size: smaller than threshold: YES
62
+ return true
63
+ }
64
+
65
+ }
66
+
67
+ const normalizeFileBoxUuid = (FileBoxUuid: typeof FileBox) => async (fileBox: FileBoxInterface) => {
68
+ if (canPassthrough(fileBox)) {
69
+ return fileBox
70
+ }
71
+
72
+ const stream = await fileBox.toStream()
73
+
74
+ const uuid = await FileBoxUuid
75
+ .fromStream(stream, fileBox.name)
76
+ .toUuid()
77
+
78
+ const uuidFileBox = FileBoxUuid.fromUuid(uuid, {
79
+ md5 : fileBox.md5,
80
+ name : fileBox.name,
81
+ size : fileBox.size,
82
+ })
83
+
84
+ return uuidFileBox
85
+ }
86
+
87
+ export {
88
+ canPassthrough,
89
+ normalizeFileBoxUuid,
90
+ }
@@ -0,0 +1,83 @@
1
+ import type {
2
+ Readable,
3
+ Writable,
4
+ } from 'stream'
5
+
6
+ import {
7
+ FileBox,
8
+ UuidLoader,
9
+ UuidSaver,
10
+ } from 'file-box'
11
+ import {
12
+ chunkDecoder,
13
+ chunkEncoder,
14
+ puppet as pbPuppet,
15
+ } from '@juzi/wechaty-grpc'
16
+ import {
17
+ cloneClass,
18
+ Constructor,
19
+ } from 'clone-class'
20
+
21
+ const uuidResolverGrpc: (grpcClient: () => pbPuppet.PuppetClient) => UuidLoader = (
22
+ grpcClient,
23
+ ) => async function uuidResolver (
24
+ this : FileBox,
25
+ uuid : string,
26
+ ) {
27
+ const request = new pbPuppet.DownloadRequest()
28
+ request.setId(uuid)
29
+
30
+ const response = grpcClient().download(request)
31
+
32
+ const stream = response
33
+ .pipe(chunkDecoder())
34
+
35
+ return stream
36
+ }
37
+
38
+ const uuidRegisterGrpc: (grpcClient: () => pbPuppet.PuppetClient) => UuidSaver = (
39
+ grpcClient,
40
+ ) => async function uuidRegister (
41
+ this : FileBox,
42
+ stream : Readable,
43
+ ) {
44
+ const response = await new Promise<pbPuppet.UploadResponse>((resolve, reject) => {
45
+ const request = grpcClient().upload((err, response) => {
46
+ if (err) {
47
+ reject(err)
48
+ } else {
49
+ resolve(response)
50
+ }
51
+ }) as unknown as Writable // Huan(202203) FIXME: as unknown as
52
+
53
+ stream
54
+ .pipe(chunkEncoder(pbPuppet.UploadRequest))
55
+ .pipe(request)
56
+ })
57
+
58
+ const uuid = response.getId()
59
+ return uuid
60
+ }
61
+
62
+ type UuidifyFileBoxGrpcFactory = (grpcClient: () => pbPuppet.PuppetClient) => typeof FileBox
63
+
64
+ const uuidifyFileBoxGrpc: UuidifyFileBoxGrpcFactory = (
65
+ grpcClient,
66
+ ) => {
67
+ /**
68
+ * `as any`:
69
+ *
70
+ * Huan(202110): TypeError: Cannot read property 'valueDeclaration' of undefined #58
71
+ * https://github.com/huan/clone-class/issues/58
72
+ */
73
+ const FileBoxUuid: typeof FileBox = cloneClass(FileBox as any as Constructor<FileBox>) as any
74
+
75
+ FileBoxUuid.setUuidLoader(uuidResolverGrpc(grpcClient))
76
+ FileBoxUuid.setUuidSaver(uuidRegisterGrpc(grpcClient))
77
+
78
+ return FileBoxUuid
79
+ }
80
+
81
+ export {
82
+ uuidifyFileBoxGrpc,
83
+ }
@@ -0,0 +1,31 @@
1
+ import {
2
+ FileBox,
3
+ UniformResourceNameRegistry,
4
+ } from 'file-box'
5
+ import {
6
+ cloneClass,
7
+ Constructor,
8
+ } from 'clone-class'
9
+
10
+ type UuidifyFileBoxLocalFactory = (urnRegistry: UniformResourceNameRegistry) => typeof FileBox
11
+
12
+ const uuidifyFileBoxLocal: UuidifyFileBoxLocalFactory = (
13
+ urnRegistry,
14
+ ) => {
15
+ /**
16
+ * `as any`:
17
+ *
18
+ * Huan(202110): TypeError: Cannot read property 'valueDeclaration' of undefined #58
19
+ * https://github.com/huan/clone-class/issues/58
20
+ */
21
+ const FileBoxUuid: typeof FileBox = cloneClass(FileBox as any as Constructor<FileBox>) as any
22
+
23
+ FileBoxUuid.setUuidLoader(uuid => urnRegistry.load(uuid))
24
+ FileBoxUuid.setUuidSaver(stream => urnRegistry.save(stream))
25
+
26
+ return FileBoxUuid
27
+ }
28
+
29
+ export {
30
+ uuidifyFileBoxLocal,
31
+ }
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env -S node --no-warnings --loader ts-node/esm
2
+
3
+ import { test } from 'tstest'
4
+
5
+ import * as mod from './mod.js'
6
+
7
+ test('default export', async t => {
8
+ t.equal(typeof mod.default, 'function', 'should export Puppet class as default, which is required from PuppetManager of Wechaty')
9
+ })
package/src/mod.ts ADDED
@@ -0,0 +1,25 @@
1
+ import {
2
+ log,
3
+ } from '@juzi/wechaty-puppet'
4
+ import {
5
+ PuppetService,
6
+ } from './client/puppet-service.js'
7
+ import {
8
+ VERSION,
9
+ } from './config.js'
10
+ import {
11
+ PuppetServer,
12
+ PuppetServerOptions,
13
+ } from './server/puppet-server.js'
14
+
15
+ export {
16
+ log,
17
+ PuppetServer,
18
+ PuppetService,
19
+ VERSION,
20
+ }
21
+ export type {
22
+ PuppetServerOptions,
23
+ }
24
+
25
+ export default PuppetService