@yoooloo42/beat 1.0.26 → 1.0.29

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 (34) hide show
  1. package/package.json +42 -40
  2. package/src/{libs/Ali → Ali}/Carplate-AppCode.js +3 -0
  3. package/src/{libs/Ali/Carlpate-AppKey.js → Ali/Carplate-AppKey.js} +3 -0
  4. package/src/{libs/Ali → Ali}/Carplate-VIAPI.js +3 -0
  5. package/src/{libs/Ali → Ali}/SMS.js +6 -3
  6. package/src/Ali/index.js +17 -0
  7. package/src/{libs/Email.js → Email/index.js} +6 -3
  8. package/src/{libs/Feie.js → Feie/index.js} +5 -1
  9. package/src/{libs/multer/ly0.js → FileDB/ImageSave.js} +70 -81
  10. package/src/{libs/readfile/Base64.js → FileDB/base64.js} +4 -0
  11. package/src/{libs/multer → FileDB}/clear.js +4 -0
  12. package/src/{libs/multer → FileDB}/convert.js +4 -0
  13. package/src/FileDB/index.js +26 -0
  14. package/src/FileDB/richtext.js +32 -0
  15. package/src/{libs/multer/multer.js → FileDB/upload.js} +11 -7
  16. package/src/{libs/readfile/Utf8.js → FileDB/utf8.js} +4 -0
  17. package/src/{libs/WeChat → WeChat}/MPC.js +2 -1
  18. package/src/{libs/WeChat → WeChat}/Token.js +6 -0
  19. package/src/WeChat/index.js +11 -0
  20. package/src/WeChat-Pay/index.js +23 -0
  21. package/src/{libs/WeChat-Pay → WeChat-Pay}/v2micropay.js +4 -1
  22. package/src/{libs/WeChat-Pay → WeChat-Pay}/v3close.js +3 -0
  23. package/src/{libs/WeChat-Pay → WeChat-Pay}/v3jsapi.js +4 -1
  24. package/src/{libs/WeChat-Pay → WeChat-Pay}/v3native.js +3 -0
  25. package/src/{libs/WeChat-Pay → WeChat-Pay}/v3out_trade_no.js +3 -0
  26. package/src/{libs/WeChat-Pay → WeChat-Pay}/v3sign.js +4 -1
  27. package/src/{libs/Yizoo.js → Yizoo/index.js} +4 -0
  28. package/src/{libs/crypto → crypto}/AES.js +6 -0
  29. package/src/{libs/crypto → crypto}/Hash.js +6 -2
  30. package/src/{libs/crypto → crypto}/RSA.js +5 -0
  31. package/src/crypto/index.js +14 -0
  32. package/src/index.js +29 -0
  33. /package/src/{libs/readfile/Base64.js.test.png → FileDB/base64.js.test.png} +0 -0
  34. /package/src/{libs/WeChat → WeChat}/Token.js.txt +0 -0
package/package.json CHANGED
@@ -1,42 +1,44 @@
1
1
  {
2
- "name": "@yoooloo42/beat",
3
- "version": "1.0.26",
4
- "description": "",
5
- "type": "module",
6
- "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
8
- },
9
- "repository": {
10
- "type": "git",
11
- "url": "git+https://github.com/13993193075/beat.git"
12
- },
13
- "author": "",
14
- "license": "ISC",
15
- "bugs": {
16
- "url": "https://github.com/13993193075/beat/issues"
17
- },
18
- "homepage": "https://github.com/13993193075/beat#readme",
19
- "dependencies": {
20
- "@alicloud/ocr20191230": "^4.0.1",
21
- "@alicloud/openapi-client": "^0.4.15",
22
- "@alicloud/pop-core": "^1.8.0",
23
- "@yoooloo42/bean": "^1.0.14",
24
- "aliyun-api-gateway": "^1.1.6",
25
- "axios": "^1.13.2",
26
- "multer": "^2.0.2",
27
- "nodemailer": "^7.0.10",
28
- "xml2js": "^0.6.2"
29
- },
30
- "exports": {
31
- "./libs/*": "./src/libs/*.js",
32
- "./libs/Ali/*": "./src/libs/Ali/*.js",
33
- "./libs/crypto/*": "./src/libs/crypto/*.js",
34
- "./libs/multer/*": "./src/libs/multer/*.js",
35
- "./libs/readfile/*": "./src/libs/readfile/*.js",
36
- "./libs/WeChat/*": "./src/libs/WeChat/*.js",
37
- "./libs/WeChat-Pay/*": "./src/libs/WeChat-Pay/*.js"
38
- },
39
- "files": [
40
- "src"
41
- ]
2
+ "name": "@yoooloo42/beat",
3
+ "version": "1.0.29",
4
+ "description": "",
5
+ "type": "module",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/13993193075/beat.git"
12
+ },
13
+ "author": "",
14
+ "license": "ISC",
15
+ "bugs": {
16
+ "url": "https://github.com/13993193075/beat/issues"
17
+ },
18
+ "homepage": "https://github.com/13993193075/beat#readme",
19
+ "dependencies": {
20
+ "@alicloud/ocr20191230": "^4.0.1",
21
+ "@alicloud/openapi-client": "^0.4.15",
22
+ "@alicloud/pop-core": "^1.8.0",
23
+ "@yoooloo42/bean": "^1.0.16",
24
+ "aliyun-api-gateway": "^1.1.6",
25
+ "axios": "^1.13.2",
26
+ "cheerio": "^1.1.2",
27
+ "multer": "^2.0.2",
28
+ "nodemailer": "^7.0.10",
29
+ "xml2js": "^0.6.2"
30
+ },
31
+ "exports": {
32
+ "./Ali/*": "./src/Ali/*.js",
33
+ "./crypto/*": "./src/crypto/*.js",
34
+ "./Email/*": "./src/Email/*.js",
35
+ "./Feie/*": "./src/Feie/*.js",
36
+ "./FileDB/*": "./src/FileDB/*.js",
37
+ "./WeChat/*": "./src/WeChat/*.js",
38
+ "./WeChat-Pay/*": "./src/WeChat-Pay/*.js",
39
+ "./Yizoo/*": "./src/Yizoo/*.js"
40
+ },
41
+ "files": [
42
+ "src"
43
+ ]
42
44
  }
@@ -63,6 +63,9 @@ async function carplate(para) {
63
63
  }
64
64
  }
65
65
 
66
+ export {
67
+ carplate
68
+ }
66
69
  export default {
67
70
  carplate
68
71
  }
@@ -65,6 +65,9 @@ async function carplate(para) {
65
65
  }
66
66
  }
67
67
 
68
+ export {
69
+ carplate
70
+ }
68
71
  export default {
69
72
  carplate
70
73
  }
@@ -80,6 +80,9 @@ async function carplate(para) {
80
80
  }
81
81
  }
82
82
 
83
+ export {
84
+ carplate
85
+ }
83
86
  export default {
84
87
  carplate
85
88
  }
@@ -1,4 +1,4 @@
1
- import random from '@yoooloo42/bean/utils/random';
1
+ import random from '@yoooloo42/bean/unclassified/random';
2
2
  // 从 Node.js 内置模块导入工具
3
3
  import { createRequire } from 'node:module';
4
4
  // 创建一个 require 函数
@@ -79,8 +79,11 @@ function sendVercode(cellphone, codeLength = 6, clientBox){
79
79
  })
80
80
  }
81
81
 
82
- const beat = {
82
+ export {
83
83
  sms,
84
84
  sendVercode
85
85
  }
86
- export default beat
86
+ export default {
87
+ sms,
88
+ sendVercode
89
+ }
@@ -0,0 +1,17 @@
1
+ import Carplate_AppKey from './Carplate-AppKey.js'
2
+ import Carplate_AppCode from './Carplate-AppCode.js'
3
+ import Carplate_VIAPI from './Carplate-VIAPI.js'
4
+ import SMS from './SMS.js'
5
+
6
+ export {
7
+ Carplate_AppKey,
8
+ Carplate_AppCode,
9
+ Carplate_VIAPI,
10
+ SMS
11
+ }
12
+ export default {
13
+ Carplate_AppKey,
14
+ Carplate_AppCode,
15
+ Carplate_VIAPI,
16
+ SMS
17
+ }
@@ -1,5 +1,5 @@
1
1
  import nodemailer from 'nodemailer';
2
- import random from '@yoooloo42/bean/utils/random';
2
+ import random from '@yoooloo42/bean/unclassified/random';
3
3
 
4
4
  /**
5
5
  * Node.js 项目中发送电子邮件的函数
@@ -103,8 +103,11 @@ async function sendVercode(recipientEmail, codeLength = 6, expirationMinutes = 5
103
103
  }
104
104
  }
105
105
 
106
- const beat = {
106
+ export {
107
107
  sendEmail,
108
108
  sendVercode
109
109
  }
110
- export default beat
110
+ export default {
111
+ sendEmail,
112
+ sendVercode
113
+ }
@@ -2,7 +2,7 @@
2
2
 
3
3
  import http from 'http'
4
4
  import qs from 'querystring'
5
- import Hash from './crypto/Hash.js'
5
+ import Hash from '../crypto/Hash.js'
6
6
  const host = 'api.feieyun.cn',
7
7
  port = '80',
8
8
  path = '/Api/Open/'
@@ -160,6 +160,10 @@ function Open_printMsg(para){
160
160
  })
161
161
  }
162
162
 
163
+ export {
164
+ Open_printerAddlist,
165
+ Open_printMsg
166
+ }
163
167
  export default {
164
168
  Open_printerAddlist,
165
169
  Open_printMsg
@@ -1,5 +1,6 @@
1
1
  import fs from 'fs'
2
2
  import path from 'path'
3
+ import Richtext from './richtext.js'
3
4
  const thisTime = new Date()
4
5
 
5
6
  // 图片新增
@@ -14,7 +15,7 @@ function imageAppend (para) {
14
15
  // para.dataunitId 数据单元ID
15
16
  // para.tblName 表名
16
17
  // para.fieldName 字段名
17
- // para.fieldIndex 数组类型字段的索引
18
+ // para.fieldIndex 多文件索引
18
19
  // para.dataId 数据ID
19
20
 
20
21
  return new Promise(function (resolve, reject) {
@@ -22,7 +23,7 @@ function imageAppend (para) {
22
23
  return resolve('')
23
24
  }
24
25
 
25
- // 数据库文件夹:数据单元ID + 表名 + 字段名 + 数组类型字段的索引 + 当年 + 当月
26
+ // 数据库文件夹:数据单元ID + 表名 + 字段名 + 多文件索引 + 当年 + 当月
26
27
  const dbFolder = para.pathHead.dbFolder +
27
28
  (para.dataunitId ? '/' + para.dataunitId : '') +
28
29
  '/' + para.tblName +
@@ -30,7 +31,7 @@ function imageAppend (para) {
30
31
  '[' + ('fieldIndex' in para ? para.fieldIndex : 0) + "]" +
31
32
  '/' + thisTime.getFullYear() +
32
33
  '/' + (thisTime.getMonth() + 1)
33
- // 数据库文件名:数据单元ID + 表名 + 字段名 + 数组类型字段的索引 + 数据ID + 随机数 + 扩展名
34
+ // 数据库文件名:数据单元ID + 表名 + 字段名 + 多文件索引 + 数据ID + 随机数 + 扩展名
34
35
  const dbFileName = (para.dataunitId ? para.dataunitId + '.' : '') +
35
36
  para.tblName + '.' +
36
37
  para.fieldName + '.' +
@@ -39,22 +40,22 @@ function imageAppend (para) {
39
40
  Math.floor((999999 - 0) * Math.random() + 0) +
40
41
  path.parse(para.uploaded).ext
41
42
 
42
- // 上传文件路径:来自于 已上传文件的URL 头部置换
43
+ // 上传文件路径
43
44
  const uploadFilePath = para.uploaded.replace(para.pathHead.uploadUrl, para.pathHead.uploadFolder)
44
45
  // 数据库文件路径
45
46
  const dbFilePath = dbFolder + '/' + dbFileName
46
- // 数据库URL:来自于 数据库文件夹中的文件路径 头部置换
47
+ // 数据库URL
47
48
  const dbUrl = dbFilePath.replace(para.pathHead.dbFolder, para.pathHead.dbUrl)
48
49
  new Promise(function (resolve, reject) {
49
50
  // 创建数据库文件夹
50
- fs.mkdir(dbFolder, {recursive: true}, (err) => {
51
+ fs.mkdir(dbFolder, {recursive: true}, err => {
51
52
  if (err) throw err
52
53
  resolve()
53
54
  })
54
- }).then(function () { //
55
+ }).then(function () {
55
56
  new Promise(function (resolve, reject) {
56
57
  // 已上传文件转存至数据库文件夹
57
- fs.rename(uploadFilePath, dbFilePath, (err) => {
58
+ fs.rename(uploadFilePath, dbFilePath, err => {
58
59
  if (err) throw err
59
60
  resolve(dbUrl) // 返回数据库URL
60
61
  })
@@ -76,8 +77,7 @@ function imageDelete (para) {
76
77
  if (!para.url) {
77
78
  return resolve()
78
79
  }
79
-
80
- fs.unlink(para.url.replace(para.pathHead.dbUrl, para.pathHead.dbFolder), (err) => {
80
+ fs.unlink(para.url.replace(para.pathHead.dbUrl, para.pathHead.dbFolder), err => {
81
81
  if (err) throw err
82
82
  resolve()
83
83
  })
@@ -93,21 +93,28 @@ function imageUpdate (para) {
93
93
  // para.pathHead.uploadUrl 上传URL
94
94
  // para.uploaded 已上传文件的URL
95
95
  // para.old 原文件的URL
96
- // para.delete 是否删除原文件
96
+ // para.delete 如果没有上传新文件,是否删除原文件
97
97
 
98
98
  // para.dataunitId 数据单元ID
99
99
  // para.tblName 表名
100
100
  // para.fieldName 字段名
101
- // para.fieldIndex 数组类型字段的索引
101
+ // para.fieldIndex 多文件索引
102
102
  // para.dataId 数据ID
103
103
 
104
104
  return new Promise(function (resolve, reject) {
105
105
  if (!!para.uploaded || para.delete === true || para.delete === 'true') {
106
- imageDelete(para.old)
106
+ imageDelete({
107
+ pathHead: {
108
+ dbFolder: para.pathHead.dbFolder,
109
+ dbUrl: para.pathHead.dbUrl
110
+ },
111
+ url: para.old
112
+ })
107
113
  }
108
114
  if (!para.uploaded) {
109
115
  return resolve(para.old)
110
116
  }
117
+
111
118
  imageAppend({
112
119
  pathHead: {
113
120
  dbFolder: para.pathHead.dbFolder,
@@ -143,18 +150,13 @@ function imagesAppend (para) {
143
150
  // para.dataId 数据ID
144
151
 
145
152
  return new Promise(function (resolve, reject) {
146
- if(!para.uploaded || para.uploaded.length === 0){
153
+ if(!para.arrUploaded || para.arrUploaded.length === 0){
147
154
  return resolve([])
148
155
  }
149
- let arrPromise = []
156
+ let arrPrm = []
150
157
  para.arrUploaded.forEach((item, index)=>{
151
- arrPromise.push(imageAppend ({
152
- pathHead: {
153
- dbFolder: para.pathHead.dbFolder,
154
- dbUrl: para.pathHead.dbUrl,
155
- uploadFolder: para.pathHead.uploadFolder,
156
- uploadUrl: para.pathHead.uploadUrl
157
- },
158
+ arrPrm.push(imageAppend ({
159
+ pathHead: para.pathHead,
158
160
  uploaded: item,
159
161
 
160
162
  dataunitId: para.dataunitId,
@@ -164,7 +166,7 @@ function imagesAppend (para) {
164
166
  dataId: para.dataId
165
167
  }))
166
168
  })
167
- Promise.all(arrPromise).then(result=>{
169
+ Promise.all(arrPrm).then(result=>{
168
170
  resolve(result)
169
171
  })
170
172
  })
@@ -182,17 +184,14 @@ function imagesDelete(para){
182
184
  return resolve()
183
185
  }
184
186
 
185
- let arrPromise = []
187
+ let arrPrm = []
186
188
  para.arrUrl.forEach(i=>{
187
- arrPromise.push(imageDelete({
188
- pathHead: {
189
- dbFolder: para.pathHead.dbFolder,
190
- dbUrl: para.pathHead.dbUrl
191
- },
189
+ arrPrm.push(imageDelete({
190
+ pathHead: para.pathHead,
192
191
  url: i
193
192
  }))
194
193
  })
195
- Promise.all((arrPromise)).then(()=>{
194
+ Promise.all((arrPrm)).then(()=>{
196
195
  resolve()
197
196
  })
198
197
  })
@@ -223,12 +222,7 @@ function imagesUpdate (para) {
223
222
  arrUrl: para.arrDelete
224
223
  }).then(()=>{
225
224
  imagesAppend ({
226
- pathHead: {
227
- dbFolder: para.pathHead.dbFolder,
228
- dbUrl: para.pathHead.dbUrl,
229
- uploadFolder: para.pathHead.uploadFolder,
230
- uploadUrl: para.pathHead.uploadUrl
231
- },
225
+ pathHead: para.pathHead,
232
226
  arrUploaded: para.arrUploaded,
233
227
 
234
228
  dataunitId: para.dataunitId,
@@ -236,6 +230,7 @@ function imagesUpdate (para) {
236
230
  fieldName: para.fieldName,
237
231
  dataId: para.dataId
238
232
  }).then(result=>{
233
+ // 原文件中未删除的并入返回结果
239
234
  let arrHoldon = []
240
235
  para.arrOld.forEach(i=>{
241
236
  let holdon = true
@@ -244,7 +239,7 @@ function imagesUpdate (para) {
244
239
  holdon = false
245
240
  }
246
241
  })
247
- if(!!holdon){
242
+ if(holdon){
248
243
  arrHoldon.push(i)
249
244
  }
250
245
  })
@@ -254,19 +249,6 @@ function imagesUpdate (para) {
254
249
  })
255
250
  }
256
251
 
257
- // 内部模块:获取富文本中资源文件(图片等)的src
258
- function richtextGetSrc (richtext) {
259
- let arrSrc = []
260
- if (richtext) {
261
- arrSrc = richtext.match(/src=[\"\'][^\"\']{0,}[\"\']/g)
262
- for (let i in arrSrc) {
263
- let a = arrSrc [i]
264
- arrSrc [i] = a.slice(5, a.length - 1)
265
- }
266
- }
267
- return arrSrc
268
- }
269
-
270
252
  // 富文本新增
271
253
  function richtextAppend (para) {
272
254
  // para.pathHead 路径头部
@@ -283,7 +265,7 @@ function richtextAppend (para) {
283
265
 
284
266
  return new Promise(function (resolve, reject) {
285
267
  let richtextReturn = para.richtext,
286
- arrSrc = richtextGetSrc(para.richtext);
268
+ arrSrc = Richtext.extractAllSrc(para.richtext);
287
269
 
288
270
  let dbFolder = para.pathHead.dbFolder +
289
271
  (para.dataunitId ? '/' + para.dataunitId : '') +
@@ -294,13 +276,12 @@ function richtextAppend (para) {
294
276
 
295
277
  new Promise(function (resolve, reject) {
296
278
  // 创建数据库文件夹
297
- fs.mkdir(dbFolder, {recursive: true}, (err) => {
279
+ fs.mkdir(dbFolder, {recursive: true}, err => {
298
280
  if (err) throw err
299
281
  resolve()
300
282
  })
301
- }).then(function () { //上传文件转存,富文本处理
302
- let arrPromise = []
303
-
283
+ }).then(function () {
284
+ let arrPrm = []
304
285
  for (let i in arrSrc) {
305
286
  let uploadFilePath = arrSrc[i].replace(para.pathHead.uploadUrl, para.pathHead.uploadFolder),
306
287
  dbFilePath = dbFolder + '/' +
@@ -312,20 +293,19 @@ function richtextAppend (para) {
312
293
  path.parse(arrSrc [i]).ext,
313
294
  dbUrl = dbFilePath.replace(para.pathHead.dbFolder, para.pathHead.dbUrl)
314
295
 
315
- arrPromise[i] = new Promise(function (resolve, reject) {
296
+ arrPrm.push(new Promise(function (resolve, reject) {
316
297
  // 已上传文件转存至数据库文件夹
317
- fs.rename(uploadFilePath, dbFilePath, (err) => {
298
+ fs.rename(uploadFilePath, dbFilePath, err => {
318
299
  if (err) throw err
319
300
 
320
301
  // 重置富文本内的src
321
302
  richtextReturn = richtextReturn.replace(arrSrc[i], dbUrl)
322
-
323
303
  resolve()
324
304
  })
325
- })
305
+ }))
326
306
  }
327
307
 
328
- Promise.all(arrPromise).then(function () {
308
+ Promise.all(arrPrm).then(function () {
329
309
  resolve(richtextReturn)
330
310
  })
331
311
  })
@@ -340,26 +320,25 @@ function richtextDelete (para) {
340
320
  // para.richtext 富文本
341
321
 
342
322
  return new Promise(function (resolve, reject) {
343
- let arrSrc = richtextGetSrc(para.richtext),
344
- arrPromise = []
345
-
323
+ let arrSrc = Richtext.extractAllSrc(para.richtext),
324
+ arrPrm = []
346
325
  for (let i in arrSrc) {
347
- arrPromise[i] = new Promise(function (resolve, reject) {
348
- fs.unlink(arrSrc [i].replace(para.pathHead.dbUrl, para.pathHead.dbFolder), err => {
326
+ arrPrm[i] = new Promise(function (resolve, reject) {
327
+ fs.unlink(arrSrc[i].replace(para.pathHead.dbUrl, para.pathHead.dbFolder), err => {
349
328
  if (err) throw err
350
329
  resolve()
351
330
  })
352
331
  })
353
332
  }
354
333
 
355
- Promise.all(arrPromise).then(function () {
334
+ Promise.all(arrPrm).then(function () {
356
335
  resolve({code: 0, message: '删除成功'})
357
336
  })
358
337
  })
359
338
  }
360
339
 
361
340
  // 富文本更新
362
- function richtextReturn (para) {
341
+ function richtextUpdate (para) {
363
342
  // para.pathHead 路径头部
364
343
  // para.pathHead.dbFolder 数据库文件夹
365
344
  // para.pathHead.dbUrl 数据库URL
@@ -375,8 +354,8 @@ function richtextReturn (para) {
375
354
 
376
355
  return new Promise(function (resolve, reject) {
377
356
  let richtextReturn = para.richtextNew,
378
- arrSrcNew = richtextGetSrc(para.richtextNew),
379
- arrSrcOld = richtextGetSrc(para.richtextOld)
357
+ arrSrcNew = Richtext.extractAllSrc(para.richtextNew),
358
+ arrSrcOld = Richtext.extractAllSrc(para.richtextOld)
380
359
 
381
360
  let dbFolder = para.pathHead.dbFolder +
382
361
  (para.dataunitId ? '/' + para.dataunitId : '') +
@@ -387,17 +366,17 @@ function richtextReturn (para) {
387
366
 
388
367
  new Promise(function (resolve, reject) {
389
368
  // 创建数据库文件夹
390
- fs.mkdir(dbFolder, {recursive: true}, (err) => {
369
+ fs.mkdir(dbFolder, {recursive: true}, err => {
391
370
  if (err) console.log(err)
392
371
  resolve()
393
372
  })
394
373
  }).then(function () {
395
374
  new Promise(function (resolve, reject) {
396
- let arrPromise = []
375
+ let arrPrm = []
397
376
  for (let i in arrSrcNew) {
398
377
  // 处理富文本 richtextNew 内的新增src
399
378
  if (arrSrcNew [i].startsWith(para.pathHead.uploadUrl)) {
400
- let uploadFilePath = arrSrcNew [i].replace(para.pathHead.uploadUrl, para.pathHead.uploadFolder),
379
+ let uploadFilePath = arrSrcNew[i].replace(para.pathHead.uploadUrl, para.pathHead.uploadFolder),
401
380
  dbFilePath = dbFolder + '/' +
402
381
  (para.dataunitId ? para.dataunitId + '.' : '') +
403
382
  para.tblName + '.' +
@@ -407,19 +386,18 @@ function richtextReturn (para) {
407
386
  path.parse(arrSrcNew [i]).ext,
408
387
  dbUrl = dbFilePath.replace(para.pathHead.dbFolder, para.pathHead.dbUrl)
409
388
 
410
- arrPromise.push(new Promise(function (resolve, reject) {
389
+ arrPrm.push(new Promise(function (resolve, reject) {
411
390
  // 已上传文件转存至数据库文件夹
412
- fs.rename(uploadFilePath, dbFilePath, (err) => {
391
+ fs.rename(uploadFilePath, dbFilePath, err => {
413
392
  if (err) throw err
414
393
 
415
394
  // 重置富文本内新增的src
416
395
  richtextReturn = richtextReturn.replace(arrSrcNew [i], dbUrl)
417
-
418
396
  resolve()
419
397
  })
420
398
  }))
421
399
  } else {
422
- // 处理富文本 richtextNew 内的原src,原文件保留
400
+ // src与原src重复处理:不能删除
423
401
  for (let j in arrSrcOld) {
424
402
  if (arrSrcOld [j] === arrSrcNew [i]) {
425
403
  arrSrcOld [j] = ''
@@ -428,14 +406,14 @@ function richtextReturn (para) {
428
406
  }
429
407
  }
430
408
 
431
- Promise.all(arrPromise).then(function () {
409
+ Promise.all(arrPrm).then(function () {
432
410
  resolve()
433
411
  })
434
412
  }).then(function () {
435
- let arrPromise = []
413
+ let arrPrm = []
436
414
  for (let i in arrSrcOld) {
437
415
  if (arrSrcOld [i]) {
438
- arrPromise.push(new Promise(function (resolve, reject) {
416
+ arrPrm.push(new Promise(function (resolve, reject) {
439
417
  // 删除垃圾文件
440
418
  fs.unlink(arrSrcOld [i].replace(para.pathHead.dbUrl, para.pathHead.dbFolder), err => {
441
419
  if (err) throw err
@@ -445,7 +423,7 @@ function richtextReturn (para) {
445
423
  }
446
424
  }
447
425
 
448
- Promise.all(arrPromise).then(function () {
426
+ Promise.all(arrPrm).then(function () {
449
427
  resolve(richtextReturn)
450
428
  })
451
429
  })
@@ -453,6 +431,17 @@ function richtextReturn (para) {
453
431
  })
454
432
  }
455
433
 
434
+ export {
435
+ imageAppend,
436
+ imageDelete,
437
+ imageUpdate,
438
+ imagesAppend,
439
+ imagesDelete,
440
+ imagesUpdate,
441
+ richtextAppend,
442
+ richtextDelete,
443
+ richtextUpdate
444
+ }
456
445
  export default {
457
446
  imageAppend,
458
447
  imageDelete,
@@ -462,5 +451,5 @@ export default {
462
451
  imagesUpdate,
463
452
  richtextAppend,
464
453
  richtextDelete,
465
- richtextReturn
454
+ richtextUpdate
466
455
  }
@@ -115,6 +115,10 @@ getBase64FromURL(remoteUrl)
115
115
  });
116
116
  */
117
117
 
118
+ export {
119
+ getBase64FromLocalFile,
120
+ getBase64FromURL
121
+ }
118
122
  export default {
119
123
  getBase64FromLocalFile,
120
124
  getBase64FromURL
@@ -75,6 +75,10 @@ async function clearFolder(folderPath) {
75
75
  }
76
76
  }
77
77
 
78
+ export {
79
+ deleteFolder,
80
+ clearFolder
81
+ }
78
82
  export default {
79
83
  deleteFolder,
80
84
  clearFolder
@@ -75,6 +75,10 @@ function urlToPath(webUrl, baseUrl, fileRootPath) {
75
75
  return path.join(normalizedRootPath, relativePath);
76
76
  }
77
77
 
78
+ export {
79
+ pathToUrl,
80
+ urlToPath
81
+ }
78
82
  export default {
79
83
  pathToUrl,
80
84
  urlToPath
@@ -0,0 +1,26 @@
1
+ import base64 from './base64.js'
2
+ import clear from './clear.js'
3
+ import convert from './convert.js'
4
+ import ImageSave from './ImageSave.js'
5
+ import richtext from './richtext.js'
6
+ import upload from './upload.js'
7
+ import utf8 from './utf8.js'
8
+
9
+ export {
10
+ base64,
11
+ clear,
12
+ convert,
13
+ ImageSave,
14
+ richtext,
15
+ upload,
16
+ utf8
17
+ }
18
+ export default {
19
+ base64,
20
+ clear,
21
+ convert,
22
+ ImageSave,
23
+ richtext,
24
+ upload,
25
+ utf8
26
+ }
@@ -0,0 +1,32 @@
1
+ // 导入 cheerio
2
+ import * as cheerio from 'cheerio';
3
+
4
+ /**
5
+ * 从 HTML 字符串中提取所有具有 src 属性的标签的 src 值。
6
+ * @param {string} htmlString 富文本 HTML 字符串
7
+ * @returns {string[]} 包含所有 src 属性值的数组
8
+ */
9
+ function extractAllSrc(htmlString) {
10
+ // 注意:cheerio v1.0.0-rc.10 及更高版本需要使用 .load() 的方式来初始化
11
+ const $ = cheerio.load(htmlString);
12
+ const srcList = [];
13
+
14
+ // 查找所有可能带有 src 属性的标签
15
+ const elementsWithSrc = $('img, script[src], iframe, source, embed, track, audio, video');
16
+
17
+ elementsWithSrc.each((index, element) => {
18
+ const src = $(element).attr('src');
19
+ if (src) {
20
+ srcList.push(src);
21
+ }
22
+ });
23
+
24
+ return srcList;
25
+ }
26
+
27
+ export {
28
+ extractAllSrc
29
+ }
30
+ export default {
31
+ extractAllSrc
32
+ }
@@ -24,7 +24,6 @@ function runMulterMiddleware(uploadMiddleware, req, res) {
24
24
  });
25
25
  }
26
26
 
27
-
28
27
  /**
29
28
  * 检查并创建目录(如果不存在)
30
29
  * @param {string} dirPath - 目录路径
@@ -121,10 +120,13 @@ async function holdSingle(request, response, {
121
120
 
122
121
  // 成功,检查文件信息是否在请求对象中
123
122
  if(result.request.file && result.request.file.filename){
124
- return {
125
- code: 0,
126
- message: '上传成功',
123
+ return {code: 0, message: '上传成功',
127
124
  file: result.request.file
125
+ /* file中的关键信息
126
+ * destination: 文件在服务器上存储的目录路径
127
+ * filename: 文件在服务器上存储时的新名称(通常是 Multer 自动生成的随机字符串或在 storage 配置中定义的名称)
128
+ * path: 文件的完整路径(destination + filename)
129
+ * */
128
130
  };
129
131
  } else {
130
132
  // 这通常发生在未选择文件但 Multer 成功处理请求时
@@ -163,9 +165,7 @@ async function holdArray(request, response, {
163
165
 
164
166
  // 成功,检查文件列表是否在请求对象中
165
167
  if(result.request.files && result.request.files.length > 0){
166
- return {
167
- code: 0,
168
- message: '上传成功',
168
+ return {code: 0, message: '上传成功',
169
169
  files: result.request.files
170
170
  };
171
171
  } else {
@@ -177,6 +177,10 @@ async function holdArray(request, response, {
177
177
  }
178
178
  }
179
179
 
180
+ export {
181
+ holdSingle,
182
+ holdArray
183
+ }
180
184
  export default {
181
185
  holdSingle,
182
186
  holdArray
@@ -20,6 +20,10 @@ function readFileSync(filePath){
20
20
  }
21
21
  }
22
22
 
23
+ export {
24
+ readFileAsync,
25
+ readFileSync
26
+ }
23
27
  export default {
24
28
  readFileAsync,
25
29
  readFileSync
@@ -87,4 +87,5 @@ async function getMiniProgramCode(para) {
87
87
  }
88
88
  }
89
89
 
90
- export {getMiniProgramCode}
90
+ export {getMiniProgramCode}
91
+ export default {getMiniProgramCode}
@@ -257,6 +257,12 @@ async function getUserInfo(para) {
257
257
  }
258
258
  }
259
259
 
260
+ export {
261
+ getGlobalAccessToken,
262
+ getMiniProgramSession,
263
+ getWebOAuth2Token,
264
+ getUserInfo
265
+ }
260
266
  export default {
261
267
  getGlobalAccessToken,
262
268
  getMiniProgramSession,
@@ -0,0 +1,11 @@
1
+ import MPC from './MPC.js'
2
+ import Token from './Token.js'
3
+
4
+ export {
5
+ MPC,
6
+ Token
7
+ }
8
+ export default {
9
+ MPC,
10
+ Token
11
+ }
@@ -0,0 +1,23 @@
1
+ import v2micropay from './v2micropay.js'
2
+ import v3close from './v3close.js'
3
+ import v3jsapi from './v3jsapi.js'
4
+ import v3native from './v3native.js'
5
+ import v3out_trade_no from './v3out_trade_no.js'
6
+ import v3sign from './v3sign.js'
7
+
8
+ export {
9
+ v2micropay,
10
+ v3close,
11
+ v3jsapi,
12
+ v3native,
13
+ v3out_trade_no,
14
+ v3sign
15
+ }
16
+ export default {
17
+ v2micropay,
18
+ v3close,
19
+ v3jsapi,
20
+ v3native,
21
+ v3out_trade_no,
22
+ v3sign
23
+ }
@@ -3,7 +3,7 @@
3
3
  import req from 'request'
4
4
  import xml2js from 'xml2js'
5
5
  import Hash from '../crypto/Hash.js'
6
- import random from '@yoooloo42/bean/utils/random'
6
+ import random from '@yoooloo42/bean/unclassified/random'
7
7
  const xmlToJson = (new xml2js.Parser()).parseString // xml to json
8
8
  const para_global = {
9
9
  nonce_str32: random.random(32, '0123456789abcdefghijklmnopqrstuvwxyz') // 32位的随机字符串
@@ -74,4 +74,7 @@ function v2micropay(para){
74
74
 
75
75
  export {
76
76
  v2micropay
77
+ }
78
+ export default {
79
+ v2micropay
77
80
  }
@@ -23,4 +23,7 @@ function v3close(para){
23
23
 
24
24
  export {
25
25
  v3close
26
+ }
27
+ export default {
28
+ v3close
26
29
  }
@@ -1,7 +1,7 @@
1
1
  // v3客户微信号付款
2
2
  // 获取prepay_id(预支付交易会话标识)
3
3
 
4
- import random from '@yoooloo42/bean/utils/random'
4
+ import random from '@yoooloo42/bean/unclassified/random'
5
5
  import RSA from '../crypto/RSA.js'
6
6
  import v3sign from "./v3sign.js"
7
7
 
@@ -69,4 +69,7 @@ function v3jsapi(para){
69
69
 
70
70
  export {
71
71
  v3jsapi
72
+ }
73
+ export default {
74
+ v3jsapi
72
75
  }
@@ -44,4 +44,7 @@ function v3native(para){
44
44
 
45
45
  export {
46
46
  v3native
47
+ }
48
+ export default {
49
+ v3native
47
50
  }
@@ -25,4 +25,7 @@ function v3outTradeNo(para){
25
25
 
26
26
  export {
27
27
  v3outTradeNo
28
+ }
29
+ export default {
30
+ v3outTradeNo
28
31
  }
@@ -1,7 +1,7 @@
1
1
  // v3签名:所有的v3请求都由这里向微信支付接口的后台发出
2
2
 
3
3
  import req from 'request'
4
- import random from '@yoooloo42/bean/utils/random'
4
+ import random from '@yoooloo42/bean/unclassified/random'
5
5
  import RSA from '../crypto/RSA.js'
6
6
  const para_global = {
7
7
  nonce_str32: random.random(32, '0123456789abcdefghijklmnopqrstuvwxyz') // 32位的随机字符串
@@ -61,6 +61,9 @@ function v3sign(para){
61
61
  })
62
62
  }
63
63
 
64
+ export {
65
+ v3sign
66
+ }
64
67
  export default {
65
68
  v3sign
66
69
  }
@@ -164,6 +164,10 @@ function openSmartRoomList(para){
164
164
  })
165
165
  }
166
166
 
167
+ export {
168
+ openSmartLogin,
169
+ openSmartRoomList
170
+ }
167
171
  export default {
168
172
  openSmartLogin,
169
173
  openSmartRoomList
@@ -127,6 +127,12 @@ try {
127
127
  }
128
128
  */
129
129
 
130
+ export {
131
+ generateKeyAndIV,
132
+ checkKeyAndIV,
133
+ aesEncrypt,
134
+ aesDecrypt
135
+ };
130
136
  export default {
131
137
  generateKeyAndIV,
132
138
  checkKeyAndIV,
@@ -21,9 +21,13 @@ function sha256(text){
21
21
  return crypto.createHash('sha256').update(text).digest('hex')
22
22
  }
23
23
 
24
- const beat = {
24
+ export {
25
25
  md5,
26
26
  sha1,
27
27
  sha256
28
28
  }
29
- export default beat
29
+ export default {
30
+ md5,
31
+ sha1,
32
+ sha256
33
+ }
@@ -133,6 +133,11 @@ try {
133
133
  }
134
134
  */
135
135
 
136
+ export {
137
+ generateRSAKeyPair,
138
+ rsaSign,
139
+ rsaVerify
140
+ }
136
141
  export default {
137
142
  generateRSAKeyPair,
138
143
  rsaSign,
@@ -0,0 +1,14 @@
1
+ import AES from './AES.js'
2
+ import Hash from './Hash.js'
3
+ import RSA from './RSA.js'
4
+
5
+ export {
6
+ AES,
7
+ Hash,
8
+ RSA
9
+ }
10
+ export default {
11
+ AES,
12
+ Hash,
13
+ RSA
14
+ }
package/src/index.js ADDED
@@ -0,0 +1,29 @@
1
+ import Ali from './Ali/index.js'
2
+ import crypto from './crypto/index.js'
3
+ import Email from './Email/index.js'
4
+ import Feie from './Feie/index.js'
5
+ import FileDB from './FileDB/index.js'
6
+ import WeChat from './WeChat/index.js'
7
+ import WeChat_Pay from './WeChat-Pay/index.js'
8
+ import Yizoo from './Yizoo/index.js'
9
+
10
+ export {
11
+ Ali,
12
+ crypto,
13
+ Email,
14
+ Feie,
15
+ FileDB,
16
+ WeChat,
17
+ WeChat_Pay,
18
+ Yizoo
19
+ }
20
+ export default {
21
+ Ali,
22
+ crypto,
23
+ Email,
24
+ Feie,
25
+ FileDB,
26
+ WeChat,
27
+ WeChat_Pay,
28
+ Yizoo
29
+ }
File without changes