@dofe/infra-clients 0.1.1

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 (497) hide show
  1. package/dist/index.d.ts +20 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +36 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/internal/agentx/agentx-client.module.d.ts +10 -0
  6. package/dist/internal/agentx/agentx-client.module.d.ts.map +1 -0
  7. package/dist/internal/agentx/agentx-client.module.js +38 -0
  8. package/dist/internal/agentx/agentx-client.module.js.map +1 -0
  9. package/dist/internal/agentx/agentx-client.service.d.ts +570 -0
  10. package/dist/internal/agentx/agentx-client.service.d.ts.map +1 -0
  11. package/dist/internal/agentx/agentx-client.service.js +912 -0
  12. package/dist/internal/agentx/agentx-client.service.js.map +1 -0
  13. package/dist/internal/agentx/agentx-file-client.service.d.ts +48 -0
  14. package/dist/internal/agentx/agentx-file-client.service.d.ts.map +1 -0
  15. package/dist/internal/agentx/agentx-file-client.service.js +276 -0
  16. package/dist/internal/agentx/agentx-file-client.service.js.map +1 -0
  17. package/dist/internal/agentx/index.d.ts +9 -0
  18. package/dist/internal/agentx/index.d.ts.map +1 -0
  19. package/dist/internal/agentx/index.js +27 -0
  20. package/dist/internal/agentx/index.js.map +1 -0
  21. package/dist/internal/agentx/interfaces/file.interface.d.ts +21 -0
  22. package/dist/internal/agentx/interfaces/file.interface.d.ts.map +1 -0
  23. package/dist/internal/agentx/interfaces/file.interface.js +22 -0
  24. package/dist/internal/agentx/interfaces/file.interface.js.map +1 -0
  25. package/dist/internal/agentx/interfaces/task.interface.d.ts +74 -0
  26. package/dist/internal/agentx/interfaces/task.interface.d.ts.map +1 -0
  27. package/dist/internal/agentx/interfaces/task.interface.js +16 -0
  28. package/dist/internal/agentx/interfaces/task.interface.js.map +1 -0
  29. package/dist/internal/ai/index.d.ts +3 -0
  30. package/dist/internal/ai/index.d.ts.map +1 -0
  31. package/dist/internal/ai/index.js +19 -0
  32. package/dist/internal/ai/index.js.map +1 -0
  33. package/dist/internal/ai/risk-detection.client.d.ts +74 -0
  34. package/dist/internal/ai/risk-detection.client.d.ts.map +1 -0
  35. package/dist/internal/ai/risk-detection.client.js +224 -0
  36. package/dist/internal/ai/risk-detection.client.js.map +1 -0
  37. package/dist/internal/ai/risk-detection.module.d.ts +3 -0
  38. package/dist/internal/ai/risk-detection.module.d.ts.map +1 -0
  39. package/dist/internal/ai/risk-detection.module.js +35 -0
  40. package/dist/internal/ai/risk-detection.module.js.map +1 -0
  41. package/dist/internal/ai-provider/ai-provider.client.d.ts +81 -0
  42. package/dist/internal/ai-provider/ai-provider.client.d.ts.map +1 -0
  43. package/dist/internal/ai-provider/ai-provider.client.js +435 -0
  44. package/dist/internal/ai-provider/ai-provider.client.js.map +1 -0
  45. package/dist/internal/ai-provider/ai-provider.module.d.ts +3 -0
  46. package/dist/internal/ai-provider/ai-provider.module.d.ts.map +1 -0
  47. package/dist/internal/ai-provider/ai-provider.module.js +28 -0
  48. package/dist/internal/ai-provider/ai-provider.module.js.map +1 -0
  49. package/dist/internal/ai-provider/index.d.ts +4 -0
  50. package/dist/internal/ai-provider/index.d.ts.map +1 -0
  51. package/dist/internal/ai-provider/index.js +8 -0
  52. package/dist/internal/ai-provider/index.js.map +1 -0
  53. package/dist/internal/channel-verify/channel-verify.client.d.ts +31 -0
  54. package/dist/internal/channel-verify/channel-verify.client.d.ts.map +1 -0
  55. package/dist/internal/channel-verify/channel-verify.client.js +150 -0
  56. package/dist/internal/channel-verify/channel-verify.client.js.map +1 -0
  57. package/dist/internal/channel-verify/index.d.ts +5 -0
  58. package/dist/internal/channel-verify/index.d.ts.map +1 -0
  59. package/dist/internal/channel-verify/index.js +26 -0
  60. package/dist/internal/channel-verify/index.js.map +1 -0
  61. package/dist/internal/complexity-classifier/complexity-classifier.module.d.ts +3 -0
  62. package/dist/internal/complexity-classifier/complexity-classifier.module.d.ts.map +1 -0
  63. package/dist/internal/complexity-classifier/complexity-classifier.module.js +30 -0
  64. package/dist/internal/complexity-classifier/complexity-classifier.module.js.map +1 -0
  65. package/dist/internal/complexity-classifier/complexity-classifier.service.d.ts +57 -0
  66. package/dist/internal/complexity-classifier/complexity-classifier.service.d.ts.map +1 -0
  67. package/dist/internal/complexity-classifier/complexity-classifier.service.js +285 -0
  68. package/dist/internal/complexity-classifier/complexity-classifier.service.js.map +1 -0
  69. package/dist/internal/complexity-classifier/complexity-classifier.types.d.ts +78 -0
  70. package/dist/internal/complexity-classifier/complexity-classifier.types.d.ts.map +1 -0
  71. package/dist/internal/complexity-classifier/complexity-classifier.types.js +20 -0
  72. package/dist/internal/complexity-classifier/complexity-classifier.types.js.map +1 -0
  73. package/dist/internal/complexity-classifier/index.d.ts +7 -0
  74. package/dist/internal/complexity-classifier/index.d.ts.map +1 -0
  75. package/dist/internal/complexity-classifier/index.js +25 -0
  76. package/dist/internal/complexity-classifier/index.js.map +1 -0
  77. package/dist/internal/crypt/crypt-client.service.spec.d.ts +2 -0
  78. package/dist/internal/crypt/crypt-client.service.spec.d.ts.map +1 -0
  79. package/dist/internal/crypt/crypt-client.service.spec.js +17 -0
  80. package/dist/internal/crypt/crypt-client.service.spec.js.map +1 -0
  81. package/dist/internal/crypt/crypt.client.d.ts +10 -0
  82. package/dist/internal/crypt/crypt.client.d.ts.map +1 -0
  83. package/dist/internal/crypt/crypt.client.js +78 -0
  84. package/dist/internal/crypt/crypt.client.js.map +1 -0
  85. package/dist/internal/crypt/crypt.module.d.ts +3 -0
  86. package/dist/internal/crypt/crypt.module.d.ts.map +1 -0
  87. package/dist/internal/crypt/crypt.module.js +23 -0
  88. package/dist/internal/crypt/crypt.module.js.map +1 -0
  89. package/dist/internal/crypt/index.d.ts +3 -0
  90. package/dist/internal/crypt/index.d.ts.map +1 -0
  91. package/dist/internal/crypt/index.js +19 -0
  92. package/dist/internal/crypt/index.js.map +1 -0
  93. package/dist/internal/email/dto/email.dto.d.ts +62 -0
  94. package/dist/internal/email/dto/email.dto.d.ts.map +1 -0
  95. package/dist/internal/email/dto/email.dto.js +50 -0
  96. package/dist/internal/email/dto/email.dto.js.map +1 -0
  97. package/dist/internal/email/index.d.ts +10 -0
  98. package/dist/internal/email/index.d.ts.map +1 -0
  99. package/dist/internal/email/index.js +29 -0
  100. package/dist/internal/email/index.js.map +1 -0
  101. package/dist/internal/email/sendcloud.client.d.ts +103 -0
  102. package/dist/internal/email/sendcloud.client.d.ts.map +1 -0
  103. package/dist/internal/email/sendcloud.client.js +336 -0
  104. package/dist/internal/email/sendcloud.client.js.map +1 -0
  105. package/dist/internal/exchange-rate/exchange-rate.client.d.ts +49 -0
  106. package/dist/internal/exchange-rate/exchange-rate.client.d.ts.map +1 -0
  107. package/dist/internal/exchange-rate/exchange-rate.client.js +166 -0
  108. package/dist/internal/exchange-rate/exchange-rate.client.js.map +1 -0
  109. package/dist/internal/exchange-rate/exchange-rate.module.d.ts +3 -0
  110. package/dist/internal/exchange-rate/exchange-rate.module.d.ts.map +1 -0
  111. package/dist/internal/exchange-rate/exchange-rate.module.js +23 -0
  112. package/dist/internal/exchange-rate/exchange-rate.module.js.map +1 -0
  113. package/dist/internal/exchange-rate/index.d.ts +3 -0
  114. package/dist/internal/exchange-rate/index.d.ts.map +1 -0
  115. package/dist/internal/exchange-rate/index.js +19 -0
  116. package/dist/internal/exchange-rate/index.js.map +1 -0
  117. package/dist/internal/file-cdn/dto/file-cdn.dto.d.ts +78 -0
  118. package/dist/internal/file-cdn/dto/file-cdn.dto.d.ts.map +1 -0
  119. package/dist/internal/file-cdn/dto/file-cdn.dto.js +70 -0
  120. package/dist/internal/file-cdn/dto/file-cdn.dto.js.map +1 -0
  121. package/dist/internal/file-cdn/file-cdn-client.service.spec.d.ts +2 -0
  122. package/dist/internal/file-cdn/file-cdn-client.service.spec.d.ts.map +1 -0
  123. package/dist/internal/file-cdn/file-cdn-client.service.spec.js +17 -0
  124. package/dist/internal/file-cdn/file-cdn-client.service.spec.js.map +1 -0
  125. package/dist/internal/file-cdn/file-cdn.client.d.ts +283 -0
  126. package/dist/internal/file-cdn/file-cdn.client.d.ts.map +1 -0
  127. package/dist/internal/file-cdn/file-cdn.client.js +526 -0
  128. package/dist/internal/file-cdn/file-cdn.client.js.map +1 -0
  129. package/dist/internal/file-cdn/file-cdn.module.d.ts +3 -0
  130. package/dist/internal/file-cdn/file-cdn.module.d.ts.map +1 -0
  131. package/dist/internal/file-cdn/file-cdn.module.js +32 -0
  132. package/dist/internal/file-cdn/file-cdn.module.js.map +1 -0
  133. package/dist/internal/file-cdn/index.d.ts +35 -0
  134. package/dist/internal/file-cdn/index.d.ts.map +1 -0
  135. package/dist/internal/file-cdn/index.js +54 -0
  136. package/dist/internal/file-cdn/index.js.map +1 -0
  137. package/dist/internal/file-storage/config/file.config.d.ts +12 -0
  138. package/dist/internal/file-storage/config/file.config.d.ts.map +1 -0
  139. package/dist/internal/file-storage/config/file.config.js +15 -0
  140. package/dist/internal/file-storage/config/file.config.js.map +1 -0
  141. package/dist/internal/file-storage/dto/file.dto.d.ts +163 -0
  142. package/dist/internal/file-storage/dto/file.dto.d.ts.map +1 -0
  143. package/dist/internal/file-storage/dto/file.dto.js +98 -0
  144. package/dist/internal/file-storage/dto/file.dto.js.map +1 -0
  145. package/dist/internal/file-storage/file-gcs.client.d.ts +33 -0
  146. package/dist/internal/file-storage/file-gcs.client.d.ts.map +1 -0
  147. package/dist/internal/file-storage/file-gcs.client.js +118 -0
  148. package/dist/internal/file-storage/file-gcs.client.js.map +1 -0
  149. package/dist/internal/file-storage/file-qiniu.client.d.ts +199 -0
  150. package/dist/internal/file-storage/file-qiniu.client.d.ts.map +1 -0
  151. package/dist/internal/file-storage/file-qiniu.client.js +526 -0
  152. package/dist/internal/file-storage/file-qiniu.client.js.map +1 -0
  153. package/dist/internal/file-storage/file-s3.client.d.ts +158 -0
  154. package/dist/internal/file-storage/file-s3.client.d.ts.map +1 -0
  155. package/dist/internal/file-storage/file-s3.client.js +865 -0
  156. package/dist/internal/file-storage/file-s3.client.js.map +1 -0
  157. package/dist/internal/file-storage/file-storage.interface.d.ts +38 -0
  158. package/dist/internal/file-storage/file-storage.interface.d.ts.map +1 -0
  159. package/dist/internal/file-storage/file-storage.interface.js +3 -0
  160. package/dist/internal/file-storage/file-storage.interface.js.map +1 -0
  161. package/dist/internal/file-storage/file-tos.client.d.ts +109 -0
  162. package/dist/internal/file-storage/file-tos.client.d.ts.map +1 -0
  163. package/dist/internal/file-storage/file-tos.client.js +630 -0
  164. package/dist/internal/file-storage/file-tos.client.js.map +1 -0
  165. package/dist/internal/file-storage/file-us3.client.d.ts +30 -0
  166. package/dist/internal/file-storage/file-us3.client.d.ts.map +1 -0
  167. package/dist/internal/file-storage/file-us3.client.js +129 -0
  168. package/dist/internal/file-storage/file-us3.client.js.map +1 -0
  169. package/dist/internal/file-storage/index.d.ts +15 -0
  170. package/dist/internal/file-storage/index.d.ts.map +1 -0
  171. package/dist/internal/file-storage/index.js +37 -0
  172. package/dist/internal/file-storage/index.js.map +1 -0
  173. package/dist/internal/health-check/health-check.client.d.ts +37 -0
  174. package/dist/internal/health-check/health-check.client.d.ts.map +1 -0
  175. package/dist/internal/health-check/health-check.client.js +142 -0
  176. package/dist/internal/health-check/health-check.client.js.map +1 -0
  177. package/dist/internal/health-check/health-check.module.d.ts +3 -0
  178. package/dist/internal/health-check/health-check.module.d.ts.map +1 -0
  179. package/dist/internal/health-check/health-check.module.js +33 -0
  180. package/dist/internal/health-check/health-check.module.js.map +1 -0
  181. package/dist/internal/health-check/index.d.ts +6 -0
  182. package/dist/internal/health-check/index.d.ts.map +1 -0
  183. package/dist/internal/health-check/index.js +11 -0
  184. package/dist/internal/health-check/index.js.map +1 -0
  185. package/dist/internal/ip-info/dto/ip-info.dto.d.ts +16 -0
  186. package/dist/internal/ip-info/dto/ip-info.dto.d.ts.map +1 -0
  187. package/dist/internal/ip-info/dto/ip-info.dto.js +3 -0
  188. package/dist/internal/ip-info/dto/ip-info.dto.js.map +1 -0
  189. package/dist/internal/ip-info/index.d.ts +4 -0
  190. package/dist/internal/ip-info/index.d.ts.map +1 -0
  191. package/dist/internal/ip-info/index.js +20 -0
  192. package/dist/internal/ip-info/index.js.map +1 -0
  193. package/dist/internal/ip-info/ip-info.client.d.ts +16 -0
  194. package/dist/internal/ip-info/ip-info.client.d.ts.map +1 -0
  195. package/dist/internal/ip-info/ip-info.client.js +77 -0
  196. package/dist/internal/ip-info/ip-info.client.js.map +1 -0
  197. package/dist/internal/ip-info/ip-info.module.d.ts +3 -0
  198. package/dist/internal/ip-info/ip-info.module.d.ts.map +1 -0
  199. package/dist/internal/ip-info/ip-info.module.js +28 -0
  200. package/dist/internal/ip-info/ip-info.module.js.map +1 -0
  201. package/dist/internal/mlflow/mlflow.client.d.ts +44 -0
  202. package/dist/internal/mlflow/mlflow.client.d.ts.map +1 -0
  203. package/dist/internal/mlflow/mlflow.client.js +184 -0
  204. package/dist/internal/mlflow/mlflow.client.js.map +1 -0
  205. package/dist/internal/mlflow/mlflow.module.d.ts +3 -0
  206. package/dist/internal/mlflow/mlflow.module.d.ts.map +1 -0
  207. package/dist/internal/mlflow/mlflow.module.js +23 -0
  208. package/dist/internal/mlflow/mlflow.module.js.map +1 -0
  209. package/dist/internal/model-research-proxy/anthropic-proxy-research.client.d.ts +52 -0
  210. package/dist/internal/model-research-proxy/anthropic-proxy-research.client.d.ts.map +1 -0
  211. package/dist/internal/model-research-proxy/anthropic-proxy-research.client.js +174 -0
  212. package/dist/internal/model-research-proxy/anthropic-proxy-research.client.js.map +1 -0
  213. package/dist/internal/model-research-proxy/anthropic-proxy-research.client.spec.d.ts +2 -0
  214. package/dist/internal/model-research-proxy/anthropic-proxy-research.client.spec.d.ts.map +1 -0
  215. package/dist/internal/model-research-proxy/anthropic-proxy-research.client.spec.js +145 -0
  216. package/dist/internal/model-research-proxy/anthropic-proxy-research.client.spec.js.map +1 -0
  217. package/dist/internal/model-research-proxy/anthropic-proxy-research.module.d.ts +3 -0
  218. package/dist/internal/model-research-proxy/anthropic-proxy-research.module.d.ts.map +1 -0
  219. package/dist/internal/model-research-proxy/anthropic-proxy-research.module.js +30 -0
  220. package/dist/internal/model-research-proxy/anthropic-proxy-research.module.js.map +1 -0
  221. package/dist/internal/model-research-proxy/index.d.ts +6 -0
  222. package/dist/internal/model-research-proxy/index.d.ts.map +1 -0
  223. package/dist/internal/model-research-proxy/index.js +24 -0
  224. package/dist/internal/model-research-proxy/index.js.map +1 -0
  225. package/dist/internal/model-verify/index.d.ts +4 -0
  226. package/dist/internal/model-verify/index.d.ts.map +1 -0
  227. package/dist/internal/model-verify/index.js +26 -0
  228. package/dist/internal/model-verify/index.js.map +1 -0
  229. package/dist/internal/model-verify/model-verify.client.d.ts +77 -0
  230. package/dist/internal/model-verify/model-verify.client.d.ts.map +1 -0
  231. package/dist/internal/model-verify/model-verify.client.js +324 -0
  232. package/dist/internal/model-verify/model-verify.client.js.map +1 -0
  233. package/dist/internal/ocr/dto/ocr.dto.d.ts +76 -0
  234. package/dist/internal/ocr/dto/ocr.dto.d.ts.map +1 -0
  235. package/dist/internal/ocr/dto/ocr.dto.js +48 -0
  236. package/dist/internal/ocr/dto/ocr.dto.js.map +1 -0
  237. package/dist/internal/ocr/index.d.ts +4 -0
  238. package/dist/internal/ocr/index.d.ts.map +1 -0
  239. package/dist/internal/ocr/index.js +20 -0
  240. package/dist/internal/ocr/index.js.map +1 -0
  241. package/dist/internal/ocr/ocr.client.d.ts +39 -0
  242. package/dist/internal/ocr/ocr.client.d.ts.map +1 -0
  243. package/dist/internal/ocr/ocr.client.js +112 -0
  244. package/dist/internal/ocr/ocr.client.js.map +1 -0
  245. package/dist/internal/ocr/ocr.module.d.ts +3 -0
  246. package/dist/internal/ocr/ocr.module.d.ts.map +1 -0
  247. package/dist/internal/ocr/ocr.module.js +28 -0
  248. package/dist/internal/ocr/ocr.module.js.map +1 -0
  249. package/dist/internal/openai/index.d.ts +3 -0
  250. package/dist/internal/openai/index.d.ts.map +1 -0
  251. package/dist/internal/openai/index.js +19 -0
  252. package/dist/internal/openai/index.js.map +1 -0
  253. package/dist/internal/openai/openai.client.d.ts +36 -0
  254. package/dist/internal/openai/openai.client.d.ts.map +1 -0
  255. package/dist/internal/openai/openai.client.js +112 -0
  256. package/dist/internal/openai/openai.client.js.map +1 -0
  257. package/dist/internal/openai/openai.module.d.ts +3 -0
  258. package/dist/internal/openai/openai.module.d.ts.map +1 -0
  259. package/dist/internal/openai/openai.module.js +30 -0
  260. package/dist/internal/openai/openai.module.js.map +1 -0
  261. package/dist/internal/openclaw/docker-exec.service.d.ts +132 -0
  262. package/dist/internal/openclaw/docker-exec.service.d.ts.map +1 -0
  263. package/dist/internal/openclaw/docker-exec.service.js +544 -0
  264. package/dist/internal/openclaw/docker-exec.service.js.map +1 -0
  265. package/dist/internal/openclaw/index.d.ts +14 -0
  266. package/dist/internal/openclaw/index.d.ts.map +1 -0
  267. package/dist/internal/openclaw/index.js +32 -0
  268. package/dist/internal/openclaw/index.js.map +1 -0
  269. package/dist/internal/openclaw/openclaw-agent-coordination.client.d.ts +73 -0
  270. package/dist/internal/openclaw/openclaw-agent-coordination.client.d.ts.map +1 -0
  271. package/dist/internal/openclaw/openclaw-agent-coordination.client.js +249 -0
  272. package/dist/internal/openclaw/openclaw-agent-coordination.client.js.map +1 -0
  273. package/dist/internal/openclaw/openclaw-context-status.client.d.ts +66 -0
  274. package/dist/internal/openclaw/openclaw-context-status.client.d.ts.map +1 -0
  275. package/dist/internal/openclaw/openclaw-context-status.client.js +164 -0
  276. package/dist/internal/openclaw/openclaw-context-status.client.js.map +1 -0
  277. package/dist/internal/openclaw/openclaw-cron.client.d.ts +61 -0
  278. package/dist/internal/openclaw/openclaw-cron.client.d.ts.map +1 -0
  279. package/dist/internal/openclaw/openclaw-cron.client.js +416 -0
  280. package/dist/internal/openclaw/openclaw-cron.client.js.map +1 -0
  281. package/dist/internal/openclaw/openclaw-gateway.client.d.ts +41 -0
  282. package/dist/internal/openclaw/openclaw-gateway.client.d.ts.map +1 -0
  283. package/dist/internal/openclaw/openclaw-gateway.client.js +175 -0
  284. package/dist/internal/openclaw/openclaw-gateway.client.js.map +1 -0
  285. package/dist/internal/openclaw/openclaw-skill-sync.client.d.ts +222 -0
  286. package/dist/internal/openclaw/openclaw-skill-sync.client.d.ts.map +1 -0
  287. package/dist/internal/openclaw/openclaw-skill-sync.client.js +720 -0
  288. package/dist/internal/openclaw/openclaw-skill-sync.client.js.map +1 -0
  289. package/dist/internal/openclaw/openclaw.client.d.ts +602 -0
  290. package/dist/internal/openclaw/openclaw.client.d.ts.map +1 -0
  291. package/dist/internal/openclaw/openclaw.client.js +3062 -0
  292. package/dist/internal/openclaw/openclaw.client.js.map +1 -0
  293. package/dist/internal/openclaw/openclaw.module.d.ts +3 -0
  294. package/dist/internal/openclaw/openclaw.module.d.ts.map +1 -0
  295. package/dist/internal/openclaw/openclaw.module.js +62 -0
  296. package/dist/internal/openclaw/openclaw.module.js.map +1 -0
  297. package/dist/internal/openclaw/skill-translation.service.d.ts +39 -0
  298. package/dist/internal/openclaw/skill-translation.service.d.ts.map +1 -0
  299. package/dist/internal/openclaw/skill-translation.service.js +217 -0
  300. package/dist/internal/openclaw/skill-translation.service.js.map +1 -0
  301. package/dist/internal/openclaw/types/cron.types.d.ts +112 -0
  302. package/dist/internal/openclaw/types/cron.types.d.ts.map +1 -0
  303. package/dist/internal/openclaw/types/cron.types.js +9 -0
  304. package/dist/internal/openclaw/types/cron.types.js.map +1 -0
  305. package/dist/internal/openspeech/index.d.ts +35 -0
  306. package/dist/internal/openspeech/index.d.ts.map +1 -0
  307. package/dist/internal/openspeech/index.js +56 -0
  308. package/dist/internal/openspeech/index.js.map +1 -0
  309. package/dist/internal/openspeech/openspeech.client.d.ts +304 -0
  310. package/dist/internal/openspeech/openspeech.client.d.ts.map +1 -0
  311. package/dist/internal/openspeech/openspeech.client.js +405 -0
  312. package/dist/internal/openspeech/openspeech.client.js.map +1 -0
  313. package/dist/internal/openspeech/openspeech.factory.d.ts +247 -0
  314. package/dist/internal/openspeech/openspeech.factory.d.ts.map +1 -0
  315. package/dist/internal/openspeech/openspeech.factory.js +406 -0
  316. package/dist/internal/openspeech/openspeech.factory.js.map +1 -0
  317. package/dist/internal/openspeech/openspeech.module.d.ts +45 -0
  318. package/dist/internal/openspeech/openspeech.module.d.ts.map +1 -0
  319. package/dist/internal/openspeech/openspeech.module.js +68 -0
  320. package/dist/internal/openspeech/openspeech.module.js.map +1 -0
  321. package/dist/internal/openspeech/providers/aliyun.provider.d.ts +125 -0
  322. package/dist/internal/openspeech/providers/aliyun.provider.d.ts.map +1 -0
  323. package/dist/internal/openspeech/providers/aliyun.provider.js +274 -0
  324. package/dist/internal/openspeech/providers/aliyun.provider.js.map +1 -0
  325. package/dist/internal/openspeech/providers/base.provider.d.ts +98 -0
  326. package/dist/internal/openspeech/providers/base.provider.d.ts.map +1 -0
  327. package/dist/internal/openspeech/providers/base.provider.js +87 -0
  328. package/dist/internal/openspeech/providers/base.provider.js.map +1 -0
  329. package/dist/internal/openspeech/providers/index.d.ts +10 -0
  330. package/dist/internal/openspeech/providers/index.d.ts.map +1 -0
  331. package/dist/internal/openspeech/providers/index.js +26 -0
  332. package/dist/internal/openspeech/providers/index.js.map +1 -0
  333. package/dist/internal/openspeech/providers/volcengine-streaming.provider.d.ts +291 -0
  334. package/dist/internal/openspeech/providers/volcengine-streaming.provider.d.ts.map +1 -0
  335. package/dist/internal/openspeech/providers/volcengine-streaming.provider.js +1358 -0
  336. package/dist/internal/openspeech/providers/volcengine-streaming.provider.js.map +1 -0
  337. package/dist/internal/openspeech/providers/volcengine.provider.d.ts +144 -0
  338. package/dist/internal/openspeech/providers/volcengine.provider.d.ts.map +1 -0
  339. package/dist/internal/openspeech/providers/volcengine.provider.js +337 -0
  340. package/dist/internal/openspeech/providers/volcengine.provider.js.map +1 -0
  341. package/dist/internal/openspeech/types.d.ts +408 -0
  342. package/dist/internal/openspeech/types.d.ts.map +1 -0
  343. package/dist/internal/openspeech/types.js +11 -0
  344. package/dist/internal/openspeech/types.js.map +1 -0
  345. package/dist/internal/provider-verify/index.d.ts +6 -0
  346. package/dist/internal/provider-verify/index.d.ts.map +1 -0
  347. package/dist/internal/provider-verify/index.js +24 -0
  348. package/dist/internal/provider-verify/index.js.map +1 -0
  349. package/dist/internal/provider-verify/provider-verify.client.d.ts +55 -0
  350. package/dist/internal/provider-verify/provider-verify.client.d.ts.map +1 -0
  351. package/dist/internal/provider-verify/provider-verify.client.js +284 -0
  352. package/dist/internal/provider-verify/provider-verify.client.js.map +1 -0
  353. package/dist/internal/provider-verify/provider-verify.module.d.ts +3 -0
  354. package/dist/internal/provider-verify/provider-verify.module.d.ts.map +1 -0
  355. package/dist/internal/provider-verify/provider-verify.module.js +28 -0
  356. package/dist/internal/provider-verify/provider-verify.module.js.map +1 -0
  357. package/dist/internal/routing-llm/index.d.ts +7 -0
  358. package/dist/internal/routing-llm/index.d.ts.map +1 -0
  359. package/dist/internal/routing-llm/index.js +25 -0
  360. package/dist/internal/routing-llm/index.js.map +1 -0
  361. package/dist/internal/routing-llm/interfaces/routing-llm.interface.d.ts +88 -0
  362. package/dist/internal/routing-llm/interfaces/routing-llm.interface.d.ts.map +1 -0
  363. package/dist/internal/routing-llm/interfaces/routing-llm.interface.js +64 -0
  364. package/dist/internal/routing-llm/interfaces/routing-llm.interface.js.map +1 -0
  365. package/dist/internal/routing-llm/routing-llm.client.d.ts +32 -0
  366. package/dist/internal/routing-llm/routing-llm.client.d.ts.map +1 -0
  367. package/dist/internal/routing-llm/routing-llm.client.js +275 -0
  368. package/dist/internal/routing-llm/routing-llm.client.js.map +1 -0
  369. package/dist/internal/routing-llm/routing-llm.module.d.ts +3 -0
  370. package/dist/internal/routing-llm/routing-llm.module.d.ts.map +1 -0
  371. package/dist/internal/routing-llm/routing-llm.module.js +28 -0
  372. package/dist/internal/routing-llm/routing-llm.module.js.map +1 -0
  373. package/dist/internal/sms/dto/sms.dto.d.ts +156 -0
  374. package/dist/internal/sms/dto/sms.dto.d.ts.map +1 -0
  375. package/dist/internal/sms/dto/sms.dto.js +78 -0
  376. package/dist/internal/sms/dto/sms.dto.js.map +1 -0
  377. package/dist/internal/sms/index.d.ts +14 -0
  378. package/dist/internal/sms/index.d.ts.map +1 -0
  379. package/dist/internal/sms/index.js +37 -0
  380. package/dist/internal/sms/index.js.map +1 -0
  381. package/dist/internal/sms/sms-aliyun.client.d.ts +19 -0
  382. package/dist/internal/sms/sms-aliyun.client.d.ts.map +1 -0
  383. package/dist/internal/sms/sms-aliyun.client.js +74 -0
  384. package/dist/internal/sms/sms-aliyun.client.js.map +1 -0
  385. package/dist/internal/sms/sms-http.client.d.ts +21 -0
  386. package/dist/internal/sms/sms-http.client.d.ts.map +1 -0
  387. package/dist/internal/sms/sms-http.client.js +76 -0
  388. package/dist/internal/sms/sms-http.client.js.map +1 -0
  389. package/dist/internal/sms/sms-tencent.client.d.ts +18 -0
  390. package/dist/internal/sms/sms-tencent.client.d.ts.map +1 -0
  391. package/dist/internal/sms/sms-tencent.client.js +76 -0
  392. package/dist/internal/sms/sms-tencent.client.js.map +1 -0
  393. package/dist/internal/sms/sms-volcengine.client.d.ts +29 -0
  394. package/dist/internal/sms/sms-volcengine.client.d.ts.map +1 -0
  395. package/dist/internal/sms/sms-volcengine.client.js +124 -0
  396. package/dist/internal/sms/sms-volcengine.client.js.map +1 -0
  397. package/dist/internal/sms/sms-zxjc.client.d.ts +18 -0
  398. package/dist/internal/sms/sms-zxjc.client.d.ts.map +1 -0
  399. package/dist/internal/sms/sms-zxjc.client.js +40 -0
  400. package/dist/internal/sms/sms-zxjc.client.js.map +1 -0
  401. package/dist/internal/sse/index.d.ts +3 -0
  402. package/dist/internal/sse/index.d.ts.map +1 -0
  403. package/dist/internal/sse/index.js +19 -0
  404. package/dist/internal/sse/index.js.map +1 -0
  405. package/dist/internal/sse/sse-client.service.spec.d.ts +2 -0
  406. package/dist/internal/sse/sse-client.service.spec.d.ts.map +1 -0
  407. package/dist/internal/sse/sse-client.service.spec.js +17 -0
  408. package/dist/internal/sse/sse-client.service.spec.js.map +1 -0
  409. package/dist/internal/sse/sse.client.d.ts +63 -0
  410. package/dist/internal/sse/sse.client.d.ts.map +1 -0
  411. package/dist/internal/sse/sse.client.js +304 -0
  412. package/dist/internal/sse/sse.client.js.map +1 -0
  413. package/dist/internal/sse/sse.module.d.ts +3 -0
  414. package/dist/internal/sse/sse.module.d.ts.map +1 -0
  415. package/dist/internal/sse/sse.module.js +30 -0
  416. package/dist/internal/sse/sse.module.js.map +1 -0
  417. package/dist/internal/third-party-sse/index.d.ts +3 -0
  418. package/dist/internal/third-party-sse/index.d.ts.map +1 -0
  419. package/dist/internal/third-party-sse/index.js +19 -0
  420. package/dist/internal/third-party-sse/index.js.map +1 -0
  421. package/dist/internal/third-party-sse/third-party-sse.client.d.ts +14 -0
  422. package/dist/internal/third-party-sse/third-party-sse.client.d.ts.map +1 -0
  423. package/dist/internal/third-party-sse/third-party-sse.client.js +63 -0
  424. package/dist/internal/third-party-sse/third-party-sse.client.js.map +1 -0
  425. package/dist/internal/third-party-sse/third-party-sse.module.d.ts +3 -0
  426. package/dist/internal/third-party-sse/third-party-sse.module.d.ts.map +1 -0
  427. package/dist/internal/third-party-sse/third-party-sse.module.js +23 -0
  428. package/dist/internal/third-party-sse/third-party-sse.module.js.map +1 -0
  429. package/dist/internal/third-party-sse/third-party-sse.service.spec.d.ts +2 -0
  430. package/dist/internal/third-party-sse/third-party-sse.service.spec.d.ts.map +1 -0
  431. package/dist/internal/third-party-sse/third-party-sse.service.spec.js +17 -0
  432. package/dist/internal/third-party-sse/third-party-sse.service.spec.js.map +1 -0
  433. package/dist/internal/verify/index.d.ts +3 -0
  434. package/dist/internal/verify/index.d.ts.map +1 -0
  435. package/dist/internal/verify/index.js +19 -0
  436. package/dist/internal/verify/index.js.map +1 -0
  437. package/dist/internal/verify/verify.client.d.ts +12 -0
  438. package/dist/internal/verify/verify.client.d.ts.map +1 -0
  439. package/dist/internal/verify/verify.client.js +57 -0
  440. package/dist/internal/verify/verify.client.js.map +1 -0
  441. package/dist/internal/verify/verify.module.d.ts +3 -0
  442. package/dist/internal/verify/verify.module.d.ts.map +1 -0
  443. package/dist/internal/verify/verify.module.js +23 -0
  444. package/dist/internal/verify/verify.module.js.map +1 -0
  445. package/dist/internal/volcengine-tts/dto/tts.dto.d.ts +52 -0
  446. package/dist/internal/volcengine-tts/dto/tts.dto.d.ts.map +1 -0
  447. package/dist/internal/volcengine-tts/dto/tts.dto.js +59 -0
  448. package/dist/internal/volcengine-tts/dto/tts.dto.js.map +1 -0
  449. package/dist/internal/volcengine-tts/index.d.ts +4 -0
  450. package/dist/internal/volcengine-tts/index.d.ts.map +1 -0
  451. package/dist/internal/volcengine-tts/index.js +20 -0
  452. package/dist/internal/volcengine-tts/index.js.map +1 -0
  453. package/dist/internal/volcengine-tts/volcengine-tts.client.d.ts +104 -0
  454. package/dist/internal/volcengine-tts/volcengine-tts.client.d.ts.map +1 -0
  455. package/dist/internal/volcengine-tts/volcengine-tts.client.js +690 -0
  456. package/dist/internal/volcengine-tts/volcengine-tts.client.js.map +1 -0
  457. package/dist/internal/volcengine-tts/volcengine-tts.module.d.ts +3 -0
  458. package/dist/internal/volcengine-tts/volcengine-tts.module.d.ts.map +1 -0
  459. package/dist/internal/volcengine-tts/volcengine-tts.module.js +34 -0
  460. package/dist/internal/volcengine-tts/volcengine-tts.module.js.map +1 -0
  461. package/dist/internal/wechat/index.d.ts +3 -0
  462. package/dist/internal/wechat/index.d.ts.map +1 -0
  463. package/dist/internal/wechat/index.js +19 -0
  464. package/dist/internal/wechat/index.js.map +1 -0
  465. package/dist/internal/wechat/wechat-client.service.spec.d.ts +2 -0
  466. package/dist/internal/wechat/wechat-client.service.spec.d.ts.map +1 -0
  467. package/dist/internal/wechat/wechat-client.service.spec.js +17 -0
  468. package/dist/internal/wechat/wechat-client.service.spec.js.map +1 -0
  469. package/dist/internal/wechat/wechat.client.d.ts +3 -0
  470. package/dist/internal/wechat/wechat.client.d.ts.map +1 -0
  471. package/dist/internal/wechat/wechat.client.js +17 -0
  472. package/dist/internal/wechat/wechat.client.js.map +1 -0
  473. package/dist/internal/wechat/wechat.module.d.ts +3 -0
  474. package/dist/internal/wechat/wechat.module.d.ts.map +1 -0
  475. package/dist/internal/wechat/wechat.module.js +21 -0
  476. package/dist/internal/wechat/wechat.module.js.map +1 -0
  477. package/dist/plugin/decorators/inject-client.decorator.d.ts +40 -0
  478. package/dist/plugin/decorators/inject-client.decorator.d.ts.map +1 -0
  479. package/dist/plugin/decorators/inject-client.decorator.js +63 -0
  480. package/dist/plugin/decorators/inject-client.decorator.js.map +1 -0
  481. package/dist/plugin/index.d.ts +14 -0
  482. package/dist/plugin/index.d.ts.map +1 -0
  483. package/dist/plugin/index.js +34 -0
  484. package/dist/plugin/index.js.map +1 -0
  485. package/dist/plugin/interceptors/http-logging.interceptor.d.ts +51 -0
  486. package/dist/plugin/interceptors/http-logging.interceptor.d.ts.map +1 -0
  487. package/dist/plugin/interceptors/http-logging.interceptor.js +84 -0
  488. package/dist/plugin/interceptors/http-logging.interceptor.js.map +1 -0
  489. package/dist/plugin/interfaces/client.interface.d.ts +80 -0
  490. package/dist/plugin/interfaces/client.interface.d.ts.map +1 -0
  491. package/dist/plugin/interfaces/client.interface.js +8 -0
  492. package/dist/plugin/interfaces/client.interface.js.map +1 -0
  493. package/dist/plugin/utils/retry.util.d.ts +49 -0
  494. package/dist/plugin/utils/retry.util.d.ts.map +1 -0
  495. package/dist/plugin/utils/retry.util.js +110 -0
  496. package/dist/plugin/utils/retry.util.js.map +1 -0
  497. package/package.json +55 -0
@@ -0,0 +1,865 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.FileS3Client = void 0;
37
+ const client_s3_1 = require("@aws-sdk/client-s3");
38
+ const fs = __importStar(require("node:fs"));
39
+ const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
40
+ const rxjs_1 = require("rxjs");
41
+ const infra_contracts_1 = require("@dofe/infra-contracts");
42
+ const infra_common_1 = require("@dofe/infra-common");
43
+ const class_validator_1 = require("class-validator");
44
+ const infra_utils_1 = require("@dofe/infra-utils");
45
+ /**
46
+ * S3 File Storage Client
47
+ *
48
+ * 职责:仅负责与 S3 兼容的存储 API 通信
49
+ * - 不访问数据库
50
+ * - 不包含业务逻辑
51
+ */
52
+ class FileS3Client {
53
+ externalClient;
54
+ internalClient;
55
+ config;
56
+ storageConfig;
57
+ appConfig;
58
+ redis;
59
+ httpService;
60
+ logger;
61
+ urlRedisKey = 'privateDownloadUrl';
62
+ // 优化配置标志
63
+ enableRetryMechanism = process.env.S3_ENABLE_RETRY === 'true' || true; // 默认启用
64
+ enableEnhancedLogging = process.env.S3_ENHANCED_LOGGING === 'true' || true; // 默认启用
65
+ maxRetries = parseInt(process.env.S3_MAX_RETRIES || '3') || 3;
66
+ baseRetryDelay = parseInt(process.env.S3_RETRY_DELAY || '1000') || 1000;
67
+ /**
68
+ * 构造函数,用于创建AppFile类的实例
69
+ *
70
+ */
71
+ constructor(config, storageConfig, appConfig, redis, httpService, logger) {
72
+ this.config = config;
73
+ this.storageConfig = storageConfig;
74
+ this.appConfig = appConfig;
75
+ this.logger = logger;
76
+ this.redis = redis;
77
+ this.httpService = httpService;
78
+ // console.log('this.config', this.config);
79
+ this.setClient();
80
+ if (this.enableRetryMechanism || this.enableEnhancedLogging) {
81
+ if (infra_utils_1.environmentUtil.isProduction()) {
82
+ this.logger.info('S3 Service optimizations enabled', {
83
+ retryMechanism: this.enableRetryMechanism,
84
+ enhancedLogging: this.enableEnhancedLogging,
85
+ maxRetries: this.maxRetries,
86
+ baseRetryDelay: this.baseRetryDelay,
87
+ });
88
+ }
89
+ }
90
+ }
91
+ /**
92
+ * 通用重试包装器 - 支持指数退避和智能错误分类
93
+ */
94
+ async withRetry(operation, operationName, context, customMaxRetries) {
95
+ if (!this.enableRetryMechanism) {
96
+ return operation();
97
+ }
98
+ const maxRetries = customMaxRetries || this.maxRetries;
99
+ const startTime = Date.now();
100
+ let lastError;
101
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
102
+ try {
103
+ const result = await operation();
104
+ if (this.enableEnhancedLogging && attempt > 1) {
105
+ this.logger.info(`${operationName} succeeded after retries`, {
106
+ operation: operationName,
107
+ attempt,
108
+ context,
109
+ duration: Date.now() - startTime,
110
+ });
111
+ }
112
+ return result;
113
+ }
114
+ catch (error) {
115
+ lastError = error;
116
+ // 不可重试的错误类型
117
+ const nonRetryableErrors = [
118
+ 'NoSuchKey',
119
+ 'NoSuchBucket',
120
+ 'AccessDenied',
121
+ 'InvalidAccessKeyId',
122
+ 'SignatureDoesNotMatch',
123
+ 'BucketNotEmpty',
124
+ 'InvalidRequest',
125
+ ];
126
+ const errorCode = error?.Code || error?.name;
127
+ if (nonRetryableErrors.includes(errorCode)) {
128
+ if (this.enableEnhancedLogging) {
129
+ this.logger.warn(`${operationName} failed with non-retryable error`, {
130
+ operation: operationName,
131
+ errorCode,
132
+ context,
133
+ attempt,
134
+ });
135
+ }
136
+ break;
137
+ }
138
+ if (attempt < maxRetries) {
139
+ const delay = Math.min(this.baseRetryDelay * Math.pow(2, attempt - 1), 5000); // 指数退避,最大5秒
140
+ if (this.enableEnhancedLogging) {
141
+ this.logger.warn(`${operationName} attempt ${attempt} failed, retrying`, {
142
+ operation: operationName,
143
+ error: error?.message,
144
+ errorCode,
145
+ attempt,
146
+ maxRetries,
147
+ nextRetryIn: delay,
148
+ context,
149
+ });
150
+ }
151
+ await new Promise((resolve) => setTimeout(resolve, delay));
152
+ }
153
+ else {
154
+ if (this.enableEnhancedLogging) {
155
+ this.logger.error(`${operationName} failed after all retries`, {
156
+ operation: operationName,
157
+ error: error?.message,
158
+ errorCode,
159
+ attempts: maxRetries,
160
+ context,
161
+ duration: Date.now() - startTime,
162
+ });
163
+ }
164
+ }
165
+ }
166
+ }
167
+ throw lastError;
168
+ }
169
+ /**
170
+ * 增强的错误处理 - 统一错误日志格式和分类
171
+ */
172
+ logOperationResult(operationName, success, context, error, duration) {
173
+ if (!this.enableEnhancedLogging) {
174
+ return;
175
+ }
176
+ const logData = {
177
+ operation: operationName,
178
+ success,
179
+ context,
180
+ ...(duration && { duration }),
181
+ ...(error && {
182
+ error: error?.message,
183
+ errorCode: error?.Code || error?.name,
184
+ requestId: error?.$metadata?.requestId,
185
+ }),
186
+ };
187
+ if (success) {
188
+ this.logger.info(`${operationName} completed successfully`, logData);
189
+ }
190
+ else {
191
+ this.logger.error(`${operationName} failed`, logData);
192
+ }
193
+ }
194
+ setClient() {
195
+ try {
196
+ // 创建凭证对象
197
+ const credentials = {
198
+ accessKeyId: this.storageConfig.accessKey,
199
+ secretAccessKey: this.storageConfig.secretKey,
200
+ };
201
+ // 优化的客户端配置
202
+ const clientConfig = {
203
+ credentials: credentials,
204
+ region: this.config.region,
205
+ // 添加重试和超时配置
206
+ maxAttempts: this.enableRetryMechanism ? this.maxRetries : 1,
207
+ requestHandler: {
208
+ requestTimeout: 30000, // 30秒超时
209
+ connectionTimeout: 5000, // 5秒连接超时
210
+ },
211
+ // 优化的HTTP配置
212
+ ...(process.env.NODE_ENV === 'production' && {
213
+ requestHandler: {
214
+ requestTimeout: 30000,
215
+ connectionTimeout: 5000,
216
+ httpsAgent: {
217
+ keepAlive: true,
218
+ maxSockets: 50,
219
+ },
220
+ },
221
+ }),
222
+ };
223
+ // 创建外部客户端对象
224
+ this.externalClient = new client_s3_1.S3Client({
225
+ ...clientConfig,
226
+ endpoint: this.config.endpoint,
227
+ });
228
+ // 创建内部客户端(生产环境使用内部端点)
229
+ if (infra_utils_1.environmentUtil.isProduction() && this.config.internalEndpoint) {
230
+ this.internalClient = new client_s3_1.S3Client({
231
+ ...clientConfig,
232
+ endpoint: this.config.internalEndpoint,
233
+ });
234
+ this.logger.info('S3 clients initialized with internal endpoint', {
235
+ externalEndpoint: this.config.endpoint,
236
+ internalEndpoint: this.config.internalEndpoint,
237
+ bucket: this.config.bucket,
238
+ region: this.config.region,
239
+ });
240
+ }
241
+ else {
242
+ this.internalClient = this.externalClient;
243
+ if (infra_utils_1.environmentUtil.isProduction()) {
244
+ this.logger.info('S3 client initialized (single endpoint)', {
245
+ endpoint: this.config.endpoint,
246
+ bucket: this.config.bucket,
247
+ region: this.config.region,
248
+ });
249
+ }
250
+ }
251
+ }
252
+ catch (error) {
253
+ this.logger.error('Failed to initialize S3 clients', {
254
+ error: error.message,
255
+ config: {
256
+ bucket: this.config.bucket,
257
+ region: this.config.region,
258
+ endpoint: this.config.endpoint,
259
+ },
260
+ });
261
+ throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.S3ClientInitializationError);
262
+ }
263
+ }
264
+ /**
265
+ * 获取存储桶的字符串表示
266
+ *
267
+ * @param bucket 存储桶名称,可选参数
268
+ * @returns 返回存储桶的字符串表示,若未提供bucket参数,则使用默认存储桶
269
+ */
270
+ getBucketString(bucket) {
271
+ const defaultBucket = this.config.bucket;
272
+ const finalBucket = bucket || defaultBucket;
273
+ return finalBucket;
274
+ }
275
+ /**
276
+ * 获取分片上传的ID
277
+ *
278
+ * @param key 文件在存储��中的键(Key)
279
+ * @param filePath 文件的本地路径
280
+ * @param bucket 存储桶的名称(可选),如果未指定,则使用默认的存储桶名称
281
+ * @returns 返回一个 Promise 对象,解析后得到分片上传的ID
282
+ */
283
+ async getMultipartUploadId(key, bucket) {
284
+ const finalBucket = this.getBucketString(bucket);
285
+ const params = {
286
+ Bucket: finalBucket,
287
+ Key: key,
288
+ };
289
+ const command = new client_s3_1.CreateMultipartUploadCommand(params);
290
+ const multipartUpload = await this.externalClient.send(command);
291
+ if (!multipartUpload?.UploadId) {
292
+ throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.InitiateMultipartUploadError);
293
+ }
294
+ const uploadId = multipartUpload.UploadId;
295
+ return uploadId;
296
+ }
297
+ async completeMultipartUpload(uploadId, key, parts, bucket) {
298
+ const finalBucket = this.getBucketString(bucket);
299
+ const params = {
300
+ Bucket: finalBucket,
301
+ Key: key,
302
+ MultipartUpload: { Parts: parts },
303
+ UploadId: uploadId,
304
+ };
305
+ try {
306
+ await this.externalClient.send(new client_s3_1.CompleteMultipartUploadCommand(params));
307
+ }
308
+ catch (e) {
309
+ this.logger.error('completeMultipartUpload error', e);
310
+ }
311
+ }
312
+ async fileDownloader(source) {
313
+ const context = {
314
+ key: source.key,
315
+ bucket: source.bucket,
316
+ };
317
+ const startTime = Date.now();
318
+ return this.withRetry(async () => {
319
+ const finalBucket = this.getBucketString(source.bucket);
320
+ const params = {
321
+ Bucket: finalBucket,
322
+ Key: source.key,
323
+ };
324
+ const data = await this.internalClient.send(new client_s3_1.GetObjectCommand(params));
325
+ // 使用 transformToByteArray 转换流数据
326
+ if (!data.Body) {
327
+ throw new Error('No body in response');
328
+ }
329
+ const buffer = Buffer.from(await data.Body.transformToByteArray());
330
+ const duration = Date.now() - startTime;
331
+ this.logOperationResult('fileDownloader', true, {
332
+ ...context,
333
+ size: buffer.length,
334
+ }, null, duration);
335
+ return buffer;
336
+ }, 'fileDownloader', context);
337
+ }
338
+ async fileUploader(buffer, destination) {
339
+ const context = {
340
+ key: destination.key,
341
+ bucket: destination.bucket,
342
+ size: buffer?.length,
343
+ };
344
+ const startTime = Date.now();
345
+ // 参数验证
346
+ if (!buffer || buffer.length === 0) {
347
+ const error = new Error('Buffer cannot be empty');
348
+ this.logOperationResult('fileUploader', false, context, error);
349
+ throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.InvalidParameters, {
350
+ message: 'invalidBuffer',
351
+ });
352
+ }
353
+ return this.withRetry(async () => {
354
+ const finalBucket = this.getBucketString(destination.bucket);
355
+ const params = {
356
+ Bucket: finalBucket,
357
+ Key: destination.key,
358
+ Body: buffer,
359
+ };
360
+ await this.internalClient.send(new client_s3_1.PutObjectCommand(params));
361
+ const duration = Date.now() - startTime;
362
+ this.logOperationResult('fileUploader', true, context, null, duration);
363
+ }, 'fileUploader', context);
364
+ }
365
+ async fileDataUploader(base64Data, key, bucket) {
366
+ const finalBucket = this.getBucketString(bucket);
367
+ // 将base64数据转换为Buffer
368
+ const buffer = Buffer.from(base64Data.replace(/^data:image\/\w+;base64,/, ''), 'base64');
369
+ const params = {
370
+ Bucket: finalBucket,
371
+ Key: key,
372
+ Body: buffer,
373
+ ContentEncoding: 'base64',
374
+ ContentType: 'image/png', // 假设上传的是JPEG图片
375
+ };
376
+ try {
377
+ await this.internalClient.send(new client_s3_1.PutObjectCommand(params));
378
+ this.logger.info('Base64 image uploaded successfully', {
379
+ key,
380
+ bucket: finalBucket,
381
+ });
382
+ }
383
+ catch (e) {
384
+ this.logger.error('uploadBase64ImageToS3 error', e);
385
+ throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.InternalServerError, {
386
+ message: 'uploadBase64ImageToS3Error',
387
+ });
388
+ }
389
+ }
390
+ /**
391
+ * 使用S3协议上传文件
392
+ *
393
+ * @param filePath 文件的本地路径
394
+ * @param key 文件在存储桶中的键(Key)
395
+ * @param bucket 存储桶的名称(可选),如果未指定,则使用默认的存储桶名称
396
+ * @returns 返回一个 Promise 对象,解析后得到上传结果
397
+ */
398
+ async uploadFile(filePath, key, bucket) {
399
+ const finalBucket = this.getBucketString(bucket);
400
+ const params = {
401
+ Bucket: finalBucket,
402
+ Key: key,
403
+ Body: fs.createReadStream(filePath),
404
+ };
405
+ try {
406
+ await this.internalClient.send(new client_s3_1.PutObjectCommand(params));
407
+ this.logger.info('File uploaded successfully', {
408
+ key,
409
+ bucket: finalBucket,
410
+ });
411
+ }
412
+ catch (e) {
413
+ this.logger.error('uploadFileToS3 error', e);
414
+ throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.InternalServerError, {
415
+ message: 'uploadFileToS3Error',
416
+ });
417
+ }
418
+ }
419
+ /**
420
+ * 设置文件的Content-Disposition属性为attachment。
421
+ * 这个方法首先会检查文件是否存在,然后根据提供的bucket参数获取最终的存储桶名称。
422
+ * 然后,它构建一个参数对象,该对象指定了操作的存储桶和键名,
423
+ * 以及要执行的操作——使用CopyObjectCommand命令替换元数据,
424
+ * 其中包括将Content-Disposition设置为attachment,同时保持原有的ContentType不变。
425
+ * 如果操作成功,它会记录一条成功的日志。
426
+ * 如果操作失败,它会记录错误并跳过操作。
427
+ *
428
+ * @param fileKey 文件在存储桶中的键名
429
+ * @param bucket 存储桶的名称(可选)
430
+ * @param maxRetries 最大重试次数,默认为2次
431
+ */
432
+ async setFileContentDisposition(fileKey, bucket, maxRetries = 2) {
433
+ const finalBucket = this.getBucketString(bucket);
434
+ const startTime = Date.now();
435
+ // 带重试机制的执行函数
436
+ const executeWithRetry = async (attempt = 1) => {
437
+ try {
438
+ // 首先检查文件是否存在并获取原始元数据
439
+ const headCommand = new client_s3_1.HeadObjectCommand({
440
+ Bucket: finalBucket,
441
+ Key: fileKey,
442
+ });
443
+ const headResponse = await this.internalClient.send(headCommand);
444
+ // 如果文件不存在,HeadObjectCommand 会抛出异常
445
+ // 如果到达这里,说明文件存在,可以继续设置 Content-Disposition
446
+ const copySource = encodeURIComponent(`${finalBucket}/${fileKey}`).replace(/%2F/g, '/');
447
+ const params = {
448
+ Bucket: finalBucket,
449
+ Key: fileKey,
450
+ CopySource: copySource,
451
+ MetadataDirective: 'REPLACE',
452
+ // 保持原有的 ContentType,如果没有则使用默认值
453
+ ContentType: headResponse.ContentType || 'application/octet-stream',
454
+ ContentDisposition: 'attachment',
455
+ // 保持原有的其他重要元数据
456
+ ...(headResponse.CacheControl && {
457
+ CacheControl: headResponse.CacheControl,
458
+ }),
459
+ ...(headResponse.ContentEncoding && {
460
+ ContentEncoding: headResponse.ContentEncoding,
461
+ }),
462
+ ...(headResponse.ContentLanguage && {
463
+ ContentLanguage: headResponse.ContentLanguage,
464
+ }),
465
+ ...(headResponse.Metadata && {
466
+ Metadata: headResponse.Metadata,
467
+ }),
468
+ };
469
+ await this.internalClient.send(new client_s3_1.CopyObjectCommand(params));
470
+ const duration = Date.now() - startTime;
471
+ this.logger.info('Content-Disposition set to attachment successfully', {
472
+ fileKey,
473
+ bucket: finalBucket,
474
+ originalContentType: headResponse.ContentType,
475
+ attempt,
476
+ duration,
477
+ });
478
+ }
479
+ catch (error) {
480
+ // 不可重试的错误
481
+ const nonRetryableErrors = [
482
+ 'NoSuchKey',
483
+ 'NoSuchBucket',
484
+ 'AccessDenied',
485
+ 'InvalidAccessKeyId',
486
+ ];
487
+ const errorCode = error?.Code || error?.name;
488
+ if (nonRetryableErrors.includes(errorCode)) {
489
+ if (errorCode === 'NoSuchKey') {
490
+ this.logger.warn('File not found when setting Content-Disposition, skipping operation', {
491
+ fileKey,
492
+ bucket: finalBucket,
493
+ error: error.message,
494
+ attempt,
495
+ });
496
+ // 文件不存在时不抛出异常,只是记录警告并跳过
497
+ return;
498
+ }
499
+ else {
500
+ this.logger.error('Non-retryable error setting Content-Disposition', {
501
+ fileKey,
502
+ bucket: finalBucket,
503
+ error: error.message,
504
+ errorCode,
505
+ attempt,
506
+ });
507
+ return; // 不抛异常,只记录错误
508
+ }
509
+ }
510
+ // 可重试的错误
511
+ if (attempt < maxRetries) {
512
+ const delay = Math.min(1000 * Math.pow(2, attempt - 1), 5000); // 指数退避,最大5秒
513
+ this.logger.warn(`Setting Content-Disposition failed on attempt ${attempt}, retrying in ${delay}ms`, {
514
+ fileKey,
515
+ bucket: finalBucket,
516
+ error: error.message,
517
+ errorCode,
518
+ attempt,
519
+ maxRetries,
520
+ nextRetryIn: delay,
521
+ });
522
+ await new Promise((resolve) => setTimeout(resolve, delay));
523
+ return executeWithRetry(attempt + 1);
524
+ }
525
+ else {
526
+ this.logger.error('All retries exhausted for setting Content-Disposition', {
527
+ fileKey,
528
+ bucket: finalBucket,
529
+ error: error.message,
530
+ errorCode,
531
+ attempts: maxRetries,
532
+ duration: Date.now() - startTime,
533
+ });
534
+ // 对于其他类型的错误,只记录错误,不中断主流程
535
+ }
536
+ }
537
+ };
538
+ return executeWithRetry();
539
+ }
540
+ /**
541
+ * 生成带签名的GET对象URL
542
+ *
543
+ * @param bucket 存储桶名称
544
+ * @param key 对象键名
545
+ * @param options GET对象选项,可选参数
546
+ * @returns 返回带签名的GET对象URL的Promise对象
547
+ */
548
+ async signGetUrl(bucket, key, options) {
549
+ try {
550
+ const cmd = new client_s3_1.GetObjectCommand({
551
+ Bucket: bucket,
552
+ Key: key,
553
+ });
554
+ const url = await (0, s3_request_presigner_1.getSignedUrl)(this.externalClient, cmd, options);
555
+ return this.replaceUrlToOwnDoamin(url);
556
+ }
557
+ catch (e) {
558
+ throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.S3NoSuchKey);
559
+ }
560
+ }
561
+ /**
562
+ * 获取批量上传预签名URL
563
+ *
564
+ * @param bucket 存储桶名称
565
+ * @param uploadId 分块上传ID
566
+ * @param key 对象键
567
+ * @param partNumber 分块号
568
+ * @returns 返回预签名URL的Promise对象
569
+ * @throws 当S3不存在指定键时,抛出ApiException异常
570
+ */
571
+ async getPresignedUrl(bucket, uploadId, key, partNumber) {
572
+ const finalBucket = this.getBucketString(bucket);
573
+ const params = {
574
+ Bucket: finalBucket,
575
+ Key: key,
576
+ UploadId: uploadId,
577
+ PartNumber: partNumber,
578
+ };
579
+ try {
580
+ const command = new client_s3_1.UploadPartCommand(params);
581
+ const presignedUrl = await (0, s3_request_presigner_1.getSignedUrl)(this.externalClient, command, {
582
+ expiresIn: 3600,
583
+ });
584
+ return this.replaceUrlToOwnDoamin(presignedUrl);
585
+ }
586
+ catch (e) {
587
+ throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.S3NoSuchKey);
588
+ }
589
+ }
590
+ async uploadToken(bucket, options) {
591
+ const finalBucket = this.getBucketString(bucket);
592
+ try {
593
+ const command = new client_s3_1.PutObjectCommand({
594
+ ...options,
595
+ Bucket: finalBucket,
596
+ Key: options?.saveKey,
597
+ });
598
+ const url = await (0, s3_request_presigner_1.getSignedUrl)(this.externalClient, command, {
599
+ expiresIn: 3600, // URL有效时间,单位为秒
600
+ });
601
+ return this.replaceUrlToOwnDoamin(url);
602
+ }
603
+ catch (e) {
604
+ throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.S3NoSuchKey);
605
+ }
606
+ }
607
+ async uploadTokenWithCallback(callbackAuthKey, scope, options, neeSpiltPart) {
608
+ const finalBucket = this.getBucketString(scope);
609
+ try {
610
+ const command = new client_s3_1.PutObjectCommand({
611
+ ...options,
612
+ Bucket: finalBucket,
613
+ Key: options?.saveKey,
614
+ });
615
+ const url = await (0, s3_request_presigner_1.getSignedUrl)(this.externalClient, command, {
616
+ expiresIn: 3600, // URL有效时间���单位为秒
617
+ });
618
+ return this.replaceUrlToOwnDoamin(url);
619
+ }
620
+ catch (e) {
621
+ throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.S3NoSuchKey);
622
+ }
623
+ }
624
+ /**
625
+ * 列出所有的存储桶
626
+ *
627
+ * @returns 返回包含存储桶信息的Promise对象
628
+ */
629
+ async listBuckets() {
630
+ try {
631
+ const cmd = new client_s3_1.ListBucketsCommand({});
632
+ return await this.internalClient.send(cmd);
633
+ }
634
+ catch (e) {
635
+ // throw new ApiException('s3NoSuchKey')
636
+ this.logger.error('No bucket', e);
637
+ return [];
638
+ }
639
+ }
640
+ getConfig() {
641
+ return this.config;
642
+ }
643
+ /**
644
+ * 列出指定前缀的文件列表
645
+ *
646
+ * @param prefix 文件前缀,默认为空字符串
647
+ * @param limit 返回的文件列表数量限制,默认为无限制
648
+ * @param delimiter 分隔符,用于返回文件夹列表,默认为空字符串
649
+ * @param bucket 存储桶名称,默认为当前实例的存储桶
650
+ * @param options 其他配置选项
651
+ * @returns 返回符合前缀的文件列表的Promise
652
+ */
653
+ async listFilesPrefix(prefix, limit, delimiter, bucket, options) {
654
+ const finalBucket = this.getBucketString(bucket);
655
+ options = options || {};
656
+ try {
657
+ const command = new client_s3_1.ListObjectsV2Command({
658
+ ...options,
659
+ Bucket: finalBucket,
660
+ Prefix: prefix + '/',
661
+ MaxKeys: limit,
662
+ Delimiter: delimiter,
663
+ });
664
+ const response = await this.internalClient.send(command);
665
+ const files = (response.Contents?.map((item) => item.Key) || []).filter((key) => key !== undefined);
666
+ return files;
667
+ }
668
+ catch (e) {
669
+ // throw new ApiException('s3NoSuchKey')
670
+ this.logger.error('No Such Key in bucket', e);
671
+ return [];
672
+ }
673
+ }
674
+ /**
675
+ * 删除指定文件
676
+ *
677
+ * @param fileKey 文件键名
678
+ * @param bucket 存储桶名称(可选,默认为当前实例的存储桶)
679
+ * @returns 返回一个Promise对象,解析为删除操作的结果
680
+ */
681
+ async deleteFile(fileKey, bucket) {
682
+ const context = {
683
+ fileKey,
684
+ bucket,
685
+ };
686
+ const startTime = Date.now();
687
+ // 验证 fileKey 不是 URL
688
+ if ((0, class_validator_1.isURL)(fileKey)) {
689
+ this.logOperationResult('deleteFile', false, context, new Error('Cannot delete URL, expecting file key'));
690
+ return false;
691
+ }
692
+ try {
693
+ return await this.withRetry(async () => {
694
+ const finalBucket = this.getBucketString(bucket);
695
+ const deleteCommand = new client_s3_1.DeleteObjectCommand({
696
+ Bucket: finalBucket,
697
+ Key: fileKey,
698
+ });
699
+ await this.internalClient.send(deleteCommand);
700
+ const duration = Date.now() - startTime;
701
+ this.logOperationResult('deleteFile', true, {
702
+ ...context,
703
+ bucket: finalBucket,
704
+ }, null, duration);
705
+ return true;
706
+ }, 'deleteFile', context);
707
+ }
708
+ catch (e) {
709
+ const duration = Date.now() - startTime;
710
+ this.logOperationResult('deleteFile', false, context, e, duration);
711
+ // 对于删除操作,如果文件不存在也算成功
712
+ if (e?.Code === 'NoSuchKey' || e?.name === 'NoSuchKey') {
713
+ this.logger.info('File already deleted or does not exist', context);
714
+ return true;
715
+ }
716
+ return false;
717
+ }
718
+ }
719
+ async batchDeleteFiles(fileKeys, bucket) {
720
+ const finalBucket = this.getBucketString(bucket);
721
+ const deleteParams = {
722
+ Bucket: finalBucket,
723
+ Delete: {
724
+ Objects: fileKeys.map((key) => ({ Key: key })),
725
+ },
726
+ };
727
+ try {
728
+ const command = new client_s3_1.DeleteObjectsCommand(deleteParams);
729
+ const response = await this.internalClient.send(command);
730
+ return response;
731
+ }
732
+ catch (e) {
733
+ this.logger.error('No Such Key in bucket', e);
734
+ return null;
735
+ }
736
+ }
737
+ async getFileInfo(fileKey, bucket) {
738
+ const finalBucket = this.getBucketString(bucket);
739
+ const params = {
740
+ Bucket: finalBucket,
741
+ Key: fileKey,
742
+ };
743
+ try {
744
+ const command = new client_s3_1.GetObjectCommand(params);
745
+ const { Metadata } = await this.internalClient.send(command);
746
+ // 注意:Metadata 只包含用户设置的元数据,不包括文件大小、MIME 类型等基本信息
747
+ // 如果你需要这些信息,你可以使用 HeadObjectCommand
748
+ // 示例:使用 HeadObjectCommand 获取文件的更多信息
749
+ const headCommand = new client_s3_1.HeadObjectCommand(params);
750
+ const headResponse = await this.internalClient.send(headCommand);
751
+ // headResponse 包含了文件的元数据和基本信息,如 ContentLength、ContentType 等
752
+ return {
753
+ ...headResponse,
754
+ // 可以根据需要添加或删除属性
755
+ Metadata: Metadata || {}, // 如果 GetObjectCommand 的 Metadata 为空,则提供一个空对象
756
+ };
757
+ }
758
+ catch (e) {
759
+ this.logger.error('No Such Key in bucket', e, fileKey);
760
+ return null;
761
+ }
762
+ }
763
+ /**
764
+ * 获取私有文件的下载链接
765
+ *
766
+ * @param fileKey 文件键名
767
+ * @param expire 链接过期时间,单位为秒,默认为30秒
768
+ * @param internal 是否使用内部客户端,默认为false
769
+ * @param bucket 存储桶名称(可选),如果未提供则使用配置中的默认存储桶
770
+ * @returns 返回一个Promise,解析后得到私有文件的下载链接
771
+ */
772
+ async getPrivateDownloadUrl(fileKey, expire = 30, internal = false, bucket) {
773
+ const finalBucket = bucket || this.getBucketString();
774
+ const cacheKey = `${finalBucket}:${fileKey}`;
775
+ const redisUrl = await this.redis.getData(this.urlRedisKey, cacheKey);
776
+ if (redisUrl) {
777
+ return redisUrl;
778
+ }
779
+ const getObjectCommand = new client_s3_1.GetObjectCommand({
780
+ Bucket: finalBucket,
781
+ Key: fileKey,
782
+ });
783
+ const client = internal ? this.internalClient : this.externalClient;
784
+ const signedUrl = await (0, s3_request_presigner_1.getSignedUrl)(client, getObjectCommand, {
785
+ expiresIn: expire,
786
+ }); // expiresIn 是预签名 URL 的有效期,单位是秒
787
+ this.logger.info('Presigned URL:', { signedUrl, bucket: finalBucket });
788
+ await this.redis.saveData(this.urlRedisKey, cacheKey, signedUrl);
789
+ return this.replaceUrlToOwnDoamin(signedUrl);
790
+ }
791
+ async fetchToBucket(resUrl, fileKey, bucket) {
792
+ const finalBucket = this.getBucketString(bucket);
793
+ // 从 URL 获取资源
794
+ const response = await (0, rxjs_1.firstValueFrom)(this.httpService.request({
795
+ method: 'get',
796
+ url: resUrl,
797
+ responseType: 'arraybuffer', // 改为 arraybuffer 避免流式传输问题
798
+ }));
799
+ // 获取 Content-Length
800
+ const contentLength = response.headers['content-length'];
801
+ const contentType = response.headers['content-type'];
802
+ // 创建 PutObjectCommand
803
+ const uploadParams = {
804
+ Bucket: finalBucket,
805
+ Key: fileKey,
806
+ Body: response.data,
807
+ };
808
+ // 设置 ContentType
809
+ if (contentType) {
810
+ uploadParams.ContentType = contentType;
811
+ }
812
+ else {
813
+ // 根据文件扩展名设置默认的ContentType
814
+ const fileExt = fileKey.split('.').pop()?.toLowerCase();
815
+ const mimeTypes = {
816
+ jpg: 'image/jpeg',
817
+ jpeg: 'image/jpeg',
818
+ png: 'image/png',
819
+ gif: 'image/gif',
820
+ webp: 'image/webp',
821
+ bmp: 'image/bmp',
822
+ svg: 'image/svg+xml',
823
+ };
824
+ if (fileExt && mimeTypes[fileExt]) {
825
+ uploadParams.ContentType = mimeTypes[fileExt];
826
+ }
827
+ else {
828
+ uploadParams.ContentType = 'image/png'; // 默认设置为PNG
829
+ }
830
+ }
831
+ // 设置 ContentLength(如果可用)
832
+ if (contentLength) {
833
+ uploadParams.ContentLength = parseInt(contentLength, 10);
834
+ }
835
+ const command = new client_s3_1.PutObjectCommand(uploadParams);
836
+ // 上传资源到 S3
837
+ const data = await this.internalClient.send(command);
838
+ this.logger.info('fetchToBucket S3 success', { data });
839
+ return data;
840
+ }
841
+ // OSS 文件复制
842
+ async copyFile(sourceBucket, sourceObject, targetBucket, targetObject) {
843
+ const copyParams = {
844
+ CopySource: `${sourceBucket}/${sourceObject}`,
845
+ Bucket: targetBucket,
846
+ Key: targetObject,
847
+ };
848
+ const command = new client_s3_1.CopyObjectCommand(copyParams);
849
+ const data = await this.internalClient.send(command);
850
+ await (0, client_s3_1.waitUntilObjectExists)({ client: this.internalClient, maxWaitTime: 30000 }, { Bucket: targetBucket, Key: targetObject });
851
+ return data;
852
+ }
853
+ replaceUrlToOwnDoamin(url) {
854
+ // if (this.config.domain && isURL(this.config.domain)) {
855
+ // const fileDomain = this.config.endpoint.replace('s3-', this.config.bucket + '.s3-')
856
+ // const newUrl = url.replace(fileDomain, this.config.domain)
857
+ // this.logger.info('replaceUrlToOwnDoamin old:', { url })
858
+ // this.logger.info('replaceUrlToOwnDoamin old:', { newUrl })
859
+ // return newUrl
860
+ // }
861
+ return url;
862
+ }
863
+ }
864
+ exports.FileS3Client = FileS3Client;
865
+ //# sourceMappingURL=file-s3.client.js.map