anncic-api 3.7.19 → 3.7.21

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 +53 -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_0x2eb9f8=a14_0x353c;(function(_0x45e092,_0x357a74){const _0x5dd5f3=a14_0x353c,_0x890fe2=_0x45e092();while(!![]){try{const _0x21358e=parseInt(_0x5dd5f3(0x178))/0x1*(-parseInt(_0x5dd5f3(0x174))/0x2)+-parseInt(_0x5dd5f3(0x1ac))/0x3*(-parseInt(_0x5dd5f3(0x1a3))/0x4)+parseInt(_0x5dd5f3(0x17b))/0x5*(-parseInt(_0x5dd5f3(0x17e))/0x6)+parseInt(_0x5dd5f3(0x181))/0x7*(-parseInt(_0x5dd5f3(0x19d))/0x8)+parseInt(_0x5dd5f3(0x18b))/0x9*(-parseInt(_0x5dd5f3(0x179))/0xa)+parseInt(_0x5dd5f3(0x1b0))/0xb+parseInt(_0x5dd5f3(0x197))/0xc;if(_0x21358e===_0x357a74)break;else _0x890fe2['push'](_0x890fe2['shift']());}catch(_0x1a8058){_0x890fe2['push'](_0x890fe2['shift']());}}}(a14_0x4cc6,0xd4eb1));const a14_0x55b062=(function(){let _0x4784b5=!![];return function(_0x40822b,_0x25c569){const _0x5a6567=_0x4784b5?function(){if(_0x25c569){const _0x1e5444=_0x25c569['apply'](_0x40822b,arguments);return _0x25c569=null,_0x1e5444;}}:function(){};return _0x4784b5=![],_0x5a6567;};}()),a14_0x4ee5f3=a14_0x55b062(this,function(){const _0x501edb=a14_0x353c;return a14_0x4ee5f3[_0x501edb(0x16f)]()[_0x501edb(0x191)]('(((.+)+)+)+$')[_0x501edb(0x16f)]()[_0x501edb(0x187)](a14_0x4ee5f3)[_0x501edb(0x191)](_0x501edb(0x196));});a14_0x4ee5f3();'use strict';var __decorate=this&&this[a14_0x2eb9f8(0x19c)]||function(_0x20af8b,_0xaac909,_0x46262b,_0x4fe856){const _0x2c0733=a14_0x2eb9f8;var _0x12f51f=arguments[_0x2c0733(0x1b8)],_0x4b3201=_0x12f51f<0x3?_0xaac909:_0x4fe856===null?_0x4fe856=Object[_0x2c0733(0x198)](_0xaac909,_0x46262b):_0x4fe856,_0x243b79;if(typeof Reflect===_0x2c0733(0x19f)&&typeof Reflect[_0x2c0733(0x183)]===_0x2c0733(0x16e))_0x4b3201=Reflect[_0x2c0733(0x183)](_0x20af8b,_0xaac909,_0x46262b,_0x4fe856);else{for(var _0x5d7fb9=_0x20af8b[_0x2c0733(0x1b8)]-0x1;_0x5d7fb9>=0x0;_0x5d7fb9--)if(_0x243b79=_0x20af8b[_0x5d7fb9])_0x4b3201=(_0x12f51f<0x3?_0x243b79(_0x4b3201):_0x12f51f>0x3?_0x243b79(_0xaac909,_0x46262b,_0x4b3201):_0x243b79(_0xaac909,_0x46262b))||_0x4b3201;}return _0x12f51f>0x3&&_0x4b3201&&Object[_0x2c0733(0x1a8)](_0xaac909,_0x46262b,_0x4b3201),_0x4b3201;},__metadata=this&&this[a14_0x2eb9f8(0x175)]||function(_0x5e9131,_0x199954){const _0x4caaaa=a14_0x2eb9f8;if(typeof Reflect===_0x4caaaa(0x19f)&&typeof Reflect[_0x4caaaa(0x1bb)]===_0x4caaaa(0x16e))return Reflect[_0x4caaaa(0x1bb)](_0x5e9131,_0x199954);};function a14_0x4cc6(){const _0x357a34=['1249690nMiWjj','ScopeEnum','41845eZwEIH','/public/xlsx/','mkdirSync','342dRcnwX','@midwayjs/core','export','581VyntUe','get','decorate','startsWith','Singleton','format','constructor','isNumber','onWrite','worksheets','9FRhtYx','\x20is\x20read\x20fail','parse','push','Api\x20Excel\x20Error:\x20','header','search','Sheet\x201','getRow','exceljs','getAppDir','(((.+)+)+)+$','12122580ZWongp','getOwnPropertyDescriptor','handler','getCell','findRows','__decorate','12064OdPwtU','value','object','endsWith','getWorksheet','__esModule','77324haAqXH','xlsx','key','ExcelService','values','defineProperty','writeFile','rowCount','substring','45kbgyHV','download','existsSync','xls','12117776UgVItE','replace','frozen','log','onRead','app','getColumn','koa-send','length','design:type','cellCount','metadata','instance','function','toString','App','.xlsx','col','YYYY/MM/DD','58bfikHL','__metadata','eachCell','addWorksheet','27673ffFPxD'];a14_0x4cc6=function(){return _0x357a34;};return a14_0x4cc6();}Object[a14_0x2eb9f8(0x1a8)](exports,a14_0x2eb9f8(0x1a2),{'value':!![]}),exports[a14_0x2eb9f8(0x1a6)]=void 0x0;const fs=require('fs'),exceljs=require(a14_0x2eb9f8(0x194)),koasend=require(a14_0x2eb9f8(0x1b7)),core_1=require(a14_0x2eb9f8(0x17f)),ExcelStream_1=require('./ExcelStream');let ExcelService=class ExcelService{async[a14_0x2eb9f8(0x18d)](_0x3d80bf,_0x4bf52d,_0x193cb0=[0x0]){const _0x15af00=a14_0x2eb9f8;var _0x4df639,_0x52c7c4;const _0x4e968a=new exceljs['Workbook'](),_0x5d9dd8=[];let _0x591998=_0x3d80bf[_0x15af00(0x1b1)](/(\\|\/)/g,'/')[_0x15af00(0x1b1)](/\/{2,}/g,'/');!(_0x591998===null||_0x591998===void 0x0?void 0x0:_0x591998['startsWith']('/'))&&(_0x591998=this[_0x15af00(0x1b5)]['getAppDir']()+'/'+_0x591998);try{await _0x4e968a[_0x15af00(0x1a4)]['readFile'](_0x591998);}catch(_0xa6ca5){return console[_0x15af00(0x1b3)](_0x15af00(0x18f)+_0x591998+_0x15af00(0x18c)),_0x5d9dd8;}for(const _0x1112dc of _0x193cb0){const _0x547b29=lodash[_0x15af00(0x188)](_0x1112dc)?((_0x4df639=_0x4e968a[_0x15af00(0x18a)])===null||_0x4df639===void 0x0?void 0x0:_0x4df639[_0x1112dc])||undefined:_0x4e968a[_0x15af00(0x1a1)](_0x1112dc);if(_0x547b29){var _0xd3bb9c=0x1;const _0x11964a=_0x547b29[_0x15af00(0x193)](0x1),_0xbe0778=await new Promise(_0x4f5b2c=>{const _0x1d41fd=_0x15af00,_0x2b6b1a={};_0x11964a[_0x1d41fd(0x176)]((_0x221db8,_0x4f9df4)=>{const _0x2e923e=_0x1d41fd;for(const _0x5c558c of _0x4bf52d){if(_0x221db8[_0x2e923e(0x19e)]==_0x5c558c[_0x2e923e(0x190)])_0xd3bb9c=0x2,_0x2b6b1a[_0x5c558c['key']]={'header':_0x221db8[_0x2e923e(0x172)],'handler':(_0x5c558c===null||_0x5c558c===void 0x0?void 0x0:_0x5c558c['onRead'])||(_0x5c558c===null||_0x5c558c===void 0x0?void 0x0:_0x5c558c[_0x2e923e(0x199)])};else{if(!_0x2b6b1a[_0x5c558c[_0x2e923e(0x1a5)]])try{const _0x80c218=_0x11964a&&_0x11964a['getCell'](_0x5c558c[_0x2e923e(0x190)]);_0x80c218&&(_0x2b6b1a[_0x5c558c[_0x2e923e(0x1a5)]]={'header':_0x80c218[_0x2e923e(0x172)],'handler':(_0x5c558c===null||_0x5c558c===void 0x0?void 0x0:_0x5c558c[_0x2e923e(0x1b4)])||(_0x5c558c===null||_0x5c558c===void 0x0?void 0x0:_0x5c558c['handler'])});}catch{}}}_0x11964a[_0x2e923e(0x1ba)]==_0x4f9df4&&_0x4f5b2c(_0x2b6b1a);});});_0x436d3d:for(const _0x204f01 of _0x547b29[_0x15af00(0x19b)](_0xd3bb9c,_0x547b29[_0x15af00(0x1aa)])){if(typeof(_0x204f01===null||_0x204f01===void 0x0?void 0x0:_0x204f01[_0x15af00(0x19a)])!=_0x15af00(0x16e))continue _0x436d3d;const _0x1be868={};_0x2dd091:for(const _0x26a41c in _0xbe0778){if(_0xbe0778[_0x26a41c]['header']){const _0x4d6104=_0x204f01[_0x15af00(0x19a)](_0xbe0778[_0x26a41c][_0x15af00(0x190)]);if(!_0x4d6104)continue _0x2dd091;try{_0x4d6104[_0x15af00(0x16f)]();}catch(_0xa6364a){_0x4d6104[_0x15af00(0x16f)]=()=>{var _0x3bcec6;return''+(((_0x3bcec6=_0x4d6104===null||_0x4d6104===void 0x0?void 0x0:_0x4d6104['model'])===null||_0x3bcec6===void 0x0?void 0x0:_0x3bcec6['value'])||'');};}typeof((_0x52c7c4=_0xbe0778[_0x26a41c])===null||_0x52c7c4===void 0x0?void 0x0:_0x52c7c4[_0x15af00(0x199)])==_0x15af00(0x16e)?_0x1be868[_0x26a41c]=await _0xbe0778[_0x26a41c][_0x15af00(0x199)](lodash['set']({},_0x26a41c,(_0x4d6104===null||_0x4d6104===void 0x0?void 0x0:_0x4d6104[_0x15af00(0x16f)]())||''),_0x4d6104['model']):_0x1be868[_0x26a41c]=(_0x4d6104===null||_0x4d6104===void 0x0?void 0x0:_0x4d6104[_0x15af00(0x16f)]())||'';}}Object['keys'](_0x1be868)[_0x15af00(0x1b8)]>0x0&&Object[_0x15af00(0x1a7)](_0x1be868)['filter'](_0x4962c0=>_0x4962c0!='')['length']>0x0&&_0x5d9dd8[_0x15af00(0x18e)](_0x1be868);}}}return _0x5d9dd8;}async[a14_0x2eb9f8(0x180)](_0x1f0719,_0x694865,_0x5f0fa1,_0x4e76ec,_0x3b8176){const _0x4e87d6=a14_0x2eb9f8;var _0x334c72,_0x1dbb9e,_0x2e6bc7;const _0x2c709a=new exceljs['Workbook'](),_0x1a5af3={},_0xb38f6f=[],_0x45e304=_0x2c709a[_0x4e87d6(0x177)](_0x4e87d6(0x192),{'views':[{'state':_0x4e87d6(0x1b2),'ySplit':0x1}]});for(const _0x4277c5 in _0x694865){_0x1a5af3[_0x694865[_0x4277c5]['key']]=_0x694865[_0x4277c5][_0x4e87d6(0x190)],_0xb38f6f[_0x4e87d6(0x18e)]({'header':_0x694865[_0x4277c5][_0x4e87d6(0x190)],'key':(_0x334c72=_0x694865[_0x4277c5])===null||_0x334c72===void 0x0?void 0x0:_0x334c72['key'][_0x4e87d6(0x1b1)](/\./g,'_')});}_0x45e304['columns']=_0xb38f6f;for(const _0x26d8d0 in _0x5f0fa1){const _0x3b0bd6=_0x5f0fa1[_0x26d8d0],_0x9c942c=_0x45e304['addRow']({});for(let _0x5d8bac in _0x694865){const _0x28a3fe=_0x694865[_0x5d8bac][_0x4e87d6(0x1a5)][_0x4e87d6(0x1b1)](/\./g,'_'),_0x598c85=_0x45e304[_0x4e87d6(0x1b6)](_0x28a3fe),_0x178863=_0x9c942c===null||_0x9c942c===void 0x0?void 0x0:_0x9c942c[_0x4e87d6(0x19a)](_0x28a3fe);if(typeof((_0x1dbb9e=_0x694865[_0x5d8bac])===null||_0x1dbb9e===void 0x0?void 0x0:_0x1dbb9e[_0x4e87d6(0x189)])==_0x4e87d6(0x16e))_0x178863[_0x4e87d6(0x19e)]=await _0x694865[_0x5d8bac][_0x4e87d6(0x189)](_0x3b0bd6,{'row':_0x9c942c,'col':_0x598c85,'cell':_0x178863,'sheet':_0x45e304})||'';else typeof((_0x2e6bc7=_0x694865[_0x5d8bac])===null||_0x2e6bc7===void 0x0?void 0x0:_0x2e6bc7[_0x4e87d6(0x199)])==_0x4e87d6(0x16e)?_0x178863[_0x4e87d6(0x19e)]=await _0x694865[_0x5d8bac][_0x4e87d6(0x199)](_0x3b0bd6,{'row':_0x9c942c,'col':_0x598c85,'cell':_0x178863,'sheet':_0x45e304})||'':_0x178863[_0x4e87d6(0x19e)]=lodash[_0x4e87d6(0x182)](_0x3b0bd6,_0x694865[_0x5d8bac][_0x4e87d6(0x1a5)],'');}}typeof _0x3b8176=='function'&&await _0x3b8176({'workbook':_0x2c709a,'worksheet':_0x45e304});let _0x347274='';const _0x274094=_0x1f0719+_0x4e87d6(0x171);if(_0x4e76ec&&_0x4e76ec[_0x4e87d6(0x184)]('/'))_0x347274=''+_0x4e76ec;else _0x4e76ec&&!_0x4e76ec[_0x4e87d6(0x184)]('/')&&!_0x4e76ec[_0x4e87d6(0x184)]('\x5c')?_0x347274=this['app'][_0x4e87d6(0x195)]()+'/'+_0x4e76ec:_0x347274=this['app'][_0x4e87d6(0x195)]()+_0x4e87d6(0x17c)+dayjs()[_0x4e87d6(0x186)](_0x4e87d6(0x173));return(_0x347274[_0x4e87d6(0x1a0)]('/')||_0x347274[_0x4e87d6(0x1a0)]('\x5c'))&&(_0x347274=_0x347274['substring'](0x0,_0x347274['length']-0x1)),_0x347274=_0x347274['replace'](/(\\|\/)/g,'/')['replace'](/\/{2,}/g,'/'),!fs[_0x4e87d6(0x1ae)](_0x347274)&&fs[_0x4e87d6(0x17d)](_0x347274,{'recursive':!![]}),await _0x2c709a[_0x4e87d6(0x1a4)][_0x4e87d6(0x1a9)]((_0x347274+'/'+_0x274094)['replace'](/(\\|\/)/g,'/')[_0x4e87d6(0x1b1)](/\/{2,}/g,'/')),{'filename':_0x274094,'filepath':(_0x347274[_0x4e87d6(0x1ab)]((''+this[_0x4e87d6(0x1b5)][_0x4e87d6(0x195)]())[_0x4e87d6(0x1b8)])+'/'+_0x274094)[_0x4e87d6(0x1b1)](/(\\|\/)/g,'/')[_0x4e87d6(0x1b1)](/\/{2,}/g,'/')};}async['stream'](_0x386f28,_0x401890={'suffix':[a14_0x2eb9f8(0x1af),a14_0x2eb9f8(0x1a4)]}){const _0x591386=a14_0x2eb9f8;return await ExcelStream_1['ExcelStream'][_0x591386(0x1bc)](_0x386f28,_0x401890);}async[a14_0x2eb9f8(0x1ad)](_0x33c926,_0xde1202){return await koasend(_0x33c926,''+_0xde1202);}};function a14_0x353c(_0x4b13fd,_0x5f0ce7){const _0x35738c=a14_0x4cc6();return a14_0x353c=function(_0x4ee5f3,_0x55b062){_0x4ee5f3=_0x4ee5f3-0x16e;let _0x4cc65f=_0x35738c[_0x4ee5f3];return _0x4cc65f;},a14_0x353c(_0x4b13fd,_0x5f0ce7);}__decorate([(0x0,core_1[a14_0x2eb9f8(0x170)])(),__metadata(a14_0x2eb9f8(0x1b9),Object)],ExcelService['prototype'],a14_0x2eb9f8(0x1b5),void 0x0),ExcelService=__decorate([(0x0,core_1['Provide'])(),(0x0,core_1['Scope'])(core_1[a14_0x2eb9f8(0x17a)][a14_0x2eb9f8(0x185)])],ExcelService),exports['ExcelService']=ExcelService;
@@ -1,47 +1,53 @@
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
+ }>, options?: {
34
+ sheet?: number | string;
35
+ fileLimit?: number;
36
+ }): Promise<{
37
+ rowCount: number;
38
+ worksheet?: exceljs.Worksheet;
39
+ done?: () => void;
40
+ fileCount?: number;
41
+ filepaths?: string[];
42
+ }>;
43
+ reader(column: ExcelImportColumn[], callback: (row: any, option: {
44
+ sheet: exceljs.Worksheet;
45
+ row: exceljs.Row;
46
+ }) => Promise<void>, options?: {
47
+ sheets?: number | string | Array<number | string>;
48
+ }): Promise<void>;
49
+ getWorkbookWriterSheet(sheet: number | string, notFindCreate?: boolean): exceljs.Worksheet | undefined;
50
+ save(): Promise<this>;
51
+ private chunkArray;
52
+ }
53
+ 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_0x44c1e3=a15_0x58f7;(function(_0x5a1c01,_0x53c97f){const _0x2f03d6=a15_0x58f7,_0x4440ec=_0x5a1c01();while(!![]){try{const _0x414df7=parseInt(_0x2f03d6(0x1a6))/0x1+parseInt(_0x2f03d6(0x1c4))/0x2+-parseInt(_0x2f03d6(0x17e))/0x3+-parseInt(_0x2f03d6(0x175))/0x4*(-parseInt(_0x2f03d6(0x195))/0x5)+-parseInt(_0x2f03d6(0x1c1))/0x6+parseInt(_0x2f03d6(0x1bf))/0x7*(parseInt(_0x2f03d6(0x1be))/0x8)+parseInt(_0x2f03d6(0x19f))/0x9*(-parseInt(_0x2f03d6(0x1c2))/0xa);if(_0x414df7===_0x53c97f)break;else _0x4440ec['push'](_0x4440ec['shift']());}catch(_0x189413){_0x4440ec['push'](_0x4440ec['shift']());}}}(a15_0x3690,0x563e4));const a15_0x3bbddd=(function(){let _0x43af89=!![];return function(_0x14845d,_0x374d81){const _0x26899d=_0x43af89?function(){const _0x8d972a=a15_0x58f7;if(_0x374d81){const _0x38a964=_0x374d81[_0x8d972a(0x1c5)](_0x14845d,arguments);return _0x374d81=null,_0x38a964;}}:function(){};return _0x43af89=![],_0x26899d;};}()),a15_0x4c8747=a15_0x3bbddd(this,function(){const _0x1e3e43=a15_0x58f7;return a15_0x4c8747[_0x1e3e43(0x184)]()[_0x1e3e43(0x1ba)](_0x1e3e43(0x19b))[_0x1e3e43(0x184)]()[_0x1e3e43(0x18e)](a15_0x4c8747)[_0x1e3e43(0x1ba)](_0x1e3e43(0x19b));});a15_0x4c8747();function a15_0x3690(){const _0xdcffc9=['function','instance','suffix','emit','replace','worksheets','__esModule','44gHcVrR','_WorkbookReader','row','unpipe','xls','defineProperty','ignore','mkdirSync','model','1186149fsUckM','pause','get','header','isNumber','Writable','toString','xlsx','includes','clear','save','has','addRow','Transform','getWorkbookWriterSheet','dirname','constructor','cellCount','lastIndexOf','columns','indexOf','getColumn','WorkbookReader','119660DFJSZU','exceljs','_WorkbookWriter','finish','set','length','(((.+)+)+)+$','finished','path','read','3249117VHHdQI','commit','stream','_WorksheetWriterMap','extname','forEach','rootpath','392050AsHCnX','writer','ExcelStream','map','chunkArray','getWorksheet','isArray','push','pipe','end','addWorksheet','error','filepath','handler','key','destroy','reader','sheets','WorkbookWriter','value','search','resume','from','getCell','1230192UDmNpz','14qVhXBl','文件名格式错误','1107354OsNXRD','20szRvKt','getRow','1384740iJLozn','apply'];a15_0x3690=function(){return _0xdcffc9;};return a15_0x3690();}'use strict';function a15_0x58f7(_0x2b739a,_0x42f3a0){const _0x536d9f=a15_0x3690();return a15_0x58f7=function(_0x4c8747,_0x3bbddd){_0x4c8747=_0x4c8747-0x170;let _0x369023=_0x536d9f[_0x4c8747];return _0x369023;},a15_0x58f7(_0x2b739a,_0x42f3a0);}Object[a15_0x44c1e3(0x17a)](exports,a15_0x44c1e3(0x174),{'value':!![]}),exports[a15_0x44c1e3(0x1a8)]=void 0x0;const fs=require('fs'),path=require(a15_0x44c1e3(0x19d)),lodash=require('lodash'),exceljs=require(a15_0x44c1e3(0x196)),stream_1=require(a15_0x44c1e3(0x1a1));function isReadableStream(_0x391e13){const _0x51b491=a15_0x44c1e3;return _0x391e13&&typeof _0x391e13[_0x51b491(0x1ae)]==='function'&&typeof _0x391e13['on']===_0x51b491(0x1c6)&&typeof _0x391e13[_0x51b491(0x19e)]===_0x51b491(0x1c6)&&typeof _0x391e13[_0x51b491(0x17f)]===_0x51b491(0x1c6)&&typeof _0x391e13[_0x51b491(0x1bb)]==='function';}class ExcelStream{constructor(_0x73627e){const _0x4fdfe8=a15_0x44c1e3;this['_WorksheetWriterMap']=new Map(),this[_0x4fdfe8(0x1b2)]=_0x73627e;}get['WorkbookReader'](){const _0x3a0056=a15_0x44c1e3;return!this[_0x3a0056(0x176)]&&(this[_0x3a0056(0x176)]=new exceljs[(_0x3a0056(0x1a1))][(_0x3a0056(0x185))][(_0x3a0056(0x194))](this['filepath'],{'worksheets':_0x3a0056(0x171),'sharedStrings':_0x3a0056(0x17b),'hyperlinks':'ignore','styles':_0x3a0056(0x17b)})),this[_0x3a0056(0x176)];}get[a15_0x44c1e3(0x1b8)](){const _0x463022=a15_0x44c1e3;return!this[_0x463022(0x197)]&&(this[_0x463022(0x197)]=new exceljs[(_0x463022(0x1a1))][(_0x463022(0x185))]['WorkbookWriter']({'filename':this[_0x463022(0x1b2)],'useStyles':!![],'useSharedStrings':![]})),this[_0x463022(0x197)];}static[a15_0x44c1e3(0x1c7)](_0x456b10,_0x2bba1e={'suffix':[a15_0x44c1e3(0x179),a15_0x44c1e3(0x185)]}){return new Promise(async(_0x381017,_0x271466)=>{const _0x2bec3f=a15_0x58f7,_0x2ff256=_0x456b10['substring']((_0x456b10[_0x2bec3f(0x192)]('/')>-0x1?_0x456b10[_0x2bec3f(0x190)]('/'):_0x456b10[_0x2bec3f(0x190)]('\x5c'))+0x1),_0x308b54=path[_0x2bec3f(0x18d)](((_0x2bba1e===null||_0x2bba1e===void 0x0?void 0x0:_0x2bba1e['rootpath'])&&!_0x456b10['startsWith'](_0x2bba1e[_0x2bec3f(0x1a5)])?_0x2bba1e['rootpath']+'/'+_0x456b10:'/'+_0x456b10)[_0x2bec3f(0x172)](/(\\|\/)/g,'/')[_0x2bec3f(0x172)](/\/{2,}/g,'/'));if(!((_0x2bba1e===null||_0x2bba1e===void 0x0?void 0x0:_0x2bba1e[_0x2bec3f(0x170)])?_0x2bba1e[_0x2bec3f(0x170)]:['xls',_0x2bec3f(0x185)])[_0x2bec3f(0x186)](_0x2ff256['substring'](_0x2ff256['lastIndexOf']('.')+0x1)))return _0x271466(_0x2bec3f(0x1c0));const _0xdce840=(_0x308b54+'/'+_0x2ff256)[_0x2bec3f(0x172)](/(\\|\/)/g,'/')[_0x2bec3f(0x172)](/\/{2,}/g,'/');if(!fs['existsSync'](_0xdce840)){!fs['existsSync'](_0x308b54)&&fs[_0x2bec3f(0x17c)](_0x308b54,{'recursive':!![]});const _0x4194bb=new exceljs['Workbook']();await _0x4194bb[_0x2bec3f(0x185)]['writeFile'](_0xdce840);}return _0x381017(new ExcelStream(_0xdce840));});}async[a15_0x44c1e3(0x1a7)](_0x502d5a,_0x28e92a,_0x4d11ff={}){const _0x927a16=a15_0x44c1e3,{sheet:sheet=0x0,fileLimit:fileLimit=0x0}=_0x4d11ff,_0x27dd8e=_0x502d5a[_0x927a16(0x1a9)](_0x5c982a=>({'header':_0x5c982a[_0x927a16(0x181)],'key':_0x5c982a['key'][_0x927a16(0x172)](/\./g,'_')}));if(!Array[_0x927a16(0x1ac)](_0x28e92a)&&!isReadableStream(_0x28e92a))return{'rowCount':0x0,'worksheet':undefined,'done':()=>void 0x0,'fileCount':0x0,'filepaths':[]};let _0x3700f2=0x0,_0x1d5e06=0x0,_0x303d91=0x0,_0x3ed983=[],_0x38d896;const _0x1f759b=async()=>{const _0x1ca8f5=_0x927a16;if(fileLimit>0x0){_0x1d5e06>0x0&&(await this[_0x1ca8f5(0x1b8)]['commit'](),this[_0x1ca8f5(0x1a2)][_0x1ca8f5(0x187)]());const _0x244dfc=path[_0x1ca8f5(0x1a3)](this[_0x1ca8f5(0x1b2)]),_0x5b720f=this['filepath'][_0x1ca8f5(0x172)](_0x244dfc,''),_0x4fc927=_0x5b720f+'-'+(_0x1d5e06+0x1)+_0x244dfc;this['_WorkbookWriter']=new exceljs[(_0x1ca8f5(0x1a1))][(_0x1ca8f5(0x185))][(_0x1ca8f5(0x1b8))]({'filename':_0x4fc927,'useStyles':!![],'useSharedStrings':![]}),_0x3ed983[_0x1ca8f5(0x1ad)](_0x4fc927);}_0x38d896=this[_0x1ca8f5(0x18c)](sheet,!![]),_0x38d896[_0x1ca8f5(0x191)]=_0x27dd8e;},_0x3605f5=0x64,_0x5405ec=Array[_0x927a16(0x1ac)](_0x28e92a)?stream_1['Readable'][_0x927a16(0x1bc)](this['chunkArray'](_0x28e92a,_0x3605f5),{'objectMode':!![]}):_0x28e92a,_0x5d354f=new stream_1[(_0x927a16(0x18b))]({'objectMode':!![],'highWaterMark':_0x3605f5,'transform':async function(_0x267a8a,_0x31f386,_0x27fc0b){const _0x2e0fe2=_0x927a16;Array[_0x2e0fe2(0x1ac)](_0x267a8a)&&_0x267a8a[_0x2e0fe2(0x19a)]>0x0&&_0x267a8a[_0x2e0fe2(0x1a4)](_0x104c03=>{const _0x11e05f=_0x2e0fe2;this[_0x11e05f(0x1ad)](_0x104c03);}),_0x27fc0b();}});await _0x1f759b();const _0x3e2173=new stream_1[(_0x927a16(0x183))]({'objectMode':!![],'highWaterMark':_0x3605f5,async 'write'(_0x2ca090,_0xb4c1f9,_0x194ad8){const _0x4c91d=_0x927a16;var _0x265b93;try{fileLimit>0x0&&_0x303d91>=fileLimit&&(_0x1d5e06++,_0x303d91=0x0,await _0x1f759b());const _0x4c0712=_0x38d896[_0x4c91d(0x18a)]({});for(let _0x6b53c in _0x502d5a){const _0x431ef5=_0x502d5a[_0x6b53c][_0x4c91d(0x1b4)][_0x4c91d(0x172)](/\./g,'_'),_0x5cefbd=_0x38d896[_0x4c91d(0x193)](_0x431ef5),_0x21bdc6=_0x4c0712===null||_0x4c0712===void 0x0?void 0x0:_0x4c0712[_0x4c91d(0x1bd)](_0x431ef5);typeof((_0x265b93=_0x502d5a[_0x6b53c])===null||_0x265b93===void 0x0?void 0x0:_0x265b93[_0x4c91d(0x1b3)])==_0x4c91d(0x1c6)?_0x21bdc6[_0x4c91d(0x1b9)]=await _0x502d5a[_0x6b53c][_0x4c91d(0x1b3)](_0x2ca090,{'row':_0x4c0712,'col':_0x5cefbd,'cell':_0x21bdc6,'sheet':_0x38d896})||'':_0x21bdc6[_0x4c91d(0x1b9)]=lodash[_0x4c91d(0x180)](_0x2ca090,_0x502d5a[_0x6b53c][_0x4c91d(0x1b4)],'');}_0x3700f2++,_0x303d91++,_0x4c0712[_0x4c91d(0x1a0)](),_0x194ad8();}catch(_0x9ce59b){_0x194ad8(_0x9ce59b);}},async 'final'(_0x47323e){try{_0x47323e();}catch(_0x446e43){_0x47323e(_0x446e43);}}});return new Promise((_0x5ec1c5,_0x1be9f5)=>{const _0x4f7a2f=_0x927a16,_0x5a279e=_0x4fadc9=>{const _0x4b15ca=a15_0x58f7;_0x5405ec['destroy'](),_0x5d354f['destroy'](),_0x3e2173[_0x4b15ca(0x1b5)](),_0x1be9f5(_0x4fadc9);};_0x5405ec['on']('error',_0x5a279e)[_0x4f7a2f(0x1ae)](_0x5d354f)['on'](_0x4f7a2f(0x1b1),_0x5a279e)['pipe'](_0x3e2173)['on']('error',_0x5a279e)['on'](_0x4f7a2f(0x198),()=>{const _0x1ffe86=_0x4f7a2f;try{_0x5405ec[_0x1ffe86(0x178)](),_0x5d354f['unpipe'](),_0x5d354f[_0x1ffe86(0x1af)](),_0x3e2173[_0x1ffe86(0x1af)](),_0x5ec1c5({'rowCount':_0x3700f2,'worksheet':_0x38d896,'done':()=>_0x38d896['commit'](),'fileCount':_0x1d5e06+0x1,'filepaths':_0x3ed983});}catch(_0x40fc6f){_0x1be9f5(_0x40fc6f);}}),Array[_0x4f7a2f(0x1ac)](_0x28e92a)&&_0x5405ec[_0x4f7a2f(0x1bb)]();});}async[a15_0x44c1e3(0x1b6)](_0x3b4867,_0x5ae8ba,_0x4532fc={'sheets':0x0}){const _0x2a85b7=a15_0x44c1e3;var _0x20b30e,_0x4071a3,_0x3f18fa;const _0x11fec3=(_0x4532fc===null||_0x4532fc===void 0x0?void 0x0:_0x4532fc[_0x2a85b7(0x1b7)])?Array[_0x2a85b7(0x1ac)](_0x4532fc[_0x2a85b7(0x1b7)])?_0x4532fc[_0x2a85b7(0x1b7)]:[_0x4532fc[_0x2a85b7(0x1b7)]]:[0x0],_0xec5a01=_0x3fcdd6=>new Promise(async(_0x4f85ad,_0x31f292)=>{const _0x561542=_0x2a85b7,_0x511c9b=_0x3fcdd6[_0x561542(0x1c3)](0x1),_0xa45e28=await new Promise(_0xe1abb7=>{const _0xe73aa4={};_0x511c9b['eachCell']((_0x35ac39,_0x1fd45e)=>{const _0x5250ba=a15_0x58f7;for(const _0x4981ba of _0x3b4867){if(_0x35ac39['value']==_0x4981ba[_0x5250ba(0x181)])_0xe73aa4[_0x4981ba[_0x5250ba(0x1b4)]]={'header':_0x35ac39['col'],'handler':_0x4981ba[_0x5250ba(0x1b3)]};else{if(!_0xe73aa4[_0x4981ba[_0x5250ba(0x1b4)]])try{const _0xa697dd=_0x511c9b&&_0x511c9b[_0x5250ba(0x1bd)](_0x4981ba['header']);_0xa697dd&&(_0xe73aa4[_0x4981ba['key']]={'header':_0xa697dd['col'],'handler':_0x4981ba['handler']});}catch{}}}_0x511c9b[_0x5250ba(0x18f)]==_0x1fd45e&&_0xe1abb7(_0xe73aa4);});});_0x3fcdd6['on'](_0x561542(0x19c),_0x5b43c8=>_0x4f85ad(_0x3fcdd6)),_0x3fcdd6['on']('error',_0x5b25d1=>_0x31f292(_0x5b25d1)),_0x3fcdd6['on'](_0x561542(0x177),async _0x12fd24=>{const _0x335b63=_0x561542;var _0x55eea1;if(typeof(_0x12fd24===null||_0x12fd24===void 0x0?void 0x0:_0x12fd24['getCell'])=='function'){const _0x4fe2a9={};_0x16a48c:for(const _0x42bb2e in _0xa45e28){if(_0xa45e28[_0x42bb2e][_0x335b63(0x181)]){const _0x36f86a=_0x12fd24['getCell'](_0xa45e28[_0x42bb2e][_0x335b63(0x181)]);if(!_0x36f86a)continue _0x16a48c;try{_0x36f86a[_0x335b63(0x184)]();}catch(_0x529bbd){_0x36f86a[_0x335b63(0x184)]=()=>{const _0x15c608=_0x335b63;var _0x5208bb;return''+(((_0x5208bb=_0x36f86a===null||_0x36f86a===void 0x0?void 0x0:_0x36f86a['model'])===null||_0x5208bb===void 0x0?void 0x0:_0x5208bb[_0x15c608(0x1b9)])||'');};}typeof((_0x55eea1=_0xa45e28[_0x42bb2e])===null||_0x55eea1===void 0x0?void 0x0:_0x55eea1[_0x335b63(0x1b3)])==_0x335b63(0x1c6)?_0x4fe2a9[_0x42bb2e]=await _0xa45e28[_0x42bb2e][_0x335b63(0x1b3)](lodash[_0x335b63(0x199)]({},_0x42bb2e,(_0x36f86a===null||_0x36f86a===void 0x0?void 0x0:_0x36f86a['toString']())||''),_0x36f86a[_0x335b63(0x17d)]):_0x4fe2a9[_0x42bb2e]=(_0x36f86a===null||_0x36f86a===void 0x0?void 0x0:_0x36f86a['toString']())||'';}}Object['keys'](_0x4fe2a9)['length']>0x0&&Object['values'](_0x4fe2a9)['filter'](_0x3b7ed4=>_0x3b7ed4!='')[_0x335b63(0x19a)]>0x0&&await _0x5ae8ba(_0x4fe2a9,{'sheet':_0x3fcdd6,'row':_0x12fd24});}}),await _0x3fcdd6[_0x561542(0x19e)]();});for(const _0x2c9ec of _0x11fec3){const _0x225cd4=lodash[_0x2a85b7(0x182)](_0x2c9ec)?((_0x4071a3=(_0x20b30e=this[_0x2a85b7(0x194)])===null||_0x20b30e===void 0x0?void 0x0:_0x20b30e[_0x2a85b7(0x173)])===null||_0x4071a3===void 0x0?void 0x0:_0x4071a3[_0x2c9ec])||undefined:(_0x3f18fa=this['WorkbookReader'])===null||_0x3f18fa===void 0x0?void 0x0:_0x3f18fa[_0x2a85b7(0x1ab)](_0x2c9ec);_0x225cd4&&await _0xec5a01(_0x225cd4);}}[a15_0x44c1e3(0x18c)](_0x5a8a81,_0x30d366=![]){const _0x2c8631=a15_0x44c1e3;var _0x33e180,_0x4a331d;let _0x40c7b9=this[_0x2c8631(0x1a2)][_0x2c8631(0x189)](_0x5a8a81)?this[_0x2c8631(0x1a2)]['get'](_0x5a8a81):(_0x33e180=this[_0x2c8631(0x1b8)])===null||_0x33e180===void 0x0?void 0x0:_0x33e180[_0x2c8631(0x1ab)](_0x5a8a81);return!_0x40c7b9&&_0x30d366&&(_0x40c7b9=(_0x4a331d=this[_0x2c8631(0x1b8)])===null||_0x4a331d===void 0x0?void 0x0:_0x4a331d[_0x2c8631(0x1b0)](lodash[_0x2c8631(0x182)](_0x5a8a81)?undefined:''+_0x5a8a81,{'views':[{'state':'frozen','ySplit':0x1}]}),this[_0x2c8631(0x1a2)][_0x2c8631(0x199)](_0x5a8a81,_0x40c7b9)),_0x40c7b9;}async[a15_0x44c1e3(0x188)](){const _0x5d96bd=a15_0x44c1e3;var _0x1c3284;return await((_0x1c3284=this[_0x5d96bd(0x1b8)])===null||_0x1c3284===void 0x0?void 0x0:_0x1c3284[_0x5d96bd(0x1a0)]()),this;}*[a15_0x44c1e3(0x1aa)](_0x5d1f98,_0x48832c){const _0x25e9d5=a15_0x44c1e3;for(let _0x1477de=0x0;_0x1477de<_0x5d1f98[_0x25e9d5(0x19a)];_0x1477de+=_0x48832c){yield _0x5d1f98['slice'](_0x1477de,_0x1477de+_0x48832c);}}}exports[a15_0x44c1e3(0x1a8)]=ExcelStream;