@juzi/wechaty-puppet-service 1.0.43 → 1.0.45

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 (141) hide show
  1. package/dist/cjs/src/client/puppet-service.d.ts +3 -4
  2. package/dist/cjs/src/client/puppet-service.d.ts.map +1 -1
  3. package/dist/cjs/src/client/puppet-service.js +80 -198
  4. package/dist/cjs/src/client/puppet-service.js.map +1 -1
  5. package/dist/cjs/src/package-json.d.ts.map +1 -1
  6. package/dist/cjs/src/package-json.js +4 -3
  7. package/dist/cjs/src/package-json.js.map +1 -1
  8. package/dist/cjs/src/server/puppet-implementation.d.ts.map +1 -1
  9. package/dist/cjs/src/server/puppet-implementation.js +41 -127
  10. package/dist/cjs/src/server/puppet-implementation.js.map +1 -1
  11. package/dist/cjs/src/utils/pb-payload-helper.d.ts +5 -2
  12. package/dist/cjs/src/utils/pb-payload-helper.d.ts.map +1 -1
  13. package/dist/cjs/src/utils/pb-payload-helper.js +146 -1
  14. package/dist/cjs/src/utils/pb-payload-helper.js.map +1 -1
  15. package/dist/esm/src/client/puppet-service.d.ts +3 -4
  16. package/dist/esm/src/client/puppet-service.d.ts.map +1 -1
  17. package/dist/esm/src/client/puppet-service.js +78 -196
  18. package/dist/esm/src/client/puppet-service.js.map +1 -1
  19. package/dist/esm/src/package-json.d.ts.map +1 -1
  20. package/dist/esm/src/package-json.js +4 -3
  21. package/dist/esm/src/package-json.js.map +1 -1
  22. package/dist/esm/src/server/puppet-implementation.d.ts.map +1 -1
  23. package/dist/esm/src/server/puppet-implementation.js +40 -126
  24. package/dist/esm/src/server/puppet-implementation.js.map +1 -1
  25. package/dist/esm/src/utils/pb-payload-helper.d.ts +5 -2
  26. package/dist/esm/src/utils/pb-payload-helper.d.ts.map +1 -1
  27. package/dist/esm/src/utils/pb-payload-helper.js +120 -0
  28. package/dist/esm/src/utils/pb-payload-helper.js.map +1 -1
  29. package/package.json +4 -3
  30. package/src/client/puppet-service.ts +97 -214
  31. package/src/package-json.ts +4 -3
  32. package/src/server/puppet-implementation.ts +50 -144
  33. package/src/utils/pb-payload-helper.ts +119 -2
  34. package/dist/cjs/src/deprecated/chunk-pb.d.ts +0 -15
  35. package/dist/cjs/src/deprecated/chunk-pb.d.ts.map +0 -1
  36. package/dist/cjs/src/deprecated/chunk-pb.js +0 -60
  37. package/dist/cjs/src/deprecated/chunk-pb.js.map +0 -1
  38. package/dist/cjs/src/deprecated/chunk-pb.spec.d.ts +0 -3
  39. package/dist/cjs/src/deprecated/chunk-pb.spec.d.ts.map +0 -1
  40. package/dist/cjs/src/deprecated/chunk-pb.spec.js +0 -144
  41. package/dist/cjs/src/deprecated/chunk-pb.spec.js.map +0 -1
  42. package/dist/cjs/src/deprecated/conversation-id-file-box.d.ts +0 -21
  43. package/dist/cjs/src/deprecated/conversation-id-file-box.d.ts.map +0 -1
  44. package/dist/cjs/src/deprecated/conversation-id-file-box.js +0 -43
  45. package/dist/cjs/src/deprecated/conversation-id-file-box.js.map +0 -1
  46. package/dist/cjs/src/deprecated/conversation-id-file-box.spec.d.ts +0 -3
  47. package/dist/cjs/src/deprecated/conversation-id-file-box.spec.d.ts.map +0 -1
  48. package/dist/cjs/src/deprecated/conversation-id-file-box.spec.js +0 -94
  49. package/dist/cjs/src/deprecated/conversation-id-file-box.spec.js.map +0 -1
  50. package/dist/cjs/src/deprecated/file-box-chunk.d.ts +0 -14
  51. package/dist/cjs/src/deprecated/file-box-chunk.d.ts.map +0 -1
  52. package/dist/cjs/src/deprecated/file-box-chunk.js +0 -67
  53. package/dist/cjs/src/deprecated/file-box-chunk.js.map +0 -1
  54. package/dist/cjs/src/deprecated/file-box-chunk.spec.d.ts +0 -3
  55. package/dist/cjs/src/deprecated/file-box-chunk.spec.d.ts.map +0 -1
  56. package/dist/cjs/src/deprecated/file-box-chunk.spec.js +0 -134
  57. package/dist/cjs/src/deprecated/file-box-chunk.spec.js.map +0 -1
  58. package/dist/cjs/src/deprecated/file-box-pb.d.ts +0 -15
  59. package/dist/cjs/src/deprecated/file-box-pb.d.ts.map +0 -1
  60. package/dist/cjs/src/deprecated/file-box-pb.js +0 -26
  61. package/dist/cjs/src/deprecated/file-box-pb.js.map +0 -1
  62. package/dist/cjs/src/deprecated/file-box-pb.spec.d.ts +0 -3
  63. package/dist/cjs/src/deprecated/file-box-pb.spec.d.ts.map +0 -1
  64. package/dist/cjs/src/deprecated/file-box-pb.spec.js +0 -18
  65. package/dist/cjs/src/deprecated/file-box-pb.spec.js.map +0 -1
  66. package/dist/cjs/src/deprecated/file-box-pb.type.d.ts +0 -15
  67. package/dist/cjs/src/deprecated/file-box-pb.type.d.ts.map +0 -1
  68. package/dist/cjs/src/deprecated/file-box-pb.type.js +0 -3
  69. package/dist/cjs/src/deprecated/file-box-pb.type.js.map +0 -1
  70. package/dist/cjs/src/deprecated/mod.d.ts +0 -3
  71. package/dist/cjs/src/deprecated/mod.d.ts.map +0 -1
  72. package/dist/cjs/src/deprecated/mod.js +0 -10
  73. package/dist/cjs/src/deprecated/mod.js.map +0 -1
  74. package/dist/cjs/src/deprecated/next-data.d.ts +0 -7
  75. package/dist/cjs/src/deprecated/next-data.d.ts.map +0 -1
  76. package/dist/cjs/src/deprecated/next-data.js +0 -26
  77. package/dist/cjs/src/deprecated/next-data.js.map +0 -1
  78. package/dist/cjs/src/deprecated/serialize-file-box.d.ts +0 -6
  79. package/dist/cjs/src/deprecated/serialize-file-box.d.ts.map +0 -1
  80. package/dist/cjs/src/deprecated/serialize-file-box.js +0 -22
  81. package/dist/cjs/src/deprecated/serialize-file-box.js.map +0 -1
  82. package/dist/esm/src/deprecated/chunk-pb.d.ts +0 -15
  83. package/dist/esm/src/deprecated/chunk-pb.d.ts.map +0 -1
  84. package/dist/esm/src/deprecated/chunk-pb.js +0 -56
  85. package/dist/esm/src/deprecated/chunk-pb.js.map +0 -1
  86. package/dist/esm/src/deprecated/chunk-pb.spec.d.ts +0 -3
  87. package/dist/esm/src/deprecated/chunk-pb.spec.d.ts.map +0 -1
  88. package/dist/esm/src/deprecated/chunk-pb.spec.js +0 -142
  89. package/dist/esm/src/deprecated/chunk-pb.spec.js.map +0 -1
  90. package/dist/esm/src/deprecated/conversation-id-file-box.d.ts +0 -21
  91. package/dist/esm/src/deprecated/conversation-id-file-box.d.ts.map +0 -1
  92. package/dist/esm/src/deprecated/conversation-id-file-box.js +0 -39
  93. package/dist/esm/src/deprecated/conversation-id-file-box.js.map +0 -1
  94. package/dist/esm/src/deprecated/conversation-id-file-box.spec.d.ts +0 -3
  95. package/dist/esm/src/deprecated/conversation-id-file-box.spec.d.ts.map +0 -1
  96. package/dist/esm/src/deprecated/conversation-id-file-box.spec.js +0 -92
  97. package/dist/esm/src/deprecated/conversation-id-file-box.spec.js.map +0 -1
  98. package/dist/esm/src/deprecated/file-box-chunk.d.ts +0 -14
  99. package/dist/esm/src/deprecated/file-box-chunk.d.ts.map +0 -1
  100. package/dist/esm/src/deprecated/file-box-chunk.js +0 -63
  101. package/dist/esm/src/deprecated/file-box-chunk.js.map +0 -1
  102. package/dist/esm/src/deprecated/file-box-chunk.spec.d.ts +0 -3
  103. package/dist/esm/src/deprecated/file-box-chunk.spec.d.ts.map +0 -1
  104. package/dist/esm/src/deprecated/file-box-chunk.spec.js +0 -132
  105. package/dist/esm/src/deprecated/file-box-chunk.spec.js.map +0 -1
  106. package/dist/esm/src/deprecated/file-box-pb.d.ts +0 -15
  107. package/dist/esm/src/deprecated/file-box-pb.d.ts.map +0 -1
  108. package/dist/esm/src/deprecated/file-box-pb.js +0 -22
  109. package/dist/esm/src/deprecated/file-box-pb.js.map +0 -1
  110. package/dist/esm/src/deprecated/file-box-pb.spec.d.ts +0 -3
  111. package/dist/esm/src/deprecated/file-box-pb.spec.d.ts.map +0 -1
  112. package/dist/esm/src/deprecated/file-box-pb.spec.js +0 -16
  113. package/dist/esm/src/deprecated/file-box-pb.spec.js.map +0 -1
  114. package/dist/esm/src/deprecated/file-box-pb.type.d.ts +0 -15
  115. package/dist/esm/src/deprecated/file-box-pb.type.d.ts.map +0 -1
  116. package/dist/esm/src/deprecated/file-box-pb.type.js +0 -2
  117. package/dist/esm/src/deprecated/file-box-pb.type.js.map +0 -1
  118. package/dist/esm/src/deprecated/mod.d.ts +0 -3
  119. package/dist/esm/src/deprecated/mod.d.ts.map +0 -1
  120. package/dist/esm/src/deprecated/mod.js +0 -3
  121. package/dist/esm/src/deprecated/mod.js.map +0 -1
  122. package/dist/esm/src/deprecated/next-data.d.ts +0 -7
  123. package/dist/esm/src/deprecated/next-data.d.ts.map +0 -1
  124. package/dist/esm/src/deprecated/next-data.js +0 -23
  125. package/dist/esm/src/deprecated/next-data.js.map +0 -1
  126. package/dist/esm/src/deprecated/serialize-file-box.d.ts +0 -6
  127. package/dist/esm/src/deprecated/serialize-file-box.d.ts.map +0 -1
  128. package/dist/esm/src/deprecated/serialize-file-box.js +0 -18
  129. package/dist/esm/src/deprecated/serialize-file-box.js.map +0 -1
  130. package/src/deprecated/chunk-pb.spec.ts +0 -210
  131. package/src/deprecated/chunk-pb.ts +0 -75
  132. package/src/deprecated/conversation-id-file-box.spec.ts +0 -131
  133. package/src/deprecated/conversation-id-file-box.ts +0 -72
  134. package/src/deprecated/file-box-chunk.spec.ts +0 -184
  135. package/src/deprecated/file-box-chunk.ts +0 -87
  136. package/src/deprecated/file-box-pb.spec.ts +0 -31
  137. package/src/deprecated/file-box-pb.ts +0 -41
  138. package/src/deprecated/file-box-pb.type.ts +0 -16
  139. package/src/deprecated/mod.ts +0 -8
  140. package/src/deprecated/next-data.ts +0 -35
  141. package/src/deprecated/serialize-file-box.ts +0 -24
@@ -1,8 +1,9 @@
1
- import type {
1
+ import {
2
2
  puppet,
3
3
  } from '@juzi/wechaty-grpc'
4
4
 
5
- import type * as PUPPET from '@juzi/wechaty-puppet'
5
+ import * as PUPPET from '@juzi/wechaty-puppet'
6
+ import type { FileBox, FileBoxInterface } from 'file-box'
6
7
 
7
8
  type grpcPuppet = typeof puppet
8
9
 
@@ -60,3 +61,119 @@ export const channelPbToPayload = (channelPayloadPb: puppet.ChannelPayload) => {
60
61
  }
61
62
  return channelPayload
62
63
  }
64
+
65
+ export const postPayloadToPb = async (grpcPuppet: grpcPuppet, payload: PUPPET.payloads.PostClient, serializeFileBox: (filebox: FileBoxInterface) => Promise<string>) => {
66
+ const pb = new grpcPuppet.PostPayloadClient()
67
+ pb.setType(payload.type || 0)
68
+ for (const item of payload.sayableList) {
69
+ const sayable = new grpcPuppet.PostSayable()
70
+ switch (item.type) {
71
+ case PUPPET.types.Sayable.Text:
72
+ sayable.setType(grpcPuppet.SayableType.SAYABLE_TYPE_TEXT)
73
+ sayable.setText(item.payload.text)
74
+ sayable.setMentionIdListList(item.payload.mentions)
75
+ break
76
+ case PUPPET.types.Sayable.Attachment: {
77
+ sayable.setType(grpcPuppet.SayableType.SAYABLE_TYPE_FILE)
78
+ const serializedFileBox = typeof item.payload.filebox === 'string' ? item.payload.filebox : (await serializeFileBox(item.payload.filebox))
79
+ sayable.setFileBox(serializedFileBox)
80
+ break
81
+ }
82
+ case PUPPET.types.Sayable.Url: {
83
+ sayable.setType(grpcPuppet.SayableType.SAYABLE_TYPE_URL)
84
+ const urlLinkPayload = item.payload
85
+ const pbUrlLinkPayload = urlLinkPayloadToPb(grpcPuppet, urlLinkPayload)
86
+ sayable.setUrlLink(pbUrlLinkPayload)
87
+ break
88
+ }
89
+ case PUPPET.types.Sayable.Channel: {
90
+ sayable.setType(grpcPuppet.SayableType.SAYABLE_TYPE_CHANNEL)
91
+ const channelPayload = item.payload
92
+ const pbChannelPayload = channelPayloadToPb(grpcPuppet, channelPayload)
93
+ sayable.setChannel(pbChannelPayload)
94
+ break
95
+ }
96
+ default:
97
+ throw new Error(`postPublish unsupported type ${item.type}`)
98
+ }
99
+ pb.addSayableList(sayable)
100
+ }
101
+ if (payload.rootId) { pb.setRootId(payload.rootId) }
102
+ if (payload.parentId) { pb.setParentId(payload.parentId) }
103
+ if (payload.location) {
104
+ const location = new grpcPuppet.LocationPayload()
105
+ location.setAccuracy(payload.location.accuracy)
106
+ location.setAddress(payload.location.address)
107
+ location.setName(payload.location.name)
108
+ location.setLatitude(payload.location.latitude)
109
+ location.setLongitude(payload.location.longitude)
110
+ pb.setLocation(location)
111
+ }
112
+ pb.setVisibleListList(payload.visibleList || [])
113
+ return pb
114
+ }
115
+
116
+ export const postPbToPayload = (post: puppet.PostPayloadClient, FileBoxUuid: typeof FileBox) => {
117
+ const payload: PUPPET.payloads.PostClient = {
118
+ type: post.getType(),
119
+ sayableList: [],
120
+ rootId: post.getRootId(),
121
+ parentId: post.getParentId(),
122
+ visibleList: post.getVisibleListList(),
123
+ }
124
+
125
+ const sayableList = post.getSayableListList()
126
+ for (const sayable of sayableList) {
127
+ let sayablePayload: PUPPET.payloads.Sayable | undefined
128
+ switch (sayable.getType()) {
129
+ case puppet.SayableType.SAYABLE_TYPE_TEXT:
130
+ sayablePayload = PUPPET.payloads.sayable.text(sayable.getText() || '', sayable.getMentionIdListList())
131
+ break
132
+ case puppet.SayableType.SAYABLE_TYPE_FILE: {
133
+ const fileJsonStr = sayable.getFileBox()
134
+ if (!fileJsonStr) {
135
+ break
136
+ }
137
+ const file = FileBoxUuid.fromJSON(fileJsonStr)
138
+ sayablePayload = PUPPET.payloads.sayable.attachment(file)
139
+ break
140
+ }
141
+ case puppet.SayableType.SAYABLE_TYPE_URL: {
142
+ const urlLinkPayloadPb = sayable.getUrlLink()
143
+ if (!urlLinkPayloadPb) {
144
+ break
145
+ }
146
+ const urlLinkPayload = urlLinkPbToPayload(urlLinkPayloadPb)
147
+ sayablePayload = PUPPET.payloads.sayable.url(urlLinkPayload)
148
+ break
149
+ }
150
+ case puppet.SayableType.SAYABLE_TYPE_CHANNEL: {
151
+ const channelPayloadPb = sayable.getChannel()
152
+ if (!channelPayloadPb) {
153
+ break
154
+ }
155
+ const channelPayload = channelPbToPayload(channelPayloadPb!)
156
+ sayablePayload = PUPPET.payloads.sayable.channel(channelPayload)
157
+ break
158
+ }
159
+ default:
160
+ throw new Error(`unsupported postSayableType type ${sayable.getType()}`)
161
+ }
162
+ if (sayablePayload) {
163
+ payload.sayableList.push(sayablePayload)
164
+ } else {
165
+ throw new Error(`unable to fetch sayable from ${JSON.stringify(sayable.toObject())}`)
166
+ }
167
+ }
168
+ const location = post.getLocation()
169
+ if (location) {
170
+ payload.location = {
171
+ name: location.getName() || '',
172
+ accuracy: location.getAccuracy() || 15,
173
+ address: location.getAddress() || '',
174
+ latitude: location.getLatitude(),
175
+ longitude: location.getLatitude(),
176
+ }
177
+ }
178
+ return payload
179
+ }
@@ -1,15 +0,0 @@
1
- import type { puppet } from '@juzi/wechaty-grpc';
2
- import { Readable } from 'stronger-typed-streams';
3
- import type { FileBoxPb } from './file-box-pb.type.js';
4
- /**
5
- * @deprecated Will be removed after Dec 31, 2022
6
- */
7
- declare function packFileBoxChunkToPb<T extends FileBoxPb>(PbConstructor: {
8
- new (): T;
9
- }): (stream: Readable<puppet.FileBoxChunk>) => Readable<T>;
10
- /**
11
- * @deprecated Will be removed after Dec 31, 2022
12
- */
13
- declare function unpackFileBoxChunkFromPb<T extends FileBoxPb>(stream: Readable<T>): Readable<puppet.FileBoxChunk>;
14
- export { packFileBoxChunkToPb, unpackFileBoxChunkFromPb, };
15
- //# sourceMappingURL=chunk-pb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk-pb.d.ts","sourceRoot":"","sources":["../../../../src/deprecated/chunk-pb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAa,MAAM,wBAAwB,CAAA;AAG5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAiBtD;;GAEG;AACH,iBAAS,oBAAoB,CAAC,CAAC,SAAS,SAAS,EAC/C,aAAa,EAAE;IAAE,QAAO,CAAC,CAAA;CAAE,YAEX,SAAS,OAAO,YAAY,CAAC,KAAG,SAAS,CAAC,CAAC,CAU5D;AAkBD;;GAEG;AACH,iBAAS,wBAAwB,CAAC,CAAC,SAAS,SAAS,EACnD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAClB,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAS/B;AAED,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,CAAA"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unpackFileBoxChunkFromPb = exports.packFileBoxChunkToPb = void 0;
4
- const stronger_typed_streams_1 = require("stronger-typed-streams");
5
- const stream_1 = require("stream");
6
- /**
7
- * Wrap FileBoxChunk
8
- * @deprecated Will be removed after Dec 31, 2022
9
- */
10
- const encoder = (PbConstructor) => new stronger_typed_streams_1.Transform({
11
- objectMode: true,
12
- transform: (chunk, _, callback) => {
13
- const message = new PbConstructor();
14
- message.setFileBoxChunk(chunk);
15
- callback(null, message);
16
- },
17
- });
18
- /**
19
- * @deprecated Will be removed after Dec 31, 2022
20
- */
21
- function packFileBoxChunkToPb(PbConstructor) {
22
- return (stream) => {
23
- const outStream = new stream_1.PassThrough({ objectMode: true });
24
- const encodedStream = stream.pipe(encoder(PbConstructor));
25
- stream.on('error', e => outStream.emit('error', e));
26
- encodedStream.on('error', e => outStream.emit('error', e));
27
- encodedStream.pipe(outStream);
28
- return outStream;
29
- };
30
- }
31
- exports.packFileBoxChunkToPb = packFileBoxChunkToPb;
32
- /**
33
- * Unwrap FileBoxChunk
34
- * @deprecated Will be removed after Dec 31, 2022
35
- */
36
- const decoder = () => new stronger_typed_streams_1.Transform({
37
- objectMode: true,
38
- transform: (chunk, _, callback) => {
39
- const fileBoxChunk = chunk.getFileBoxChunk();
40
- if (!fileBoxChunk) {
41
- callback(new Error('No FileBoxChunk'));
42
- }
43
- else {
44
- callback(null, fileBoxChunk);
45
- }
46
- },
47
- });
48
- /**
49
- * @deprecated Will be removed after Dec 31, 2022
50
- */
51
- function unpackFileBoxChunkFromPb(stream) {
52
- const outStream = new stream_1.PassThrough({ objectMode: true });
53
- const decodedStream = stream.pipe(decoder());
54
- stream.on('error', e => outStream.emit('error', e));
55
- decodedStream.on('error', e => outStream.emit('error', e));
56
- decodedStream.pipe(outStream);
57
- return outStream;
58
- }
59
- exports.unpackFileBoxChunkFromPb = unpackFileBoxChunkFromPb;
60
- //# sourceMappingURL=chunk-pb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk-pb.js","sourceRoot":"","sources":["../../../../src/deprecated/chunk-pb.ts"],"names":[],"mappings":";;;AACA,mEAA4D;AAC5D,mCAAoC;AAIpC;;;GAGG;AACH,MAAM,OAAO,GAAG,CACd,aAA2B,EAC3B,EAAE,CAAC,IAAI,kCAAS,CAAyB;IACzC,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,CAAC,KAA0B,EAAE,CAAM,EAAE,QAAgD,EAAE,EAAE;QAClG,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAA;QACnC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACzB,CAAC;CACF,CAAC,CAAA;AAEF;;GAEG;AACH,SAAS,oBAAoB,CAC3B,aAA2B;IAE3B,OAAO,CAAC,MAAqC,EAAe,EAAE;QAC5D,MAAM,SAAS,GAAO,IAAI,oBAAW,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;QAEzD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1D,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;QAE1D,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC7B,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;AACH,CAAC;AAmCC,oDAAoB;AAjCtB;;;GAGG;AACH,MAAM,OAAO,GAAG,GAAwB,EAAE,CAAC,IAAI,kCAAS,CAAyB;IAC/E,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,CAAC,KAAQ,EAAE,CAAM,EAAE,QAAmE,EAAE,EAAE;QACnG,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,CAAA;QAC5C,IAAI,CAAC,YAAY,EAAE;YACjB,QAAQ,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;SACvC;aAAM;YACL,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;SAC7B;IACH,CAAC;CACF,CAAC,CAAA;AAEF;;GAEG;AACH,SAAS,wBAAwB,CAC/B,MAAmB;IAEnB,MAAM,SAAS,GAAO,IAAI,oBAAW,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3D,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAE5C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1D,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAE1D,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7B,OAAO,SAAS,CAAA;AAClB,CAAC;AAIC,4DAAwB"}
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env -S node --no-warnings --loader ts-node/esm
2
- export {};
3
- //# sourceMappingURL=chunk-pb.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk-pb.spec.d.ts","sourceRoot":"","sources":["../../../../src/deprecated/chunk-pb.spec.ts"],"names":[],"mappings":""}
@@ -1,144 +0,0 @@
1
- #!/usr/bin/env -S node --no-warnings --loader ts-node/esm
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const tstest_1 = require("tstest");
5
- const stream_1 = require("stream");
6
- const file_box_1 = require("file-box");
7
- const wechaty_grpc_1 = require("@juzi/wechaty-grpc");
8
- const file_box_chunk_js_1 = require("./file-box-chunk.js");
9
- const chunk_pb_js_1 = require("./chunk-pb.js");
10
- (0, tstest_1.test)('packFileBoxChunk()', async (t) => {
11
- const FILE_BOX_DATA = 'test';
12
- const FILE_BOX_NAME = 'test.dat';
13
- const fileBox = file_box_1.FileBox.fromBuffer(Buffer.from(FILE_BOX_DATA), FILE_BOX_NAME);
14
- const chunkStream = await (0, file_box_chunk_js_1.packFileBoxToChunk)(fileBox);
15
- const pbStream = await (0, chunk_pb_js_1.packFileBoxChunkToPb)(wechaty_grpc_1.puppet.MessageFileStreamResponse)(chunkStream);
16
- let name = '';
17
- let buffer = '';
18
- pbStream.on('data', (data) => {
19
- if (data.hasFileBoxChunk()) {
20
- const fileBoxChunk = data.getFileBoxChunk();
21
- if (fileBoxChunk.hasData()) {
22
- buffer += fileBoxChunk.getData();
23
- }
24
- else if (fileBoxChunk.hasName()) {
25
- name = fileBoxChunk.getName();
26
- }
27
- }
28
- });
29
- await new Promise(resolve => chunkStream.on('end', resolve));
30
- t.equal(name, FILE_BOX_NAME, 'should get file box name');
31
- t.equal(buffer, FILE_BOX_DATA, 'should get file box data');
32
- });
33
- (0, tstest_1.test)('unpackFileBoxChunkFromPb()', async (t) => {
34
- const FILE_BOX_DATA = 'test';
35
- const FILE_BOX_NAME = 'test.dat';
36
- const fileBox = file_box_1.FileBox.fromBuffer(Buffer.from(FILE_BOX_DATA), FILE_BOX_NAME);
37
- const chunkStream = await (0, file_box_chunk_js_1.packFileBoxToChunk)(fileBox);
38
- const request = new wechaty_grpc_1.puppet.MessageSendFileStreamRequest();
39
- const packedStream = new stream_1.PassThrough({ objectMode: true });
40
- chunkStream.on('data', (data) => {
41
- request.setFileBoxChunk(data);
42
- packedStream.write(request);
43
- }).on('end', () => {
44
- packedStream.end();
45
- });
46
- const outputChunkStream = (0, chunk_pb_js_1.unpackFileBoxChunkFromPb)(packedStream);
47
- const outputFileBox = await (0, file_box_chunk_js_1.unpackFileBoxFromChunk)(outputChunkStream);
48
- t.equal((await outputFileBox.toBuffer()).toString(), FILE_BOX_DATA, 'should get file box data');
49
- });
50
- (0, tstest_1.test)('packFileBoxChunk() <-> unpackFileBoxChunkFromPb()', async (t) => {
51
- const FILE_BOX_DATA = 'test';
52
- const FILE_BOX_NAME = 'test.dat';
53
- const fileBox = file_box_1.FileBox.fromBuffer(Buffer.from(FILE_BOX_DATA), FILE_BOX_NAME);
54
- const chunkStream = await (0, file_box_chunk_js_1.packFileBoxToChunk)(fileBox);
55
- const packedStream = (0, chunk_pb_js_1.packFileBoxChunkToPb)(wechaty_grpc_1.puppet.MessageFileStreamResponse)(chunkStream);
56
- const unpackedStream = (0, chunk_pb_js_1.unpackFileBoxChunkFromPb)(packedStream);
57
- const restoredBox = await (0, file_box_chunk_js_1.unpackFileBoxFromChunk)(unpackedStream);
58
- t.equal(fileBox.name, restoredBox.name, 'should be same name');
59
- const EXPECTED_BASE64 = await fileBox.toBase64();
60
- const actualBase64 = await restoredBox.toBase64();
61
- t.equal(EXPECTED_BASE64, actualBase64, 'should be same content');
62
- });
63
- (0, tstest_1.test)('packFileBoxChunk(): should not throw if no read on the stream', async (t) => {
64
- t.plan(1);
65
- const stream = await getTestChunkStream({});
66
- let outStream;
67
- try {
68
- outStream = (0, chunk_pb_js_1.packFileBoxChunkToPb)(wechaty_grpc_1.puppet.MessageFileStreamResponse)(stream);
69
- }
70
- catch (e) {
71
- t.ok(e.message);
72
- return;
73
- }
74
- outStream.on('error', _ => { });
75
- t.pass();
76
- });
77
- (0, tstest_1.test)('packFileBoxChunk(): should emit error in the output stream', async (t) => {
78
- const EXPECTED_MESSAGE = 'test emit error';
79
- const stream = await getTestChunkStream({ errorMessage: EXPECTED_MESSAGE });
80
- const outStream = (0, chunk_pb_js_1.packFileBoxChunkToPb)(wechaty_grpc_1.puppet.MessageFileStreamResponse)(stream);
81
- const error = await new Promise(resolve => outStream.on('error', resolve));
82
- // await new Promise(resolve => outStream.on('end', resolve))
83
- t.equal(error.message, EXPECTED_MESSAGE, 'should emit error message');
84
- });
85
- (0, tstest_1.test)('unpackFileBoxChunkFromPb(): should not throw if no read on the stream', async (t) => {
86
- t.plan(1);
87
- const stream = await getTestPackedStream({});
88
- let outStream;
89
- try {
90
- outStream = (0, chunk_pb_js_1.unpackFileBoxChunkFromPb)(stream);
91
- t.pass('should no rejection');
92
- }
93
- catch (e) {
94
- t.fail(e.message);
95
- return;
96
- }
97
- outStream.on('error', _ => { });
98
- });
99
- (0, tstest_1.test)('unpackFileBoxChunkFromPb(): should emit error in the output stream', async (t) => {
100
- const errorMessage = 'test emit error';
101
- const stream = await getTestPackedStream({ errorMessage });
102
- const outStream = (0, chunk_pb_js_1.packFileBoxChunkToPb)(wechaty_grpc_1.puppet.MessageFileStreamResponse)(stream);
103
- try {
104
- await new Promise((resolve, reject) => {
105
- outStream.on('error', reject);
106
- outStream.on('end', resolve);
107
- });
108
- t.fail('should reject the promise');
109
- }
110
- catch (e) {
111
- t.equal(e.message, errorMessage, 'should get the expected rejection error message');
112
- }
113
- });
114
- async function getTestChunkStream(options) {
115
- const { errorMessage } = options;
116
- const FILE_BOX_DATA = 'test';
117
- const FILE_BOX_NAME = 'test.dat';
118
- const fileBox = file_box_1.FileBox.fromBuffer(Buffer.from(FILE_BOX_DATA), FILE_BOX_NAME);
119
- const chunkStream = await (0, file_box_chunk_js_1.packFileBoxToChunk)(fileBox);
120
- setImmediate(() => {
121
- chunkStream.emit('error', new Error(errorMessage));
122
- });
123
- return chunkStream;
124
- }
125
- async function getTestPackedStream(options) {
126
- const { errorMessage } = options;
127
- const FILE_BOX_DATA = 'test';
128
- const FILE_BOX_NAME = 'test.dat';
129
- const fileBox = file_box_1.FileBox.fromBuffer(Buffer.from(FILE_BOX_DATA), FILE_BOX_NAME);
130
- const chunkStream = await (0, file_box_chunk_js_1.packFileBoxToChunk)(fileBox);
131
- const packedStream = new stream_1.PassThrough({ objectMode: true });
132
- chunkStream.on('data', d => {
133
- const packedChunk = new wechaty_grpc_1.puppet.MessageFileStreamResponse();
134
- packedChunk.setFileBoxChunk(d);
135
- packedStream.write(packedChunk);
136
- }).on('error', e => {
137
- packedStream.emit('error', e);
138
- });
139
- setImmediate(() => {
140
- chunkStream.emit('error', new Error(errorMessage));
141
- });
142
- return packedStream;
143
- }
144
- //# sourceMappingURL=chunk-pb.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk-pb.spec.js","sourceRoot":"","sources":["../../../../src/deprecated/chunk-pb.spec.ts"],"names":[],"mappings":";;;AAEA,mCAA6B;AAE7B,mCAAoC;AAEpC,uCAAkC;AAElC,qDAE2D;AAE3D,2DAGwD;AACxD,+CAGkD;AAElD,IAAA,aAAI,EAAC,oBAAoB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACnC,MAAM,aAAa,GAAG,MAAM,CAAA;IAC5B,MAAM,aAAa,GAAG,UAAU,CAAA;IAEhC,MAAM,OAAO,GAAG,kBAAO,CAAC,UAAU,CAChC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAC1B,aAAa,CACd,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,IAAA,sCAAkB,EAAC,OAAO,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAM,MAAM,IAAA,kCAAoB,EAAC,qBAAM,CAAC,yBAAyB,CAAC,CAAC,WAAW,CAAC,CAAA;IAE7F,IAAM,IAAI,GAAU,EAAE,CAAA;IACtB,IAAM,MAAM,GAAQ,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAsC,EAAE,EAAE;QAC7D,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;YAC3C,IAAI,YAAa,CAAC,OAAO,EAAE,EAAE;gBAC3B,MAAM,IAAI,YAAa,CAAC,OAAO,EAAE,CAAA;aAClC;iBAAM,IAAI,YAAa,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,GAAG,YAAa,CAAC,OAAO,EAAE,CAAA;aAC/B;SACF;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IAC5D,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,0BAA0B,CAAC,CAAA;IACxD,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,0BAA0B,CAAC,CAAA;AAE5D,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,4BAA4B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC3C,MAAM,aAAa,GAAG,MAAM,CAAA;IAC5B,MAAM,aAAa,GAAG,UAAU,CAAA;IAEhC,MAAM,OAAO,GAAG,kBAAO,CAAC,UAAU,CAChC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAC1B,aAAa,CACd,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,IAAA,sCAAkB,EAAC,OAAO,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,IAAI,qBAAM,CAAC,4BAA4B,EAAE,CAAA;IAEzD,MAAM,YAAY,GAAG,IAAI,oBAAW,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IAE1D,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAyB,EAAE,EAAE;QACnD,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC7B,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QAChB,YAAY,CAAC,GAAG,EAAE,CAAA;IACpB,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,IAAA,sCAAwB,EAAC,YAAY,CAAC,CAAA;IAChE,MAAM,aAAa,GAAG,MAAM,IAAA,0CAAsB,EAAC,iBAAiB,CAAC,CAAA;IAErE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,0BAA0B,CAAC,CAAA;AACjG,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,mDAAmD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAClE,MAAM,aAAa,GAAG,MAAM,CAAA;IAC5B,MAAM,aAAa,GAAG,UAAU,CAAA;IAEhC,MAAM,OAAO,GAAG,kBAAO,CAAC,UAAU,CAChC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAC1B,aAAa,CACd,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,IAAA,sCAAkB,EAAC,OAAO,CAAC,CAAA;IACrD,MAAM,YAAY,GAAG,IAAA,kCAAoB,EAAC,qBAAM,CAAC,yBAAyB,CAAC,CAAC,WAAW,CAAC,CAAA;IAExF,MAAM,cAAc,GAAG,IAAA,sCAAwB,EAAC,YAAY,CAAC,CAAA;IAC7D,MAAM,WAAW,GAAG,MAAM,IAAA,0CAAsB,EAAC,cAAc,CAAC,CAAA;IAChE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAA;IAE9D,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;IAChD,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAA;IAEjD,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAAA;AAClE,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,+DAA+D,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAE9E,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACT,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,CAAC,CAAA;IAC3C,IAAI,SAAS,CAAA;IACb,IAAI;QACF,SAAS,GAAG,IAAA,kCAAoB,EAAC,qBAAM,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAA;KAC3E;IAAC,OAAO,CAAC,EAAE;QACV,CAAC,CAAC,EAAE,CAAE,CAAW,CAAC,OAAO,CAAC,CAAA;QAC1B,OAAM;KACP;IACD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAoB,CAAC,CAAC,CAAA;IAChD,CAAC,CAAC,IAAI,EAAE,CAAA;AACV,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,4DAA4D,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC3E,MAAM,gBAAgB,GAAG,iBAAiB,CAAA;IAE1C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAC3E,MAAM,SAAS,GAAG,IAAA,kCAAoB,EAAC,qBAAM,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAA;IAEhF,MAAM,KAAK,GAAG,MAAM,IAAI,OAAO,CAAQ,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IACjF,6DAA6D;IAC7D,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,CAAC,CAAA;AACvE,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,uEAAuE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAEtF,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACT,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAC5C,IAAI,SAAS,CAAA;IACb,IAAI;QACF,SAAS,GAAG,IAAA,sCAAwB,EAAC,MAAM,CAAC,CAAA;QAC5C,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;KAC9B;IAAC,OAAO,CAAC,EAAE;QACV,CAAC,CAAC,IAAI,CAAE,CAAW,CAAC,OAAO,CAAC,CAAA;QAC5B,OAAM;KACP;IACD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAoB,CAAC,CAAC,CAAA;AAClD,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,oEAAoE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAEnF,MAAM,YAAY,GAAG,iBAAiB,CAAA;IACtC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAA;IAE1D,MAAM,SAAS,GAAG,IAAA,kCAAoB,EAAC,qBAAM,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAA;IAEhF,IAAI;QACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC7B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;QACF,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;KACpC;IAAC,OAAO,CAAC,EAAE;QACV,CAAC,CAAC,KAAK,CAAE,CAAW,CAAC,OAAO,EAAE,YAAY,EAAE,iDAAiD,CAAC,CAAA;KAC/F;AACH,CAAC,CAAC,CAAA;AAEF,KAAK,UAAU,kBAAkB,CAAE,OAElC;IACC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;IAEhC,MAAM,aAAa,GAAG,MAAM,CAAA;IAC5B,MAAM,aAAa,GAAG,UAAU,CAAA;IAEhC,MAAM,OAAO,GAAG,kBAAO,CAAC,UAAU,CAChC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAC1B,aAAa,CACd,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,IAAA,sCAAkB,EAAC,OAAO,CAAC,CAAA;IACrD,YAAY,CAAC,GAAG,EAAE;QAChB,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAE,OAEnC;IACC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;IAEhC,MAAM,aAAa,GAAG,MAAM,CAAA;IAC5B,MAAM,aAAa,GAAG,UAAU,CAAA;IAEhC,MAAM,OAAO,GAAG,kBAAO,CAAC,UAAU,CAChC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAC1B,aAAa,CACd,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,IAAA,sCAAkB,EAAC,OAAO,CAAC,CAAA;IACrD,MAAM,YAAY,GAAG,IAAI,oBAAW,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1D,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;QACzB,MAAM,WAAW,GAAG,IAAI,qBAAM,CAAC,yBAAyB,EAAE,CAAA;QAC1D,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAC9B,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACjC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;QACjB,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,YAAY,CAAC,GAAG,EAAE;QAChB,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,OAAO,YAAY,CAAA;AACrB,CAAC"}
@@ -1,21 +0,0 @@
1
- import type { FileBoxInterface } from 'file-box';
2
- import type { Readable } from 'stronger-typed-streams';
3
- import type { ConversationIdFileBoxPb } from './file-box-pb.type.js';
4
- interface ConversationIdFileBoxArgs {
5
- conversationId: string;
6
- fileBox: FileBoxInterface;
7
- }
8
- /**
9
- * MessageSendFileStreamRequest to Args
10
- * @deprecated Will be removed after Dec 31, 2022
11
- */
12
- declare function unpackConversationIdFileBoxArgsFromPb(stream: Readable<ConversationIdFileBoxPb>): Promise<ConversationIdFileBoxArgs>;
13
- /**
14
- * Args to MessageSendFileStreamRequest
15
- * @deprecated Will be removed after Dec 31, 2022
16
- */
17
- declare function packConversationIdFileBoxToPb<T extends ConversationIdFileBoxPb>(PbConstructor: {
18
- new (): T;
19
- }): (conversationId: string, fileBox: FileBoxInterface) => Promise<Readable<T>>;
20
- export { unpackConversationIdFileBoxArgsFromPb, packConversationIdFileBoxToPb, };
21
- //# sourceMappingURL=conversation-id-file-box.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversation-id-file-box.d.ts","sourceRoot":"","sources":["../../../../src/deprecated/conversation-id-file-box.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAoC,UAAU,CAAA;AAE/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAkB,wBAAwB,CAAA;AAOlE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAEpE,UAAU,yBAAyB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED;;;GAGG;AACH,iBAAe,qCAAqC,CAClD,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GACxC,OAAO,CAAC,yBAAyB,CAAC,CAcpC;AAED;;;GAGG;AACH,iBAAS,6BAA6B,CAAC,CAAC,SAAS,uBAAuB,EACtE,aAAa,EAAE;IAAE,QAAO,CAAC,CAAA;CAAE,oBAGT,MAAM,WACN,gBAAgB,KAC/B,QACD,SAAS,CAAC,CAAC,CACZ,CAcF;AAED,OAAO,EACL,qCAAqC,EACrC,6BAA6B,GAC9B,CAAA"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.packConversationIdFileBoxToPb = exports.unpackConversationIdFileBoxArgsFromPb = void 0;
4
- const stream_1 = require("stream");
5
- const next_data_js_1 = require("./next-data.js");
6
- const file_box_pb_js_1 = require("./file-box-pb.js");
7
- /**
8
- * MessageSendFileStreamRequest to Args
9
- * @deprecated Will be removed after Dec 31, 2022
10
- */
11
- async function unpackConversationIdFileBoxArgsFromPb(stream) {
12
- const chunk = await (0, next_data_js_1.nextData)(stream);
13
- if (!chunk.hasConversationId()) {
14
- throw new Error('no conversation id');
15
- }
16
- const conversationId = chunk.getConversationId();
17
- // unpackFileBoxFromChunk(unpackFileBoxChunkFromPb(stream))
18
- const fileBox = await (0, file_box_pb_js_1.unpackFileBoxFromPb)(stream);
19
- return {
20
- conversationId,
21
- fileBox,
22
- };
23
- }
24
- exports.unpackConversationIdFileBoxArgsFromPb = unpackConversationIdFileBoxArgsFromPb;
25
- /**
26
- * Args to MessageSendFileStreamRequest
27
- * @deprecated Will be removed after Dec 31, 2022
28
- */
29
- function packConversationIdFileBoxToPb(PbConstructor) {
30
- return async (conversationId, fileBox) => {
31
- const stream = new stream_1.PassThrough({ objectMode: true });
32
- const first = new PbConstructor();
33
- first.setConversationId(conversationId);
34
- stream.write(first);
35
- // const fileBoxChunkStream = await packFileBoxToChunk(fileBox)
36
- // packFileBoxChunkToPb(MessageSendFileStreamRequest)(fileBoxChunkStream)
37
- const pbStream = await (0, file_box_pb_js_1.packFileBoxToPb)(PbConstructor)(fileBox);
38
- pbStream.pipe(stream);
39
- return stream;
40
- };
41
- }
42
- exports.packConversationIdFileBoxToPb = packConversationIdFileBoxToPb;
43
- //# sourceMappingURL=conversation-id-file-box.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversation-id-file-box.js","sourceRoot":"","sources":["../../../../src/deprecated/conversation-id-file-box.ts"],"names":[],"mappings":";;;AAGA,mCAA6C;AAG7C,iDAAyD;AACzD,qDAG0D;AAQ1D;;;GAGG;AACH,KAAK,UAAU,qCAAqC,CAClD,MAAyC;IAEzC,MAAM,KAAK,GAAG,MAAM,IAAA,uBAAQ,EAAC,MAAM,CAAC,CAAA;IACpC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;KACtC;IACD,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAA;IAEhD,2DAA2D;IAC3D,MAAM,OAAO,GAAG,MAAM,IAAA,oCAAmB,EAAC,MAAM,CAAC,CAAA;IAEjD,OAAO;QACL,cAAc;QACd,OAAO;KACR,CAAA;AACH,CAAC;AA+BC,sFAAqC;AA7BvC;;;GAGG;AACH,SAAS,6BAA6B,CACpC,aAA2B;IAE3B,OAAO,KAAK,EACV,cAAsB,EACtB,OAAgC,EAGhC,EAAE;QACF,MAAM,MAAM,GAAG,IAAI,oBAAW,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QAEpD,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAA;QACjC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;QACvC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAEnB,+DAA+D;QAC/D,yEAAyE;QACzE,MAAM,QAAQ,GAAG,MAAM,IAAA,gCAAe,EAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAA;QAC9D,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAErB,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAIC,sEAA6B"}
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env -S node --no-warnings --loader ts-node/esm
2
- export {};
3
- //# sourceMappingURL=conversation-id-file-box.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversation-id-file-box.spec.d.ts","sourceRoot":"","sources":["../../../../src/deprecated/conversation-id-file-box.spec.ts"],"names":[],"mappings":""}
@@ -1,94 +0,0 @@
1
- #!/usr/bin/env -S node --no-warnings --loader ts-node/esm
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- /**
5
- * Wechaty Chatbot SDK - https://github.com/wechaty/wechaty
6
- *
7
- * @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and
8
- * Wechaty Contributors <https://github.com/wechaty>.
9
- *
10
- * Licensed under the Apache License, Version 2.0 (the "License");
11
- * you may not use this file except in compliance with the License.
12
- * You may obtain a copy of the License at
13
- *
14
- * http://www.apache.org/licenses/LICENSE-2.0
15
- *
16
- * Unless required by applicable law or agreed to in writing, software
17
- * distributed under the License is distributed on an "AS IS" BASIS,
18
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
- * See the License for the specific language governing permissions and
20
- * limitations under the License.
21
- *
22
- */
23
- const wechaty_grpc_1 = require("@juzi/wechaty-grpc");
24
- const tstest_1 = require("tstest");
25
- const stream_1 = require("stream");
26
- const file_box_1 = require("file-box");
27
- const next_data_js_1 = require("./next-data.js");
28
- const conversation_id_file_box_js_1 = require("./conversation-id-file-box.js");
29
- (0, tstest_1.test)('unpackConversationIdFileBoxArgsFromPb()', async (t) => {
30
- const FILE_BOX_DATA = 'test';
31
- const FILE_BOX_NAME = 'test.dat';
32
- const CONVERSATION_ID = 'conversation_id';
33
- const fileBox = file_box_1.FileBox.fromBuffer(Buffer.from(FILE_BOX_DATA), FILE_BOX_NAME);
34
- const stream = new stream_1.PassThrough({ objectMode: true });
35
- const req1 = new wechaty_grpc_1.puppet.MessageSendFileStreamRequest();
36
- req1.setConversationId(CONVERSATION_ID);
37
- stream.write(req1);
38
- const req2 = new wechaty_grpc_1.puppet.MessageSendFileStreamRequest();
39
- const chunk1 = new wechaty_grpc_1.puppet.FileBoxChunk();
40
- chunk1.setName(fileBox.name);
41
- req2.setFileBoxChunk(chunk1);
42
- stream.write(req2);
43
- const fileBoxStream = await fileBox.toStream();
44
- fileBoxStream.on('data', chunk => {
45
- const fileBoxChunk = new wechaty_grpc_1.puppet.FileBoxChunk();
46
- fileBoxChunk.setData(chunk);
47
- const req3 = new wechaty_grpc_1.puppet.MessageSendFileStreamRequest();
48
- req3.setFileBoxChunk(fileBoxChunk);
49
- stream.write(req3);
50
- });
51
- fileBoxStream.on('end', () => stream.end());
52
- const args = await (0, conversation_id_file_box_js_1.unpackConversationIdFileBoxArgsFromPb)(stream);
53
- const data = (await args.fileBox.toBuffer()).toString();
54
- t.equal(args.conversationId, CONVERSATION_ID, 'should get conversation id');
55
- t.equal(args.fileBox.name, FILE_BOX_NAME, 'should get file box name');
56
- t.equal(data, FILE_BOX_DATA, 'should get file box data');
57
- });
58
- (0, tstest_1.test)('packConversationIdFileBoxToPb()', async (t) => {
59
- const FILE_BOX_DATA = 'test';
60
- const FILE_BOX_NAME = 'test.dat';
61
- const CONVERSATION_ID = 'conv_id';
62
- const fileBox = file_box_1.FileBox.fromBuffer(Buffer.from(FILE_BOX_DATA), FILE_BOX_NAME);
63
- const stream = await (0, conversation_id_file_box_js_1.packConversationIdFileBoxToPb)(wechaty_grpc_1.puppet.MessageSendFileStreamRequest)(CONVERSATION_ID, fileBox);
64
- const data1 = await (0, next_data_js_1.nextData)(stream);
65
- t.equal(data1.getConversationId(), CONVERSATION_ID, 'match conversation id');
66
- const data2 = await (0, next_data_js_1.nextData)(stream);
67
- t.ok(data2.hasFileBoxChunk(), 'has file box chunk');
68
- t.ok(data2.getFileBoxChunk().hasName(), 'has file box name');
69
- t.equal(data2.getFileBoxChunk().getName(), FILE_BOX_NAME, 'match file box name');
70
- let data = '';
71
- stream.on('data', (chunk) => {
72
- if (!chunk.hasFileBoxChunk()) {
73
- throw new Error('no file box chunk');
74
- }
75
- if (!chunk.getFileBoxChunk().hasData()) {
76
- throw new Error('no file box chunk data');
77
- }
78
- data += chunk.getFileBoxChunk().getData();
79
- });
80
- await new Promise(resolve => stream.on('end', resolve));
81
- t.equal(data.toString(), FILE_BOX_DATA, 'should get file box data');
82
- });
83
- (0, tstest_1.test)('unpackConversationIdFileBoxArgsFromPb() <-> packConversationIdFileBoxToPb()', async (t) => {
84
- const FILE_BOX_DATA = 'test';
85
- const FILE_BOX_NAME = 'test.dat';
86
- const CONVERSATION_ID = 'conv_id';
87
- const fileBox = file_box_1.FileBox.fromBuffer(Buffer.from(FILE_BOX_DATA), FILE_BOX_NAME);
88
- const stream = await (0, conversation_id_file_box_js_1.packConversationIdFileBoxToPb)(wechaty_grpc_1.puppet.MessageSendFileStreamRequest)(CONVERSATION_ID, fileBox);
89
- const args = await (0, conversation_id_file_box_js_1.unpackConversationIdFileBoxArgsFromPb)(stream);
90
- t.equal(args.conversationId, CONVERSATION_ID, 'should match conversation id');
91
- t.equal(args.fileBox.name, FILE_BOX_NAME, 'should be same name');
92
- t.equal((await args.fileBox.toBuffer()).toString(), FILE_BOX_DATA, 'should be same content');
93
- });
94
- //# sourceMappingURL=conversation-id-file-box.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversation-id-file-box.spec.js","sourceRoot":"","sources":["../../../../src/deprecated/conversation-id-file-box.spec.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { FileBox } from 'file-box';
2
- import type { FileBoxInterface } from 'file-box';
3
- import { Readable } from 'stronger-typed-streams';
4
- import { puppet } from '@juzi/wechaty-grpc';
5
- /**
6
- * @deprecated Will be removed after Dec 31, 2022
7
- */
8
- declare function unpackFileBoxFromChunk(stream: Readable<puppet.FileBoxChunk>): Promise<FileBox>;
9
- /**
10
- * @deprecated Will be removed after Dec 31, 2022
11
- */
12
- declare function packFileBoxToChunk(fileBox: FileBoxInterface): Promise<Readable<puppet.FileBoxChunk>>;
13
- export { unpackFileBoxFromChunk, packFileBoxToChunk, };
14
- //# sourceMappingURL=file-box-chunk.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-box-chunk.d.ts","sourceRoot":"","sources":["../../../../src/deprecated/file-box-chunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAW,UAAU,CAAA;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,OAAO,EACL,QAAQ,EAET,MAA4B,wBAAwB,CAAA;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAmB3C;;GAEG;AACH,iBAAe,sBAAsB,CACnC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,GACpC,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAcD;;GAEG;AACH,iBAAe,kBAAkB,CAC/B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAcxC;AAED,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,CAAA"}