@juzi/wechaty 1.0.150 → 1.0.156
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/package-json.js +4 -4
- package/dist/cjs/src/user-modules/call.spec.js +5 -1
- package/dist/cjs/src/user-modules/call.spec.js.map +1 -1
- package/dist/cjs/src/user-modules/contact-alias-polling.spec.d.ts +3 -0
- package/dist/cjs/src/user-modules/contact-alias-polling.spec.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/contact-alias-polling.spec.js +58 -0
- package/dist/cjs/src/user-modules/contact-alias-polling.spec.js.map +1 -0
- package/dist/cjs/src/user-modules/contact.d.ts.map +1 -1
- package/dist/cjs/src/user-modules/contact.js +14 -5
- package/dist/cjs/src/user-modules/contact.js.map +1 -1
- package/dist/cjs/src/user-modules/voice.d.ts +12 -9
- package/dist/cjs/src/user-modules/voice.d.ts.map +1 -1
- package/dist/cjs/src/user-modules/voice.js +63 -11
- package/dist/cjs/src/user-modules/voice.js.map +1 -1
- package/dist/cjs/src/user-modules/voice.spec.d.ts +3 -0
- package/dist/cjs/src/user-modules/voice.spec.d.ts.map +1 -0
- package/dist/cjs/src/user-modules/voice.spec.js +155 -0
- package/dist/cjs/src/user-modules/voice.spec.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin-dirty-call.spec.d.ts +3 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin-dirty-call.spec.d.ts.map +1 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin-dirty-call.spec.js +68 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin-dirty-call.spec.js.map +1 -0
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.js +14 -9
- package/dist/cjs/src/wechaty-mixins/puppet-mixin.js.map +1 -1
- package/dist/esm/src/package-json.js +4 -4
- package/dist/esm/src/user-modules/call.spec.js +5 -1
- package/dist/esm/src/user-modules/call.spec.js.map +1 -1
- package/dist/esm/src/user-modules/contact-alias-polling.spec.d.ts +3 -0
- package/dist/esm/src/user-modules/contact-alias-polling.spec.d.ts.map +1 -0
- package/dist/esm/src/user-modules/contact-alias-polling.spec.js +56 -0
- package/dist/esm/src/user-modules/contact-alias-polling.spec.js.map +1 -0
- package/dist/esm/src/user-modules/contact.d.ts.map +1 -1
- package/dist/esm/src/user-modules/contact.js +14 -5
- package/dist/esm/src/user-modules/contact.js.map +1 -1
- package/dist/esm/src/user-modules/voice.d.ts +12 -9
- package/dist/esm/src/user-modules/voice.d.ts.map +1 -1
- package/dist/esm/src/user-modules/voice.js +63 -11
- package/dist/esm/src/user-modules/voice.js.map +1 -1
- package/dist/esm/src/user-modules/voice.spec.d.ts +3 -0
- package/dist/esm/src/user-modules/voice.spec.d.ts.map +1 -0
- package/dist/esm/src/user-modules/voice.spec.js +153 -0
- package/dist/esm/src/user-modules/voice.spec.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin-dirty-call.spec.d.ts +3 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin-dirty-call.spec.d.ts.map +1 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin-dirty-call.spec.js +43 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin-dirty-call.spec.js.map +1 -0
- package/dist/esm/src/wechaty-mixins/puppet-mixin.d.ts.map +1 -1
- package/dist/esm/src/wechaty-mixins/puppet-mixin.js +14 -9
- package/dist/esm/src/wechaty-mixins/puppet-mixin.js.map +1 -1
- package/package.json +3 -3
- package/src/package-json.ts +4 -4
- package/src/user-modules/call.spec.ts +5 -1
- package/src/user-modules/contact-alias-polling.spec.ts +70 -0
- package/src/user-modules/contact.ts +14 -5
- package/src/user-modules/voice.spec.ts +187 -0
- package/src/user-modules/voice.ts +67 -12
- package/src/wechaty-mixins/puppet-mixin-dirty-call.spec.ts +55 -0
- package/src/wechaty-mixins/puppet-mixin.ts +14 -9
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
/**
|
|
3
|
+
* Wechaty Chatbot SDK - https://github.com/wechaty/wechaty
|
|
4
|
+
*
|
|
5
|
+
* @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and
|
|
6
|
+
* Wechaty Contributors <https://github.com/wechaty>.
|
|
7
|
+
*
|
|
8
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
+
* you may not use this file except in compliance with the License.
|
|
10
|
+
* You may obtain a copy of the License at
|
|
11
|
+
*
|
|
12
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
+
*
|
|
14
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
15
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
+
* See the License for the specific language governing permissions and
|
|
18
|
+
* limitations under the License.
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
import { test, sinon, } from 'tstest';
|
|
22
|
+
import { FileBox } from 'file-box';
|
|
23
|
+
import { PuppetMock } from '@juzi/wechaty-puppet-mock';
|
|
24
|
+
import { WechatyBuilder } from '../wechaty-builder.js';
|
|
25
|
+
const MESSAGE_ID = 'message-id-voice';
|
|
26
|
+
/**
|
|
27
|
+
* The fallback must trigger ONLY when the puppet does not implement the new
|
|
28
|
+
* RPC, never on transient failures: otherwise `text()` silently drops the
|
|
29
|
+
* `noSpeech` discriminator and makes the bot re-run its own paid ASR.
|
|
30
|
+
*
|
|
31
|
+
* The puppet is built & started once and reused across cases (`wechaty.Voice`
|
|
32
|
+
* is unavailable before `start()`). `messageVoice` / `messageVoiceText` are
|
|
33
|
+
* assigned directly (rather than via `sinon.stub(puppet, ...)`) because the
|
|
34
|
+
* installed wechaty-puppet-mock predates those methods, so stubbing a
|
|
35
|
+
* non-existent property would throw.
|
|
36
|
+
*/
|
|
37
|
+
const puppet = new PuppetMock();
|
|
38
|
+
const wechaty = WechatyBuilder.build({ puppet });
|
|
39
|
+
let started = false;
|
|
40
|
+
async function ensureStarted() {
|
|
41
|
+
if (!started) {
|
|
42
|
+
await wechaty.start();
|
|
43
|
+
started = true;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const voice = () => wechaty.Voice.create(MESSAGE_ID);
|
|
47
|
+
const UNSUPPORTED = new Error('Wechaty Puppet Unsupported API Error.');
|
|
48
|
+
test('Voice.file() returns the dedicated messageVoice result when supported', async (t) => {
|
|
49
|
+
await ensureStarted();
|
|
50
|
+
puppet.messageVoice = sinon.stub().resolves(FileBox.fromBuffer(Buffer.from('voice'), 'voice.silk'));
|
|
51
|
+
puppet.messageFile = sinon.stub().resolves(FileBox.fromBuffer(Buffer.from('file'), 'file.bin'));
|
|
52
|
+
const fileBox = await voice().file();
|
|
53
|
+
t.equal(fileBox.name, 'voice.silk', 'should return the messageVoice FileBox');
|
|
54
|
+
t.ok(puppet.messageVoice.calledOnceWith(MESSAGE_ID), 'should call messageVoice');
|
|
55
|
+
t.notOk(puppet.messageFile.called, 'should NOT fall back to messageFile when supported');
|
|
56
|
+
});
|
|
57
|
+
test('Voice.file() falls back to messageFile on unsupported error', async (t) => {
|
|
58
|
+
await ensureStarted();
|
|
59
|
+
puppet.messageVoice = sinon.stub().rejects(UNSUPPORTED);
|
|
60
|
+
puppet.messageFile = sinon.stub().resolves(FileBox.fromBuffer(Buffer.from('file'), 'file.bin'));
|
|
61
|
+
const fileBox = await voice().file();
|
|
62
|
+
t.equal(fileBox.name, 'file.bin', 'should fall back to messageFile');
|
|
63
|
+
t.ok(puppet.messageFile.calledOnceWith(MESSAGE_ID), 'should call messageFile on fallback');
|
|
64
|
+
});
|
|
65
|
+
test('Voice.file() falls back to messageFile when messageVoice is absent (old puppet)', async (t) => {
|
|
66
|
+
await ensureStarted();
|
|
67
|
+
puppet.messageVoice = undefined; // old puppet built without the method at all
|
|
68
|
+
puppet.messageFile = sinon.stub().resolves(FileBox.fromBuffer(Buffer.from('file'), 'file.bin'));
|
|
69
|
+
const fileBox = await voice().file();
|
|
70
|
+
t.equal(fileBox.name, 'file.bin', 'should fall back to messageFile via the typeof guard');
|
|
71
|
+
t.ok(puppet.messageFile.calledOnceWith(MESSAGE_ID), 'should call messageFile on fallback');
|
|
72
|
+
});
|
|
73
|
+
test('Voice.file() rethrows a transient error instead of falling back', async (t) => {
|
|
74
|
+
await ensureStarted();
|
|
75
|
+
puppet.messageVoice = sinon.stub().rejects(new Error('socket hang up'));
|
|
76
|
+
puppet.messageFile = sinon.stub().resolves(FileBox.fromBuffer(Buffer.from('file'), 'file.bin'));
|
|
77
|
+
await t.rejects(() => voice().file(), /socket hang up/, 'should rethrow the transient error');
|
|
78
|
+
t.notOk(puppet.messageFile.called, 'should NOT fall back on a transient error');
|
|
79
|
+
});
|
|
80
|
+
test('Voice.file() rethrows a genuine "is not a function" TypeError from a working messageVoice', async (t) => {
|
|
81
|
+
await ensureStarted();
|
|
82
|
+
// method exists but its implementation throws internally — must NOT be
|
|
83
|
+
// misclassified as unsupported just because the message says "is not a function"
|
|
84
|
+
puppet.messageVoice = sinon.stub().rejects(new TypeError('innerHelper.process is not a function'));
|
|
85
|
+
puppet.messageFile = sinon.stub().resolves(FileBox.fromBuffer(Buffer.from('file'), 'file.bin'));
|
|
86
|
+
await t.rejects(() => voice().file(), /is not a function/, 'should rethrow the internal TypeError');
|
|
87
|
+
t.notOk(puppet.messageFile.called, 'should NOT mask a real implementation bug');
|
|
88
|
+
});
|
|
89
|
+
test('Voice.text() returns the dedicated messageVoiceText payload when supported', async (t) => {
|
|
90
|
+
await ensureStarted();
|
|
91
|
+
puppet.messageVoiceText = sinon.stub().resolves({ text: 'hello', noSpeech: false });
|
|
92
|
+
puppet.messagePayload = sinon.stub().resolves({ text: 'legacy' });
|
|
93
|
+
const result = await voice().text();
|
|
94
|
+
t.same(result, { text: 'hello', noSpeech: false }, 'should return the messageVoiceText payload');
|
|
95
|
+
t.ok(puppet.messageVoiceText.calledOnceWith(MESSAGE_ID), 'should call messageVoiceText');
|
|
96
|
+
t.notOk(puppet.messagePayload.called, 'should NOT fall back to messagePayload when supported');
|
|
97
|
+
});
|
|
98
|
+
test('Voice.text() preserves noSpeech=true from the puppet (skip paid ASR)', async (t) => {
|
|
99
|
+
await ensureStarted();
|
|
100
|
+
puppet.messageVoiceText = sinon.stub().resolves({ text: '', noSpeech: true });
|
|
101
|
+
puppet.messagePayload = sinon.stub().resolves({ text: '' });
|
|
102
|
+
const result = await voice().text();
|
|
103
|
+
t.same(result, { text: '', noSpeech: true }, 'should return the puppet payload verbatim');
|
|
104
|
+
t.equal(result.noSpeech, true, 'should preserve noSpeech=true so the bot can skip its own ASR');
|
|
105
|
+
t.ok(puppet.messageVoiceText.calledOnceWith(MESSAGE_ID), 'should call messageVoiceText');
|
|
106
|
+
t.notOk(puppet.messagePayload.called, 'should NOT fall back when supported');
|
|
107
|
+
});
|
|
108
|
+
test('Voice.text() falls back to messagePayload().text on unsupported error', async (t) => {
|
|
109
|
+
await ensureStarted();
|
|
110
|
+
puppet.messageVoiceText = sinon.stub().rejects(UNSUPPORTED);
|
|
111
|
+
puppet.messagePayload = sinon.stub().resolves({ text: 'legacy asr' });
|
|
112
|
+
const result = await voice().text();
|
|
113
|
+
t.same(result, { text: 'legacy asr', noSpeech: false }, 'should fall back to legacy payload.text with noSpeech=false');
|
|
114
|
+
t.ok(puppet.messagePayload.calledOnceWith(MESSAGE_ID), 'should call messagePayload on fallback');
|
|
115
|
+
});
|
|
116
|
+
test('Voice.text() falls back on gRPC UNIMPLEMENTED (code 12)', async (t) => {
|
|
117
|
+
await ensureStarted();
|
|
118
|
+
const unimplemented = Object.assign(new Error('12 UNIMPLEMENTED'), { code: 12 });
|
|
119
|
+
puppet.messageVoiceText = sinon.stub().rejects(unimplemented);
|
|
120
|
+
puppet.messagePayload = sinon.stub().resolves({ text: 'legacy asr' });
|
|
121
|
+
const result = await voice().text();
|
|
122
|
+
t.same(result, { text: 'legacy asr', noSpeech: false }, 'should fall back when the server returns UNIMPLEMENTED');
|
|
123
|
+
t.ok(puppet.messagePayload.calledOnceWith(MESSAGE_ID), 'should call messagePayload on fallback');
|
|
124
|
+
});
|
|
125
|
+
test('Voice.text() falls back to messagePayload when messageVoiceText is absent (old puppet)', async (t) => {
|
|
126
|
+
await ensureStarted();
|
|
127
|
+
puppet.messageVoiceText = undefined; // old puppet built without the method at all
|
|
128
|
+
puppet.messagePayload = sinon.stub().resolves({ text: 'legacy asr' });
|
|
129
|
+
const result = await voice().text();
|
|
130
|
+
t.same(result, { text: 'legacy asr', noSpeech: false }, 'should fall back via the typeof guard with noSpeech=false');
|
|
131
|
+
t.ok(puppet.messagePayload.calledOnceWith(MESSAGE_ID), 'should call messagePayload on fallback');
|
|
132
|
+
});
|
|
133
|
+
test('Voice.text() rethrows a transient error instead of falling back', async (t) => {
|
|
134
|
+
await ensureStarted();
|
|
135
|
+
puppet.messageVoiceText = sinon.stub().rejects(new Error('ETIMEDOUT'));
|
|
136
|
+
puppet.messagePayload = sinon.stub().resolves({ text: 'legacy asr' });
|
|
137
|
+
await t.rejects(() => voice().text(), /ETIMEDOUT/, 'should rethrow the transient error');
|
|
138
|
+
t.notOk(puppet.messagePayload.called, 'should NOT fall back on a transient error (would drop noSpeech)');
|
|
139
|
+
});
|
|
140
|
+
test('Voice.text() rethrows a genuine "is not a function" TypeError from a working messageVoiceText', async (t) => {
|
|
141
|
+
await ensureStarted();
|
|
142
|
+
// regression: a real internal TypeError must NOT be downgraded — that would
|
|
143
|
+
// drop noSpeech and make the bot re-run its own paid ASR
|
|
144
|
+
puppet.messageVoiceText = sinon.stub().rejects(new TypeError('innerHelper.process is not a function'));
|
|
145
|
+
puppet.messagePayload = sinon.stub().resolves({ text: 'legacy asr' });
|
|
146
|
+
await t.rejects(() => voice().text(), /is not a function/, 'should rethrow the internal TypeError');
|
|
147
|
+
t.notOk(puppet.messagePayload.called, 'should NOT mask a real implementation bug');
|
|
148
|
+
});
|
|
149
|
+
test('teardown: stop the shared wechaty', async (t) => {
|
|
150
|
+
await wechaty.stop();
|
|
151
|
+
t.pass('stopped');
|
|
152
|
+
});
|
|
153
|
+
//# sourceMappingURL=voice.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice.spec.js","sourceRoot":"","sources":["../../../../src/user-modules/voice.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppet-mixin-dirty-call.spec.d.ts","sourceRoot":"","sources":["../../../../src/wechaty-mixins/puppet-mixin-dirty-call.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
import { test } from 'tstest';
|
|
3
|
+
import * as PUPPET from '@juzi/wechaty-puppet';
|
|
4
|
+
import { PuppetMock } from '@juzi/wechaty-puppet-mock';
|
|
5
|
+
import { WechatyBuilder } from '../wechaty-builder.js';
|
|
6
|
+
/**
|
|
7
|
+
* Regression: the dirty event listener for `Payload.Call` in `puppet-mixin`
|
|
8
|
+
* used to do `await this.puppet.callPayloadDirty(payloadId)` inside the
|
|
9
|
+
* handler itself.
|
|
10
|
+
*
|
|
11
|
+
* Under wechaty-puppet-service, `callPayloadDirty` fires a gRPC
|
|
12
|
+
* `DirtyPayload` to the server, which then re-emits `dirty` back to the
|
|
13
|
+
* client through the event stream. That re-emit triggers the handler
|
|
14
|
+
* again, forming an infinite client⇄server feedback loop.
|
|
15
|
+
*
|
|
16
|
+
* All other dirty branches (Contact / Room / Message / Wxxd*) only call
|
|
17
|
+
* `find(...).ready(true)`; the Call branch was the outlier.
|
|
18
|
+
*
|
|
19
|
+
* The fix removes the in-handler `callPayloadDirty` call so the branch
|
|
20
|
+
* matches the rest of the template. This test pins that contract:
|
|
21
|
+
* emitting a Call-typed dirty event must NOT cause the handler to call
|
|
22
|
+
* `puppet.callPayloadDirty` again.
|
|
23
|
+
*/
|
|
24
|
+
test('dirty(Call) handler must NOT call callPayloadDirty (would form a gRPC loop)', async (t) => {
|
|
25
|
+
const puppet = new PuppetMock();
|
|
26
|
+
const wechaty = WechatyBuilder.build({ puppet });
|
|
27
|
+
await wechaty.start();
|
|
28
|
+
let dirtyCallCount = 0;
|
|
29
|
+
const originalCallPayloadDirty = puppet.callPayloadDirty.bind(puppet);
|
|
30
|
+
puppet.callPayloadDirty = async (id) => {
|
|
31
|
+
dirtyCallCount++;
|
|
32
|
+
return originalCallPayloadDirty(id);
|
|
33
|
+
};
|
|
34
|
+
puppet.emit('dirty', {
|
|
35
|
+
payloadType: PUPPET.types.Payload.Call,
|
|
36
|
+
payloadId: 'call-id-x',
|
|
37
|
+
});
|
|
38
|
+
// Allow the async handler to run.
|
|
39
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
40
|
+
t.equal(dirtyCallCount, 0, `dirty(Call) handler must not re-invoke callPayloadDirty; got ${dirtyCallCount} call(s)`);
|
|
41
|
+
await wechaty.stop();
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=puppet-mixin-dirty-call.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppet-mixin-dirty-call.spec.js","sourceRoot":"","sources":["../../../../src/wechaty-mixins/puppet-mixin-dirty-call.spec.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAa,QAAQ,CAAA;AACpC,OAAO,KAAK,MAAM,MAAU,sBAAsB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAO,2BAA2B,CAAA;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD;;;;;;;;;;;;;;;;;GAiBG;AACH,IAAI,CAAC,6EAA6E,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC5F,MAAM,MAAM,GAAG,IAAI,UAAU,EAAS,CAAA;IACtC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAEhD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;IAErB,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,MAAM,wBAAwB,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrE,MAAM,CAAC,gBAAgB,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;QAC7C,cAAc,EAAE,CAAA;QAChB,OAAO,wBAAwB,CAAC,EAAE,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;QACnB,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;QACtC,SAAS,EAAI,WAAW;KACzB,CAAC,CAAA;IAEF,kCAAkC;IAClC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IAErD,CAAC,CAAC,KAAK,CACL,cAAc,EACd,CAAC,EACD,gEAAgE,cAAc,UAAU,CACzF,CAAA;IAED,MAAM,OAAO,CAAC,IAAI,EAAE,CAAA;AACtB,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puppet-mixin.d.ts","sourceRoot":"","sources":["../../../../src/wechaty-mixins/puppet-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAW,sBAAsB,CAAA;AAQnD,OAAO,EAEL,gBAAgB,EAChB,oBAAoB,EACrB,MAAO,cAAc,CAAA;AAItB,OAAO,KAAK,EACV,QAAQ,EAST,MAAoC,wBAAwB,CAAA;AAa7D;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAwBS,GAAG,EAAE;;IAjB3B,yDAAyD;gBAC7C,IAAI,MAAM,EAAE,QAAQ,CAAC;;2BAUT,oBAAoB;sBAE1B,gBAAgB;;aAmBT,QAAQ,IAAI,CAAC;YA+Cd,QAAQ,IAAI,CAAC;aAyBrB,QAAQ,IAAI,CAAC;YAML,QAAQ,IAAI,CAAC;gCA8CR,OAAO,KAAK,CAAC,eAAe,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"puppet-mixin.d.ts","sourceRoot":"","sources":["../../../../src/wechaty-mixins/puppet-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAW,sBAAsB,CAAA;AAQnD,OAAO,EAEL,gBAAgB,EAChB,oBAAoB,EACrB,MAAO,cAAc,CAAA;AAItB,OAAO,KAAK,EACV,QAAQ,EAST,MAAoC,wBAAwB,CAAA;AAa7D;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDAwBS,GAAG,EAAE;;IAjB3B,yDAAyD;gBAC7C,IAAI,MAAM,EAAE,QAAQ,CAAC;;2BAUT,oBAAoB;sBAE1B,gBAAgB;;aAmBT,QAAQ,IAAI,CAAC;YA+Cd,QAAQ,IAAI,CAAC;aAyBrB,QAAQ,IAAI,CAAC;YAML,QAAQ,IAAI,CAAC;gCA8CR,OAAO,KAAK,CAAC,eAAe,GAAG,IAAI;IA2rBhE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;4BAC4B,QAAQ,oBAAkB,QAAQ,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4DzE,CAAA;AAED,aAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;AAEjD,aAAK,4BAA4B,GAC7B,UAAU,GACV,YAAY,GACZ,cAAc,GACd,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,CAAA;AAEtB,YAAY,EACV,WAAW,EACX,4BAA4B,GAC7B,CAAA;AACD,OAAO,EACL,WAAW,GACZ,CAAA"}
|
|
@@ -641,16 +641,21 @@ const puppetMixin = (mixinBase) => {
|
|
|
641
641
|
}
|
|
642
642
|
case PUPPET.types.Payload.Call: {
|
|
643
643
|
/**
|
|
644
|
-
*
|
|
645
|
-
*
|
|
646
|
-
*
|
|
647
|
-
*
|
|
648
|
-
*
|
|
649
|
-
*
|
|
650
|
-
*
|
|
651
|
-
*
|
|
644
|
+
* Refresh the user-layer Call payload so getters (media /
|
|
645
|
+
* participants / endTime) reflect the new view. Whether
|
|
646
|
+
* the call is still alive is still decided by the
|
|
647
|
+
* call-event handler via __finalizeIfEnded; we do not
|
|
648
|
+
* touch the pool here, and we do not emit a synthetic
|
|
649
|
+
* user event — the UI is expected to read getters when
|
|
650
|
+
* it needs the value.
|
|
651
|
+
*
|
|
652
|
+
* IMPORTANT: do NOT call puppet.callPayloadDirty here.
|
|
653
|
+
* Under puppet-service that fires a gRPC DirtyPayload
|
|
654
|
+
* which the server bounces back as another `dirty`
|
|
655
|
+
* event, forming an infinite client⇄server feedback
|
|
656
|
+
* loop. Cache invalidation is already handled by the
|
|
657
|
+
* cache-mixin onDirty listener registered alongside.
|
|
652
658
|
*/
|
|
653
|
-
await this.puppet.callPayloadDirty(payloadId);
|
|
654
659
|
const call = this.__callPool.get(payloadId);
|
|
655
660
|
if (call) {
|
|
656
661
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puppet-mixin.js","sourceRoot":"","sources":["../../../../src/wechaty-mixins/puppet-mixin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"puppet-mixin.js","sourceRoot":"","sources":["../../../../src/wechaty-mixins/puppet-mixin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juzi/wechaty",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.156",
|
|
4
4
|
"description": "Wechaty is a RPA SDK for Chatbot Makers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
},
|
|
110
110
|
"homepage": "https://github.com/wechaty/",
|
|
111
111
|
"dependencies": {
|
|
112
|
-
"@juzi/wechaty-puppet-service": "1.0.
|
|
112
|
+
"@juzi/wechaty-puppet-service": "1.0.119",
|
|
113
113
|
"clone-class": "^1.1.1",
|
|
114
114
|
"cmd-ts": "^0.10.0",
|
|
115
115
|
"cockatiel": "^2.0.2",
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"@chatie/eslint-config": "^1.0.4",
|
|
133
133
|
"@chatie/semver": "^0.4.7",
|
|
134
134
|
"@chatie/tsconfig": "^4.6.3",
|
|
135
|
-
"@juzi/wechaty-puppet": "^1.0.
|
|
135
|
+
"@juzi/wechaty-puppet": "^1.0.143",
|
|
136
136
|
"@juzi/wechaty-puppet-mock": "^1.0.1",
|
|
137
137
|
"@swc/core": "1.3.44",
|
|
138
138
|
"@swc/helpers": "^0.3.6",
|
package/src/package-json.ts
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { PackageJsonWechaty } from './config'
|
|
6
6
|
|
|
7
|
-
export const GIT_COMMIT_HASH: string = '
|
|
7
|
+
export const GIT_COMMIT_HASH: string = 'fc009a425c4ec3b7dee53eee50896b4ffc383f70'
|
|
8
8
|
export const packageJson: PackageJsonWechaty = {
|
|
9
9
|
"name": "@juzi/wechaty",
|
|
10
|
-
"version": "1.0.
|
|
10
|
+
"version": "1.0.156",
|
|
11
11
|
"description": "Wechaty is a RPA SDK for Chatbot Makers.",
|
|
12
12
|
"type": "module",
|
|
13
13
|
"exports": {
|
|
@@ -116,7 +116,7 @@ export const packageJson: PackageJsonWechaty = {
|
|
|
116
116
|
},
|
|
117
117
|
"homepage": "https://github.com/wechaty/",
|
|
118
118
|
"dependencies": {
|
|
119
|
-
"@juzi/wechaty-puppet-service": "1.0.
|
|
119
|
+
"@juzi/wechaty-puppet-service": "1.0.119",
|
|
120
120
|
"clone-class": "^1.1.1",
|
|
121
121
|
"cmd-ts": "^0.10.0",
|
|
122
122
|
"cockatiel": "^2.0.2",
|
|
@@ -139,7 +139,7 @@ export const packageJson: PackageJsonWechaty = {
|
|
|
139
139
|
"@chatie/eslint-config": "^1.0.4",
|
|
140
140
|
"@chatie/semver": "^0.4.7",
|
|
141
141
|
"@chatie/tsconfig": "^4.6.3",
|
|
142
|
-
"@juzi/wechaty-puppet": "^1.0.
|
|
142
|
+
"@juzi/wechaty-puppet": "^1.0.143",
|
|
143
143
|
"@juzi/wechaty-puppet-mock": "^1.0.1",
|
|
144
144
|
"@swc/core": "1.3.44",
|
|
145
145
|
"@swc/helpers": "^0.3.6",
|
|
@@ -922,7 +922,11 @@ test('dirty(Call) refreshes user-layer payload so getters see new value', async
|
|
|
922
922
|
await flush()
|
|
923
923
|
|
|
924
924
|
t.equal(incoming!.media(), PUPPET.types.CallMediaType.Video, 'media should reflect refreshed payload after dirty')
|
|
925
|
-
|
|
925
|
+
// Note: the handler intentionally does NOT call puppet.callPayloadDirty;
|
|
926
|
+
// doing so would form a gRPC loop under puppet-service (server bounces the
|
|
927
|
+
// dirty back through the event stream). Cache invalidation is handled by
|
|
928
|
+
// the cache-mixin onDirty listener; the user-visible contract is that
|
|
929
|
+
// .media() above reflects the fresh server value.
|
|
926
930
|
|
|
927
931
|
await wechaty.stop()
|
|
928
932
|
sandbox.restore()
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
|
|
3
|
+
import { test } from 'tstest'
|
|
4
|
+
import { PuppetMock } from '@juzi/wechaty-puppet-mock'
|
|
5
|
+
|
|
6
|
+
import { WechatyBuilder } from '../wechaty-builder.js'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Regression: `Contact.alias(newAlias)` invokes
|
|
10
|
+
* 1. puppet.contactAlias(id, newAlias) // gRPC write
|
|
11
|
+
* 2. puppet.contactPayloadDirty(id) // ONCE, outside the loop ← BUG
|
|
12
|
+
* 3. loop 10× { sleep 300ms; puppet.contactPayload(id); check }
|
|
13
|
+
*
|
|
14
|
+
* Under puppet-service the first contactPayload() call after a dirty
|
|
15
|
+
* clears both the LRU and the FlashStore, then refills both with the
|
|
16
|
+
* fresh fetch. LRU TTL is 15 minutes, so iterations 2..10 hit the LRU
|
|
17
|
+
* and return iteration-1's payload forever. If the underlying protocol
|
|
18
|
+
* (puppet-phoenix etc.) was still propagating the alias change at the
|
|
19
|
+
* moment of iteration 1, the 9 follow-up retries become no-ops and
|
|
20
|
+
* `alias()` throws "still got old alias after 10 tries".
|
|
21
|
+
*
|
|
22
|
+
* The fix moves contactPayloadDirty INTO the loop so every retry
|
|
23
|
+
* forces a fresh fetch. This test pins that contract: under a forced
|
|
24
|
+
* stale-read scenario, contactPayloadDirty must be called more than
|
|
25
|
+
* once.
|
|
26
|
+
*/
|
|
27
|
+
test('alias() must call contactPayloadDirty on every poll iteration', async t => {
|
|
28
|
+
const puppet = new PuppetMock() as any
|
|
29
|
+
const wechaty = WechatyBuilder.build({ puppet })
|
|
30
|
+
|
|
31
|
+
// Swallow the wechaty-level error the alias() impl re-emits after
|
|
32
|
+
// its 10 poll iterations all fail to confirm the new alias; without
|
|
33
|
+
// this, the unhandled 'error' event tears down the test.
|
|
34
|
+
wechaty.on('error', () => {})
|
|
35
|
+
|
|
36
|
+
const mockMe = puppet.mocker.createContact({ name: 'me' })
|
|
37
|
+
const mockUser = puppet.mocker.createContact({ name: 'Alice' })
|
|
38
|
+
|
|
39
|
+
await wechaty.start()
|
|
40
|
+
await puppet.mocker.login(mockMe)
|
|
41
|
+
|
|
42
|
+
let dirtyCount = 0
|
|
43
|
+
puppet.contactPayloadDirty = async (_: string) => {
|
|
44
|
+
dirtyCount++
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Simulate the protocol-layer "alias write accepted" but
|
|
48
|
+
// payload reads keep returning the OLD alias — the exact stuck
|
|
49
|
+
// scenario the polling loop is supposed to wait out.
|
|
50
|
+
puppet.contactAlias = async (_id: string, _newAlias: string) => {}
|
|
51
|
+
puppet.contactPayload = async (id: string) => ({
|
|
52
|
+
id,
|
|
53
|
+
alias: 'OLD',
|
|
54
|
+
name: 'Alice',
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
const contact = await wechaty.Contact.find({ id: mockUser.id })
|
|
58
|
+
t.ok(contact, 'sanity: find returned a contact')
|
|
59
|
+
|
|
60
|
+
// alias() traps internally and emits through wechaty error channel.
|
|
61
|
+
// We do NOT assert on the throw — only on dirty-call cadence.
|
|
62
|
+
await contact!.alias('NEW')
|
|
63
|
+
|
|
64
|
+
t.ok(
|
|
65
|
+
dirtyCount > 1,
|
|
66
|
+
`contactPayloadDirty must be called inside the retry loop, not just once before it; got ${dirtyCount}`,
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
await wechaty.stop()
|
|
70
|
+
})
|
|
@@ -496,22 +496,31 @@ class ContactMixin extends MixinBase implements SayableSayer {
|
|
|
496
496
|
|
|
497
497
|
try {
|
|
498
498
|
await this.wechaty.puppet.contactAlias(this.id, newAlias)
|
|
499
|
-
await this.wechaty.puppet.contactPayloadDirty(this.id)
|
|
500
499
|
|
|
501
500
|
/**
|
|
502
501
|
* In normal puppet, the dirty event handler, onDirty, is a sync function, so the contactPayload will get the new payload
|
|
503
502
|
* However for wechaty-puppet-service, it uses flashstore to cache payloads, and deleting a cache is an async function
|
|
504
|
-
* So there is a chance contactPayload will still get old contact
|
|
503
|
+
* So there is a chance contactPayload will still get old contact.
|
|
504
|
+
*
|
|
505
|
+
* The puppet LRU TTL (15min) is far longer than the 300ms retry
|
|
506
|
+
* tick, so a dirty fired ONCE before the loop only invalidates
|
|
507
|
+
* the cache for iteration 1 — the iteration-1 fetch immediately
|
|
508
|
+
* refills both LRU and FlashStore, and iterations 2..10 hit the
|
|
509
|
+
* LRU and return iteration-1's payload forever. Dirty must fire
|
|
510
|
+
* on every retry so every read goes to source.
|
|
505
511
|
*/
|
|
506
512
|
let maxCheck = 10
|
|
507
513
|
let changed = false
|
|
508
514
|
while (maxCheck-- > 0 && !changed) {
|
|
509
|
-
await
|
|
510
|
-
setTimeout(resolve, 300)
|
|
511
|
-
})
|
|
515
|
+
await this.wechaty.puppet.contactPayloadDirty(this.id)
|
|
512
516
|
this.payload = await this.wechaty.puppet.contactPayload(this.id)
|
|
513
517
|
const payloadAlias = this.payload.alias || ''
|
|
514
518
|
changed = newAlias === payloadAlias
|
|
519
|
+
if (!changed) {
|
|
520
|
+
await new Promise(resolve => {
|
|
521
|
+
setTimeout(resolve, 300)
|
|
522
|
+
})
|
|
523
|
+
}
|
|
515
524
|
}
|
|
516
525
|
if (!changed) {
|
|
517
526
|
throw new Error('failed to modify clias, still got old alias after 10 tries')
|