@zhin.js/adapter-weixin-ilink 3.0.2 → 3.0.3

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 (160) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +16 -39
  3. package/adapters/weixin-ilink.ts +30 -0
  4. package/lib/aes-ecb.d.ts +0 -1
  5. package/lib/aes-ecb.js +0 -1
  6. package/lib/cdn-upload.d.ts +0 -1
  7. package/lib/cdn-upload.js +0 -1
  8. package/lib/cdn-url.d.ts +0 -1
  9. package/lib/cdn-url.js +0 -1
  10. package/lib/context-store.d.ts +0 -1
  11. package/lib/context-store.js +0 -1
  12. package/lib/credentials.d.ts +0 -1
  13. package/lib/credentials.js +0 -1
  14. package/lib/endpoint.d.ts +35 -30
  15. package/lib/endpoint.js +217 -235
  16. package/lib/ilink-api.d.ts +0 -1
  17. package/lib/ilink-api.js +0 -1
  18. package/lib/ilink-config-cache.d.ts +0 -1
  19. package/lib/ilink-config-cache.js +0 -1
  20. package/lib/ilink-logger.d.ts +0 -1
  21. package/lib/ilink-logger.js +0 -1
  22. package/lib/ilink-meta.d.ts +0 -1
  23. package/lib/ilink-meta.js +0 -1
  24. package/lib/ilink-random.d.ts +0 -1
  25. package/lib/ilink-random.js +0 -1
  26. package/lib/ilink-redact.d.ts +0 -1
  27. package/lib/ilink-redact.js +0 -1
  28. package/lib/ilink-session-guard.d.ts +0 -1
  29. package/lib/ilink-session-guard.js +0 -1
  30. package/lib/ilink-types.d.ts +0 -1
  31. package/lib/ilink-types.js +0 -1
  32. package/lib/index.d.ts +4 -19
  33. package/lib/index.js +2 -37
  34. package/lib/login.d.ts +4 -6
  35. package/lib/login.js +43 -65
  36. package/lib/media-download.d.ts +0 -1
  37. package/lib/media-download.js +0 -1
  38. package/lib/mime.d.ts +0 -1
  39. package/lib/mime.js +0 -1
  40. package/lib/outbound-media.d.ts +4 -4
  41. package/lib/outbound-media.js +44 -42
  42. package/lib/pic-decrypt.d.ts +0 -1
  43. package/lib/pic-decrypt.js +0 -1
  44. package/lib/protocol.d.ts +52 -0
  45. package/lib/protocol.js +109 -0
  46. package/lib/silk-transcode.d.ts +0 -1
  47. package/lib/silk-transcode.js +0 -1
  48. package/lib/types.d.ts +2 -16
  49. package/lib/types.js +0 -1
  50. package/lib/upload.d.ts +0 -1
  51. package/lib/upload.js +0 -1
  52. package/lib/weixin-inbound.d.ts +0 -1
  53. package/lib/weixin-inbound.js +0 -1
  54. package/lib/weixin-send-media.d.ts +0 -1
  55. package/lib/weixin-send-media.js +0 -1
  56. package/lib/weixin-send.d.ts +0 -1
  57. package/lib/weixin-send.js +0 -1
  58. package/package.json +37 -46
  59. package/plugin.ts +8 -0
  60. package/schema.json +30 -0
  61. package/src/endpoint.ts +261 -279
  62. package/src/index.ts +24 -53
  63. package/src/login.ts +56 -72
  64. package/src/outbound-media.ts +56 -50
  65. package/src/protocol.ts +172 -0
  66. package/src/types.ts +6 -15
  67. package/client/LoginAssistPanel.tsx +0 -200
  68. package/client/WeixinIlinkManagement.tsx +0 -139
  69. package/client/index.tsx +0 -11
  70. package/client/tsconfig.json +0 -13
  71. package/client/utils/api.ts +0 -30
  72. package/dist/index.js +0 -29
  73. package/lib/adapter.d.ts +0 -14
  74. package/lib/adapter.d.ts.map +0 -1
  75. package/lib/adapter.js +0 -21
  76. package/lib/adapter.js.map +0 -1
  77. package/lib/aes-ecb.d.ts.map +0 -1
  78. package/lib/aes-ecb.js.map +0 -1
  79. package/lib/cdn-upload.d.ts.map +0 -1
  80. package/lib/cdn-upload.js.map +0 -1
  81. package/lib/cdn-upload.test.d.ts +0 -2
  82. package/lib/cdn-upload.test.d.ts.map +0 -1
  83. package/lib/cdn-upload.test.js +0 -150
  84. package/lib/cdn-upload.test.js.map +0 -1
  85. package/lib/cdn-url.d.ts.map +0 -1
  86. package/lib/cdn-url.js.map +0 -1
  87. package/lib/context-store.d.ts.map +0 -1
  88. package/lib/context-store.js.map +0 -1
  89. package/lib/credentials.d.ts.map +0 -1
  90. package/lib/credentials.js.map +0 -1
  91. package/lib/endpoint.d.ts.map +0 -1
  92. package/lib/endpoint.js.map +0 -1
  93. package/lib/ilink-api.d.ts.map +0 -1
  94. package/lib/ilink-api.js.map +0 -1
  95. package/lib/ilink-config-cache.d.ts.map +0 -1
  96. package/lib/ilink-config-cache.js.map +0 -1
  97. package/lib/ilink-logger.d.ts.map +0 -1
  98. package/lib/ilink-logger.js.map +0 -1
  99. package/lib/ilink-meta.d.ts.map +0 -1
  100. package/lib/ilink-meta.js.map +0 -1
  101. package/lib/ilink-random.d.ts.map +0 -1
  102. package/lib/ilink-random.js.map +0 -1
  103. package/lib/ilink-redact.d.ts.map +0 -1
  104. package/lib/ilink-redact.js.map +0 -1
  105. package/lib/ilink-session-guard.d.ts.map +0 -1
  106. package/lib/ilink-session-guard.js.map +0 -1
  107. package/lib/ilink-types.d.ts.map +0 -1
  108. package/lib/ilink-types.js.map +0 -1
  109. package/lib/index.d.ts.map +0 -1
  110. package/lib/index.js.map +0 -1
  111. package/lib/login-assist-routes.d.ts +0 -7
  112. package/lib/login-assist-routes.d.ts.map +0 -1
  113. package/lib/login-assist-routes.js +0 -29
  114. package/lib/login-assist-routes.js.map +0 -1
  115. package/lib/login.d.ts.map +0 -1
  116. package/lib/login.js.map +0 -1
  117. package/lib/media-download.d.ts.map +0 -1
  118. package/lib/media-download.js.map +0 -1
  119. package/lib/mime.d.ts.map +0 -1
  120. package/lib/mime.js.map +0 -1
  121. package/lib/mime.test.d.ts +0 -2
  122. package/lib/mime.test.d.ts.map +0 -1
  123. package/lib/mime.test.js +0 -62
  124. package/lib/mime.test.js.map +0 -1
  125. package/lib/outbound-media.d.ts.map +0 -1
  126. package/lib/outbound-media.js.map +0 -1
  127. package/lib/pic-decrypt.d.ts.map +0 -1
  128. package/lib/pic-decrypt.js.map +0 -1
  129. package/lib/routes.d.ts +0 -8
  130. package/lib/routes.d.ts.map +0 -1
  131. package/lib/routes.js +0 -29
  132. package/lib/routes.js.map +0 -1
  133. package/lib/segment-mapper.d.ts +0 -2
  134. package/lib/segment-mapper.d.ts.map +0 -1
  135. package/lib/segment-mapper.js +0 -2
  136. package/lib/segment-mapper.js.map +0 -1
  137. package/lib/silk-transcode.d.ts.map +0 -1
  138. package/lib/silk-transcode.js.map +0 -1
  139. package/lib/silk-transcode.test.d.ts +0 -2
  140. package/lib/silk-transcode.test.d.ts.map +0 -1
  141. package/lib/silk-transcode.test.js +0 -53
  142. package/lib/silk-transcode.test.js.map +0 -1
  143. package/lib/types.d.ts.map +0 -1
  144. package/lib/types.js.map +0 -1
  145. package/lib/upload.d.ts.map +0 -1
  146. package/lib/upload.js.map +0 -1
  147. package/lib/upload.test.d.ts +0 -2
  148. package/lib/upload.test.d.ts.map +0 -1
  149. package/lib/upload.test.js +0 -250
  150. package/lib/upload.test.js.map +0 -1
  151. package/lib/weixin-inbound.d.ts.map +0 -1
  152. package/lib/weixin-inbound.js.map +0 -1
  153. package/lib/weixin-send-media.d.ts.map +0 -1
  154. package/lib/weixin-send-media.js.map +0 -1
  155. package/lib/weixin-send.d.ts.map +0 -1
  156. package/lib/weixin-send.js.map +0 -1
  157. package/src/adapter.ts +0 -24
  158. package/src/login-assist-routes.ts +0 -36
  159. package/src/routes.ts +0 -39
  160. package/src/segment-mapper.ts +0 -1
package/lib/types.d.ts CHANGED
@@ -1,16 +1,2 @@
1
- export interface WeixinIlinkEndpointConfig {
2
- context: "weixin-ilink";
3
- name: string;
4
- /** 观测用 bot_agent,默认 Zhin.js/<version> */
5
- botAgent?: string;
6
- /** iLink API 根地址,默认 https://ilinkai.weixin.qq.com */
7
- baseUrl?: string;
8
- /** CDN 根地址 */
9
- cdnBaseUrl?: string;
10
- /** 长轮询超时(ms),默认 35000 */
11
- longPollTimeoutMs?: number;
12
- /** 直接配置 token(优先于侧车凭证文件) */
13
- botToken?: string;
14
- }
15
- export type { WeixinMessage, MessageItem } from "./ilink-types.js";
16
- //# sourceMappingURL=types.d.ts.map
1
+ export type { WeixinIlinkEndpointConfig, WeixinIlinkAdapterConfig, ResolvedWeixinIlinkConfig, } from './protocol.js';
2
+ export type { WeixinMessage, MessageItem } from './ilink-types.js';
package/lib/types.js CHANGED
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=types.js.map
package/lib/upload.d.ts CHANGED
@@ -40,4 +40,3 @@ export declare function uploadFileAttachmentToWeixin(params: {
40
40
  opts: WeixinApiOptions;
41
41
  cdnBaseUrl: string;
42
42
  }): Promise<UploadedFileInfo>;
43
- //# sourceMappingURL=upload.d.ts.map
package/lib/upload.js CHANGED
@@ -103,4 +103,3 @@ export async function uploadFileAttachmentToWeixin(params) {
103
103
  label: "uploadFileAttachmentToWeixin",
104
104
  });
105
105
  }
106
- //# sourceMappingURL=upload.js.map
@@ -68,4 +68,3 @@ export type WeixinInboundMediaOpts = {
68
68
  export declare function weixinMessageToMsgContext(msg: WeixinMessage, accountId: string, opts?: WeixinInboundMediaOpts): WeixinMsgContext;
69
69
  /** Extract the context_token from an inbound WeixinMsgContext. */
70
70
  export declare function getContextTokenFromMsgContext(ctx: WeixinMsgContext): string | undefined;
71
- //# sourceMappingURL=weixin-inbound.d.ts.map
@@ -198,4 +198,3 @@ export function weixinMessageToMsgContext(msg, accountId, opts) {
198
198
  export function getContextTokenFromMsgContext(ctx) {
199
199
  return ctx.context_token;
200
200
  }
201
- //# sourceMappingURL=weixin-inbound.js.map
@@ -19,4 +19,3 @@ export declare function sendWeixinMediaFile(params: {
19
19
  }): Promise<{
20
20
  messageId: string;
21
21
  }>;
22
- //# sourceMappingURL=weixin-send-media.d.ts.map
@@ -51,4 +51,3 @@ export async function sendWeixinMediaFile(params) {
51
51
  logger.info(`[weixin] sendWeixinMediaFile: file upload done filekey=${uploaded.filekey} size=${uploaded.fileSize}`);
52
52
  return sendFileMessageWeixin({ to, text, fileName, uploaded, opts });
53
53
  }
54
- //# sourceMappingURL=weixin-send-media.js.map
@@ -62,4 +62,3 @@ export declare function sendFileMessageWeixin(params: {
62
62
  }): Promise<{
63
63
  messageId: string;
64
64
  }>;
65
- //# sourceMappingURL=weixin-send.d.ts.map
@@ -178,4 +178,3 @@ export async function sendFileMessageWeixin(params) {
178
178
  };
179
179
  return sendMediaItems({ to, text, mediaItem: fileItem, opts, label: "sendFileMessageWeixin" });
180
180
  }
181
- //# sourceMappingURL=weixin-send.js.map
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@zhin.js/adapter-weixin-ilink",
3
- "version": "3.0.2",
3
+ "version": "3.0.3",
4
4
  "type": "module",
5
- "description": "Zhin.js adapter for WeChat personal account via Tencent iLink Endpoint API (ClawBot)",
5
+ "description": "Zhin.js Weixin iLink (ClawBot) adapter for Plugin Runtime (long-poll)",
6
6
  "main": "./lib/index.js",
7
7
  "types": "./lib/index.d.ts",
8
8
  "keywords": [
@@ -27,11 +27,11 @@
27
27
  "directory": "plugins/adapters/weixin-ilink"
28
28
  },
29
29
  "files": [
30
+ "adapters",
31
+ "plugin.ts",
32
+ "schema.json",
30
33
  "src",
31
34
  "lib",
32
- "client",
33
- "dist",
34
- "skills",
35
35
  "README.md",
36
36
  "CHANGELOG.md"
37
37
  ],
@@ -46,58 +46,49 @@
46
46
  "import": "./lib/index.js"
47
47
  }
48
48
  },
49
- "dependencies": {},
50
- "devDependencies": {
51
- "@radix-ui/themes": "^3.2.1",
52
- "@types/react": "^19.2.17",
53
- "@types/react-dom": "^19.2.3",
54
- "lucide-react": "^1.22.0",
55
- "radix-ui": "^1.6.2",
56
- "typescript": "^6.0.3",
57
- "zod": "^4.4.3",
58
- "@zhin.js/agent": "1.0.3",
59
- "@zhin.js/cli": "1.0.93",
60
- "@zhin.js/client": "2.0.5",
61
- "@zhin.js/contract": "1.0.3",
62
- "@zhin.js/core": "1.3.4",
63
- "@zhin.js/host-api": "2.0.5",
64
- "@zhin.js/host-router": "2.0.3",
65
- "zhin.js": "4.1.2"
49
+ "dependencies": {
50
+ "@zhin.js/adapter": "1.0.1",
51
+ "@zhin.js/core": "1.3.5",
52
+ "@zhin.js/logger": "1.0.75",
53
+ "@zhin.js/plugin-runtime": "1.0.1"
66
54
  },
67
55
  "peerDependencies": {
68
- "zod": "^4.0.0",
69
- "@zhin.js/agent": "1.0.3",
70
- "@zhin.js/client": "2.0.5",
71
- "@zhin.js/contract": "1.0.3",
72
- "@zhin.js/core": "1.3.4",
73
- "@zhin.js/host-api": "2.0.5",
74
- "@zhin.js/host-router": "2.0.3",
75
- "zhin.js": "4.1.2"
56
+ "@zhin.js/adapter": "1.0.1",
57
+ "@zhin.js/core": "1.3.5",
58
+ "@zhin.js/plugin-runtime": "1.0.1",
59
+ "zhin.js": "4.1.3"
76
60
  },
77
61
  "peerDependenciesMeta": {
78
- "@zhin.js/agent": {
79
- "optional": true
80
- },
81
- "@zhin.js/client": {
82
- "optional": true
83
- },
84
- "@zhin.js/host-api": {
85
- "optional": true
86
- },
87
- "@zhin.js/host-router": {
88
- "optional": true
89
- },
90
- "zod": {
62
+ "zhin.js": {
91
63
  "optional": true
92
64
  }
93
65
  },
66
+ "devDependencies": {
67
+ "@types/node": "^26.1.0",
68
+ "typescript": "^6.0.3",
69
+ "vitest": "^4.1.10"
70
+ },
94
71
  "ilink_appid": "bot",
95
72
  "engines": {
96
73
  "node": "^20.19.0 || >=22.12.0"
97
74
  },
75
+ "zhin": {
76
+ "protocol": 1,
77
+ "type": "plugin",
78
+ "entry": "./plugin.ts",
79
+ "engine": "^1.0.0",
80
+ "runtime": "trusted",
81
+ "features": [
82
+ {
83
+ "package": "@zhin.js/adapter",
84
+ "api": "^1.0.0"
85
+ }
86
+ ],
87
+ "plugins": []
88
+ },
98
89
  "scripts": {
99
- "build": "zhin build",
100
- "build:node": "tsc",
101
- "clean": "rimraf lib dist"
90
+ "build": "tsc",
91
+ "clean": "rimraf lib",
92
+ "test": "NODE_OPTIONS=--experimental-strip-types vitest run --root ../../.. plugins/adapters/weixin-ilink/tests"
102
93
  }
103
94
  }
package/plugin.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { definePlugin } from '@zhin.js/plugin-runtime';
2
+
3
+ export default definePlugin({
4
+ name: 'weixin-ilink',
5
+ metadata: {
6
+ displayName: 'Weixin iLink Adapter',
7
+ },
8
+ });
package/schema.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "name": {
7
+ "type": "string",
8
+ "default": "weixin-ilink-bot"
9
+ },
10
+ "botAgent": {
11
+ "type": "string"
12
+ },
13
+ "baseUrl": {
14
+ "type": "string",
15
+ "default": "https://ilinkai.weixin.qq.com"
16
+ },
17
+ "cdnBaseUrl": {
18
+ "type": "string",
19
+ "default": "https://novac2c.cdn.weixin.qq.com/c2c"
20
+ },
21
+ "longPollTimeoutMs": {
22
+ "type": "number",
23
+ "default": 35000
24
+ },
25
+ "botToken": {
26
+ "type": "string",
27
+ "description": "iLink bot token (prefer env WEIXIN_ILINK_TOKEN or sidecar credential file)"
28
+ }
29
+ }
30
+ }