sa2kit 3.0.0 → 3.2.0

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 (980) hide show
  1. package/README.md +5 -5
  2. package/dist/AliyunOSSProvider-7IOT5U6M.js +15 -0
  3. package/dist/AliyunOSSProvider-7IOT5U6M.js.map +1 -0
  4. package/dist/AliyunOSSProvider-ZXZM7OQA.mjs +6 -0
  5. package/dist/AliyunOSSProvider-ZXZM7OQA.mjs.map +1 -0
  6. package/dist/LocalStorageProvider-KJKRCKBS.js +15 -0
  7. package/dist/LocalStorageProvider-KJKRCKBS.js.map +1 -0
  8. package/dist/LocalStorageProvider-O22465NY.mjs +6 -0
  9. package/dist/LocalStorageProvider-O22465NY.mjs.map +1 -0
  10. package/dist/chunk-2234T4A6.js +303 -0
  11. package/dist/chunk-2234T4A6.js.map +1 -0
  12. package/dist/chunk-36KGNXKW.js +16 -0
  13. package/dist/chunk-36KGNXKW.js.map +1 -0
  14. package/dist/chunk-375C7WL7.js +2695 -0
  15. package/dist/chunk-375C7WL7.js.map +1 -0
  16. package/dist/chunk-3J24Z4MB.js +991 -0
  17. package/dist/chunk-3J24Z4MB.js.map +1 -0
  18. package/dist/chunk-3QCATFQV.js +43 -0
  19. package/dist/chunk-3QCATFQV.js.map +1 -0
  20. package/dist/chunk-3R6JHA6D.js +120 -0
  21. package/dist/chunk-3R6JHA6D.js.map +1 -0
  22. package/dist/chunk-4OXKHV7J.js +43 -0
  23. package/dist/chunk-4OXKHV7J.js.map +1 -0
  24. package/dist/chunk-4PJM4752.js +4 -0
  25. package/dist/chunk-4PJM4752.js.map +1 -0
  26. package/dist/chunk-65JRVC3F.mjs +54 -0
  27. package/dist/chunk-65JRVC3F.mjs.map +1 -0
  28. package/dist/chunk-6HL54I2B.js +336 -0
  29. package/dist/chunk-6HL54I2B.js.map +1 -0
  30. package/dist/chunk-6V2MIQPF.mjs +77 -0
  31. package/dist/chunk-6V2MIQPF.mjs.map +1 -0
  32. package/dist/chunk-6YLCRWKM.mjs +8 -0
  33. package/dist/chunk-6YLCRWKM.mjs.map +1 -0
  34. package/dist/chunk-7CRU2Y5X.mjs +152 -0
  35. package/dist/chunk-7CRU2Y5X.mjs.map +1 -0
  36. package/dist/chunk-7PMT4L4I.js +324 -0
  37. package/dist/chunk-7PMT4L4I.js.map +1 -0
  38. package/dist/chunk-7VVZHFEM.js +88 -0
  39. package/dist/chunk-7VVZHFEM.js.map +1 -0
  40. package/dist/chunk-AWHGIKTQ.js +56 -0
  41. package/dist/chunk-AWHGIKTQ.js.map +1 -0
  42. package/dist/chunk-B3GYF6TY.js +37 -0
  43. package/dist/chunk-B3GYF6TY.js.map +1 -0
  44. package/dist/chunk-BDBJFOXM.mjs +14 -0
  45. package/dist/chunk-BDBJFOXM.mjs.map +1 -0
  46. package/dist/chunk-BTW3SWQN.mjs +25 -0
  47. package/dist/chunk-BTW3SWQN.mjs.map +1 -0
  48. package/dist/chunk-CHYSSZ4E.mjs +734 -0
  49. package/dist/chunk-CHYSSZ4E.mjs.map +1 -0
  50. package/dist/chunk-DO6QYAZV.mjs +298 -0
  51. package/dist/chunk-DO6QYAZV.mjs.map +1 -0
  52. package/dist/chunk-DTR53LQO.mjs +781 -0
  53. package/dist/chunk-DTR53LQO.mjs.map +1 -0
  54. package/dist/chunk-EI2S4XDG.mjs +89 -0
  55. package/dist/chunk-EI2S4XDG.mjs.map +1 -0
  56. package/dist/chunk-EOZHUI46.js +93 -0
  57. package/dist/chunk-EOZHUI46.js.map +1 -0
  58. package/dist/chunk-F2BZIU67.js +184 -0
  59. package/dist/chunk-F2BZIU67.js.map +1 -0
  60. package/dist/chunk-F2TEJSCP.js +756 -0
  61. package/dist/chunk-F2TEJSCP.js.map +1 -0
  62. package/dist/chunk-FCLS5R24.js +148 -0
  63. package/dist/chunk-FCLS5R24.js.map +1 -0
  64. package/dist/chunk-FUA6ZGMI.mjs +376 -0
  65. package/dist/chunk-FUA6ZGMI.mjs.map +1 -0
  66. package/dist/chunk-FY2X3LYR.mjs +3 -0
  67. package/dist/chunk-FY2X3LYR.mjs.map +1 -0
  68. package/dist/chunk-GS4SAW25.mjs +116 -0
  69. package/dist/chunk-GS4SAW25.mjs.map +1 -0
  70. package/dist/chunk-H56ICWUO.js +321 -0
  71. package/dist/chunk-H56ICWUO.js.map +1 -0
  72. package/dist/chunk-HG34SGMN.mjs +546 -0
  73. package/dist/chunk-HG34SGMN.mjs.map +1 -0
  74. package/dist/chunk-HL4H2HF6.js +279 -0
  75. package/dist/chunk-HL4H2HF6.js.map +1 -0
  76. package/dist/chunk-IJIQUMAK.mjs +272 -0
  77. package/dist/chunk-IJIQUMAK.mjs.map +1 -0
  78. package/dist/chunk-KEZFTDZT.mjs +559 -0
  79. package/dist/chunk-KEZFTDZT.mjs.map +1 -0
  80. package/dist/chunk-KHOVC2KL.js +144 -0
  81. package/dist/chunk-KHOVC2KL.js.map +1 -0
  82. package/dist/chunk-KRBSTLKC.js +6154 -0
  83. package/dist/chunk-KRBSTLKC.js.map +1 -0
  84. package/dist/chunk-KVYHCGRY.js +2011 -0
  85. package/dist/chunk-KVYHCGRY.js.map +1 -0
  86. package/dist/chunk-LZ5YTMMP.mjs +41 -0
  87. package/dist/chunk-LZ5YTMMP.mjs.map +1 -0
  88. package/dist/chunk-MJ6XJGAL.js +1551 -0
  89. package/dist/chunk-MJ6XJGAL.js.map +1 -0
  90. package/dist/chunk-MKLXCV4Z.mjs +1510 -0
  91. package/dist/chunk-MKLXCV4Z.mjs.map +1 -0
  92. package/dist/chunk-MMDSZIXD.mjs +286 -0
  93. package/dist/chunk-MMDSZIXD.mjs.map +1 -0
  94. package/dist/chunk-N2O3OX5Y.mjs +243 -0
  95. package/dist/chunk-N2O3OX5Y.mjs.map +1 -0
  96. package/dist/chunk-O6NNSPWD.mjs +35 -0
  97. package/dist/chunk-O6NNSPWD.mjs.map +1 -0
  98. package/dist/chunk-OIRZXSYM.js +80 -0
  99. package/dist/chunk-OIRZXSYM.js.map +1 -0
  100. package/dist/chunk-P7JQRNBJ.mjs +76 -0
  101. package/dist/chunk-P7JQRNBJ.mjs.map +1 -0
  102. package/dist/chunk-PA4ELVGI.js +20 -0
  103. package/dist/chunk-PA4ELVGI.js.map +1 -0
  104. package/dist/chunk-PLIG5257.mjs +2613 -0
  105. package/dist/chunk-PLIG5257.mjs.map +1 -0
  106. package/dist/chunk-QIF4MG5V.mjs +283 -0
  107. package/dist/chunk-QIF4MG5V.mjs.map +1 -0
  108. package/dist/chunk-RHECN4E2.mjs +6077 -0
  109. package/dist/chunk-RHECN4E2.mjs.map +1 -0
  110. package/dist/chunk-RHHTZTIN.mjs +314 -0
  111. package/dist/chunk-RHHTZTIN.mjs.map +1 -0
  112. package/dist/chunk-RRQ2X26Z.js +106 -0
  113. package/dist/chunk-RRQ2X26Z.js.map +1 -0
  114. package/dist/chunk-RST2T54Y.js +836 -0
  115. package/dist/chunk-RST2T54Y.js.map +1 -0
  116. package/dist/chunk-RVNQI6BI.js +249 -0
  117. package/dist/chunk-RVNQI6BI.js.map +1 -0
  118. package/dist/chunk-S3K4LTRI.mjs +226 -0
  119. package/dist/chunk-S3K4LTRI.mjs.map +1 -0
  120. package/dist/chunk-SWZ5XNF6.js +158 -0
  121. package/dist/chunk-SWZ5XNF6.js.map +1 -0
  122. package/dist/chunk-TNJ6LYX7.mjs +18 -0
  123. package/dist/chunk-TNJ6LYX7.mjs.map +1 -0
  124. package/dist/chunk-U7HNBCBS.js +207 -0
  125. package/dist/chunk-U7HNBCBS.js.map +1 -0
  126. package/dist/chunk-UJS3YSD3.mjs +37 -0
  127. package/dist/chunk-UJS3YSD3.mjs.map +1 -0
  128. package/dist/chunk-UJUWDF7M.mjs +336 -0
  129. package/dist/chunk-UJUWDF7M.mjs.map +1 -0
  130. package/dist/chunk-UR5NENGE.js +78 -0
  131. package/dist/chunk-UR5NENGE.js.map +1 -0
  132. package/dist/chunk-V7HGBDCB.mjs +135 -0
  133. package/dist/chunk-V7HGBDCB.mjs.map +1 -0
  134. package/dist/chunk-V7RLIZMN.js +90 -0
  135. package/dist/chunk-V7RLIZMN.js.map +1 -0
  136. package/dist/chunk-VCKXK6V5.js +345 -0
  137. package/dist/chunk-VCKXK6V5.js.map +1 -0
  138. package/dist/chunk-VIEXDTNF.mjs +100 -0
  139. package/dist/chunk-VIEXDTNF.mjs.map +1 -0
  140. package/dist/chunk-VN2DULIA.js +579 -0
  141. package/dist/chunk-VN2DULIA.js.map +1 -0
  142. package/dist/chunk-VNWMRUY6.js +168 -0
  143. package/dist/chunk-VNWMRUY6.js.map +1 -0
  144. package/dist/chunk-VYK4M2D6.mjs +177 -0
  145. package/dist/chunk-VYK4M2D6.mjs.map +1 -0
  146. package/dist/chunk-WB4H6ZUW.mjs +86 -0
  147. package/dist/chunk-WB4H6ZUW.mjs.map +1 -0
  148. package/dist/chunk-WM3AEJ2E.mjs +981 -0
  149. package/dist/chunk-WM3AEJ2E.mjs.map +1 -0
  150. package/dist/chunk-X5GINUGI.mjs +162 -0
  151. package/dist/chunk-X5GINUGI.mjs.map +1 -0
  152. package/dist/chunk-XB7GUEHZ.mjs +82 -0
  153. package/dist/chunk-XB7GUEHZ.mjs.map +1 -0
  154. package/dist/chunk-XE5RGZ3B.js +242 -0
  155. package/dist/chunk-XE5RGZ3B.js.map +1 -0
  156. package/dist/chunk-XNTIMVSL.mjs +193 -0
  157. package/dist/chunk-XNTIMVSL.mjs.map +1 -0
  158. package/dist/chunk-Y7WHUKJF.js +387 -0
  159. package/dist/chunk-Y7WHUKJF.js.map +1 -0
  160. package/dist/chunk-YIRPPMCN.mjs +1916 -0
  161. package/dist/chunk-YIRPPMCN.mjs.map +1 -0
  162. package/dist/chunk-YTGUIRRH.js +10 -0
  163. package/dist/chunk-YTGUIRRH.js.map +1 -0
  164. package/dist/chunk-Z2SNB5LJ.js +28 -0
  165. package/dist/chunk-Z2SNB5LJ.js.map +1 -0
  166. package/dist/chunk-ZOP7YIVX.js +552 -0
  167. package/dist/chunk-ZOP7YIVX.js.map +1 -0
  168. package/dist/chunk-ZUZLWHH5.mjs +146 -0
  169. package/dist/chunk-ZUZLWHH5.mjs.map +1 -0
  170. package/dist/common/ai/llm/core/index.d.mts +70 -0
  171. package/dist/common/ai/llm/core/index.d.ts +70 -0
  172. package/dist/common/ai/llm/core/index.js +54 -0
  173. package/dist/common/ai/llm/core/index.mjs +5 -0
  174. package/dist/common/ai/llm/electron/index.d.mts +6 -0
  175. package/dist/common/ai/llm/electron/index.d.ts +6 -0
  176. package/dist/common/ai/llm/electron/index.js +67 -0
  177. package/dist/common/ai/llm/electron/index.mjs +10 -0
  178. package/dist/common/ai/llm/index.d.mts +3 -0
  179. package/dist/common/ai/llm/index.d.ts +3 -0
  180. package/dist/common/ai/llm/index.js +54 -0
  181. package/dist/common/ai/llm/index.mjs +5 -0
  182. package/dist/common/ai/llm/miniapp/index.d.mts +6 -0
  183. package/dist/common/ai/llm/miniapp/index.d.ts +6 -0
  184. package/dist/common/ai/llm/miniapp/index.js +59 -0
  185. package/dist/common/ai/llm/miniapp/index.mjs +6 -0
  186. package/dist/common/ai/llm/rn/index.d.mts +6 -0
  187. package/dist/common/ai/llm/rn/index.d.ts +6 -0
  188. package/dist/common/ai/llm/rn/index.js +59 -0
  189. package/dist/common/ai/llm/rn/index.mjs +6 -0
  190. package/dist/common/ai/llm/ui/electron/index.d.mts +5 -0
  191. package/dist/common/ai/llm/ui/electron/index.d.ts +5 -0
  192. package/dist/common/ai/llm/ui/electron/index.js +22 -0
  193. package/dist/common/ai/llm/ui/electron/index.mjs +9 -0
  194. package/dist/common/ai/llm/ui/miniapp/index.d.mts +9 -0
  195. package/dist/common/ai/llm/ui/miniapp/index.d.ts +9 -0
  196. package/dist/common/ai/llm/ui/miniapp/index.js +14 -0
  197. package/dist/common/ai/llm/ui/miniapp/index.mjs +5 -0
  198. package/dist/common/ai/llm/ui/rn/index.d.mts +9 -0
  199. package/dist/common/ai/llm/ui/rn/index.d.ts +9 -0
  200. package/dist/common/ai/llm/ui/rn/index.js +14 -0
  201. package/dist/common/ai/llm/ui/rn/index.mjs +5 -0
  202. package/dist/common/ai/llm/ui/web/index.d.mts +15 -0
  203. package/dist/common/ai/llm/ui/web/index.d.ts +15 -0
  204. package/dist/common/ai/llm/ui/web/index.js +21 -0
  205. package/dist/common/ai/llm/ui/web/index.mjs +8 -0
  206. package/dist/common/ai/llm/web/index.d.mts +6 -0
  207. package/dist/common/ai/llm/web/index.d.ts +6 -0
  208. package/dist/common/ai/llm/web/index.js +66 -0
  209. package/dist/common/ai/llm/web/index.mjs +9 -0
  210. package/dist/common/analytics/index.d.mts +2 -0
  211. package/dist/common/analytics/index.d.ts +2 -0
  212. package/dist/common/analytics/index.js +314 -0
  213. package/dist/common/analytics/index.mjs +5 -0
  214. package/dist/common/analytics/server/index.js +529 -0
  215. package/dist/common/analytics/server/index.js.map +1 -0
  216. package/dist/common/analytics/server/index.mjs +525 -0
  217. package/dist/common/analytics/server/index.mjs.map +1 -0
  218. package/dist/common/api/index.d.mts +3 -0
  219. package/dist/common/api/index.d.ts +3 -0
  220. package/dist/common/api/index.js +21 -0
  221. package/dist/common/api/index.mjs +4 -0
  222. package/dist/common/auth/client/index.d.mts +1 -31
  223. package/dist/common/auth/client/index.d.ts +1 -31
  224. package/dist/common/auth/client/index.js +2 -15
  225. package/dist/common/auth/client/index.mjs +1 -2
  226. package/dist/common/auth/components/index.d.mts +5 -239
  227. package/dist/common/auth/components/index.d.ts +5 -239
  228. package/dist/common/auth/components/index.js +878 -49
  229. package/dist/common/auth/components/index.js.map +1 -1
  230. package/dist/common/auth/components/index.mjs +871 -5
  231. package/dist/common/auth/components/index.mjs.map +1 -1
  232. package/dist/common/auth/hooks/index.d.mts +2 -29
  233. package/dist/common/auth/hooks/index.d.ts +2 -29
  234. package/dist/common/auth/hooks/index.js +2 -11
  235. package/dist/common/auth/hooks/index.mjs +1 -2
  236. package/dist/common/auth/index.d.mts +5 -9
  237. package/dist/common/auth/index.d.ts +5 -9
  238. package/dist/common/auth/index.js +5 -26
  239. package/dist/common/auth/index.mjs +3 -4
  240. package/dist/common/auth/rn/index.d.mts +1 -17
  241. package/dist/common/auth/rn/index.d.ts +1 -17
  242. package/dist/common/auth/rn/index.js +2 -34
  243. package/dist/common/auth/rn/index.js.map +1 -1
  244. package/dist/common/auth/rn/index.mjs +2 -31
  245. package/dist/common/auth/rn/index.mjs.map +1 -1
  246. package/dist/common/auth/server/index.d.mts +81 -2
  247. package/dist/common/auth/server/index.d.ts +81 -2
  248. package/dist/common/auth/server/index.js +128 -37
  249. package/dist/common/auth/server/index.js.map +1 -1
  250. package/dist/common/auth/server/index.mjs +124 -1
  251. package/dist/common/auth/server/index.mjs.map +1 -1
  252. package/dist/common/auth/services/index.js +12 -9
  253. package/dist/common/auth/services/index.js.map +1 -1
  254. package/dist/common/auth/services/index.mjs +10 -1
  255. package/dist/common/auth/services/index.mjs.map +1 -1
  256. package/dist/common/components/index.d.mts +4 -0
  257. package/dist/common/components/index.d.ts +4 -0
  258. package/dist/common/components/index.js +414 -0
  259. package/dist/common/components/index.mjs +9 -0
  260. package/dist/common/config/index.d.mts +1 -0
  261. package/dist/common/config/index.d.ts +1 -0
  262. package/dist/common/config/index.js +21 -0
  263. package/dist/common/config/index.mjs +4 -0
  264. package/dist/common/config/server/index.js +1177 -0
  265. package/dist/common/config/server/index.js.map +1 -0
  266. package/dist/common/config/server/index.mjs +1138 -0
  267. package/dist/common/config/server/index.mjs.map +1 -0
  268. package/dist/common/export/index.d.mts +2 -2
  269. package/dist/common/export/index.d.ts +2 -2
  270. package/dist/common/export/index.js +67 -67
  271. package/dist/common/export/index.mjs +3 -3
  272. package/dist/common/export/server/index.d.mts +2 -2
  273. package/dist/common/export/server/index.d.ts +2 -2
  274. package/dist/common/export/server/index.js +76 -48
  275. package/dist/common/export/server/index.mjs +3 -3
  276. package/dist/common/file/index.d.mts +2 -2
  277. package/dist/common/file/index.d.ts +2 -2
  278. package/dist/common/file/index.js +27 -27
  279. package/dist/common/file/index.mjs +5 -5
  280. package/dist/common/file/server/index.d.mts +2 -2
  281. package/dist/common/file/server/index.d.ts +2 -2
  282. package/dist/common/file/server/index.js +58 -50
  283. package/dist/common/file/server/index.mjs +8 -8
  284. package/dist/common/i18n/index.d.mts +2 -0
  285. package/dist/common/i18n/index.d.ts +2 -0
  286. package/dist/common/i18n/index.js +73 -0
  287. package/dist/common/i18n/index.mjs +4 -0
  288. package/dist/common/imageCrop/index.d.mts +2 -0
  289. package/dist/common/imageCrop/index.d.ts +2 -0
  290. package/dist/common/imageCrop/index.js +61 -0
  291. package/dist/common/imageCrop/index.mjs +4 -0
  292. package/dist/common/index.d.mts +17 -20
  293. package/dist/common/index.d.ts +17 -20
  294. package/dist/common/index.js +76 -70
  295. package/dist/common/index.mjs +27 -29
  296. package/dist/common/logger/index.d.mts +1 -1
  297. package/dist/common/logger/index.d.ts +1 -1
  298. package/dist/common/logger/index.js +6 -7
  299. package/dist/common/logger/index.mjs +1 -2
  300. package/dist/common/ossFile/index.d.mts +61 -0
  301. package/dist/common/ossFile/index.d.ts +61 -0
  302. package/dist/common/ossFile/index.js +96 -0
  303. package/dist/common/ossFile/index.mjs +7 -0
  304. package/dist/common/ossFile/server/index.d.mts +94 -0
  305. package/dist/common/ossFile/server/index.d.ts +94 -0
  306. package/dist/common/ossFile/server/index.js +221 -0
  307. package/dist/common/ossFile/server/index.mjs +12 -0
  308. package/dist/common/platform/index.js +8 -8
  309. package/dist/common/platform/index.mjs +4 -4
  310. package/dist/common/request/index.d.mts +1 -1
  311. package/dist/common/request/index.d.ts +1 -1
  312. package/dist/common/request/index.js +5 -7
  313. package/dist/common/request/index.mjs +2 -4
  314. package/dist/common/storage/index.d.mts +1 -1
  315. package/dist/common/storage/index.d.ts +1 -1
  316. package/dist/common/storage/index.js +17 -17
  317. package/dist/common/storage/index.mjs +5 -5
  318. package/dist/common/universalExport/index.d.mts +232 -0
  319. package/dist/common/universalExport/index.d.ts +232 -0
  320. package/dist/common/universalExport/index.js +178 -0
  321. package/dist/common/universalExport/index.mjs +5 -0
  322. package/dist/common/universalExport/server/index.d.mts +1189 -0
  323. package/dist/common/universalExport/server/index.d.ts +1189 -0
  324. package/dist/common/universalExport/server/index.js +151 -0
  325. package/dist/common/universalExport/server/index.mjs +6 -0
  326. package/dist/common/universalFile/index.d.mts +409 -0
  327. package/dist/common/universalFile/index.d.ts +409 -0
  328. package/dist/common/universalFile/index.js +1742 -0
  329. package/dist/common/universalFile/index.js.map +1 -0
  330. package/dist/common/universalFile/index.mjs +1497 -0
  331. package/dist/common/universalFile/index.mjs.map +1 -0
  332. package/dist/common/universalFile/server/index.d.mts +1064 -0
  333. package/dist/common/universalFile/server/index.d.ts +1064 -0
  334. package/dist/common/universalFile/server/index.js +311 -0
  335. package/dist/common/universalFile/server/index.mjs +10 -0
  336. package/dist/common/utils/index.d.mts +1 -1
  337. package/dist/common/utils/index.d.ts +1 -1
  338. package/dist/common/utils/index.js +11 -12
  339. package/dist/common/utils/index.mjs +2 -3
  340. package/dist/index-BRLygK4h.d.ts +67 -0
  341. package/dist/index-BWNK5mH2.d.ts +76 -0
  342. package/dist/index-Bd7cKF1j.d.mts +50 -0
  343. package/dist/index-BiCK6gg6.d.mts +210 -0
  344. package/dist/index-BiCK6gg6.d.ts +210 -0
  345. package/dist/index-C-P2yBTH.d.mts +76 -0
  346. package/dist/index-CT4K2z-O.d.ts +81 -0
  347. package/dist/index-D6RJTGce.d.mts +81 -0
  348. package/dist/index-DA7L9JlE.d.mts +159 -0
  349. package/dist/index-DRQxtCDw.d.ts +50 -0
  350. package/dist/index-DXVph21C.d.mts +201 -0
  351. package/dist/index-DXVph21C.d.ts +201 -0
  352. package/dist/index-DzyK789B.d.mts +67 -0
  353. package/dist/index-FVJZCEtm.d.mts +145 -0
  354. package/dist/index-FVJZCEtm.d.ts +145 -0
  355. package/dist/index-nD9vPCZT.d.ts +159 -0
  356. package/dist/index-nOmIv2BG.d.mts +559 -0
  357. package/dist/index-nOmIv2BG.d.ts +559 -0
  358. package/dist/path-Bzc7hj1N.d.ts +45 -0
  359. package/dist/path-DN_65vhO.d.mts +45 -0
  360. package/dist/utils-Dm3O1rAa.d.mts +366 -0
  361. package/dist/utils-Dm3O1rAa.d.ts +366 -0
  362. package/package.json +293 -348
  363. package/dist/AliyunOSSProvider-4GRL2FJB.js +0 -15
  364. package/dist/AliyunOSSProvider-4GRL2FJB.js.map +0 -1
  365. package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs +0 -6
  366. package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs.map +0 -1
  367. package/dist/CollisionBalls-BpHufX3H.d.mts +0 -41
  368. package/dist/CollisionBalls-BpHufX3H.d.ts +0 -41
  369. package/dist/ConfigService-BxK06xP6.d.mts +0 -262
  370. package/dist/ConfigService-BxK06xP6.d.ts +0 -262
  371. package/dist/LocalStorageProvider-J5RHV37G.mjs +0 -6
  372. package/dist/LocalStorageProvider-J5RHV37G.mjs.map +0 -1
  373. package/dist/LocalStorageProvider-PFA2DMIJ.js +0 -15
  374. package/dist/LocalStorageProvider-PFA2DMIJ.js.map +0 -1
  375. package/dist/UniversalFileService-CC4d3wkc.d.ts +0 -139
  376. package/dist/UniversalFileService-CzAE_G4V.d.mts +0 -139
  377. package/dist/ai/llm/core/index.d.mts +0 -70
  378. package/dist/ai/llm/core/index.d.ts +0 -70
  379. package/dist/ai/llm/core/index.js +0 -54
  380. package/dist/ai/llm/core/index.mjs +0 -5
  381. package/dist/ai/llm/electron/index.d.mts +0 -6
  382. package/dist/ai/llm/electron/index.d.ts +0 -6
  383. package/dist/ai/llm/electron/index.js +0 -66
  384. package/dist/ai/llm/electron/index.mjs +0 -9
  385. package/dist/ai/llm/index.d.mts +0 -3
  386. package/dist/ai/llm/index.d.ts +0 -3
  387. package/dist/ai/llm/index.js +0 -54
  388. package/dist/ai/llm/index.mjs +0 -5
  389. package/dist/ai/llm/miniapp/index.d.mts +0 -6
  390. package/dist/ai/llm/miniapp/index.d.ts +0 -6
  391. package/dist/ai/llm/miniapp/index.js +0 -59
  392. package/dist/ai/llm/miniapp/index.mjs +0 -6
  393. package/dist/ai/llm/rn/index.d.mts +0 -6
  394. package/dist/ai/llm/rn/index.d.ts +0 -6
  395. package/dist/ai/llm/rn/index.js +0 -59
  396. package/dist/ai/llm/rn/index.mjs +0 -6
  397. package/dist/ai/llm/ui/electron/index.d.mts +0 -5
  398. package/dist/ai/llm/ui/electron/index.d.ts +0 -5
  399. package/dist/ai/llm/ui/electron/index.js +0 -21
  400. package/dist/ai/llm/ui/electron/index.mjs +0 -8
  401. package/dist/ai/llm/ui/miniapp/index.d.mts +0 -9
  402. package/dist/ai/llm/ui/miniapp/index.d.ts +0 -9
  403. package/dist/ai/llm/ui/miniapp/index.js +0 -14
  404. package/dist/ai/llm/ui/miniapp/index.mjs +0 -5
  405. package/dist/ai/llm/ui/rn/index.d.mts +0 -9
  406. package/dist/ai/llm/ui/rn/index.d.ts +0 -9
  407. package/dist/ai/llm/ui/rn/index.js +0 -14
  408. package/dist/ai/llm/ui/rn/index.mjs +0 -5
  409. package/dist/ai/llm/ui/web/index.d.mts +0 -15
  410. package/dist/ai/llm/ui/web/index.d.ts +0 -15
  411. package/dist/ai/llm/ui/web/index.js +0 -20
  412. package/dist/ai/llm/ui/web/index.mjs +0 -7
  413. package/dist/ai/llm/web/index.d.mts +0 -6
  414. package/dist/ai/llm/web/index.d.ts +0 -6
  415. package/dist/ai/llm/web/index.js +0 -65
  416. package/dist/ai/llm/web/index.mjs +0 -8
  417. package/dist/analytics/index.d.mts +0 -2
  418. package/dist/analytics/index.d.ts +0 -2
  419. package/dist/analytics/index.js +0 -314
  420. package/dist/analytics/index.mjs +0 -5
  421. package/dist/analytics/server/index.js +0 -529
  422. package/dist/analytics/server/index.js.map +0 -1
  423. package/dist/analytics/server/index.mjs +0 -525
  424. package/dist/analytics/server/index.mjs.map +0 -1
  425. package/dist/api/index.d.mts +0 -3
  426. package/dist/api/index.d.ts +0 -3
  427. package/dist/api/index.js +0 -21
  428. package/dist/api/index.mjs +0 -4
  429. package/dist/audioDetection/index.d.mts +0 -449
  430. package/dist/audioDetection/index.d.ts +0 -449
  431. package/dist/audioDetection/index.js +0 -1244
  432. package/dist/audioDetection/index.js.map +0 -1
  433. package/dist/audioDetection/index.mjs +0 -1227
  434. package/dist/audioDetection/index.mjs.map +0 -1
  435. package/dist/auth/client/index.d.mts +0 -13
  436. package/dist/auth/client/index.d.ts +0 -13
  437. package/dist/auth/client/index.js +0 -26
  438. package/dist/auth/client/index.mjs +0 -5
  439. package/dist/auth/components/index.d.mts +0 -10
  440. package/dist/auth/components/index.d.ts +0 -10
  441. package/dist/auth/components/index.js +0 -70
  442. package/dist/auth/components/index.mjs +0 -9
  443. package/dist/auth/hooks/index.d.mts +0 -13
  444. package/dist/auth/hooks/index.d.ts +0 -13
  445. package/dist/auth/hooks/index.js +0 -28
  446. package/dist/auth/hooks/index.mjs +0 -7
  447. package/dist/auth/index.d.mts +0 -21
  448. package/dist/auth/index.d.ts +0 -21
  449. package/dist/auth/index.js +0 -112
  450. package/dist/auth/index.mjs +0 -11
  451. package/dist/auth/rn/index.d.mts +0 -3133
  452. package/dist/auth/rn/index.d.ts +0 -3133
  453. package/dist/auth/rn/index.js +0 -684
  454. package/dist/auth/rn/index.js.map +0 -1
  455. package/dist/auth/rn/index.mjs +0 -663
  456. package/dist/auth/rn/index.mjs.map +0 -1
  457. package/dist/auth/schema/index.d.mts +0 -4
  458. package/dist/auth/schema/index.d.ts +0 -4
  459. package/dist/auth/schema/index.js +0 -49
  460. package/dist/auth/schema/index.mjs +0 -4
  461. package/dist/auth/services/index.d.mts +0 -1
  462. package/dist/auth/services/index.d.ts +0 -1
  463. package/dist/auth/services/index.js +0 -17
  464. package/dist/auth/services/index.mjs +0 -4
  465. package/dist/base-api-client-BpmcQt4Q.d.ts +0 -103
  466. package/dist/base-api-client-CFIhZK4C.d.mts +0 -277
  467. package/dist/base-api-client-CFIhZK4C.d.ts +0 -277
  468. package/dist/base-api-client-DXLsq2yz.d.mts +0 -103
  469. package/dist/boothVaultService-Cn4WPhjg.d.mts +0 -83
  470. package/dist/boothVaultService-Cn4WPhjg.d.ts +0 -83
  471. package/dist/business/index.d.mts +0 -2
  472. package/dist/business/index.d.ts +0 -2
  473. package/dist/business/index.js +0 -581
  474. package/dist/business/index.js.map +0 -1
  475. package/dist/business/index.mjs +0 -575
  476. package/dist/business/index.mjs.map +0 -1
  477. package/dist/calendar/index.d.mts +0 -1325
  478. package/dist/calendar/index.d.ts +0 -1325
  479. package/dist/calendar/index.js +0 -5964
  480. package/dist/calendar/index.js.map +0 -1
  481. package/dist/calendar/index.mjs +0 -5878
  482. package/dist/calendar/index.mjs.map +0 -1
  483. package/dist/calendar/routes/index.d.mts +0 -191
  484. package/dist/calendar/routes/index.d.ts +0 -191
  485. package/dist/calendar/routes/index.js +0 -844
  486. package/dist/calendar/routes/index.js.map +0 -1
  487. package/dist/calendar/routes/index.mjs +0 -826
  488. package/dist/calendar/routes/index.mjs.map +0 -1
  489. package/dist/chunk-25OFOKNF.js +0 -171
  490. package/dist/chunk-25OFOKNF.js.map +0 -1
  491. package/dist/chunk-2Y7BKFKZ.js +0 -37
  492. package/dist/chunk-2Y7BKFKZ.js.map +0 -1
  493. package/dist/chunk-3DXPQ4YV.mjs +0 -165
  494. package/dist/chunk-3DXPQ4YV.mjs.map +0 -1
  495. package/dist/chunk-3FRAIS4T.mjs +0 -35
  496. package/dist/chunk-3FRAIS4T.mjs.map +0 -1
  497. package/dist/chunk-3NHAT7D4.mjs +0 -361
  498. package/dist/chunk-3NHAT7D4.mjs.map +0 -1
  499. package/dist/chunk-3Z43XGA4.mjs +0 -54
  500. package/dist/chunk-3Z43XGA4.mjs.map +0 -1
  501. package/dist/chunk-4FDUURSD.js +0 -22
  502. package/dist/chunk-4FDUURSD.js.map +0 -1
  503. package/dist/chunk-4WBCWJSN.js +0 -836
  504. package/dist/chunk-4WBCWJSN.js.map +0 -1
  505. package/dist/chunk-5GBDDXYL.mjs +0 -23
  506. package/dist/chunk-5GBDDXYL.mjs.map +0 -1
  507. package/dist/chunk-5USIS3UM.js +0 -4
  508. package/dist/chunk-5USIS3UM.js.map +0 -1
  509. package/dist/chunk-7E3J7VAD.mjs +0 -3
  510. package/dist/chunk-7E3J7VAD.mjs.map +0 -1
  511. package/dist/chunk-ACUFEDVQ.js +0 -345
  512. package/dist/chunk-ACUFEDVQ.js.map +0 -1
  513. package/dist/chunk-AQPU2AXH.js +0 -756
  514. package/dist/chunk-AQPU2AXH.js.map +0 -1
  515. package/dist/chunk-ATUCZXJY.js +0 -80
  516. package/dist/chunk-ATUCZXJY.js.map +0 -1
  517. package/dist/chunk-B3CZ3HXJ.mjs +0 -126
  518. package/dist/chunk-B3CZ3HXJ.mjs.map +0 -1
  519. package/dist/chunk-BCE6RUZV.js +0 -2695
  520. package/dist/chunk-BCE6RUZV.js.map +0 -1
  521. package/dist/chunk-BIHYZA67.mjs +0 -2613
  522. package/dist/chunk-BIHYZA67.mjs.map +0 -1
  523. package/dist/chunk-C6KV7VTZ.mjs +0 -152
  524. package/dist/chunk-C6KV7VTZ.mjs.map +0 -1
  525. package/dist/chunk-CAYOQDBR.js +0 -78
  526. package/dist/chunk-CAYOQDBR.js.map +0 -1
  527. package/dist/chunk-CIVO4R6N.mjs +0 -37
  528. package/dist/chunk-CIVO4R6N.mjs.map +0 -1
  529. package/dist/chunk-CX2GHCAI.mjs +0 -217
  530. package/dist/chunk-CX2GHCAI.mjs.map +0 -1
  531. package/dist/chunk-DIF5VRL3.mjs +0 -73
  532. package/dist/chunk-DIF5VRL3.mjs.map +0 -1
  533. package/dist/chunk-FCEBAWN6.js +0 -18
  534. package/dist/chunk-FCEBAWN6.js.map +0 -1
  535. package/dist/chunk-FHIE5MTC.mjs +0 -541
  536. package/dist/chunk-FHIE5MTC.mjs.map +0 -1
  537. package/dist/chunk-FHLTPXAR.js +0 -56
  538. package/dist/chunk-FHLTPXAR.js.map +0 -1
  539. package/dist/chunk-FIUBFREP.mjs +0 -298
  540. package/dist/chunk-FIUBFREP.mjs.map +0 -1
  541. package/dist/chunk-FOQEQWX5.js +0 -4
  542. package/dist/chunk-FOQEQWX5.js.map +0 -1
  543. package/dist/chunk-FXQOXLDE.js +0 -120
  544. package/dist/chunk-FXQOXLDE.js.map +0 -1
  545. package/dist/chunk-G4NFB2QA.mjs +0 -212
  546. package/dist/chunk-G4NFB2QA.mjs.map +0 -1
  547. package/dist/chunk-G5HJGXGC.mjs +0 -39
  548. package/dist/chunk-G5HJGXGC.mjs.map +0 -1
  549. package/dist/chunk-G6HXNQ2U.mjs +0 -336
  550. package/dist/chunk-G6HXNQ2U.mjs.map +0 -1
  551. package/dist/chunk-G6NSKJMH.js +0 -106
  552. package/dist/chunk-G6NSKJMH.js.map +0 -1
  553. package/dist/chunk-G7UBMCUT.mjs +0 -41
  554. package/dist/chunk-G7UBMCUT.mjs.map +0 -1
  555. package/dist/chunk-GQZHGSRR.js +0 -44
  556. package/dist/chunk-GQZHGSRR.js.map +0 -1
  557. package/dist/chunk-GS7XLKET.js +0 -41
  558. package/dist/chunk-GS7XLKET.js.map +0 -1
  559. package/dist/chunk-GWNBVGDT.mjs +0 -1232
  560. package/dist/chunk-GWNBVGDT.mjs.map +0 -1
  561. package/dist/chunk-HDMIOOZY.mjs +0 -546
  562. package/dist/chunk-HDMIOOZY.mjs.map +0 -1
  563. package/dist/chunk-HJ6MH7J7.js +0 -552
  564. package/dist/chunk-HJ6MH7J7.js.map +0 -1
  565. package/dist/chunk-HJZHQW5R.mjs +0 -146
  566. package/dist/chunk-HJZHQW5R.mjs.map +0 -1
  567. package/dist/chunk-I5ZPEDNR.mjs +0 -734
  568. package/dist/chunk-I5ZPEDNR.mjs.map +0 -1
  569. package/dist/chunk-IBWDBBX5.mjs +0 -16
  570. package/dist/chunk-IBWDBBX5.mjs.map +0 -1
  571. package/dist/chunk-J77KR2EV.mjs +0 -193
  572. package/dist/chunk-J77KR2EV.mjs.map +0 -1
  573. package/dist/chunk-KH6RQ4J5.js +0 -28
  574. package/dist/chunk-KH6RQ4J5.js.map +0 -1
  575. package/dist/chunk-KQ643L7Z.js +0 -144
  576. package/dist/chunk-KQ643L7Z.js.map +0 -1
  577. package/dist/chunk-LFB5EIIM.mjs +0 -31
  578. package/dist/chunk-LFB5EIIM.mjs.map +0 -1
  579. package/dist/chunk-LHJKLUM7.mjs +0 -18
  580. package/dist/chunk-LHJKLUM7.mjs.map +0 -1
  581. package/dist/chunk-MBANGIG3.mjs +0 -781
  582. package/dist/chunk-MBANGIG3.mjs.map +0 -1
  583. package/dist/chunk-MWSAH7ZG.mjs +0 -42
  584. package/dist/chunk-MWSAH7ZG.mjs.map +0 -1
  585. package/dist/chunk-MZOGYD4N.mjs +0 -186
  586. package/dist/chunk-MZOGYD4N.mjs.map +0 -1
  587. package/dist/chunk-NCRP2YHY.mjs +0 -1598
  588. package/dist/chunk-NCRP2YHY.mjs.map +0 -1
  589. package/dist/chunk-NDGHXVGS.js +0 -25
  590. package/dist/chunk-NDGHXVGS.js.map +0 -1
  591. package/dist/chunk-NDPO5OMC.js +0 -563
  592. package/dist/chunk-NDPO5OMC.js.map +0 -1
  593. package/dist/chunk-PBI7FKMB.js +0 -43
  594. package/dist/chunk-PBI7FKMB.js.map +0 -1
  595. package/dist/chunk-Q5EDCKQA.js +0 -336
  596. package/dist/chunk-Q5EDCKQA.js.map +0 -1
  597. package/dist/chunk-Q5VFBPMG.mjs +0 -76
  598. package/dist/chunk-Q5VFBPMG.mjs.map +0 -1
  599. package/dist/chunk-QDUBO567.js +0 -1148
  600. package/dist/chunk-QDUBO567.js.map +0 -1
  601. package/dist/chunk-QP5N3ER6.js +0 -18
  602. package/dist/chunk-QP5N3ER6.js.map +0 -1
  603. package/dist/chunk-QXAOXBVB.mjs +0 -135
  604. package/dist/chunk-QXAOXBVB.mjs.map +0 -1
  605. package/dist/chunk-R2DXTE2L.js +0 -249
  606. package/dist/chunk-R2DXTE2L.js.map +0 -1
  607. package/dist/chunk-RJP2BRJD.mjs +0 -6077
  608. package/dist/chunk-RJP2BRJD.mjs.map +0 -1
  609. package/dist/chunk-RTD2WHQQ.mjs +0 -16
  610. package/dist/chunk-RTD2WHQQ.mjs.map +0 -1
  611. package/dist/chunk-RWCD2CAD.mjs +0 -1132
  612. package/dist/chunk-RWCD2CAD.mjs.map +0 -1
  613. package/dist/chunk-S37OK2QG.js +0 -216
  614. package/dist/chunk-S37OK2QG.js.map +0 -1
  615. package/dist/chunk-S3PUP7N4.js +0 -20
  616. package/dist/chunk-S3PUP7N4.js.map +0 -1
  617. package/dist/chunk-S6YSGVWD.js +0 -224
  618. package/dist/chunk-S6YSGVWD.js.map +0 -1
  619. package/dist/chunk-S732H246.js +0 -6154
  620. package/dist/chunk-S732H246.js.map +0 -1
  621. package/dist/chunk-SFDJNKWC.js +0 -22
  622. package/dist/chunk-SFDJNKWC.js.map +0 -1
  623. package/dist/chunk-SKFEJPMJ.mjs +0 -226
  624. package/dist/chunk-SKFEJPMJ.mjs.map +0 -1
  625. package/dist/chunk-SLKOEYFH.js +0 -303
  626. package/dist/chunk-SLKOEYFH.js.map +0 -1
  627. package/dist/chunk-TC5YU6A4.mjs +0 -243
  628. package/dist/chunk-TC5YU6A4.mjs.map +0 -1
  629. package/dist/chunk-TXMX6PZR.js +0 -190
  630. package/dist/chunk-TXMX6PZR.js.map +0 -1
  631. package/dist/chunk-UCOE6SET.js +0 -148
  632. package/dist/chunk-UCOE6SET.js.map +0 -1
  633. package/dist/chunk-UIYKZ73N.js +0 -36
  634. package/dist/chunk-UIYKZ73N.js.map +0 -1
  635. package/dist/chunk-V7EVKD5G.mjs +0 -116
  636. package/dist/chunk-V7EVKD5G.mjs.map +0 -1
  637. package/dist/chunk-VHN7PF5I.js +0 -20
  638. package/dist/chunk-VHN7PF5I.js.map +0 -1
  639. package/dist/chunk-VMTEDX5H.js +0 -1275
  640. package/dist/chunk-VMTEDX5H.js.map +0 -1
  641. package/dist/chunk-VRN76M56.mjs +0 -3
  642. package/dist/chunk-VRN76M56.mjs.map +0 -1
  643. package/dist/chunk-VXFUXZN5.mjs +0 -20
  644. package/dist/chunk-VXFUXZN5.mjs.map +0 -1
  645. package/dist/chunk-WEEXCPSE.mjs +0 -86
  646. package/dist/chunk-WEEXCPSE.mjs.map +0 -1
  647. package/dist/chunk-WW4GE6CZ.js +0 -1647
  648. package/dist/chunk-WW4GE6CZ.js.map +0 -1
  649. package/dist/chunk-WZDTNDYR.js +0 -207
  650. package/dist/chunk-WZDTNDYR.js.map +0 -1
  651. package/dist/chunk-XBZIS3MV.mjs +0 -13
  652. package/dist/chunk-XBZIS3MV.mjs.map +0 -1
  653. package/dist/chunk-XFOZ56FB.mjs +0 -20
  654. package/dist/chunk-XFOZ56FB.mjs.map +0 -1
  655. package/dist/chunk-XJ7ZAGC5.js +0 -88
  656. package/dist/chunk-XJ7ZAGC5.js.map +0 -1
  657. package/dist/chunk-XUS5ACKR.mjs +0 -100
  658. package/dist/chunk-XUS5ACKR.mjs.map +0 -1
  659. package/dist/chunk-YOTQG4NP.mjs +0 -314
  660. package/dist/chunk-YOTQG4NP.mjs.map +0 -1
  661. package/dist/chunk-Z23HAXHL.js +0 -136
  662. package/dist/chunk-Z23HAXHL.js.map +0 -1
  663. package/dist/chunk-ZGVB35L2.mjs +0 -25
  664. package/dist/chunk-ZGVB35L2.mjs.map +0 -1
  665. package/dist/chunk-ZLYPALF3.js +0 -242
  666. package/dist/chunk-ZLYPALF3.js.map +0 -1
  667. package/dist/chunk-ZM2SZJTZ.js +0 -158
  668. package/dist/chunk-ZM2SZJTZ.js.map +0 -1
  669. package/dist/chunk-ZRAW3HXA.js +0 -43
  670. package/dist/chunk-ZRAW3HXA.js.map +0 -1
  671. package/dist/chunk-ZWQJSZEY.js +0 -371
  672. package/dist/chunk-ZWQJSZEY.js.map +0 -1
  673. package/dist/components/index.d.mts +0 -405
  674. package/dist/components/index.d.ts +0 -405
  675. package/dist/components/index.js +0 -2516
  676. package/dist/components/index.js.map +0 -1
  677. package/dist/components/index.mjs +0 -2396
  678. package/dist/components/index.mjs.map +0 -1
  679. package/dist/config/index.d.mts +0 -1
  680. package/dist/config/index.d.ts +0 -1
  681. package/dist/config/index.js +0 -21
  682. package/dist/config/index.mjs +0 -4
  683. package/dist/config/server/index.js +0 -1177
  684. package/dist/config/server/index.js.map +0 -1
  685. package/dist/config/server/index.mjs +0 -1138
  686. package/dist/config/server/index.mjs.map +0 -1
  687. package/dist/drizzle-schema-BNhqj2AZ.d.mts +0 -1114
  688. package/dist/drizzle-schema-BNhqj2AZ.d.ts +0 -1114
  689. package/dist/festivalCard/index.d.mts +0 -76
  690. package/dist/festivalCard/index.d.ts +0 -76
  691. package/dist/festivalCard/index.js +0 -1492
  692. package/dist/festivalCard/index.js.map +0 -1
  693. package/dist/festivalCard/index.mjs +0 -1475
  694. package/dist/festivalCard/index.mjs.map +0 -1
  695. package/dist/festivalCard/routes/index.d.mts +0 -42
  696. package/dist/festivalCard/routes/index.d.ts +0 -42
  697. package/dist/festivalCard/routes/index.js +0 -361
  698. package/dist/festivalCard/routes/index.js.map +0 -1
  699. package/dist/festivalCard/routes/index.mjs +0 -356
  700. package/dist/festivalCard/routes/index.mjs.map +0 -1
  701. package/dist/festivalCard/server/index.d.mts +0 -120
  702. package/dist/festivalCard/server/index.d.ts +0 -120
  703. package/dist/festivalCard/server/index.js +0 -272
  704. package/dist/festivalCard/server/index.js.map +0 -1
  705. package/dist/festivalCard/server/index.mjs +0 -265
  706. package/dist/festivalCard/server/index.mjs.map +0 -1
  707. package/dist/festivalCardService-B3GsnNpV.d.ts +0 -13
  708. package/dist/festivalCardService-CWhrLNE9.d.mts +0 -13
  709. package/dist/i18n/index.d.mts +0 -2
  710. package/dist/i18n/index.d.ts +0 -2
  711. package/dist/i18n/index.js +0 -73
  712. package/dist/i18n/index.mjs +0 -4
  713. package/dist/imageCrop/index.d.mts +0 -165
  714. package/dist/imageCrop/index.d.ts +0 -165
  715. package/dist/imageCrop/index.js +0 -560
  716. package/dist/imageCrop/index.js.map +0 -1
  717. package/dist/imageCrop/index.mjs +0 -541
  718. package/dist/imageCrop/index.mjs.map +0 -1
  719. package/dist/index-2G9Dxjvt.d.ts +0 -81
  720. package/dist/index-BcjDRcKp.d.mts +0 -40
  721. package/dist/index-Bjem5rWn.d.mts +0 -17
  722. package/dist/index-BlpXrrTy.d.ts +0 -40
  723. package/dist/index-C5U-2hJq.d.ts +0 -23
  724. package/dist/index-CYuUB8aF.d.mts +0 -67
  725. package/dist/index-CifSBBP2.d.ts +0 -17
  726. package/dist/index-D0K4ehme.d.mts +0 -20
  727. package/dist/index-DLnfKN-a.d.mts +0 -23
  728. package/dist/index-DSel44Ke.d.mts +0 -93
  729. package/dist/index-DSel44Ke.d.ts +0 -93
  730. package/dist/index-DZ5iJtNO.d.mts +0 -102
  731. package/dist/index-DZ5iJtNO.d.ts +0 -102
  732. package/dist/index-Da7qdkgW.d.ts +0 -20
  733. package/dist/index-DrPcMJPc.d.mts +0 -250
  734. package/dist/index-DrPcMJPc.d.ts +0 -250
  735. package/dist/index-WrR57hKT.d.ts +0 -67
  736. package/dist/index-oLUvfqT8.d.ts +0 -20
  737. package/dist/index-pe38RDgC.d.mts +0 -20
  738. package/dist/index-qcOvRVuN.d.mts +0 -81
  739. package/dist/index.d.mts +0 -11590
  740. package/dist/index.d.ts +0 -11590
  741. package/dist/index.js +0 -17679
  742. package/dist/index.js.map +0 -1
  743. package/dist/index.mjs +0 -17403
  744. package/dist/index.mjs.map +0 -1
  745. package/dist/logger/index.d.mts +0 -125
  746. package/dist/logger/index.d.ts +0 -125
  747. package/dist/logger/index.js +0 -29
  748. package/dist/logger/index.mjs +0 -4
  749. package/dist/mikuContest/ui/web/index.d.mts +0 -2
  750. package/dist/mikuContest/ui/web/index.d.ts +0 -2
  751. package/dist/mikuContest/ui/web/index.js +0 -353
  752. package/dist/mikuContest/ui/web/index.js.map +0 -1
  753. package/dist/mikuContest/ui/web/index.mjs +0 -343
  754. package/dist/mikuContest/ui/web/index.mjs.map +0 -1
  755. package/dist/mikuFireworks3D/index.d.mts +0 -268
  756. package/dist/mikuFireworks3D/index.d.ts +0 -268
  757. package/dist/mikuFireworks3D/index.js +0 -1267
  758. package/dist/mikuFireworks3D/index.js.map +0 -1
  759. package/dist/mikuFireworks3D/index.mjs +0 -1228
  760. package/dist/mikuFireworks3D/index.mjs.map +0 -1
  761. package/dist/mikuFusionGame/index.d.mts +0 -117
  762. package/dist/mikuFusionGame/index.d.ts +0 -117
  763. package/dist/mikuFusionGame/index.js +0 -1208
  764. package/dist/mikuFusionGame/index.js.map +0 -1
  765. package/dist/mikuFusionGame/index.mjs +0 -1195
  766. package/dist/mikuFusionGame/index.mjs.map +0 -1
  767. package/dist/mmd/admin/index.d.mts +0 -487
  768. package/dist/mmd/admin/index.d.ts +0 -487
  769. package/dist/mmd/admin/index.js +0 -1058
  770. package/dist/mmd/admin/index.js.map +0 -1
  771. package/dist/mmd/admin/index.mjs +0 -1027
  772. package/dist/mmd/admin/index.mjs.map +0 -1
  773. package/dist/mmd/index.d.mts +0 -2467
  774. package/dist/mmd/index.d.ts +0 -2467
  775. package/dist/mmd/index.js +0 -10119
  776. package/dist/mmd/index.js.map +0 -1
  777. package/dist/mmd/index.mjs +0 -10028
  778. package/dist/mmd/index.mjs.map +0 -1
  779. package/dist/mmd/server/index.d.mts +0 -139
  780. package/dist/mmd/server/index.d.ts +0 -139
  781. package/dist/mmd/server/index.js +0 -424
  782. package/dist/mmd/server/index.js.map +0 -1
  783. package/dist/mmd/server/index.mjs +0 -404
  784. package/dist/mmd/server/index.mjs.map +0 -1
  785. package/dist/music/index.d.mts +0 -74
  786. package/dist/music/index.d.ts +0 -74
  787. package/dist/music/index.js +0 -830
  788. package/dist/music/index.js.map +0 -1
  789. package/dist/music/index.mjs +0 -809
  790. package/dist/music/index.mjs.map +0 -1
  791. package/dist/music/server/index.d.mts +0 -1
  792. package/dist/music/server/index.d.ts +0 -1
  793. package/dist/music/server/index.js +0 -194
  794. package/dist/music/server/index.js.map +0 -1
  795. package/dist/music/server/index.mjs +0 -182
  796. package/dist/music/server/index.mjs.map +0 -1
  797. package/dist/navigation/index.d.mts +0 -93
  798. package/dist/navigation/index.d.ts +0 -93
  799. package/dist/navigation/index.js +0 -453
  800. package/dist/navigation/index.js.map +0 -1
  801. package/dist/navigation/index.mjs +0 -443
  802. package/dist/navigation/index.mjs.map +0 -1
  803. package/dist/ossFile/index.d.mts +0 -61
  804. package/dist/ossFile/index.d.ts +0 -61
  805. package/dist/ossFile/index.js +0 -96
  806. package/dist/ossFile/index.js.map +0 -1
  807. package/dist/ossFile/index.mjs +0 -7
  808. package/dist/ossFile/index.mjs.map +0 -1
  809. package/dist/ossFile/server/index.d.mts +0 -94
  810. package/dist/ossFile/server/index.d.ts +0 -94
  811. package/dist/ossFile/server/index.js +0 -213
  812. package/dist/ossFile/server/index.js.map +0 -1
  813. package/dist/ossFile/server/index.mjs +0 -12
  814. package/dist/ossFile/server/index.mjs.map +0 -1
  815. package/dist/path-DkaHQSyW.d.mts +0 -41
  816. package/dist/path-qjVnH8qU.d.ts +0 -41
  817. package/dist/portfolio/index.d.mts +0 -66
  818. package/dist/portfolio/index.d.ts +0 -66
  819. package/dist/portfolio/index.js +0 -736
  820. package/dist/portfolio/index.js.map +0 -1
  821. package/dist/portfolio/index.mjs +0 -724
  822. package/dist/portfolio/index.mjs.map +0 -1
  823. package/dist/qqbot/server/index.d.mts +0 -216
  824. package/dist/qqbot/server/index.d.ts +0 -216
  825. package/dist/qqbot/server/index.js +0 -394
  826. package/dist/qqbot/server/index.js.map +0 -1
  827. package/dist/qqbot/server/index.mjs +0 -385
  828. package/dist/qqbot/server/index.mjs.map +0 -1
  829. package/dist/qqbot/ui/web/index.d.mts +0 -10
  830. package/dist/qqbot/ui/web/index.d.ts +0 -10
  831. package/dist/qqbot/ui/web/index.js +0 -105
  832. package/dist/qqbot/ui/web/index.js.map +0 -1
  833. package/dist/qqbot/ui/web/index.mjs +0 -99
  834. package/dist/qqbot/ui/web/index.mjs.map +0 -1
  835. package/dist/request/index.d.mts +0 -59
  836. package/dist/request/index.d.ts +0 -59
  837. package/dist/request/index.js +0 -23
  838. package/dist/request/index.js.map +0 -1
  839. package/dist/request/index.mjs +0 -6
  840. package/dist/request/index.mjs.map +0 -1
  841. package/dist/screenReceiver/index.d.mts +0 -86
  842. package/dist/screenReceiver/index.d.ts +0 -86
  843. package/dist/screenReceiver/index.js +0 -281
  844. package/dist/screenReceiver/index.js.map +0 -1
  845. package/dist/screenReceiver/index.mjs +0 -273
  846. package/dist/screenReceiver/index.mjs.map +0 -1
  847. package/dist/session-BCXvGCnm.d.mts +0 -81
  848. package/dist/session-BCXvGCnm.d.ts +0 -81
  849. package/dist/storage/index.d.mts +0 -136
  850. package/dist/storage/index.d.ts +0 -136
  851. package/dist/storage/index.js +0 -48
  852. package/dist/storage/index.js.map +0 -1
  853. package/dist/storage/index.mjs +0 -7
  854. package/dist/storage/index.mjs.map +0 -1
  855. package/dist/testYourself/admin/index.d.mts +0 -58
  856. package/dist/testYourself/admin/index.d.ts +0 -58
  857. package/dist/testYourself/admin/index.js +0 -1009
  858. package/dist/testYourself/admin/index.js.map +0 -1
  859. package/dist/testYourself/admin/index.mjs +0 -1002
  860. package/dist/testYourself/admin/index.mjs.map +0 -1
  861. package/dist/testYourself/index.d.mts +0 -53
  862. package/dist/testYourself/index.d.ts +0 -53
  863. package/dist/testYourself/index.js +0 -2551
  864. package/dist/testYourself/index.js.map +0 -1
  865. package/dist/testYourself/index.mjs +0 -2531
  866. package/dist/testYourself/index.mjs.map +0 -1
  867. package/dist/testYourself/server/index.d.mts +0 -1029
  868. package/dist/testYourself/server/index.d.ts +0 -1029
  869. package/dist/testYourself/server/index.js +0 -825
  870. package/dist/testYourself/server/index.js.map +0 -1
  871. package/dist/testYourself/server/index.mjs +0 -816
  872. package/dist/testYourself/server/index.mjs.map +0 -1
  873. package/dist/types-3ujSNAXb.d.mts +0 -286
  874. package/dist/types-3ujSNAXb.d.ts +0 -286
  875. package/dist/types-B6B210gX.d.mts +0 -270
  876. package/dist/types-B6B210gX.d.ts +0 -270
  877. package/dist/types-Bdnte5EN.d.mts +0 -292
  878. package/dist/types-C_W_CoUD.d.ts +0 -99
  879. package/dist/types-Cs0CLvrH.d.mts +0 -70
  880. package/dist/types-Cs0CLvrH.d.ts +0 -70
  881. package/dist/types-DCRvasyH.d.mts +0 -99
  882. package/dist/types-HorDyIRv.d.mts +0 -303
  883. package/dist/types-HorDyIRv.d.ts +0 -303
  884. package/dist/types-_rFX1atk.d.ts +0 -292
  885. package/dist/types.legacy-J-j-_ig_.d.mts +0 -25
  886. package/dist/types.legacy-J-j-_ig_.d.ts +0 -25
  887. package/dist/universalExport/index.d.mts +0 -312
  888. package/dist/universalExport/index.d.ts +0 -312
  889. package/dist/universalExport/index.js +0 -178
  890. package/dist/universalExport/index.js.map +0 -1
  891. package/dist/universalExport/index.mjs +0 -5
  892. package/dist/universalExport/index.mjs.map +0 -1
  893. package/dist/universalExport/server/index.d.mts +0 -1270
  894. package/dist/universalExport/server/index.d.ts +0 -1270
  895. package/dist/universalExport/server/index.js +0 -123
  896. package/dist/universalExport/server/index.js.map +0 -1
  897. package/dist/universalExport/server/index.mjs +0 -6
  898. package/dist/universalExport/server/index.mjs.map +0 -1
  899. package/dist/universalFile/index.d.mts +0 -409
  900. package/dist/universalFile/index.d.ts +0 -409
  901. package/dist/universalFile/index.js +0 -1742
  902. package/dist/universalFile/index.js.map +0 -1
  903. package/dist/universalFile/index.mjs +0 -1497
  904. package/dist/universalFile/index.mjs.map +0 -1
  905. package/dist/universalFile/server/index.d.mts +0 -1064
  906. package/dist/universalFile/server/index.d.ts +0 -1064
  907. package/dist/universalFile/server/index.js +0 -311
  908. package/dist/universalFile/server/index.js.map +0 -1
  909. package/dist/universalFile/server/index.mjs +0 -10
  910. package/dist/universalFile/server/index.mjs.map +0 -1
  911. package/dist/utils/index.d.mts +0 -192
  912. package/dist/utils/index.d.ts +0 -192
  913. package/dist/utils/index.js +0 -46
  914. package/dist/utils/index.js.map +0 -1
  915. package/dist/utils/index.mjs +0 -5
  916. package/dist/utils/index.mjs.map +0 -1
  917. package/dist/vocaloidBooth/index.d.mts +0 -64
  918. package/dist/vocaloidBooth/index.d.ts +0 -64
  919. package/dist/vocaloidBooth/index.js +0 -376
  920. package/dist/vocaloidBooth/index.js.map +0 -1
  921. package/dist/vocaloidBooth/index.mjs +0 -362
  922. package/dist/vocaloidBooth/index.mjs.map +0 -1
  923. package/dist/vocaloidBooth/server/index.d.mts +0 -111
  924. package/dist/vocaloidBooth/server/index.d.ts +0 -111
  925. package/dist/vocaloidBooth/server/index.js +0 -247
  926. package/dist/vocaloidBooth/server/index.js.map +0 -1
  927. package/dist/vocaloidBooth/server/index.mjs +0 -237
  928. package/dist/vocaloidBooth/server/index.mjs.map +0 -1
  929. package/dist/vocaloidBooth/web/index.d.mts +0 -3
  930. package/dist/vocaloidBooth/web/index.d.ts +0 -3
  931. package/dist/vocaloidBooth/web/index.js +0 -376
  932. package/dist/vocaloidBooth/web/index.js.map +0 -1
  933. package/dist/vocaloidBooth/web/index.mjs +0 -362
  934. package/dist/vocaloidBooth/web/index.mjs.map +0 -1
  935. /package/dist/{ai → common/ai}/llm/core/index.js.map +0 -0
  936. /package/dist/{ai → common/ai}/llm/core/index.mjs.map +0 -0
  937. /package/dist/{ai → common/ai}/llm/electron/index.js.map +0 -0
  938. /package/dist/{ai → common/ai}/llm/electron/index.mjs.map +0 -0
  939. /package/dist/{ai → common/ai}/llm/index.js.map +0 -0
  940. /package/dist/{ai → common/ai}/llm/index.mjs.map +0 -0
  941. /package/dist/{ai → common/ai}/llm/miniapp/index.js.map +0 -0
  942. /package/dist/{ai → common/ai}/llm/miniapp/index.mjs.map +0 -0
  943. /package/dist/{ai → common/ai}/llm/rn/index.js.map +0 -0
  944. /package/dist/{ai → common/ai}/llm/rn/index.mjs.map +0 -0
  945. /package/dist/{ai → common/ai}/llm/ui/electron/index.js.map +0 -0
  946. /package/dist/{ai → common/ai}/llm/ui/electron/index.mjs.map +0 -0
  947. /package/dist/{ai → common/ai}/llm/ui/miniapp/index.js.map +0 -0
  948. /package/dist/{ai → common/ai}/llm/ui/miniapp/index.mjs.map +0 -0
  949. /package/dist/{ai → common/ai}/llm/ui/rn/index.js.map +0 -0
  950. /package/dist/{ai → common/ai}/llm/ui/rn/index.mjs.map +0 -0
  951. /package/dist/{ai → common/ai}/llm/ui/web/index.js.map +0 -0
  952. /package/dist/{ai → common/ai}/llm/ui/web/index.mjs.map +0 -0
  953. /package/dist/{ai → common/ai}/llm/web/index.js.map +0 -0
  954. /package/dist/{ai → common/ai}/llm/web/index.mjs.map +0 -0
  955. /package/dist/{analytics → common/analytics}/index.js.map +0 -0
  956. /package/dist/{analytics → common/analytics}/index.mjs.map +0 -0
  957. /package/dist/{analytics → common/analytics}/server/index.d.mts +0 -0
  958. /package/dist/{analytics → common/analytics}/server/index.d.ts +0 -0
  959. /package/dist/{api → common/api}/index.js.map +0 -0
  960. /package/dist/{api → common/api}/index.mjs.map +0 -0
  961. /package/dist/{auth/client → common/components}/index.js.map +0 -0
  962. /package/dist/{auth/client → common/components}/index.mjs.map +0 -0
  963. /package/dist/{auth/components → common/config}/index.js.map +0 -0
  964. /package/dist/{auth/components → common/config}/index.mjs.map +0 -0
  965. /package/dist/{config → common/config}/server/index.d.mts +0 -0
  966. /package/dist/{config → common/config}/server/index.d.ts +0 -0
  967. /package/dist/{auth/hooks → common/i18n}/index.js.map +0 -0
  968. /package/dist/{auth/hooks → common/i18n}/index.mjs.map +0 -0
  969. /package/dist/{auth → common/imageCrop}/index.js.map +0 -0
  970. /package/dist/{auth → common/imageCrop}/index.mjs.map +0 -0
  971. /package/dist/{auth/schema → common/ossFile}/index.js.map +0 -0
  972. /package/dist/{auth/schema → common/ossFile}/index.mjs.map +0 -0
  973. /package/dist/{auth/services → common/ossFile/server}/index.js.map +0 -0
  974. /package/dist/{auth/services → common/ossFile/server}/index.mjs.map +0 -0
  975. /package/dist/{config → common/universalExport}/index.js.map +0 -0
  976. /package/dist/{config → common/universalExport}/index.mjs.map +0 -0
  977. /package/dist/{i18n → common/universalExport/server}/index.js.map +0 -0
  978. /package/dist/{i18n → common/universalExport/server}/index.mjs.map +0 -0
  979. /package/dist/{logger → common/universalFile/server}/index.js.map +0 -0
  980. /package/dist/{logger → common/universalFile/server}/index.mjs.map +0 -0
@@ -1,1647 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkUIYKZ73N_js = require('./chunk-UIYKZ73N.js');
4
- var chunk25OFOKNF_js = require('./chunk-25OFOKNF.js');
5
- var XLSX = require('xlsx');
6
- var pgCore = require('drizzle-orm/pg-core');
7
- var drizzleOrm = require('drizzle-orm');
8
-
9
- function _interopNamespace(e) {
10
- if (e && e.__esModule) return e;
11
- var n = Object.create(null);
12
- if (e) {
13
- Object.keys(e).forEach(function (k) {
14
- if (k !== 'default') {
15
- var d = Object.getOwnPropertyDescriptor(e, k);
16
- Object.defineProperty(n, k, d.get ? d : {
17
- enumerable: true,
18
- get: function () { return e[k]; }
19
- });
20
- }
21
- });
22
- }
23
- n.default = e;
24
- return Object.freeze(n);
25
- }
26
-
27
- var XLSX__namespace = /*#__PURE__*/_interopNamespace(XLSX);
28
-
29
- var logger = chunk25OFOKNF_js.createLogger("UniversalExportService");
30
- var DEFAULT_CONFIG = {
31
- defaultFormat: "csv",
32
- defaultDelimiter: ",",
33
- defaultEncoding: "utf-8",
34
- defaultAddBOM: true,
35
- maxFileSize: 100 * 1024 * 1024,
36
- // 100MB
37
- maxRowsLimit: 1e5,
38
- maxConcurrentExports: 5,
39
- exportTimeout: 3e5,
40
- // 5分钟
41
- cache: {
42
- configTTL: 3600,
43
- // 1小时
44
- resultTTL: 1800
45
- // 30分钟
46
- }
47
- };
48
- var DEFAULT_FORMATTERS = {
49
- // 日期格式化
50
- date: (value) => {
51
- if (!value) return "";
52
- const date = new Date(value);
53
- return date.toISOString().split("T")[0];
54
- },
55
- // 时间格式化
56
- datetime: (value) => {
57
- if (!value) return "";
58
- const date = new Date(value);
59
- return date.toLocaleString("zh-CN");
60
- },
61
- // 数字格式化
62
- number: (value) => {
63
- if (value === null || value === void 0) return "";
64
- return String(value);
65
- },
66
- // 货币格式化
67
- currency: (value) => {
68
- if (value === null || value === void 0) return "";
69
- return "\xA5" + Number(value).toFixed(2);
70
- },
71
- // 百分比格式化
72
- percentage: (value) => {
73
- if (value === null || value === void 0) return "";
74
- return (Number(value) * 100).toFixed(2) + "%";
75
- },
76
- // 布尔值格式化
77
- boolean: (value) => {
78
- if (value === null || value === void 0) return "";
79
- return value ? "\u662F" : "\u5426";
80
- },
81
- // 数组格式化
82
- array: (value) => {
83
- if (!Array.isArray(value)) return "";
84
- return value.join(", ");
85
- },
86
- // 对象格式化
87
- object: (value) => {
88
- if (!value || typeof value !== "object") return "";
89
- return JSON.stringify(value);
90
- }
91
- };
92
- var UniversalExportService = class {
93
- constructor(config, client) {
94
- this.eventListeners = /* @__PURE__ */ new Map();
95
- this.activeExports = /* @__PURE__ */ new Map();
96
- this.configCache = /* @__PURE__ */ new Map();
97
- this.resultCache = /* @__PURE__ */ new Map();
98
- this.config = { ...DEFAULT_CONFIG, ...config };
99
- this.client = client;
100
- }
101
- // ============= 配置管理 =============
102
- /**
103
- * 创建导出配置
104
- */
105
- async createConfig(config) {
106
- try {
107
- this.validateConfig({
108
- ...config,
109
- id: "temp",
110
- createdAt: /* @__PURE__ */ new Date(),
111
- updatedAt: /* @__PURE__ */ new Date()
112
- });
113
- if (!this.client) {
114
- throw new chunkUIYKZ73N_js.ExportConfigError("\u672A\u63D0\u4F9B\u5BFC\u51FA\u5BA2\u6237\u7AEF\u670D\u52A1", config);
115
- }
116
- const newConfig = await this.client.createConfig(config);
117
- this.configCache.set(newConfig.id, {
118
- config: newConfig,
119
- timestamp: Date.now()
120
- });
121
- this.emitEvent({
122
- type: "config:save",
123
- exportId: newConfig.id,
124
- timestamp: /* @__PURE__ */ new Date(),
125
- data: { config: newConfig }
126
- });
127
- return newConfig;
128
- } catch (error) {
129
- throw new chunkUIYKZ73N_js.ExportConfigError(
130
- "\u521B\u5EFA\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: " + (error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF"),
131
- { originalError: error }
132
- );
133
- }
134
- }
135
- /**
136
- * 获取导出配置
137
- */
138
- async getConfig(configId) {
139
- const cached = this.configCache.get(configId);
140
- if (cached && Date.now() - cached.timestamp < this.config.cache.configTTL * 1e3) {
141
- return cached.config;
142
- }
143
- return null;
144
- }
145
- /**
146
- * 更新导出配置
147
- */
148
- async updateConfig(configId, updates) {
149
- const existing = await this.getConfig(configId);
150
- if (!existing) {
151
- throw new chunkUIYKZ73N_js.ExportConfigError("\u914D\u7F6E\u4E0D\u5B58\u5728: " + configId);
152
- }
153
- const updatedConfig = {
154
- ...existing,
155
- ...updates,
156
- updatedAt: /* @__PURE__ */ new Date()
157
- };
158
- this.validateConfig(updatedConfig);
159
- this.configCache.set(configId, {
160
- config: updatedConfig,
161
- timestamp: Date.now()
162
- });
163
- this.emitEvent({
164
- type: "config:save",
165
- exportId: configId,
166
- timestamp: /* @__PURE__ */ new Date(),
167
- data: { config: updatedConfig }
168
- });
169
- return updatedConfig;
170
- }
171
- /**
172
- * 删除导出配置
173
- */
174
- async deleteConfig(configId) {
175
- const existing = await this.getConfig(configId);
176
- if (!existing) {
177
- throw new chunkUIYKZ73N_js.ExportConfigError("\u914D\u7F6E\u4E0D\u5B58\u5728: " + configId);
178
- }
179
- this.configCache.delete(configId);
180
- this.emitEvent({
181
- type: "config:delete",
182
- exportId: configId,
183
- timestamp: /* @__PURE__ */ new Date(),
184
- data: { configId }
185
- });
186
- }
187
- /**
188
- * 获取模块的配置列表
189
- */
190
- async getConfigsByModule(moduleId, businessId) {
191
- if (!this.client) {
192
- throw new chunkUIYKZ73N_js.ExportConfigError("\u672A\u63D0\u4F9B\u5BFC\u51FA\u5BA2\u6237\u7AEF\u670D\u52A1", { moduleId, businessId });
193
- }
194
- return await this.client.getConfigsByModule(moduleId, businessId);
195
- }
196
- // ============= 导出执行 =============
197
- /**
198
- * 执行导出
199
- */
200
- async export(request) {
201
- const exportId = this.generateId();
202
- const startTime = /* @__PURE__ */ new Date();
203
- logger.info("\u{1F680} [UniversalExportService] \u5F00\u59CB\u5BFC\u51FA:", {
204
- exportId,
205
- configId: request.configId,
206
- hasDataSource: !!request.dataSource,
207
- hasCallbacks: !!request.callbacks
208
- });
209
- try {
210
- let config;
211
- if (typeof request.configId === "object" && request.configId !== null) {
212
- config = request.configId;
213
- logger.info("\u{1F4CB} [UniversalExportService] \u4F7F\u7528\u76F4\u63A5\u4F20\u5165\u7684\u914D\u7F6E:", {
214
- configId: config.id,
215
- configName: config.name,
216
- format: config.format,
217
- fieldsCount: config.fields.length,
218
- hasGrouping: !!config.grouping,
219
- groupingEnabled: config.grouping?.enabled,
220
- groupingFieldsCount: config.grouping?.fields?.length || 0,
221
- groupingFields: config.grouping?.fields?.map((f) => ({ key: f.key, mergeCells: f.mergeCells })) || []
222
- });
223
- } else {
224
- logger.info("\u{1F50D} [UniversalExportService] \u4ECE\u7F13\u5B58\u83B7\u53D6\u914D\u7F6E:", request.configId);
225
- const cachedConfig = await this.getConfig(request.configId);
226
- if (!cachedConfig) {
227
- throw new chunkUIYKZ73N_js.ExportConfigError("\u5BFC\u51FA\u914D\u7F6E\u4E0D\u5B58\u5728: " + request.configId);
228
- }
229
- config = cachedConfig;
230
- logger.info("\u2705 [UniversalExportService] \u6210\u529F\u83B7\u53D6\u7F13\u5B58\u914D\u7F6E:", {
231
- configId: config.id,
232
- configName: config.name
233
- });
234
- }
235
- const progress = {
236
- exportId,
237
- status: "pending",
238
- progress: 0,
239
- processedRows: 0,
240
- totalRows: 0,
241
- startTime
242
- };
243
- this.activeExports.set(exportId, progress);
244
- this.emitEvent({
245
- type: "export:start",
246
- exportId,
247
- timestamp: startTime,
248
- data: { config, request }
249
- });
250
- if (request.callbacks?.onProgress) {
251
- logger.info("\u{1F4DE} [UniversalExportService] \u8C03\u7528 onProgress \u56DE\u8C03 - \u5F00\u59CB");
252
- request.callbacks.onProgress(progress);
253
- }
254
- logger.info("\u{1F4CA} [UniversalExportService] \u5F00\u59CB\u83B7\u53D6\u6570\u636E...");
255
- const data = await this.getData(request);
256
- logger.info("\u2705 [UniversalExportService] \u6570\u636E\u83B7\u53D6\u6210\u529F:", {
257
- dataLength: data.length,
258
- firstItem: data[0] ? Object.keys(data[0]) : [],
259
- sampleData: data.slice(0, 2)
260
- });
261
- progress.totalRows = data.length;
262
- progress.status = "processing";
263
- if (request.callbacks?.onProgress) {
264
- logger.info("\u{1F4DE} [UniversalExportService] \u8C03\u7528 onProgress \u56DE\u8C03 - \u6570\u636E\u5904\u7406");
265
- progress.progress = 30;
266
- request.callbacks.onProgress(progress);
267
- }
268
- logger.info("\u{1F504} [UniversalExportService] \u5F00\u59CB\u5904\u7406\u6570\u636E...");
269
- const processedData = await this.processData(data, request, config);
270
- logger.info("\u2705 [UniversalExportService] \u6570\u636E\u5904\u7406\u5B8C\u6210:", {
271
- originalLength: data.length,
272
- processedLength: processedData.length
273
- });
274
- if (request.callbacks?.onProgress) {
275
- logger.info("\u{1F4DE} [UniversalExportService] \u8C03\u7528 onProgress \u56DE\u8C03 - \u6570\u636E\u5B8C\u6210");
276
- progress.progress = 60;
277
- request.callbacks.onProgress(progress);
278
- }
279
- logger.info("\u{1F4C4} [UniversalExportService] \u5F00\u59CB\u751F\u6210\u6587\u4EF6...");
280
- const result = await this.generateFile(processedData, config, request, exportId);
281
- logger.info("\u2705 [UniversalExportService] \u6587\u4EF6\u751F\u6210\u6210\u529F:", {
282
- fileName: result.fileName,
283
- fileSize: result.fileSize,
284
- exportedRows: result.exportedRows
285
- });
286
- progress.status = "completed";
287
- progress.progress = 100;
288
- progress.processedRows = data.length;
289
- if (request.callbacks?.onSuccess) {
290
- logger.info("\u{1F4DE} [UniversalExportService] \u8C03\u7528 onSuccess \u56DE\u8C03");
291
- request.callbacks.onSuccess(result);
292
- }
293
- this.emitEvent({
294
- type: "export:complete",
295
- exportId,
296
- timestamp: /* @__PURE__ */ new Date(),
297
- data: { result }
298
- });
299
- this.resultCache.set(exportId, {
300
- result,
301
- timestamp: Date.now()
302
- });
303
- this.activeExports.delete(exportId);
304
- return result;
305
- } catch (error) {
306
- const errorObj = {
307
- code: "EXPORT_FAILED",
308
- message: error instanceof Error ? error.message : "\u5BFC\u51FA\u5931\u8D25",
309
- details: { originalError: error },
310
- timestamp: /* @__PURE__ */ new Date()
311
- };
312
- const progress = this.activeExports.get(exportId);
313
- if (progress) {
314
- progress.status = "failed";
315
- progress.error = errorObj.message;
316
- this.activeExports.delete(exportId);
317
- }
318
- if (request.callbacks?.onError) {
319
- logger.info("\u{1F4DE} [UniversalExportService] \u8C03\u7528 onError \u56DE\u8C03");
320
- request.callbacks.onError(errorObj);
321
- }
322
- this.emitEvent({
323
- type: "export:error",
324
- exportId,
325
- timestamp: /* @__PURE__ */ new Date(),
326
- error: errorObj.message,
327
- data: { error: errorObj }
328
- });
329
- throw error;
330
- }
331
- }
332
- /**
333
- * 获取导出进度
334
- */
335
- getExportProgress(exportId) {
336
- return this.activeExports.get(exportId) || null;
337
- }
338
- /**
339
- * 取消导出
340
- */
341
- cancelExport(exportId) {
342
- const progress = this.activeExports.get(exportId);
343
- if (!progress) {
344
- return false;
345
- }
346
- progress.status = "cancelled";
347
- this.activeExports.delete(exportId);
348
- this.emitEvent({
349
- type: "export:cancel",
350
- exportId,
351
- timestamp: /* @__PURE__ */ new Date(),
352
- data: { progress }
353
- });
354
- return true;
355
- }
356
- // ============= 事件管理 =============
357
- /**
358
- * 添加事件监听器
359
- */
360
- addEventListener(type, listener) {
361
- if (!this.eventListeners.has(type)) {
362
- this.eventListeners.set(type, []);
363
- }
364
- this.eventListeners.get(type).push(listener);
365
- }
366
- /**
367
- * 移除事件监听器
368
- */
369
- removeEventListener(type, listener) {
370
- const listeners = this.eventListeners.get(type);
371
- if (listeners) {
372
- const index = listeners.indexOf(listener);
373
- if (index > -1) {
374
- listeners.splice(index, 1);
375
- }
376
- }
377
- }
378
- // ============= 私有方法 =============
379
- /**
380
- * 生成唯一ID
381
- */
382
- generateId() {
383
- return "export_" + Date.now() + "_" + Math.random().toString(36).substr(2, 9);
384
- }
385
- /**
386
- * 验证配置
387
- */
388
- validateConfig(config) {
389
- if (!config.name || config.name.trim() === "") {
390
- throw new chunkUIYKZ73N_js.ExportConfigError("\u914D\u7F6E\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A");
391
- }
392
- if (!config.fields || config.fields.length === 0) {
393
- throw new chunkUIYKZ73N_js.ExportConfigError("\u81F3\u5C11\u9700\u8981\u5B9A\u4E49\u4E00\u4E2A\u5B57\u6BB5");
394
- }
395
- const enabledFields = config.fields.filter((f) => f.enabled);
396
- if (enabledFields.length === 0) {
397
- throw new chunkUIYKZ73N_js.ExportConfigError("\u81F3\u5C11\u9700\u8981\u542F\u7528\u4E00\u4E2A\u5B57\u6BB5");
398
- }
399
- const keys = config.fields.map((f) => f.key);
400
- const uniqueKeys = new Set(keys);
401
- if (keys.length !== uniqueKeys.size) {
402
- throw new chunkUIYKZ73N_js.ExportConfigError("\u5B57\u6BB5\u952E\u540D\u5FC5\u987B\u552F\u4E00");
403
- }
404
- }
405
- /**
406
- * 获取数据
407
- */
408
- async getData(request) {
409
- logger.info("\u{1F50D} [UniversalExportService] getData \u5F00\u59CB\u6267\u884C...");
410
- try {
411
- if (Array.isArray(request.dataSource)) {
412
- logger.info("\u{1F4E6} [UniversalExportService] \u4F7F\u7528\u76F4\u63A5\u4F20\u9012\u7684\u6570\u636E\u6570\u7EC4:", {
413
- length: request.dataSource.length
414
- });
415
- return request.dataSource;
416
- }
417
- if (typeof request.dataSource === "function") {
418
- logger.info("\u{1F4DE} [UniversalExportService] \u8C03\u7528\u6570\u636E\u6E90\u51FD\u6570...");
419
- const data = await request.dataSource();
420
- logger.info("\u2705 [UniversalExportService] \u6570\u636E\u6E90\u51FD\u6570\u6267\u884C\u6210\u529F:", {
421
- dataType: typeof data,
422
- isArray: Array.isArray(data),
423
- length: Array.isArray(data) ? data.length : "N/A"
424
- });
425
- return data;
426
- }
427
- console.error("\u274C [UniversalExportService] \u6570\u636E\u6E90\u7C7B\u578B\u4E0D\u652F\u6301:", typeof request.dataSource);
428
- throw new chunkUIYKZ73N_js.ExportDataError("\u4E0D\u652F\u6301\u7684\u6570\u636E\u6E90\u7C7B\u578B");
429
- } catch (error) {
430
- console.error("\u274C [UniversalExportService] \u83B7\u53D6\u6570\u636E\u5931\u8D25:", error);
431
- throw new chunkUIYKZ73N_js.ExportDataError(
432
- "\u83B7\u53D6\u6570\u636E\u5931\u8D25: " + (error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF"),
433
- { originalError: error }
434
- );
435
- }
436
- }
437
- /**
438
- * 处理数据
439
- */
440
- async processData(data, request, config) {
441
- logger.info("\u{1F504} [UniversalExportService] processData \u5F00\u59CB\u6267\u884C:", {
442
- dataLength: data.length,
443
- hasFilters: !!(request.filters && request.filters.length > 0),
444
- hasSortBy: !!(request.sortBy && request.sortBy.length > 0),
445
- hasPagination: !!request.pagination,
446
- hasGrouping: !!(config.grouping && config.grouping.enabled),
447
- maxRows: config.maxRows
448
- });
449
- logger.info("\u{1F50D} [UniversalExportService] \u8BE6\u7EC6\u5206\u7EC4\u914D\u7F6E\u68C0\u67E5:", {
450
- configGrouping: config.grouping,
451
- groupingExists: !!config.grouping,
452
- groupingEnabled: config.grouping?.enabled,
453
- groupingFields: config.grouping?.fields,
454
- groupingFieldsLength: config.grouping?.fields?.length
455
- });
456
- let processedData = [...data];
457
- if (request.filters && request.filters.length > 0) {
458
- logger.info("\u{1F50D} [UniversalExportService] \u5E94\u7528\u8FC7\u6EE4\u5668...");
459
- processedData = this.applyFilters(processedData, request.filters);
460
- logger.info("\u2705 [UniversalExportService] \u8FC7\u6EE4\u5668\u5E94\u7528\u5B8C\u6210:", {
461
- beforeLength: data.length,
462
- afterLength: processedData.length
463
- });
464
- }
465
- if (request.sortBy && request.sortBy.length > 0) {
466
- logger.info("\u{1F4CA} [UniversalExportService] \u5E94\u7528\u6392\u5E8F...");
467
- processedData = this.applySorting(processedData, request.sortBy);
468
- logger.info("\u2705 [UniversalExportService] \u6392\u5E8F\u5E94\u7528\u5B8C\u6210");
469
- }
470
- if (config.grouping && config.grouping.enabled) {
471
- logger.info("\u{1F4CA} [UniversalExportService] \u5E94\u7528\u5206\u7EC4...");
472
- processedData = this.applyGrouping(processedData, config.grouping);
473
- logger.info("\u2705 [UniversalExportService] \u5206\u7EC4\u5E94\u7528\u5B8C\u6210:", {
474
- groupsCount: this.countGroups(processedData),
475
- resultLength: processedData.length
476
- });
477
- }
478
- if (request.pagination) {
479
- logger.info("\u{1F4C4} [UniversalExportService] \u5E94\u7528\u5206\u9875...");
480
- const { page, pageSize } = request.pagination;
481
- const start = (page - 1) * pageSize;
482
- const end = start + pageSize;
483
- processedData = processedData.slice(start, end);
484
- logger.info("\u2705 [UniversalExportService] \u5206\u9875\u5E94\u7528\u5B8C\u6210:", {
485
- page,
486
- pageSize,
487
- start,
488
- end,
489
- resultLength: processedData.length
490
- });
491
- }
492
- if (config.maxRows && processedData.length > config.maxRows) {
493
- logger.info("\u{1F4CF} [UniversalExportService] \u5E94\u7528\u884C\u6570\u9650\u5236...");
494
- processedData = processedData.slice(0, config.maxRows);
495
- logger.info("\u2705 [UniversalExportService] \u884C\u6570\u9650\u5236\u5E94\u7528\u5B8C\u6210:", {
496
- maxRows: config.maxRows,
497
- resultLength: processedData.length
498
- });
499
- }
500
- logger.info("\u2705 [UniversalExportService] processData \u6267\u884C\u5B8C\u6210:", {
501
- originalLength: data.length,
502
- finalLength: processedData.length
503
- });
504
- return processedData;
505
- }
506
- /**
507
- * 应用过滤器
508
- */
509
- applyFilters(data, filters) {
510
- return data.filter((item) => {
511
- return filters.every((filter) => {
512
- const value = this.getNestedValue(item, filter.field);
513
- switch (filter.operator) {
514
- case "eq":
515
- return value === filter.value;
516
- case "ne":
517
- return value !== filter.value;
518
- case "gt":
519
- return value > filter.value;
520
- case "gte":
521
- return value >= filter.value;
522
- case "lt":
523
- return value < filter.value;
524
- case "lte":
525
- return value <= filter.value;
526
- case "contains":
527
- return String(value).includes(String(filter.value));
528
- case "startsWith":
529
- return String(value).startsWith(String(filter.value));
530
- case "endsWith":
531
- return String(value).endsWith(String(filter.value));
532
- case "in":
533
- return Array.isArray(filter.value) && filter.value.includes(value);
534
- case "notIn":
535
- return Array.isArray(filter.value) && !filter.value.includes(value);
536
- default:
537
- return true;
538
- }
539
- });
540
- });
541
- }
542
- /**
543
- * 应用排序
544
- */
545
- applySorting(data, sortBy) {
546
- return data.sort((a, b) => {
547
- for (const sort of sortBy) {
548
- const aValue = this.getNestedValue(a, sort.field);
549
- const bValue = this.getNestedValue(b, sort.field);
550
- if (aValue < bValue) {
551
- return sort.direction === "asc" ? -1 : 1;
552
- }
553
- if (aValue > bValue) {
554
- return sort.direction === "asc" ? 1 : -1;
555
- }
556
- }
557
- return 0;
558
- });
559
- }
560
- /**
561
- * 获取嵌套值
562
- */
563
- getNestedValue(obj, path) {
564
- return path.split(".").reduce((current, key) => {
565
- return current && current[key] !== void 0 ? current[key] : null;
566
- }, obj);
567
- }
568
- /**
569
- * 过滤掉所有行都为空值的字段
570
- */
571
- filterEmptyFields(data, fields) {
572
- const filteredFields = fields.filter((field) => {
573
- const forceKeepFields = ["pickupMethod", "notes", "adminNotes"];
574
- if (forceKeepFields.includes(field.key)) {
575
- logger.info('\u{1F527} [UniversalExportService] \u5F3A\u5236\u4FDD\u7559\u5B57\u6BB5 "' + field.key + '" (' + field.label + ")");
576
- return true;
577
- }
578
- const hasValue = data.some((item) => {
579
- const value = this.getNestedValue(item, field.key);
580
- return value !== null && value !== void 0 && value !== "";
581
- });
582
- if (!hasValue) {
583
- logger.info(
584
- '\u{1F50D} [UniversalExportService] \u5B57\u6BB5 "' + field.key + '" (' + field.label + ") \u88AB\u8FC7\u6EE4\u6389 - \u6240\u6709\u884C\u90FD\u4E3A\u7A7A\u503C"
585
- );
586
- }
587
- return hasValue;
588
- });
589
- logger.info("\u{1F4CA} [UniversalExportService] \u5B57\u6BB5\u8FC7\u6EE4\u7ED3\u679C:", {
590
- \u539F\u59CB\u5B57\u6BB5\u6570: fields.length,
591
- \u8FC7\u6EE4\u540E\u5B57\u6BB5\u6570: filteredFields.length,
592
- \u88AB\u8FC7\u6EE4\u7684\u5B57\u6BB5: fields.filter((f) => !filteredFields.includes(f)).map((f) => f.key),
593
- \u4FDD\u7559\u7684\u5B57\u6BB5: filteredFields.map((f) => f.key)
594
- });
595
- return filteredFields;
596
- }
597
- /**
598
- * 生成文件
599
- */
600
- async generateFile(data, config, request, exportId) {
601
- const startTime = /* @__PURE__ */ new Date();
602
- const enabledFields = config.fields.filter((f) => f.enabled);
603
- logger.info("\u{1F4C4} [UniversalExportService] generateFile \u5F00\u59CB\u6267\u884C:", {
604
- dataLength: data.length,
605
- enabledFieldsCount: enabledFields.length,
606
- format: config.format,
607
- enabledFields: enabledFields.map((f) => ({ key: f.key, label: f.label }))
608
- });
609
- try {
610
- let content;
611
- let fileName;
612
- switch (config.format) {
613
- case "csv":
614
- logger.info("\u{1F4CA} [UniversalExportService] \u751F\u6210CSV\u683C\u5F0F...");
615
- content = this.generateCSV(data, enabledFields, config);
616
- fileName = this.generateFileName(
617
- request.customFileName || config.fileNameTemplate,
618
- "csv"
619
- );
620
- logger.info("\u2705 [UniversalExportService] CSV\u751F\u6210\u5B8C\u6210:", {
621
- contentLength: content.length,
622
- fileName
623
- });
624
- break;
625
- case "excel":
626
- logger.info("\u{1F4CA} [UniversalExportService] \u751F\u6210Excel\u683C\u5F0F...");
627
- const excelBuffer = this.generateExcel(data, enabledFields, config);
628
- fileName = this.generateFileName(
629
- request.customFileName || config.fileNameTemplate,
630
- "xlsx"
631
- );
632
- logger.info("\u2705 [UniversalExportService] Excel\u751F\u6210\u5B8C\u6210:", {
633
- bufferLength: excelBuffer.byteLength,
634
- fileName
635
- });
636
- const excelBlob = new Blob([excelBuffer], { type: this.getMimeType(config.format) });
637
- const endTime2 = /* @__PURE__ */ new Date();
638
- const duration2 = endTime2.getTime() - startTime.getTime();
639
- return {
640
- exportId,
641
- fileName,
642
- fileSize: excelBlob.size,
643
- fileBlob: excelBlob,
644
- exportedRows: data.length,
645
- startTime,
646
- endTime: endTime2,
647
- duration: duration2,
648
- statistics: {
649
- totalRows: data.length,
650
- filteredRows: data.length,
651
- exportedRows: data.length,
652
- skippedRows: 0
653
- }
654
- };
655
- case "json":
656
- logger.info("\u{1F4C4} [UniversalExportService] \u751F\u6210JSON\u683C\u5F0F...");
657
- content = this.generateJSON(data, enabledFields);
658
- fileName = this.generateFileName(
659
- request.customFileName || config.fileNameTemplate,
660
- "json"
661
- );
662
- logger.info("\u2705 [UniversalExportService] JSON\u751F\u6210\u5B8C\u6210:", {
663
- contentLength: content.length,
664
- fileName
665
- });
666
- break;
667
- default:
668
- console.error("\u274C [UniversalExportService] \u4E0D\u652F\u6301\u7684\u683C\u5F0F:", config.format);
669
- throw new chunkUIYKZ73N_js.ExportFileError("\u4E0D\u652F\u6301\u7684\u5BFC\u51FA\u683C\u5F0F: " + config.format);
670
- }
671
- const blob = new Blob([content], { type: this.getMimeType(config.format) });
672
- if (blob.size > this.config.maxFileSize) {
673
- throw new chunkUIYKZ73N_js.ExportFileError("\u6587\u4EF6\u5927\u5C0F\u8D85\u8FC7\u9650\u5236: " + blob.size + " > " + this.config.maxFileSize);
674
- }
675
- const endTime = /* @__PURE__ */ new Date();
676
- const duration = endTime.getTime() - startTime.getTime();
677
- return {
678
- exportId,
679
- fileName,
680
- fileSize: blob.size,
681
- fileBlob: blob,
682
- exportedRows: data.length,
683
- startTime,
684
- endTime,
685
- duration,
686
- statistics: {
687
- totalRows: data.length,
688
- filteredRows: data.length,
689
- exportedRows: data.length,
690
- skippedRows: 0
691
- }
692
- };
693
- } catch (error) {
694
- throw new chunkUIYKZ73N_js.ExportFileError(
695
- "\u751F\u6210\u6587\u4EF6\u5931\u8D25: " + (error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF"),
696
- { originalError: error }
697
- );
698
- }
699
- }
700
- /**
701
- * 生成CSV内容
702
- */
703
- generateCSV(data, fields, config) {
704
- logger.info("\u{1F4CA} [UniversalExportService] generateCSV \u5F00\u59CB\u6267\u884C:", {
705
- dataLength: data.length,
706
- fieldsCount: fields.length,
707
- includeHeader: config.includeHeader,
708
- delimiter: config.delimiter,
709
- addBOM: config.addBOM
710
- });
711
- const lines = [];
712
- if (config.addBOM) {
713
- lines.push("\uFEFF");
714
- logger.info("\u{1F4DD} [UniversalExportService] \u6DFB\u52A0BOM");
715
- }
716
- const nonEmptyFields = this.filterEmptyFields(data, fields);
717
- logger.info("\u{1F4CA} [UniversalExportService] \u8FC7\u6EE4\u7A7A\u5B57\u6BB5:", {
718
- originalFieldsCount: fields.length,
719
- nonEmptyFieldsCount: nonEmptyFields.length,
720
- removedFields: fields.filter((f) => !nonEmptyFields.includes(f)).map((f) => f.key)
721
- });
722
- if (config.includeHeader) {
723
- const headers = nonEmptyFields.map((f) => this.escapeCSVField(f.label));
724
- lines.push(headers.join(config.delimiter));
725
- logger.info("\u{1F4CB} [UniversalExportService] \u6DFB\u52A0\u8868\u5934:", headers);
726
- }
727
- logger.info("\u{1F4CA} [UniversalExportService] \u5F00\u59CB\u5904\u7406\u6570\u636E\u884C...");
728
- for (let i = 0; i < data.length; i++) {
729
- const item = data[i];
730
- if (i === 0) {
731
- logger.info("\u{1F4CA} [UniversalExportService] \u7B2C\u4E00\u884C\u6570\u636E\u793A\u4F8B:", item);
732
- }
733
- const row = nonEmptyFields.map((field) => {
734
- if (item.__isGroupHeader) {
735
- return this.escapeCSVField(item[field.key] || "");
736
- }
737
- let value = this.getNestedValue(item, field.key);
738
- if (field.formatter) {
739
- value = field.formatter(value);
740
- } else if (DEFAULT_FORMATTERS[field.type]) {
741
- value = DEFAULT_FORMATTERS[field.type](value);
742
- } else {
743
- value = String(value || "");
744
- }
745
- return this.escapeCSVField(value);
746
- });
747
- lines.push(row.join(config.delimiter));
748
- if (i === 0) {
749
- logger.info("\u{1F4CA} [UniversalExportService] \u7B2C\u4E00\u884C\u5904\u7406\u7ED3\u679C:", row);
750
- }
751
- }
752
- const result = lines.join("\n");
753
- logger.info("\u2705 [UniversalExportService] CSV\u751F\u6210\u5B8C\u6210:", {
754
- totalLines: lines.length,
755
- resultLength: result.length
756
- });
757
- return result;
758
- }
759
- /**
760
- * 生成JSON内容
761
- */
762
- generateJSON(data, fields) {
763
- const processedData = data.map((item) => {
764
- const processed = {};
765
- for (const field of fields) {
766
- let value = this.getNestedValue(item, field.key);
767
- if (field.formatter) {
768
- value = field.formatter(value);
769
- } else if (DEFAULT_FORMATTERS[field.type]) {
770
- value = DEFAULT_FORMATTERS[field.type](value);
771
- }
772
- processed[field.key] = value;
773
- }
774
- return processed;
775
- });
776
- return JSON.stringify(processedData, null, 2);
777
- }
778
- /**
779
- * 转义CSV字段
780
- */
781
- escapeCSVField(value) {
782
- if (value.includes(",") || value.includes('"') || value.includes("\n")) {
783
- return '"' + value.replace(/"/g, '""') + '"';
784
- }
785
- return value;
786
- }
787
- /**
788
- * 生成文件名
789
- */
790
- generateFileName(template, extension) {
791
- const now = /* @__PURE__ */ new Date();
792
- const dateStr = now.toISOString().split("T")[0];
793
- const timeStr = now.toTimeString().split(" ")[0].replace(/:/g, "-");
794
- return template.replace("{date}", dateStr).replace("{time}", timeStr).replace("{timestamp}", now.getTime().toString()) + "." + extension;
795
- }
796
- /**
797
- * 获取MIME类型
798
- */
799
- getMimeType(format) {
800
- switch (format) {
801
- case "csv":
802
- return "text/csv; charset=utf-8";
803
- case "json":
804
- return "application/json; charset=utf-8";
805
- case "excel":
806
- return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
807
- default:
808
- return "application/octet-stream";
809
- }
810
- }
811
- /**
812
- * 触发事件
813
- */
814
- emitEvent(event) {
815
- const listeners = this.eventListeners.get(event.type);
816
- if (listeners) {
817
- listeners.forEach((listener) => {
818
- try {
819
- listener(event);
820
- } catch (error) {
821
- console.error("\u4E8B\u4EF6\u76D1\u542C\u5668\u6267\u884C\u5931\u8D25:", error);
822
- }
823
- });
824
- }
825
- }
826
- // ============= 分组相关方法 =============
827
- /**
828
- * 应用分组
829
- */
830
- applyGrouping(data, groupingConfig) {
831
- logger.info("\u{1F4CA} [UniversalExportService] applyGrouping \u5F00\u59CB\u6267\u884C:", {
832
- dataLength: data.length,
833
- groupingFields: groupingConfig.fields.map((f) => f.key),
834
- preserveOrder: groupingConfig.preserveOrder
835
- });
836
- if (!groupingConfig.fields || groupingConfig.fields.length === 0) {
837
- return data;
838
- }
839
- const grouped = this.groupDataByFields(data, groupingConfig);
840
- const result = this.processGroupedData(grouped, groupingConfig);
841
- logger.info("\u2705 [UniversalExportService] applyGrouping \u6267\u884C\u5B8C\u6210:", {
842
- originalLength: data.length,
843
- groupedLength: result.length
844
- });
845
- return result;
846
- }
847
- /**
848
- * 按字段分组数据
849
- */
850
- groupDataByFields(data, groupingConfig) {
851
- const groups = /* @__PURE__ */ new Map();
852
- for (const item of data) {
853
- const groupKey = this.generateGroupKey(item, groupingConfig.fields);
854
- if (!groups.has(groupKey)) {
855
- groups.set(groupKey, []);
856
- }
857
- groups.get(groupKey).push(item);
858
- }
859
- return groups;
860
- }
861
- /**
862
- * 生成分组键
863
- */
864
- generateGroupKey(item, groupingFields) {
865
- const keyParts = groupingFields.map((field) => {
866
- const value = this.getNestedValue(item, field.key);
867
- if (value === null || value === void 0 || value === "") {
868
- return "__NULL__";
869
- }
870
- return String(value);
871
- });
872
- return keyParts.join("|");
873
- }
874
- /**
875
- * 处理分组后的数据
876
- */
877
- processGroupedData(groups, groupingConfig) {
878
- const result = [];
879
- for (const [groupKey, groupItems] of groups) {
880
- if (groupItems.length === 0) continue;
881
- const groupValues = groupKey.split("|");
882
- const processedGroup = this.processGroup(groupItems, groupingConfig, groupValues);
883
- result.push(...processedGroup);
884
- }
885
- return result;
886
- }
887
- /**
888
- * 处理单个分组
889
- */
890
- processGroup(groupItems, groupingConfig, groupValues) {
891
- const result = [];
892
- const showGroupHeader = groupingConfig.fields.some((f) => f.showGroupHeader);
893
- if (showGroupHeader) {
894
- const groupHeader = this.createGroupHeader(groupValues, groupingConfig.fields);
895
- result.push(groupHeader);
896
- }
897
- if (groupingConfig.fields.length > 1) {
898
- result.push(...this.processMultiFieldMergeMode(groupItems, groupingConfig.fields));
899
- } else {
900
- const primaryGroupField = groupingConfig.fields[0];
901
- switch (primaryGroupField.mode) {
902
- case "merge":
903
- result.push(...this.processMergeMode(groupItems, primaryGroupField));
904
- break;
905
- case "separate":
906
- result.push(...groupItems);
907
- break;
908
- case "nested":
909
- result.push(...this.processNestedMode(groupItems, groupingConfig));
910
- break;
911
- default:
912
- result.push(...groupItems);
913
- }
914
- }
915
- return result;
916
- }
917
- /**
918
- * 创建分组头行
919
- */
920
- createGroupHeader(groupValues, groupingFields) {
921
- const header = { __isGroupHeader: true };
922
- groupingFields.forEach((field, index) => {
923
- const value = groupValues[index] === "__NULL__" ? "" : groupValues[index];
924
- const template = field.groupHeaderTemplate || field.label + ": {value}";
925
- header[field.key] = template.replace("{value}", value);
926
- });
927
- return header;
928
- }
929
- /**
930
- * 处理合并模式
931
- */
932
- processMergeMode(groupItems, groupField) {
933
- if (groupItems.length === 0) return [];
934
- const result = [];
935
- const firstItem = { ...groupItems[0] };
936
- firstItem.__groupSize = groupItems.length;
937
- firstItem.__isGroupFirst = true;
938
- result.push(firstItem);
939
- for (let i = 1; i < groupItems.length; i++) {
940
- const item = { ...groupItems[i] };
941
- item[groupField.key] = "";
942
- item.__isGroupChild = true;
943
- item.__groupIndex = i;
944
- result.push(item);
945
- }
946
- return result;
947
- }
948
- /**
949
- * 处理多字段合并模式
950
- */
951
- processMultiFieldMergeMode(groupItems, groupFields) {
952
- if (groupItems.length === 0) return [];
953
- const result = [];
954
- const firstItem = { ...groupItems[0] };
955
- firstItem.__groupSize = groupItems.length;
956
- firstItem.__isGroupFirst = true;
957
- groupFields.forEach((field) => {
958
- firstItem["__" + field.key + "_groupSize"] = groupItems.length;
959
- firstItem["__" + field.key + "_isGroupFirst"] = true;
960
- });
961
- result.push(firstItem);
962
- logger.info("\u{1F517} [UniversalExportService] \u5904\u7406\u591A\u5B57\u6BB5\u5408\u5E76\u6A21\u5F0F:", {
963
- groupItemsLength: groupItems.length,
964
- groupFields: groupFields.map((f) => f.key),
965
- firstItem
966
- });
967
- for (let i = 1; i < groupItems.length; i++) {
968
- const item = { ...groupItems[i] };
969
- groupFields.forEach((field) => {
970
- item[field.key] = "";
971
- });
972
- item.__isGroupChild = true;
973
- item.__groupIndex = i;
974
- result.push(item);
975
- }
976
- return result;
977
- }
978
- /**
979
- * 处理嵌套模式
980
- */
981
- processNestedMode(groupItems, groupingConfig) {
982
- if (groupingConfig.fields.length === 1) {
983
- return this.processMergeMode(groupItems, groupingConfig.fields[0]);
984
- }
985
- const subGroupingConfig = {
986
- ...groupingConfig,
987
- fields: groupingConfig.fields.slice(1)
988
- };
989
- return this.applyGrouping(groupItems, subGroupingConfig);
990
- }
991
- /**
992
- * 统计分组数量
993
- */
994
- countGroups(data) {
995
- const groupHeaders = data.filter((item) => item.__isGroupHeader);
996
- const groupFirsts = data.filter((item) => item.__isGroupFirst);
997
- return Math.max(groupHeaders.length, groupFirsts.length);
998
- }
999
- /**
1000
- * 生成Excel文件
1001
- */
1002
- generateExcel(data, fields, config) {
1003
- logger.info("\u{1F4CA} [UniversalExportService] generateExcel \u5F00\u59CB\u6267\u884C:", {
1004
- dataLength: data.length,
1005
- fieldsCount: fields.length,
1006
- hasGrouping: !!(config.grouping && config.grouping.enabled)
1007
- });
1008
- const workbook = XLSX__namespace.utils.book_new();
1009
- const nonEmptyFields = this.filterEmptyFields(data, fields);
1010
- const worksheetData = this.prepareExcelData(data, nonEmptyFields, config);
1011
- const worksheet = XLSX__namespace.utils.aoa_to_sheet(worksheetData);
1012
- if (config.grouping && config.grouping.enabled) {
1013
- this.applyExcelGrouping(
1014
- worksheet,
1015
- data,
1016
- nonEmptyFields,
1017
- config.grouping,
1018
- config.includeHeader
1019
- );
1020
- }
1021
- this.setExcelColumnWidths(worksheet, nonEmptyFields);
1022
- this.applyExcelDataStyles(worksheet, config.includeHeader);
1023
- XLSX__namespace.utils.book_append_sheet(workbook, worksheet, "Sheet1");
1024
- const excelBuffer = XLSX__namespace.write(workbook, {
1025
- bookType: "xlsx",
1026
- type: "array",
1027
- cellStyles: true
1028
- });
1029
- logger.info("\u2705 [UniversalExportService] generateExcel \u6267\u884C\u5B8C\u6210");
1030
- return excelBuffer;
1031
- }
1032
- /**
1033
- * 准备Excel数据
1034
- */
1035
- prepareExcelData(data, fields, config) {
1036
- const result = [];
1037
- logger.info("\u{1F4CA} [UniversalExportService] \u51C6\u5907Excel\u6570\u636E:", {
1038
- dataLength: data.length,
1039
- fieldsCount: fields.length,
1040
- includeHeader: config.includeHeader,
1041
- hasGrouping: !!(config.grouping && config.grouping.enabled)
1042
- });
1043
- if (config.includeHeader) {
1044
- const headers = fields.map((field) => field.label);
1045
- result.push(headers);
1046
- logger.info("\u{1F4CB} [UniversalExportService] \u6DFB\u52A0\u8868\u5934:", headers);
1047
- }
1048
- for (let i = 0; i < data.length; i++) {
1049
- const item = data[i];
1050
- const row = fields.map((field) => {
1051
- if (item.__isGroupHeader) {
1052
- return item[field.key] || "";
1053
- }
1054
- let value = this.getNestedValue(item, field.key);
1055
- if (field.formatter) {
1056
- value = field.formatter(value);
1057
- } else if (DEFAULT_FORMATTERS[field.type]) {
1058
- value = DEFAULT_FORMATTERS[field.type](value);
1059
- } else {
1060
- value = String(value || "");
1061
- }
1062
- return value;
1063
- });
1064
- result.push(row);
1065
- if (i === 0) {
1066
- logger.info("\u{1F4CA} [UniversalExportService] \u7B2C\u4E00\u884C\u6570\u636E\u793A\u4F8B:", row);
1067
- }
1068
- }
1069
- logger.info("\u2705 [UniversalExportService] Excel\u6570\u636E\u51C6\u5907\u5B8C\u6210:", {
1070
- totalRows: result.length,
1071
- headerRows: config.includeHeader ? 1 : 0,
1072
- dataRows: result.length - (config.includeHeader ? 1 : 0)
1073
- });
1074
- return result;
1075
- }
1076
- /**
1077
- * 应用Excel分组和合并单元格
1078
- */
1079
- applyExcelGrouping(worksheet, data, fields, groupingConfig, includeHeader = true) {
1080
- if (!worksheet["!merges"]) {
1081
- worksheet["!merges"] = [];
1082
- }
1083
- const headerOffset = includeHeader ? 1 : 0;
1084
- let currentRow = headerOffset;
1085
- logger.info("\u{1F4CA} [UniversalExportService] \u5F00\u59CB\u5904\u7406Excel\u5206\u7EC4\u548C\u5408\u5E76\u5355\u5143\u683C:", {
1086
- dataLength: data.length,
1087
- headerOffset,
1088
- groupingFields: groupingConfig.fields.map((f) => ({ key: f.key, mergeCells: f.mergeCells }))
1089
- });
1090
- for (let i = 0; i < data.length; i++) {
1091
- const item = data[i];
1092
- if (item.__isGroupFirst && item.__groupSize > 1) {
1093
- logger.info("\u{1F517} [UniversalExportService] \u5904\u7406\u5206\u7EC4\u5408\u5E76:", {
1094
- row: currentRow,
1095
- groupSize: item.__groupSize,
1096
- item
1097
- });
1098
- groupingConfig.fields.forEach((groupField) => {
1099
- if (groupField.mergeCells) {
1100
- const fieldIndex = fields.findIndex((f) => f.key === groupField.key);
1101
- if (fieldIndex >= 0) {
1102
- const groupSize = item["__" + groupField.key + "_groupSize"] || item.__groupSize;
1103
- const mergeRange = {
1104
- s: { r: currentRow, c: fieldIndex },
1105
- // 开始行列
1106
- e: { r: currentRow + groupSize - 1, c: fieldIndex }
1107
- // 结束行列
1108
- };
1109
- logger.info("\u{1F4CA} [UniversalExportService] \u6DFB\u52A0\u5408\u5E76\u533A\u57DF:", {
1110
- field: groupField.key,
1111
- fieldIndex,
1112
- groupSize,
1113
- mergeRange
1114
- });
1115
- worksheet["!merges"].push(mergeRange);
1116
- const startCellAddress = XLSX__namespace.utils.encode_cell(mergeRange.s);
1117
- if (worksheet[startCellAddress]) {
1118
- worksheet[startCellAddress].s = {
1119
- ...worksheet[startCellAddress].s,
1120
- alignment: { horizontal: "center", vertical: "middle" },
1121
- fill: { fgColor: { rgb: "F2F2F2" } },
1122
- border: {
1123
- top: { style: "thin", color: { rgb: "000000" } },
1124
- bottom: { style: "thin", color: { rgb: "000000" } },
1125
- left: { style: "thin", color: { rgb: "000000" } },
1126
- right: { style: "thin", color: { rgb: "000000" } }
1127
- }
1128
- };
1129
- }
1130
- }
1131
- }
1132
- });
1133
- }
1134
- currentRow++;
1135
- }
1136
- logger.info("\u2705 [UniversalExportService] Excel\u5206\u7EC4\u548C\u5408\u5E76\u5355\u5143\u683C\u5904\u7406\u5B8C\u6210:", {
1137
- totalMerges: worksheet["!merges"]?.length || 0
1138
- });
1139
- }
1140
- /**
1141
- * 设置Excel列宽和样式
1142
- */
1143
- setExcelColumnWidths(worksheet, fields) {
1144
- const colWidths = fields.map((field) => ({
1145
- wch: field.width || 15
1146
- // 默认宽度15字符
1147
- }));
1148
- worksheet["!cols"] = colWidths;
1149
- if (worksheet["!ref"]) {
1150
- const range = XLSX__namespace.utils.decode_range(worksheet["!ref"]);
1151
- for (let col = range.s.c; col <= range.e.c; col++) {
1152
- const cellAddress = XLSX__namespace.utils.encode_cell({ r: 0, c: col });
1153
- if (worksheet[cellAddress]) {
1154
- worksheet[cellAddress].s = {
1155
- font: { bold: true, color: { rgb: "FFFFFF" } },
1156
- fill: { fgColor: { rgb: "4472C4" } },
1157
- alignment: { horizontal: "center", vertical: "center" },
1158
- border: {
1159
- top: { style: "thin", color: { rgb: "000000" } },
1160
- bottom: { style: "thin", color: { rgb: "000000" } },
1161
- left: { style: "thin", color: { rgb: "000000" } },
1162
- right: { style: "thin", color: { rgb: "000000" } }
1163
- }
1164
- };
1165
- }
1166
- }
1167
- }
1168
- logger.info("\u2705 [UniversalExportService] Excel\u5217\u5BBD\u548C\u6837\u5F0F\u8BBE\u7F6E\u5B8C\u6210:", {
1169
- columnsCount: colWidths.length,
1170
- columnWidths: colWidths.map((col, index) => ({ field: fields[index]?.key, width: col.wch }))
1171
- });
1172
- }
1173
- /**
1174
- * 为Excel数据单元格应用样式
1175
- */
1176
- applyExcelDataStyles(worksheet, includeHeader = true) {
1177
- if (!worksheet["!ref"]) return;
1178
- const range = XLSX__namespace.utils.decode_range(worksheet["!ref"]);
1179
- const startRow = includeHeader ? 1 : 0;
1180
- logger.info("\u{1F3A8} [UniversalExportService] \u5F00\u59CB\u5E94\u7528Excel\u6570\u636E\u6837\u5F0F:", {
1181
- totalRows: range.e.r + 1,
1182
- totalCols: range.e.c + 1,
1183
- startRow
1184
- });
1185
- for (let row = startRow; row <= range.e.r; row++) {
1186
- for (let col = range.s.c; col <= range.e.c; col++) {
1187
- const cellAddress = XLSX__namespace.utils.encode_cell({ r: row, c: col });
1188
- if (worksheet[cellAddress]) {
1189
- const existingStyle = worksheet[cellAddress].s || {};
1190
- worksheet[cellAddress].s = {
1191
- ...existingStyle,
1192
- border: {
1193
- top: { style: "thin", color: { rgb: "CCCCCC" } },
1194
- bottom: { style: "thin", color: { rgb: "CCCCCC" } },
1195
- left: { style: "thin", color: { rgb: "CCCCCC" } },
1196
- right: { style: "thin", color: { rgb: "CCCCCC" } }
1197
- },
1198
- alignment: {
1199
- ...existingStyle.alignment,
1200
- vertical: "center"
1201
- }
1202
- };
1203
- }
1204
- }
1205
- }
1206
- logger.info("\u2705 [UniversalExportService] Excel\u6570\u636E\u6837\u5F0F\u5E94\u7528\u5B8C\u6210");
1207
- }
1208
- };
1209
-
1210
- // src/universalExport/server/factory.ts
1211
- function createExportServiceConfig(options = {}) {
1212
- return {
1213
- db: options.db,
1214
- exportDir: options.exportDir || process.env.EXPORT_DIR || "./exports",
1215
- tempDir: options.tempDir || process.env.TEMP_DIR || "./temp",
1216
- maxRows: options.maxRows || 1e5,
1217
- // 默认最多导出 10 万行
1218
- enableStreaming: options.enableStreaming !== false,
1219
- // 默认启用流式导出
1220
- timeout: options.timeout || 3e5
1221
- // 默认超时 5 分钟
1222
- };
1223
- }
1224
- function createUniversalExportService(options = {}) {
1225
- const config = createExportServiceConfig(options);
1226
- console.warn(
1227
- "\u26A0\uFE0F UniversalExportService \u7684\u5B8C\u6574\u5B9E\u73B0\u5C06\u5728\u540E\u7EED Phase \u4E2D\u8FC1\u79FB\u5230 Sa2kit\u3002\n \u5F53\u524D\u7248\u672C\u4EC5\u5305\u542B\u7C7B\u578B\u5B9A\u4E49\u548C\u914D\u7F6E\u5DE5\u5382\u51FD\u6570\u3002\n \u8BF7\u6682\u65F6\u7EE7\u7EED\u4ECE LyricNote \u7684 lib/universalExport \u5BFC\u5165\u670D\u52A1\u7C7B\u3002"
1228
- );
1229
- return {
1230
- config,
1231
- // 占位方法
1232
- async export() {
1233
- throw new Error("UniversalExportService \u5C1A\u672A\u5B8C\u5168\u8FC1\u79FB\uFF0C\u8BF7\u4ECE LyricNote \u5BFC\u5165");
1234
- },
1235
- async createTask() {
1236
- throw new Error("UniversalExportService \u5C1A\u672A\u5B8C\u5168\u8FC1\u79FB\uFF0C\u8BF7\u4ECE LyricNote \u5BFC\u5165");
1237
- }
1238
- };
1239
- }
1240
- function createExportServiceFromEnv(db) {
1241
- return createUniversalExportService({
1242
- db,
1243
- exportDir: process.env.EXPORT_DIR,
1244
- tempDir: process.env.TEMP_DIR,
1245
- maxRows: process.env.EXPORT_MAX_ROWS ? parseInt(process.env.EXPORT_MAX_ROWS) : void 0
1246
- });
1247
- }
1248
-
1249
- // src/universalExport/server/presets.ts
1250
- function createSmallAppPreset() {
1251
- return {
1252
- maxRows: 1e4,
1253
- // 1万行
1254
- timeout: 6e4,
1255
- // 1分钟
1256
- enableStreaming: false
1257
- // 小数据量不需要流式导出
1258
- };
1259
- }
1260
- function createMediumAppPreset() {
1261
- return {
1262
- maxRows: 1e5,
1263
- // 10万行
1264
- timeout: 3e5,
1265
- // 5分钟
1266
- enableStreaming: true
1267
- };
1268
- }
1269
- function createLargeAppPreset() {
1270
- return {
1271
- maxRows: 1e6,
1272
- // 100万行
1273
- timeout: 6e5,
1274
- // 10分钟
1275
- enableStreaming: true
1276
- };
1277
- }
1278
- function createRealtimeExportPreset() {
1279
- return {
1280
- maxRows: 5e3,
1281
- // 5千行
1282
- timeout: 3e4,
1283
- // 30秒
1284
- enableStreaming: false
1285
- };
1286
- }
1287
- function createBatchExportPreset() {
1288
- return {
1289
- maxRows: Number.MAX_SAFE_INTEGER,
1290
- // 不限制
1291
- timeout: 18e5,
1292
- // 30分钟
1293
- enableStreaming: true
1294
- };
1295
- }
1296
- function createSmartExportPreset() {
1297
- const envMaxRows = process.env.EXPORT_MAX_ROWS;
1298
- if (envMaxRows) {
1299
- const maxRows = parseInt(envMaxRows);
1300
- if (maxRows <= 1e4) {
1301
- return createSmallAppPreset();
1302
- } else if (maxRows <= 1e5) {
1303
- return createMediumAppPreset();
1304
- } else {
1305
- return createLargeAppPreset();
1306
- }
1307
- }
1308
- return createMediumAppPreset();
1309
- }
1310
-
1311
- // src/universalExport/server/validation.ts
1312
- var ConfigValidationError = class extends Error {
1313
- constructor(message, field) {
1314
- super(message);
1315
- this.field = field;
1316
- this.name = "ConfigValidationError";
1317
- }
1318
- };
1319
- function validateExportConfig(config) {
1320
- if (!config.exportDir) {
1321
- throw new ConfigValidationError("exportDir is required", "exportDir");
1322
- }
1323
- if (!config.tempDir) {
1324
- throw new ConfigValidationError("tempDir is required", "tempDir");
1325
- }
1326
- if (config.maxRows && config.maxRows <= 0) {
1327
- throw new ConfigValidationError(
1328
- "maxRows must be greater than 0",
1329
- "maxRows"
1330
- );
1331
- }
1332
- if (config.timeout && config.timeout <= 0) {
1333
- throw new ConfigValidationError(
1334
- "timeout must be greater than 0",
1335
- "timeout"
1336
- );
1337
- }
1338
- if (config.maxRows && config.maxRows > 1e6) {
1339
- console.warn(
1340
- "\u26A0\uFE0F Warning: maxRows (" + config.maxRows + `) is very large. Consider using pagination or streaming for better performance.`
1341
- );
1342
- }
1343
- }
1344
- function validateEnvironment(requiredVars) {
1345
- const missing = [];
1346
- for (const varName of requiredVars) {
1347
- if (!process.env[varName]) {
1348
- missing.push(varName);
1349
- }
1350
- }
1351
- if (missing.length > 0) {
1352
- throw new ConfigValidationError(
1353
- "Missing required environment variables: " + missing.join(", "),
1354
- "environment"
1355
- );
1356
- }
1357
- }
1358
-
1359
- // src/universalExport/server/utils/index.ts
1360
- function formatFieldValue(value, field) {
1361
- if (field.formatter) {
1362
- return field.formatter(value);
1363
- }
1364
- if (value === null || value === void 0) {
1365
- return "";
1366
- }
1367
- switch (field.type) {
1368
- case "date":
1369
- return value instanceof Date ? value.toISOString().split("T")[0] || "" : String(value);
1370
- case "boolean":
1371
- return value ? "\u662F" : "\u5426";
1372
- case "array":
1373
- return Array.isArray(value) ? value.join(", ") : String(value);
1374
- case "object":
1375
- return typeof value === "object" ? JSON.stringify(value) : String(value);
1376
- case "number":
1377
- return typeof value === "number" ? value.toLocaleString() : String(value);
1378
- default:
1379
- return String(value);
1380
- }
1381
- }
1382
- function validateFieldValue(value, field) {
1383
- if (field.required && (value === null || value === void 0 || value === "")) {
1384
- return false;
1385
- }
1386
- switch (field.type) {
1387
- case "number":
1388
- return typeof value === "number" || !isNaN(Number(value));
1389
- case "boolean":
1390
- return typeof value === "boolean";
1391
- case "array":
1392
- return Array.isArray(value);
1393
- case "object":
1394
- return typeof value === "object";
1395
- case "date":
1396
- return value instanceof Date || !isNaN(Date.parse(value));
1397
- default:
1398
- return true;
1399
- }
1400
- }
1401
- function convertFieldType(value, targetType) {
1402
- if (value === null || value === void 0) {
1403
- return value;
1404
- }
1405
- switch (targetType) {
1406
- case "string":
1407
- return String(value);
1408
- case "number":
1409
- return Number(value);
1410
- case "boolean":
1411
- return Boolean(value);
1412
- case "date":
1413
- return value instanceof Date ? value : new Date(value);
1414
- case "array":
1415
- return Array.isArray(value) ? value : [value];
1416
- case "object":
1417
- return typeof value === "object" ? value : { value };
1418
- default:
1419
- return value;
1420
- }
1421
- }
1422
- function getNestedValue(obj, path) {
1423
- return path.split(".").reduce((current, key) => current?.[key], obj);
1424
- }
1425
- function escapeCsvValue(value) {
1426
- if (value.includes(",") || value.includes('"') || value.includes("\n")) {
1427
- return '"' + value.replace(/"/g, '""') + '"';
1428
- }
1429
- return value;
1430
- }
1431
- function generateUniqueFilename(prefix, extension) {
1432
- const timestamp2 = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, -5);
1433
- const random = Math.random().toString(36).substring(2, 8);
1434
- return prefix + "_" + timestamp2 + "_" + random + "." + extension;
1435
- }
1436
- function calculateProgress(processed, total) {
1437
- if (total === 0) return 0;
1438
- return Math.min(Math.round(processed / total * 100), 100);
1439
- }
1440
- function estimateRemainingTime(processed, total, elapsedMs) {
1441
- if (processed === 0) return 0;
1442
- const avgTimePerRow = elapsedMs / processed;
1443
- const remainingRows = total - processed;
1444
- return Math.round(remainingRows * avgTimePerRow / 1e3);
1445
- }
1446
- var exportConfigs = pgCore.pgTable("ExportConfig", {
1447
- /** 主键ID */
1448
- id: pgCore.text("id").primaryKey().$defaultFn(() => "export_config_" + Date.now() + "_" + Math.random().toString(36).substr(2, 9)),
1449
- /** 配置名称 */
1450
- name: pgCore.text("name").notNull(),
1451
- /** 配置描述 */
1452
- description: pgCore.text("description"),
1453
- /** 导出格式:'csv' | 'excel' | 'json' */
1454
- format: pgCore.text("format").notNull(),
1455
- /** 导出字段配置(JSON数组) */
1456
- fields: pgCore.jsonb("fields").notNull(),
1457
- // ExportField[]
1458
- /** 分组配置 */
1459
- grouping: pgCore.jsonb("grouping"),
1460
- // GroupingConfig
1461
- /** 文件名模板 */
1462
- fileNameTemplate: pgCore.text("fileNameTemplate").notNull(),
1463
- /** 是否包含表头 */
1464
- includeHeader: pgCore.boolean("includeHeader").default(true).notNull(),
1465
- /** 分隔符(用于CSV格式) */
1466
- delimiter: pgCore.text("delimiter").default(",").notNull(),
1467
- /** 编码格式 */
1468
- encoding: pgCore.text("encoding").default("utf-8").notNull(),
1469
- /** 是否添加BOM(用于Excel打开UTF-8 CSV) */
1470
- addBOM: pgCore.boolean("addBOM").default(true).notNull(),
1471
- /** 最大导出行数 */
1472
- maxRows: pgCore.integer("maxRows"),
1473
- /** 模块ID */
1474
- moduleId: pgCore.text("moduleId").notNull(),
1475
- /** 业务ID */
1476
- businessId: pgCore.text("businessId"),
1477
- /** 创建者ID */
1478
- createdBy: pgCore.text("createdBy"),
1479
- /** 创建时间 */
1480
- createdAt: pgCore.timestamp("createdAt", { precision: 3, mode: "date" }).default(drizzleOrm.sql`CURRENT_TIMESTAMP`).notNull(),
1481
- /** 更新时间 */
1482
- updatedAt: pgCore.timestamp("updatedAt", { precision: 3, mode: "date" }).default(drizzleOrm.sql`CURRENT_TIMESTAMP`).notNull()
1483
- });
1484
- var exportHistory = pgCore.pgTable("ExportHistory", {
1485
- /** 主键ID */
1486
- id: pgCore.text("id").primaryKey().$defaultFn(() => "export_history_" + Date.now() + "_" + Math.random().toString(36).substr(2, 9)),
1487
- /** 关联的配置ID */
1488
- configId: pgCore.text("configId").notNull(),
1489
- /** 导出的文件名 */
1490
- fileName: pgCore.text("fileName").notNull(),
1491
- /** 文件大小(字节) */
1492
- fileSize: pgCore.integer("fileSize").notNull(),
1493
- /** 导出的行数 */
1494
- exportedRows: pgCore.integer("exportedRows").notNull(),
1495
- /** 导出状态:'pending' | 'processing' | 'completed' | 'failed' */
1496
- status: pgCore.text("status").notNull(),
1497
- /** 错误信息(如果失败) */
1498
- error: pgCore.text("error"),
1499
- /** 导出耗时(毫秒) */
1500
- duration: pgCore.integer("duration"),
1501
- /** 开始时间 */
1502
- startTime: pgCore.timestamp("startTime", { precision: 3, mode: "date" }).notNull(),
1503
- /** 结束时间 */
1504
- endTime: pgCore.timestamp("endTime", { precision: 3, mode: "date" }),
1505
- /** 创建者ID */
1506
- createdBy: pgCore.text("createdBy"),
1507
- /** 创建时间 */
1508
- createdAt: pgCore.timestamp("createdAt", { precision: 3, mode: "date" }).default(drizzleOrm.sql`CURRENT_TIMESTAMP`).notNull()
1509
- });
1510
- var exportConfigsRelations = drizzleOrm.relations(exportConfigs, ({ many }) => ({
1511
- history: many(exportHistory)
1512
- }));
1513
- var exportHistoryRelations = drizzleOrm.relations(exportHistory, ({ one }) => ({
1514
- config: one(exportConfigs, {
1515
- fields: [exportHistory.configId],
1516
- references: [exportConfigs.id]
1517
- })
1518
- }));
1519
- var ExportConfigDatabaseService = class {
1520
- constructor(db) {
1521
- this.db = db;
1522
- }
1523
- /**
1524
- * 创建导出配置
1525
- */
1526
- async createConfig(config) {
1527
- const id = "export_config_" + Date.now() + "_" + Math.random().toString(36).substr(2, 9);
1528
- const now = /* @__PURE__ */ new Date();
1529
- const [newConfig] = await this.db.insert(exportConfigs).values({
1530
- id,
1531
- ...config,
1532
- createdAt: now,
1533
- updatedAt: now
1534
- }).returning();
1535
- return newConfig;
1536
- }
1537
- /**
1538
- * 根据ID获取配置
1539
- */
1540
- async getConfigById(id) {
1541
- const [config] = await this.db.select().from(exportConfigs).where(drizzleOrm.eq(exportConfigs.id, id)).limit(1);
1542
- return config || null;
1543
- }
1544
- /**
1545
- * 根据模块和业务ID获取配置列表
1546
- */
1547
- async getConfigsByModule(moduleId, businessId) {
1548
- const whereConditions = businessId ? drizzleOrm.and(drizzleOrm.eq(exportConfigs.moduleId, moduleId), drizzleOrm.eq(exportConfigs.businessId, businessId)) : drizzleOrm.eq(exportConfigs.moduleId, moduleId);
1549
- return await this.db.select().from(exportConfigs).where(whereConditions).orderBy(drizzleOrm.desc(exportConfigs.updatedAt));
1550
- }
1551
- /**
1552
- * 更新配置
1553
- */
1554
- async updateConfig(id, updates) {
1555
- const [updatedConfig] = await this.db.update(exportConfigs).set({
1556
- ...updates,
1557
- updatedAt: /* @__PURE__ */ new Date()
1558
- }).where(drizzleOrm.eq(exportConfigs.id, id)).returning();
1559
- return updatedConfig || null;
1560
- }
1561
- /**
1562
- * 删除配置
1563
- */
1564
- async deleteConfig(id) {
1565
- await this.db.delete(exportConfigs).where(drizzleOrm.eq(exportConfigs.id, id));
1566
- return true;
1567
- }
1568
- /**
1569
- * 根据用户ID获取配置列表
1570
- */
1571
- async getConfigsByUser(userId) {
1572
- return await this.db.select().from(exportConfigs).where(drizzleOrm.eq(exportConfigs.createdBy, userId)).orderBy(drizzleOrm.desc(exportConfigs.updatedAt));
1573
- }
1574
- };
1575
- var ExportHistoryDatabaseService = class {
1576
- constructor(db) {
1577
- this.db = db;
1578
- }
1579
- /**
1580
- * 创建导出历史记录
1581
- */
1582
- async createHistory(history) {
1583
- const id = "export_history_" + Date.now() + "_" + Math.random().toString(36).substr(2, 9);
1584
- const [newHistory] = await this.db.insert(exportHistory).values({
1585
- id,
1586
- ...history,
1587
- createdAt: /* @__PURE__ */ new Date()
1588
- }).returning();
1589
- return newHistory;
1590
- }
1591
- /**
1592
- * 根据配置ID获取历史记录
1593
- */
1594
- async getHistoryByConfigId(configId) {
1595
- return await this.db.select().from(exportHistory).where(drizzleOrm.eq(exportHistory.configId, configId)).orderBy(drizzleOrm.desc(exportHistory.createdAt));
1596
- }
1597
- /**
1598
- * 根据用户ID获取历史记录
1599
- */
1600
- async getHistoryByUser(userId) {
1601
- return await this.db.select().from(exportHistory).where(drizzleOrm.eq(exportHistory.createdBy, userId)).orderBy(drizzleOrm.desc(exportHistory.createdAt));
1602
- }
1603
- /**
1604
- * 获取最近的导出历史记录
1605
- */
1606
- async getRecentHistory(limit = 10) {
1607
- return await this.db.select().from(exportHistory).orderBy(drizzleOrm.desc(exportHistory.createdAt)).limit(limit);
1608
- }
1609
- };
1610
- function createExportDatabaseServices(options) {
1611
- const { db } = options;
1612
- return {
1613
- configDB: new ExportConfigDatabaseService(db),
1614
- historyDB: new ExportHistoryDatabaseService(db)
1615
- };
1616
- }
1617
-
1618
- exports.ConfigValidationError = ConfigValidationError;
1619
- exports.ExportConfigDatabaseService = ExportConfigDatabaseService;
1620
- exports.ExportHistoryDatabaseService = ExportHistoryDatabaseService;
1621
- exports.UniversalExportService = UniversalExportService;
1622
- exports.calculateProgress = calculateProgress;
1623
- exports.convertFieldType = convertFieldType;
1624
- exports.createBatchExportPreset = createBatchExportPreset;
1625
- exports.createExportDatabaseServices = createExportDatabaseServices;
1626
- exports.createExportServiceConfig = createExportServiceConfig;
1627
- exports.createExportServiceFromEnv = createExportServiceFromEnv;
1628
- exports.createLargeAppPreset = createLargeAppPreset;
1629
- exports.createMediumAppPreset = createMediumAppPreset;
1630
- exports.createRealtimeExportPreset = createRealtimeExportPreset;
1631
- exports.createSmallAppPreset = createSmallAppPreset;
1632
- exports.createSmartExportPreset = createSmartExportPreset;
1633
- exports.createUniversalExportService = createUniversalExportService;
1634
- exports.escapeCsvValue = escapeCsvValue;
1635
- exports.estimateRemainingTime = estimateRemainingTime;
1636
- exports.exportConfigs = exportConfigs;
1637
- exports.exportConfigsRelations = exportConfigsRelations;
1638
- exports.exportHistory = exportHistory;
1639
- exports.exportHistoryRelations = exportHistoryRelations;
1640
- exports.formatFieldValue = formatFieldValue;
1641
- exports.generateUniqueFilename = generateUniqueFilename;
1642
- exports.getNestedValue = getNestedValue;
1643
- exports.validateEnvironment = validateEnvironment;
1644
- exports.validateExportConfig = validateExportConfig;
1645
- exports.validateFieldValue = validateFieldValue;
1646
- //# sourceMappingURL=chunk-WW4GE6CZ.js.map
1647
- //# sourceMappingURL=chunk-WW4GE6CZ.js.map