anncic-api 3.7.19 → 3.7.20

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 (39) hide show
  1. package/dist/config/config.default.d.ts +47 -47
  2. package/dist/config/config.default.js +1 -51
  3. package/dist/config/config.local.d.ts +6 -6
  4. package/dist/config/config.local.js +1 -10
  5. package/dist/config/config.production.d.ts +5 -5
  6. package/dist/config/config.production.js +1 -7
  7. package/dist/configuration.d.ts +17 -17
  8. package/dist/configuration.js +1 -292
  9. package/dist/decorator/Action.d.ts +14 -14
  10. package/dist/decorator/Action.js +1 -200
  11. package/dist/decorator/ActionApitest.d.ts +2 -2
  12. package/dist/decorator/ActionApitest.js +1 -25
  13. package/dist/decorator/Intercept.d.ts +5 -5
  14. package/dist/decorator/Intercept.js +1 -30
  15. package/dist/exception/ApiError.d.ts +9 -8
  16. package/dist/exception/ApiError.js +1 -46
  17. package/dist/helper/getAppsConfig.d.ts +1 -1
  18. package/dist/helper/getAppsConfig.js +1 -10
  19. package/dist/helper/getRoutes.d.ts +11 -11
  20. package/dist/helper/getRoutes.js +1 -219
  21. package/dist/helper/getSwaggerJson.d.ts +40 -40
  22. package/dist/helper/getSwaggerJson.js +1 -419
  23. package/dist/index.d.ts +21 -21
  24. package/dist/index.js +1 -69
  25. package/dist/service/ApiService.d.ts +12 -12
  26. package/dist/service/ApiService.js +1 -82
  27. package/dist/service/ApitestService.d.ts +19 -19
  28. package/dist/service/ApitestService.js +1 -137
  29. package/dist/service/ExcelService.d.ts +46 -46
  30. package/dist/service/ExcelService.js +1 -162
  31. package/dist/service/ExcelStream.d.ts +48 -47
  32. package/dist/service/ExcelStream.js +1 -221
  33. package/dist/types/action.d.ts +47 -47
  34. package/dist/types/action.js +1 -11
  35. package/dist/types/common.d.ts +14 -13
  36. package/dist/types/common.js +1 -33
  37. package/dist/types/intercept.d.ts +3 -3
  38. package/dist/types/intercept.js +1 -8
  39. package/package.json +9 -9
@@ -1,162 +1 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ExcelService = void 0;
13
- const fs = require("fs");
14
- const exceljs = require("exceljs");
15
- const koasend = require("koa-send");
16
- const core_1 = require("@midwayjs/core");
17
- const ExcelStream_1 = require("./ExcelStream");
18
- let ExcelService = class ExcelService {
19
- async parse(filepath, column, sheets = [0]) {
20
- var _a, _b;
21
- const workbook = new exceljs.Workbook(), columnRow = [];
22
- let readFilePath = filepath.replace(/(\\|\/)/g, '/').replace(/\/{2,}/g, '/');
23
- if (!(readFilePath === null || readFilePath === void 0 ? void 0 : readFilePath.startsWith('/'))) {
24
- readFilePath = `${this.app.getAppDir()}/${readFilePath}`;
25
- }
26
- try {
27
- await workbook.xlsx.readFile(readFilePath);
28
- }
29
- catch (error) {
30
- console.log(`Api Excel Error: ${readFilePath} is read fail`);
31
- return columnRow;
32
- }
33
- for (const sheet of sheets) {
34
- const worksheet = lodash.isNumber(sheet) ? (((_a = workbook.worksheets) === null || _a === void 0 ? void 0 : _a[sheet]) || undefined) : workbook.getWorksheet(sheet);
35
- if (worksheet) {
36
- var startRow = 1;
37
- const firstSheetRow = worksheet.getRow(1);
38
- const columnsTmp = await new Promise((resolve) => {
39
- const columnsTmpEach = {};
40
- firstSheetRow.eachCell((cell, colnumber) => {
41
- for (const _column of column) {
42
- if (cell.value == _column.header) {
43
- startRow = 2;
44
- columnsTmpEach[_column.key] = { header: cell.col, handler: (_column === null || _column === void 0 ? void 0 : _column.onRead) || (_column === null || _column === void 0 ? void 0 : _column.handler) };
45
- }
46
- else if (!columnsTmpEach[_column.key]) {
47
- try {
48
- const getCell = firstSheetRow && firstSheetRow.getCell(_column.header);
49
- if (getCell) {
50
- columnsTmpEach[_column.key] = { header: getCell.col, handler: (_column === null || _column === void 0 ? void 0 : _column.onRead) || (_column === null || _column === void 0 ? void 0 : _column.handler) };
51
- }
52
- }
53
- catch {
54
- }
55
- }
56
- }
57
- if (firstSheetRow.cellCount == colnumber) {
58
- resolve(columnsTmpEach);
59
- }
60
- });
61
- });
62
- findRows: for (const sheetRow of worksheet.findRows(startRow, worksheet.rowCount)) {
63
- if (typeof (sheetRow === null || sheetRow === void 0 ? void 0 : sheetRow.getCell) != 'function') {
64
- continue findRows;
65
- }
66
- const sheetRowcolumn = {};
67
- columnsTmp: for (const columnKey in columnsTmp) {
68
- if (columnsTmp[columnKey].header) {
69
- const sheetRowCell = sheetRow.getCell(columnsTmp[columnKey].header);
70
- if (!sheetRowCell) {
71
- continue columnsTmp;
72
- }
73
- try {
74
- sheetRowCell.toString();
75
- }
76
- catch (error) {
77
- sheetRowCell['toString'] = () => { var _a; return `${((_a = sheetRowCell === null || sheetRowCell === void 0 ? void 0 : sheetRowCell.model) === null || _a === void 0 ? void 0 : _a.value) || ''}`; };
78
- }
79
- if (typeof ((_b = columnsTmp[columnKey]) === null || _b === void 0 ? void 0 : _b.handler) == 'function') {
80
- sheetRowcolumn[columnKey] = await columnsTmp[columnKey].handler(lodash.set({}, columnKey, (sheetRowCell === null || sheetRowCell === void 0 ? void 0 : sheetRowCell.toString()) || ''), sheetRowCell.model);
81
- }
82
- else {
83
- sheetRowcolumn[columnKey] = (sheetRowCell === null || sheetRowCell === void 0 ? void 0 : sheetRowCell.toString()) || '';
84
- }
85
- }
86
- }
87
- if (Object.keys(sheetRowcolumn).length > 0 && Object.values(sheetRowcolumn).filter(str => str != '').length > 0) {
88
- columnRow.push(sheetRowcolumn);
89
- }
90
- }
91
- }
92
- }
93
- return columnRow;
94
- }
95
- async export(filename, column, tmpEntitys, savepath, beforSave) {
96
- var _a, _b, _c;
97
- const workbook = new exceljs.Workbook(), columnRow = {}, columns = [];
98
- const worksheet = workbook.addWorksheet("Sheet 1", { views: [{ state: 'frozen', ySplit: 1 }] });
99
- for (const index in column) {
100
- columnRow[column[index].key] = column[index].header;
101
- columns.push({ header: column[index].header, key: (_a = column[index]) === null || _a === void 0 ? void 0 : _a.key.replace(/\./g, '_') });
102
- }
103
- worksheet.columns = columns;
104
- for (const entityIndex in tmpEntitys) {
105
- const entity = tmpEntitys[entityIndex], entityRow = worksheet.addRow({});
106
- for (let index in column) {
107
- const columnKey = column[index].key.replace(/\./g, '_'), columnCol = worksheet.getColumn(columnKey), columnCell = entityRow === null || entityRow === void 0 ? void 0 : entityRow.getCell(columnKey);
108
- if (typeof ((_b = column[index]) === null || _b === void 0 ? void 0 : _b.onWrite) == 'function') {
109
- columnCell.value = await column[index].onWrite(entity, { row: entityRow, col: columnCol, cell: columnCell, sheet: worksheet }) || '';
110
- }
111
- else if (typeof ((_c = column[index]) === null || _c === void 0 ? void 0 : _c.handler) == 'function') {
112
- columnCell.value = await column[index].handler(entity, { row: entityRow, col: columnCol, cell: columnCell, sheet: worksheet }) || '';
113
- }
114
- else {
115
- columnCell.value = lodash.get(entity, column[index].key, '');
116
- }
117
- }
118
- }
119
- if (typeof (beforSave) == 'function') {
120
- await beforSave({ workbook, worksheet });
121
- }
122
- let writePath = '';
123
- const filepath = `${filename}.xlsx`;
124
- if (savepath && savepath.startsWith('/')) {
125
- writePath = `${savepath}`;
126
- }
127
- else if (savepath && !savepath.startsWith('/') && !savepath.startsWith('\\')) {
128
- writePath = `${this.app.getAppDir()}/${savepath}`;
129
- }
130
- else {
131
- writePath = `${this.app.getAppDir()}/public/xlsx/${dayjs().format('YYYY/MM/DD')}`;
132
- }
133
- if (writePath.endsWith('/') || writePath.endsWith('\\')) {
134
- writePath = writePath.substring(0, writePath.length - 1);
135
- }
136
- writePath = writePath.replace(/(\\|\/)/g, '/').replace(/\/{2,}/g, '/');
137
- if (!fs.existsSync(writePath)) {
138
- fs.mkdirSync(writePath, { recursive: true });
139
- }
140
- await workbook.xlsx.writeFile(`${writePath}/${filepath}`.replace(/(\\|\/)/g, '/').replace(/\/{2,}/g, '/'));
141
- return {
142
- filename: filepath,
143
- filepath: `${writePath.substring(`${this.app.getAppDir()}`.length)}/${filepath}`.replace(/(\\|\/)/g, '/').replace(/\/{2,}/g, '/')
144
- };
145
- }
146
- async stream(file, option = { suffix: ['xls', 'xlsx'] }) {
147
- return await ExcelStream_1.ExcelStream.instance(file, option);
148
- }
149
- async download(ctx, filepath) {
150
- return await koasend(ctx, `${filepath}`);
151
- }
152
- };
153
- exports.ExcelService = ExcelService;
154
- __decorate([
155
- (0, core_1.App)(),
156
- __metadata("design:type", Object)
157
- ], ExcelService.prototype, "app", void 0);
158
- exports.ExcelService = ExcelService = __decorate([
159
- (0, core_1.Provide)(),
160
- (0, core_1.Scope)(core_1.ScopeEnum.Singleton)
161
- ], ExcelService);
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhjZWxTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2UvRXhjZWxTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlCQUF5QjtBQUN6QixtQ0FBbUM7QUFDbkMsb0NBQW9DO0FBRXBDLHlDQUFnRTtBQUVoRSwrQ0FBNEM7QUFrQnJDLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQVk7SUFPckIsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFnQixFQUFFLE1BQTBCLEVBQUUsU0FBaUMsQ0FBQyxDQUFDLENBQUM7O1FBQzFGLE1BQU0sUUFBUSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsR0FBa0MsRUFBRSxDQUFDO1FBRXZGLElBQUksWUFBWSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFN0UsSUFBSSxDQUFDLENBQUEsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQSxFQUFFLENBQUM7WUFDakMsWUFBWSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUM1RCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0QsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLFlBQVksZUFBZSxDQUFDLENBQUE7WUFDNUQsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDekIsTUFBTSxTQUFTLEdBQUcsTUFB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
1
+ const a14_0x27a6a9=a14_0x4546;(function(_0x2f8d69,_0x1c9312){const _0x19b231=a14_0x4546,_0x3d4cdd=_0x2f8d69();while(!![]){try{const _0x324b46=-parseInt(_0x19b231(0xb7))/0x1*(parseInt(_0x19b231(0xa9))/0x2)+parseInt(_0x19b231(0xb9))/0x3*(parseInt(_0x19b231(0xc6))/0x4)+parseInt(_0x19b231(0xcc))/0x5+parseInt(_0x19b231(0xb5))/0x6*(-parseInt(_0x19b231(0xb4))/0x7)+parseInt(_0x19b231(0xaf))/0x8+parseInt(_0x19b231(0xa8))/0x9+-parseInt(_0x19b231(0x9a))/0xa*(-parseInt(_0x19b231(0x93))/0xb);if(_0x324b46===_0x1c9312)break;else _0x3d4cdd['push'](_0x3d4cdd['shift']());}catch(_0x1a58a9){_0x3d4cdd['push'](_0x3d4cdd['shift']());}}}(a14_0xb870,0x80e28));function a14_0x4546(_0x27f4f8,_0x136cf3){const _0xaa1ce8=a14_0xb870();return a14_0x4546=function(_0x1d9c37,_0x1e1eee){_0x1d9c37=_0x1d9c37-0x84;let _0xb870c0=_0xaa1ce8[_0x1d9c37];return _0xb870c0;},a14_0x4546(_0x27f4f8,_0x136cf3);}const a14_0x1e1eee=(function(){let _0x5744a6=!![];return function(_0x18a103,_0x508eed){const _0x1f134f=_0x5744a6?function(){const _0x277ca1=a14_0x4546;if(_0x508eed){const _0x124286=_0x508eed[_0x277ca1(0xce)](_0x18a103,arguments);return _0x508eed=null,_0x124286;}}:function(){};return _0x5744a6=![],_0x1f134f;};}()),a14_0x1d9c37=a14_0x1e1eee(this,function(){const _0x155203=a14_0x4546;return a14_0x1d9c37[_0x155203(0xbc)]()['search'](_0x155203(0x8e))[_0x155203(0xbc)]()[_0x155203(0xc4)](a14_0x1d9c37)[_0x155203(0x95)]('(((.+)+)+)+$');});a14_0x1d9c37();'use strict';var __decorate=this&&this[a14_0x27a6a9(0xcb)]||function(_0x197261,_0x50e416,_0x2b5ace,_0x1fb7a2){const _0x1b0609=a14_0x27a6a9;var _0x151a15=arguments[_0x1b0609(0xb6)],_0x144ecd=_0x151a15<0x3?_0x50e416:_0x1fb7a2===null?_0x1fb7a2=Object['getOwnPropertyDescriptor'](_0x50e416,_0x2b5ace):_0x1fb7a2,_0x288ebc;if(typeof Reflect===_0x1b0609(0xb2)&&typeof Reflect[_0x1b0609(0xc1)]===_0x1b0609(0x87))_0x144ecd=Reflect[_0x1b0609(0xc1)](_0x197261,_0x50e416,_0x2b5ace,_0x1fb7a2);else{for(var _0x39ee6c=_0x197261[_0x1b0609(0xb6)]-0x1;_0x39ee6c>=0x0;_0x39ee6c--)if(_0x288ebc=_0x197261[_0x39ee6c])_0x144ecd=(_0x151a15<0x3?_0x288ebc(_0x144ecd):_0x151a15>0x3?_0x288ebc(_0x50e416,_0x2b5ace,_0x144ecd):_0x288ebc(_0x50e416,_0x2b5ace))||_0x144ecd;}return _0x151a15>0x3&&_0x144ecd&&Object[_0x1b0609(0x97)](_0x50e416,_0x2b5ace,_0x144ecd),_0x144ecd;},__metadata=this&&this[a14_0x27a6a9(0xa5)]||function(_0x1312a1,_0x5acd7e){const _0x1eddbf=a14_0x27a6a9;if(typeof Reflect===_0x1eddbf(0xb2)&&typeof Reflect[_0x1eddbf(0x8b)]==='function')return Reflect[_0x1eddbf(0x8b)](_0x1312a1,_0x5acd7e);};Object[a14_0x27a6a9(0x97)](exports,a14_0x27a6a9(0x9e),{'value':!![]}),exports['ExcelService']=void 0x0;const fs=require('fs'),exceljs=require(a14_0x27a6a9(0xc3)),koasend=require(a14_0x27a6a9(0x9f)),core_1=require(a14_0x27a6a9(0x88)),ExcelStream_1=require(a14_0x27a6a9(0xa7));let ExcelService=class ExcelService{async['parse'](_0x432587,_0x576b66,_0x5a0020=[0x0]){const _0x43461e=a14_0x27a6a9;var _0x3dbb87,_0x58ed27;const _0xb3ceb0=new exceljs[(_0x43461e(0xa2))](),_0x21d5b8=[];let _0x4fc616=_0x432587[_0x43461e(0xb8)](/(\\|\/)/g,'/')[_0x43461e(0xb8)](/\/{2,}/g,'/');!(_0x4fc616===null||_0x4fc616===void 0x0?void 0x0:_0x4fc616[_0x43461e(0xd0)]('/'))&&(_0x4fc616=this['app'][_0x43461e(0x86)]()+'/'+_0x4fc616);try{await _0xb3ceb0['xlsx'][_0x43461e(0x84)](_0x4fc616);}catch(_0x20834d){return console[_0x43461e(0x91)](_0x43461e(0xc7)+_0x4fc616+'\x20is\x20read\x20fail'),_0x21d5b8;}for(const _0x230cae of _0x5a0020){const _0x58a1ad=lodash[_0x43461e(0x85)](_0x230cae)?((_0x3dbb87=_0xb3ceb0[_0x43461e(0xb1)])===null||_0x3dbb87===void 0x0?void 0x0:_0x3dbb87[_0x230cae])||undefined:_0xb3ceb0[_0x43461e(0xca)](_0x230cae);if(_0x58a1ad){var _0x376a93=0x1;const _0x32bb8a=_0x58a1ad[_0x43461e(0x90)](0x1),_0x33b96a=await new Promise(_0x12faae=>{const _0x5be3ad={};_0x32bb8a['eachCell']((_0xbb794f,_0x40eeeb)=>{const _0x458bec=a14_0x4546;for(const _0x523097 of _0x576b66){if(_0xbb794f[_0x458bec(0xad)]==_0x523097[_0x458bec(0x99)])_0x376a93=0x2,_0x5be3ad[_0x523097[_0x458bec(0xcd)]]={'header':_0xbb794f[_0x458bec(0xa0)],'handler':(_0x523097===null||_0x523097===void 0x0?void 0x0:_0x523097[_0x458bec(0x9b)])||(_0x523097===null||_0x523097===void 0x0?void 0x0:_0x523097[_0x458bec(0xc8)])};else{if(!_0x5be3ad[_0x523097[_0x458bec(0xcd)]])try{const _0x3a7141=_0x32bb8a&&_0x32bb8a['getCell'](_0x523097['header']);_0x3a7141&&(_0x5be3ad[_0x523097[_0x458bec(0xcd)]]={'header':_0x3a7141[_0x458bec(0xa0)],'handler':(_0x523097===null||_0x523097===void 0x0?void 0x0:_0x523097[_0x458bec(0x9b)])||(_0x523097===null||_0x523097===void 0x0?void 0x0:_0x523097[_0x458bec(0xc8)])});}catch{}}}_0x32bb8a[_0x458bec(0x89)]==_0x40eeeb&&_0x12faae(_0x5be3ad);});});_0x498dfe:for(const _0x183a8c of _0x58a1ad[_0x43461e(0xc0)](_0x376a93,_0x58a1ad[_0x43461e(0xbb)])){if(typeof(_0x183a8c===null||_0x183a8c===void 0x0?void 0x0:_0x183a8c[_0x43461e(0xba)])!='function')continue _0x498dfe;const _0x27f079={};_0xec67fc:for(const _0x1e9e85 in _0x33b96a){if(_0x33b96a[_0x1e9e85][_0x43461e(0x99)]){const _0x3b0433=_0x183a8c[_0x43461e(0xba)](_0x33b96a[_0x1e9e85][_0x43461e(0x99)]);if(!_0x3b0433)continue _0xec67fc;try{_0x3b0433[_0x43461e(0xbc)]();}catch(_0x4c78ce){_0x3b0433[_0x43461e(0xbc)]=()=>{const _0x1d9fa3=_0x43461e;var _0x502a6d;return''+(((_0x502a6d=_0x3b0433===null||_0x3b0433===void 0x0?void 0x0:_0x3b0433[_0x1d9fa3(0xaa)])===null||_0x502a6d===void 0x0?void 0x0:_0x502a6d['value'])||'');};}typeof((_0x58ed27=_0x33b96a[_0x1e9e85])===null||_0x58ed27===void 0x0?void 0x0:_0x58ed27['handler'])==_0x43461e(0x87)?_0x27f079[_0x1e9e85]=await _0x33b96a[_0x1e9e85]['handler'](lodash[_0x43461e(0xa6)]({},_0x1e9e85,(_0x3b0433===null||_0x3b0433===void 0x0?void 0x0:_0x3b0433[_0x43461e(0xbc)]())||''),_0x3b0433['model']):_0x27f079[_0x1e9e85]=(_0x3b0433===null||_0x3b0433===void 0x0?void 0x0:_0x3b0433[_0x43461e(0xbc)]())||'';}}Object['keys'](_0x27f079)[_0x43461e(0xb6)]>0x0&&Object[_0x43461e(0x8f)](_0x27f079)[_0x43461e(0xb0)](_0x1eda06=>_0x1eda06!='')[_0x43461e(0xb6)]>0x0&&_0x21d5b8[_0x43461e(0xbd)](_0x27f079);}}}return _0x21d5b8;}async[a14_0x27a6a9(0xae)](_0x68bf0c,_0x15dc1,_0x90eba7,_0x3e43ac,_0x5f1061){const _0x123e19=a14_0x27a6a9;var _0x1b74b3,_0x59eda4,_0x388fbf;const _0xaad9e9=new exceljs['Workbook'](),_0xcaf318={},_0x1f3d52=[],_0x196e06=_0xaad9e9['addWorksheet'](_0x123e19(0x8d),{'views':[{'state':'frozen','ySplit':0x1}]});for(const _0x2bbd05 in _0x15dc1){_0xcaf318[_0x15dc1[_0x2bbd05][_0x123e19(0xcd)]]=_0x15dc1[_0x2bbd05][_0x123e19(0x99)],_0x1f3d52[_0x123e19(0xbd)]({'header':_0x15dc1[_0x2bbd05][_0x123e19(0x99)],'key':(_0x1b74b3=_0x15dc1[_0x2bbd05])===null||_0x1b74b3===void 0x0?void 0x0:_0x1b74b3[_0x123e19(0xcd)]['replace'](/\./g,'_')});}_0x196e06[_0x123e19(0xd2)]=_0x1f3d52;for(const _0x19155d in _0x90eba7){const _0x102714=_0x90eba7[_0x19155d],_0x4c2f2a=_0x196e06[_0x123e19(0xd1)]({});for(let _0x23ce12 in _0x15dc1){const _0x48c27a=_0x15dc1[_0x23ce12][_0x123e19(0xcd)][_0x123e19(0xb8)](/\./g,'_'),_0x379c54=_0x196e06[_0x123e19(0xa3)](_0x48c27a),_0x58464b=_0x4c2f2a===null||_0x4c2f2a===void 0x0?void 0x0:_0x4c2f2a[_0x123e19(0xba)](_0x48c27a);if(typeof((_0x59eda4=_0x15dc1[_0x23ce12])===null||_0x59eda4===void 0x0?void 0x0:_0x59eda4[_0x123e19(0x9c)])=='function')_0x58464b[_0x123e19(0xad)]=await _0x15dc1[_0x23ce12][_0x123e19(0x9c)](_0x102714,{'row':_0x4c2f2a,'col':_0x379c54,'cell':_0x58464b,'sheet':_0x196e06})||'';else typeof((_0x388fbf=_0x15dc1[_0x23ce12])===null||_0x388fbf===void 0x0?void 0x0:_0x388fbf[_0x123e19(0xc8)])=='function'?_0x58464b[_0x123e19(0xad)]=await _0x15dc1[_0x23ce12][_0x123e19(0xc8)](_0x102714,{'row':_0x4c2f2a,'col':_0x379c54,'cell':_0x58464b,'sheet':_0x196e06})||'':_0x58464b['value']=lodash[_0x123e19(0xa4)](_0x102714,_0x15dc1[_0x23ce12]['key'],'');}}typeof _0x5f1061==_0x123e19(0x87)&&await _0x5f1061({'workbook':_0xaad9e9,'worksheet':_0x196e06});let _0x28fbdd='';const _0x592bad=_0x68bf0c+'.xlsx';if(_0x3e43ac&&_0x3e43ac[_0x123e19(0xd0)]('/'))_0x28fbdd=''+_0x3e43ac;else _0x3e43ac&&!_0x3e43ac[_0x123e19(0xd0)]('/')&&!_0x3e43ac[_0x123e19(0xd0)]('\x5c')?_0x28fbdd=this[_0x123e19(0xc5)]['getAppDir']()+'/'+_0x3e43ac:_0x28fbdd=this[_0x123e19(0xc5)][_0x123e19(0x86)]()+_0x123e19(0xbf)+dayjs()[_0x123e19(0xbe)](_0x123e19(0xcf));return(_0x28fbdd[_0x123e19(0xac)]('/')||_0x28fbdd[_0x123e19(0xac)]('\x5c'))&&(_0x28fbdd=_0x28fbdd['substring'](0x0,_0x28fbdd[_0x123e19(0xb6)]-0x1)),_0x28fbdd=_0x28fbdd[_0x123e19(0xb8)](/(\\|\/)/g,'/')[_0x123e19(0xb8)](/\/{2,}/g,'/'),!fs[_0x123e19(0x8c)](_0x28fbdd)&&fs[_0x123e19(0xab)](_0x28fbdd,{'recursive':!![]}),await _0xaad9e9['xlsx']['writeFile']((_0x28fbdd+'/'+_0x592bad)[_0x123e19(0xb8)](/(\\|\/)/g,'/')['replace'](/\/{2,}/g,'/')),{'filename':_0x592bad,'filepath':(_0x28fbdd[_0x123e19(0x94)]((''+this['app'][_0x123e19(0x86)]())[_0x123e19(0xb6)])+'/'+_0x592bad)[_0x123e19(0xb8)](/(\\|\/)/g,'/')[_0x123e19(0xb8)](/\/{2,}/g,'/')};}async[a14_0x27a6a9(0xc2)](_0x1f3ba5,_0x87baad={'suffix':[a14_0x27a6a9(0xb3),a14_0x27a6a9(0x92)]}){const _0x4a052d=a14_0x27a6a9;return await ExcelStream_1['ExcelStream'][_0x4a052d(0xc9)](_0x1f3ba5,_0x87baad);}async[a14_0x27a6a9(0x98)](_0x990e78,_0x375845){return await koasend(_0x990e78,''+_0x375845);}};function a14_0xb870(){const _0x3fbd7b=['header','590DWtyXs','onRead','onWrite','ScopeEnum','__esModule','koa-send','col','Scope','Workbook','getColumn','get','__metadata','set','./ExcelStream','5849325UdPtYp','245954HXTFAW','model','mkdirSync','endsWith','value','export','2164360qwOJfq','filter','worksheets','object','xls','11228yONUFC','1944VzFFNt','length','7WmOiuD','replace','786dAPxmX','getCell','rowCount','toString','push','format','/public/xlsx/','findRows','decorate','stream','exceljs','constructor','app','1268WsWuXl','Api\x20Excel\x20Error:\x20','handler','instance','getWorksheet','__decorate','2363150fJKwRy','key','apply','YYYY/MM/DD','startsWith','addRow','columns','readFile','isNumber','getAppDir','function','@midwayjs/core','cellCount','design:type','metadata','existsSync','Sheet\x201','(((.+)+)+)+$','values','getRow','log','xlsx','80597CzVXZU','substring','search','prototype','defineProperty','download'];a14_0xb870=function(){return _0x3fbd7b;};return a14_0xb870();}__decorate([(0x0,core_1['App'])(),__metadata(a14_0x27a6a9(0x8a),Object)],ExcelService[a14_0x27a6a9(0x96)],a14_0x27a6a9(0xc5),void 0x0),ExcelService=__decorate([(0x0,core_1['Provide'])(),(0x0,core_1[a14_0x27a6a9(0xa1)])(core_1[a14_0x27a6a9(0x9d)]['Singleton'])],ExcelService),exports['ExcelService']=ExcelService;
@@ -1,47 +1,48 @@
1
- import * as exceljs from 'exceljs';
2
- import { Readable } from 'stream';
3
- interface ExcelColumn {
4
- key: string;
5
- header: string;
6
- handler?: (row: any, options?: {
7
- row: exceljs.Row;
8
- col: exceljs.Column;
9
- cell: exceljs.Cell;
10
- sheet: exceljs.Worksheet;
11
- }) => Promise<any>;
12
- }
13
- interface ExcelImportColumn {
14
- key: string;
15
- header: string;
16
- handler?: (row: any, rowCell?: exceljs.CellModel) => Promise<any>;
17
- }
18
- export declare class ExcelStream {
19
- readonly filepath: string;
20
- protected _WorkbookReader: exceljs.stream.xlsx.WorkbookReader;
21
- protected _WorkbookWriter: exceljs.stream.xlsx.WorkbookWriter;
22
- protected _WorksheetWriterMap: Map<number | string, exceljs.Worksheet>;
23
- constructor(filepath: any);
24
- get WorkbookReader(): exceljs.stream.xlsx.WorkbookReader;
25
- get WorkbookWriter(): exceljs.stream.xlsx.WorkbookWriter;
26
- static instance(file: string, option?: {
27
- rootpath?: string;
28
- suffix?: string[];
29
- }): Promise<ExcelStream>;
30
- writer(column: Array<ExcelColumn>, columnDatas: Readable | Array<{
31
- [key: string]: any;
32
- }>, sheet?: number | string): Promise<{
33
- rowCount: number;
34
- worksheet?: exceljs.Worksheet;
35
- done?: () => void;
36
- }>;
37
- reader(column: ExcelImportColumn[], callback: (row: any, option: {
38
- sheet: exceljs.Worksheet;
39
- row: exceljs.Row;
40
- }) => Promise<void>, options?: {
41
- sheets?: number | string | Array<number | string>;
42
- }): Promise<void>;
43
- getWorkbookWriterSheet(sheet: number | string, notFindCreate?: boolean): exceljs.Worksheet | undefined;
44
- save(): Promise<this>;
45
- private chunkArray;
46
- }
47
- export {};
1
+ /// <reference types="node" />
2
+ import * as exceljs from 'exceljs';
3
+ import { Readable } from 'stream';
4
+ interface ExcelColumn {
5
+ key: string;
6
+ header: string;
7
+ handler?: (row: any, options?: {
8
+ row: exceljs.Row;
9
+ col: exceljs.Column;
10
+ cell: exceljs.Cell;
11
+ sheet: exceljs.Worksheet;
12
+ }) => Promise<any>;
13
+ }
14
+ interface ExcelImportColumn {
15
+ key: string;
16
+ header: string;
17
+ handler?: (row: any, rowCell?: exceljs.CellModel) => Promise<any>;
18
+ }
19
+ export declare class ExcelStream {
20
+ readonly filepath: string;
21
+ protected _WorkbookReader: exceljs.stream.xlsx.WorkbookReader;
22
+ protected _WorkbookWriter: exceljs.stream.xlsx.WorkbookWriter;
23
+ protected _WorksheetWriterMap: Map<number | string, exceljs.Worksheet>;
24
+ constructor(filepath: any);
25
+ get WorkbookReader(): exceljs.stream.xlsx.WorkbookReader;
26
+ get WorkbookWriter(): exceljs.stream.xlsx.WorkbookWriter;
27
+ static instance(file: string, option?: {
28
+ rootpath?: string;
29
+ suffix?: string[];
30
+ }): Promise<ExcelStream>;
31
+ writer(column: Array<ExcelColumn>, columnDatas: Readable | Array<{
32
+ [key: string]: any;
33
+ }>, sheet?: number | string): Promise<{
34
+ rowCount: number;
35
+ worksheet?: exceljs.Worksheet;
36
+ done?: () => void;
37
+ }>;
38
+ reader(column: ExcelImportColumn[], callback: (row: any, option: {
39
+ sheet: exceljs.Worksheet;
40
+ row: exceljs.Row;
41
+ }) => Promise<void>, options?: {
42
+ sheets?: number | string | Array<number | string>;
43
+ }): Promise<void>;
44
+ getWorkbookWriterSheet(sheet: number | string, notFindCreate?: boolean): exceljs.Worksheet | undefined;
45
+ save(): Promise<this>;
46
+ private chunkArray;
47
+ }
48
+ export {};
@@ -1,221 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExcelStream = void 0;
4
- const fs = require("fs");
5
- const path = require("path");
6
- const lodash = require("lodash");
7
- const exceljs = require("exceljs");
8
- const stream_1 = require("stream");
9
- function isReadableStream(obj) {
10
- return obj && typeof obj.pipe === 'function' && typeof obj.on === 'function' && typeof obj.read === 'function' && typeof obj.pause === 'function' && typeof obj.resume === 'function';
11
- }
12
- class ExcelStream {
13
- constructor(filepath) {
14
- this._WorksheetWriterMap = new Map();
15
- this.filepath = filepath;
16
- }
17
- get WorkbookReader() {
18
- if (!this._WorkbookReader) {
19
- this._WorkbookReader = new exceljs.stream.xlsx.WorkbookReader(this.filepath, { worksheets: 'emit', sharedStrings: 'ignore', hyperlinks: 'ignore', styles: 'ignore' });
20
- }
21
- return this._WorkbookReader;
22
- }
23
- get WorkbookWriter() {
24
- if (!this._WorkbookWriter) {
25
- this._WorkbookWriter = new exceljs.stream.xlsx.WorkbookWriter({ filename: this.filepath, useStyles: true, useSharedStrings: false });
26
- }
27
- return this._WorkbookWriter;
28
- }
29
- static instance(file, option = { suffix: ['xls', 'xlsx'] }) {
30
- return new Promise(async (resolve, reject) => {
31
- const filename = file.substring((file.indexOf('/') > -1 ? file.lastIndexOf('/') : file.lastIndexOf('\\')) + 1);
32
- const filepath = path.dirname(((option === null || option === void 0 ? void 0 : option.rootpath) && !file.startsWith(option.rootpath) ? `${option.rootpath}/${file}` : `/${file}`).replace(/(\\|\/)/g, '/').replace(/\/{2,}/g, '/'));
33
- if (!((option === null || option === void 0 ? void 0 : option.suffix) ? option.suffix : ['xls', 'xlsx']).includes(filename.substring(filename.lastIndexOf('.') + 1))) {
34
- return reject(`文件名格式错误`);
35
- }
36
- const normalizedPath = `${filepath}/${filename}`.replace(/(\\|\/)/g, '/').replace(/\/{2,}/g, '/');
37
- if (!fs.existsSync(normalizedPath)) {
38
- if (!fs.existsSync(filepath)) {
39
- fs.mkdirSync(filepath, { recursive: true });
40
- }
41
- const workbook = new exceljs.Workbook();
42
- await workbook.xlsx.writeFile(normalizedPath);
43
- }
44
- return resolve(new ExcelStream(normalizedPath));
45
- });
46
- }
47
- async writer(column, columnDatas, sheet = 0) {
48
- var _a;
49
- const worksheet = this.getWorkbookWriterSheet(sheet, true), columnRow = {}, columns = [];
50
- if (worksheet && (Array.isArray(columnDatas) || isReadableStream(columnDatas))) {
51
- for (const index in column) {
52
- columnRow[column[index].key] = column[index].header;
53
- columns.push({ header: column[index].header, key: (_a = column[index]) === null || _a === void 0 ? void 0 : _a.key.replace(/\./g, '_') });
54
- }
55
- if ((worksheet === null || worksheet === void 0 ? void 0 : worksheet.columns) != columns) {
56
- worksheet.columns = columns;
57
- }
58
- const highWaterMark = 100;
59
- const dataReadable = Array.isArray(columnDatas) ? stream_1.Readable.from(this.chunkArray(columnDatas, highWaterMark), { objectMode: true }) : columnDatas;
60
- const dataTransform = new stream_1.Transform({
61
- objectMode: true,
62
- highWaterMark: highWaterMark,
63
- transform: async function (rows, _, callback) {
64
- if (Array.isArray(rows) && rows.length > 0) {
65
- rows.forEach(item => {
66
- this.push(item);
67
- });
68
- }
69
- callback();
70
- }
71
- });
72
- let rowCount = 0;
73
- const excelWriter = new stream_1.Writable({
74
- objectMode: true,
75
- highWaterMark: highWaterMark,
76
- async write(entity, _, callback) {
77
- var _a;
78
- try {
79
- const entityRow = worksheet.addRow({});
80
- for (let index in column) {
81
- const columnKey = column[index].key.replace(/\./g, '_'), columnCol = worksheet.getColumn(columnKey), columnCell = entityRow === null || entityRow === void 0 ? void 0 : entityRow.getCell(columnKey);
82
- if (typeof ((_a = column[index]) === null || _a === void 0 ? void 0 : _a.handler) == 'function') {
83
- columnCell.value = await column[index].handler(entity, { row: entityRow, col: columnCol, cell: columnCell, sheet: worksheet }) || '';
84
- }
85
- else {
86
- columnCell.value = lodash.get(entity, column[index].key, '');
87
- }
88
- }
89
- rowCount++, entityRow.commit(), callback();
90
- }
91
- catch (err) {
92
- callback(err);
93
- }
94
- },
95
- async final(callback) {
96
- try {
97
- callback();
98
- }
99
- catch (err) {
100
- callback(err);
101
- }
102
- }
103
- });
104
- return new Promise((resolve, reject) => {
105
- const handleError = (err) => {
106
- dataReadable.destroy();
107
- dataTransform.destroy();
108
- excelWriter.destroy();
109
- reject(err);
110
- };
111
- dataReadable.on('error', handleError)
112
- .pipe(dataTransform).on('error', handleError)
113
- .pipe(excelWriter).on('error', handleError)
114
- .on('finish', () => {
115
- try {
116
- dataReadable.unpipe();
117
- dataTransform.unpipe();
118
- dataTransform.end();
119
- excelWriter.end();
120
- resolve({ rowCount, worksheet, done: () => worksheet.commit() });
121
- }
122
- catch (err) {
123
- reject(err);
124
- }
125
- });
126
- if (Array.isArray(columnDatas)) {
127
- dataReadable.resume();
128
- }
129
- });
130
- }
131
- return { rowCount: 0, worksheet: undefined, done: () => void 0 };
132
- }
133
- async reader(column, callback, options = { sheets: 0 }) {
134
- var _a, _b, _c;
135
- const sheets = (options === null || options === void 0 ? void 0 : options.sheets) ? (Array.isArray(options.sheets) ? options.sheets : [options.sheets]) : [0];
136
- const sheetPromise = (worksheet) => new Promise(async (resolve, reason) => {
137
- const firstSheetRow = worksheet.getRow(1), columnsTmp = await new Promise((resolve) => {
138
- const columnsTmpEach = {};
139
- firstSheetRow.eachCell((cell, colnumber) => {
140
- for (const _column of column) {
141
- if (cell.value == _column.header) {
142
- columnsTmpEach[_column.key] = { header: cell.col, handler: _column.handler };
143
- }
144
- else if (!columnsTmpEach[_column.key]) {
145
- try {
146
- const getCell = firstSheetRow && firstSheetRow.getCell(_column.header);
147
- if (getCell) {
148
- columnsTmpEach[_column.key] = { header: getCell.col, handler: _column.handler };
149
- }
150
- }
151
- catch {
152
- }
153
- }
154
- }
155
- if (firstSheetRow.cellCount == colnumber) {
156
- resolve(columnsTmpEach);
157
- }
158
- });
159
- });
160
- worksheet.on('finished', _ => resolve(worksheet));
161
- worksheet.on('error', error => reason(error));
162
- worksheet.on('row', async (sheetRow) => {
163
- var _a;
164
- if (typeof (sheetRow === null || sheetRow === void 0 ? void 0 : sheetRow.getCell) == 'function') {
165
- const sheetRowcolumn = {};
166
- columnsTmp: for (const columnKey in columnsTmp) {
167
- if (columnsTmp[columnKey].header) {
168
- const sheetRowCell = sheetRow.getCell(columnsTmp[columnKey].header);
169
- if (!sheetRowCell) {
170
- continue columnsTmp;
171
- }
172
- try {
173
- sheetRowCell.toString();
174
- }
175
- catch (error) {
176
- sheetRowCell['toString'] = () => { var _a; return `${((_a = sheetRowCell === null || sheetRowCell === void 0 ? void 0 : sheetRowCell.model) === null || _a === void 0 ? void 0 : _a.value) || ''}`; };
177
- }
178
- if (typeof ((_a = columnsTmp[columnKey]) === null || _a === void 0 ? void 0 : _a.handler) == 'function') {
179
- sheetRowcolumn[columnKey] = await columnsTmp[columnKey].handler(lodash.set({}, columnKey, (sheetRowCell === null || sheetRowCell === void 0 ? void 0 : sheetRowCell.toString()) || ''), sheetRowCell.model);
180
- }
181
- else {
182
- sheetRowcolumn[columnKey] = (sheetRowCell === null || sheetRowCell === void 0 ? void 0 : sheetRowCell.toString()) || '';
183
- }
184
- }
185
- }
186
- if (Object.keys(sheetRowcolumn).length > 0 && Object.values(sheetRowcolumn).filter(str => str != '').length > 0) {
187
- await callback(sheetRowcolumn, { sheet: worksheet, row: sheetRow });
188
- }
189
- }
190
- });
191
- await worksheet.read();
192
- });
193
- for (const sheet of sheets) {
194
- const worksheet = lodash.isNumber(sheet) ? (((_b = (_a = this.WorkbookReader) === null || _a === void 0 ? void 0 : _a.worksheets) === null || _b === void 0 ? void 0 : _b[sheet]) || undefined) : (_c = this.WorkbookReader) === null || _c === void 0 ? void 0 : _c.getWorksheet(sheet);
195
- if (worksheet) {
196
- await sheetPromise(worksheet);
197
- }
198
- }
199
- }
200
- getWorkbookWriterSheet(sheet, notFindCreate = false) {
201
- var _a, _b;
202
- let worksheet = this._WorksheetWriterMap.has(sheet) ? this._WorksheetWriterMap.get(sheet) : (_a = this.WorkbookWriter) === null || _a === void 0 ? void 0 : _a.getWorksheet(sheet);
203
- if (!worksheet && notFindCreate) {
204
- worksheet = (_b = this.WorkbookWriter) === null || _b === void 0 ? void 0 : _b.addWorksheet(lodash.isNumber(sheet) ? undefined : `${sheet}`, { views: [{ state: 'frozen', ySplit: 1 }] });
205
- this._WorksheetWriterMap.set(sheet, worksheet);
206
- }
207
- return worksheet;
208
- }
209
- async save() {
210
- var _a;
211
- await ((_a = this.WorkbookWriter) === null || _a === void 0 ? void 0 : _a.commit());
212
- return this;
213
- }
214
- *chunkArray(array, chunkSize) {
215
- for (let i = 0; i < array.length; i += chunkSize) {
216
- yield array.slice(i, i + chunkSize);
217
- }
218
- }
219
- }
220
- exports.ExcelStream = ExcelStream;
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhjZWxTdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9FeGNlbFN0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLGlDQUFpQztBQUNqQyxtQ0FBbUM7QUFDbkMsbUNBQTBFO0FBYzFFLFNBQVMsZ0JBQWdCLENBQUMsR0FBUTtJQUM5QixPQUFPLEdBQUcsSUFBSSxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssVUFBVSxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUUsS0FBSyxVQUFVLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFVBQVUsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLEtBQUssVUFBVSxJQUFJLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUM7QUFDMUwsQ0FBQztBQUVELE1BQWEsV0FBVztJQU1wQixZQUFZLFFBQVE7UUFGVix3QkFBbUIsR0FBNEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUcvRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBS0QsSUFBSSxjQUFjO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtRQUN6SyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFBO0lBQy9CLENBQUM7SUFLRCxJQUFJLGNBQWM7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLElBQUks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
1
+ const a15_0x4cc2b5=a15_0x4059;(function(_0x2d3f9b,_0x15dfa5){const _0x401595=a15_0x4059,_0x56582f=_0x2d3f9b();while(!![]){try{const _0x2628be=-parseInt(_0x401595(0x115))/0x1*(-parseInt(_0x401595(0xf1))/0x2)+-parseInt(_0x401595(0x10f))/0x3*(parseInt(_0x401595(0xf6))/0x4)+parseInt(_0x401595(0x110))/0x5*(parseInt(_0x401595(0x11a))/0x6)+-parseInt(_0x401595(0x101))/0x7+parseInt(_0x401595(0xf0))/0x8+-parseInt(_0x401595(0x116))/0x9+-parseInt(_0x401595(0xe5))/0xa;if(_0x2628be===_0x15dfa5)break;else _0x56582f['push'](_0x56582f['shift']());}catch(_0x357b05){_0x56582f['push'](_0x56582f['shift']());}}}(a15_0x4927,0x462ee));const a15_0x557e08=(function(){let _0x4da135=!![];return function(_0x30146e,_0x335c74){const _0x54160e=_0x4da135?function(){const _0x1aa90f=a15_0x4059;if(_0x335c74){const _0x20e7de=_0x335c74[_0x1aa90f(0xf4)](_0x30146e,arguments);return _0x335c74=null,_0x20e7de;}}:function(){};return _0x4da135=![],_0x54160e;};}()),a15_0x5e6f57=a15_0x557e08(this,function(){const _0x7b6f7e=a15_0x4059;return a15_0x5e6f57[_0x7b6f7e(0xef)]()[_0x7b6f7e(0xd1)]('(((.+)+)+)+$')[_0x7b6f7e(0xef)]()[_0x7b6f7e(0x111)](a15_0x5e6f57)[_0x7b6f7e(0xd1)](_0x7b6f7e(0xe4));});a15_0x5e6f57();'use strict';Object[a15_0x4cc2b5(0xfb)](exports,a15_0x4cc2b5(0xf7),{'value':!![]}),exports[a15_0x4cc2b5(0xdc)]=void 0x0;const fs=require('fs'),path=require('path'),lodash=require('lodash'),exceljs=require(a15_0x4cc2b5(0xec)),stream_1=require('stream');function isReadableStream(_0x523298){const _0x1dbdae=a15_0x4cc2b5;return _0x523298&&typeof _0x523298[_0x1dbdae(0xd6)]===_0x1dbdae(0xc8)&&typeof _0x523298['on']==='function'&&typeof _0x523298[_0x1dbdae(0xf3)]===_0x1dbdae(0xc8)&&typeof _0x523298[_0x1dbdae(0x103)]==='function'&&typeof _0x523298[_0x1dbdae(0xd3)]==='function';}class ExcelStream{constructor(_0x50c27f){const _0x409a24=a15_0x4cc2b5;this[_0x409a24(0xdd)]=new Map(),this['filepath']=_0x50c27f;}get[a15_0x4cc2b5(0xeb)](){const _0x2acbda=a15_0x4cc2b5;return!this[_0x2acbda(0xff)]&&(this[_0x2acbda(0xff)]=new exceljs[(_0x2acbda(0xe2))]['xlsx'][(_0x2acbda(0xeb))](this[_0x2acbda(0x10e)],{'worksheets':'emit','sharedStrings':_0x2acbda(0x105),'hyperlinks':_0x2acbda(0x105),'styles':'ignore'})),this[_0x2acbda(0xff)];}get[a15_0x4cc2b5(0xd7)](){const _0x69ff18=a15_0x4cc2b5;return!this[_0x69ff18(0xcc)]&&(this[_0x69ff18(0xcc)]=new exceljs[(_0x69ff18(0xe2))]['xlsx'][(_0x69ff18(0xd7))]({'filename':this[_0x69ff18(0x10e)],'useStyles':!![],'useSharedStrings':![]})),this[_0x69ff18(0xcc)];}static['instance'](_0x413e2f,_0x557682={'suffix':[a15_0x4cc2b5(0x109),'xlsx']}){return new Promise(async(_0x1542a7,_0x318c73)=>{const _0xc08ce8=a15_0x4059,_0x4ac638=_0x413e2f['substring']((_0x413e2f[_0xc08ce8(0xdb)]('/')>-0x1?_0x413e2f[_0xc08ce8(0xe0)]('/'):_0x413e2f[_0xc08ce8(0xe0)]('\x5c'))+0x1),_0x9faa9a=path[_0xc08ce8(0x113)](((_0x557682===null||_0x557682===void 0x0?void 0x0:_0x557682[_0xc08ce8(0xd8)])&&!_0x413e2f[_0xc08ce8(0xf5)](_0x557682[_0xc08ce8(0xd8)])?_0x557682[_0xc08ce8(0xd8)]+'/'+_0x413e2f:'/'+_0x413e2f)[_0xc08ce8(0xde)](/(\\|\/)/g,'/')[_0xc08ce8(0xde)](/\/{2,}/g,'/'));if(!((_0x557682===null||_0x557682===void 0x0?void 0x0:_0x557682[_0xc08ce8(0x117)])?_0x557682['suffix']:[_0xc08ce8(0x109),_0xc08ce8(0xfa)])[_0xc08ce8(0xd5)](_0x4ac638[_0xc08ce8(0xc7)](_0x4ac638['lastIndexOf']('.')+0x1)))return _0x318c73(_0xc08ce8(0xd9));const _0x4ac7e1=(_0x9faa9a+'/'+_0x4ac638)['replace'](/(\\|\/)/g,'/')[_0xc08ce8(0xde)](/\/{2,}/g,'/');if(!fs[_0xc08ce8(0x108)](_0x4ac7e1)){!fs['existsSync'](_0x9faa9a)&&fs['mkdirSync'](_0x9faa9a,{'recursive':!![]});const _0x5e266f=new exceljs[(_0xc08ce8(0xca))]();await _0x5e266f[_0xc08ce8(0xfa)][_0xc08ce8(0xf8)](_0x4ac7e1);}return _0x1542a7(new ExcelStream(_0x4ac7e1));});}async['writer'](_0x3f29ce,_0x20d01b,_0x1c665f=0x0){const _0x37d4b6=a15_0x4cc2b5;var _0x26d83b;const _0xb13ce=this[_0x37d4b6(0xcd)](_0x1c665f,!![]),_0x335f75={},_0x13661a=[];if(_0xb13ce&&(Array[_0x37d4b6(0xe6)](_0x20d01b)||isReadableStream(_0x20d01b))){for(const _0x1cc1ae in _0x3f29ce){_0x335f75[_0x3f29ce[_0x1cc1ae][_0x37d4b6(0x10a)]]=_0x3f29ce[_0x1cc1ae][_0x37d4b6(0x119)],_0x13661a[_0x37d4b6(0xcb)]({'header':_0x3f29ce[_0x1cc1ae]['header'],'key':(_0x26d83b=_0x3f29ce[_0x1cc1ae])===null||_0x26d83b===void 0x0?void 0x0:_0x26d83b[_0x37d4b6(0x10a)][_0x37d4b6(0xde)](/\./g,'_')});}(_0xb13ce===null||_0xb13ce===void 0x0?void 0x0:_0xb13ce[_0x37d4b6(0xfd)])!=_0x13661a&&(_0xb13ce[_0x37d4b6(0xfd)]=_0x13661a);const _0x216aaf=0x64,_0x5d2f15=Array[_0x37d4b6(0xe6)](_0x20d01b)?stream_1[_0x37d4b6(0xdf)][_0x37d4b6(0x11b)](this['chunkArray'](_0x20d01b,_0x216aaf),{'objectMode':!![]}):_0x20d01b,_0x4c32fd=new stream_1[(_0x37d4b6(0x11c))]({'objectMode':!![],'highWaterMark':_0x216aaf,'transform':async function(_0x3f9bc2,_0x4b3d63,_0x209824){const _0x15d270=_0x37d4b6;Array['isArray'](_0x3f9bc2)&&_0x3f9bc2[_0x15d270(0xea)]>0x0&&_0x3f9bc2[_0x15d270(0xcf)](_0x15f6c8=>{this['push'](_0x15f6c8);}),_0x209824();}});let _0x15c608=0x0;const _0x351c67=new stream_1[(_0x37d4b6(0x107))]({'objectMode':!![],'highWaterMark':_0x216aaf,async 'write'(_0x2156c8,_0x5d08f9,_0x1858b3){const _0x598951=_0x37d4b6;var _0x154dec;try{const _0x1f14c8=_0xb13ce[_0x598951(0x118)]({});for(let _0x192027 in _0x3f29ce){const _0x44511e=_0x3f29ce[_0x192027][_0x598951(0x10a)][_0x598951(0xde)](/\./g,'_'),_0x2f7ec6=_0xb13ce[_0x598951(0xe3)](_0x44511e),_0x354485=_0x1f14c8===null||_0x1f14c8===void 0x0?void 0x0:_0x1f14c8[_0x598951(0xf2)](_0x44511e);typeof((_0x154dec=_0x3f29ce[_0x192027])===null||_0x154dec===void 0x0?void 0x0:_0x154dec['handler'])=='function'?_0x354485[_0x598951(0xf9)]=await _0x3f29ce[_0x192027][_0x598951(0xd2)](_0x2156c8,{'row':_0x1f14c8,'col':_0x2f7ec6,'cell':_0x354485,'sheet':_0xb13ce})||'':_0x354485[_0x598951(0xf9)]=lodash[_0x598951(0xfc)](_0x2156c8,_0x3f29ce[_0x192027][_0x598951(0x10a)],'');}_0x15c608++,_0x1f14c8[_0x598951(0xc9)](),_0x1858b3();}catch(_0x139e55){_0x1858b3(_0x139e55);}},async 'final'(_0x23faeb){try{_0x23faeb();}catch(_0x63fe92){_0x23faeb(_0x63fe92);}}});return new Promise((_0x38c5d2,_0x7a2b9a)=>{const _0x38245d=_0x37d4b6,_0x46c9ab=_0x39e8dd=>{const _0x906009=a15_0x4059;_0x5d2f15[_0x906009(0xd0)](),_0x4c32fd[_0x906009(0xd0)](),_0x351c67[_0x906009(0xd0)](),_0x7a2b9a(_0x39e8dd);};_0x5d2f15['on'](_0x38245d(0xee),_0x46c9ab)[_0x38245d(0xd6)](_0x4c32fd)['on'](_0x38245d(0xee),_0x46c9ab)[_0x38245d(0xd6)](_0x351c67)['on'](_0x38245d(0xee),_0x46c9ab)['on']('finish',()=>{const _0x35f61e=_0x38245d;try{_0x5d2f15[_0x35f61e(0xfe)](),_0x4c32fd[_0x35f61e(0xfe)](),_0x4c32fd['end'](),_0x351c67['end'](),_0x38c5d2({'rowCount':_0x15c608,'worksheet':_0xb13ce,'done':()=>_0xb13ce[_0x35f61e(0xc9)]()});}catch(_0x295ebd){_0x7a2b9a(_0x295ebd);}}),Array[_0x38245d(0xe6)](_0x20d01b)&&_0x5d2f15[_0x38245d(0xd3)]();});}return{'rowCount':0x0,'worksheet':undefined,'done':()=>void 0x0};}async[a15_0x4cc2b5(0x104)](_0x4b4c4e,_0x481fe6,_0x26b239={'sheets':0x0}){const _0x56e1f5=a15_0x4cc2b5;var _0x301618,_0x110a1e,_0x2b72cc;const _0x4f7947=(_0x26b239===null||_0x26b239===void 0x0?void 0x0:_0x26b239[_0x56e1f5(0xed)])?Array[_0x56e1f5(0xe6)](_0x26b239[_0x56e1f5(0xed)])?_0x26b239[_0x56e1f5(0xed)]:[_0x26b239[_0x56e1f5(0xed)]]:[0x0],_0xeed166=_0x15f7f5=>new Promise(async(_0x149b96,_0x1866c3)=>{const _0x4ebca7=_0x56e1f5,_0x43a372=_0x15f7f5['getRow'](0x1),_0x178c3b=await new Promise(_0x5f53f6=>{const _0x3c9242=a15_0x4059,_0x2ab123={};_0x43a372[_0x3c9242(0x114)]((_0x27e15c,_0x5640e0)=>{const _0x2dd541=_0x3c9242;for(const _0x27d39c of _0x4b4c4e){if(_0x27e15c[_0x2dd541(0xf9)]==_0x27d39c[_0x2dd541(0x119)])_0x2ab123[_0x27d39c[_0x2dd541(0x10a)]]={'header':_0x27e15c[_0x2dd541(0x10d)],'handler':_0x27d39c[_0x2dd541(0xd2)]};else{if(!_0x2ab123[_0x27d39c['key']])try{const _0x553781=_0x43a372&&_0x43a372[_0x2dd541(0xf2)](_0x27d39c[_0x2dd541(0x119)]);_0x553781&&(_0x2ab123[_0x27d39c['key']]={'header':_0x553781[_0x2dd541(0x10d)],'handler':_0x27d39c['handler']});}catch{}}}_0x43a372[_0x2dd541(0x102)]==_0x5640e0&&_0x5f53f6(_0x2ab123);});});_0x15f7f5['on'](_0x4ebca7(0xda),_0x22757c=>_0x149b96(_0x15f7f5)),_0x15f7f5['on']('error',_0x449474=>_0x1866c3(_0x449474)),_0x15f7f5['on'](_0x4ebca7(0xe1),async _0x473b31=>{const _0x441d89=_0x4ebca7;var _0xccde82;if(typeof(_0x473b31===null||_0x473b31===void 0x0?void 0x0:_0x473b31[_0x441d89(0xf2)])==_0x441d89(0xc8)){const _0xdc40b6={};_0x5e1259:for(const _0x40750a in _0x178c3b){if(_0x178c3b[_0x40750a][_0x441d89(0x119)]){const _0x1a93c3=_0x473b31[_0x441d89(0xf2)](_0x178c3b[_0x40750a][_0x441d89(0x119)]);if(!_0x1a93c3)continue _0x5e1259;try{_0x1a93c3[_0x441d89(0xef)]();}catch(_0x16edd5){_0x1a93c3[_0x441d89(0xef)]=()=>{const _0x41d71f=_0x441d89;var _0xd6d041;return''+(((_0xd6d041=_0x1a93c3===null||_0x1a93c3===void 0x0?void 0x0:_0x1a93c3[_0x41d71f(0xe8)])===null||_0xd6d041===void 0x0?void 0x0:_0xd6d041[_0x41d71f(0xf9)])||'');};}typeof((_0xccde82=_0x178c3b[_0x40750a])===null||_0xccde82===void 0x0?void 0x0:_0xccde82['handler'])==_0x441d89(0xc8)?_0xdc40b6[_0x40750a]=await _0x178c3b[_0x40750a][_0x441d89(0xd2)](lodash['set']({},_0x40750a,(_0x1a93c3===null||_0x1a93c3===void 0x0?void 0x0:_0x1a93c3[_0x441d89(0xef)]())||''),_0x1a93c3[_0x441d89(0xe8)]):_0xdc40b6[_0x40750a]=(_0x1a93c3===null||_0x1a93c3===void 0x0?void 0x0:_0x1a93c3['toString']())||'';}}Object[_0x441d89(0x106)](_0xdc40b6)[_0x441d89(0xea)]>0x0&&Object[_0x441d89(0xe9)](_0xdc40b6)[_0x441d89(0xe7)](_0x3b1c3e=>_0x3b1c3e!='')['length']>0x0&&await _0x481fe6(_0xdc40b6,{'sheet':_0x15f7f5,'row':_0x473b31});}}),await _0x15f7f5[_0x4ebca7(0xf3)]();});for(const _0x5ddf8c of _0x4f7947){const _0x2b77af=lodash[_0x56e1f5(0xd4)](_0x5ddf8c)?((_0x110a1e=(_0x301618=this[_0x56e1f5(0xeb)])===null||_0x301618===void 0x0?void 0x0:_0x301618[_0x56e1f5(0xce)])===null||_0x110a1e===void 0x0?void 0x0:_0x110a1e[_0x5ddf8c])||undefined:(_0x2b72cc=this['WorkbookReader'])===null||_0x2b72cc===void 0x0?void 0x0:_0x2b72cc[_0x56e1f5(0x10b)](_0x5ddf8c);_0x2b77af&&await _0xeed166(_0x2b77af);}}[a15_0x4cc2b5(0xcd)](_0x1466af,_0x72f7b9=![]){const _0x593a2a=a15_0x4cc2b5;var _0x5cf8b6,_0x27d1e9;let _0x32d336=this[_0x593a2a(0xdd)][_0x593a2a(0x112)](_0x1466af)?this[_0x593a2a(0xdd)][_0x593a2a(0xfc)](_0x1466af):(_0x5cf8b6=this[_0x593a2a(0xd7)])===null||_0x5cf8b6===void 0x0?void 0x0:_0x5cf8b6[_0x593a2a(0x10b)](_0x1466af);return!_0x32d336&&_0x72f7b9&&(_0x32d336=(_0x27d1e9=this['WorkbookWriter'])===null||_0x27d1e9===void 0x0?void 0x0:_0x27d1e9[_0x593a2a(0x10c)](lodash[_0x593a2a(0xd4)](_0x1466af)?undefined:''+_0x1466af,{'views':[{'state':_0x593a2a(0x100),'ySplit':0x1}]}),this[_0x593a2a(0xdd)]['set'](_0x1466af,_0x32d336)),_0x32d336;}async['save'](){const _0x4f41d1=a15_0x4cc2b5;var _0x264eb1;return await((_0x264eb1=this['WorkbookWriter'])===null||_0x264eb1===void 0x0?void 0x0:_0x264eb1[_0x4f41d1(0xc9)]()),this;}*['chunkArray'](_0x5e6064,_0x271f7b){const _0x88a070=a15_0x4cc2b5;for(let _0x57e3f5=0x0;_0x57e3f5<_0x5e6064[_0x88a070(0xea)];_0x57e3f5+=_0x271f7b){yield _0x5e6064['slice'](_0x57e3f5,_0x57e3f5+_0x271f7b);}}}function a15_0x4927(){const _0x19994f=['defineProperty','get','columns','unpipe','_WorkbookReader','frozen','666589ruTWiF','cellCount','pause','reader','ignore','keys','Writable','existsSync','xls','key','getWorksheet','addWorksheet','col','filepath','108957UsbvZt','16620neuWYz','constructor','has','dirname','eachCell','1zUBxDL','404883EfSRKB','suffix','addRow','header','636YdibuN','from','Transform','substring','function','commit','Workbook','push','_WorkbookWriter','getWorkbookWriterSheet','worksheets','forEach','destroy','search','handler','resume','isNumber','includes','pipe','WorkbookWriter','rootpath','文件名格式错误','finished','indexOf','ExcelStream','_WorksheetWriterMap','replace','Readable','lastIndexOf','row','stream','getColumn','(((.+)+)+)+$','5027430OzYqOC','isArray','filter','model','values','length','WorkbookReader','exceljs','sheets','error','toString','4418280yoGWoB','124234eOHjpa','getCell','read','apply','startsWith','4BLeSKf','__esModule','writeFile','value','xlsx'];a15_0x4927=function(){return _0x19994f;};return a15_0x4927();}function a15_0x4059(_0x469d7a,_0x32f59e){const _0x56cd9f=a15_0x4927();return a15_0x4059=function(_0x5e6f57,_0x557e08){_0x5e6f57=_0x5e6f57-0xc7;let _0x492733=_0x56cd9f[_0x5e6f57];return _0x492733;},a15_0x4059(_0x469d7a,_0x32f59e);}exports[a15_0x4cc2b5(0xdc)]=ExcelStream;