anncic-api 3.7.18 → 3.7.19
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.
- package/dist/config/config.default.js +51 -1
- package/dist/config/config.local.js +10 -1
- package/dist/config/config.production.js +7 -1
- package/dist/configuration.js +292 -1
- package/dist/decorator/Action.js +200 -1
- package/dist/decorator/ActionApitest.js +25 -1
- package/dist/decorator/Intercept.js +30 -1
- package/dist/exception/ApiError.js +46 -1
- package/dist/helper/getAppsConfig.js +10 -1
- package/dist/helper/getRoutes.js +219 -1
- package/dist/helper/getSwaggerJson.js +419 -1
- package/dist/index.js +69 -1
- package/dist/service/ApiService.js +82 -1
- package/dist/service/ApitestService.js +137 -1
- package/dist/service/ExcelService.js +162 -1
- package/dist/service/ExcelStream.js +221 -1
- package/dist/types/action.js +11 -1
- package/dist/types/common.js +33 -1
- package/dist/types/intercept.js +8 -1
- package/package.json +8 -8
|
@@ -1 +1,82 @@
|
|
|
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.ApiService = void 0;
|
|
13
|
+
const crypto_js_1 = require("crypto-js");
|
|
14
|
+
const core_1 = require("@midwayjs/core");
|
|
15
|
+
const ApiError_1 = require("../exception/ApiError");
|
|
16
|
+
let ApiService = class ApiService {
|
|
17
|
+
password(password) {
|
|
18
|
+
var _a;
|
|
19
|
+
return password ? (0, crypto_js_1.MD5)(`${password}` + (0, crypto_js_1.MD5)((0, crypto_js_1.MD5)(`${password}`).toString() + `${(_a = this.config) === null || _a === void 0 ? void 0 : _a.password}`).toString()).toString() : '';
|
|
20
|
+
}
|
|
21
|
+
getcheck(token, device, time = Date.now()) {
|
|
22
|
+
return {
|
|
23
|
+
Token: token,
|
|
24
|
+
Logintime: time,
|
|
25
|
+
Checkcode: this.checkcode(token, device, time)
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
getsign(signObj = {}) {
|
|
29
|
+
var _a, _b;
|
|
30
|
+
const tmpArr = [], signObjTmp = Object.fromEntries(Object.entries(signObj).map(x => [x[0].toLowerCase(), x[1]]));
|
|
31
|
+
for (let key of ['device', 'requesttime', 'token', 'logintime', 'checkcode']) {
|
|
32
|
+
if (typeof signObjTmp[key] == 'undefined') {
|
|
33
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_LACK, { message: `验证失败` });
|
|
34
|
+
}
|
|
35
|
+
tmpArr.push(key + '=' + signObjTmp[key]);
|
|
36
|
+
}
|
|
37
|
+
if (signObjTmp.requesttime && ((_a = signObjTmp.requesttime) === null || _a === void 0 ? void 0 : _a.length) == 10) {
|
|
38
|
+
signObjTmp.requesttime = signObjTmp.requesttime * 1000;
|
|
39
|
+
}
|
|
40
|
+
if (this.config.timeout && parseInt(`${Date.now()}`.substring(0, 13).padEnd(13, '0')) - parseInt(`${Math.abs(signObjTmp.requesttime)}`.substring(0, 13).padEnd(13, '0')) > parseInt(this.config.timeout)) {
|
|
41
|
+
throw new AnnError(ApiError_1.ApiError.TIMEOUT, { message: `请求超时,请重试或改善网络环境`, requesttime: signObjTmp.requesttime, timestamp: Date.now() });
|
|
42
|
+
}
|
|
43
|
+
if ((((_b = this.config.devices[signObjTmp.device]) === null || _b === void 0 ? void 0 : _b.logintimeout) || 0) > 0 && (Date.now() - Math.abs(signObjTmp.logintime)) > this.config.devices[signObjTmp.device].logintimeout) {
|
|
44
|
+
throw new AnnError(ApiError_1.ApiError.TIMEOUT_LOGINTIME);
|
|
45
|
+
}
|
|
46
|
+
if (!this.config.devices[signObjTmp.device] || !this.config.devices[signObjTmp.device].secret || !this.config.devices[signObjTmp.device].checkcode) {
|
|
47
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_DEVICE);
|
|
48
|
+
}
|
|
49
|
+
if (signObjTmp.token && signObjTmp.checkcode != this.checkcode(signObjTmp.token, signObjTmp.device, signObjTmp.logintime)) {
|
|
50
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_CHECKCODE);
|
|
51
|
+
}
|
|
52
|
+
tmpArr.push(`secret=${this.config.devices[signObjTmp.device].secret}`);
|
|
53
|
+
return (0, crypto_js_1.MD5)(tmpArr.sort().join('')).toString();
|
|
54
|
+
}
|
|
55
|
+
checkcode(token, device, time = Date.now()) {
|
|
56
|
+
var _a, _b, _c;
|
|
57
|
+
if (!((_a = this.config) === null || _a === void 0 ? void 0 : _a.devices[device]) || !((_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.devices[device]) === null || _c === void 0 ? void 0 : _c.checkcode)) {
|
|
58
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_DEVICE);
|
|
59
|
+
}
|
|
60
|
+
return (0, crypto_js_1.MD5)(`${token}` + (0, crypto_js_1.MD5)(`${time}` + `${this.config.devices[device].checkcode}`).toString()).toString();
|
|
61
|
+
}
|
|
62
|
+
checksign(signObj = {}) {
|
|
63
|
+
const signObjTmp = Object.fromEntries(Object.entries(signObj).map(x => [x[0].toLowerCase(), x[1]]));
|
|
64
|
+
if (!(signObjTmp === null || signObjTmp === void 0 ? void 0 : signObjTmp.signature)) {
|
|
65
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_LACK, { message: `验证失败` });
|
|
66
|
+
}
|
|
67
|
+
if ((signObjTmp === null || signObjTmp === void 0 ? void 0 : signObjTmp.signature) != this.getsign(signObjTmp)) {
|
|
68
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_SIGNATURE, { message: `验证失败` });
|
|
69
|
+
}
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
exports.ApiService = ApiService;
|
|
74
|
+
__decorate([
|
|
75
|
+
(0, core_1.Config)('anncicapi'),
|
|
76
|
+
__metadata("design:type", Object)
|
|
77
|
+
], ApiService.prototype, "config", void 0);
|
|
78
|
+
exports.ApiService = ApiService = __decorate([
|
|
79
|
+
(0, core_1.Provide)(),
|
|
80
|
+
(0, core_1.Scope)(core_1.ScopeEnum.Singleton)
|
|
81
|
+
], ApiService);
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlL0FwaVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQStCO0FBQy9CLHlDQUFtRTtBQUNuRSxvREFBaUQ7QUFJMUMsSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVTtJQVVuQixRQUFRLENBQUMsUUFBaUI7O1FBQ3RCLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFBLGVBQUcsRUFBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLElBQUEsZUFBRyxFQUFDLElBQUEsZUFBRyxFQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdEksQ0FBQztJQVNELFFBQVEsQ0FBQyxLQUFzQixFQUFFLE1BQWMsRUFBRSxPQUFlLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDdEUsT0FBTztZQUNILEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQztTQUNqRCxDQUFBO0lBQ0wsQ0FBQztJQU9ELE9BQU8sQ0FBQyxVQUFlLEVBQUU7O1FBQ3JCLE1BQU0sTUFBTSxHQUFhLEVBQUUsRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVEsQ0FBQztRQUNsSSxLQUFLLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDM0UsSUFBSSxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDeEMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxtQkFBUSxDQUFDLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDNUMsQ0FBQztRQUdELElBQUksVUFBVSxDQUFDLFdBQVcsSUFBSSxDQUFBLE1BQUEsVUFBVSxDQUFDLFdBQVcsMENBQUUsTUFBTSxLQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2pFLFVBQVUsQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDM0QsQ0FBQztRQUdELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3ZNLE1BQU0sSUFBSSxRQUFRLENBQUMsbUJBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckksQ0FBQztRQUVELElBQUksQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQywwQ0FBRSxZQUFZLEtBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pLLE1BQU0sSUFBSSxRQUFRLENBQUMsbUJBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqSixNQUFNLElBQUksUUFBUSxDQUFDLG1CQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3hILE1BQU0sSUFBSSxRQUFRLENBQUMsbUJBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDdEUsT0FBTyxJQUFBLGVBQUcsRUFBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQVNELFNBQVMsQ0FBQyxLQUFzQixFQUFFLE1BQWMsRUFBRSxPQUFlLElBQUksQ0FBQyxHQUFHLEVBQUU7O1FBQ3ZFLElBQUksQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBLElBQUksQ0FBQyxDQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxPQUFPLENBQUMsTUFBTSxDQUFDLDBDQUFFLFNBQVMsQ0FBQSxFQUFFLENBQUM7WUFDNUUsTUFBTSxJQUFJLFFBQVEsQ0FBQyxtQkFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxPQUFPLElBQUEsZUFBRyxFQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBQSxlQUFHLEVBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvRyxDQUFDO0lBT0QsU0FBUyxDQUFDLFVBQWUsRUFBRTtRQUN2QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUSxDQUFDO1FBRTNHLElBQUksQ0FBQyxDQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxTQUFTLENBQUEsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxRQUFRLENBQUMsbUJBQVEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBRUQsSUFBSSxDQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxTQUFTLEtBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3BELE1BQU0sSUFBSSxRQUFRLENBQUMsbUJBQVEsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0osQ0FBQTtBQXJHWSxnQ0FBVTtBQUdUO0lBRFQsSUFBQSxhQUFNLEVBQUMsV0FBVyxDQUFDOzswQ0FDSDtxQkFIUixVQUFVO0lBRnRCLElBQUEsY0FBTyxHQUFFO0lBQ1QsSUFBQSxZQUFLLEVBQUMsZ0JBQVMsQ0FBQyxTQUFTLENBQUM7R0FDZCxVQUFVLENBcUd0QiJ9
|
|
@@ -1 +1,137 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ApitestStaticController = exports.ApitestService = void 0;
|
|
16
|
+
const path_1 = require("path");
|
|
17
|
+
const fs_1 = require("fs");
|
|
18
|
+
const core_1 = require("@midwayjs/core");
|
|
19
|
+
const core_2 = require("@midwayjs/core");
|
|
20
|
+
const core_3 = require("@midwayjs/core");
|
|
21
|
+
const getRoutes_1 = require("../helper/getRoutes");
|
|
22
|
+
let ApitestService = class ApitestService {
|
|
23
|
+
async apidoc(filter) {
|
|
24
|
+
const routes = (0, getRoutes_1.getRoutes)(filter), apiList = [];
|
|
25
|
+
for (let prefix in routes) {
|
|
26
|
+
for (let routeindex in routes[prefix].routes) {
|
|
27
|
+
let route = routes[prefix].routes[routeindex], request = [];
|
|
28
|
+
for (let _filed in route.request) {
|
|
29
|
+
request.push(route.request[_filed]);
|
|
30
|
+
}
|
|
31
|
+
apiList.push({
|
|
32
|
+
title: `${routes[prefix].summary}:${route.summary}`,
|
|
33
|
+
prefix: routes[prefix].prefix,
|
|
34
|
+
router: route.route,
|
|
35
|
+
method: route.method,
|
|
36
|
+
describe: route.description || '',
|
|
37
|
+
filepath: routes[prefix].filepath || '',
|
|
38
|
+
request: request
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const resourcePath = (0, path_1.join)(__dirname, '../../public/index.html');
|
|
43
|
+
return (0, fs_1.readFileSync)(resourcePath, { encoding: 'utf-8' }).replace(/__res__/g, '/apiteststatic/').replace('__apiList__', JSON.stringify(apiList)).replace('__devices__', JSON.stringify(this.config.devices));
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
exports.ApitestService = ApitestService;
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, core_3.Config)('anncicapi'),
|
|
49
|
+
__metadata("design:type", Object)
|
|
50
|
+
], ApitestService.prototype, "config", void 0);
|
|
51
|
+
exports.ApitestService = ApitestService = __decorate([
|
|
52
|
+
(0, core_2.Provide)('apitest'),
|
|
53
|
+
(0, core_3.Scope)(core_3.ScopeEnum.Singleton)
|
|
54
|
+
], ApitestService);
|
|
55
|
+
let ApitestStaticController = class ApitestStaticController {
|
|
56
|
+
async apitesthtml() {
|
|
57
|
+
if (this.apitest) {
|
|
58
|
+
const option = { module: false };
|
|
59
|
+
if (this.Environment.isDevelopmentEnvironment()) {
|
|
60
|
+
option.filepath = true;
|
|
61
|
+
}
|
|
62
|
+
return await this.ApitestService.apidoc(option);
|
|
63
|
+
}
|
|
64
|
+
return '';
|
|
65
|
+
}
|
|
66
|
+
async apitestmodule(module) {
|
|
67
|
+
if (this.apitest) {
|
|
68
|
+
const option = { module };
|
|
69
|
+
if (this.Environment.isDevelopmentEnvironment()) {
|
|
70
|
+
option.filepath = true;
|
|
71
|
+
}
|
|
72
|
+
return await this.ApitestService.apidoc(option);
|
|
73
|
+
}
|
|
74
|
+
return '';
|
|
75
|
+
}
|
|
76
|
+
async apiteststatic() {
|
|
77
|
+
if ((0, path_1.extname)(this.ctx.request.url)) {
|
|
78
|
+
var resourcePath = (0, path_1.join)(__dirname, `../../public/${this.ctx.request.url.replace('/apiteststatic/', '/')}`);
|
|
79
|
+
if (resourcePath.substring(resourcePath.length - 11) != '/index.html') {
|
|
80
|
+
this.ctx.set('cache-control', 'public, max-age=604800');
|
|
81
|
+
if ((0, path_1.extname)(this.ctx.request.url) == '.js') {
|
|
82
|
+
this.ctx.set('content-type', 'application/javascript; charset=utf-8');
|
|
83
|
+
}
|
|
84
|
+
else if ((0, path_1.extname)(this.ctx.request.url) == '.css') {
|
|
85
|
+
this.ctx.set('content-type', 'text/css; charset=utf-8');
|
|
86
|
+
}
|
|
87
|
+
return (0, fs_1.existsSync)(resourcePath) && (0, fs_1.readFileSync)(resourcePath, { encoding: 'utf-8' });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return '';
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
exports.ApitestStaticController = ApitestStaticController;
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, core_3.Inject)(),
|
|
96
|
+
__metadata("design:type", Object)
|
|
97
|
+
], ApitestStaticController.prototype, "ctx", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
(0, core_3.Inject)(),
|
|
100
|
+
__metadata("design:type", core_1.MidwayEnvironmentService)
|
|
101
|
+
], ApitestStaticController.prototype, "Environment", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, core_3.Inject)(),
|
|
104
|
+
__metadata("design:type", ApitestService)
|
|
105
|
+
], ApitestStaticController.prototype, "ApitestService", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
(0, core_3.Config)('apitest'),
|
|
108
|
+
__metadata("design:type", Boolean)
|
|
109
|
+
], ApitestStaticController.prototype, "apitest", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, core_3.Config)('anncicapi'),
|
|
112
|
+
__metadata("design:type", Object)
|
|
113
|
+
], ApitestStaticController.prototype, "config", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, core_2.Get)('/apitest'),
|
|
116
|
+
__metadata("design:type", Function),
|
|
117
|
+
__metadata("design:paramtypes", []),
|
|
118
|
+
__metadata("design:returntype", Promise)
|
|
119
|
+
], ApitestStaticController.prototype, "apitesthtml", null);
|
|
120
|
+
__decorate([
|
|
121
|
+
(0, core_2.Get)('/apitest-:module'),
|
|
122
|
+
__param(0, (0, core_2.Param)('module')),
|
|
123
|
+
__metadata("design:type", Function),
|
|
124
|
+
__metadata("design:paramtypes", [String]),
|
|
125
|
+
__metadata("design:returntype", Promise)
|
|
126
|
+
], ApitestStaticController.prototype, "apitestmodule", null);
|
|
127
|
+
__decorate([
|
|
128
|
+
(0, core_2.Get)('/apiteststatic/*'),
|
|
129
|
+
__metadata("design:type", Function),
|
|
130
|
+
__metadata("design:paramtypes", []),
|
|
131
|
+
__metadata("design:returntype", Promise)
|
|
132
|
+
], ApitestStaticController.prototype, "apiteststatic", null);
|
|
133
|
+
exports.ApitestStaticController = ApitestStaticController = __decorate([
|
|
134
|
+
(0, core_2.Controller)('/'),
|
|
135
|
+
(0, core_3.Scope)(core_3.ScopeEnum.Request)
|
|
136
|
+
], ApitestStaticController);
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpdGVzdFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9BcGl0ZXN0U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBcUM7QUFFckMsMkJBQThDO0FBQzlDLHlDQUEwRDtBQUMxRCx5Q0FBaUU7QUFDakUseUNBQWtFO0FBQ2xFLG1EQUErRDtBQUl4RCxJQUFNLGNBQWMsR0FBcEIsTUFBTSxjQUFjO0lBR3ZCLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBdUI7UUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBUyxFQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDL0MsS0FBSyxJQUFJLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN4QixLQUFLLElBQUksVUFBVSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUM1RCxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7Z0JBQ3ZDLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDVCxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7b0JBQ25ELE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTTtvQkFDN0IsTUFBTSxFQUFFLEtBQUssQ0FBQyxLQUFLO29CQUNuQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07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
|
|
@@ -1 +1,162 @@
|
|
|
1
|
-
const a14_0x4376f6=a14_0x5b49;(function(_0x1d0845,_0x104f53){const _0x2eed2f=a14_0x5b49,_0x50572c=_0x1d0845();while(!![]){try{const _0x2ddbea=parseInt(_0x2eed2f(0x1c7))/0x1+parseInt(_0x2eed2f(0x1cd))/0x2+-parseInt(_0x2eed2f(0x1e6))/0x3+parseInt(_0x2eed2f(0x1f7))/0x4+parseInt(_0x2eed2f(0x1f9))/0x5*(parseInt(_0x2eed2f(0x20e))/0x6)+parseInt(_0x2eed2f(0x1de))/0x7+-parseInt(_0x2eed2f(0x1d0))/0x8;if(_0x2ddbea===_0x104f53)break;else _0x50572c['push'](_0x50572c['shift']());}catch(_0x58b4ab){_0x50572c['push'](_0x50572c['shift']());}}}(a14_0x550e,0xccbb1));function a14_0x550e(){const _0xa67d5f=['instance','columns','apply','Sheet\x201','Scope','set','handler','function','findRows','\x20is\x20read\x20fail','__decorate','values','Provide','addRow','key','search','object','toString','/public/xlsx/','onWrite','52380AxKsOA','exceljs','Singleton','getOwnPropertyDescriptor','value','Workbook','.xlsx','527790MMUzdr','prototype','defineProperty','stream','frozen','get','1294318rROIAX','parse','startsWith','5542432AopdSv','format','getCell','replace','filter','worksheets','header','ExcelStream','readFile','writeFile','log','export','col','endsWith','5298762IrtXIB','onRead','getColumn','ExcelService','koa-send','length','app','push','3839631HguNUJ','constructor','model','getWorksheet','cellCount','getAppDir','getRow','mkdirSync','__esModule','decorate','xlsx','design:type','metadata','App','existsSync','(((.+)+)+)+$','substring','2644372CTNSKn','xls','125rizSVb'];a14_0x550e=function(){return _0xa67d5f;};return a14_0x550e();}function a14_0x5b49(_0x517f41,_0x5bcb70){const _0xb7ae01=a14_0x550e();return a14_0x5b49=function(_0x4ca712,_0x38e3d7){_0x4ca712=_0x4ca712-0x1c3;let _0x550e2a=_0xb7ae01[_0x4ca712];return _0x550e2a;},a14_0x5b49(_0x517f41,_0x5bcb70);}const a14_0x38e3d7=(function(){let _0x4b4336=!![];return function(_0x5ddca0,_0x168802){const _0x2b8fab=_0x4b4336?function(){const _0x55d429=a14_0x5b49;if(_0x168802){const _0x55a9f4=_0x168802[_0x55d429(0x1fc)](_0x5ddca0,arguments);return _0x168802=null,_0x55a9f4;}}:function(){};return _0x4b4336=![],_0x2b8fab;};}()),a14_0x4ca712=a14_0x38e3d7(this,function(){const _0x28d60a=a14_0x5b49;return a14_0x4ca712['toString']()[_0x28d60a(0x209)](_0x28d60a(0x1f5))[_0x28d60a(0x20b)]()[_0x28d60a(0x1e7)](a14_0x4ca712)[_0x28d60a(0x209)](_0x28d60a(0x1f5));});a14_0x4ca712();'use strict';var __decorate=this&&this[a14_0x4376f6(0x204)]||function(_0x267670,_0x36fab7,_0x5e36ce,_0x5b3e7e){const _0x348126=a14_0x4376f6;var _0x42a53e=arguments[_0x348126(0x1e3)],_0x51e6e9=_0x42a53e<0x3?_0x36fab7:_0x5b3e7e===null?_0x5b3e7e=Object[_0x348126(0x1c3)](_0x36fab7,_0x5e36ce):_0x5b3e7e,_0x37f7a7;if(typeof Reflect===_0x348126(0x20a)&&typeof Reflect['decorate']===_0x348126(0x201))_0x51e6e9=Reflect[_0x348126(0x1ef)](_0x267670,_0x36fab7,_0x5e36ce,_0x5b3e7e);else{for(var _0x2aa333=_0x267670[_0x348126(0x1e3)]-0x1;_0x2aa333>=0x0;_0x2aa333--)if(_0x37f7a7=_0x267670[_0x2aa333])_0x51e6e9=(_0x42a53e<0x3?_0x37f7a7(_0x51e6e9):_0x42a53e>0x3?_0x37f7a7(_0x36fab7,_0x5e36ce,_0x51e6e9):_0x37f7a7(_0x36fab7,_0x5e36ce))||_0x51e6e9;}return _0x42a53e>0x3&&_0x51e6e9&&Object['defineProperty'](_0x36fab7,_0x5e36ce,_0x51e6e9),_0x51e6e9;},__metadata=this&&this['__metadata']||function(_0x1c92b6,_0x3b0570){const _0x2bb6a1=a14_0x4376f6;if(typeof Reflect===_0x2bb6a1(0x20a)&&typeof Reflect[_0x2bb6a1(0x1f2)]===_0x2bb6a1(0x201))return Reflect[_0x2bb6a1(0x1f2)](_0x1c92b6,_0x3b0570);};Object[a14_0x4376f6(0x1c9)](exports,a14_0x4376f6(0x1ee),{'value':!![]}),exports[a14_0x4376f6(0x1e1)]=void 0x0;const fs=require('fs'),exceljs=require(a14_0x4376f6(0x20f)),koasend=require(a14_0x4376f6(0x1e2)),core_1=require('@midwayjs/core'),ExcelStream_1=require('./ExcelStream');let ExcelService=class ExcelService{async[a14_0x4376f6(0x1ce)](_0x3f73f7,_0x2bb968,_0x450600=[0x0]){const _0x48a2d1=a14_0x4376f6;var _0x5a81a0,_0x19abaf;const _0x5c6b5a=new exceljs[(_0x48a2d1(0x1c5))](),_0x553980=[];let _0xaacba1=_0x3f73f7[_0x48a2d1(0x1d3)](/(\\|\/)/g,'/')['replace'](/\/{2,}/g,'/');!(_0xaacba1===null||_0xaacba1===void 0x0?void 0x0:_0xaacba1['startsWith']('/'))&&(_0xaacba1=this['app']['getAppDir']()+'/'+_0xaacba1);try{await _0x5c6b5a[_0x48a2d1(0x1f0)][_0x48a2d1(0x1d8)](_0xaacba1);}catch(_0x5de34d){return console[_0x48a2d1(0x1da)]('Api\x20Excel\x20Error:\x20'+_0xaacba1+_0x48a2d1(0x203)),_0x553980;}for(const _0x1f60e9 of _0x450600){const _0x433807=lodash['isNumber'](_0x1f60e9)?((_0x5a81a0=_0x5c6b5a[_0x48a2d1(0x1d5)])===null||_0x5a81a0===void 0x0?void 0x0:_0x5a81a0[_0x1f60e9])||undefined:_0x5c6b5a[_0x48a2d1(0x1e9)](_0x1f60e9);if(_0x433807){var _0x4ea7a2=0x1;const _0x4598a2=_0x433807[_0x48a2d1(0x1ec)](0x1),_0x675c34=await new Promise(_0xa784af=>{const _0x119e99={};_0x4598a2['eachCell']((_0xf4f32d,_0x4d37d8)=>{const _0xae56f7=a14_0x5b49;for(const _0x5c4bff of _0x2bb968){if(_0xf4f32d[_0xae56f7(0x1c4)]==_0x5c4bff[_0xae56f7(0x1d6)])_0x4ea7a2=0x2,_0x119e99[_0x5c4bff[_0xae56f7(0x208)]]={'header':_0xf4f32d['col'],'handler':(_0x5c4bff===null||_0x5c4bff===void 0x0?void 0x0:_0x5c4bff[_0xae56f7(0x1df)])||(_0x5c4bff===null||_0x5c4bff===void 0x0?void 0x0:_0x5c4bff[_0xae56f7(0x200)])};else{if(!_0x119e99[_0x5c4bff[_0xae56f7(0x208)]])try{const _0x4c53d2=_0x4598a2&&_0x4598a2[_0xae56f7(0x1d2)](_0x5c4bff[_0xae56f7(0x1d6)]);_0x4c53d2&&(_0x119e99[_0x5c4bff[_0xae56f7(0x208)]]={'header':_0x4c53d2[_0xae56f7(0x1dc)],'handler':(_0x5c4bff===null||_0x5c4bff===void 0x0?void 0x0:_0x5c4bff[_0xae56f7(0x1df)])||(_0x5c4bff===null||_0x5c4bff===void 0x0?void 0x0:_0x5c4bff['handler'])});}catch{}}}_0x4598a2[_0xae56f7(0x1ea)]==_0x4d37d8&&_0xa784af(_0x119e99);});});_0x83997f:for(const _0x169d69 of _0x433807[_0x48a2d1(0x202)](_0x4ea7a2,_0x433807['rowCount'])){if(typeof(_0x169d69===null||_0x169d69===void 0x0?void 0x0:_0x169d69[_0x48a2d1(0x1d2)])!=_0x48a2d1(0x201))continue _0x83997f;const _0x41e861={};_0x4ee86b:for(const _0x3b07dd in _0x675c34){if(_0x675c34[_0x3b07dd][_0x48a2d1(0x1d6)]){const _0x58d6d5=_0x169d69[_0x48a2d1(0x1d2)](_0x675c34[_0x3b07dd][_0x48a2d1(0x1d6)]);if(!_0x58d6d5)continue _0x4ee86b;try{_0x58d6d5['toString']();}catch(_0x729199){_0x58d6d5[_0x48a2d1(0x20b)]=()=>{const _0x170beb=_0x48a2d1;var _0x526b2b;return''+(((_0x526b2b=_0x58d6d5===null||_0x58d6d5===void 0x0?void 0x0:_0x58d6d5['model'])===null||_0x526b2b===void 0x0?void 0x0:_0x526b2b[_0x170beb(0x1c4)])||'');};}typeof((_0x19abaf=_0x675c34[_0x3b07dd])===null||_0x19abaf===void 0x0?void 0x0:_0x19abaf[_0x48a2d1(0x200)])=='function'?_0x41e861[_0x3b07dd]=await _0x675c34[_0x3b07dd][_0x48a2d1(0x200)](lodash[_0x48a2d1(0x1ff)]({},_0x3b07dd,(_0x58d6d5===null||_0x58d6d5===void 0x0?void 0x0:_0x58d6d5[_0x48a2d1(0x20b)]())||''),_0x58d6d5[_0x48a2d1(0x1e8)]):_0x41e861[_0x3b07dd]=(_0x58d6d5===null||_0x58d6d5===void 0x0?void 0x0:_0x58d6d5['toString']())||'';}}Object['keys'](_0x41e861)[_0x48a2d1(0x1e3)]>0x0&&Object[_0x48a2d1(0x205)](_0x41e861)[_0x48a2d1(0x1d4)](_0x4aa527=>_0x4aa527!='')['length']>0x0&&_0x553980[_0x48a2d1(0x1e5)](_0x41e861);}}}return _0x553980;}async[a14_0x4376f6(0x1db)](_0x2236d8,_0x3bf5d5,_0x1d0f0c,_0xe9e47d,_0x54b048){const _0x31ebe7=a14_0x4376f6;var _0x469b3c,_0x36f86c,_0x3b92a7;const _0x1b4fbe=new exceljs[(_0x31ebe7(0x1c5))](),_0x55e488={},_0xf4056b=[],_0x119b46=_0x1b4fbe['addWorksheet'](_0x31ebe7(0x1fd),{'views':[{'state':_0x31ebe7(0x1cb),'ySplit':0x1}]});for(const _0x1d2a42 in _0x3bf5d5){_0x55e488[_0x3bf5d5[_0x1d2a42][_0x31ebe7(0x208)]]=_0x3bf5d5[_0x1d2a42]['header'],_0xf4056b[_0x31ebe7(0x1e5)]({'header':_0x3bf5d5[_0x1d2a42][_0x31ebe7(0x1d6)],'key':(_0x469b3c=_0x3bf5d5[_0x1d2a42])===null||_0x469b3c===void 0x0?void 0x0:_0x469b3c[_0x31ebe7(0x208)][_0x31ebe7(0x1d3)](/\./g,'_')});}_0x119b46[_0x31ebe7(0x1fb)]=_0xf4056b;for(const _0xc76d5e in _0x1d0f0c){const _0x1d9fc9=_0x1d0f0c[_0xc76d5e],_0x1753db=_0x119b46[_0x31ebe7(0x207)]({});for(let _0x157fcb in _0x3bf5d5){const _0x5fd4a6=_0x3bf5d5[_0x157fcb][_0x31ebe7(0x208)]['replace'](/\./g,'_'),_0x3fdcf1=_0x119b46[_0x31ebe7(0x1e0)](_0x5fd4a6),_0x3ff34e=_0x1753db===null||_0x1753db===void 0x0?void 0x0:_0x1753db['getCell'](_0x5fd4a6);if(typeof((_0x36f86c=_0x3bf5d5[_0x157fcb])===null||_0x36f86c===void 0x0?void 0x0:_0x36f86c['onWrite'])==_0x31ebe7(0x201))_0x3ff34e[_0x31ebe7(0x1c4)]=await _0x3bf5d5[_0x157fcb][_0x31ebe7(0x20d)](_0x1d9fc9,{'row':_0x1753db,'col':_0x3fdcf1,'cell':_0x3ff34e,'sheet':_0x119b46})||'';else typeof((_0x3b92a7=_0x3bf5d5[_0x157fcb])===null||_0x3b92a7===void 0x0?void 0x0:_0x3b92a7[_0x31ebe7(0x200)])==_0x31ebe7(0x201)?_0x3ff34e[_0x31ebe7(0x1c4)]=await _0x3bf5d5[_0x157fcb][_0x31ebe7(0x200)](_0x1d9fc9,{'row':_0x1753db,'col':_0x3fdcf1,'cell':_0x3ff34e,'sheet':_0x119b46})||'':_0x3ff34e[_0x31ebe7(0x1c4)]=lodash[_0x31ebe7(0x1cc)](_0x1d9fc9,_0x3bf5d5[_0x157fcb]['key'],'');}}typeof _0x54b048==_0x31ebe7(0x201)&&await _0x54b048({'workbook':_0x1b4fbe,'worksheet':_0x119b46});let _0x548df4='';const _0x1d7bfd=_0x2236d8+_0x31ebe7(0x1c6);if(_0xe9e47d&&_0xe9e47d[_0x31ebe7(0x1cf)]('/'))_0x548df4=''+_0xe9e47d;else _0xe9e47d&&!_0xe9e47d[_0x31ebe7(0x1cf)]('/')&&!_0xe9e47d['startsWith']('\x5c')?_0x548df4=this[_0x31ebe7(0x1e4)]['getAppDir']()+'/'+_0xe9e47d:_0x548df4=this[_0x31ebe7(0x1e4)][_0x31ebe7(0x1eb)]()+_0x31ebe7(0x20c)+dayjs()[_0x31ebe7(0x1d1)]('YYYY/MM/DD');return(_0x548df4['endsWith']('/')||_0x548df4[_0x31ebe7(0x1dd)]('\x5c'))&&(_0x548df4=_0x548df4[_0x31ebe7(0x1f6)](0x0,_0x548df4[_0x31ebe7(0x1e3)]-0x1)),_0x548df4=_0x548df4[_0x31ebe7(0x1d3)](/(\\|\/)/g,'/')['replace'](/\/{2,}/g,'/'),!fs[_0x31ebe7(0x1f4)](_0x548df4)&&fs[_0x31ebe7(0x1ed)](_0x548df4,{'recursive':!![]}),await _0x1b4fbe[_0x31ebe7(0x1f0)][_0x31ebe7(0x1d9)]((_0x548df4+'/'+_0x1d7bfd)[_0x31ebe7(0x1d3)](/(\\|\/)/g,'/')[_0x31ebe7(0x1d3)](/\/{2,}/g,'/')),{'filename':_0x1d7bfd,'filepath':(_0x548df4[_0x31ebe7(0x1f6)]((''+this[_0x31ebe7(0x1e4)][_0x31ebe7(0x1eb)]())['length'])+'/'+_0x1d7bfd)[_0x31ebe7(0x1d3)](/(\\|\/)/g,'/')[_0x31ebe7(0x1d3)](/\/{2,}/g,'/')};}async[a14_0x4376f6(0x1ca)](_0x30a5fb,_0x2bcf82={'suffix':[a14_0x4376f6(0x1f8),'xlsx']}){const _0x16ebf9=a14_0x4376f6;return await ExcelStream_1[_0x16ebf9(0x1d7)][_0x16ebf9(0x1fa)](_0x30a5fb,_0x2bcf82);}async['download'](_0x442d77,_0x33d0e8){return await koasend(_0x442d77,''+_0x33d0e8);}};exports[a14_0x4376f6(0x1e1)]=ExcelService,__decorate([(0x0,core_1[a14_0x4376f6(0x1f3)])(),__metadata(a14_0x4376f6(0x1f1),Object)],ExcelService[a14_0x4376f6(0x1c8)],a14_0x4376f6(0x1e4),void 0x0),exports[a14_0x4376f6(0x1e1)]=ExcelService=__decorate([(0x0,core_1[a14_0x4376f6(0x206)])(),(0x0,core_1[a14_0x4376f6(0x1fe)])(core_1['ScopeEnum'][a14_0x4376f6(0x210)])],ExcelService);
|
|
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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
|