fishpi 0.0.1

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.
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ var __importDefault = (this && this.__importDefault) || function (mod) {
31
+ return (mod && mod.__esModule) ? mod : { "default": mod };
32
+ };
33
+ Object.defineProperty(exports, "__esModule", { value: true });
34
+ const reconnecting_websocket_1 = __importDefault(require("reconnecting-websocket"));
35
+ const utils_1 = require("./utils");
36
+ class ChatRoom {
37
+ constructor(token = '') {
38
+ this._apiKey = '';
39
+ this._onlines = [];
40
+ this._rws = null;
41
+ this._wsTimer = null;
42
+ this._wsCallbacks = [];
43
+ if (!token) {
44
+ return;
45
+ }
46
+ this._apiKey = token;
47
+ }
48
+ /**
49
+ * 当前在线人数列表,需要先调用 addListener 添加聊天室消息监听
50
+ */
51
+ get onlines() {
52
+ return this._onlines;
53
+ }
54
+ /**
55
+ * 重新设置请求 Token
56
+ * @param apiKey 接口 API Key
57
+ */
58
+ setToken(apiKey) {
59
+ this._apiKey = apiKey;
60
+ }
61
+ /**
62
+ * 查询聊天室历史消息
63
+ * @param page 消息页码
64
+ */
65
+ more(page = 1) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ try {
68
+ let rsp = yield (0, utils_1.request)({
69
+ url: `chat-room/more?page=${page}&apiKey=${this._apiKey}`
70
+ });
71
+ if (rsp.status === 401) {
72
+ throw new Error('登录已失效,请重新登录!');
73
+ }
74
+ if (rsp.code != 0) {
75
+ throw new Error(rsp.msg);
76
+ }
77
+ rsp = rsp.data;
78
+ if (!rsp.data)
79
+ return rsp;
80
+ let redpacket;
81
+ rsp.data.forEach((d, i, data) => {
82
+ try {
83
+ data[i].sysMetal = (0, utils_1.toMetal)(data[i].sysMetal);
84
+ redpacket = JSON.parse(d.content);
85
+ if (redpacket.msgType !== 'msgType')
86
+ return rsp;
87
+ redpacket.recivers = JSON.parse(redpacket.recivers);
88
+ data[i].content = redpacket;
89
+ }
90
+ catch (e) { }
91
+ });
92
+ return rsp;
93
+ }
94
+ catch (e) {
95
+ throw e;
96
+ }
97
+ });
98
+ }
99
+ /**
100
+ * 撤回消息,普通成员 24 小时内可撤回一条自己的消息,纪律委员/OP/管理员角色可以撤回任意人消息
101
+ * @param oId 消息 Id
102
+ */
103
+ revoke(oId) {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ let rsp;
106
+ try {
107
+ rsp = yield (0, utils_1.request)({
108
+ url: `chat-room/revoke/${oId}`,
109
+ method: 'delete',
110
+ data: {
111
+ apiKey: this._apiKey
112
+ },
113
+ });
114
+ if (rsp.status === 401) {
115
+ throw new Error('登录已失效,请重新登录!');
116
+ }
117
+ return rsp.data;
118
+ }
119
+ catch (e) {
120
+ throw e;
121
+ }
122
+ });
123
+ }
124
+ /**
125
+ * 发送一条消息
126
+ * @param msg 消息内容,支持 Markdown
127
+ */
128
+ send(msg) {
129
+ return __awaiter(this, void 0, void 0, function* () {
130
+ let rsp;
131
+ try {
132
+ rsp = yield (0, utils_1.request)({
133
+ url: `chat-room/send`,
134
+ method: 'post',
135
+ data: {
136
+ content: msg,
137
+ apiKey: this._apiKey
138
+ },
139
+ });
140
+ if (rsp.status === 401) {
141
+ throw new Error('登录已失效,请重新登录!');
142
+ }
143
+ return rsp.data;
144
+ }
145
+ catch (e) {
146
+ throw e;
147
+ }
148
+ });
149
+ }
150
+ /**
151
+ * 获取消息原文(比如 Markdown)
152
+ * @param oId 消息 Id
153
+ */
154
+ raw(oId) {
155
+ return __awaiter(this, void 0, void 0, function* () {
156
+ let rsp;
157
+ try {
158
+ rsp = yield (0, utils_1.request)({
159
+ url: `cr/raw/${oId}`,
160
+ });
161
+ return rsp.data.replace(/<!--.*?-->/g, '');
162
+ }
163
+ catch (e) {
164
+ throw e;
165
+ }
166
+ });
167
+ }
168
+ /**
169
+ * 表情包接口对象
170
+ */
171
+ get emoji() {
172
+ let apiKey = this._apiKey;
173
+ return {
174
+ /**
175
+ * 获取表情包图像列表
176
+ */
177
+ get() {
178
+ return __awaiter(this, void 0, void 0, function* () {
179
+ let rsp;
180
+ try {
181
+ rsp = yield (0, utils_1.request)({
182
+ url: `api/cloud/get`,
183
+ method: 'post',
184
+ data: {
185
+ gameId: 'emojis',
186
+ apiKey
187
+ },
188
+ });
189
+ if (rsp.status === 401) {
190
+ throw new Error('登录已失效,请重新登录!');
191
+ }
192
+ return JSON.parse(rsp.data.data);
193
+ }
194
+ catch (e) {
195
+ throw e;
196
+ }
197
+ });
198
+ },
199
+ /**
200
+ * 设置表情包列表
201
+ * @param data 所有表情包图像列表
202
+ */
203
+ set(data) {
204
+ return __awaiter(this, void 0, void 0, function* () {
205
+ let rsp;
206
+ try {
207
+ rsp = yield (0, utils_1.request)({
208
+ url: `api/cloud/sync`,
209
+ method: 'post',
210
+ data: {
211
+ gameId: 'emojis',
212
+ data: JSON.stringify(data),
213
+ apiKey
214
+ },
215
+ });
216
+ if (rsp.status === 401) {
217
+ throw new Error('登录已失效,请重新登录!');
218
+ }
219
+ return rsp.data;
220
+ }
221
+ catch (e) {
222
+ throw e;
223
+ }
224
+ });
225
+ }
226
+ };
227
+ }
228
+ /**
229
+ * 红包接口对象
230
+ */
231
+ get redpacket() {
232
+ let apiKey = this._apiKey;
233
+ let that = this;
234
+ return {
235
+ /**
236
+ * 打开一个红包
237
+ * @param oId 红包消息 Id
238
+ */
239
+ open(oId) {
240
+ return __awaiter(this, void 0, void 0, function* () {
241
+ let rsp;
242
+ try {
243
+ rsp = yield (0, utils_1.request)({
244
+ url: `chat-room/red-packet/open`,
245
+ method: 'post',
246
+ data: {
247
+ oId,
248
+ apiKey
249
+ },
250
+ });
251
+ if (rsp.status === 401) {
252
+ throw new Error('登录已失效,请重新登录!');
253
+ }
254
+ return rsp.data;
255
+ }
256
+ catch (e) {
257
+ throw e;
258
+ }
259
+ });
260
+ },
261
+ /**
262
+ * 发送一个红包
263
+ * @param redpacket 红包对象
264
+ */
265
+ send(redpacket) {
266
+ return __awaiter(this, void 0, void 0, function* () {
267
+ return yield that.send(`[redpacket]${JSON.stringify(redpacket)}[/redpacket]`);
268
+ });
269
+ }
270
+ };
271
+ }
272
+ /**
273
+ * 移除聊天室消息监听函数
274
+ * @param wsCallback 消息监听函数
275
+ */
276
+ removeListener(wsCallback) {
277
+ if (this._wsCallbacks.indexOf(wsCallback) < 0)
278
+ return;
279
+ this._wsCallbacks.splice(this._wsCallbacks.indexOf(wsCallback), 1);
280
+ }
281
+ /**
282
+ * 添加聊天室消息监听函数
283
+ * @param wsCallback 消息监听函数
284
+ */
285
+ addListener(wsCallback) {
286
+ if (this._rws !== null) {
287
+ if (this._wsCallbacks.indexOf(wsCallback) < 0)
288
+ this._wsCallbacks.push(wsCallback);
289
+ return;
290
+ }
291
+ this._wsCallbacks.push(wsCallback);
292
+ this._rws = new reconnecting_websocket_1.default(`wss://${utils_1.domain}chat-room-channel?apiKey=${this._apiKey}`, [], {
293
+ // eslint-disable-next-line @typescript-eslint/naming-convention
294
+ WebSocket: window ? window.WebSocket : Promise.resolve().then(() => __importStar(require('ws'))),
295
+ connectionTimeout: 10000
296
+ });
297
+ this._rws.onopen = (e) => {
298
+ if (this._wsTimer) {
299
+ clearInterval(this._wsTimer);
300
+ }
301
+ this._wsTimer = setInterval(() => {
302
+ var _a;
303
+ (_a = this._rws) === null || _a === void 0 ? void 0 : _a.send('-hb-');
304
+ }, 1000 * 60 * 3);
305
+ };
306
+ this._rws.onmessage = (e) => __awaiter(this, void 0, void 0, function* () {
307
+ let msg = JSON.parse(e.data);
308
+ let data = null;
309
+ switch (msg.type) {
310
+ case 'online': {
311
+ data = this._onlines = msg.users;
312
+ break;
313
+ }
314
+ case 'revoke': {
315
+ data = msg.oId;
316
+ break;
317
+ }
318
+ case 'msg': {
319
+ let { oId, time, userName, userNickname, userAvatarURL, content, md } = msg;
320
+ try {
321
+ let { msg, recivers, money, count, type, got, who, msgType } = JSON.parse(content);
322
+ if (msgType === 'redPacket') {
323
+ data = {
324
+ oId, time, userName, userNickname, userAvatarURL,
325
+ redpacket: { msg, recivers, money, count, type, got, who }
326
+ };
327
+ msg.type = 'redPacket';
328
+ break;
329
+ }
330
+ }
331
+ catch (e) { }
332
+ data = { oId, time, userName, userNickname, userAvatarURL, content, md };
333
+ break;
334
+ }
335
+ case 'redPacketStatus': {
336
+ let { oId, count, got, whoGive, whoGot } = msg;
337
+ data = { oId, count, got, whoGive, whoGot };
338
+ break;
339
+ }
340
+ }
341
+ this._wsCallbacks.forEach(call => call(Object.assign({ msg: { type: msg.type, data } }, e)));
342
+ });
343
+ this._rws.onerror = (e) => {
344
+ console.error(e);
345
+ };
346
+ this._rws.onclose = (e) => {
347
+ };
348
+ }
349
+ }
350
+ exports.default = ChatRoom;
@@ -0,0 +1,67 @@
1
+ import { ApiResponse, Account, UserInfo, AtUserList, UploadInfo } from '..';
2
+ import ChatRoom from './chatroom';
3
+ import Notice from './notice';
4
+ declare class FishPi {
5
+ /**
6
+ * 请求 API 的 API Key
7
+ */
8
+ apiKey: string;
9
+ /**
10
+ * 聊天室接口对象
11
+ */
12
+ chatroom: ChatRoom;
13
+ /**
14
+ * 通知接口对象
15
+ */
16
+ notice: Notice;
17
+ /**
18
+ * 构造一个 API 请求对象
19
+ * @param token 接口 API Key,没有可以传空
20
+ */
21
+ constructor(token?: string);
22
+ /**
23
+ * 登录账号返回 API Key
24
+ * @param data 用户账密
25
+ */
26
+ login(data: Account): Promise<ApiResponse<string>>;
27
+ /**
28
+ * 返回登录账户信息,需要先登录或设置有效的 api key
29
+ */
30
+ info(): Promise<ApiResponse<UserInfo>>;
31
+ /**
32
+ * 查询指定用户信息
33
+ * @param username 用户名
34
+ */
35
+ user(username: string): Promise<ApiResponse<UserInfo>>;
36
+ /**
37
+ * 用户名联想,通常用于 @ 列表
38
+ * @param username 用户名
39
+ */
40
+ names(name: string): Promise<AtUserList>;
41
+ /**
42
+ * 查询登录用户常用表情
43
+ */
44
+ emotions(): Promise<ApiResponse<Array<string>>>;
45
+ /**
46
+ * 查询登录用户当前活跃度,请求频率请控制在 30 ~ 60 秒一次
47
+ */
48
+ liveness(): Promise<number>;
49
+ /**
50
+ * 检查登录用户是否已经签到
51
+ */
52
+ isCheckIn(): Promise<boolean>;
53
+ /**
54
+ * 检查登录用户是否已经领取昨日活跃奖励
55
+ */
56
+ isCollectedLiveness(): Promise<boolean>;
57
+ /**
58
+ * 领取昨日活跃度奖励
59
+ */
60
+ rewardLiveness(): Promise<number>;
61
+ /**
62
+ * 上传文件
63
+ * @param files 要上传的文件,如果是在 Node 使用,则传入文件路径数组,若是在浏览器使用,则传入文件对象数组。
64
+ */
65
+ upload(files: Array<File | string>): Promise<UploadInfo>;
66
+ }
67
+ export default FishPi;
@@ -0,0 +1,295 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ var __importDefault = (this && this.__importDefault) || function (mod) {
31
+ return (mod && mod.__esModule) ? mod : { "default": mod };
32
+ };
33
+ Object.defineProperty(exports, "__esModule", { value: true });
34
+ const crypto = __importStar(require("crypto"));
35
+ const fs = __importStar(require("fs"));
36
+ const path = __importStar(require("path"));
37
+ const utils_1 = require("./utils");
38
+ const chatroom_1 = __importDefault(require("./chatroom"));
39
+ const notice_1 = __importDefault(require("./notice"));
40
+ class FishPi {
41
+ /**
42
+ * 构造一个 API 请求对象
43
+ * @param token 接口 API Key,没有可以传空
44
+ */
45
+ constructor(token = '') {
46
+ /**
47
+ * 请求 API 的 API Key
48
+ */
49
+ this.apiKey = '';
50
+ /**
51
+ * 聊天室接口对象
52
+ */
53
+ this.chatroom = new chatroom_1.default();
54
+ /**
55
+ * 通知接口对象
56
+ */
57
+ this.notice = new notice_1.default();
58
+ if (!token) {
59
+ return;
60
+ }
61
+ this.apiKey = token;
62
+ this.chatroom.setToken(this.apiKey);
63
+ this.notice.setToken(this.apiKey);
64
+ }
65
+ /**
66
+ * 登录账号返回 API Key
67
+ * @param data 用户账密
68
+ */
69
+ login(data) {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ try {
72
+ let md5 = crypto.createHash('md5');
73
+ let rsp = yield (0, utils_1.request)({
74
+ url: 'api/getKey',
75
+ method: 'post',
76
+ data: {
77
+ nameOrEmail: data.username,
78
+ userPassword: md5.update(data.passwd).digest('hex')
79
+ },
80
+ });
81
+ this.apiKey = rsp.data.Key;
82
+ this.chatroom.setToken(this.apiKey);
83
+ this.notice.setToken(this.apiKey);
84
+ return rsp.data;
85
+ }
86
+ catch (e) {
87
+ throw e;
88
+ }
89
+ });
90
+ }
91
+ /**
92
+ * 返回登录账户信息,需要先登录或设置有效的 api key
93
+ */
94
+ info() {
95
+ return __awaiter(this, void 0, void 0, function* () {
96
+ try {
97
+ let rsp = yield (0, utils_1.request)({
98
+ url: `api/user?apiKey=${this.apiKey}`
99
+ });
100
+ if (rsp.status === 401) {
101
+ return { code: -1, msg: '登录已失效,请重新登录!' };
102
+ }
103
+ rsp.data.data.sysMetal = (0, utils_1.toMetal)(rsp.data.data.sysMetal);
104
+ return rsp.data;
105
+ }
106
+ catch (e) {
107
+ throw e;
108
+ }
109
+ });
110
+ }
111
+ /**
112
+ * 查询指定用户信息
113
+ * @param username 用户名
114
+ */
115
+ user(username) {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ try {
118
+ let rsp = yield (0, utils_1.request)({
119
+ url: `user/${username}?apiKey=${this.apiKey}`
120
+ });
121
+ if (rsp.status === 401) {
122
+ return { code: -1, msg: '登录已失效,请重新登录!' };
123
+ }
124
+ rsp.data.data.sysMetal = (0, utils_1.toMetal)(rsp.data.data.sysMetal);
125
+ return rsp.data;
126
+ }
127
+ catch (e) {
128
+ throw e;
129
+ }
130
+ });
131
+ }
132
+ /**
133
+ * 用户名联想,通常用于 @ 列表
134
+ * @param username 用户名
135
+ */
136
+ names(name) {
137
+ return __awaiter(this, void 0, void 0, function* () {
138
+ let rsp;
139
+ try {
140
+ rsp = yield (0, utils_1.request)({
141
+ url: `users/names`,
142
+ method: 'post',
143
+ data: {
144
+ name
145
+ },
146
+ });
147
+ return rsp.data.data;
148
+ }
149
+ catch (e) {
150
+ throw e;
151
+ }
152
+ });
153
+ }
154
+ /**
155
+ * 查询登录用户常用表情
156
+ */
157
+ emotions() {
158
+ return __awaiter(this, void 0, void 0, function* () {
159
+ let rsp;
160
+ try {
161
+ rsp = yield (0, utils_1.request)({
162
+ url: `users/emotions?apiKey=${this.apiKey}`,
163
+ });
164
+ if (rsp.status === 401) {
165
+ return { code: -1, msg: '登录已失效,请重新登录!' };
166
+ }
167
+ rsp.data.data = Object.keys(rsp.data.data);
168
+ return rsp.data;
169
+ }
170
+ catch (e) {
171
+ throw e;
172
+ }
173
+ });
174
+ }
175
+ /**
176
+ * 查询登录用户当前活跃度,请求频率请控制在 30 ~ 60 秒一次
177
+ */
178
+ liveness() {
179
+ return __awaiter(this, void 0, void 0, function* () {
180
+ if (!this.apiKey) {
181
+ return 0;
182
+ }
183
+ try {
184
+ let rsp = yield (0, utils_1.request)({
185
+ url: `user/liveness?apiKey=${this.apiKey}`
186
+ });
187
+ if (rsp.status === 401) {
188
+ return -1;
189
+ }
190
+ return rsp.data.liveness || 0;
191
+ }
192
+ catch (e) {
193
+ throw e;
194
+ }
195
+ });
196
+ }
197
+ /**
198
+ * 检查登录用户是否已经签到
199
+ */
200
+ isCheckIn() {
201
+ return __awaiter(this, void 0, void 0, function* () {
202
+ if (!this.apiKey) {
203
+ return false;
204
+ }
205
+ try {
206
+ let rsp = yield (0, utils_1.request)({
207
+ url: `user/checkedIn?apiKey=${this.apiKey}`
208
+ });
209
+ if (rsp.status === 401) {
210
+ return false;
211
+ }
212
+ return rsp.data.checkedIn || false;
213
+ }
214
+ catch (e) {
215
+ throw e;
216
+ }
217
+ });
218
+ }
219
+ /**
220
+ * 检查登录用户是否已经领取昨日活跃奖励
221
+ */
222
+ isCollectedLiveness() {
223
+ return __awaiter(this, void 0, void 0, function* () {
224
+ if (!this.apiKey) {
225
+ return false;
226
+ }
227
+ try {
228
+ let rsp = yield (0, utils_1.request)({
229
+ url: `api/activity/is-collected-liveness?apiKey=${this.apiKey}`
230
+ });
231
+ if (rsp.status === 401) {
232
+ return false;
233
+ }
234
+ return rsp.data.isCollectedYesterdayLivenessReward || false;
235
+ }
236
+ catch (e) {
237
+ throw e;
238
+ }
239
+ });
240
+ }
241
+ /**
242
+ * 领取昨日活跃度奖励
243
+ */
244
+ rewardLiveness() {
245
+ return __awaiter(this, void 0, void 0, function* () {
246
+ if (!this.apiKey) {
247
+ return 0;
248
+ }
249
+ try {
250
+ let rsp = yield (0, utils_1.request)({
251
+ url: `api/activity/yesterday-liveness-reward-api?apiKey=${this.apiKey}`
252
+ });
253
+ if (rsp.status === 401) {
254
+ return 0;
255
+ }
256
+ return rsp.data.sum || 0;
257
+ }
258
+ catch (e) {
259
+ throw e;
260
+ }
261
+ });
262
+ }
263
+ /**
264
+ * 上传文件
265
+ * @param files 要上传的文件,如果是在 Node 使用,则传入文件路径数组,若是在浏览器使用,则传入文件对象数组。
266
+ */
267
+ upload(files) {
268
+ return __awaiter(this, void 0, void 0, function* () {
269
+ let data;
270
+ if (window) {
271
+ data = new FormData();
272
+ files.forEach(f => data.append('file[]', f));
273
+ }
274
+ else {
275
+ let FormData = (yield Promise.resolve().then(() => __importStar(require('form-data')))).default;
276
+ data = new FormData();
277
+ files.forEach(f => data.append('file[]', fs.readFileSync(f.toString()), path.basename(f.toString())));
278
+ }
279
+ let rsp;
280
+ try {
281
+ rsp = yield (0, utils_1.request)({
282
+ url: `upload`,
283
+ method: 'post',
284
+ data,
285
+ headers: data.getHeaders()
286
+ });
287
+ return rsp.data.data;
288
+ }
289
+ catch (e) {
290
+ throw e;
291
+ }
292
+ });
293
+ }
294
+ }
295
+ exports.default = FishPi;