@amaster.ai/pi-channels 0.1.2-beta.2 → 0.1.2-beta.21

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 (59) hide show
  1. package/README.md +77 -26
  2. package/dist/adapters/dingtalk.d.ts +5 -0
  3. package/dist/adapters/dingtalk.d.ts.map +1 -0
  4. package/dist/adapters/dingtalk.js +269 -0
  5. package/dist/adapters/dingtalk.js.map +1 -0
  6. package/dist/adapters/feishu.d.ts.map +1 -1
  7. package/dist/adapters/feishu.js +122 -5
  8. package/dist/adapters/feishu.js.map +1 -1
  9. package/dist/adapters/wecom/adapter.d.ts +3 -1
  10. package/dist/adapters/wecom/adapter.d.ts.map +1 -1
  11. package/dist/adapters/wecom/adapter.js +194 -157
  12. package/dist/adapters/wecom/adapter.js.map +1 -1
  13. package/dist/adapters/wecom.d.ts +0 -2
  14. package/dist/adapters/wecom.d.ts.map +1 -1
  15. package/dist/adapters/wecom.js +0 -1
  16. package/dist/adapters/wecom.js.map +1 -1
  17. package/dist/bridge-provider.d.ts +3 -0
  18. package/dist/bridge-provider.d.ts.map +1 -0
  19. package/dist/bridge-provider.js +79 -0
  20. package/dist/bridge-provider.js.map +1 -0
  21. package/dist/bridge.d.ts +1 -0
  22. package/dist/bridge.d.ts.map +1 -1
  23. package/dist/bridge.js +316 -8
  24. package/dist/bridge.js.map +1 -1
  25. package/dist/config.d.ts +1 -0
  26. package/dist/config.d.ts.map +1 -1
  27. package/dist/config.js +94 -18
  28. package/dist/config.js.map +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +557 -25
  31. package/dist/index.js.map +1 -1
  32. package/dist/registry.d.ts +12 -2
  33. package/dist/registry.d.ts.map +1 -1
  34. package/dist/registry.js +93 -22
  35. package/dist/registry.js.map +1 -1
  36. package/dist/types.d.ts +38 -12
  37. package/dist/types.d.ts.map +1 -1
  38. package/package.json +17 -3
  39. package/preview.png +0 -0
  40. package/dist/adapters/wecom/client.d.ts +0 -13
  41. package/dist/adapters/wecom/client.d.ts.map +0 -1
  42. package/dist/adapters/wecom/client.js +0 -116
  43. package/dist/adapters/wecom/client.js.map +0 -1
  44. package/dist/adapters/wecom/crypto.d.ts +0 -14
  45. package/dist/adapters/wecom/crypto.d.ts.map +0 -1
  46. package/dist/adapters/wecom/crypto.js +0 -37
  47. package/dist/adapters/wecom/crypto.js.map +0 -1
  48. package/dist/adapters/wecom/errors.d.ts +0 -25
  49. package/dist/adapters/wecom/errors.d.ts.map +0 -1
  50. package/dist/adapters/wecom/errors.js +0 -56
  51. package/dist/adapters/wecom/errors.js.map +0 -1
  52. package/dist/adapters/wecom/types.d.ts +0 -52
  53. package/dist/adapters/wecom/types.d.ts.map +0 -1
  54. package/dist/adapters/wecom/types.js +0 -2
  55. package/dist/adapters/wecom/types.js.map +0 -1
  56. package/dist/adapters/wecom/xml.d.ts +0 -4
  57. package/dist/adapters/wecom/xml.d.ts.map +0 -1
  58. package/dist/adapters/wecom/xml.js +0 -16
  59. package/dist/adapters/wecom/xml.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/adapters/wecom/client.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export declare function sha1Signature(token: string, timestamp: string, nonce: string, encrypted: string): string;
2
- export declare function timingSafeEqualString(a: string, b: string): boolean;
3
- export declare function verifyWeComSignature(params: {
4
- token: string;
5
- timestamp?: string | null;
6
- nonce?: string | null;
7
- encrypted?: string | null;
8
- provided?: string | null;
9
- }): boolean;
10
- export declare function decryptWeComEnvelope(encrypted: string, encodingAesKey: string): {
11
- message: string;
12
- receiveId: string;
13
- };
14
- //# sourceMappingURL=crypto.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/adapters/wecom/crypto.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,MAAM,CAIR;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAInE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,OAAO,CAKV;AAQD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAYxC"}
@@ -1,37 +0,0 @@
1
- import { createDecipheriv, createHash, timingSafeEqual } from 'node:crypto';
2
- export function sha1Signature(token, timestamp, nonce, encrypted) {
3
- return createHash('sha1')
4
- .update([token, timestamp, nonce, encrypted].sort().join(''))
5
- .digest('hex');
6
- }
7
- export function timingSafeEqualString(a, b) {
8
- const left = Buffer.from(a);
9
- const right = Buffer.from(b);
10
- return left.length === right.length && timingSafeEqual(left, right);
11
- }
12
- export function verifyWeComSignature(params) {
13
- const { token, timestamp, nonce, encrypted, provided } = params;
14
- if (!token || !timestamp || !nonce || !encrypted || !provided)
15
- return false;
16
- const expected = sha1Signature(token, timestamp, nonce, encrypted);
17
- return timingSafeEqualString(expected, provided);
18
- }
19
- function pkcs7Unpad(buffer) {
20
- const pad = buffer.at(-1);
21
- if (!pad || pad < 1 || pad > 32)
22
- return buffer;
23
- return buffer.subarray(0, buffer.length - pad);
24
- }
25
- export function decryptWeComEnvelope(encrypted, encodingAesKey) {
26
- const aesKey = Buffer.from(`${encodingAesKey}=`, 'base64');
27
- if (aesKey.length !== 32)
28
- throw new Error('Invalid WeCom encodingAesKey');
29
- const decipher = createDecipheriv('aes-256-cbc', aesKey, aesKey.subarray(0, 16));
30
- decipher.setAutoPadding(false);
31
- const decrypted = pkcs7Unpad(Buffer.concat([decipher.update(encrypted, 'base64'), decipher.final()]));
32
- const msgLength = decrypted.readUInt32BE(16);
33
- const message = decrypted.subarray(20, 20 + msgLength).toString('utf-8');
34
- const receiveId = decrypted.subarray(20 + msgLength).toString('utf-8');
35
- return { message, receiveId };
36
- }
37
- //# sourceMappingURL=crypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../src/adapters/wecom/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,UAAU,aAAa,CAC3B,KAAa,EACb,SAAiB,EACjB,KAAa,EACb,SAAiB;IAEjB,OAAO,UAAU,CAAC,MAAM,CAAC;SACtB,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5D,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAAS,EAAE,CAAS;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAMpC;IACC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAChE,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5E,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACnE,OAAO,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,MAAM,CAAC;IAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,cAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjF,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,UAAU,CAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CACxE,CAAC;IACF,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC"}
@@ -1,25 +0,0 @@
1
- export type WeComErrorCategory = 'ip_whitelist' | 'invalid_credential' | 'invalid_recipient' | 'rate_limited' | 'network' | 'api';
2
- export type WeComApiErrorDetails = {
3
- operation: string;
4
- errcode?: number | undefined;
5
- errmsg?: string | undefined;
6
- status?: number | undefined;
7
- category?: WeComErrorCategory | undefined;
8
- invalidUser?: string | undefined;
9
- invalidParty?: string | undefined;
10
- invalidTag?: string | undefined;
11
- };
12
- export declare function categorizeWeComError(errcode?: number, errmsg?: string): WeComErrorCategory;
13
- export declare class WeComApiError extends Error {
14
- readonly operation: string;
15
- readonly errcode: number | undefined;
16
- readonly errmsg: string | undefined;
17
- readonly status: number | undefined;
18
- readonly category: WeComErrorCategory;
19
- readonly invalidUser: string | undefined;
20
- readonly invalidParty: string | undefined;
21
- readonly invalidTag: string | undefined;
22
- readonly hint: string;
23
- constructor(details: WeComApiErrorDetails);
24
- }
25
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/adapters/wecom/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,oBAAoB,GACpB,mBAAmB,GACnB,cAAc,GACd,SAAS,GACT,KAAK,CAAC;AAEV,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,kBAAkB,CAUtF;AAkBD,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,oBAAoB;CAgB1C"}
@@ -1,56 +0,0 @@
1
- export function categorizeWeComError(errcode, errmsg = '') {
2
- if (errcode === 60020 || errmsg.includes('not allow to access from your ip')) {
3
- return 'ip_whitelist';
4
- }
5
- if ([40001, 40013, 40014, 41001, 41002, 42001].includes(errcode ?? Number.NaN)) {
6
- return 'invalid_credential';
7
- }
8
- if ([81013, 84061].includes(errcode ?? Number.NaN))
9
- return 'invalid_recipient';
10
- if ([45009, 45011].includes(errcode ?? Number.NaN))
11
- return 'rate_limited';
12
- return 'api';
13
- }
14
- function hintFor(category) {
15
- if (category === 'ip_whitelist') {
16
- return '企业微信拒绝了当前出口 IP,请在企业微信后台把运行机器或代理出口加入可信 IP,或配置固定出口代理。';
17
- }
18
- if (category === 'invalid_credential') {
19
- return '请检查 CorpID、应用 Secret、AgentId 以及 token 是否来自同一个企业微信自建应用。';
20
- }
21
- if (category === 'invalid_recipient') {
22
- return '请检查接收人、部门、标签或 appchat id 是否存在且该应用有可见范围权限。';
23
- }
24
- if (category === 'rate_limited') {
25
- return '企业微信接口触发限频,请稍后重试或降低发送频率。';
26
- }
27
- return '请参考企业微信接口错误码进一步排查。';
28
- }
29
- export class WeComApiError extends Error {
30
- operation;
31
- errcode;
32
- errmsg;
33
- status;
34
- category;
35
- invalidUser;
36
- invalidParty;
37
- invalidTag;
38
- hint;
39
- constructor(details) {
40
- const category = details.category ?? categorizeWeComError(details.errcode, details.errmsg);
41
- const code = details.errcode === undefined ? '' : ` ${details.errcode}`;
42
- const reason = details.errmsg || (details.status ? `HTTP ${details.status}` : 'unknown error');
43
- super(`WeCom ${details.operation} error:${code} ${reason}. ${hintFor(category)}`);
44
- this.name = 'WeComApiError';
45
- this.operation = details.operation;
46
- this.errcode = details.errcode;
47
- this.errmsg = details.errmsg;
48
- this.status = details.status;
49
- this.category = category;
50
- this.invalidUser = details.invalidUser;
51
- this.invalidParty = details.invalidParty;
52
- this.invalidTag = details.invalidTag;
53
- this.hint = hintFor(category);
54
- }
55
- }
56
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/adapters/wecom/errors.ts"],"names":[],"mappings":"AAmBA,MAAM,UAAU,oBAAoB,CAAC,OAAgB,EAAE,MAAM,GAAG,EAAE;IAChE,IAAI,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;QAC7E,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/E,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAC/E,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,cAAc,CAAC;IAC1E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,QAA4B;IAC3C,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;QAChC,OAAO,qDAAqD,CAAC;IAC/D,CAAC;IACD,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;QACtC,OAAO,wDAAwD,CAAC;IAClE,CAAC;IACD,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QACrC,OAAO,2CAA2C,CAAC;IACrD,CAAC;IACD,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;QAChC,OAAO,0BAA0B,CAAC;IACpC,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,SAAS,CAAS;IAClB,OAAO,CAAqB;IAC5B,MAAM,CAAqB;IAC3B,MAAM,CAAqB;IAC3B,QAAQ,CAAqB;IAC7B,WAAW,CAAqB;IAChC,YAAY,CAAqB;IACjC,UAAU,CAAqB;IAC/B,IAAI,CAAS;IAEtB,YAAY,OAA6B;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3F,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAC/F,KAAK,CAAC,SAAS,OAAO,CAAC,SAAS,UAAU,IAAI,IAAI,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;CACF"}
@@ -1,52 +0,0 @@
1
- import type { ChannelMessage, WeComAdapterConfig } from '../../types.js';
2
- export type WeComNetworkOptions = {
3
- timeoutMs: number;
4
- };
5
- export type WeComAgentAccount = {
6
- corpId: string;
7
- agentId: number;
8
- secret: string;
9
- baseUrl: string;
10
- tokenRefreshBufferSeconds: number;
11
- network: WeComNetworkOptions;
12
- };
13
- export type WeComRecipient = {
14
- kind: 'user';
15
- id: string;
16
- } | {
17
- kind: 'party';
18
- id: string;
19
- } | {
20
- kind: 'tag';
21
- id: string;
22
- } | {
23
- kind: 'appchat';
24
- id: string;
25
- };
26
- export type WeComTextTarget = {
27
- touser?: string;
28
- toparty?: string;
29
- totag?: string;
30
- chatid?: string;
31
- };
32
- export type WeComIncomingContext = {
33
- token: string;
34
- encodingAesKey: string;
35
- receiveId?: string;
36
- corpId: string;
37
- };
38
- export type NormalizedWeComConfig = WeComAdapterConfig & {
39
- corpId: string;
40
- agentId: number;
41
- secret: string;
42
- baseUrl: string;
43
- timeoutMs: number;
44
- tokenRefreshBufferSeconds: number;
45
- incoming?: WeComAdapterConfig['incoming'];
46
- };
47
- export type ResolvedOutboundMessage = {
48
- target: WeComTextTarget;
49
- text: string;
50
- raw: ChannelMessage;
51
- };
52
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/wecom/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB,EAAE,MAAM,CAAC;IAClC,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpC,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,cAAc,CAAC;CACrB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/wecom/types.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- export declare function xmlTag(xml: string, tag: string): string | undefined;
2
- export declare function decodeXml(value: string): string;
3
- export declare function xmlText(xml: string, tag: string): string;
4
- //# sourceMappingURL=xml.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../../../src/adapters/wecom/xml.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKnE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD"}
@@ -1,16 +0,0 @@
1
- export function xmlTag(xml, tag) {
2
- const match = xml.match(new RegExp(`<${tag}><!\\[CDATA\\[([\\s\\S]*?)\\]\\]></${tag}>|<${tag}>([\\s\\S]*?)</${tag}>`));
3
- return match?.[1] ?? match?.[2];
4
- }
5
- export function decodeXml(value) {
6
- return value
7
- .replace(/&lt;/g, '<')
8
- .replace(/&gt;/g, '>')
9
- .replace(/&quot;/g, '"')
10
- .replace(/&apos;/g, "'")
11
- .replace(/&amp;/g, '&');
12
- }
13
- export function xmlText(xml, tag) {
14
- return decodeXml(xmlTag(xml, tag) ?? '');
15
- }
16
- //# sourceMappingURL=xml.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xml.js","sourceRoot":"","sources":["../../../src/adapters/wecom/xml.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,GAAW;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CACrB,IAAI,MAAM,CAAC,IAAI,GAAG,sCAAsC,GAAG,MAAM,GAAG,kBAAkB,GAAG,GAAG,CAAC,CAC9F,CAAC;IACF,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,KAAK;SACT,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,GAAW;IAC9C,OAAO,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC"}