@ai-group/chat-sdk 0.2.5

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 (80) hide show
  1. package/README.md +239 -0
  2. package/dist/esm/assets/arrow-down.png +0 -0
  3. package/dist/esm/assets/arrow-up.png +0 -0
  4. package/dist/esm/assets/chatKnowledge.png +0 -0
  5. package/dist/esm/assets/completed-black.png +0 -0
  6. package/dist/esm/assets/completed.png +0 -0
  7. package/dist/esm/assets/document-black.png +0 -0
  8. package/dist/esm/assets/document.png +0 -0
  9. package/dist/esm/assets/document.svg +16 -0
  10. package/dist/esm/assets/empty.png +0 -0
  11. package/dist/esm/assets/group.png +0 -0
  12. package/dist/esm/assets/qa-black.png +0 -0
  13. package/dist/esm/assets/qa.png +0 -0
  14. package/dist/esm/assets/skillNo-black.png +0 -0
  15. package/dist/esm/assets/skillNo.png +0 -0
  16. package/dist/esm/assets/tools-black.png +0 -0
  17. package/dist/esm/assets/tools.png +0 -0
  18. package/dist/esm/client/base.js +2 -0
  19. package/dist/esm/client/base.js.map +1 -0
  20. package/dist/esm/client/restClient.js +2 -0
  21. package/dist/esm/client/restClient.js.map +1 -0
  22. package/dist/esm/client/wsClient.js +2 -0
  23. package/dist/esm/client/wsClient.js.map +1 -0
  24. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js +562 -0
  25. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.js.map +1 -0
  26. package/dist/esm/components/XAiChatbot/index.js +586 -0
  27. package/dist/esm/components/XAiChatbot/index.js.map +1 -0
  28. package/dist/esm/components/XAiChatbot/styles.js +62 -0
  29. package/dist/esm/components/XAiChatbot/styles.js.map +1 -0
  30. package/dist/esm/components/XAiProvider/XAiProvider.stories.js +297 -0
  31. package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -0
  32. package/dist/esm/components/XAiProvider/index.js +128 -0
  33. package/dist/esm/components/XAiProvider/index.js.map +1 -0
  34. package/dist/esm/components/XAiSDK.js +29 -0
  35. package/dist/esm/components/XAiSDK.js.map +1 -0
  36. package/dist/esm/components/XAiWebSDKWrapper.js +42 -0
  37. package/dist/esm/components/XAiWebSDKWrapper.js.map +1 -0
  38. package/dist/esm/context/AiProviderContext.js +62 -0
  39. package/dist/esm/context/AiProviderContext.js.map +1 -0
  40. package/dist/esm/context/ThemeContext.js +8 -0
  41. package/dist/esm/context/ThemeContext.js.map +1 -0
  42. package/dist/esm/hooks/useAgentGenerator.js +536 -0
  43. package/dist/esm/hooks/useAgentGenerator.js.map +1 -0
  44. package/dist/esm/hooks/useEventStreamRequest.js +229 -0
  45. package/dist/esm/hooks/useEventStreamRequest.js.map +1 -0
  46. package/dist/esm/hooks/useProviderContext.js +115 -0
  47. package/dist/esm/hooks/useProviderContext.js.map +1 -0
  48. package/dist/esm/hooks/useXAiSDK.js +49 -0
  49. package/dist/esm/hooks/useXAiSDK.js.map +1 -0
  50. package/dist/esm/index.js +11 -0
  51. package/dist/esm/index.js.map +1 -0
  52. package/dist/esm/services/api.js +73 -0
  53. package/dist/esm/services/api.js.map +1 -0
  54. package/dist/esm/styles/common.js +106 -0
  55. package/dist/esm/styles/common.js.map +1 -0
  56. package/dist/esm/styles/markdown.js +12 -0
  57. package/dist/esm/styles/markdown.js.map +1 -0
  58. package/dist/esm/types/XAiChatbot.js +2 -0
  59. package/dist/esm/types/XAiChatbot.js.map +1 -0
  60. package/dist/esm/types/XAiMessage.js +65 -0
  61. package/dist/esm/types/XAiMessage.js.map +1 -0
  62. package/dist/esm/types/XAiProvider.js +4 -0
  63. package/dist/esm/types/XAiProvider.js.map +1 -0
  64. package/dist/esm/types/index.js +4 -0
  65. package/dist/esm/types/index.js.map +1 -0
  66. package/dist/esm/types/mdx.d.ts +18 -0
  67. package/dist/esm/utils/chat.js +976 -0
  68. package/dist/esm/utils/chat.js.map +1 -0
  69. package/dist/esm/utils/index.js +19 -0
  70. package/dist/esm/utils/index.js.map +1 -0
  71. package/dist/esm/utils/providerManager.js +70 -0
  72. package/dist/esm/utils/providerManager.js.map +1 -0
  73. package/dist/esm/utils/request.example.js +379 -0
  74. package/dist/esm/utils/request.example.js.map +1 -0
  75. package/dist/esm/utils/request.js +491 -0
  76. package/dist/esm/utils/request.js.map +1 -0
  77. package/dist/esm/utils/umdEntry.js +109 -0
  78. package/dist/esm/utils/umdEntry.js.map +1 -0
  79. package/dist/umd/chat-sdk.min.js +1 -0
  80. package/package.json +71 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createRequest","get","post","put","del","patch","upload","download","apiClient","baseURL","timeout","headers","Authorization","onError","error","console","getUserInfo","_x","_getUserInfo","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","userId","response","wrap","_callee$","_context","prev","next","concat","include","retry","retryDelay","sent","success","log","data","abrupt","message","t0","stop","createUser","_x2","_createUser","_callee2","userData","_callee2$","_context2","showError","updateUser","_x3","_x4","_updateUser","_callee3","_callee3$","_context3","deleteUser","_x5","_deleteUser","_callee4","_callee4$","_context4","updateUserProfile","_x6","_x7","_updateUserProfile","_callee5","profileData","_callee5$","_context5","uploadAvatar","_x8","_x9","_uploadAvatar","_callee6","file","_callee6$","_context6","progress","url","downloadReport","_x10","_x11","_downloadReport","_callee7","reportId","filename","_callee7$","_context7","authConfig","getProtectedData","_getProtectedData","_callee8","_callee8$","_context8","handleErrors","_handleErrors","_callee9","_callee9$","_context9","t1","code","batchRequests","_batchRequests","_callee10","promises","results","_callee10$","_context10","Promise","all"],"sources":["../../../src/utils/request.example.ts"],"sourcesContent":["import { createRequest, get, post, put, del, patch, upload, download, RequestConfig } from './request';\n\n// 示例 1: 创建自定义请求实例\nconst apiClient = createRequest({\n baseURL: 'https://api.example.com',\n timeout: 15000,\n headers: {\n Authorization: 'Bearer your-token',\n },\n onError: (error) => {\n console.error('API Error:', error);\n },\n});\n\n// 示例 2: 基本 GET 请求\nasync function getUserInfo(userId: string) {\n try {\n const response = await get<{ id: string; name: string; email: string }>(\n `/api/users/${userId}`,\n { include: 'profile' },\n { retry: 3, retryDelay: 1000 },\n );\n\n if (response.success) {\n console.log('用户信息:', response.data);\n return response.data;\n }\n console.error('获取用户信息失败:', response.message);\n } catch (error) {\n console.error('请求失败:', error);\n }\n}\n\n// 示例 3: POST 请求创建资源\nasync function createUser(userData: { name: string; email: string; password: string }) {\n try {\n const response = await post<{ id: string; name: string; email: string }>(\n '/api/users',\n userData,\n { showError: true },\n );\n\n if (response.success) {\n console.log('用户创建成功:', response.data);\n return response.data;\n }\n } catch (error) {\n console.error('创建用户失败:', error);\n }\n}\n\n// 示例 4: PUT 请求更新资源\nasync function updateUser(userId: string, userData: { name?: string; email?: string }) {\n try {\n const response = await put<{ id: string; name: string; email: string }>(\n `/api/users/${userId}`,\n userData,\n );\n\n if (response.success) {\n console.log('用户更新成功:', response.data);\n return response.data;\n }\n } catch (error) {\n console.error('更新用户失败:', error);\n }\n}\n\n// 示例 5: DELETE 请求删除资源\nasync function deleteUser(userId: string) {\n try {\n const response = await del<{ success: boolean }>(`/api/users/${userId}`);\n\n if (response.success) {\n console.log('用户删除成功');\n return true;\n }\n } catch (error) {\n console.error('删除用户失败:', error);\n }\n}\n\n// 示例 6: PATCH 请求部分更新\nasync function updateUserProfile(userId: string, profileData: { avatar?: string; bio?: string }) {\n try {\n const response = await patch<{ id: string; avatar: string; bio: string }>(\n `/api/users/${userId}/profile`,\n profileData,\n );\n\n if (response.success) {\n console.log('用户资料更新成功:', response.data);\n return response.data;\n }\n } catch (error) {\n console.error('更新用户资料失败:', error);\n }\n}\n\n// 示例 7: 文件上传\nasync function uploadAvatar(userId: string, file: File) {\n try {\n const response = await upload<{ url: string }>(\n `/api/users/${userId}/avatar`,\n file,\n (progress) => {\n console.log(`上传进度: ${progress}%`);\n },\n { timeout: 30000 },\n );\n\n if (response.success) {\n console.log('头像上传成功:', response.data.url);\n return response.data;\n }\n } catch (error) {\n console.error('头像上传失败:', error);\n }\n}\n\n// 示例 8: 文件下载\nasync function downloadReport(reportId: string, filename?: string) {\n try {\n await download(\n `/api/reports/${reportId}/download`,\n filename || `report-${reportId}.pdf`,\n );\n console.log('报告下载成功');\n } catch (error) {\n console.error('报告下载失败:', error);\n }\n}\n\n// 示例 9: 带认证的请求配置\nconst authConfig = {\n headers: {\n Authorization: 'Bearer your-token',\n },\n retry: 2,\n retryDelay: 2000,\n showError: true,\n};\n\n// 示例 10: 使用自定义请求实例\nasync function getProtectedData() {\n try {\n const response = await apiClient.get('/api/protected/data', authConfig);\n console.log('受保护的数据:', response.data);\n return response.data;\n } catch (error) {\n console.error('获取受保护数据失败:', error);\n }\n}\n\n// 示例 11: 错误处理\nasync function handleErrors() {\n try {\n const response = await get('/api/nonexistent');\n return response;\n } catch (error: any) {\n switch (error.code) {\n case 401:\n console.error('未授权,请重新登录');\n // 重定向到登录页\n break;\n case 403:\n console.error('权限不足');\n break;\n case 404:\n console.error('资源不存在');\n break;\n case 500:\n console.error('服务器内部错误');\n break;\n default:\n console.error('未知错误:', error.message);\n }\n }\n}\n\n// 示例 12: 批量请求\nasync function batchRequests() {\n const promises = [\n get('/api/users/1'),\n get('/api/users/2'),\n get('/api/users/3'),\n ];\n\n try {\n const results = await Promise.all(promises);\n console.log('批量请求结果:', results);\n return results;\n } catch (error) {\n console.error('批量请求失败:', error);\n }\n}\n\n// 导出示例函数\nexport {\n getUserInfo,\n createUser,\n updateUser,\n deleteUser,\n updateUserProfile,\n uploadAvatar,\n downloadReport,\n getProtectedData,\n handleErrors,\n batchRequests,\n};\n"],"mappings":"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"}
@@ -0,0 +1,491 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
+ import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
3
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
4
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
+ var _excluded = ["retry", "retryDelay"],
6
+ _excluded2 = ["retry", "retryDelay"],
7
+ _excluded3 = ["retry", "retryDelay"],
8
+ _excluded4 = ["retry", "retryDelay"],
9
+ _excluded5 = ["retry", "retryDelay"],
10
+ _excluded6 = ["retry", "retryDelay"],
11
+ _excluded7 = ["retry", "retryDelay"];
12
+ import axios from 'axios';
13
+
14
+ // 请求配置接口
15
+
16
+ // 响应数据接口
17
+
18
+ // 错误信息接口
19
+
20
+ // 请求拦截器配置
21
+
22
+ // 响应拦截器配置
23
+
24
+ // 创建请求实例的配置
25
+
26
+ /**
27
+ * 处理响应错误
28
+ */
29
+ function handleResponseError(error) {
30
+ if (error.response) {
31
+ // 服务器返回错误状态码
32
+ var _error$response = error.response,
33
+ status = _error$response.status,
34
+ data = _error$response.data;
35
+ return {
36
+ code: status,
37
+ message: (data === null || data === void 0 ? void 0 : data.message) || "HTTP ".concat(status, " \u9519\u8BEF"),
38
+ details: data
39
+ };
40
+ }
41
+ if (error.request) {
42
+ // 请求已发出但没有收到响应
43
+ return {
44
+ code: -1,
45
+ message: '网络连接失败,请检查网络设置',
46
+ details: error.request
47
+ };
48
+ }
49
+ // 请求配置错误
50
+ return {
51
+ code: -2,
52
+ message: error.message || '请求配置错误',
53
+ details: error
54
+ };
55
+ }
56
+
57
+ /**
58
+ * 创建请求实例
59
+ */
60
+ export function createRequest() {
61
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
62
+ var _config$baseURL = config.baseURL,
63
+ baseURL = _config$baseURL === void 0 ? '' : _config$baseURL,
64
+ _config$timeout = config.timeout,
65
+ timeout = _config$timeout === void 0 ? 10000 : _config$timeout,
66
+ _config$headers = config.headers,
67
+ headers = _config$headers === void 0 ? {} : _config$headers,
68
+ requestInterceptor = config.requestInterceptor,
69
+ responseInterceptor = config.responseInterceptor,
70
+ onError = config.onError;
71
+
72
+ // 创建 axios 实例
73
+ var instance = axios.create({
74
+ baseURL: baseURL,
75
+ timeout: timeout,
76
+ headers: _objectSpread({
77
+ 'Content-Type': 'application/json'
78
+ }, headers)
79
+ });
80
+
81
+ // 请求拦截器
82
+ instance.interceptors.request.use( /*#__PURE__*/function () {
83
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(requestConfig) {
84
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
85
+ while (1) switch (_context.prev = _context.next) {
86
+ case 0:
87
+ // 添加时间戳防止缓存
88
+ if (requestConfig.method === 'get') {
89
+ requestConfig.params = _objectSpread(_objectSpread({}, requestConfig.params), {}, {
90
+ _t: Date.now()
91
+ });
92
+ }
93
+
94
+ // 自定义请求拦截器
95
+ if (!(requestInterceptor !== null && requestInterceptor !== void 0 && requestInterceptor.onRequest)) {
96
+ _context.next = 3;
97
+ break;
98
+ }
99
+ return _context.abrupt("return", requestInterceptor.onRequest(requestConfig));
100
+ case 3:
101
+ return _context.abrupt("return", requestConfig);
102
+ case 4:
103
+ case "end":
104
+ return _context.stop();
105
+ }
106
+ }, _callee);
107
+ }));
108
+ return function (_x) {
109
+ return _ref.apply(this, arguments);
110
+ };
111
+ }(), /*#__PURE__*/function () {
112
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(error) {
113
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
114
+ while (1) switch (_context2.prev = _context2.next) {
115
+ case 0:
116
+ if (!(requestInterceptor !== null && requestInterceptor !== void 0 && requestInterceptor.onRequestError)) {
117
+ _context2.next = 2;
118
+ break;
119
+ }
120
+ return _context2.abrupt("return", requestInterceptor.onRequestError(error));
121
+ case 2:
122
+ return _context2.abrupt("return", Promise.reject(error));
123
+ case 3:
124
+ case "end":
125
+ return _context2.stop();
126
+ }
127
+ }, _callee2);
128
+ }));
129
+ return function (_x2) {
130
+ return _ref2.apply(this, arguments);
131
+ };
132
+ }());
133
+
134
+ // 响应拦截器
135
+ instance.interceptors.response.use( /*#__PURE__*/function () {
136
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(response) {
137
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
138
+ while (1) switch (_context3.prev = _context3.next) {
139
+ case 0:
140
+ if (!(responseInterceptor !== null && responseInterceptor !== void 0 && responseInterceptor.onResponse)) {
141
+ _context3.next = 2;
142
+ break;
143
+ }
144
+ return _context3.abrupt("return", responseInterceptor.onResponse(response));
145
+ case 2:
146
+ return _context3.abrupt("return", response);
147
+ case 3:
148
+ case "end":
149
+ return _context3.stop();
150
+ }
151
+ }, _callee3);
152
+ }));
153
+ return function (_x3) {
154
+ return _ref3.apply(this, arguments);
155
+ };
156
+ }(), /*#__PURE__*/function () {
157
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(error) {
158
+ var requestError;
159
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
160
+ while (1) switch (_context4.prev = _context4.next) {
161
+ case 0:
162
+ requestError = handleResponseError(error); // 调用错误回调
163
+ if (onError) {
164
+ onError(requestError);
165
+ }
166
+
167
+ // 自定义响应错误拦截器
168
+ if (!(responseInterceptor !== null && responseInterceptor !== void 0 && responseInterceptor.onResponseError)) {
169
+ _context4.next = 4;
170
+ break;
171
+ }
172
+ return _context4.abrupt("return", responseInterceptor.onResponseError(error));
173
+ case 4:
174
+ return _context4.abrupt("return", Promise.reject(requestError));
175
+ case 5:
176
+ case "end":
177
+ return _context4.stop();
178
+ }
179
+ }, _callee4);
180
+ }));
181
+ return function (_x4) {
182
+ return _ref4.apply(this, arguments);
183
+ };
184
+ }());
185
+ return instance;
186
+ }
187
+
188
+ /**
189
+ * 重试机制
190
+ */
191
+ function retryRequest(_x5, _x6, _x7) {
192
+ return _retryRequest.apply(this, arguments);
193
+ }
194
+ /**
195
+ * 通用 GET 请求
196
+ */
197
+ function _retryRequest() {
198
+ _retryRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(requestFn, retryCount, retryDelay) {
199
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
200
+ while (1) switch (_context5.prev = _context5.next) {
201
+ case 0:
202
+ _context5.prev = 0;
203
+ _context5.next = 3;
204
+ return requestFn();
205
+ case 3:
206
+ return _context5.abrupt("return", _context5.sent);
207
+ case 6:
208
+ _context5.prev = 6;
209
+ _context5.t0 = _context5["catch"](0);
210
+ if (!(retryCount > 0)) {
211
+ _context5.next = 12;
212
+ break;
213
+ }
214
+ _context5.next = 11;
215
+ return new Promise(function (resolve) {
216
+ return setTimeout(resolve, retryDelay);
217
+ });
218
+ case 11:
219
+ return _context5.abrupt("return", retryRequest(requestFn, retryCount - 1, retryDelay));
220
+ case 12:
221
+ throw _context5.t0;
222
+ case 13:
223
+ case "end":
224
+ return _context5.stop();
225
+ }
226
+ }, _callee5, null, [[0, 6]]);
227
+ }));
228
+ return _retryRequest.apply(this, arguments);
229
+ }
230
+ export function get(_x8, _x9, _x10) {
231
+ return _get.apply(this, arguments);
232
+ }
233
+
234
+ /**
235
+ * 通用 POST 请求
236
+ */
237
+ function _get() {
238
+ _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(url, params, config) {
239
+ var _ref5, _ref5$retry, retry, _ref5$retryDelay, retryDelay, axiosConfig, requestFn, response;
240
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
241
+ while (1) switch (_context6.prev = _context6.next) {
242
+ case 0:
243
+ _ref5 = config || {}, _ref5$retry = _ref5.retry, retry = _ref5$retry === void 0 ? 0 : _ref5$retry, _ref5$retryDelay = _ref5.retryDelay, retryDelay = _ref5$retryDelay === void 0 ? 1000 : _ref5$retryDelay, axiosConfig = _objectWithoutProperties(_ref5, _excluded);
244
+ requestFn = function requestFn() {
245
+ return createRequest().get(url, _objectSpread({
246
+ params: params
247
+ }, axiosConfig));
248
+ };
249
+ _context6.next = 4;
250
+ return retryRequest(requestFn, retry, retryDelay);
251
+ case 4:
252
+ response = _context6.sent;
253
+ return _context6.abrupt("return", response.data);
254
+ case 6:
255
+ case "end":
256
+ return _context6.stop();
257
+ }
258
+ }, _callee6);
259
+ }));
260
+ return _get.apply(this, arguments);
261
+ }
262
+ export function post(_x11, _x12, _x13) {
263
+ return _post.apply(this, arguments);
264
+ }
265
+
266
+ /**
267
+ * 通用 PUT 请求
268
+ */
269
+ function _post() {
270
+ _post = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(url, data, config) {
271
+ var _ref6, _ref6$retry, retry, _ref6$retryDelay, retryDelay, axiosConfig, requestFn, response;
272
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
273
+ while (1) switch (_context7.prev = _context7.next) {
274
+ case 0:
275
+ _ref6 = config || {}, _ref6$retry = _ref6.retry, retry = _ref6$retry === void 0 ? 0 : _ref6$retry, _ref6$retryDelay = _ref6.retryDelay, retryDelay = _ref6$retryDelay === void 0 ? 1000 : _ref6$retryDelay, axiosConfig = _objectWithoutProperties(_ref6, _excluded2);
276
+ requestFn = function requestFn() {
277
+ return createRequest().post(url, data, axiosConfig);
278
+ };
279
+ _context7.next = 4;
280
+ return retryRequest(requestFn, retry, retryDelay);
281
+ case 4:
282
+ response = _context7.sent;
283
+ return _context7.abrupt("return", response.data);
284
+ case 6:
285
+ case "end":
286
+ return _context7.stop();
287
+ }
288
+ }, _callee7);
289
+ }));
290
+ return _post.apply(this, arguments);
291
+ }
292
+ export function put(_x14, _x15, _x16) {
293
+ return _put.apply(this, arguments);
294
+ }
295
+
296
+ /**
297
+ * 通用 DELETE 请求
298
+ */
299
+ function _put() {
300
+ _put = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(url, data, config) {
301
+ var _ref7, _ref7$retry, retry, _ref7$retryDelay, retryDelay, axiosConfig, requestFn, response;
302
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
303
+ while (1) switch (_context8.prev = _context8.next) {
304
+ case 0:
305
+ _ref7 = config || {}, _ref7$retry = _ref7.retry, retry = _ref7$retry === void 0 ? 0 : _ref7$retry, _ref7$retryDelay = _ref7.retryDelay, retryDelay = _ref7$retryDelay === void 0 ? 1000 : _ref7$retryDelay, axiosConfig = _objectWithoutProperties(_ref7, _excluded3);
306
+ requestFn = function requestFn() {
307
+ return createRequest().put(url, data, axiosConfig);
308
+ };
309
+ _context8.next = 4;
310
+ return retryRequest(requestFn, retry, retryDelay);
311
+ case 4:
312
+ response = _context8.sent;
313
+ return _context8.abrupt("return", response.data);
314
+ case 6:
315
+ case "end":
316
+ return _context8.stop();
317
+ }
318
+ }, _callee8);
319
+ }));
320
+ return _put.apply(this, arguments);
321
+ }
322
+ export function del(_x17, _x18) {
323
+ return _del.apply(this, arguments);
324
+ }
325
+
326
+ /**
327
+ * 通用 PATCH 请求
328
+ */
329
+ function _del() {
330
+ _del = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(url, config) {
331
+ var _ref8, _ref8$retry, retry, _ref8$retryDelay, retryDelay, axiosConfig, requestFn, response;
332
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
333
+ while (1) switch (_context9.prev = _context9.next) {
334
+ case 0:
335
+ _ref8 = config || {}, _ref8$retry = _ref8.retry, retry = _ref8$retry === void 0 ? 0 : _ref8$retry, _ref8$retryDelay = _ref8.retryDelay, retryDelay = _ref8$retryDelay === void 0 ? 1000 : _ref8$retryDelay, axiosConfig = _objectWithoutProperties(_ref8, _excluded4);
336
+ requestFn = function requestFn() {
337
+ return createRequest().delete(url, axiosConfig);
338
+ };
339
+ _context9.next = 4;
340
+ return retryRequest(requestFn, retry, retryDelay);
341
+ case 4:
342
+ response = _context9.sent;
343
+ return _context9.abrupt("return", response.data);
344
+ case 6:
345
+ case "end":
346
+ return _context9.stop();
347
+ }
348
+ }, _callee9);
349
+ }));
350
+ return _del.apply(this, arguments);
351
+ }
352
+ export function patch(_x19, _x20, _x21) {
353
+ return _patch.apply(this, arguments);
354
+ }
355
+
356
+ /**
357
+ * 文件上传
358
+ */
359
+ function _patch() {
360
+ _patch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(url, data, config) {
361
+ var _ref9, _ref9$retry, retry, _ref9$retryDelay, retryDelay, axiosConfig, requestFn, response;
362
+ return _regeneratorRuntime().wrap(function _callee10$(_context10) {
363
+ while (1) switch (_context10.prev = _context10.next) {
364
+ case 0:
365
+ _ref9 = config || {}, _ref9$retry = _ref9.retry, retry = _ref9$retry === void 0 ? 0 : _ref9$retry, _ref9$retryDelay = _ref9.retryDelay, retryDelay = _ref9$retryDelay === void 0 ? 1000 : _ref9$retryDelay, axiosConfig = _objectWithoutProperties(_ref9, _excluded5);
366
+ requestFn = function requestFn() {
367
+ return createRequest().patch(url, data, axiosConfig);
368
+ };
369
+ _context10.next = 4;
370
+ return retryRequest(requestFn, retry, retryDelay);
371
+ case 4:
372
+ response = _context10.sent;
373
+ return _context10.abrupt("return", response.data);
374
+ case 6:
375
+ case "end":
376
+ return _context10.stop();
377
+ }
378
+ }, _callee10);
379
+ }));
380
+ return _patch.apply(this, arguments);
381
+ }
382
+ export function upload(_x22, _x23, _x24, _x25) {
383
+ return _upload.apply(this, arguments);
384
+ }
385
+
386
+ /**
387
+ * 下载文件
388
+ */
389
+ function _upload() {
390
+ _upload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(url, file, onProgress, config) {
391
+ var formData, _ref10, _ref10$retry, retry, _ref10$retryDelay, retryDelay, axiosConfig, requestFn, response;
392
+ return _regeneratorRuntime().wrap(function _callee11$(_context11) {
393
+ while (1) switch (_context11.prev = _context11.next) {
394
+ case 0:
395
+ formData = new FormData();
396
+ formData.append('file', file);
397
+ _ref10 = config || {}, _ref10$retry = _ref10.retry, retry = _ref10$retry === void 0 ? 0 : _ref10$retry, _ref10$retryDelay = _ref10.retryDelay, retryDelay = _ref10$retryDelay === void 0 ? 1000 : _ref10$retryDelay, axiosConfig = _objectWithoutProperties(_ref10, _excluded6);
398
+ requestFn = function requestFn() {
399
+ return createRequest().post(url, formData, _objectSpread(_objectSpread({}, axiosConfig), {}, {
400
+ headers: _objectSpread({
401
+ 'Content-Type': 'multipart/form-data'
402
+ }, axiosConfig.headers),
403
+ onUploadProgress: function onUploadProgress(progressEvent) {
404
+ if (onProgress && progressEvent.total) {
405
+ var _progress = Math.round(progressEvent.loaded * 100 / progressEvent.total);
406
+ onProgress(_progress);
407
+ }
408
+ }
409
+ }));
410
+ };
411
+ _context11.next = 6;
412
+ return retryRequest(requestFn, retry, retryDelay);
413
+ case 6:
414
+ response = _context11.sent;
415
+ return _context11.abrupt("return", response.data);
416
+ case 8:
417
+ case "end":
418
+ return _context11.stop();
419
+ }
420
+ }, _callee11);
421
+ }));
422
+ return _upload.apply(this, arguments);
423
+ }
424
+ export function download(_x26, _x27, _x28) {
425
+ return _download.apply(this, arguments);
426
+ }
427
+
428
+ // 默认请求实例
429
+ function _download() {
430
+ _download = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13(url, filename, config) {
431
+ var _ref11, _ref11$retry, retry, _ref11$retryDelay, retryDelay, axiosConfig, requestFn;
432
+ return _regeneratorRuntime().wrap(function _callee13$(_context13) {
433
+ while (1) switch (_context13.prev = _context13.next) {
434
+ case 0:
435
+ _ref11 = config || {}, _ref11$retry = _ref11.retry, retry = _ref11$retry === void 0 ? 0 : _ref11$retry, _ref11$retryDelay = _ref11.retryDelay, retryDelay = _ref11$retryDelay === void 0 ? 1000 : _ref11$retryDelay, axiosConfig = _objectWithoutProperties(_ref11, _excluded7);
436
+ requestFn = /*#__PURE__*/function () {
437
+ var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12() {
438
+ var response, blob, downloadUrl, link;
439
+ return _regeneratorRuntime().wrap(function _callee12$(_context12) {
440
+ while (1) switch (_context12.prev = _context12.next) {
441
+ case 0:
442
+ _context12.next = 2;
443
+ return createRequest().get(url, _objectSpread(_objectSpread({}, axiosConfig), {}, {
444
+ responseType: 'blob'
445
+ }));
446
+ case 2:
447
+ response = _context12.sent;
448
+ blob = new Blob([response.data]);
449
+ downloadUrl = window.URL.createObjectURL(blob);
450
+ link = document.createElement('a');
451
+ link.href = downloadUrl;
452
+ link.download = filename || 'download';
453
+ document.body.appendChild(link);
454
+ link.click();
455
+ document.body.removeChild(link);
456
+ window.URL.revokeObjectURL(downloadUrl);
457
+ case 12:
458
+ case "end":
459
+ return _context12.stop();
460
+ }
461
+ }, _callee12);
462
+ }));
463
+ return function requestFn() {
464
+ return _ref12.apply(this, arguments);
465
+ };
466
+ }();
467
+ _context13.next = 4;
468
+ return retryRequest(requestFn, retry, retryDelay);
469
+ case 4:
470
+ case "end":
471
+ return _context13.stop();
472
+ }
473
+ }, _callee13);
474
+ }));
475
+ return _download.apply(this, arguments);
476
+ }
477
+ export var request = createRequest();
478
+
479
+ // 导出所有方法
480
+ export default {
481
+ createRequest: createRequest,
482
+ get: get,
483
+ post: post,
484
+ put: put,
485
+ del: del,
486
+ patch: patch,
487
+ upload: upload,
488
+ download: download,
489
+ request: request
490
+ };
491
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["axios","handleResponseError","error","response","_error$response","status","data","code","message","concat","details","request","createRequest","config","arguments","length","undefined","_config$baseURL","baseURL","_config$timeout","timeout","_config$headers","headers","requestInterceptor","responseInterceptor","onError","instance","create","_objectSpread","interceptors","use","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","requestConfig","wrap","_callee$","_context","prev","next","method","params","_t","Date","now","onRequest","abrupt","stop","_x","apply","_ref2","_callee2","_callee2$","_context2","onRequestError","Promise","reject","_x2","_ref3","_callee3","_callee3$","_context3","onResponse","_x3","_ref4","_callee4","requestError","_callee4$","_context4","onResponseError","_x4","retryRequest","_x5","_x6","_x7","_retryRequest","_callee5","requestFn","retryCount","retryDelay","_callee5$","_context5","sent","t0","resolve","setTimeout","get","_x8","_x9","_x10","_get","_callee6","url","_ref5","_ref5$retry","retry","_ref5$retryDelay","axiosConfig","_callee6$","_context6","_objectWithoutProperties","_excluded","post","_x11","_x12","_x13","_post","_callee7","_ref6","_ref6$retry","_ref6$retryDelay","_callee7$","_context7","_excluded2","put","_x14","_x15","_x16","_put","_callee8","_ref7","_ref7$retry","_ref7$retryDelay","_callee8$","_context8","_excluded3","del","_x17","_x18","_del","_callee9","_ref8","_ref8$retry","_ref8$retryDelay","_callee9$","_context9","_excluded4","delete","patch","_x19","_x20","_x21","_patch","_callee10","_ref9","_ref9$retry","_ref9$retryDelay","_callee10$","_context10","_excluded5","upload","_x22","_x23","_x24","_x25","_upload","_callee11","file","onProgress","formData","_ref10","_ref10$retry","_ref10$retryDelay","_callee11$","_context11","FormData","append","_excluded6","onUploadProgress","progressEvent","total","progress","Math","round","loaded","download","_x26","_x27","_x28","_download","_callee13","filename","_ref11","_ref11$retry","_ref11$retryDelay","_callee13$","_context13","_excluded7","_ref12","_callee12","blob","downloadUrl","link","_callee12$","_context12","responseType","Blob","window","URL","createObjectURL","document","createElement","href","body","appendChild","click","removeChild","revokeObjectURL"],"sources":["../../../src/utils/request.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosError, InternalAxiosRequestConfig } from 'axios';\n\n// 请求配置接口\nexport interface RequestConfig extends AxiosRequestConfig {\n showError?: boolean; // 是否显示错误信息\n retry?: number; // 重试次数\n retryDelay?: number; // 重试延迟\n}\n\n// 响应数据接口\nexport interface ApiResponse<T = any> {\n code: number;\n message: string;\n data: T;\n success: boolean;\n}\n\n// 错误信息接口\nexport interface RequestError {\n code: number;\n message: string;\n details?: any;\n}\n\n// 请求拦截器配置\nexport interface RequestInterceptor {\n onRequest?: (config: InternalAxiosRequestConfig) => InternalAxiosRequestConfig | Promise<InternalAxiosRequestConfig>;\n onRequestError?: (error: AxiosError) => Promise<AxiosError>;\n}\n\n// 响应拦截器配置\nexport interface ResponseInterceptor {\n onResponse?: <T>(response: AxiosResponse<ApiResponse<T>>) => AxiosResponse<ApiResponse<T>> | Promise<AxiosResponse<ApiResponse<T>>>;\n onResponseError?: (error: AxiosError) => Promise<AxiosError>;\n}\n\n// 创建请求实例的配置\nexport interface CreateRequestConfig {\n baseURL?: string;\n timeout?: number;\n headers?: Record<string, string>;\n requestInterceptor?: RequestInterceptor;\n responseInterceptor?: ResponseInterceptor;\n onError?: (error: RequestError) => void;\n}\n\n/**\n * 处理响应错误\n */\nfunction handleResponseError(error: AxiosError): RequestError {\n if (error.response) {\n // 服务器返回错误状态码\n const { status, data } = error.response;\n return {\n code: status,\n message: (data as any)?.message || `HTTP ${status} 错误`,\n details: data,\n };\n }\n if (error.request) {\n // 请求已发出但没有收到响应\n return {\n code: -1,\n message: '网络连接失败,请检查网络设置',\n details: error.request,\n };\n }\n // 请求配置错误\n return {\n code: -2,\n message: error.message || '请求配置错误',\n details: error,\n };\n}\n\n/**\n * 创建请求实例\n */\nexport function createRequest(config: CreateRequestConfig = {}): AxiosInstance {\n const {\n baseURL = '',\n timeout = 10000,\n headers = {},\n requestInterceptor,\n responseInterceptor,\n onError,\n } = config;\n\n // 创建 axios 实例\n const instance = axios.create({\n baseURL,\n timeout,\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n });\n\n // 请求拦截器\n instance.interceptors.request.use(\n async (requestConfig) => {\n // 添加时间戳防止缓存\n if (requestConfig.method === 'get') {\n requestConfig.params = {\n ...requestConfig.params,\n _t: Date.now(),\n };\n }\n\n // 自定义请求拦截器\n if (requestInterceptor?.onRequest) {\n return requestInterceptor.onRequest(requestConfig);\n }\n\n return requestConfig;\n },\n async (error) => {\n // 自定义请求错误拦截器\n if (requestInterceptor?.onRequestError) {\n return requestInterceptor.onRequestError(error);\n }\n return Promise.reject(error);\n },\n );\n\n // 响应拦截器\n instance.interceptors.response.use(\n async (response) => {\n // 自定义响应拦截器\n if (responseInterceptor?.onResponse) {\n return responseInterceptor.onResponse(response);\n }\n return response;\n },\n async (error: AxiosError) => {\n const requestError = handleResponseError(error);\n\n // 调用错误回调\n if (onError) {\n onError(requestError);\n }\n\n // 自定义响应错误拦截器\n if (responseInterceptor?.onResponseError) {\n return responseInterceptor.onResponseError(error);\n }\n\n return Promise.reject(requestError);\n },\n );\n\n return instance;\n}\n\n/**\n * 重试机制\n */\nasync function retryRequest<T>(\n requestFn: () => Promise<T>,\n retryCount: number,\n retryDelay: number,\n): Promise<T> {\n try {\n return await requestFn();\n } catch (error) {\n if (retryCount > 0) {\n await new Promise((resolve) => setTimeout(resolve, retryDelay));\n return retryRequest(requestFn, retryCount - 1, retryDelay);\n }\n throw error;\n }\n}\n\n/**\n * 通用 GET 请求\n */\nexport async function get<T = any>(\n url: string,\n params?: any,\n config?: RequestConfig,\n): Promise<ApiResponse<T>> {\n const { retry = 0, retryDelay = 1000, ...axiosConfig } = config || {};\n\n const requestFn = () => createRequest().get<ApiResponse<T>>(url, {\n params,\n ...axiosConfig,\n });\n\n const response = await retryRequest(requestFn, retry, retryDelay);\n return response.data;\n}\n\n/**\n * 通用 POST 请求\n */\nexport async function post<T = any>(\n url: string,\n data?: any,\n config?: RequestConfig,\n): Promise<ApiResponse<T>> {\n const { retry = 0, retryDelay = 1000, ...axiosConfig } = config || {};\n\n const requestFn = () => createRequest().post<ApiResponse<T>>(url, data, axiosConfig);\n\n const response = await retryRequest(requestFn, retry, retryDelay);\n return response.data;\n}\n\n/**\n * 通用 PUT 请求\n */\nexport async function put<T = any>(\n url: string,\n data?: any,\n config?: RequestConfig,\n): Promise<ApiResponse<T>> {\n const { retry = 0, retryDelay = 1000, ...axiosConfig } = config || {};\n\n const requestFn = () => createRequest().put<ApiResponse<T>>(url, data, axiosConfig);\n\n const response = await retryRequest(requestFn, retry, retryDelay);\n return response.data;\n}\n\n/**\n * 通用 DELETE 请求\n */\nexport async function del<T = any>(\n url: string,\n config?: RequestConfig,\n): Promise<ApiResponse<T>> {\n const { retry = 0, retryDelay = 1000, ...axiosConfig } = config || {};\n\n const requestFn = () => createRequest().delete<ApiResponse<T>>(url, axiosConfig);\n\n const response = await retryRequest(requestFn, retry, retryDelay);\n return response.data;\n}\n\n/**\n * 通用 PATCH 请求\n */\nexport async function patch<T = any>(\n url: string,\n data?: any,\n config?: RequestConfig,\n): Promise<ApiResponse<T>> {\n const { retry = 0, retryDelay = 1000, ...axiosConfig } = config || {};\n\n const requestFn = () => createRequest().patch<ApiResponse<T>>(url, data, axiosConfig);\n\n const response = await retryRequest(requestFn, retry, retryDelay);\n return response.data;\n}\n\n/**\n * 文件上传\n */\nexport async function upload<T = any>(\n url: string,\n file: File,\n onProgress?: (progress: number) => void,\n config?: RequestConfig,\n): Promise<ApiResponse<T>> {\n const formData = new FormData();\n formData.append('file', file);\n\n const { retry = 0, retryDelay = 1000, ...axiosConfig } = config || {};\n\n const requestFn = () => createRequest().post<ApiResponse<T>>(url, formData, {\n ...axiosConfig,\n headers: {\n 'Content-Type': 'multipart/form-data',\n ...axiosConfig.headers,\n },\n onUploadProgress: (progressEvent) => {\n if (onProgress && progressEvent.total) {\n const progress = Math.round((progressEvent.loaded * 100) / progressEvent.total);\n onProgress(progress);\n }\n },\n });\n\n const response = await retryRequest(requestFn, retry, retryDelay);\n return response.data;\n}\n\n/**\n * 下载文件\n */\nexport async function download(\n url: string,\n filename?: string,\n config?: RequestConfig,\n): Promise<void> {\n const { retry = 0, retryDelay = 1000, ...axiosConfig } = config || {};\n\n const requestFn = async () => {\n const response = await createRequest().get(url, {\n ...axiosConfig,\n responseType: 'blob',\n });\n\n const blob = new Blob([response.data]);\n const downloadUrl = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = downloadUrl;\n link.download = filename || 'download';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n window.URL.revokeObjectURL(downloadUrl);\n };\n\n await retryRequest(requestFn, retry, retryDelay);\n}\n\n// 默认请求实例\nexport const request = createRequest();\n\n// 导出所有方法\nexport default {\n createRequest,\n get,\n post,\n put,\n del,\n patch,\n upload,\n download,\n request,\n};\n"],"mappings":"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"}