sa2kit 1.6.30 → 1.6.32
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/AliyunOSSProvider-4W47OFEK.mjs +6 -0
- package/dist/{AliyunOSSProvider-KJYRIZES.mjs.map → AliyunOSSProvider-4W47OFEK.mjs.map} +1 -1
- package/dist/AliyunOSSProvider-HCNGDJL7.js +15 -0
- package/dist/{AliyunOSSProvider-FWAKUB2T.js.map → AliyunOSSProvider-HCNGDJL7.js.map} +1 -1
- package/dist/ConfigService-3DIC6C3Q.js +21 -0
- package/dist/{ConfigService-7MEZXKJ5.js.map → ConfigService-3DIC6C3Q.js.map} +1 -1
- package/dist/ConfigService-V6ZK273Z.mjs +4 -0
- package/dist/{ConfigService-BV57YYFW.mjs.map → ConfigService-V6ZK273Z.mjs.map} +1 -1
- package/dist/LocalStorageProvider-3RVPCQB3.mjs +6 -0
- package/dist/{LocalStorageProvider-RTPMUOZ2.mjs.map → LocalStorageProvider-3RVPCQB3.mjs.map} +1 -1
- package/dist/LocalStorageProvider-PP7MA5OT.js +15 -0
- package/dist/{LocalStorageProvider-XSRCUXOU.js.map → LocalStorageProvider-PP7MA5OT.js.map} +1 -1
- package/dist/PMXParser-2VTA737I.js +13 -0
- package/dist/{PMXParser-YBS3B6HM.js.map → PMXParser-2VTA737I.js.map} +1 -1
- package/dist/PMXParser-RNVQL76A.mjs +4 -0
- package/dist/{PMXParser-L6IWHL4I.mjs.map → PMXParser-RNVQL76A.mjs.map} +1 -1
- package/dist/analytics/index.js +46 -45
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/index.mjs +45 -44
- package/dist/analytics/index.mjs.map +1 -1
- package/dist/analytics/server/index.js +4 -4
- package/dist/analytics/server/index.js.map +1 -1
- package/dist/analytics/server/index.mjs +4 -4
- package/dist/analytics/server/index.mjs.map +1 -1
- package/dist/api/index.js +5 -5
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +5 -5
- package/dist/api/index.mjs.map +1 -1
- package/dist/audioDetection/index.js +17 -16
- package/dist/audioDetection/index.js.map +1 -1
- package/dist/audioDetection/index.mjs +17 -16
- package/dist/audioDetection/index.mjs.map +1 -1
- package/dist/auth/client/index.js +4 -4
- package/dist/auth/client/index.mjs +1 -1
- package/dist/auth/components/index.js +3 -3
- package/dist/auth/components/index.js.map +1 -1
- package/dist/auth/components/index.mjs +3 -3
- package/dist/auth/components/index.mjs.map +1 -1
- package/dist/auth/index.js +29 -29
- package/dist/auth/index.mjs +5 -5
- package/dist/auth/middleware/index.js +3 -3
- package/dist/auth/middleware/index.mjs +2 -2
- package/dist/auth/routes/index.js +14 -14
- package/dist/auth/routes/index.mjs +2 -2
- package/dist/auth/services/index.js +7 -7
- package/dist/auth/services/index.mjs +1 -1
- package/dist/calendar/index.js +146 -182
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/index.mjs +139 -175
- package/dist/calendar/index.mjs.map +1 -1
- package/dist/calendar/routes/index.js +1 -1
- package/dist/calendar/routes/index.js.map +1 -1
- package/dist/calendar/routes/index.mjs +1 -1
- package/dist/calendar/routes/index.mjs.map +1 -1
- package/dist/{chunk-5YQ5B7IZ.js → chunk-24HGREE6.js} +5 -5
- package/dist/{chunk-5YQ5B7IZ.js.map → chunk-24HGREE6.js.map} +1 -1
- package/dist/{chunk-6PRFP5EG.js → chunk-25OFOKNF.js} +6 -6
- package/dist/chunk-25OFOKNF.js.map +1 -0
- package/dist/{chunk-KQGP6BTS.mjs → chunk-3DXPQ4YV.mjs} +6 -6
- package/dist/chunk-3DXPQ4YV.mjs.map +1 -0
- package/dist/{chunk-3BGPZN4X.mjs → chunk-3NHAT7D4.mjs} +12 -12
- package/dist/chunk-3NHAT7D4.mjs.map +1 -0
- package/dist/{chunk-MW4BCIZC.mjs → chunk-4HC6M7FK.mjs} +3 -3
- package/dist/chunk-4HC6M7FK.mjs.map +1 -0
- package/dist/{chunk-ESRCX5TQ.mjs → chunk-52TN2QSS.mjs} +3 -3
- package/dist/{chunk-ESRCX5TQ.mjs.map → chunk-52TN2QSS.mjs.map} +1 -1
- package/dist/{chunk-CNTILN5J.mjs → chunk-5YQ62BKX.mjs} +20 -19
- package/dist/chunk-5YQ62BKX.mjs.map +1 -0
- package/dist/{chunk-6W5BMXJG.js → chunk-6OWNMJKG.js} +4 -4
- package/dist/{chunk-6W5BMXJG.js.map → chunk-6OWNMJKG.js.map} +1 -1
- package/dist/{chunk-DUHZ7VZP.js → chunk-7VRT55ZD.js} +3 -3
- package/dist/chunk-7VRT55ZD.js.map +1 -0
- package/dist/{chunk-3WOAPLEG.mjs → chunk-EB4NR623.mjs} +27 -26
- package/dist/chunk-EB4NR623.mjs.map +1 -0
- package/dist/chunk-EI27JKND.mjs +1988 -0
- package/dist/chunk-EI27JKND.mjs.map +1 -0
- package/dist/{chunk-CD77U7LZ.js → chunk-GBPLX42J.js} +9 -9
- package/dist/chunk-GBPLX42J.js.map +1 -0
- package/dist/{chunk-TFQF2HDO.mjs → chunk-HDEOCX2L.mjs} +12 -12
- package/dist/chunk-HDEOCX2L.mjs.map +1 -0
- package/dist/{chunk-TV3VKRJK.mjs → chunk-HDMIOOZY.mjs} +38 -68
- package/dist/chunk-HDMIOOZY.mjs.map +1 -0
- package/dist/{chunk-OPPF3326.js → chunk-HJ6MH7J7.js} +39 -69
- package/dist/chunk-HJ6MH7J7.js.map +1 -0
- package/dist/chunk-KO73EBUT.js +80 -0
- package/dist/chunk-KO73EBUT.js.map +1 -0
- package/dist/{chunk-6YKMCPQI.mjs → chunk-KZKIH4AS.mjs} +4 -4
- package/dist/chunk-KZKIH4AS.mjs.map +1 -0
- package/dist/{chunk-LX4XX6W7.js → chunk-L47ZOYHL.js} +15 -89
- package/dist/chunk-L47ZOYHL.js.map +1 -0
- package/dist/{chunk-6MQUBPKB.mjs → chunk-LJ4CCSSY.mjs} +3 -3
- package/dist/{chunk-6MQUBPKB.mjs.map → chunk-LJ4CCSSY.mjs.map} +1 -1
- package/dist/{chunk-TOC5FSHP.js → chunk-NJ2SNXBJ.js} +12 -12
- package/dist/chunk-NJ2SNXBJ.js.map +1 -0
- package/dist/{chunk-OCR5DS4C.mjs → chunk-PE5EAHZK.mjs} +3 -3
- package/dist/chunk-PE5EAHZK.mjs.map +1 -0
- package/dist/{chunk-LZHMNOED.js → chunk-Q5EDCKQA.js} +26 -26
- package/dist/chunk-Q5EDCKQA.js.map +1 -0
- package/dist/{chunk-CLKKZSPZ.js → chunk-RBKGYWME.js} +20 -19
- package/dist/chunk-RBKGYWME.js.map +1 -0
- package/dist/{chunk-VRTRSEEH.mjs → chunk-RSJSZ7QH.mjs} +11 -11
- package/dist/chunk-RSJSZ7QH.mjs.map +1 -0
- package/dist/{chunk-E7RGBAYJ.js → chunk-TDCDEBGP.js} +30 -29
- package/dist/chunk-TDCDEBGP.js.map +1 -0
- package/dist/{chunk-JZXJQMVE.js → chunk-UIFFDRTE.js} +11 -11
- package/dist/chunk-UIFFDRTE.js.map +1 -0
- package/dist/{chunk-T5OZHYVM.mjs → chunk-UKT3PLON.mjs} +13 -85
- package/dist/chunk-UKT3PLON.mjs.map +1 -0
- package/dist/{chunk-UOFTHYIH.js → chunk-UL6XJGUZ.js} +4 -4
- package/dist/chunk-UL6XJGUZ.js.map +1 -0
- package/dist/chunk-VVWQTO4Y.mjs +77 -0
- package/dist/chunk-VVWQTO4Y.mjs.map +1 -0
- package/dist/{chunk-A3UP56MS.js → chunk-WA67GZSZ.js} +3 -3
- package/dist/chunk-WA67GZSZ.js.map +1 -0
- package/dist/{chunk-OLHGZXN3.mjs → chunk-WEEXCPSE.mjs} +5 -5
- package/dist/chunk-WEEXCPSE.mjs.map +1 -0
- package/dist/chunk-XGBE4SUV.js +2093 -0
- package/dist/chunk-XGBE4SUV.js.map +1 -0
- package/dist/{chunk-QU5OT4DF.js → chunk-XJ7ZAGC5.js} +5 -5
- package/dist/chunk-XJ7ZAGC5.js.map +1 -0
- package/dist/{chunk-ZI25QCHD.mjs → chunk-YOTQG4NP.mjs} +25 -25
- package/dist/chunk-YOTQG4NP.mjs.map +1 -0
- package/dist/{chunk-QAT2RWAO.mjs → chunk-Z36R3P62.mjs} +7 -7
- package/dist/chunk-Z36R3P62.mjs.map +1 -0
- package/dist/{chunk-7Z5LLJ3A.js → chunk-ZWQJSZEY.js} +13 -13
- package/dist/chunk-ZWQJSZEY.js.map +1 -0
- package/dist/config/index.js +6 -6
- package/dist/config/index.js.map +1 -1
- package/dist/config/index.mjs +6 -6
- package/dist/config/index.mjs.map +1 -1
- package/dist/config/server/index.js +37 -37
- package/dist/config/server/index.js.map +1 -1
- package/dist/config/server/index.mjs +37 -37
- package/dist/config/server/index.mjs.map +1 -1
- package/dist/i18n/index.d.mts +2 -2
- package/dist/i18n/index.d.ts +2 -2
- package/dist/i18n/index.js +16 -17
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/index.mjs +16 -17
- package/dist/i18n/index.mjs.map +1 -1
- package/dist/imageCrop/index.js +11 -10
- package/dist/imageCrop/index.js.map +1 -1
- package/dist/imageCrop/index.mjs +11 -10
- package/dist/imageCrop/index.mjs.map +1 -1
- package/dist/index.d.mts +185 -100
- package/dist/index.d.ts +185 -100
- package/dist/index.js +225 -249
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +80 -104
- package/dist/index.mjs.map +1 -1
- package/dist/logger/index.js +6 -6
- package/dist/logger/index.mjs +1 -1
- package/dist/mikuFusionGame/index.d.mts +112 -0
- package/dist/mikuFusionGame/index.d.ts +112 -0
- package/dist/mikuFusionGame/index.js +680 -0
- package/dist/mikuFusionGame/index.js.map +1 -0
- package/dist/mikuFusionGame/index.mjs +667 -0
- package/dist/mikuFusionGame/index.mjs.map +1 -0
- package/dist/mmd/admin/index.js +11 -10
- package/dist/mmd/admin/index.js.map +1 -1
- package/dist/mmd/admin/index.mjs +11 -10
- package/dist/mmd/admin/index.mjs.map +1 -1
- package/dist/mmd/index.js +223 -241
- package/dist/mmd/index.js.map +1 -1
- package/dist/mmd/index.mjs +220 -238
- package/dist/mmd/index.mjs.map +1 -1
- package/dist/mmd/server/index.js +6 -6
- package/dist/mmd/server/index.js.map +1 -1
- package/dist/mmd/server/index.mjs +6 -6
- package/dist/mmd/server/index.mjs.map +1 -1
- package/dist/music/index.js +16 -16
- package/dist/music/index.mjs +2 -2
- package/dist/music/server/index.js +8 -8
- package/dist/music/server/index.mjs +1 -1
- package/dist/request/index.js +2 -2
- package/dist/request/index.js.map +1 -1
- package/dist/request/index.mjs +2 -2
- package/dist/request/index.mjs.map +1 -1
- package/dist/storage/index.js +15 -14
- package/dist/storage/index.mjs +3 -2
- package/dist/testYourself/admin/index.js +3 -3
- package/dist/testYourself/admin/index.mjs +1 -1
- package/dist/testYourself/index.js +22 -22
- package/dist/testYourself/index.js.map +1 -1
- package/dist/testYourself/index.mjs +14 -14
- package/dist/testYourself/index.mjs.map +1 -1
- package/dist/testYourself/server/index.js +4 -4
- package/dist/testYourself/server/index.mjs +1 -1
- package/dist/universalExport/index.d.mts +3 -3
- package/dist/universalExport/index.d.ts +3 -3
- package/dist/universalExport/index.js +48 -47
- package/dist/universalExport/index.js.map +1 -1
- package/dist/universalExport/index.mjs +48 -47
- package/dist/universalExport/index.mjs.map +1 -1
- package/dist/universalExport/server/index.js +29 -29
- package/dist/universalExport/server/index.js.map +1 -1
- package/dist/universalExport/server/index.mjs +28 -28
- package/dist/universalExport/server/index.mjs.map +1 -1
- package/dist/universalFile/index.d.mts +3 -3
- package/dist/universalFile/index.d.ts +3 -3
- package/dist/universalFile/index.js +73 -72
- package/dist/universalFile/index.js.map +1 -1
- package/dist/universalFile/index.mjs +73 -72
- package/dist/universalFile/index.mjs.map +1 -1
- package/dist/universalFile/server/index.js +258 -260
- package/dist/universalFile/server/index.js.map +1 -1
- package/dist/universalFile/server/index.mjs +244 -246
- package/dist/universalFile/server/index.mjs.map +1 -1
- package/dist/utils/index.js +11 -11
- package/dist/utils/index.mjs +2 -2
- package/package.json +25 -31
- package/dist/AliyunOSSProvider-FWAKUB2T.js +0 -15
- package/dist/AliyunOSSProvider-KJYRIZES.mjs +0 -6
- package/dist/ConfigService-7MEZXKJ5.js +0 -21
- package/dist/ConfigService-BV57YYFW.mjs +0 -4
- package/dist/LocalStorageProvider-RTPMUOZ2.mjs +0 -6
- package/dist/LocalStorageProvider-XSRCUXOU.js +0 -15
- package/dist/PMXParser-L6IWHL4I.mjs +0 -4
- package/dist/PMXParser-YBS3B6HM.js +0 -13
- package/dist/chunk-3BGPZN4X.mjs.map +0 -1
- package/dist/chunk-3WOAPLEG.mjs.map +0 -1
- package/dist/chunk-6PRFP5EG.js.map +0 -1
- package/dist/chunk-6YKMCPQI.mjs.map +0 -1
- package/dist/chunk-7Z5LLJ3A.js.map +0 -1
- package/dist/chunk-A3UP56MS.js.map +0 -1
- package/dist/chunk-CD77U7LZ.js.map +0 -1
- package/dist/chunk-CLKKZSPZ.js.map +0 -1
- package/dist/chunk-CNTILN5J.mjs.map +0 -1
- package/dist/chunk-DUHZ7VZP.js.map +0 -1
- package/dist/chunk-DW2ZTOCV.js +0 -1727
- package/dist/chunk-DW2ZTOCV.js.map +0 -1
- package/dist/chunk-E7RGBAYJ.js.map +0 -1
- package/dist/chunk-JZXJQMVE.js.map +0 -1
- package/dist/chunk-KQGP6BTS.mjs.map +0 -1
- package/dist/chunk-LFG6FPM5.mjs +0 -1597
- package/dist/chunk-LFG6FPM5.mjs.map +0 -1
- package/dist/chunk-LX4XX6W7.js.map +0 -1
- package/dist/chunk-LZHMNOED.js.map +0 -1
- package/dist/chunk-MW4BCIZC.mjs.map +0 -1
- package/dist/chunk-OCR5DS4C.mjs.map +0 -1
- package/dist/chunk-OLHGZXN3.mjs.map +0 -1
- package/dist/chunk-OPPF3326.js.map +0 -1
- package/dist/chunk-QAT2RWAO.mjs.map +0 -1
- package/dist/chunk-QU5OT4DF.js.map +0 -1
- package/dist/chunk-T5OZHYVM.mjs.map +0 -1
- package/dist/chunk-TFQF2HDO.mjs.map +0 -1
- package/dist/chunk-TOC5FSHP.js.map +0 -1
- package/dist/chunk-TV3VKRJK.mjs.map +0 -1
- package/dist/chunk-UOFTHYIH.js.map +0 -1
- package/dist/chunk-VRTRSEEH.mjs.map +0 -1
- package/dist/chunk-ZI25QCHD.mjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkUIYKZ73N_js = require('../../chunk-UIYKZ73N.js');
|
|
4
|
-
var
|
|
4
|
+
var chunk25OFOKNF_js = require('../../chunk-25OFOKNF.js');
|
|
5
5
|
require('../../chunk-DGUM43GV.js');
|
|
6
6
|
var XLSX = require('xlsx');
|
|
7
7
|
var pgCore = require('drizzle-orm/pg-core');
|
|
@@ -27,7 +27,7 @@ function _interopNamespace(e) {
|
|
|
27
27
|
|
|
28
28
|
var XLSX__namespace = /*#__PURE__*/_interopNamespace(XLSX);
|
|
29
29
|
|
|
30
|
-
var logger =
|
|
30
|
+
var logger = chunk25OFOKNF_js.createLogger("UniversalExportService");
|
|
31
31
|
var DEFAULT_CONFIG = {
|
|
32
32
|
defaultFormat: "csv",
|
|
33
33
|
defaultDelimiter: ",",
|
|
@@ -67,12 +67,12 @@ var DEFAULT_FORMATTERS = {
|
|
|
67
67
|
// 货币格式化
|
|
68
68
|
currency: (value) => {
|
|
69
69
|
if (value === null || value === void 0) return "";
|
|
70
|
-
return
|
|
70
|
+
return "\xA5" + Number(value).toFixed(2);
|
|
71
71
|
},
|
|
72
72
|
// 百分比格式化
|
|
73
73
|
percentage: (value) => {
|
|
74
74
|
if (value === null || value === void 0) return "";
|
|
75
|
-
return
|
|
75
|
+
return (Number(value) * 100).toFixed(2) + "%";
|
|
76
76
|
},
|
|
77
77
|
// 布尔值格式化
|
|
78
78
|
boolean: (value) => {
|
|
@@ -128,7 +128,7 @@ var UniversalExportService = class {
|
|
|
128
128
|
return newConfig;
|
|
129
129
|
} catch (error) {
|
|
130
130
|
throw new chunkUIYKZ73N_js.ExportConfigError(
|
|
131
|
-
|
|
131
|
+
"\u521B\u5EFA\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: " + (error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF"),
|
|
132
132
|
{ originalError: error }
|
|
133
133
|
);
|
|
134
134
|
}
|
|
@@ -149,7 +149,7 @@ var UniversalExportService = class {
|
|
|
149
149
|
async updateConfig(configId, updates) {
|
|
150
150
|
const existing = await this.getConfig(configId);
|
|
151
151
|
if (!existing) {
|
|
152
|
-
throw new chunkUIYKZ73N_js.ExportConfigError(
|
|
152
|
+
throw new chunkUIYKZ73N_js.ExportConfigError("\u914D\u7F6E\u4E0D\u5B58\u5728: " + configId);
|
|
153
153
|
}
|
|
154
154
|
const updatedConfig = {
|
|
155
155
|
...existing,
|
|
@@ -175,7 +175,7 @@ var UniversalExportService = class {
|
|
|
175
175
|
async deleteConfig(configId) {
|
|
176
176
|
const existing = await this.getConfig(configId);
|
|
177
177
|
if (!existing) {
|
|
178
|
-
throw new chunkUIYKZ73N_js.ExportConfigError(
|
|
178
|
+
throw new chunkUIYKZ73N_js.ExportConfigError("\u914D\u7F6E\u4E0D\u5B58\u5728: " + configId);
|
|
179
179
|
}
|
|
180
180
|
this.configCache.delete(configId);
|
|
181
181
|
this.emitEvent({
|
|
@@ -225,7 +225,7 @@ var UniversalExportService = class {
|
|
|
225
225
|
logger.info("\u{1F50D} [UniversalExportService] \u4ECE\u7F13\u5B58\u83B7\u53D6\u914D\u7F6E:", request.configId);
|
|
226
226
|
const cachedConfig = await this.getConfig(request.configId);
|
|
227
227
|
if (!cachedConfig) {
|
|
228
|
-
throw new chunkUIYKZ73N_js.ExportConfigError(
|
|
228
|
+
throw new chunkUIYKZ73N_js.ExportConfigError("\u5BFC\u51FA\u914D\u7F6E\u4E0D\u5B58\u5728: " + request.configId);
|
|
229
229
|
}
|
|
230
230
|
config = cachedConfig;
|
|
231
231
|
logger.info("\u2705 [UniversalExportService] \u6210\u529F\u83B7\u53D6\u7F13\u5B58\u914D\u7F6E:", {
|
|
@@ -381,7 +381,7 @@ var UniversalExportService = class {
|
|
|
381
381
|
* 生成唯一ID
|
|
382
382
|
*/
|
|
383
383
|
generateId() {
|
|
384
|
-
return
|
|
384
|
+
return "export_" + Date.now() + "_" + Math.random().toString(36).substr(2, 9);
|
|
385
385
|
}
|
|
386
386
|
/**
|
|
387
387
|
* 验证配置
|
|
@@ -430,7 +430,7 @@ var UniversalExportService = class {
|
|
|
430
430
|
} catch (error) {
|
|
431
431
|
console.error("\u274C [UniversalExportService] \u83B7\u53D6\u6570\u636E\u5931\u8D25:", error);
|
|
432
432
|
throw new chunkUIYKZ73N_js.ExportDataError(
|
|
433
|
-
|
|
433
|
+
"\u83B7\u53D6\u6570\u636E\u5931\u8D25: " + (error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF"),
|
|
434
434
|
{ originalError: error }
|
|
435
435
|
);
|
|
436
436
|
}
|
|
@@ -573,7 +573,7 @@ var UniversalExportService = class {
|
|
|
573
573
|
const filteredFields = fields.filter((field) => {
|
|
574
574
|
const forceKeepFields = ["pickupMethod", "notes", "adminNotes"];
|
|
575
575
|
if (forceKeepFields.includes(field.key)) {
|
|
576
|
-
logger.info(
|
|
576
|
+
logger.info('\u{1F527} [UniversalExportService] \u5F3A\u5236\u4FDD\u7559\u5B57\u6BB5 "' + field.key + '" (' + field.label + ")");
|
|
577
577
|
return true;
|
|
578
578
|
}
|
|
579
579
|
const hasValue = data.some((item) => {
|
|
@@ -582,7 +582,7 @@ var UniversalExportService = class {
|
|
|
582
582
|
});
|
|
583
583
|
if (!hasValue) {
|
|
584
584
|
logger.info(
|
|
585
|
-
|
|
585
|
+
'\u{1F50D} [UniversalExportService] \u5B57\u6BB5 "' + field.key + '" (' + field.label + ") \u88AB\u8FC7\u6EE4\u6389 - \u6240\u6709\u884C\u90FD\u4E3A\u7A7A\u503C"
|
|
586
586
|
);
|
|
587
587
|
}
|
|
588
588
|
return hasValue;
|
|
@@ -667,11 +667,11 @@ var UniversalExportService = class {
|
|
|
667
667
|
break;
|
|
668
668
|
default:
|
|
669
669
|
console.error("\u274C [UniversalExportService] \u4E0D\u652F\u6301\u7684\u683C\u5F0F:", config.format);
|
|
670
|
-
throw new chunkUIYKZ73N_js.ExportFileError(
|
|
670
|
+
throw new chunkUIYKZ73N_js.ExportFileError("\u4E0D\u652F\u6301\u7684\u5BFC\u51FA\u683C\u5F0F: " + config.format);
|
|
671
671
|
}
|
|
672
672
|
const blob = new Blob([content], { type: this.getMimeType(config.format) });
|
|
673
673
|
if (blob.size > this.config.maxFileSize) {
|
|
674
|
-
throw new chunkUIYKZ73N_js.ExportFileError(
|
|
674
|
+
throw new chunkUIYKZ73N_js.ExportFileError("\u6587\u4EF6\u5927\u5C0F\u8D85\u8FC7\u9650\u5236: " + blob.size + " > " + this.config.maxFileSize);
|
|
675
675
|
}
|
|
676
676
|
const endTime = /* @__PURE__ */ new Date();
|
|
677
677
|
const duration = endTime.getTime() - startTime.getTime();
|
|
@@ -693,7 +693,7 @@ var UniversalExportService = class {
|
|
|
693
693
|
};
|
|
694
694
|
} catch (error) {
|
|
695
695
|
throw new chunkUIYKZ73N_js.ExportFileError(
|
|
696
|
-
|
|
696
|
+
"\u751F\u6210\u6587\u4EF6\u5931\u8D25: " + (error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF"),
|
|
697
697
|
{ originalError: error }
|
|
698
698
|
);
|
|
699
699
|
}
|
|
@@ -781,7 +781,7 @@ var UniversalExportService = class {
|
|
|
781
781
|
*/
|
|
782
782
|
escapeCSVField(value) {
|
|
783
783
|
if (value.includes(",") || value.includes('"') || value.includes("\n")) {
|
|
784
|
-
return
|
|
784
|
+
return '"' + value.replace(/"/g, '""') + '"';
|
|
785
785
|
}
|
|
786
786
|
return value;
|
|
787
787
|
}
|
|
@@ -792,7 +792,7 @@ var UniversalExportService = class {
|
|
|
792
792
|
const now = /* @__PURE__ */ new Date();
|
|
793
793
|
const dateStr = now.toISOString().split("T")[0];
|
|
794
794
|
const timeStr = now.toTimeString().split(" ")[0].replace(/:/g, "-");
|
|
795
|
-
return template.replace("{date}", dateStr).replace("{time}", timeStr).replace("{timestamp}", now.getTime().toString()) +
|
|
795
|
+
return template.replace("{date}", dateStr).replace("{time}", timeStr).replace("{timestamp}", now.getTime().toString()) + "." + extension;
|
|
796
796
|
}
|
|
797
797
|
/**
|
|
798
798
|
* 获取MIME类型
|
|
@@ -922,7 +922,7 @@ var UniversalExportService = class {
|
|
|
922
922
|
const header = { __isGroupHeader: true };
|
|
923
923
|
groupingFields.forEach((field, index) => {
|
|
924
924
|
const value = groupValues[index] === "__NULL__" ? "" : groupValues[index];
|
|
925
|
-
const template = field.groupHeaderTemplate ||
|
|
925
|
+
const template = field.groupHeaderTemplate || field.label + ": {value}";
|
|
926
926
|
header[field.key] = template.replace("{value}", value);
|
|
927
927
|
});
|
|
928
928
|
return header;
|
|
@@ -956,8 +956,8 @@ var UniversalExportService = class {
|
|
|
956
956
|
firstItem.__groupSize = groupItems.length;
|
|
957
957
|
firstItem.__isGroupFirst = true;
|
|
958
958
|
groupFields.forEach((field) => {
|
|
959
|
-
firstItem[
|
|
960
|
-
firstItem[
|
|
959
|
+
firstItem["__" + field.key + "_groupSize"] = groupItems.length;
|
|
960
|
+
firstItem["__" + field.key + "_isGroupFirst"] = true;
|
|
961
961
|
});
|
|
962
962
|
result.push(firstItem);
|
|
963
963
|
logger.info("\u{1F517} [UniversalExportService] \u5904\u7406\u591A\u5B57\u6BB5\u5408\u5E76\u6A21\u5F0F:", {
|
|
@@ -1100,7 +1100,7 @@ var UniversalExportService = class {
|
|
|
1100
1100
|
if (groupField.mergeCells) {
|
|
1101
1101
|
const fieldIndex = fields.findIndex((f) => f.key === groupField.key);
|
|
1102
1102
|
if (fieldIndex >= 0) {
|
|
1103
|
-
const groupSize = item[
|
|
1103
|
+
const groupSize = item["__" + groupField.key + "_groupSize"] || item.__groupSize;
|
|
1104
1104
|
const mergeRange = {
|
|
1105
1105
|
s: { r: currentRow, c: fieldIndex },
|
|
1106
1106
|
// 开始行列
|
|
@@ -1338,7 +1338,7 @@ function validateExportConfig(config) {
|
|
|
1338
1338
|
}
|
|
1339
1339
|
if (config.maxRows && config.maxRows > 1e6) {
|
|
1340
1340
|
console.warn(
|
|
1341
|
-
|
|
1341
|
+
"\u26A0\uFE0F Warning: maxRows (" + config.maxRows + `) is very large. Consider using pagination or streaming for better performance.`
|
|
1342
1342
|
);
|
|
1343
1343
|
}
|
|
1344
1344
|
}
|
|
@@ -1351,7 +1351,7 @@ function validateEnvironment(requiredVars) {
|
|
|
1351
1351
|
}
|
|
1352
1352
|
if (missing.length > 0) {
|
|
1353
1353
|
throw new ConfigValidationError(
|
|
1354
|
-
|
|
1354
|
+
"Missing required environment variables: " + missing.join(", "),
|
|
1355
1355
|
"environment"
|
|
1356
1356
|
);
|
|
1357
1357
|
}
|
|
@@ -1425,14 +1425,14 @@ function getNestedValue(obj, path) {
|
|
|
1425
1425
|
}
|
|
1426
1426
|
function escapeCsvValue(value) {
|
|
1427
1427
|
if (value.includes(",") || value.includes('"') || value.includes("\n")) {
|
|
1428
|
-
return
|
|
1428
|
+
return '"' + value.replace(/"/g, '""') + '"';
|
|
1429
1429
|
}
|
|
1430
1430
|
return value;
|
|
1431
1431
|
}
|
|
1432
1432
|
function generateUniqueFilename(prefix, extension) {
|
|
1433
1433
|
const timestamp2 = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, -5);
|
|
1434
1434
|
const random = Math.random().toString(36).substring(2, 8);
|
|
1435
|
-
return
|
|
1435
|
+
return prefix + "_" + timestamp2 + "_" + random + "." + extension;
|
|
1436
1436
|
}
|
|
1437
1437
|
function calculateProgress(processed, total) {
|
|
1438
1438
|
if (total === 0) return 0;
|
|
@@ -1446,7 +1446,7 @@ function estimateRemainingTime(processed, total, elapsedMs) {
|
|
|
1446
1446
|
}
|
|
1447
1447
|
var exportConfigs = pgCore.pgTable("ExportConfig", {
|
|
1448
1448
|
/** 主键ID */
|
|
1449
|
-
id: pgCore.text("id").primaryKey().$defaultFn(() =>
|
|
1449
|
+
id: pgCore.text("id").primaryKey().$defaultFn(() => "export_config_" + Date.now() + "_" + Math.random().toString(36).substr(2, 9)),
|
|
1450
1450
|
/** 配置名称 */
|
|
1451
1451
|
name: pgCore.text("name").notNull(),
|
|
1452
1452
|
/** 配置描述 */
|
|
@@ -1484,7 +1484,7 @@ var exportConfigs = pgCore.pgTable("ExportConfig", {
|
|
|
1484
1484
|
});
|
|
1485
1485
|
var exportHistory = pgCore.pgTable("ExportHistory", {
|
|
1486
1486
|
/** 主键ID */
|
|
1487
|
-
id: pgCore.text("id").primaryKey().$defaultFn(() =>
|
|
1487
|
+
id: pgCore.text("id").primaryKey().$defaultFn(() => "export_history_" + Date.now() + "_" + Math.random().toString(36).substr(2, 9)),
|
|
1488
1488
|
/** 关联的配置ID */
|
|
1489
1489
|
configId: pgCore.text("configId").notNull(),
|
|
1490
1490
|
/** 导出的文件名 */
|
|
@@ -1525,7 +1525,7 @@ var ExportConfigDatabaseService = class {
|
|
|
1525
1525
|
* 创建导出配置
|
|
1526
1526
|
*/
|
|
1527
1527
|
async createConfig(config) {
|
|
1528
|
-
const id =
|
|
1528
|
+
const id = "export_config_" + Date.now() + "_" + Math.random().toString(36).substr(2, 9);
|
|
1529
1529
|
const now = /* @__PURE__ */ new Date();
|
|
1530
1530
|
const [newConfig] = await this.db.insert(exportConfigs).values({
|
|
1531
1531
|
id,
|
|
@@ -1581,7 +1581,7 @@ var ExportHistoryDatabaseService = class {
|
|
|
1581
1581
|
* 创建导出历史记录
|
|
1582
1582
|
*/
|
|
1583
1583
|
async createHistory(history) {
|
|
1584
|
-
const id =
|
|
1584
|
+
const id = "export_history_" + Date.now() + "_" + Math.random().toString(36).substr(2, 9);
|
|
1585
1585
|
const [newHistory] = await this.db.insert(exportHistory).values({
|
|
1586
1586
|
id,
|
|
1587
1587
|
...history,
|