@talex-touch/utils 1.0.42 → 1.0.44

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 (233) hide show
  1. package/.eslintcache +1 -0
  2. package/__tests__/cloud-sync-sdk.test.ts +442 -0
  3. package/__tests__/icons/icons.test.ts +84 -0
  4. package/__tests__/plugin-sdk-lifecycle.test.ts +130 -0
  5. package/__tests__/power-sdk.test.ts +143 -0
  6. package/__tests__/preset-export-types.test.ts +108 -0
  7. package/__tests__/search/fuzzy-match.test.ts +137 -0
  8. package/__tests__/transport/port-policy.test.ts +44 -0
  9. package/__tests__/transport-domain-sdks.test.ts +152 -0
  10. package/__tests__/types/update.test.ts +67 -0
  11. package/account/account-sdk.ts +915 -0
  12. package/account/index.ts +2 -0
  13. package/account/types.ts +321 -0
  14. package/analytics/client.ts +136 -0
  15. package/analytics/index.ts +2 -0
  16. package/analytics/types.ts +156 -0
  17. package/animation/auto-resize.ts +322 -0
  18. package/animation/window-node.ts +26 -19
  19. package/auth/clerk-types.ts +12 -30
  20. package/auth/index.ts +0 -2
  21. package/auth/useAuthState.ts +6 -14
  22. package/base/index.ts +2 -0
  23. package/base/log-level.ts +105 -0
  24. package/channel/index.ts +170 -69
  25. package/cloud-sync/cloud-sync-sdk.ts +450 -0
  26. package/cloud-sync/index.ts +1 -0
  27. package/common/file-scan-utils.ts +17 -9
  28. package/common/index.ts +4 -0
  29. package/common/logger/index.ts +46 -0
  30. package/common/logger/logger-manager.ts +303 -0
  31. package/common/logger/module-logger.ts +270 -0
  32. package/common/logger/transport-logger.ts +234 -0
  33. package/common/logger/types.ts +93 -0
  34. package/common/search/gather.ts +48 -6
  35. package/common/search/index.ts +8 -0
  36. package/common/storage/constants.ts +13 -0
  37. package/common/storage/entity/app-settings.ts +245 -0
  38. package/common/storage/entity/index.ts +3 -0
  39. package/common/storage/entity/layout-atom-types.ts +147 -0
  40. package/common/storage/entity/openers.ts +1 -0
  41. package/common/storage/entity/preset-cloud-api.ts +132 -0
  42. package/common/storage/entity/preset-export-types.ts +256 -0
  43. package/common/storage/entity/shortcut-settings.ts +1 -0
  44. package/common/storage/shortcut-storage.ts +11 -0
  45. package/common/utils/clone-diagnostics.ts +105 -0
  46. package/common/utils/file.ts +16 -8
  47. package/common/utils/index.ts +6 -2
  48. package/common/utils/payload-preview.ts +173 -0
  49. package/common/utils/polling.ts +167 -13
  50. package/common/utils/safe-path.ts +103 -0
  51. package/common/utils/safe-shell.ts +115 -0
  52. package/common/utils/task-queue.ts +4 -1
  53. package/core-box/builder/tuff-builder.ts +0 -1
  54. package/core-box/index.ts +1 -1
  55. package/core-box/recommendation.ts +38 -1
  56. package/core-box/tuff/tuff-dsl.ts +32 -0
  57. package/electron/download-manager.ts +10 -7
  58. package/electron/env-tool.ts +42 -40
  59. package/electron/index.ts +0 -1
  60. package/env/index.ts +156 -0
  61. package/eslint.config.js +55 -0
  62. package/i18n/index.ts +62 -0
  63. package/i18n/locales/en.json +226 -0
  64. package/i18n/locales/zh.json +226 -0
  65. package/i18n/message-keys.ts +236 -0
  66. package/i18n/resolver.ts +181 -0
  67. package/icons/index.ts +257 -0
  68. package/icons/svg.ts +69 -0
  69. package/index.ts +9 -1
  70. package/intelligence/client.ts +72 -42
  71. package/market/constants.ts +9 -5
  72. package/market/index.ts +1 -1
  73. package/market/types.ts +19 -4
  74. package/package.json +15 -5
  75. package/permission/index.ts +143 -46
  76. package/permission/legacy.ts +26 -0
  77. package/permission/registry.ts +304 -0
  78. package/permission/types.ts +164 -0
  79. package/plugin/channel.ts +68 -39
  80. package/plugin/index.ts +80 -7
  81. package/plugin/install.ts +3 -0
  82. package/plugin/log/types.ts +22 -5
  83. package/plugin/node/logger-manager.ts +11 -3
  84. package/plugin/node/logger.ts +24 -17
  85. package/plugin/preload.ts +25 -2
  86. package/plugin/providers/index.ts +4 -4
  87. package/plugin/providers/market-client.ts +6 -3
  88. package/plugin/providers/npm-provider.ts +22 -7
  89. package/plugin/providers/tpex-provider.ts +22 -8
  90. package/plugin/sdk/box-items.ts +14 -0
  91. package/plugin/sdk/box-sdk.ts +64 -0
  92. package/plugin/sdk/channel.ts +119 -4
  93. package/plugin/sdk/clipboard.ts +26 -12
  94. package/plugin/sdk/cloud-sync.ts +113 -0
  95. package/plugin/sdk/common.ts +19 -11
  96. package/plugin/sdk/core-box.ts +6 -15
  97. package/plugin/sdk/division-box.ts +160 -65
  98. package/plugin/sdk/examples/storage-onDidChange-example.js +5 -2
  99. package/plugin/sdk/feature-sdk.ts +111 -76
  100. package/plugin/sdk/flow.ts +146 -45
  101. package/plugin/sdk/hooks/bridge.ts +13 -6
  102. package/plugin/sdk/hooks/life-cycle.ts +35 -16
  103. package/plugin/sdk/index.ts +14 -3
  104. package/plugin/sdk/intelligence.ts +87 -0
  105. package/plugin/sdk/meta/README.md +179 -0
  106. package/plugin/sdk/meta-sdk.ts +244 -0
  107. package/plugin/sdk/notification.ts +9 -0
  108. package/plugin/sdk/plugin-info.ts +64 -0
  109. package/plugin/sdk/power.ts +155 -0
  110. package/plugin/sdk/recommend.ts +21 -0
  111. package/plugin/sdk/service/index.ts +12 -8
  112. package/plugin/sdk/sqlite.ts +141 -0
  113. package/plugin/sdk/storage.ts +2 -6
  114. package/plugin/sdk/system.ts +2 -9
  115. package/plugin/sdk/temp-files.ts +41 -0
  116. package/plugin/sdk/touch-sdk.ts +18 -0
  117. package/plugin/sdk/types.ts +44 -4
  118. package/plugin/sdk/window/index.ts +12 -9
  119. package/plugin/sdk-version.ts +231 -0
  120. package/preload/renderer.ts +3 -2
  121. package/renderer/hooks/arg-mapper.ts +16 -2
  122. package/renderer/hooks/index.ts +13 -0
  123. package/renderer/hooks/initialize.ts +2 -1
  124. package/renderer/hooks/use-agent-market-sdk.ts +7 -0
  125. package/renderer/hooks/use-agent-market.ts +106 -0
  126. package/renderer/hooks/use-agents-sdk.ts +7 -0
  127. package/renderer/hooks/use-app-sdk.ts +7 -0
  128. package/renderer/hooks/use-channel.ts +33 -4
  129. package/renderer/hooks/use-download-sdk.ts +21 -0
  130. package/renderer/hooks/use-intelligence-sdk.ts +7 -0
  131. package/renderer/hooks/use-intelligence-stats.ts +290 -0
  132. package/renderer/hooks/use-intelligence.ts +55 -214
  133. package/renderer/hooks/use-market-sdk.ts +16 -0
  134. package/renderer/hooks/use-notification-sdk.ts +7 -0
  135. package/renderer/hooks/use-permission-sdk.ts +7 -0
  136. package/renderer/hooks/use-permission.ts +325 -0
  137. package/renderer/hooks/use-platform-sdk.ts +7 -0
  138. package/renderer/hooks/use-plugin-sdk.ts +16 -0
  139. package/renderer/hooks/use-settings-sdk.ts +7 -0
  140. package/renderer/hooks/use-update-sdk.ts +21 -0
  141. package/renderer/index.ts +1 -0
  142. package/renderer/ref.ts +19 -10
  143. package/renderer/shared/components/SharedPluginDetailContent.vue +84 -0
  144. package/renderer/shared/components/SharedPluginDetailHeader.vue +116 -0
  145. package/renderer/shared/components/SharedPluginDetailMetaList.vue +39 -0
  146. package/renderer/shared/components/SharedPluginDetailReadme.vue +45 -0
  147. package/renderer/shared/components/SharedPluginDetailVersions.vue +98 -0
  148. package/renderer/shared/components/index.ts +5 -0
  149. package/renderer/shared/components/shims-vue.d.ts +5 -0
  150. package/renderer/shared/index.ts +2 -0
  151. package/renderer/shared/plugin-detail.ts +62 -0
  152. package/renderer/storage/app-settings.ts +3 -1
  153. package/renderer/storage/base-storage.ts +508 -82
  154. package/renderer/storage/intelligence-storage.ts +31 -40
  155. package/renderer/storage/openers.ts +3 -1
  156. package/renderer/storage/storage-subscription.ts +126 -42
  157. package/renderer/touch-sdk/env.ts +10 -10
  158. package/renderer/touch-sdk/index.ts +114 -18
  159. package/renderer/touch-sdk/terminal.ts +24 -13
  160. package/search/feature-matcher.ts +279 -0
  161. package/search/fuzzy-match.ts +64 -34
  162. package/search/index.ts +10 -0
  163. package/search/levenshtein-utils.ts +17 -11
  164. package/transport/errors.ts +310 -0
  165. package/transport/event/builder.ts +378 -0
  166. package/transport/event/index.ts +7 -0
  167. package/transport/event/types.ts +292 -0
  168. package/transport/events/index.ts +2670 -0
  169. package/transport/events/meta-overlay.ts +79 -0
  170. package/transport/events/types/agents.ts +177 -0
  171. package/transport/events/types/app-index.ts +9 -0
  172. package/transport/events/types/app.ts +475 -0
  173. package/transport/events/types/box-item.ts +222 -0
  174. package/transport/events/types/clipboard.ts +80 -0
  175. package/transport/events/types/core-box.ts +534 -0
  176. package/transport/events/types/device-idle.ts +7 -0
  177. package/transport/events/types/division-box.ts +99 -0
  178. package/transport/events/types/download.ts +115 -0
  179. package/transport/events/types/file-index.ts +73 -0
  180. package/transport/events/types/flow.ts +149 -0
  181. package/transport/events/types/index.ts +70 -0
  182. package/transport/events/types/market.ts +39 -0
  183. package/transport/events/types/meta-overlay.ts +184 -0
  184. package/transport/events/types/notification.ts +140 -0
  185. package/transport/events/types/permission.ts +90 -0
  186. package/transport/events/types/platform.ts +8 -0
  187. package/transport/events/types/plugin.ts +620 -0
  188. package/transport/events/types/sentry.ts +20 -0
  189. package/transport/events/types/storage.ts +208 -0
  190. package/transport/events/types/transport.ts +60 -0
  191. package/transport/events/types/tray.ts +16 -0
  192. package/transport/events/types/update.ts +78 -0
  193. package/transport/index.ts +139 -0
  194. package/transport/main.ts +2 -0
  195. package/transport/sdk/constants.ts +29 -0
  196. package/transport/sdk/domains/agents-market.ts +47 -0
  197. package/transport/sdk/domains/agents.ts +62 -0
  198. package/transport/sdk/domains/app.ts +48 -0
  199. package/transport/sdk/domains/disposable.ts +35 -0
  200. package/transport/sdk/domains/download.ts +139 -0
  201. package/transport/sdk/domains/index.ts +13 -0
  202. package/transport/sdk/domains/intelligence.ts +616 -0
  203. package/transport/sdk/domains/market.ts +35 -0
  204. package/transport/sdk/domains/notification.ts +62 -0
  205. package/transport/sdk/domains/permission.ts +85 -0
  206. package/transport/sdk/domains/platform.ts +19 -0
  207. package/transport/sdk/domains/plugin.ts +144 -0
  208. package/transport/sdk/domains/settings.ts +92 -0
  209. package/transport/sdk/domains/update.ts +64 -0
  210. package/transport/sdk/index.ts +60 -0
  211. package/transport/sdk/main-transport.ts +710 -0
  212. package/transport/sdk/main.ts +9 -0
  213. package/transport/sdk/plugin-transport.ts +654 -0
  214. package/transport/sdk/port-policy.ts +38 -0
  215. package/transport/sdk/renderer-transport.ts +1165 -0
  216. package/transport/types.ts +605 -0
  217. package/types/agent.ts +399 -0
  218. package/types/cloud-sync.ts +157 -0
  219. package/types/division-box.ts +31 -31
  220. package/types/download.ts +1 -0
  221. package/types/flow.ts +63 -12
  222. package/types/icon.ts +2 -1
  223. package/types/index.ts +5 -0
  224. package/types/intelligence.ts +166 -173
  225. package/types/modules/base.ts +2 -0
  226. package/types/path-browserify.d.ts +5 -0
  227. package/types/platform.ts +12 -0
  228. package/types/startup-info.ts +32 -0
  229. package/types/touch-app-core.ts +8 -8
  230. package/types/update.ts +94 -1
  231. package/vitest.config.ts +25 -0
  232. package/auth/useClerkConfig.ts +0 -40
  233. package/auth/useClerkProvider.ts +0 -52
package/channel/index.ts CHANGED
@@ -1,183 +1,284 @@
1
+ /**
2
+ * Channel type for IPC communication.
3
+ * @deprecated Use TuffTransport from `@talex-touch/utils/transport` instead. Will be removed in v3.0.0.
4
+ */
1
5
  export enum ChannelType {
2
6
  MAIN = 'main',
3
7
  PLUGIN = 'plugin',
4
8
  }
5
9
 
10
+ /**
11
+ * Response status codes for channel communication.
12
+ * @deprecated Use TuffTransportErrorCode from `@talex-touch/utils/transport` instead. Will be removed in v3.0.0.
13
+ */
6
14
  export enum DataCode {
7
15
  SUCCESS = 200,
8
16
  NETWORK_ERROR = 500,
9
17
  ERROR = 100,
10
18
  }
11
19
 
20
+ /**
21
+ * Callback type for channel event handlers.
22
+ * @deprecated Use TuffTransport event handlers instead. Will be removed in v3.0.0.
23
+ */
12
24
  export type ChannelCallback = (data: StandardChannelData) => any
13
25
 
26
+ /**
27
+ * Main process channel interface for IPC communication.
28
+ * @deprecated Use ITuffTransportMain from `@talex-touch/utils/transport` instead. Will be removed in v3.0.0.
29
+ * @see {@link https://github.com/talex-touch/tuff/blob/main/packages/utils/transport/types.ts | TuffTransport Types}
30
+ */
14
31
  export interface ITouchChannel {
15
32
 
16
33
  /**
17
- * Register a channel
18
- * @description Register a channel, and return a function to cancel the registration
19
- * @param type {@link ChannelType} The type of channel
20
- * @param eventName {string} The name of event, must be unique in the channel {@link ChannelType}
21
- * @param callback {Function} The callback function
34
+ * Register a channel event handler.
35
+ * @deprecated Use `transport.on(TuffEvent, handler)` from TuffTransport instead.
36
+ * @param type - The channel type (MAIN or PLUGIN)
37
+ * @param eventName - The event name (string-based, not type-safe)
38
+ * @param callback - The callback function
39
+ * @returns Unsubscribe function
22
40
  */
23
41
  regChannel: (type: ChannelType, eventName: string, callback: ChannelCallback) => () => void
24
42
 
25
43
  /**
26
- * Unregister a channel
27
- * @description Unregister a channel by type, event name and callback
28
- * @param type {@link ChannelType} The type of channel
29
- * @param eventName {string} The name of event
30
- * @param callback {Function} The callback function to unregister
31
- * @returns {boolean} Returns true if the channel was successfully unregistered, false otherwise
44
+ * Unregister a channel event handler.
45
+ * @deprecated Use the cleanup function returned by `transport.on()` instead.
46
+ * @param type - The channel type
47
+ * @param eventName - The event name
48
+ * @param callback - The callback to unregister
49
+ * @returns `true` if successfully unregistered
32
50
  */
33
51
  unregChannel: (type: ChannelType, eventName: string, callback: ChannelCallback) => boolean
34
52
 
35
53
  /**
36
- * @deprecated Use sendMain instead
37
- * Send a message to a channel
38
- * @param type {@link ChannelType} The type of channel
39
- * @param eventName {string} The name of event, must be unique in the channel {@link ChannelType}
40
- * @param arg {any} The arguments of the message
54
+ * Send a message to a channel.
55
+ * @deprecated Use `transport.send(TuffEvent, payload)` from TuffTransport instead.
56
+ * @param type - The channel type
57
+ * @param eventName - The event name
58
+ * @param arg - The message payload
59
+ * @returns Promise resolving to the response
41
60
  */
42
61
  send: (type: ChannelType, eventName: string, arg?: any) => Promise<any>
43
62
 
44
63
  /**
45
- * @deprecated Use sendToMain instead
46
- * Send a message to a channel with settled window
47
- * @param win {@link Electron.BrowserWindow} the window you want to sent
48
- * @param type {@link ChannelType} The type of channel
49
- * @param eventName {string} The name of event, must be unique in the channel {@link ChannelType}
50
- * @param arg {any} The arguments of the message
64
+ * Send a message to a specific window.
65
+ * @deprecated Use `transport.sendTo(webContents, TuffEvent, payload)` from TuffTransport instead.
66
+ * @param win - The target BrowserWindow
67
+ * @param type - The channel type
68
+ * @param eventName - The event name
69
+ * @param arg - The message payload
70
+ * @returns Promise resolving to the response
51
71
  */
52
72
  sendTo: (win: Electron.BrowserWindow, type: ChannelType, eventName: string, arg: any) => Promise<any>
53
73
 
54
74
  /**
55
- * Send a message to main process
56
- * @param eventName {string} The name of event, must be unique in the channel {@link ChannelType}
57
- * @param arg {any} The arguments of the message
75
+ * Send a message to the main renderer process.
76
+ * @deprecated Use `transport.send(TuffEvent, payload)` from TuffTransport instead.
77
+ * @param eventName - The event name
78
+ * @param arg - The message payload
79
+ * @returns Promise resolving to the response
58
80
  */
59
81
  sendMain: (eventName: string, arg?: any) => Promise<any>
60
82
 
61
83
  /**
62
- * Send a message to main process with settled window
63
- * @param win {@link Electron.BrowserWindow} the window you want to sent
64
- * @param eventName {string} The name of event, must be unique in the channel {@link ChannelType}
65
- * @param arg {any} The arguments of the message
84
+ * Send a message to a specific window's main renderer.
85
+ * @deprecated Use `transport.sendTo(webContents, TuffEvent, payload)` from TuffTransport instead.
86
+ * @param win - The target BrowserWindow
87
+ * @param eventName - The event name
88
+ * @param arg - The message payload
89
+ * @returns Promise resolving to the response
66
90
  */
67
91
  sendToMain: (win: Electron.BrowserWindow, eventName: string, arg?: any) => Promise<any>
68
92
 
69
93
  /**
70
- * Send a message to all plugin process with settled window
71
- * @param eventName {string} The name of event, must be unique in the channel {@link ChannelType}
72
- * @param arg {any} The arguments of the message
94
+ * Send a message to a plugin's renderer.
95
+ * @deprecated Use `transport.sendToPlugin(pluginName, TuffEvent, payload)` from TuffTransport instead.
96
+ * @param pluginName - The target plugin name
97
+ * @param eventName - The event name
98
+ * @param arg - The message payload
99
+ * @returns Promise resolving to the response
73
100
  */
74
101
  sendPlugin: (pluginName: string, eventName: string, arg?: any) => Promise<any>
75
102
 
76
103
  /**
77
- * Send a message to plugin process with settled window
78
- * @param pluginName {string} The name of plugin
79
- * @param eventName {string} The name of event, must be unique in the channel {@link ChannelType}
80
- * @param arg {any} The arguments of the message
104
+ * Send a message to a plugin's renderer (alias).
105
+ * @deprecated Use `transport.sendToPlugin(pluginName, TuffEvent, payload)` from TuffTransport instead.
106
+ * @param pluginName - The target plugin name
107
+ * @param eventName - The event name
108
+ * @param arg - The message payload
109
+ * @returns Promise resolving to the response
81
110
  */
82
111
  sendToPlugin: (pluginName: string, eventName: string, arg?: any) => Promise<any>
83
112
 
84
113
  /**
85
- * Request a encrypted name key. This key cannot decrypted to get the original name.
86
- * After use, you should revoke this key.
87
- * @description Request a encrypted name key, and return the encrypted key
88
- * @param name {string} The name of key
114
+ * Broadcast a message without waiting for a response.
115
+ * Use for notification-style messages that don't need acknowledgment.
116
+ * @param type - The channel type
117
+ * @param eventName - The event name
118
+ * @param arg - The message payload
119
+ */
120
+ broadcast: (type: ChannelType, eventName: string, arg?: any) => void
121
+
122
+ /**
123
+ * Broadcast a message to a specific window without waiting for a response.
124
+ * @deprecated Use `transport.broadcastToWindow(windowId, event, payload)` from TuffTransport instead.
125
+ * @param win - The target BrowserWindow
126
+ * @param type - The channel type
127
+ * @param eventName - The event name
128
+ * @param arg - The message payload
129
+ */
130
+ broadcastTo: (win: Electron.BrowserWindow, type: ChannelType, eventName: string, arg?: any) => void
131
+
132
+ /**
133
+ * Broadcast a message to a plugin without waiting for a response.
134
+ * @param pluginName - The target plugin name
135
+ * @param eventName - The event name
136
+ * @param arg - The message payload
137
+ */
138
+ broadcastPlugin: (pluginName: string, eventName: string, arg?: any) => void
139
+
140
+ /**
141
+ * Request an encrypted key for plugin identification.
142
+ * @remarks This mechanism is preserved in TuffTransport via PluginKeyManager.
143
+ * @param name - The plugin name
144
+ * @returns The encrypted key
89
145
  */
90
146
  requestKey: (name: string) => string
91
147
 
92
148
  /**
93
- * Unregister a encrypted name key
94
- * @description Unregister a encrypted name key, and return the encrypted key
95
- * @param key {string} The encrypted key
149
+ * Revoke a previously issued plugin key.
150
+ * @remarks This mechanism is preserved in TuffTransport via PluginKeyManager.
151
+ * @param key - The key to revoke
152
+ * @returns `true` if successfully revoked
96
153
  */
97
154
  revokeKey: (key: string) => boolean
98
155
  }
99
156
 
157
+ /**
158
+ * Renderer-side channel interface for IPC communication.
159
+ * @deprecated Use ITuffTransport from `@talex-touch/utils/transport` instead. Will be removed in v3.0.0.
160
+ */
100
161
  export interface ITouchClientChannel {
101
162
 
102
163
  /**
103
- * Register a channel
104
- * @description Register a channel, and return a function to cancel the registration
105
- * @param type {@link ChannelType} The type of channel
106
- * @param eventName {string} The name of event, must be unique in the channel {@link ChannelType
107
- * @param callback {Function} The callback function
164
+ * Register a channel event handler.
165
+ * @deprecated Use `transport.on(TuffEvent, handler)` from TuffTransport instead.
166
+ * @param eventName - The event name (string-based, not type-safe)
167
+ * @param callback - The callback function
168
+ * @returns Unsubscribe function
108
169
  */
109
170
  regChannel: (eventName: string, callback: (data: StandardChannelData) => any) => () => void
110
171
 
111
172
  /**
112
- * Unregister a channel
113
- * @description Unregister a channel by event name and callback
114
- * @param eventName {string} The name of event
115
- * @param callback {Function} The callback function to unregister
116
- * @returns {boolean} Returns true if the channel was successfully unregistered, false otherwise
173
+ * Unregister a channel event handler.
174
+ * @deprecated Use the cleanup function returned by `transport.on()` instead.
175
+ * @param eventName - The event name
176
+ * @param callback - The callback function to unregister
177
+ * @returns `true` if successfully unregistered
117
178
  */
118
179
  unRegChannel: (eventName: string, callback: (data: StandardChannelData) => any) => boolean
119
180
 
120
181
  /**
121
- * Send a message to a channel
122
- * @param eventName {string} The name of event, must be unique in the channel {@link ChannelType}
123
- * @param arg {any} The arguments of the message
182
+ * Send a message to the main process.
183
+ * @deprecated Use `transport.send(TuffEvent, payload)` from TuffTransport instead.
184
+ * @param eventName - The event name
185
+ * @param arg - The message payload
186
+ * @returns Promise resolving to the response
124
187
  */
125
188
  send: (eventName: string, arg?: any) => Promise<any>
126
189
 
127
190
  /**
128
- * Send a message to a channel and get the response
129
- * @param eventName {string} The name of event, must be unique in the channel {@link ChannelType}
130
- * @param arg {any} The arguments of the message
191
+ * Send a synchronous message and get the response.
192
+ * @deprecated Synchronous IPC is discouraged. Use async `transport.send()` from TuffTransport instead.
193
+ * @param eventName - The event name
194
+ * @param arg - The message payload
195
+ * @returns Response payload
131
196
  */
132
197
  sendSync: (eventName: string, arg?: any) => any
133
198
  }
134
199
 
200
+ /**
201
+ * Internal sync data structure.
202
+ * @deprecated Internal type, will be removed in v3.0.0.
203
+ * @internal
204
+ */
135
205
  export interface RawChannelSyncData {
136
206
  timeStamp: number
137
207
  /**
138
- * The sync-data timeout
139
- * @description The unit is milliseconds, and set it to 0 to cancel it.
140
- * @default 10000
208
+ * Timeout in milliseconds.
209
+ * @defaultValue 10000
141
210
  */
142
- timeout: 10000
211
+ timeout: number
143
212
 
144
213
  /**
145
- * The sync-data unique id
146
- * @description To identify each sync-request.
214
+ * Unique request ID for correlation.
147
215
  */
148
216
  id: string
149
217
  }
150
218
 
219
+ /**
220
+ * Internal channel header data.
221
+ * @deprecated Internal type, will be removed in v3.0.0.
222
+ * @internal
223
+ */
151
224
  export interface RawChannelHeaderData {
152
225
  status: 'reply' | 'request'
153
226
  type: ChannelType
154
227
  _originData?: any
228
+ /**
229
+ * Plugin security key for authentication.
230
+ * @remarks This is preserved in TuffTransport via PluginSecurityContext.
231
+ */
155
232
  uniqueKey?: string
156
233
  event?: Electron.IpcMainEvent | Electron.IpcMainInvokeEvent | Electron.IpcRendererEvent
157
234
  plugin?: string
158
235
  }
159
236
 
237
+ /**
238
+ * Base channel data structure.
239
+ * @deprecated Internal type, will be removed in v3.0.0.
240
+ * @internal
241
+ */
160
242
  export interface RawChannelData {
161
243
  name: string
162
244
  header: RawChannelHeaderData
163
245
  sync?: RawChannelSyncData
164
246
  }
165
247
 
248
+ /**
249
+ * Standard channel data with code and payload.
250
+ * @deprecated Internal type, will be removed in v3.0.0.
251
+ * @internal
252
+ */
166
253
  export interface RawStandardChannelData extends RawChannelData {
167
254
  code: DataCode
168
255
  data?: IChannelData
169
256
  plugin?: string
170
257
  }
171
258
 
259
+ /**
260
+ * Channel data with reply callback.
261
+ * @deprecated Use TuffTransport handler context instead. Will be removed in v3.0.0.
262
+ */
172
263
  export interface StandardChannelData extends RawStandardChannelData {
264
+ /**
265
+ * Reply to the request.
266
+ * @param code - Response status code
267
+ * @param data - Response payload
268
+ */
173
269
  reply: (code: DataCode, data: IChannelData) => void
174
270
  }
175
271
 
176
- export type IChannelData = any // boolean | number | string | null | undefined | {
177
- // [prop: string]: any
178
- // }
272
+ /**
273
+ * Generic channel data type.
274
+ * @deprecated Will be removed in v3.0.0.
275
+ */
276
+ export type IChannelData = any
179
277
 
180
- // Default export for Vite compatibility (only values, not types)
278
+ /**
279
+ * Default export for Vite compatibility.
280
+ * @deprecated Import named exports instead.
281
+ */
181
282
  export default {
182
283
  ChannelType,
183
284
  DataCode,