@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.
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/agentx/agentx-client.module.d.ts +10 -0
- package/dist/internal/agentx/agentx-client.module.d.ts.map +1 -0
- package/dist/internal/agentx/agentx-client.module.js +38 -0
- package/dist/internal/agentx/agentx-client.module.js.map +1 -0
- package/dist/internal/agentx/agentx-client.service.d.ts +570 -0
- package/dist/internal/agentx/agentx-client.service.d.ts.map +1 -0
- package/dist/internal/agentx/agentx-client.service.js +912 -0
- package/dist/internal/agentx/agentx-client.service.js.map +1 -0
- package/dist/internal/agentx/agentx-file-client.service.d.ts +48 -0
- package/dist/internal/agentx/agentx-file-client.service.d.ts.map +1 -0
- package/dist/internal/agentx/agentx-file-client.service.js +276 -0
- package/dist/internal/agentx/agentx-file-client.service.js.map +1 -0
- package/dist/internal/agentx/index.d.ts +9 -0
- package/dist/internal/agentx/index.d.ts.map +1 -0
- package/dist/internal/agentx/index.js +27 -0
- package/dist/internal/agentx/index.js.map +1 -0
- package/dist/internal/agentx/interfaces/file.interface.d.ts +21 -0
- package/dist/internal/agentx/interfaces/file.interface.d.ts.map +1 -0
- package/dist/internal/agentx/interfaces/file.interface.js +22 -0
- package/dist/internal/agentx/interfaces/file.interface.js.map +1 -0
- package/dist/internal/agentx/interfaces/task.interface.d.ts +74 -0
- package/dist/internal/agentx/interfaces/task.interface.d.ts.map +1 -0
- package/dist/internal/agentx/interfaces/task.interface.js +16 -0
- package/dist/internal/agentx/interfaces/task.interface.js.map +1 -0
- package/dist/internal/ai/index.d.ts +3 -0
- package/dist/internal/ai/index.d.ts.map +1 -0
- package/dist/internal/ai/index.js +19 -0
- package/dist/internal/ai/index.js.map +1 -0
- package/dist/internal/ai/risk-detection.client.d.ts +74 -0
- package/dist/internal/ai/risk-detection.client.d.ts.map +1 -0
- package/dist/internal/ai/risk-detection.client.js +224 -0
- package/dist/internal/ai/risk-detection.client.js.map +1 -0
- package/dist/internal/ai/risk-detection.module.d.ts +3 -0
- package/dist/internal/ai/risk-detection.module.d.ts.map +1 -0
- package/dist/internal/ai/risk-detection.module.js +35 -0
- package/dist/internal/ai/risk-detection.module.js.map +1 -0
- package/dist/internal/ai-provider/ai-provider.client.d.ts +81 -0
- package/dist/internal/ai-provider/ai-provider.client.d.ts.map +1 -0
- package/dist/internal/ai-provider/ai-provider.client.js +435 -0
- package/dist/internal/ai-provider/ai-provider.client.js.map +1 -0
- package/dist/internal/ai-provider/ai-provider.module.d.ts +3 -0
- package/dist/internal/ai-provider/ai-provider.module.d.ts.map +1 -0
- package/dist/internal/ai-provider/ai-provider.module.js +28 -0
- package/dist/internal/ai-provider/ai-provider.module.js.map +1 -0
- package/dist/internal/ai-provider/index.d.ts +4 -0
- package/dist/internal/ai-provider/index.d.ts.map +1 -0
- package/dist/internal/ai-provider/index.js +8 -0
- package/dist/internal/ai-provider/index.js.map +1 -0
- package/dist/internal/channel-verify/channel-verify.client.d.ts +31 -0
- package/dist/internal/channel-verify/channel-verify.client.d.ts.map +1 -0
- package/dist/internal/channel-verify/channel-verify.client.js +150 -0
- package/dist/internal/channel-verify/channel-verify.client.js.map +1 -0
- package/dist/internal/channel-verify/index.d.ts +5 -0
- package/dist/internal/channel-verify/index.d.ts.map +1 -0
- package/dist/internal/channel-verify/index.js +26 -0
- package/dist/internal/channel-verify/index.js.map +1 -0
- package/dist/internal/complexity-classifier/complexity-classifier.module.d.ts +3 -0
- package/dist/internal/complexity-classifier/complexity-classifier.module.d.ts.map +1 -0
- package/dist/internal/complexity-classifier/complexity-classifier.module.js +30 -0
- package/dist/internal/complexity-classifier/complexity-classifier.module.js.map +1 -0
- package/dist/internal/complexity-classifier/complexity-classifier.service.d.ts +57 -0
- package/dist/internal/complexity-classifier/complexity-classifier.service.d.ts.map +1 -0
- package/dist/internal/complexity-classifier/complexity-classifier.service.js +285 -0
- package/dist/internal/complexity-classifier/complexity-classifier.service.js.map +1 -0
- package/dist/internal/complexity-classifier/complexity-classifier.types.d.ts +78 -0
- package/dist/internal/complexity-classifier/complexity-classifier.types.d.ts.map +1 -0
- package/dist/internal/complexity-classifier/complexity-classifier.types.js +20 -0
- package/dist/internal/complexity-classifier/complexity-classifier.types.js.map +1 -0
- package/dist/internal/complexity-classifier/index.d.ts +7 -0
- package/dist/internal/complexity-classifier/index.d.ts.map +1 -0
- package/dist/internal/complexity-classifier/index.js +25 -0
- package/dist/internal/complexity-classifier/index.js.map +1 -0
- package/dist/internal/crypt/crypt-client.service.spec.d.ts +2 -0
- package/dist/internal/crypt/crypt-client.service.spec.d.ts.map +1 -0
- package/dist/internal/crypt/crypt-client.service.spec.js +17 -0
- package/dist/internal/crypt/crypt-client.service.spec.js.map +1 -0
- package/dist/internal/crypt/crypt.client.d.ts +10 -0
- package/dist/internal/crypt/crypt.client.d.ts.map +1 -0
- package/dist/internal/crypt/crypt.client.js +78 -0
- package/dist/internal/crypt/crypt.client.js.map +1 -0
- package/dist/internal/crypt/crypt.module.d.ts +3 -0
- package/dist/internal/crypt/crypt.module.d.ts.map +1 -0
- package/dist/internal/crypt/crypt.module.js +23 -0
- package/dist/internal/crypt/crypt.module.js.map +1 -0
- package/dist/internal/crypt/index.d.ts +3 -0
- package/dist/internal/crypt/index.d.ts.map +1 -0
- package/dist/internal/crypt/index.js +19 -0
- package/dist/internal/crypt/index.js.map +1 -0
- package/dist/internal/email/dto/email.dto.d.ts +62 -0
- package/dist/internal/email/dto/email.dto.d.ts.map +1 -0
- package/dist/internal/email/dto/email.dto.js +50 -0
- package/dist/internal/email/dto/email.dto.js.map +1 -0
- package/dist/internal/email/index.d.ts +10 -0
- package/dist/internal/email/index.d.ts.map +1 -0
- package/dist/internal/email/index.js +29 -0
- package/dist/internal/email/index.js.map +1 -0
- package/dist/internal/email/sendcloud.client.d.ts +103 -0
- package/dist/internal/email/sendcloud.client.d.ts.map +1 -0
- package/dist/internal/email/sendcloud.client.js +336 -0
- package/dist/internal/email/sendcloud.client.js.map +1 -0
- package/dist/internal/exchange-rate/exchange-rate.client.d.ts +49 -0
- package/dist/internal/exchange-rate/exchange-rate.client.d.ts.map +1 -0
- package/dist/internal/exchange-rate/exchange-rate.client.js +166 -0
- package/dist/internal/exchange-rate/exchange-rate.client.js.map +1 -0
- package/dist/internal/exchange-rate/exchange-rate.module.d.ts +3 -0
- package/dist/internal/exchange-rate/exchange-rate.module.d.ts.map +1 -0
- package/dist/internal/exchange-rate/exchange-rate.module.js +23 -0
- package/dist/internal/exchange-rate/exchange-rate.module.js.map +1 -0
- package/dist/internal/exchange-rate/index.d.ts +3 -0
- package/dist/internal/exchange-rate/index.d.ts.map +1 -0
- package/dist/internal/exchange-rate/index.js +19 -0
- package/dist/internal/exchange-rate/index.js.map +1 -0
- package/dist/internal/file-cdn/dto/file-cdn.dto.d.ts +78 -0
- package/dist/internal/file-cdn/dto/file-cdn.dto.d.ts.map +1 -0
- package/dist/internal/file-cdn/dto/file-cdn.dto.js +70 -0
- package/dist/internal/file-cdn/dto/file-cdn.dto.js.map +1 -0
- package/dist/internal/file-cdn/file-cdn-client.service.spec.d.ts +2 -0
- package/dist/internal/file-cdn/file-cdn-client.service.spec.d.ts.map +1 -0
- package/dist/internal/file-cdn/file-cdn-client.service.spec.js +17 -0
- package/dist/internal/file-cdn/file-cdn-client.service.spec.js.map +1 -0
- package/dist/internal/file-cdn/file-cdn.client.d.ts +283 -0
- package/dist/internal/file-cdn/file-cdn.client.d.ts.map +1 -0
- package/dist/internal/file-cdn/file-cdn.client.js +526 -0
- package/dist/internal/file-cdn/file-cdn.client.js.map +1 -0
- package/dist/internal/file-cdn/file-cdn.module.d.ts +3 -0
- package/dist/internal/file-cdn/file-cdn.module.d.ts.map +1 -0
- package/dist/internal/file-cdn/file-cdn.module.js +32 -0
- package/dist/internal/file-cdn/file-cdn.module.js.map +1 -0
- package/dist/internal/file-cdn/index.d.ts +35 -0
- package/dist/internal/file-cdn/index.d.ts.map +1 -0
- package/dist/internal/file-cdn/index.js +54 -0
- package/dist/internal/file-cdn/index.js.map +1 -0
- package/dist/internal/file-storage/config/file.config.d.ts +12 -0
- package/dist/internal/file-storage/config/file.config.d.ts.map +1 -0
- package/dist/internal/file-storage/config/file.config.js +15 -0
- package/dist/internal/file-storage/config/file.config.js.map +1 -0
- package/dist/internal/file-storage/dto/file.dto.d.ts +163 -0
- package/dist/internal/file-storage/dto/file.dto.d.ts.map +1 -0
- package/dist/internal/file-storage/dto/file.dto.js +98 -0
- package/dist/internal/file-storage/dto/file.dto.js.map +1 -0
- package/dist/internal/file-storage/file-gcs.client.d.ts +33 -0
- package/dist/internal/file-storage/file-gcs.client.d.ts.map +1 -0
- package/dist/internal/file-storage/file-gcs.client.js +118 -0
- package/dist/internal/file-storage/file-gcs.client.js.map +1 -0
- package/dist/internal/file-storage/file-qiniu.client.d.ts +199 -0
- package/dist/internal/file-storage/file-qiniu.client.d.ts.map +1 -0
- package/dist/internal/file-storage/file-qiniu.client.js +526 -0
- package/dist/internal/file-storage/file-qiniu.client.js.map +1 -0
- package/dist/internal/file-storage/file-s3.client.d.ts +158 -0
- package/dist/internal/file-storage/file-s3.client.d.ts.map +1 -0
- package/dist/internal/file-storage/file-s3.client.js +865 -0
- package/dist/internal/file-storage/file-s3.client.js.map +1 -0
- package/dist/internal/file-storage/file-storage.interface.d.ts +38 -0
- package/dist/internal/file-storage/file-storage.interface.d.ts.map +1 -0
- package/dist/internal/file-storage/file-storage.interface.js +3 -0
- package/dist/internal/file-storage/file-storage.interface.js.map +1 -0
- package/dist/internal/file-storage/file-tos.client.d.ts +109 -0
- package/dist/internal/file-storage/file-tos.client.d.ts.map +1 -0
- package/dist/internal/file-storage/file-tos.client.js +630 -0
- package/dist/internal/file-storage/file-tos.client.js.map +1 -0
- package/dist/internal/file-storage/file-us3.client.d.ts +30 -0
- package/dist/internal/file-storage/file-us3.client.d.ts.map +1 -0
- package/dist/internal/file-storage/file-us3.client.js +129 -0
- package/dist/internal/file-storage/file-us3.client.js.map +1 -0
- package/dist/internal/file-storage/index.d.ts +15 -0
- package/dist/internal/file-storage/index.d.ts.map +1 -0
- package/dist/internal/file-storage/index.js +37 -0
- package/dist/internal/file-storage/index.js.map +1 -0
- package/dist/internal/health-check/health-check.client.d.ts +37 -0
- package/dist/internal/health-check/health-check.client.d.ts.map +1 -0
- package/dist/internal/health-check/health-check.client.js +142 -0
- package/dist/internal/health-check/health-check.client.js.map +1 -0
- package/dist/internal/health-check/health-check.module.d.ts +3 -0
- package/dist/internal/health-check/health-check.module.d.ts.map +1 -0
- package/dist/internal/health-check/health-check.module.js +33 -0
- package/dist/internal/health-check/health-check.module.js.map +1 -0
- package/dist/internal/health-check/index.d.ts +6 -0
- package/dist/internal/health-check/index.d.ts.map +1 -0
- package/dist/internal/health-check/index.js +11 -0
- package/dist/internal/health-check/index.js.map +1 -0
- package/dist/internal/ip-info/dto/ip-info.dto.d.ts +16 -0
- package/dist/internal/ip-info/dto/ip-info.dto.d.ts.map +1 -0
- package/dist/internal/ip-info/dto/ip-info.dto.js +3 -0
- package/dist/internal/ip-info/dto/ip-info.dto.js.map +1 -0
- package/dist/internal/ip-info/index.d.ts +4 -0
- package/dist/internal/ip-info/index.d.ts.map +1 -0
- package/dist/internal/ip-info/index.js +20 -0
- package/dist/internal/ip-info/index.js.map +1 -0
- package/dist/internal/ip-info/ip-info.client.d.ts +16 -0
- package/dist/internal/ip-info/ip-info.client.d.ts.map +1 -0
- package/dist/internal/ip-info/ip-info.client.js +77 -0
- package/dist/internal/ip-info/ip-info.client.js.map +1 -0
- package/dist/internal/ip-info/ip-info.module.d.ts +3 -0
- package/dist/internal/ip-info/ip-info.module.d.ts.map +1 -0
- package/dist/internal/ip-info/ip-info.module.js +28 -0
- package/dist/internal/ip-info/ip-info.module.js.map +1 -0
- package/dist/internal/mlflow/mlflow.client.d.ts +44 -0
- package/dist/internal/mlflow/mlflow.client.d.ts.map +1 -0
- package/dist/internal/mlflow/mlflow.client.js +184 -0
- package/dist/internal/mlflow/mlflow.client.js.map +1 -0
- package/dist/internal/mlflow/mlflow.module.d.ts +3 -0
- package/dist/internal/mlflow/mlflow.module.d.ts.map +1 -0
- package/dist/internal/mlflow/mlflow.module.js +23 -0
- package/dist/internal/mlflow/mlflow.module.js.map +1 -0
- package/dist/internal/model-research-proxy/anthropic-proxy-research.client.d.ts +52 -0
- package/dist/internal/model-research-proxy/anthropic-proxy-research.client.d.ts.map +1 -0
- package/dist/internal/model-research-proxy/anthropic-proxy-research.client.js +174 -0
- package/dist/internal/model-research-proxy/anthropic-proxy-research.client.js.map +1 -0
- package/dist/internal/model-research-proxy/anthropic-proxy-research.client.spec.d.ts +2 -0
- package/dist/internal/model-research-proxy/anthropic-proxy-research.client.spec.d.ts.map +1 -0
- package/dist/internal/model-research-proxy/anthropic-proxy-research.client.spec.js +145 -0
- package/dist/internal/model-research-proxy/anthropic-proxy-research.client.spec.js.map +1 -0
- package/dist/internal/model-research-proxy/anthropic-proxy-research.module.d.ts +3 -0
- package/dist/internal/model-research-proxy/anthropic-proxy-research.module.d.ts.map +1 -0
- package/dist/internal/model-research-proxy/anthropic-proxy-research.module.js +30 -0
- package/dist/internal/model-research-proxy/anthropic-proxy-research.module.js.map +1 -0
- package/dist/internal/model-research-proxy/index.d.ts +6 -0
- package/dist/internal/model-research-proxy/index.d.ts.map +1 -0
- package/dist/internal/model-research-proxy/index.js +24 -0
- package/dist/internal/model-research-proxy/index.js.map +1 -0
- package/dist/internal/model-verify/index.d.ts +4 -0
- package/dist/internal/model-verify/index.d.ts.map +1 -0
- package/dist/internal/model-verify/index.js +26 -0
- package/dist/internal/model-verify/index.js.map +1 -0
- package/dist/internal/model-verify/model-verify.client.d.ts +77 -0
- package/dist/internal/model-verify/model-verify.client.d.ts.map +1 -0
- package/dist/internal/model-verify/model-verify.client.js +324 -0
- package/dist/internal/model-verify/model-verify.client.js.map +1 -0
- package/dist/internal/ocr/dto/ocr.dto.d.ts +76 -0
- package/dist/internal/ocr/dto/ocr.dto.d.ts.map +1 -0
- package/dist/internal/ocr/dto/ocr.dto.js +48 -0
- package/dist/internal/ocr/dto/ocr.dto.js.map +1 -0
- package/dist/internal/ocr/index.d.ts +4 -0
- package/dist/internal/ocr/index.d.ts.map +1 -0
- package/dist/internal/ocr/index.js +20 -0
- package/dist/internal/ocr/index.js.map +1 -0
- package/dist/internal/ocr/ocr.client.d.ts +39 -0
- package/dist/internal/ocr/ocr.client.d.ts.map +1 -0
- package/dist/internal/ocr/ocr.client.js +112 -0
- package/dist/internal/ocr/ocr.client.js.map +1 -0
- package/dist/internal/ocr/ocr.module.d.ts +3 -0
- package/dist/internal/ocr/ocr.module.d.ts.map +1 -0
- package/dist/internal/ocr/ocr.module.js +28 -0
- package/dist/internal/ocr/ocr.module.js.map +1 -0
- package/dist/internal/openai/index.d.ts +3 -0
- package/dist/internal/openai/index.d.ts.map +1 -0
- package/dist/internal/openai/index.js +19 -0
- package/dist/internal/openai/index.js.map +1 -0
- package/dist/internal/openai/openai.client.d.ts +36 -0
- package/dist/internal/openai/openai.client.d.ts.map +1 -0
- package/dist/internal/openai/openai.client.js +112 -0
- package/dist/internal/openai/openai.client.js.map +1 -0
- package/dist/internal/openai/openai.module.d.ts +3 -0
- package/dist/internal/openai/openai.module.d.ts.map +1 -0
- package/dist/internal/openai/openai.module.js +30 -0
- package/dist/internal/openai/openai.module.js.map +1 -0
- package/dist/internal/openclaw/docker-exec.service.d.ts +132 -0
- package/dist/internal/openclaw/docker-exec.service.d.ts.map +1 -0
- package/dist/internal/openclaw/docker-exec.service.js +544 -0
- package/dist/internal/openclaw/docker-exec.service.js.map +1 -0
- package/dist/internal/openclaw/index.d.ts +14 -0
- package/dist/internal/openclaw/index.d.ts.map +1 -0
- package/dist/internal/openclaw/index.js +32 -0
- package/dist/internal/openclaw/index.js.map +1 -0
- package/dist/internal/openclaw/openclaw-agent-coordination.client.d.ts +73 -0
- package/dist/internal/openclaw/openclaw-agent-coordination.client.d.ts.map +1 -0
- package/dist/internal/openclaw/openclaw-agent-coordination.client.js +249 -0
- package/dist/internal/openclaw/openclaw-agent-coordination.client.js.map +1 -0
- package/dist/internal/openclaw/openclaw-context-status.client.d.ts +66 -0
- package/dist/internal/openclaw/openclaw-context-status.client.d.ts.map +1 -0
- package/dist/internal/openclaw/openclaw-context-status.client.js +164 -0
- package/dist/internal/openclaw/openclaw-context-status.client.js.map +1 -0
- package/dist/internal/openclaw/openclaw-cron.client.d.ts +61 -0
- package/dist/internal/openclaw/openclaw-cron.client.d.ts.map +1 -0
- package/dist/internal/openclaw/openclaw-cron.client.js +416 -0
- package/dist/internal/openclaw/openclaw-cron.client.js.map +1 -0
- package/dist/internal/openclaw/openclaw-gateway.client.d.ts +41 -0
- package/dist/internal/openclaw/openclaw-gateway.client.d.ts.map +1 -0
- package/dist/internal/openclaw/openclaw-gateway.client.js +175 -0
- package/dist/internal/openclaw/openclaw-gateway.client.js.map +1 -0
- package/dist/internal/openclaw/openclaw-skill-sync.client.d.ts +222 -0
- package/dist/internal/openclaw/openclaw-skill-sync.client.d.ts.map +1 -0
- package/dist/internal/openclaw/openclaw-skill-sync.client.js +720 -0
- package/dist/internal/openclaw/openclaw-skill-sync.client.js.map +1 -0
- package/dist/internal/openclaw/openclaw.client.d.ts +602 -0
- package/dist/internal/openclaw/openclaw.client.d.ts.map +1 -0
- package/dist/internal/openclaw/openclaw.client.js +3062 -0
- package/dist/internal/openclaw/openclaw.client.js.map +1 -0
- package/dist/internal/openclaw/openclaw.module.d.ts +3 -0
- package/dist/internal/openclaw/openclaw.module.d.ts.map +1 -0
- package/dist/internal/openclaw/openclaw.module.js +62 -0
- package/dist/internal/openclaw/openclaw.module.js.map +1 -0
- package/dist/internal/openclaw/skill-translation.service.d.ts +39 -0
- package/dist/internal/openclaw/skill-translation.service.d.ts.map +1 -0
- package/dist/internal/openclaw/skill-translation.service.js +217 -0
- package/dist/internal/openclaw/skill-translation.service.js.map +1 -0
- package/dist/internal/openclaw/types/cron.types.d.ts +112 -0
- package/dist/internal/openclaw/types/cron.types.d.ts.map +1 -0
- package/dist/internal/openclaw/types/cron.types.js +9 -0
- package/dist/internal/openclaw/types/cron.types.js.map +1 -0
- package/dist/internal/openspeech/index.d.ts +35 -0
- package/dist/internal/openspeech/index.d.ts.map +1 -0
- package/dist/internal/openspeech/index.js +56 -0
- package/dist/internal/openspeech/index.js.map +1 -0
- package/dist/internal/openspeech/openspeech.client.d.ts +304 -0
- package/dist/internal/openspeech/openspeech.client.d.ts.map +1 -0
- package/dist/internal/openspeech/openspeech.client.js +405 -0
- package/dist/internal/openspeech/openspeech.client.js.map +1 -0
- package/dist/internal/openspeech/openspeech.factory.d.ts +247 -0
- package/dist/internal/openspeech/openspeech.factory.d.ts.map +1 -0
- package/dist/internal/openspeech/openspeech.factory.js +406 -0
- package/dist/internal/openspeech/openspeech.factory.js.map +1 -0
- package/dist/internal/openspeech/openspeech.module.d.ts +45 -0
- package/dist/internal/openspeech/openspeech.module.d.ts.map +1 -0
- package/dist/internal/openspeech/openspeech.module.js +68 -0
- package/dist/internal/openspeech/openspeech.module.js.map +1 -0
- package/dist/internal/openspeech/providers/aliyun.provider.d.ts +125 -0
- package/dist/internal/openspeech/providers/aliyun.provider.d.ts.map +1 -0
- package/dist/internal/openspeech/providers/aliyun.provider.js +274 -0
- package/dist/internal/openspeech/providers/aliyun.provider.js.map +1 -0
- package/dist/internal/openspeech/providers/base.provider.d.ts +98 -0
- package/dist/internal/openspeech/providers/base.provider.d.ts.map +1 -0
- package/dist/internal/openspeech/providers/base.provider.js +87 -0
- package/dist/internal/openspeech/providers/base.provider.js.map +1 -0
- package/dist/internal/openspeech/providers/index.d.ts +10 -0
- package/dist/internal/openspeech/providers/index.d.ts.map +1 -0
- package/dist/internal/openspeech/providers/index.js +26 -0
- package/dist/internal/openspeech/providers/index.js.map +1 -0
- package/dist/internal/openspeech/providers/volcengine-streaming.provider.d.ts +291 -0
- package/dist/internal/openspeech/providers/volcengine-streaming.provider.d.ts.map +1 -0
- package/dist/internal/openspeech/providers/volcengine-streaming.provider.js +1358 -0
- package/dist/internal/openspeech/providers/volcengine-streaming.provider.js.map +1 -0
- package/dist/internal/openspeech/providers/volcengine.provider.d.ts +144 -0
- package/dist/internal/openspeech/providers/volcengine.provider.d.ts.map +1 -0
- package/dist/internal/openspeech/providers/volcengine.provider.js +337 -0
- package/dist/internal/openspeech/providers/volcengine.provider.js.map +1 -0
- package/dist/internal/openspeech/types.d.ts +408 -0
- package/dist/internal/openspeech/types.d.ts.map +1 -0
- package/dist/internal/openspeech/types.js +11 -0
- package/dist/internal/openspeech/types.js.map +1 -0
- package/dist/internal/provider-verify/index.d.ts +6 -0
- package/dist/internal/provider-verify/index.d.ts.map +1 -0
- package/dist/internal/provider-verify/index.js +24 -0
- package/dist/internal/provider-verify/index.js.map +1 -0
- package/dist/internal/provider-verify/provider-verify.client.d.ts +55 -0
- package/dist/internal/provider-verify/provider-verify.client.d.ts.map +1 -0
- package/dist/internal/provider-verify/provider-verify.client.js +284 -0
- package/dist/internal/provider-verify/provider-verify.client.js.map +1 -0
- package/dist/internal/provider-verify/provider-verify.module.d.ts +3 -0
- package/dist/internal/provider-verify/provider-verify.module.d.ts.map +1 -0
- package/dist/internal/provider-verify/provider-verify.module.js +28 -0
- package/dist/internal/provider-verify/provider-verify.module.js.map +1 -0
- package/dist/internal/routing-llm/index.d.ts +7 -0
- package/dist/internal/routing-llm/index.d.ts.map +1 -0
- package/dist/internal/routing-llm/index.js +25 -0
- package/dist/internal/routing-llm/index.js.map +1 -0
- package/dist/internal/routing-llm/interfaces/routing-llm.interface.d.ts +88 -0
- package/dist/internal/routing-llm/interfaces/routing-llm.interface.d.ts.map +1 -0
- package/dist/internal/routing-llm/interfaces/routing-llm.interface.js +64 -0
- package/dist/internal/routing-llm/interfaces/routing-llm.interface.js.map +1 -0
- package/dist/internal/routing-llm/routing-llm.client.d.ts +32 -0
- package/dist/internal/routing-llm/routing-llm.client.d.ts.map +1 -0
- package/dist/internal/routing-llm/routing-llm.client.js +275 -0
- package/dist/internal/routing-llm/routing-llm.client.js.map +1 -0
- package/dist/internal/routing-llm/routing-llm.module.d.ts +3 -0
- package/dist/internal/routing-llm/routing-llm.module.d.ts.map +1 -0
- package/dist/internal/routing-llm/routing-llm.module.js +28 -0
- package/dist/internal/routing-llm/routing-llm.module.js.map +1 -0
- package/dist/internal/sms/dto/sms.dto.d.ts +156 -0
- package/dist/internal/sms/dto/sms.dto.d.ts.map +1 -0
- package/dist/internal/sms/dto/sms.dto.js +78 -0
- package/dist/internal/sms/dto/sms.dto.js.map +1 -0
- package/dist/internal/sms/index.d.ts +14 -0
- package/dist/internal/sms/index.d.ts.map +1 -0
- package/dist/internal/sms/index.js +37 -0
- package/dist/internal/sms/index.js.map +1 -0
- package/dist/internal/sms/sms-aliyun.client.d.ts +19 -0
- package/dist/internal/sms/sms-aliyun.client.d.ts.map +1 -0
- package/dist/internal/sms/sms-aliyun.client.js +74 -0
- package/dist/internal/sms/sms-aliyun.client.js.map +1 -0
- package/dist/internal/sms/sms-http.client.d.ts +21 -0
- package/dist/internal/sms/sms-http.client.d.ts.map +1 -0
- package/dist/internal/sms/sms-http.client.js +76 -0
- package/dist/internal/sms/sms-http.client.js.map +1 -0
- package/dist/internal/sms/sms-tencent.client.d.ts +18 -0
- package/dist/internal/sms/sms-tencent.client.d.ts.map +1 -0
- package/dist/internal/sms/sms-tencent.client.js +76 -0
- package/dist/internal/sms/sms-tencent.client.js.map +1 -0
- package/dist/internal/sms/sms-volcengine.client.d.ts +29 -0
- package/dist/internal/sms/sms-volcengine.client.d.ts.map +1 -0
- package/dist/internal/sms/sms-volcengine.client.js +124 -0
- package/dist/internal/sms/sms-volcengine.client.js.map +1 -0
- package/dist/internal/sms/sms-zxjc.client.d.ts +18 -0
- package/dist/internal/sms/sms-zxjc.client.d.ts.map +1 -0
- package/dist/internal/sms/sms-zxjc.client.js +40 -0
- package/dist/internal/sms/sms-zxjc.client.js.map +1 -0
- package/dist/internal/sse/index.d.ts +3 -0
- package/dist/internal/sse/index.d.ts.map +1 -0
- package/dist/internal/sse/index.js +19 -0
- package/dist/internal/sse/index.js.map +1 -0
- package/dist/internal/sse/sse-client.service.spec.d.ts +2 -0
- package/dist/internal/sse/sse-client.service.spec.d.ts.map +1 -0
- package/dist/internal/sse/sse-client.service.spec.js +17 -0
- package/dist/internal/sse/sse-client.service.spec.js.map +1 -0
- package/dist/internal/sse/sse.client.d.ts +63 -0
- package/dist/internal/sse/sse.client.d.ts.map +1 -0
- package/dist/internal/sse/sse.client.js +304 -0
- package/dist/internal/sse/sse.client.js.map +1 -0
- package/dist/internal/sse/sse.module.d.ts +3 -0
- package/dist/internal/sse/sse.module.d.ts.map +1 -0
- package/dist/internal/sse/sse.module.js +30 -0
- package/dist/internal/sse/sse.module.js.map +1 -0
- package/dist/internal/third-party-sse/index.d.ts +3 -0
- package/dist/internal/third-party-sse/index.d.ts.map +1 -0
- package/dist/internal/third-party-sse/index.js +19 -0
- package/dist/internal/third-party-sse/index.js.map +1 -0
- package/dist/internal/third-party-sse/third-party-sse.client.d.ts +14 -0
- package/dist/internal/third-party-sse/third-party-sse.client.d.ts.map +1 -0
- package/dist/internal/third-party-sse/third-party-sse.client.js +63 -0
- package/dist/internal/third-party-sse/third-party-sse.client.js.map +1 -0
- package/dist/internal/third-party-sse/third-party-sse.module.d.ts +3 -0
- package/dist/internal/third-party-sse/third-party-sse.module.d.ts.map +1 -0
- package/dist/internal/third-party-sse/third-party-sse.module.js +23 -0
- package/dist/internal/third-party-sse/third-party-sse.module.js.map +1 -0
- package/dist/internal/third-party-sse/third-party-sse.service.spec.d.ts +2 -0
- package/dist/internal/third-party-sse/third-party-sse.service.spec.d.ts.map +1 -0
- package/dist/internal/third-party-sse/third-party-sse.service.spec.js +17 -0
- package/dist/internal/third-party-sse/third-party-sse.service.spec.js.map +1 -0
- package/dist/internal/verify/index.d.ts +3 -0
- package/dist/internal/verify/index.d.ts.map +1 -0
- package/dist/internal/verify/index.js +19 -0
- package/dist/internal/verify/index.js.map +1 -0
- package/dist/internal/verify/verify.client.d.ts +12 -0
- package/dist/internal/verify/verify.client.d.ts.map +1 -0
- package/dist/internal/verify/verify.client.js +57 -0
- package/dist/internal/verify/verify.client.js.map +1 -0
- package/dist/internal/verify/verify.module.d.ts +3 -0
- package/dist/internal/verify/verify.module.d.ts.map +1 -0
- package/dist/internal/verify/verify.module.js +23 -0
- package/dist/internal/verify/verify.module.js.map +1 -0
- package/dist/internal/volcengine-tts/dto/tts.dto.d.ts +52 -0
- package/dist/internal/volcengine-tts/dto/tts.dto.d.ts.map +1 -0
- package/dist/internal/volcengine-tts/dto/tts.dto.js +59 -0
- package/dist/internal/volcengine-tts/dto/tts.dto.js.map +1 -0
- package/dist/internal/volcengine-tts/index.d.ts +4 -0
- package/dist/internal/volcengine-tts/index.d.ts.map +1 -0
- package/dist/internal/volcengine-tts/index.js +20 -0
- package/dist/internal/volcengine-tts/index.js.map +1 -0
- package/dist/internal/volcengine-tts/volcengine-tts.client.d.ts +104 -0
- package/dist/internal/volcengine-tts/volcengine-tts.client.d.ts.map +1 -0
- package/dist/internal/volcengine-tts/volcengine-tts.client.js +690 -0
- package/dist/internal/volcengine-tts/volcengine-tts.client.js.map +1 -0
- package/dist/internal/volcengine-tts/volcengine-tts.module.d.ts +3 -0
- package/dist/internal/volcengine-tts/volcengine-tts.module.d.ts.map +1 -0
- package/dist/internal/volcengine-tts/volcengine-tts.module.js +34 -0
- package/dist/internal/volcengine-tts/volcengine-tts.module.js.map +1 -0
- package/dist/internal/wechat/index.d.ts +3 -0
- package/dist/internal/wechat/index.d.ts.map +1 -0
- package/dist/internal/wechat/index.js +19 -0
- package/dist/internal/wechat/index.js.map +1 -0
- package/dist/internal/wechat/wechat-client.service.spec.d.ts +2 -0
- package/dist/internal/wechat/wechat-client.service.spec.d.ts.map +1 -0
- package/dist/internal/wechat/wechat-client.service.spec.js +17 -0
- package/dist/internal/wechat/wechat-client.service.spec.js.map +1 -0
- package/dist/internal/wechat/wechat.client.d.ts +3 -0
- package/dist/internal/wechat/wechat.client.d.ts.map +1 -0
- package/dist/internal/wechat/wechat.client.js +17 -0
- package/dist/internal/wechat/wechat.client.js.map +1 -0
- package/dist/internal/wechat/wechat.module.d.ts +3 -0
- package/dist/internal/wechat/wechat.module.d.ts.map +1 -0
- package/dist/internal/wechat/wechat.module.js +21 -0
- package/dist/internal/wechat/wechat.module.js.map +1 -0
- package/dist/plugin/decorators/inject-client.decorator.d.ts +40 -0
- package/dist/plugin/decorators/inject-client.decorator.d.ts.map +1 -0
- package/dist/plugin/decorators/inject-client.decorator.js +63 -0
- package/dist/plugin/decorators/inject-client.decorator.js.map +1 -0
- package/dist/plugin/index.d.ts +14 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +34 -0
- package/dist/plugin/index.js.map +1 -0
- package/dist/plugin/interceptors/http-logging.interceptor.d.ts +51 -0
- package/dist/plugin/interceptors/http-logging.interceptor.d.ts.map +1 -0
- package/dist/plugin/interceptors/http-logging.interceptor.js +84 -0
- package/dist/plugin/interceptors/http-logging.interceptor.js.map +1 -0
- package/dist/plugin/interfaces/client.interface.d.ts +80 -0
- package/dist/plugin/interfaces/client.interface.d.ts.map +1 -0
- package/dist/plugin/interfaces/client.interface.js +8 -0
- package/dist/plugin/interfaces/client.interface.js.map +1 -0
- package/dist/plugin/utils/retry.util.d.ts +49 -0
- package/dist/plugin/utils/retry.util.d.ts.map +1 -0
- package/dist/plugin/utils/retry.util.js +110 -0
- package/dist/plugin/utils/retry.util.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,526 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.FileQiniuClient = void 0;
|
|
40
|
+
const qiniu = __importStar(require("qiniu"));
|
|
41
|
+
const rxjs_1 = require("rxjs");
|
|
42
|
+
const file_config_1 = __importDefault(require("./config/file.config"));
|
|
43
|
+
const infra_utils_1 = require("@dofe/infra-utils");
|
|
44
|
+
const infra_contracts_1 = require("@dofe/infra-contracts");
|
|
45
|
+
const infra_common_1 = require("@dofe/infra-common");
|
|
46
|
+
const infra_utils_2 = require("@dofe/infra-utils");
|
|
47
|
+
const infra_utils_3 = require("@dofe/infra-utils");
|
|
48
|
+
/**
|
|
49
|
+
* Qiniu File Storage Client
|
|
50
|
+
*
|
|
51
|
+
* 职责:仅负责与七牛云存储 API 通信
|
|
52
|
+
* - 不访问数据库
|
|
53
|
+
* - 不包含业务逻辑
|
|
54
|
+
*/
|
|
55
|
+
class FileQiniuClient {
|
|
56
|
+
mac;
|
|
57
|
+
qiniuConfig;
|
|
58
|
+
bucketManager;
|
|
59
|
+
operManager;
|
|
60
|
+
cdnManager;
|
|
61
|
+
logger;
|
|
62
|
+
config;
|
|
63
|
+
storageConfig;
|
|
64
|
+
appConfig;
|
|
65
|
+
redis;
|
|
66
|
+
httpService;
|
|
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.redis = redis;
|
|
76
|
+
this.httpService = httpService;
|
|
77
|
+
this.logger = logger;
|
|
78
|
+
// 创建凭证对象
|
|
79
|
+
this.mac = new qiniu.auth.digest.Mac(this.storageConfig.accessKey, this.storageConfig.secretKey);
|
|
80
|
+
// qiniu.zone.Zone_z1
|
|
81
|
+
this.qiniuConfig = new qiniu.conf.Config();
|
|
82
|
+
this.qiniuConfig.zone = this.getQiniuZone();
|
|
83
|
+
// 初始化 BucketManager
|
|
84
|
+
this.bucketManager = new qiniu.rs.BucketManager(this.mac, this.qiniuConfig);
|
|
85
|
+
this.operManager = new qiniu.fop.OperationManager(this.mac, this.qiniuConfig);
|
|
86
|
+
this.cdnManager = new qiniu.cdn.CdnManager(this.mac);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 上传凭证生成函数
|
|
90
|
+
*
|
|
91
|
+
* @param scope 空间名,可选参数,默认为配置中的 bucket
|
|
92
|
+
* @param options PutPolicyOptions 对象,可选参数,用于设置上传凭证的回调等选项,默认为配置中的 webhook 和 callbackBody 等信息
|
|
93
|
+
* @returns 返回生成的上传凭证字符串
|
|
94
|
+
*/
|
|
95
|
+
async uploadTokenWithCallback(callbackAuthKey, scope, options, neeSpiltPart) {
|
|
96
|
+
const defaultOptions = {
|
|
97
|
+
callbackUrl: infra_utils_3.environmentUtil.generateEnvironmentUrls().api +
|
|
98
|
+
'/' +
|
|
99
|
+
this.config.webhook +
|
|
100
|
+
callbackAuthKey,
|
|
101
|
+
callbackBody: '{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","mimeType":"$(mimeType)","type":${type},"endUser":"${endUser}","status":${status},"md5":"${md5}","parts":${parts},"imageInfo":$(imageInfo),"exif":$(exif),"avinfo":$(avinfo),"ext":"$(ext)","thumbImg":"$(thumbImg)"}',
|
|
102
|
+
// '{"key":"$(key)","hash":"$(etag)","bucket":"$(bucket)","fsize":$(fsize)}',
|
|
103
|
+
callbackBodyType: 'application/json',
|
|
104
|
+
};
|
|
105
|
+
const finalScope = this.getBucketString(scope);
|
|
106
|
+
const finalOptions = Object.assign({}, defaultOptions, options);
|
|
107
|
+
const putPolicy = new qiniu.rs.PutPolicy({
|
|
108
|
+
scope: finalScope,
|
|
109
|
+
...finalOptions,
|
|
110
|
+
});
|
|
111
|
+
const uploadToken = putPolicy.uploadToken(this.mac);
|
|
112
|
+
// if (neeSpiltPart) {
|
|
113
|
+
// await this.initiateMultipartUpload(fileKey, uploadToken)
|
|
114
|
+
// }
|
|
115
|
+
return uploadToken;
|
|
116
|
+
}
|
|
117
|
+
async uploadToken(scope, options) {
|
|
118
|
+
const finalScope = this.getBucketString(scope);
|
|
119
|
+
const putPolicy = new qiniu.rs.PutPolicy({
|
|
120
|
+
scope: finalScope,
|
|
121
|
+
});
|
|
122
|
+
const uploadToken = await putPolicy.uploadToken(this.mac);
|
|
123
|
+
return uploadToken;
|
|
124
|
+
}
|
|
125
|
+
async setFileContentDisposition(fileKey, bucket) { }
|
|
126
|
+
/**
|
|
127
|
+
* 文件数据上传器
|
|
128
|
+
*
|
|
129
|
+
* @param fileData 文件数据流
|
|
130
|
+
* @param key 文件在七牛云上的存储键名
|
|
131
|
+
* @param bucket 文件存储的七牛云存储空间名称,默认为类内配置的存储空间
|
|
132
|
+
* @returns 返回上传成功的文件键名
|
|
133
|
+
* @throws 当上传失败时,抛出 ApiException 异常
|
|
134
|
+
*/
|
|
135
|
+
async fileDataUploader(base64Data, key, qbucket) {
|
|
136
|
+
const finalBucket = this.getBucketString(qbucket);
|
|
137
|
+
const buffer = Buffer.from(base64Data.replace(/^data:image\/\w+;base64,/, ''), 'base64');
|
|
138
|
+
const formUploader = new qiniu.form_up.FormUploader(this.qiniuConfig);
|
|
139
|
+
const putExtra = new qiniu.form_up.PutExtra();
|
|
140
|
+
const uploadToken = await this.uploadToken(finalBucket);
|
|
141
|
+
const { resp } = await formUploader.put(uploadToken, key, buffer, putExtra);
|
|
142
|
+
if (resp.statusCode === 200) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.QiniuUploaderError);
|
|
146
|
+
}
|
|
147
|
+
async getPrivateDownloadUrl(fileKey, expire, internal, bucket) {
|
|
148
|
+
// 如果未传入deadline,则默认为当前时间1小时后过期
|
|
149
|
+
expire = expire || 15;
|
|
150
|
+
// 如果提供了 bucket,需要获取对应 bucket 的配置
|
|
151
|
+
const finalConfig = bucket && bucket !== this.config.bucket
|
|
152
|
+
? await this.getBucketConfig(bucket)
|
|
153
|
+
: this.config;
|
|
154
|
+
const privateBucketDomain = finalConfig.domain;
|
|
155
|
+
if (!privateBucketDomain) {
|
|
156
|
+
throw new Error('Bucket domain is not configured');
|
|
157
|
+
}
|
|
158
|
+
// 可以通过配置config对象来自定义一些请求选项,例如zone等
|
|
159
|
+
// const bucketManager = new qiniu.rs.BucketManager(this.mac, this.qiniuConfig);
|
|
160
|
+
const expireAt = Date.now() + expire * 1000;
|
|
161
|
+
const privateDownloadUrl = await this.bucketManager.privateDownloadUrl(privateBucketDomain, fileKey, expireAt);
|
|
162
|
+
return privateDownloadUrl;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* 获取指定 bucket 的配置(辅助方法)
|
|
166
|
+
* 注意:七牛云服务通常一个实例对应一个 bucket,此方法用于兼容接口
|
|
167
|
+
*/
|
|
168
|
+
async getBucketConfig(bucket) {
|
|
169
|
+
// 七牛云通常一个实例对应一个 bucket,如果 bucket 不同,返回当前配置
|
|
170
|
+
// 实际使用时应该根据 bucket 创建对应的服务实例
|
|
171
|
+
this.logger.warn('Qiniu service: bucket parameter ignored, using default config', {
|
|
172
|
+
requestedBucket: bucket,
|
|
173
|
+
defaultBucket: this.config.bucket,
|
|
174
|
+
});
|
|
175
|
+
return this.config;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* 上传文件到七牛云
|
|
179
|
+
*
|
|
180
|
+
* @param filePath 文件的本地路径
|
|
181
|
+
* @param key 文件在七牛云上的存储键名
|
|
182
|
+
* @param bucket 文件存储的七牛云存储空间名称,默认为类内配置的存储空间
|
|
183
|
+
* @returns 返回上传成功的文件键名
|
|
184
|
+
* @throws 当上传失败时,抛出 ApiException 异常
|
|
185
|
+
*/
|
|
186
|
+
async uploadFile(filePath, key, bucket) {
|
|
187
|
+
const formUploader = new qiniu.form_up.FormUploader(this.qiniuConfig);
|
|
188
|
+
const putExtra = new qiniu.form_up.PutExtra();
|
|
189
|
+
const uploadToken = await this.uploadToken(bucket);
|
|
190
|
+
new Promise((resolve, reject) => {
|
|
191
|
+
formUploader.putFile(uploadToken, key, filePath, putExtra, (err, body, info) => {
|
|
192
|
+
if (err) {
|
|
193
|
+
this.logger.error('uploadFile error', err);
|
|
194
|
+
return reject((0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.QiniuUploaderError));
|
|
195
|
+
}
|
|
196
|
+
if (info.statusCode === 200) {
|
|
197
|
+
resolve(body.key);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
this.logger.error('uploadFile failed', info);
|
|
201
|
+
reject((0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.QiniuUploaderError));
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
async getFileInfo(fileKey, bucket) {
|
|
207
|
+
const finalBucket = this.getBucketString(bucket);
|
|
208
|
+
return await this.bucketManager.stat(finalBucket, fileKey);
|
|
209
|
+
}
|
|
210
|
+
async changeFileMime(fileKey, newMime, bucket) {
|
|
211
|
+
const finalBucket = this.getBucketString(bucket);
|
|
212
|
+
return await this.bucketManager.changeMime(finalBucket, fileKey, newMime);
|
|
213
|
+
}
|
|
214
|
+
async changeFileHeaders(fileKey, headers, bucket) {
|
|
215
|
+
const finalBucket = this.getBucketString(bucket);
|
|
216
|
+
return await this.bucketManager.changeHeaders(finalBucket, fileKey, headers);
|
|
217
|
+
}
|
|
218
|
+
// newType = 0 表示普通存储,
|
|
219
|
+
// 1 表示低频存储
|
|
220
|
+
// 2 表示归档存储
|
|
221
|
+
// 3 表示深度归档存储
|
|
222
|
+
// 4 表示归档直读存储
|
|
223
|
+
async changeType(fileKey, newType, bucket) {
|
|
224
|
+
const finalBucket = this.getBucketString(bucket);
|
|
225
|
+
return await this.bucketManager.changeType(finalBucket, fileKey, newType);
|
|
226
|
+
}
|
|
227
|
+
async moveFile(fileKey, bucket, destBucket, destKey, options) {
|
|
228
|
+
const oldBucket = this.getBucketString(bucket);
|
|
229
|
+
const newBucket = this.getBucketString(bucket);
|
|
230
|
+
return await this.bucketManager.move(oldBucket, fileKey, newBucket, destKey || fileKey, options ?? null);
|
|
231
|
+
}
|
|
232
|
+
async copyFile(fileKey, bucket, destBucket, destKey, options) {
|
|
233
|
+
const oldBucket = this.getBucketString(bucket);
|
|
234
|
+
const newBucket = this.getBucketString(bucket);
|
|
235
|
+
return await this.bucketManager.copy(oldBucket, fileKey, newBucket, destKey || fileKey, options ?? null);
|
|
236
|
+
}
|
|
237
|
+
async deleteFile(fileKey, bucket) {
|
|
238
|
+
const finalBucket = this.getBucketString(bucket);
|
|
239
|
+
const { resp } = await this.bucketManager.delete(finalBucket, fileKey);
|
|
240
|
+
if (!resp || resp.statusCode !== 200) {
|
|
241
|
+
this.logger.warn('deleteFile fail', { fileKey, bucket });
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
this.logger.warn('deleteFile success', { resp });
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* 列出指定前缀的文件列表
|
|
249
|
+
*
|
|
250
|
+
* @param prefix 文件名前缀,默认为空字符串
|
|
251
|
+
* @param limit 最多返回的文件数量,默认为1000
|
|
252
|
+
* @param delimiter 用于限制目录层次的分隔符,默认为空字符串
|
|
253
|
+
* @param bucket 存储桶名称,默认为当前实例的存储桶
|
|
254
|
+
* @param options 其他可选参数
|
|
255
|
+
* @returns 返回一个Promise,解析后得到包含文件名的字符串数组
|
|
256
|
+
* @throws 当请求失败时,抛出ApiException异常
|
|
257
|
+
*/
|
|
258
|
+
async listFilesPrefix(prefix, limit, delimiter, bucket, options) {
|
|
259
|
+
const finalBucket = this.getBucketString(bucket);
|
|
260
|
+
options = options || {};
|
|
261
|
+
const safePrefix = infra_utils_2.folderUtil.ensurePrefixEndsWithSlash(prefix || '');
|
|
262
|
+
options = {
|
|
263
|
+
...options,
|
|
264
|
+
prefix: safePrefix,
|
|
265
|
+
delimiter,
|
|
266
|
+
limit: limit || 1000,
|
|
267
|
+
};
|
|
268
|
+
const { data, resp } = await this.bucketManager.listPrefix(finalBucket, options);
|
|
269
|
+
if (!resp || resp.statusCode !== 200) {
|
|
270
|
+
throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.BatchDeleteFolderFail);
|
|
271
|
+
}
|
|
272
|
+
const files = data.items.map((item) => item.key);
|
|
273
|
+
return files;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* 从指定URL获取资源并存储到七牛云存储的指定Bucket中
|
|
277
|
+
*
|
|
278
|
+
* @param resUrl 资源URL
|
|
279
|
+
* @param fileKey 文件在Bucket中的键名
|
|
280
|
+
* @param bucket 存储Bucket的名称,默认为当前实例配置的Bucket
|
|
281
|
+
* @returns 返回一个Promise,解析为FetchObjectResult类型的七牛云HTTP响应包装对象
|
|
282
|
+
*/
|
|
283
|
+
async fetchToBucket(resUrl, fileKey, bucket) {
|
|
284
|
+
const finalBucket = this.getBucketString(bucket);
|
|
285
|
+
const { data, resp } = await this.bucketManager.fetch(resUrl, finalBucket, fileKey);
|
|
286
|
+
if (!resp || resp.statusCode !== 200) {
|
|
287
|
+
throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.BatchDeleteFolderFail);
|
|
288
|
+
}
|
|
289
|
+
this.logger.info('fetchToBucket Qiniu success', data);
|
|
290
|
+
return data;
|
|
291
|
+
}
|
|
292
|
+
// 更新镜像空间中存储的文件内容
|
|
293
|
+
/**
|
|
294
|
+
* 更新镜像副本
|
|
295
|
+
* @see https://developer.qiniu.com/kodo/api/1293/prefetch
|
|
296
|
+
*
|
|
297
|
+
* @param bucket 空间名称
|
|
298
|
+
* @param key 文件名称
|
|
299
|
+
*/
|
|
300
|
+
async prefetch(fileKey, bucket) {
|
|
301
|
+
const finalBucket = this.getBucketString(bucket);
|
|
302
|
+
return await this.bucketManager.prefetch(finalBucket, fileKey);
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* 批量文件管理请求,支持stat,chgm,chtype,delete,copy,move
|
|
306
|
+
* @param operations
|
|
307
|
+
*
|
|
308
|
+
* --- 批量获取文件信息:qiniu.rs.statOp
|
|
309
|
+
* const statOperations = [
|
|
310
|
+
* qiniu.rs.statOp(srcBucket, 'qiniu1.mp4'),
|
|
311
|
+
* ];
|
|
312
|
+
* --- 批量修改文件类型:qiniu.rs.changeMimeOp
|
|
313
|
+
* const chgmOperations = [
|
|
314
|
+
* qiniu.rs.changeMimeOp(srcBucket, 'qiniu1.mp4', 'video/x-mp4'),
|
|
315
|
+
* ];
|
|
316
|
+
* --- 批量删除文件:qiniu.rs.deleteOp
|
|
317
|
+
* const deleteOperations = [
|
|
318
|
+
* qiniu.rs.deleteOp(srcBucket, 'qiniu1.mp4'),
|
|
319
|
+
* ];
|
|
320
|
+
* --- 批量复制文件:qiniu.rs.copyOp
|
|
321
|
+
* const copyOperations = [
|
|
322
|
+
* qiniu.rs.copyOp(srcBucket, srcKey, destBucket, 'qiniu1.mp4'),
|
|
323
|
+
* ];
|
|
324
|
+
* --- 批量移动或重命名文件:qiniu.rs.moveOp
|
|
325
|
+
* const moveOperations = [
|
|
326
|
+
* qiniu.rs.moveOp(srcBucket, 'qiniu1.mp4', destBucket, 'qiniu1_move.mp4'),
|
|
327
|
+
* ];
|
|
328
|
+
* --- 批量更新文件的有效期: qiniu.rs.deleteAfterDaysOp
|
|
329
|
+
* const deleteAfterDaysOperations = [
|
|
330
|
+
* qiniu.rs.deleteAfterDaysOp(srcBucket, 'qiniu1.mp4', 10),
|
|
331
|
+
* ];
|
|
332
|
+
* --- 批量更新文件存储类型: qiniu.rs.changeTypeOp
|
|
333
|
+
* newType:0 表示普通存储;1 表示低频存储;2 表示归档存储;3 表示深度归档存储;4 表示归档直读存储
|
|
334
|
+
* const changeTypeOperations = [
|
|
335
|
+
* qiniu.rs.changeTypeOp(srcBucket, 'qiniu1.mp4', 1),
|
|
336
|
+
* ];
|
|
337
|
+
*/
|
|
338
|
+
async batch(operations) {
|
|
339
|
+
return await this.bucketManager.batch(operations);
|
|
340
|
+
}
|
|
341
|
+
async batchDeleteFiles(fileKeys, bucket) {
|
|
342
|
+
const finalBucket = this.getBucketString(bucket);
|
|
343
|
+
return await this.batch([
|
|
344
|
+
...fileKeys.map((key) => {
|
|
345
|
+
return qiniu.rs.deleteOp(finalBucket, key);
|
|
346
|
+
}),
|
|
347
|
+
]);
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* @returns 返回操作管理对象
|
|
351
|
+
* 发送持久化数据处理请求
|
|
352
|
+
* @param bucket 空间名称
|
|
353
|
+
* @param key 文件名称
|
|
354
|
+
* @param fops 处理指令集合
|
|
355
|
+
* @param pipeline 处理队列名称
|
|
356
|
+
* @param options
|
|
357
|
+
* @param callback
|
|
358
|
+
* @use pfop(bucket: string, key: string, fops: string[], pipeline: string, options: PfopOptions | null, callback: callback): void;
|
|
359
|
+
*
|
|
360
|
+
* 查询持久化数据处理进度
|
|
361
|
+
* @param persistentId pfop操作返回的持久化处理ID
|
|
362
|
+
* @param callback
|
|
363
|
+
*
|
|
364
|
+
* prefop(persistentId: string, callback: callback): void;
|
|
365
|
+
*/
|
|
366
|
+
getOperManager() {
|
|
367
|
+
return this.operManager;
|
|
368
|
+
}
|
|
369
|
+
getCdnManager() {
|
|
370
|
+
return this.cdnManager;
|
|
371
|
+
}
|
|
372
|
+
getConfig() {
|
|
373
|
+
return this.config;
|
|
374
|
+
}
|
|
375
|
+
async getPresignedUrl(bucket, uploadId, key, partNumber) {
|
|
376
|
+
return '';
|
|
377
|
+
}
|
|
378
|
+
async getMultipartUploadId(fileKey, bucket) {
|
|
379
|
+
const finalBucket = this.getBucketString(bucket);
|
|
380
|
+
const host = file_config_1.default.qiniu.uploadUrl;
|
|
381
|
+
const encodedObjectName = fileKey
|
|
382
|
+
? infra_utils_1.urlencodeUtil.urlsafeBase64Encode(fileKey)
|
|
383
|
+
: '~';
|
|
384
|
+
const uploadToken = this.uploadToken(bucket, {
|
|
385
|
+
scope: finalBucket,
|
|
386
|
+
});
|
|
387
|
+
const headers = {
|
|
388
|
+
Authorization: 'UpToken ' + uploadToken,
|
|
389
|
+
'Content-Type': 'application/json',
|
|
390
|
+
};
|
|
391
|
+
const requestUrl = host +
|
|
392
|
+
'/buckets/' +
|
|
393
|
+
finalBucket +
|
|
394
|
+
'/objects/' +
|
|
395
|
+
encodedObjectName +
|
|
396
|
+
'/uploads';
|
|
397
|
+
const ret = await (0, rxjs_1.firstValueFrom)(this.httpService.post(requestUrl, {}, { headers }));
|
|
398
|
+
// if (ret.statusCode !== 200) {
|
|
399
|
+
// throw new ApiException('onitiateMultipartUploadError')
|
|
400
|
+
// }
|
|
401
|
+
return ret.data.uploadId;
|
|
402
|
+
}
|
|
403
|
+
getBucketString(bucket) {
|
|
404
|
+
const defaultBucket = this.config.bucket;
|
|
405
|
+
const finalBucket = bucket ?? defaultBucket;
|
|
406
|
+
return finalBucket;
|
|
407
|
+
}
|
|
408
|
+
getQiniuZone() {
|
|
409
|
+
const qiniuZones = {
|
|
410
|
+
z0: qiniu.zone.Zone_z0,
|
|
411
|
+
cn_east_2: qiniu.zone.Zone_cn_east_2,
|
|
412
|
+
z1: qiniu.zone.Zone_z1,
|
|
413
|
+
z2: qiniu.zone.Zone_z2,
|
|
414
|
+
na0: qiniu.zone.Zone_na0,
|
|
415
|
+
as0: qiniu.zone.Zone_as0,
|
|
416
|
+
};
|
|
417
|
+
return qiniuZones[this.config.region] || qiniu.zone.Zone_z0;
|
|
418
|
+
}
|
|
419
|
+
async listBuckets() { }
|
|
420
|
+
async fileDownloader(source) {
|
|
421
|
+
throw new Error('Not implemented');
|
|
422
|
+
}
|
|
423
|
+
async fileUploader(buffer, destination) { }
|
|
424
|
+
async completeMultipartUpload(uploadId, key, parts, bucket) { }
|
|
425
|
+
callbackValidate(requestURI, reqBody, callbackAuth) {
|
|
426
|
+
return qiniu.util.isQiniuCallback(this.mac, requestURI, reqBody, callbackAuth);
|
|
427
|
+
}
|
|
428
|
+
async makeZipWithKeys(files, zipName, bucket) {
|
|
429
|
+
const finalBucket = this.getBucketString(bucket);
|
|
430
|
+
const names = [];
|
|
431
|
+
const content = files
|
|
432
|
+
.map(async (file) => {
|
|
433
|
+
// 拼接原始url
|
|
434
|
+
// 链接加密并进行Base64编码,别名去除前缀目录。
|
|
435
|
+
const { name, key } = file.fileKey;
|
|
436
|
+
names.push(name);
|
|
437
|
+
const url = await this.getPrivateDownloadUrl(key, undefined, undefined, finalBucket);
|
|
438
|
+
const safeUrl = `/url/${infra_utils_1.urlencodeUtil.urlsafeBase64Encode(url)}` +
|
|
439
|
+
`/alias/${infra_utils_1.urlencodeUtil.urlsafeBase64Encode(name)}`;
|
|
440
|
+
return safeUrl;
|
|
441
|
+
})
|
|
442
|
+
.join('\n');
|
|
443
|
+
const formUploader = new qiniu.form_up.FormUploader(this.qiniuConfig);
|
|
444
|
+
const putExtra = new qiniu.form_up.PutExtra();
|
|
445
|
+
const key = `${Date.now()}-${~~(Math.random() * 1000)}.txt`;
|
|
446
|
+
const uploaderToken = await this.uploadToken();
|
|
447
|
+
const { data, resp } = await formUploader.put(uploaderToken, key, content, putExtra);
|
|
448
|
+
if (resp.statusCode == 200) {
|
|
449
|
+
const { key: dataKey } = data;
|
|
450
|
+
// 执行压缩 ,设置压缩资源的在OSS上的保存路径
|
|
451
|
+
const zipKey = infra_utils_1.urlencodeUtil.urlsafeBase64Encode(`${finalBucket}:temp_package/${Date.now()}/${zipName}.zip`);
|
|
452
|
+
const fops = `mkzip/4/encoding/${infra_utils_1.urlencodeUtil.urlsafeBase64Encode('gbk')}|saveas/${zipKey}`;
|
|
453
|
+
// const operManager = new qiniu.fop.OperationManager(
|
|
454
|
+
// this.mac,
|
|
455
|
+
// this.qiniuConfig,
|
|
456
|
+
// )
|
|
457
|
+
const pipeline = ''; // 使用公共队列
|
|
458
|
+
// 下行。不知用处
|
|
459
|
+
const options = { force: false };
|
|
460
|
+
const persistentId = await this.pfopFops(dataKey, fops, pipeline, options, finalBucket);
|
|
461
|
+
// 这里只返回任务id,转由客户端发请求查询
|
|
462
|
+
return persistentId;
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
throw (0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.QiniuZipDownloadError);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* 执行pfop的fops操作
|
|
470
|
+
*
|
|
471
|
+
* @param key 文件对象在存储桶中的键(文件名)
|
|
472
|
+
* @param fops 操作的fops数组
|
|
473
|
+
* @param pipeline 使用的管道名称
|
|
474
|
+
* @param options 额外的请求选项
|
|
475
|
+
* @param bucket 指定的存储桶名称,默认为当前实例的存储桶
|
|
476
|
+
* @returns 返回Promise,解析为字符串类型的任务ID
|
|
477
|
+
* @throws 如果执行过程中出现错误,则抛出异常
|
|
478
|
+
*/
|
|
479
|
+
async pfopFops(key, fops, pipeline, options, bucket) {
|
|
480
|
+
const finalBucket = this.getBucketString(bucket);
|
|
481
|
+
return new Promise((res, rej) => {
|
|
482
|
+
this.operManager.pfop(finalBucket, key, [fops], pipeline, options, (err, data, resp) => {
|
|
483
|
+
if (err) {
|
|
484
|
+
rej(err);
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
487
|
+
if (resp.statusCode == 200 && data) {
|
|
488
|
+
// 这里只返回任务id,转由客户端发请求查询
|
|
489
|
+
res(data.persistentId);
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
this.logger.error('Qiniu pfop failed', { statusCode: resp.statusCode, data });
|
|
493
|
+
rej(new Error('Qiniu pfop failed'));
|
|
494
|
+
}
|
|
495
|
+
});
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* 查询Fop任务完成状态
|
|
500
|
+
* @param {string} persistentId
|
|
501
|
+
* @returns
|
|
502
|
+
*/
|
|
503
|
+
async queryFopStatus(persistentId) {
|
|
504
|
+
return new Promise((res, rej) => {
|
|
505
|
+
this.operManager.prefop(persistentId, (err, data, resp) => {
|
|
506
|
+
if (err) {
|
|
507
|
+
this.logger.error('Qiniu queryFopStatus error', err);
|
|
508
|
+
rej((0, infra_common_1.apiError)(infra_contracts_1.CommonErrorCode.QiniuQueryFopStatusError));
|
|
509
|
+
return;
|
|
510
|
+
}
|
|
511
|
+
if (resp.statusCode == 200 && data && data.items && data.items.length > 0) {
|
|
512
|
+
const item = data.items[0];
|
|
513
|
+
// const { code, key } = item
|
|
514
|
+
// res({ code, key })
|
|
515
|
+
res(item);
|
|
516
|
+
}
|
|
517
|
+
else {
|
|
518
|
+
this.logger.error('Qiniu queryFopStatus failed', { statusCode: resp.statusCode, data });
|
|
519
|
+
rej(new Error('Qiniu queryFopStatus failed'));
|
|
520
|
+
}
|
|
521
|
+
});
|
|
522
|
+
});
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
exports.FileQiniuClient = FileQiniuClient;
|
|
526
|
+
//# sourceMappingURL=file-qiniu.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-qiniu.client.js","sourceRoot":"","sources":["../../../src/internal/file-storage/file-qiniu.client.ts"],"names":[],"mappings":"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"}
|