ly-utils-lib 1.0.12 → 2.5.0

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 (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1002 -685
  3. package/dist/array.cjs +237 -0
  4. package/dist/array.cjs.map +1 -0
  5. package/dist/array.d.cts +2 -0
  6. package/dist/array.d.ts +2 -0
  7. package/dist/array.js +150 -0
  8. package/dist/array.js.map +1 -0
  9. package/dist/crypto.cjs +193 -0
  10. package/dist/crypto.cjs.map +1 -0
  11. package/dist/crypto.d.cts +3 -0
  12. package/dist/crypto.d.ts +3 -0
  13. package/dist/crypto.js +144 -0
  14. package/dist/crypto.js.map +1 -0
  15. package/dist/date.cjs +563 -0
  16. package/dist/date.cjs.map +1 -0
  17. package/dist/date.d.cts +2 -0
  18. package/dist/date.d.ts +2 -0
  19. package/dist/date.js +451 -0
  20. package/dist/date.js.map +1 -0
  21. package/dist/excel.cjs +227 -0
  22. package/dist/excel.cjs.map +1 -0
  23. package/dist/excel.d.cts +2 -0
  24. package/dist/excel.d.ts +2 -0
  25. package/dist/excel.js +196 -0
  26. package/dist/excel.js.map +1 -0
  27. package/dist/index-B80SEVzM.d.cts +382 -0
  28. package/dist/index-B80SEVzM.d.ts +382 -0
  29. package/dist/index-Ba1rjTzj.d.cts +299 -0
  30. package/dist/index-Ba1rjTzj.d.ts +299 -0
  31. package/dist/index-Bg1ise7y.d.cts +253 -0
  32. package/dist/index-Bg1ise7y.d.ts +253 -0
  33. package/dist/index-BoqNpwNa.d.cts +203 -0
  34. package/dist/index-BoqNpwNa.d.ts +203 -0
  35. package/dist/index-C0qUnb9Y.d.cts +533 -0
  36. package/dist/index-C0qUnb9Y.d.ts +533 -0
  37. package/dist/index-Cq1GhjpY.d.cts +229 -0
  38. package/dist/index-Cq1GhjpY.d.ts +229 -0
  39. package/dist/index-Cy-mb5v_.d.cts +262 -0
  40. package/dist/index-Cy-mb5v_.d.ts +262 -0
  41. package/dist/index-D1f9Sym2.d.cts +148 -0
  42. package/dist/index-D1f9Sym2.d.ts +148 -0
  43. package/dist/index-Dan5oF-5.d.cts +213 -0
  44. package/dist/index-Dan5oF-5.d.ts +213 -0
  45. package/dist/index-XABfrs7z.d.cts +596 -0
  46. package/dist/index-XABfrs7z.d.ts +596 -0
  47. package/dist/index-YXWfKCK7.d.cts +109 -0
  48. package/dist/index-YXWfKCK7.d.ts +109 -0
  49. package/dist/index.cjs +3691 -0
  50. package/dist/index.cjs.map +1 -0
  51. package/dist/index.d.cts +22 -0
  52. package/dist/index.d.ts +22 -0
  53. package/dist/index.js +3629 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/map.cjs +839 -0
  56. package/dist/map.cjs.map +1 -0
  57. package/dist/map.d.cts +6 -0
  58. package/dist/map.d.ts +6 -0
  59. package/dist/map.js +811 -0
  60. package/dist/map.js.map +1 -0
  61. package/dist/object.cjs +316 -0
  62. package/dist/object.cjs.map +1 -0
  63. package/dist/object.d.cts +2 -0
  64. package/dist/object.d.ts +2 -0
  65. package/dist/object.js +247 -0
  66. package/dist/object.js.map +1 -0
  67. package/dist/pdf.cjs +197 -0
  68. package/dist/pdf.cjs.map +1 -0
  69. package/dist/pdf.d.cts +3 -0
  70. package/dist/pdf.d.ts +3 -0
  71. package/dist/pdf.js +173 -0
  72. package/dist/pdf.js.map +1 -0
  73. package/dist/storage.cjs +255 -0
  74. package/dist/storage.cjs.map +1 -0
  75. package/dist/storage.d.cts +1 -0
  76. package/dist/storage.d.ts +1 -0
  77. package/dist/storage.js +226 -0
  78. package/dist/storage.js.map +1 -0
  79. package/dist/string.cjs +232 -0
  80. package/dist/string.cjs.map +1 -0
  81. package/dist/string.d.cts +2 -0
  82. package/dist/string.d.ts +2 -0
  83. package/dist/string.js +170 -0
  84. package/dist/string.js.map +1 -0
  85. package/dist/utils.cjs +429 -0
  86. package/dist/utils.cjs.map +1 -0
  87. package/dist/utils.d.cts +2 -0
  88. package/dist/utils.d.ts +2 -0
  89. package/dist/utils.js +371 -0
  90. package/dist/utils.js.map +1 -0
  91. package/dist/websocket.cjs +338 -0
  92. package/dist/websocket.cjs.map +1 -0
  93. package/dist/websocket.d.cts +1 -0
  94. package/dist/websocket.d.ts +1 -0
  95. package/dist/websocket.js +330 -0
  96. package/dist/websocket.js.map +1 -0
  97. package/package.json +159 -33
  98. package/dist/ly-utils-lib.cjs.js +0 -115
  99. package/dist/ly-utils-lib.cjs.js.map +0 -1
  100. package/dist/ly-utils-lib.es.js +0 -58589
  101. package/dist/ly-utils-lib.es.js.map +0 -1
  102. package/dist/ly-utils-lib.umd.js +0 -115
  103. package/dist/ly-utils-lib.umd.js.map +0 -1
  104. package/dist/types/index.d.ts +0 -15
  105. package/dist/types/utils/esToolkit.d.ts +0 -2
  106. package/dist/types/utils/ol.d.ts +0 -175
  107. package/dist/types/utils/router.d.ts +0 -10
  108. package/dist/types/utils/storage.d.ts +0 -42
  109. package/dist/types/utils/time.d.ts +0 -66
  110. package/dist/types/utils/tool.d.ts +0 -80
  111. package/dist/vite.svg +0 -1
@@ -0,0 +1,229 @@
1
+ /**
2
+ * WebSocket Module - WebSocket 工具
3
+ *
4
+ * 提供简化的 WebSocket 连接、消息发送、心跳检测和重连机制
5
+ */
6
+ /**
7
+ * WebSocket 连接状态
8
+ */
9
+ declare enum WebSocketState {
10
+ CONNECTING = 0,
11
+ OPEN = 1,
12
+ CLOSING = 2,
13
+ CLOSED = 3
14
+ }
15
+ /**
16
+ * WebSocket 配置选项
17
+ */
18
+ interface WebSocketOptions {
19
+ /** WebSocket 服务器地址 */
20
+ url: string;
21
+ /** 协议(wss:// 或 ws://),默认自动检测 */
22
+ protocol?: 'ws' | 'wss';
23
+ /** 子协议 */
24
+ protocols?: string | string[];
25
+ /** 是否自动重连,默认 true */
26
+ autoReconnect?: boolean;
27
+ /** 重连次数,默认 3 */
28
+ reconnectAttempts?: number;
29
+ /** 重连间隔(毫秒),默认 3000 */
30
+ reconnectInterval?: number;
31
+ /** 心跳检测间隔(毫秒),默认 30000 */
32
+ heartbeatInterval?: number;
33
+ /** 心跳消息内容,默认 'ping' */
34
+ heartbeatMessage?: string | object;
35
+ /** 心跳超时时间(毫秒),默认 5000 */
36
+ heartbeatTimeout?: number;
37
+ /** 连接超时时间(毫秒),默认 10000 */
38
+ connectTimeout?: number;
39
+ /** 是否记录日志,默认 true */
40
+ debug?: boolean;
41
+ }
42
+ /**
43
+ * WebSocket 消息类型
44
+ */
45
+ type WebSocketMessage = string | object | ArrayBuffer | Blob;
46
+ /**
47
+ * WebSocket 事件处理器
48
+ */
49
+ interface WebSocketEventHandlers {
50
+ /** 连接成功回调 */
51
+ onOpen?: (event: Event) => void;
52
+ /** 接收消息回调 */
53
+ onMessage?: (data: WebSocketMessage, event: MessageEvent) => void;
54
+ /** 连接关闭回调 */
55
+ onClose?: (event: CloseEvent) => void;
56
+ /** 错误回调 */
57
+ onError?: (event: Event) => void;
58
+ /** 重连开始回调 */
59
+ onReconnect?: (attempt: number) => void;
60
+ /** 重连成功回调 */
61
+ onReconnectSuccess?: (attempt: number) => void;
62
+ /** 重连失败回调 */
63
+ onReconnectFailed?: () => void;
64
+ /** 心跳回调 */
65
+ onHeartbeat?: () => void;
66
+ /** 心跳超时回调 */
67
+ onHeartbeatTimeout?: () => void;
68
+ }
69
+ /**
70
+ * WebSocket 实例接口
71
+ */
72
+ interface IWebSocketClient {
73
+ /** 连接 WebSocket */
74
+ connect(): void;
75
+ /** 断开连接 */
76
+ disconnect(): void;
77
+ /** 发送消息 */
78
+ send(data: WebSocketMessage): Promise<void>;
79
+ /** 发送消息(不带 Promise) */
80
+ sendSync(data: WebSocketMessage): void;
81
+ /** 获取连接状态 */
82
+ getState(): WebSocketState;
83
+ /** 是否已连接 */
84
+ isConnected(): boolean;
85
+ /** 获取 WebSocket 实例 */
86
+ getInstance(): WebSocket | null;
87
+ /** 设置事件处理器 */
88
+ on<K extends keyof WebSocketEventHandlers>(event: K, handler: WebSocketEventHandlers[K]): void;
89
+ /** 移除事件处理器 */
90
+ off<K extends keyof WebSocketEventHandlers>(event: K, handler?: WebSocketEventHandlers[K]): void;
91
+ /** 重新连接 */
92
+ reconnect(): void;
93
+ }
94
+ /**
95
+ * WebSocket 客户端类
96
+ */
97
+ declare class WebSocketClient implements IWebSocketClient {
98
+ private ws;
99
+ private options;
100
+ private handlers;
101
+ private reconnectTimer;
102
+ private heartbeatTimer;
103
+ private heartbeatTimeoutTimer;
104
+ private reconnectCount;
105
+ private isManualDisconnect;
106
+ private messageQueue;
107
+ private connectResolve;
108
+ private connectReject;
109
+ constructor(options: WebSocketOptions);
110
+ /**
111
+ * 连接 WebSocket
112
+ */
113
+ connect(): void;
114
+ /**
115
+ * 断开连接
116
+ */
117
+ disconnect(): void;
118
+ /**
119
+ * 发送消息(异步)
120
+ */
121
+ send(data: WebSocketMessage): Promise<void>;
122
+ /**
123
+ * 发送消息(同步)
124
+ */
125
+ sendSync(data: WebSocketMessage): void;
126
+ /**
127
+ * 获取连接状态
128
+ */
129
+ getState(): WebSocketState;
130
+ /**
131
+ * 是否已连接
132
+ */
133
+ isConnected(): boolean;
134
+ /**
135
+ * 获取 WebSocket 实例
136
+ */
137
+ getInstance(): WebSocket | null;
138
+ /**
139
+ * 设置事件处理器
140
+ */
141
+ on<K extends keyof WebSocketEventHandlers>(event: K, handler: WebSocketEventHandlers[K]): void;
142
+ /**
143
+ * 移除事件处理器
144
+ */
145
+ off<K extends keyof WebSocketEventHandlers>(event: K, handler?: WebSocketEventHandlers[K]): void;
146
+ /**
147
+ * 重新连接
148
+ */
149
+ reconnect(): void;
150
+ /**
151
+ * 设置事件处理器
152
+ */
153
+ private setupEventHandlers;
154
+ /**
155
+ * 尝试重连
156
+ */
157
+ private attemptReconnect;
158
+ /**
159
+ * 启动心跳
160
+ */
161
+ private startHeartbeat;
162
+ /**
163
+ * 停止心跳
164
+ */
165
+ private stopHeartbeat;
166
+ /**
167
+ * 清理资源
168
+ */
169
+ private cleanup;
170
+ /**
171
+ * 处理错误
172
+ */
173
+ private handleError;
174
+ /**
175
+ * 日志输出
176
+ */
177
+ private log;
178
+ }
179
+ /**
180
+ * 创建 WebSocket 客户端
181
+ * @param options - 配置选项
182
+ * @returns WebSocket 客户端实例
183
+ * @example
184
+ * ```ts
185
+ * const ws = createWebSocket({
186
+ * url: 'echo.websocket.org',
187
+ * autoReconnect: true,
188
+ * onMessage: (data) => console.log('Received:', data)
189
+ * })
190
+ *
191
+ * ws.send('Hello, WebSocket!')
192
+ * ```
193
+ */
194
+ declare function createWebSocket(options: WebSocketOptions): IWebSocketClient;
195
+ /**
196
+ * 快速连接 WebSocket
197
+ * @param url - WebSocket 服务器地址
198
+ * @param handlers - 事件处理器
199
+ * @returns WebSocket 客户端实例
200
+ * @example
201
+ * ```ts
202
+ * const ws = quickConnect('echo.websocket.org', {
203
+ * onMessage: (data) => console.log('Received:', data)
204
+ * })
205
+ * ```
206
+ */
207
+ declare function quickConnect(url: string, handlers?: WebSocketEventHandlers): IWebSocketClient;
208
+ declare const _default: {
209
+ WebSocketClient: typeof WebSocketClient;
210
+ createWebSocket: typeof createWebSocket;
211
+ quickConnect: typeof quickConnect;
212
+ WebSocketState: typeof WebSocketState;
213
+ };
214
+
215
+ type index_IWebSocketClient = IWebSocketClient;
216
+ type index_WebSocketClient = WebSocketClient;
217
+ declare const index_WebSocketClient: typeof WebSocketClient;
218
+ type index_WebSocketEventHandlers = WebSocketEventHandlers;
219
+ type index_WebSocketMessage = WebSocketMessage;
220
+ type index_WebSocketOptions = WebSocketOptions;
221
+ type index_WebSocketState = WebSocketState;
222
+ declare const index_WebSocketState: typeof WebSocketState;
223
+ declare const index_createWebSocket: typeof createWebSocket;
224
+ declare const index_quickConnect: typeof quickConnect;
225
+ declare namespace index {
226
+ export { type index_IWebSocketClient as IWebSocketClient, index_WebSocketClient as WebSocketClient, type index_WebSocketEventHandlers as WebSocketEventHandlers, type index_WebSocketMessage as WebSocketMessage, type index_WebSocketOptions as WebSocketOptions, index_WebSocketState as WebSocketState, index_createWebSocket as createWebSocket, _default as default, index_quickConnect as quickConnect };
227
+ }
228
+
229
+ export { type IWebSocketClient as I, WebSocketClient as W, _default as _, type WebSocketEventHandlers as a, type WebSocketMessage as b, type WebSocketOptions as c, WebSocketState as d, createWebSocket as e, index as i, quickConnect as q };
@@ -0,0 +1,229 @@
1
+ /**
2
+ * WebSocket Module - WebSocket 工具
3
+ *
4
+ * 提供简化的 WebSocket 连接、消息发送、心跳检测和重连机制
5
+ */
6
+ /**
7
+ * WebSocket 连接状态
8
+ */
9
+ declare enum WebSocketState {
10
+ CONNECTING = 0,
11
+ OPEN = 1,
12
+ CLOSING = 2,
13
+ CLOSED = 3
14
+ }
15
+ /**
16
+ * WebSocket 配置选项
17
+ */
18
+ interface WebSocketOptions {
19
+ /** WebSocket 服务器地址 */
20
+ url: string;
21
+ /** 协议(wss:// 或 ws://),默认自动检测 */
22
+ protocol?: 'ws' | 'wss';
23
+ /** 子协议 */
24
+ protocols?: string | string[];
25
+ /** 是否自动重连,默认 true */
26
+ autoReconnect?: boolean;
27
+ /** 重连次数,默认 3 */
28
+ reconnectAttempts?: number;
29
+ /** 重连间隔(毫秒),默认 3000 */
30
+ reconnectInterval?: number;
31
+ /** 心跳检测间隔(毫秒),默认 30000 */
32
+ heartbeatInterval?: number;
33
+ /** 心跳消息内容,默认 'ping' */
34
+ heartbeatMessage?: string | object;
35
+ /** 心跳超时时间(毫秒),默认 5000 */
36
+ heartbeatTimeout?: number;
37
+ /** 连接超时时间(毫秒),默认 10000 */
38
+ connectTimeout?: number;
39
+ /** 是否记录日志,默认 true */
40
+ debug?: boolean;
41
+ }
42
+ /**
43
+ * WebSocket 消息类型
44
+ */
45
+ type WebSocketMessage = string | object | ArrayBuffer | Blob;
46
+ /**
47
+ * WebSocket 事件处理器
48
+ */
49
+ interface WebSocketEventHandlers {
50
+ /** 连接成功回调 */
51
+ onOpen?: (event: Event) => void;
52
+ /** 接收消息回调 */
53
+ onMessage?: (data: WebSocketMessage, event: MessageEvent) => void;
54
+ /** 连接关闭回调 */
55
+ onClose?: (event: CloseEvent) => void;
56
+ /** 错误回调 */
57
+ onError?: (event: Event) => void;
58
+ /** 重连开始回调 */
59
+ onReconnect?: (attempt: number) => void;
60
+ /** 重连成功回调 */
61
+ onReconnectSuccess?: (attempt: number) => void;
62
+ /** 重连失败回调 */
63
+ onReconnectFailed?: () => void;
64
+ /** 心跳回调 */
65
+ onHeartbeat?: () => void;
66
+ /** 心跳超时回调 */
67
+ onHeartbeatTimeout?: () => void;
68
+ }
69
+ /**
70
+ * WebSocket 实例接口
71
+ */
72
+ interface IWebSocketClient {
73
+ /** 连接 WebSocket */
74
+ connect(): void;
75
+ /** 断开连接 */
76
+ disconnect(): void;
77
+ /** 发送消息 */
78
+ send(data: WebSocketMessage): Promise<void>;
79
+ /** 发送消息(不带 Promise) */
80
+ sendSync(data: WebSocketMessage): void;
81
+ /** 获取连接状态 */
82
+ getState(): WebSocketState;
83
+ /** 是否已连接 */
84
+ isConnected(): boolean;
85
+ /** 获取 WebSocket 实例 */
86
+ getInstance(): WebSocket | null;
87
+ /** 设置事件处理器 */
88
+ on<K extends keyof WebSocketEventHandlers>(event: K, handler: WebSocketEventHandlers[K]): void;
89
+ /** 移除事件处理器 */
90
+ off<K extends keyof WebSocketEventHandlers>(event: K, handler?: WebSocketEventHandlers[K]): void;
91
+ /** 重新连接 */
92
+ reconnect(): void;
93
+ }
94
+ /**
95
+ * WebSocket 客户端类
96
+ */
97
+ declare class WebSocketClient implements IWebSocketClient {
98
+ private ws;
99
+ private options;
100
+ private handlers;
101
+ private reconnectTimer;
102
+ private heartbeatTimer;
103
+ private heartbeatTimeoutTimer;
104
+ private reconnectCount;
105
+ private isManualDisconnect;
106
+ private messageQueue;
107
+ private connectResolve;
108
+ private connectReject;
109
+ constructor(options: WebSocketOptions);
110
+ /**
111
+ * 连接 WebSocket
112
+ */
113
+ connect(): void;
114
+ /**
115
+ * 断开连接
116
+ */
117
+ disconnect(): void;
118
+ /**
119
+ * 发送消息(异步)
120
+ */
121
+ send(data: WebSocketMessage): Promise<void>;
122
+ /**
123
+ * 发送消息(同步)
124
+ */
125
+ sendSync(data: WebSocketMessage): void;
126
+ /**
127
+ * 获取连接状态
128
+ */
129
+ getState(): WebSocketState;
130
+ /**
131
+ * 是否已连接
132
+ */
133
+ isConnected(): boolean;
134
+ /**
135
+ * 获取 WebSocket 实例
136
+ */
137
+ getInstance(): WebSocket | null;
138
+ /**
139
+ * 设置事件处理器
140
+ */
141
+ on<K extends keyof WebSocketEventHandlers>(event: K, handler: WebSocketEventHandlers[K]): void;
142
+ /**
143
+ * 移除事件处理器
144
+ */
145
+ off<K extends keyof WebSocketEventHandlers>(event: K, handler?: WebSocketEventHandlers[K]): void;
146
+ /**
147
+ * 重新连接
148
+ */
149
+ reconnect(): void;
150
+ /**
151
+ * 设置事件处理器
152
+ */
153
+ private setupEventHandlers;
154
+ /**
155
+ * 尝试重连
156
+ */
157
+ private attemptReconnect;
158
+ /**
159
+ * 启动心跳
160
+ */
161
+ private startHeartbeat;
162
+ /**
163
+ * 停止心跳
164
+ */
165
+ private stopHeartbeat;
166
+ /**
167
+ * 清理资源
168
+ */
169
+ private cleanup;
170
+ /**
171
+ * 处理错误
172
+ */
173
+ private handleError;
174
+ /**
175
+ * 日志输出
176
+ */
177
+ private log;
178
+ }
179
+ /**
180
+ * 创建 WebSocket 客户端
181
+ * @param options - 配置选项
182
+ * @returns WebSocket 客户端实例
183
+ * @example
184
+ * ```ts
185
+ * const ws = createWebSocket({
186
+ * url: 'echo.websocket.org',
187
+ * autoReconnect: true,
188
+ * onMessage: (data) => console.log('Received:', data)
189
+ * })
190
+ *
191
+ * ws.send('Hello, WebSocket!')
192
+ * ```
193
+ */
194
+ declare function createWebSocket(options: WebSocketOptions): IWebSocketClient;
195
+ /**
196
+ * 快速连接 WebSocket
197
+ * @param url - WebSocket 服务器地址
198
+ * @param handlers - 事件处理器
199
+ * @returns WebSocket 客户端实例
200
+ * @example
201
+ * ```ts
202
+ * const ws = quickConnect('echo.websocket.org', {
203
+ * onMessage: (data) => console.log('Received:', data)
204
+ * })
205
+ * ```
206
+ */
207
+ declare function quickConnect(url: string, handlers?: WebSocketEventHandlers): IWebSocketClient;
208
+ declare const _default: {
209
+ WebSocketClient: typeof WebSocketClient;
210
+ createWebSocket: typeof createWebSocket;
211
+ quickConnect: typeof quickConnect;
212
+ WebSocketState: typeof WebSocketState;
213
+ };
214
+
215
+ type index_IWebSocketClient = IWebSocketClient;
216
+ type index_WebSocketClient = WebSocketClient;
217
+ declare const index_WebSocketClient: typeof WebSocketClient;
218
+ type index_WebSocketEventHandlers = WebSocketEventHandlers;
219
+ type index_WebSocketMessage = WebSocketMessage;
220
+ type index_WebSocketOptions = WebSocketOptions;
221
+ type index_WebSocketState = WebSocketState;
222
+ declare const index_WebSocketState: typeof WebSocketState;
223
+ declare const index_createWebSocket: typeof createWebSocket;
224
+ declare const index_quickConnect: typeof quickConnect;
225
+ declare namespace index {
226
+ export { type index_IWebSocketClient as IWebSocketClient, index_WebSocketClient as WebSocketClient, type index_WebSocketEventHandlers as WebSocketEventHandlers, type index_WebSocketMessage as WebSocketMessage, type index_WebSocketOptions as WebSocketOptions, index_WebSocketState as WebSocketState, index_createWebSocket as createWebSocket, _default as default, index_quickConnect as quickConnect };
227
+ }
228
+
229
+ export { type IWebSocketClient as I, WebSocketClient as W, _default as _, type WebSocketEventHandlers as a, type WebSocketMessage as b, type WebSocketOptions as c, WebSocketState as d, createWebSocket as e, index as i, quickConnect as q };