@bedelightful/upload-sdk 0.0.7
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/LICENSE +8 -0
- package/README.md +132 -0
- package/dist/es/Exception/BaseException.js +14 -0
- package/dist/es/Exception/BaseException.js.map +1 -0
- package/dist/es/Exception/DownloadException.js +40 -0
- package/dist/es/Exception/DownloadException.js.map +1 -0
- package/dist/es/Exception/HttpException.js +50 -0
- package/dist/es/Exception/HttpException.js.map +1 -0
- package/dist/es/Exception/InitException.js +49 -0
- package/dist/es/Exception/InitException.js.map +1 -0
- package/dist/es/Exception/UploadException.js +50 -0
- package/dist/es/Exception/UploadException.js.map +1 -0
- package/dist/es/index.d.ts +867 -0
- package/dist/es/index.js +162 -0
- package/dist/es/index.js.map +1 -0
- package/dist/es/modules/Kodo/defaultUpload.js +38 -0
- package/dist/es/modules/Kodo/defaultUpload.js.map +1 -0
- package/dist/es/modules/Kodo/index.js +8 -0
- package/dist/es/modules/Kodo/index.js.map +1 -0
- package/dist/es/modules/Local/index.js +31 -0
- package/dist/es/modules/Local/index.js.map +1 -0
- package/dist/es/modules/MinIO/MultipartUpload.js +335 -0
- package/dist/es/modules/MinIO/MultipartUpload.js.map +1 -0
- package/dist/es/modules/MinIO/STSUpload.js +10 -0
- package/dist/es/modules/MinIO/STSUpload.js.map +1 -0
- package/dist/es/modules/MinIO/defaultUpload.js +124 -0
- package/dist/es/modules/MinIO/defaultUpload.js.map +1 -0
- package/dist/es/modules/MinIO/index.js +16 -0
- package/dist/es/modules/MinIO/index.js.map +1 -0
- package/dist/es/modules/OBS/MultipartUpload.js +269 -0
- package/dist/es/modules/OBS/MultipartUpload.js.map +1 -0
- package/dist/es/modules/OBS/STSUpload.js +71 -0
- package/dist/es/modules/OBS/STSUpload.js.map +1 -0
- package/dist/es/modules/OBS/defaultUpload.js +59 -0
- package/dist/es/modules/OBS/defaultUpload.js.map +1 -0
- package/dist/es/modules/OBS/index.js +16 -0
- package/dist/es/modules/OBS/index.js.map +1 -0
- package/dist/es/modules/OBS/utils/index.js +25 -0
- package/dist/es/modules/OBS/utils/index.js.map +1 -0
- package/dist/es/modules/OSS/MultipartUpload.js +232 -0
- package/dist/es/modules/OSS/MultipartUpload.js.map +1 -0
- package/dist/es/modules/OSS/STSUpload.js +48 -0
- package/dist/es/modules/OSS/STSUpload.js.map +1 -0
- package/dist/es/modules/OSS/defaultUpload.js +53 -0
- package/dist/es/modules/OSS/defaultUpload.js.map +1 -0
- package/dist/es/modules/OSS/index.js +16 -0
- package/dist/es/modules/OSS/index.js.map +1 -0
- package/dist/es/modules/OSS/utils/helper.js +137 -0
- package/dist/es/modules/OSS/utils/helper.js.map +1 -0
- package/dist/es/modules/OSS/utils/signature.js +96 -0
- package/dist/es/modules/OSS/utils/signature.js.map +1 -0
- package/dist/es/modules/TOS/MultipartUpload.js +288 -0
- package/dist/es/modules/TOS/MultipartUpload.js.map +1 -0
- package/dist/es/modules/TOS/STSUpload.js +92 -0
- package/dist/es/modules/TOS/STSUpload.js.map +1 -0
- package/dist/es/modules/TOS/defaultUpload.js +65 -0
- package/dist/es/modules/TOS/defaultUpload.js.map +1 -0
- package/dist/es/modules/TOS/index.js +16 -0
- package/dist/es/modules/TOS/index.js.map +1 -0
- package/dist/es/modules/TOS/utils/TosClientError.js +15 -0
- package/dist/es/modules/TOS/utils/TosClientError.js.map +1 -0
- package/dist/es/modules/TOS/utils/index.js +38 -0
- package/dist/es/modules/TOS/utils/index.js.map +1 -0
- package/dist/es/modules/TOS/utils/signatureV4.js +269 -0
- package/dist/es/modules/TOS/utils/signatureV4.js.map +1 -0
- package/dist/es/modules/TOS/utils/signatureV4Credentials.js +21 -0
- package/dist/es/modules/TOS/utils/signatureV4Credentials.js.map +1 -0
- package/dist/es/modules/TOS/utils/universal/crypto.browser.js +56 -0
- package/dist/es/modules/TOS/utils/universal/crypto.browser.js.map +1 -0
- package/dist/es/modules/TOS/utils/utils.js +18 -0
- package/dist/es/modules/TOS/utils/utils.js.map +1 -0
- package/dist/es/modules/index.js +20 -0
- package/dist/es/modules/index.js.map +1 -0
- package/dist/es/types/Kodo.js +1 -0
- package/dist/es/types/Kodo.js.map +1 -0
- package/dist/es/types/Local.js +1 -0
- package/dist/es/types/Local.js.map +1 -0
- package/dist/es/types/MinIO.js +1 -0
- package/dist/es/types/MinIO.js.map +1 -0
- package/dist/es/types/OBS.js +8 -0
- package/dist/es/types/OBS.js.map +1 -0
- package/dist/es/types/OSS.js +1 -0
- package/dist/es/types/OSS.js.map +1 -0
- package/dist/es/types/TOS.js +1 -0
- package/dist/es/types/TOS.js.map +1 -0
- package/dist/es/types/error.js +1 -0
- package/dist/es/types/error.js.map +1 -0
- package/dist/es/types/index.js +13 -0
- package/dist/es/types/index.js.map +1 -0
- package/dist/es/types/log.js +1 -0
- package/dist/es/types/log.js.map +1 -0
- package/dist/es/types/request.js +1 -0
- package/dist/es/types/request.js.map +1 -0
- package/dist/es/utils/EventEmitter.js +32 -0
- package/dist/es/utils/EventEmitter.js.map +1 -0
- package/dist/es/utils/UploadManger.js +276 -0
- package/dist/es/utils/UploadManger.js.map +1 -0
- package/dist/es/utils/UploadTask.js +13 -0
- package/dist/es/utils/UploadTask.js.map +1 -0
- package/dist/es/utils/checkDataFormat.js +41 -0
- package/dist/es/utils/checkDataFormat.js.map +1 -0
- package/dist/es/utils/global.js +83 -0
- package/dist/es/utils/global.js.map +1 -0
- package/dist/es/utils/index.js +20 -0
- package/dist/es/utils/index.js.map +1 -0
- package/dist/es/utils/logPubSub.js +59 -0
- package/dist/es/utils/logPubSub.js.map +1 -0
- package/dist/es/utils/multipart.js +159 -0
- package/dist/es/utils/multipart.js.map +1 -0
- package/dist/es/utils/nanoid.js +10 -0
- package/dist/es/utils/nanoid.js.map +1 -0
- package/dist/es/utils/regExpUtil.js +21 -0
- package/dist/es/utils/regExpUtil.js.map +1 -0
- package/dist/es/utils/request.js +234 -0
- package/dist/es/utils/request.js.map +1 -0
- package/dist/es/utils/response.js +20 -0
- package/dist/es/utils/response.js.map +1 -0
- package/dist/index.d.ts +867 -0
- package/dist/index.js +60913 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +130 -0
- package/dist/index.min.js.map +1 -0
- package/dist/lib/Exception/BaseException.js +37 -0
- package/dist/lib/Exception/BaseException.js.map +1 -0
- package/dist/lib/Exception/DownloadException.js +65 -0
- package/dist/lib/Exception/DownloadException.js.map +1 -0
- package/dist/lib/Exception/HttpException.js +75 -0
- package/dist/lib/Exception/HttpException.js.map +1 -0
- package/dist/lib/Exception/InitException.js +73 -0
- package/dist/lib/Exception/InitException.js.map +1 -0
- package/dist/lib/Exception/UploadException.js +75 -0
- package/dist/lib/Exception/UploadException.js.map +1 -0
- package/dist/lib/index.d.cts +867 -0
- package/dist/lib/index.js +203 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/modules/Kodo/defaultUpload.js +61 -0
- package/dist/lib/modules/Kodo/defaultUpload.js.map +1 -0
- package/dist/lib/modules/Kodo/index.js +28 -0
- package/dist/lib/modules/Kodo/index.js.map +1 -0
- package/dist/lib/modules/Local/index.js +50 -0
- package/dist/lib/modules/Local/index.js.map +1 -0
- package/dist/lib/modules/MinIO/MultipartUpload.js +357 -0
- package/dist/lib/modules/MinIO/MultipartUpload.js.map +1 -0
- package/dist/lib/modules/MinIO/STSUpload.js +33 -0
- package/dist/lib/modules/MinIO/STSUpload.js.map +1 -0
- package/dist/lib/modules/MinIO/defaultUpload.js +158 -0
- package/dist/lib/modules/MinIO/defaultUpload.js.map +1 -0
- package/dist/lib/modules/MinIO/index.js +35 -0
- package/dist/lib/modules/MinIO/index.js.map +1 -0
- package/dist/lib/modules/OBS/MultipartUpload.js +296 -0
- package/dist/lib/modules/OBS/MultipartUpload.js.map +1 -0
- package/dist/lib/modules/OBS/STSUpload.js +104 -0
- package/dist/lib/modules/OBS/STSUpload.js.map +1 -0
- package/dist/lib/modules/OBS/defaultUpload.js +88 -0
- package/dist/lib/modules/OBS/defaultUpload.js.map +1 -0
- package/dist/lib/modules/OBS/index.js +45 -0
- package/dist/lib/modules/OBS/index.js.map +1 -0
- package/dist/lib/modules/OBS/utils/index.js +49 -0
- package/dist/lib/modules/OBS/utils/index.js.map +1 -0
- package/dist/lib/modules/OSS/MultipartUpload.js +259 -0
- package/dist/lib/modules/OSS/MultipartUpload.js.map +1 -0
- package/dist/lib/modules/OSS/STSUpload.js +71 -0
- package/dist/lib/modules/OSS/STSUpload.js.map +1 -0
- package/dist/lib/modules/OSS/defaultUpload.js +76 -0
- package/dist/lib/modules/OSS/defaultUpload.js.map +1 -0
- package/dist/lib/modules/OSS/index.js +35 -0
- package/dist/lib/modules/OSS/index.js.map +1 -0
- package/dist/lib/modules/OSS/utils/helper.js +173 -0
- package/dist/lib/modules/OSS/utils/helper.js.map +1 -0
- package/dist/lib/modules/OSS/utils/signature.js +132 -0
- package/dist/lib/modules/OSS/utils/signature.js.map +1 -0
- package/dist/lib/modules/TOS/MultipartUpload.js +315 -0
- package/dist/lib/modules/TOS/MultipartUpload.js.map +1 -0
- package/dist/lib/modules/TOS/STSUpload.js +125 -0
- package/dist/lib/modules/TOS/STSUpload.js.map +1 -0
- package/dist/lib/modules/TOS/defaultUpload.js +94 -0
- package/dist/lib/modules/TOS/defaultUpload.js.map +1 -0
- package/dist/lib/modules/TOS/index.js +45 -0
- package/dist/lib/modules/TOS/index.js.map +1 -0
- package/dist/lib/modules/TOS/utils/TosClientError.js +34 -0
- package/dist/lib/modules/TOS/utils/TosClientError.js.map +1 -0
- package/dist/lib/modules/TOS/utils/index.js +64 -0
- package/dist/lib/modules/TOS/utils/index.js.map +1 -0
- package/dist/lib/modules/TOS/utils/signatureV4.js +294 -0
- package/dist/lib/modules/TOS/utils/signatureV4.js.map +1 -0
- package/dist/lib/modules/TOS/utils/signatureV4Credentials.js +44 -0
- package/dist/lib/modules/TOS/utils/signatureV4Credentials.js.map +1 -0
- package/dist/lib/modules/TOS/utils/universal/crypto.browser.js +93 -0
- package/dist/lib/modules/TOS/utils/universal/crypto.browser.js.map +1 -0
- package/dist/lib/modules/TOS/utils/utils.js +42 -0
- package/dist/lib/modules/TOS/utils/utils.js.map +1 -0
- package/dist/lib/modules/index.js +50 -0
- package/dist/lib/modules/index.js.map +1 -0
- package/dist/lib/types/Kodo.js +17 -0
- package/dist/lib/types/Kodo.js.map +1 -0
- package/dist/lib/types/Local.js +17 -0
- package/dist/lib/types/Local.js.map +1 -0
- package/dist/lib/types/MinIO.js +17 -0
- package/dist/lib/types/MinIO.js.map +1 -0
- package/dist/lib/types/OBS.js +32 -0
- package/dist/lib/types/OBS.js.map +1 -0
- package/dist/lib/types/OSS.js +17 -0
- package/dist/lib/types/OSS.js.map +1 -0
- package/dist/lib/types/TOS.js +17 -0
- package/dist/lib/types/TOS.js.map +1 -0
- package/dist/lib/types/error.js +17 -0
- package/dist/lib/types/error.js.map +1 -0
- package/dist/lib/types/index.js +37 -0
- package/dist/lib/types/index.js.map +1 -0
- package/dist/lib/types/log.js +17 -0
- package/dist/lib/types/log.js.map +1 -0
- package/dist/lib/types/request.js +17 -0
- package/dist/lib/types/request.js.map +1 -0
- package/dist/lib/utils/EventEmitter.js +51 -0
- package/dist/lib/utils/EventEmitter.js.map +1 -0
- package/dist/lib/utils/UploadManger.js +309 -0
- package/dist/lib/utils/UploadManger.js.map +1 -0
- package/dist/lib/utils/UploadTask.js +32 -0
- package/dist/lib/utils/UploadTask.js.map +1 -0
- package/dist/lib/utils/checkDataFormat.js +70 -0
- package/dist/lib/utils/checkDataFormat.js.map +1 -0
- package/dist/lib/utils/global.js +106 -0
- package/dist/lib/utils/global.js.map +1 -0
- package/dist/lib/utils/index.js +44 -0
- package/dist/lib/utils/index.js.map +1 -0
- package/dist/lib/utils/logPubSub.js +78 -0
- package/dist/lib/utils/logPubSub.js.map +1 -0
- package/dist/lib/utils/multipart.js +197 -0
- package/dist/lib/utils/multipart.js.map +1 -0
- package/dist/lib/utils/nanoid.js +33 -0
- package/dist/lib/utils/nanoid.js.map +1 -0
- package/dist/lib/utils/regExpUtil.js +44 -0
- package/dist/lib/utils/regExpUtil.js.map +1 -0
- package/dist/lib/utils/request.js +264 -0
- package/dist/lib/utils/request.js.map +1 -0
- package/dist/lib/utils/response.js +43 -0
- package/dist/lib/utils/response.js.map +1 -0
- package/dist/package.json +120 -0
- package/package.json +120 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/UploadManger.ts"],"sourcesContent":["import { isFunction } from \"lodash-es\"\nimport { InitException, InitExceptionCode } from \"../Exception/InitException\"\nimport { UploadException, UploadExceptionCode } from \"../Exception/UploadException\"\nimport PlatformModules from \"../modules\"\nimport type {\n\tFailCallback,\n\tNormalSuccessResponse,\n\tPlatformMultipartUploadOption,\n\tPlatformParams,\n\tPlatformSimpleUploadOption,\n\tProgress,\n\tProgressCallback,\n\tProgressCallbackProps,\n\tRequest,\n\tSuccessCallback,\n\tTask,\n\tTaskCallBack,\n\tTaskId,\n\tUploadSource,\n\tUploadConfig,\n} from \"../types\"\nimport type { OSS } from \"../types/OSS\"\nimport type { ErrorType } from \"../types/error\"\nimport type { Kodo } from \"../types/Kodo\"\nimport type { TOS } from \"../types/TOS\"\nimport type { OBS } from \"../types/OBS\"\nimport type { Local } from \"../types/Local\"\nimport type { MinIO } from \"../types/MinIO\"\nimport { isBlob, isFile } from \"./checkDataFormat\"\nimport EventEmitter from \"./EventEmitter\"\nimport { getUploadConfig } from \"./global\"\nimport logPubSub from \"./logPubSub\"\nimport { nanoid } from \"./nanoid\"\nimport { cancelRequest, completeRequest, pauseRequest } from \"./request\"\n\n// Event subscription management for upload tasks\nconst TaskEvent = new EventEmitter<SuccessCallback | FailCallback | ProgressCallback>()\n\nexport class UploadManger {\n\tprivate tasks: Record<TaskId, Task> = {}\n\n\tprivate detach(taskId: TaskId): void {\n\t\tdelete this.tasks[taskId]\n\t\tcompleteRequest(taskId)\n\t}\n\n\tprivate notifySuccess(taskId: TaskId, data: NormalSuccessResponse): void {\n\t\tconst { success } = this.tasks[taskId] || {}\n\t\tif (isFunction(success)) {\n\t\t\tsuccess(data)\n\t\t}\n\t}\n\n\tprivate notifyError(taskId: TaskId, err: ErrorType.UploadError): void {\n\t\tconst { fail } = this.tasks[taskId] || {}\n\t\tif (isFunction(fail)) {\n\t\t\tfail(err)\n\t\t}\n\t}\n\n\tprivate notifyProgress(\n\t\ttaskId: string,\n\t\tpercent: ProgressCallbackProps[\"percent\"],\n\t\tloaded: ProgressCallbackProps[\"loaded\"],\n\t\ttotal: ProgressCallbackProps[\"total\"],\n\t\tcheckpoint: ProgressCallbackProps[\"checkpoint\"],\n\t): void {\n\t\tconst { progress } = this.tasks[taskId] || {}\n\t\tif (isFunction(progress)) {\n\t\t\tprogress(percent, loaded, total, checkpoint)\n\t\t}\n\t}\n\n\tpublic createTask(\n\t\tfile: File | Blob,\n\t\tkey: string,\n\t\tuploadConfig: UploadConfig,\n\t\toption: PlatformMultipartUploadOption | PlatformSimpleUploadOption,\n\t): TaskCallBack {\n\t\tlet taskId = nanoid()\n\t\tif (this.tasks[taskId]) {\n\t\t\twhile (this.tasks[taskId]) {\n\t\t\t\ttaskId = nanoid()\n\t\t\t}\n\t\t}\n\n\t\tconst output: TaskCallBack = {\n\t\t\tsuccess: (callback) => {\n\t\t\t\tconst taskEventCallback: SuccessCallback = (response) => {\n\t\t\t\t\t// Report success log\n\t\t\t\t\tlogPubSub.report({\n\t\t\t\t\t\ttype: \"SUCCESS\",\n\t\t\t\t\t\teventName: \"upload\",\n\t\t\t\t\t\teventParams: { ...uploadConfig },\n\t\t\t\t\t\teventResponse: response,\n\t\t\t\t\t})\n\t\t\t\t\t// Remove all callbacks for the current task\n\t\t\t\t\tTaskEvent.off(`${taskId}_success`)\n\t\t\t\t\tTaskEvent.off(`${taskId}_fail`)\n\t\t\t\t\tTaskEvent.off(`${taskId}_progress`)\n\t\t\t\t\tcallback(response)\n\t\t\t\t}\n\t\t\t\t// Subscribe to success callback for current upload task\n\t\t\t\tTaskEvent.on(`${taskId}_success`, taskEventCallback)\n\t\t\t},\n\t\t\tfail: (callback) => {\n\t\t\t\tconst taskEventCallback: FailCallback = (error) => {\n\t\t\t\t\t// Report failure log\n\t\t\t\t\tlogPubSub.report({\n\t\t\t\t\t\ttype: \"ERROR\",\n\t\t\t\t\t\teventName: \"upload\",\n\t\t\t\t\t\teventParams: { ...uploadConfig },\n\t\t\t\t\t\terror,\n\t\t\t\t\t})\n\t\t\t\t\t// Remove all callbacks for the current task\n\t\t\t\t\t// TaskEvent.off(`${taskId}_success`)\n\t\t\t\t\t// TaskEvent.off(`${taskId}_fail`)\n\t\t\t\t\t// TaskEvent.off(`${taskId}_progress`)\n\t\t\t\t\tcallback(error)\n\t\t\t\t}\n\t\t\t\t// Subscribe to failure callback for current upload task\n\t\t\t\tTaskEvent.on(`${taskId}_fail`, taskEventCallback)\n\t\t\t},\n\t\t\tprogress: (callback) => {\n\t\t\t\tconst taskEventCallback: ProgressCallback = (\n\t\t\t\t\tpercent,\n\t\t\t\t\tloaded,\n\t\t\t\t\ttotal,\n\t\t\t\t\tcheckpoint,\n\t\t\t\t) => {\n\t\t\t\t\tcallback(percent, loaded, total, checkpoint)\n\t\t\t\t}\n\t\t\t\t// Subscribe to progress callback for current upload task\n\t\t\t\tTaskEvent.on(`${taskId}_progress`, taskEventCallback)\n\t\t\t},\n\t\tcancel: () => {\n\t\t\tconst task = this.tasks[taskId]\n\t\t\tif (task) {\n\t\t\t\tcancelRequest(taskId)\n\t\t\t\t// Remove all callbacks for the current task\n\t\t\t\tTaskEvent.off(`${taskId}_success`)\n\t\t\t\tTaskEvent.off(`${taskId}_fail`)\n\t\t\t\tTaskEvent.off(`${taskId}_progress`)\n\t\t\t\tconst { pauseInfo } = task\n\t\t\t\tif (pauseInfo) {\n\t\t\t\t\t// Clear multipart upload checkpoint info\n\t\t\t\t\tdelete task.pauseInfo\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tpause: () => {\n\t\t\tconst task = this.tasks[taskId]\n\t\t\tif (task) {\n\t\t\t\tconst { pauseInfo } = task\n\t\t\t\tif (pauseInfo) {\n\t\t\t\t\ttask.pauseInfo = {\n\t\t\t\t\t\t...pauseInfo,\n\t\t\t\t\t\tisPause: true,\n\t\t\t\t\t}\n\t\t\t\t\tpauseRequest(taskId)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tresume: () => {\n\t\t\tconst task = this.tasks[taskId]\n\t\t\tif (task) {\n\t\t\t\tconst { pauseInfo } = task\n\t\t\t\t// Only multipart upload can be resumed\n\t\t\t\tif (pauseInfo) {\n\t\t\t\t\tconst { isPause, checkpoint } = pauseInfo\n\n\t\t\t\t\tif (isPause) {\n\t\t\t\t\t\ttask.pauseInfo = {\n\t\t\t\t\t\t\tisPause: false,\n\t\t\t\t\t\t\tcheckpoint,\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.upload(file, key, taskId, uploadConfig, {\n\t\t\t\t\t\t\t...option,\n\t\t\t\t\t\t\tcheckpoint,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t}\n\t\tthis.tasks[taskId] = {\n\t\t\tsuccess: (response) => {\n\t\t\t\tTaskEvent.emit(`${taskId}_success`, response)\n\t\t\t},\n\t\t\tfail: (error) => {\n\t\t\t\tTaskEvent.emit(`${taskId}_fail`, error)\n\t\t\t},\n\t\t\tprogress: (response) => {\n\t\t\t\tTaskEvent.emit(`${taskId}_progress`, response)\n\t\t\t},\n\t\t\tcancel: output.cancel,\n\t\t\tpause: output.pause,\n\t\t\tresume: output.resume,\n\t\t}\n\n\t\tthis.upload(file, key, taskId, uploadConfig, option)\n\n\t\treturn {\n\t\t\tsuccess: output.success,\n\t\t\tfail: output.fail,\n\t\t\tprogress: output.progress,\n\t\t\tcancel: output.cancel,\n\t\t\tpause: output.pause,\n\t\t\tresume: output.resume,\n\t\t}\n\t}\n\n\tprivate upload<T extends PlatformParams>(\n\t\tfile: File | Blob,\n\t\tkey: string,\n\t\ttaskId: TaskId,\n\t\tuploadConfig: UploadConfig,\n\t\toption: PlatformMultipartUploadOption | PlatformSimpleUploadOption,\n\t) {\n\tconst onProgress: Progress = (\n\t\tpercent: number,\n\t\tloaded: number,\n\t\ttotal: number,\n\t\tcheckpoint: OSS.Checkpoint | null,\n\t) => {\n\t\t// Save multipart upload checkpoint info\n\t\tconst task = this.tasks[taskId]\n\t\tif (checkpoint && task) {\n\t\t\ttask.pauseInfo = {\n\t\t\t\tisPause: false,\n\t\t\t\tcheckpoint,\n\t\t\t}\n\t\t\tthis.notifyProgress(taskId, percent, loaded, total, checkpoint)\n\t\t} else {\n\t\t\tthis.notifyProgress(taskId, percent, loaded, total, null)\n\t\t}\n\t}\n\t\t// Handle upload credentials: support custom credentials and traditional credential retrieval\n\t\tconst uploadPromise = uploadConfig.customCredentials\n\t\t\t? Promise.resolve({\n\t\t\t\t\tplatform: uploadConfig.customCredentials.platform,\n\t\t\t\t\ttemporary_credential: uploadConfig.customCredentials.temporary_credential,\n\t\t\t\t\texpire: uploadConfig.customCredentials.expire || 0,\n\t\t\t } as UploadSource<T>)\n\t\t\t: (() => {\n\t\t\t\t\tconst { url, method, headers, body } = uploadConfig\n\t\t\t\t\tconst uploadSourceRequest: Request = {\n\t\t\t\t\t\turl: url!,\n\t\t\t\t\t\tmethod: method!,\n\t\t\t\t\t\theaders,\n\t\t\t\t\t\tbody,\n\t\t\t\t\t}\n\t\t\t\t\tconst isNeedForceReFresh = !option?.reUploadedCount\n\t\t\t\t\treturn getUploadConfig<T>(uploadSourceRequest, isNeedForceReFresh)\n\t\t\t })()\n\n\t\tuploadPromise\n\t\t\t.then(async (uploadSource: UploadSource<T>) => {\n\t\t\t\tconst platformType = uploadSource.platform\n\t\t\t\tconst platformConfig = uploadSource.temporary_credential\n\n\t\t\t\t// Use async loading for platform modules\n\t\t\t\ttry {\n\t\t\t\t\tconst platform = PlatformModules[platformType]\n\n\t\t\t\t\tif (!platform) {\n\t\t\t\t\t\tthrow new InitException(\n\t\t\t\t\t\t\tInitExceptionCode.UPLOAD_IS_NO_SUPPORT_THIS_PLATFORM,\n\t\t\t\t\t\t\tplatformType,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\treturn { platform, platformConfig }\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthrow new InitException(\n\t\t\t\t\t\tInitExceptionCode.UPLOAD_IS_NO_SUPPORT_THIS_PLATFORM,\n\t\t\t\t\t\tplatformType,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t})\n\t\t.then(({ platform, platformConfig }) => {\n\t\t\tif (!file && !isBlob(file) && !isFile(file))\n\t\t\t\tthrow new InitException(InitExceptionCode.UPLOAD_IS_NO_SUPPORT_THIS_FILE_FORMAT)\n\t\t\tif (!key)\n\t\t\t\tthrow new InitException(InitExceptionCode.MISSING_PARAMS_FOR_UPLOAD, \"fileName\")\n\t\t\tif (!platform.upload) {\n\t\t\t\tthrow new InitException(\n\t\t\t\t\tInitExceptionCode.UPLOAD_IS_NO_SUPPORT_THIS_PLATFORM,\n\t\t\t\t\t\"platform.upload is undefined\"\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn platform.upload(\n\t\t\t\tfile,\n\t\t\t\tkey,\n\t\t\t\tplatformConfig as OSS.AuthParams &\n\t\t\t\t\tKodo.AuthParams &\n\t\t\t\t\tOSS.STSAuthParams &\n\t\t\t\t\tTOS.STSAuthParams &\n\t\t\t\t\tTOS.AuthParams &\n\t\t\t\t\tOBS.STSAuthParams &\n\t\t\t\t\tOBS.AuthParams &\n\t\t\t\t\tLocal.AuthParams &\n\t\t\t\t\tMinIO.AuthParams &\n\t\t\t\t\tMinIO.STSAuthParams,\n\t\t\t\t{\n\t\t\t\t\t...option,\n\t\t\t\t\tprogress: onProgress,\n\t\t\t\t\ttaskId,\n\t\t\t\t},\n\t\t\t)\n\t\t})\n\t\t\t.then((res) => {\n\t\t\t\tthis.notifySuccess(taskId, res)\n\t\t\t\tthis.detach(taskId)\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tlet message = err\n\t\t\t\t// When upload platform returns token expiration error\n\t\t\t\tif (err?.status === 1003) {\n\t\t\t\t\t// Retry up to 3 times by default\n\t\t\t\t\tif (option?.reUploadedCount && option?.reUploadedCount >= 2) {\n\t\t\t\t\t\tthis.notifyError(\n\t\t\t\t\t\t\ttaskId,\n\t\t\t\t\t\t\tnew InitException(InitExceptionCode.REUPLOAD_IS_FAILED),\n\t\t\t\t\t\t)\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tthis.upload(file, key, taskId, uploadConfig, {\n\t\t\t\t\t\t...option,\n\t\t\t\t\t\treUploadedCount: option?.reUploadedCount ? option.reUploadedCount + 1 : 1,\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t// Upload paused\n\t\t\t\tif (err?.status === 5002) {\n\t\t\t\t\tmessage = new UploadException(UploadExceptionCode.UPLOAD_PAUSE)\n\t\t\t\t}\n\t\t\t\t// Upload canceled\n\t\t\t\tif (err?.status === 5001) {\n\t\t\t\t\tmessage = new UploadException(UploadExceptionCode.UPLOAD_CANCEL)\n\t\t\t\t}\n\t\t\t\tthis.notifyError(taskId, message)\n\t\t\t})\n\t}\n\n\t// Pause all uploads\n\tpublic pauseAllTask() {\n\t\tObject.values(this.tasks).forEach((task) => {\n\t\t\tif (task.pause) {\n\t\t\t\ttask.pause()\n\t\t\t}\n\t\t})\n\t}\n\n\t// Resume all uploads\n\tpublic resumeAllTask() {\n\t\tObject.values(this.tasks).forEach((task) => {\n\t\t\tif (task.resume) {\n\t\t\t\ttask.resume()\n\t\t\t}\n\t\t})\n\t}\n\n\t// Cancel all uploads\n\tpublic cancelAllTask() {\n\t\tObject.values(this.tasks).forEach((task) => {\n\t\t\tif (task.cancel) {\n\t\t\t\ttask.cancel()\n\t\t\t}\n\t\t})\n\t}\n}\n\n\n\n\n"],"mappings":"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","names":["EventEmitter","logPubSub","PlatformModules"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var UploadTask_exports = {};
|
|
21
|
+
__export(UploadTask_exports, {
|
|
22
|
+
default: () => UploadTask
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(UploadTask_exports);
|
|
25
|
+
const _UploadTask = class _UploadTask {
|
|
26
|
+
constructor(taskId) {
|
|
27
|
+
this.taskId = taskId;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
__name(_UploadTask, "UploadTask");
|
|
31
|
+
let UploadTask = _UploadTask;
|
|
32
|
+
//# sourceMappingURL=UploadTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/UploadTask.ts"],"sourcesContent":["export default class UploadTask {\n\ttaskId: string\n\n\tconstructor(taskId: string) {\n\t\tthis.taskId = taskId\n\t}\n}\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAC,MAAqB,cAArB,MAAqB,YAAW;AAAA,EAGhC,YAAY,QAAgB;AAC3B,SAAK,SAAS;AAAA,EACf;AACD;AANiC;AAAhC,IAAqB,aAArB;","names":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var checkDataFormat_exports = {};
|
|
21
|
+
__export(checkDataFormat_exports, {
|
|
22
|
+
isBlob: () => isBlob,
|
|
23
|
+
isBuffer: () => isBuffer,
|
|
24
|
+
isFile: () => isFile,
|
|
25
|
+
isFunction: () => isFunction,
|
|
26
|
+
isIP: () => isIP,
|
|
27
|
+
isJson: () => isJson,
|
|
28
|
+
isObject: () => isObject
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(checkDataFormat_exports);
|
|
31
|
+
function isBlob(blob) {
|
|
32
|
+
return typeof Blob !== "undefined" && blob instanceof Blob;
|
|
33
|
+
}
|
|
34
|
+
__name(isBlob, "isBlob");
|
|
35
|
+
function isBuffer(obj) {
|
|
36
|
+
return Buffer.isBuffer(obj);
|
|
37
|
+
}
|
|
38
|
+
__name(isBuffer, "isBuffer");
|
|
39
|
+
const isFile = /* @__PURE__ */ __name((obj) => typeof File !== "undefined" && obj instanceof File, "isFile");
|
|
40
|
+
const isFunction = /* @__PURE__ */ __name((v) => typeof v === "function", "isFunction");
|
|
41
|
+
const isIP = /* @__PURE__ */ __name((host) => {
|
|
42
|
+
const ipv4Regex = /^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$/;
|
|
43
|
+
const ipv6Regex = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/;
|
|
44
|
+
return ipv4Regex.test(host) || ipv6Regex.test(host);
|
|
45
|
+
}, "isIP");
|
|
46
|
+
const isJson = /* @__PURE__ */ __name((str) => {
|
|
47
|
+
if (typeof str !== "string") {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
if (typeof JSON.parse(str) === "object") {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
} catch (e) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}, "isJson");
|
|
59
|
+
const isObject = /* @__PURE__ */ __name((obj) => Object.prototype.toString.call(obj) === "[object Object]", "isObject");
|
|
60
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
61
|
+
0 && (module.exports = {
|
|
62
|
+
isBlob,
|
|
63
|
+
isBuffer,
|
|
64
|
+
isFile,
|
|
65
|
+
isFunction,
|
|
66
|
+
isIP,
|
|
67
|
+
isJson,
|
|
68
|
+
isObject
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=checkDataFormat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/checkDataFormat.ts"],"sourcesContent":["export function isBlob(blob: any) {\n\treturn typeof Blob !== \"undefined\" && blob instanceof Blob\n}\n\nexport function isBuffer(obj: any) {\n\treturn Buffer.isBuffer(obj)\n}\n\nexport const isFile = (obj: any) => typeof File !== \"undefined\" && obj instanceof File\n\nexport const isFunction = (v: any): boolean => typeof v === \"function\"\n\n/**\n * Judge isIP include ipv4 or ipv6\n * @param {String} host\n */\nexport const isIP = (host: string) => {\n\tconst ipv4Regex = /^(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}$/\n\tconst ipv6Regex =\n\t\t/^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$/\n\treturn ipv4Regex.test(host) || ipv6Regex.test(host)\n}\n\n// Validate if it is JSON type\nexport const isJson = (str: any): boolean => {\n\t// First ensure the input is a string type\n\tif (typeof str !== \"string\") {\n\t\treturn false\n\t}\n\n\ttry {\n\t\tif (typeof JSON.parse(str) === \"object\") {\n\t\t\treturn true\n\t\t}\n\t} catch (e) {\n\t\treturn false\n\t}\n\treturn false\n}\n\nexport const isObject = (obj: any) => Object.prototype.toString.call(obj) === \"[object Object]\"\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAQ,SAAS,OAAO,MAAW;AAClC,SAAO,OAAO,SAAS,eAAe,gBAAgB;AACvD;AAFiB;AAIV,SAAS,SAAS,KAAU;AAClC,SAAO,OAAO,SAAS,GAAG;AAC3B;AAFgB;AAIT,MAAM,SAAS,wBAAC,QAAa,OAAO,SAAS,eAAe,eAAe,MAA5D;AAEf,MAAM,aAAa,wBAAC,MAAoB,OAAO,MAAM,YAAlC;AAMnB,MAAM,OAAO,wBAAC,SAAiB;AACrC,QAAM,YAAY;AAClB,QAAM,YACL;AACD,SAAO,UAAU,KAAK,IAAI,KAAK,UAAU,KAAK,IAAI;AACnD,GALoB;AAQb,MAAM,SAAS,wBAAC,QAAsB;AAE5C,MAAI,OAAO,QAAQ,UAAU;AAC5B,WAAO;AAAA,EACR;AAEA,MAAI;AACH,QAAI,OAAO,KAAK,MAAM,GAAG,MAAM,UAAU;AACxC,aAAO;AAAA,IACR;AAAA,EACD,SAAS,GAAG;AACX,WAAO;AAAA,EACR;AACA,SAAO;AACR,GAdsB;AAgBf,MAAM,WAAW,wBAAC,QAAa,OAAO,UAAU,SAAS,KAAK,GAAG,MAAM,mBAAtD;","names":[]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var global_exports = {};
|
|
21
|
+
__export(global_exports, {
|
|
22
|
+
getUploadConfig: () => getUploadConfig
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(global_exports);
|
|
25
|
+
var import_HttpException = require("../Exception/HttpException");
|
|
26
|
+
var import_InitException = require("../Exception/InitException");
|
|
27
|
+
var import_request = require("./request");
|
|
28
|
+
const globalCache = {
|
|
29
|
+
// "http://xxx": {
|
|
30
|
+
// platform: PlatformType.OSS,
|
|
31
|
+
// temporary_credential: {} as AuthParams,
|
|
32
|
+
// expire: 0
|
|
33
|
+
// }
|
|
34
|
+
};
|
|
35
|
+
let running = false;
|
|
36
|
+
const tasks = [];
|
|
37
|
+
async function fetchUploadConfig(uploadSource) {
|
|
38
|
+
const { url, method, headers, body } = uploadSource;
|
|
39
|
+
const { code, data, message } = await (0, import_request.request)({
|
|
40
|
+
url,
|
|
41
|
+
method: method || "GET",
|
|
42
|
+
headers: headers || {},
|
|
43
|
+
data: body,
|
|
44
|
+
fail: (status, reject) => {
|
|
45
|
+
reject(new import_HttpException.HttpException(import_HttpException.HttpExceptionCode.REQUEST_FAILED_WITH_STATUS_CODE, status));
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
if (code !== 1e3) {
|
|
49
|
+
throw new import_InitException.InitException(import_InitException.InitExceptionCode.UPLOAD_REQUEST_CREDENTIALS_ERROR, message);
|
|
50
|
+
}
|
|
51
|
+
globalCache[url] = data;
|
|
52
|
+
return data;
|
|
53
|
+
}
|
|
54
|
+
__name(fetchUploadConfig, "fetchUploadConfig");
|
|
55
|
+
function runTask(uploadSource, useCache) {
|
|
56
|
+
const { url } = uploadSource;
|
|
57
|
+
running = true;
|
|
58
|
+
const task = tasks.shift();
|
|
59
|
+
let isResolve = false;
|
|
60
|
+
if (Object.keys(globalCache).includes(url) && useCache) {
|
|
61
|
+
const { expire } = globalCache[url];
|
|
62
|
+
if (expire) {
|
|
63
|
+
if (new Date(expire * 1e3 - 60 * 10 * 1e3).getTime() > Date.now()) {
|
|
64
|
+
task?.resolve(globalCache[url]);
|
|
65
|
+
isResolve = true;
|
|
66
|
+
}
|
|
67
|
+
} else {
|
|
68
|
+
console.warn(
|
|
69
|
+
`[Upload SDK]: Receive request return value does not contain "expire" field, please contact the back end for confirmation`
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
new Promise((resolve) => {
|
|
74
|
+
if (!isResolve) {
|
|
75
|
+
fetchUploadConfig(uploadSource).then((data) => {
|
|
76
|
+
task?.resolve({ ...data });
|
|
77
|
+
}).catch((err) => {
|
|
78
|
+
task?.reject(err);
|
|
79
|
+
}).finally(() => {
|
|
80
|
+
resolve();
|
|
81
|
+
});
|
|
82
|
+
} else {
|
|
83
|
+
resolve();
|
|
84
|
+
}
|
|
85
|
+
}).finally(() => {
|
|
86
|
+
running = false;
|
|
87
|
+
if (tasks.length > 0) {
|
|
88
|
+
runTask(uploadSource, useCache);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
__name(runTask, "runTask");
|
|
93
|
+
function getUploadConfig(uploadSource, useCache = true) {
|
|
94
|
+
return new Promise((resolve, reject) => {
|
|
95
|
+
tasks.push({ resolve, reject });
|
|
96
|
+
if (!running) {
|
|
97
|
+
runTask(uploadSource, useCache);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
__name(getUploadConfig, "getUploadConfig");
|
|
102
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
103
|
+
0 && (module.exports = {
|
|
104
|
+
getUploadConfig
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=global.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/global.ts"],"sourcesContent":["import { HttpException, HttpExceptionCode } from \"../Exception/HttpException\"\nimport { InitException, InitExceptionCode } from \"../Exception/InitException\"\nimport type { GlobalCache, PlatformParams, Request, UploadSource } from \"../types\"\nimport { request } from \"./request\"\nimport type { Result } from \"../types/request\"\n\nconst globalCache: GlobalCache<PlatformParams> = {\n\t// \"http://xxx\": {\n\t// \tplatform: PlatformType.OSS,\n\t// \ttemporary_credential: {} as AuthParams,\n\t// \texpire: 0\n\t// }\n}\n\ninterface Task {\n\tresolve: (uploadSource: any) => void\n\treject: (err: Error) => void\n}\n\nlet running = false\nconst tasks: Task[] = []\n\nasync function fetchUploadConfig<T extends PlatformParams>(uploadSource: Request) {\n\tconst { url, method, headers, body } = uploadSource\n\tconst { code, data, message } = await request<Result<UploadSource<T>>>({\n\t\turl,\n\t\tmethod: method || \"GET\",\n\t\theaders: headers || {},\n\t\tdata: body,\n\t\tfail: (status, reject) => {\n\t\t\treject(new HttpException(HttpExceptionCode.REQUEST_FAILED_WITH_STATUS_CODE, status))\n\t\t},\n\t})\n\n\tif (code !== 1000) {\n\t\tthrow new InitException(InitExceptionCode.UPLOAD_REQUEST_CREDENTIALS_ERROR, message)\n\t}\n\tglobalCache[url] = data\n\n\treturn data\n}\n\nfunction runTask<T extends PlatformParams>(uploadSource: Request, useCache: Boolean) {\n\tconst { url } = uploadSource\n\trunning = true\n\tconst task = tasks.shift()\n\tlet isResolve = false\n\t// Whether there is a cached request for this url\n\tif (Object.keys(globalCache).includes(url) && useCache) {\n\t\tconst { expire } = globalCache[url]\n\t\t// Check if the backend return value has an expire field\n\t\tif (expire) {\n\t\t\t// ps: Re-request temporary credentials 10 minutes before expiration\n\t\t\tif (new Date(expire * 1000 - 60 * 10 * 1000).getTime() > Date.now()) {\n\t\t\t\ttask?.resolve(globalCache[url] as UploadSource<T>)\n\t\t\t\tisResolve = true\n\t\t\t}\n\t\t} else {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(\n\t\t\t\t`[Upload SDK]: Receive request return value does not contain \"expire\" field, please contact the back end for confirmation`,\n\t\t\t)\n\t\t}\n\t}\n\n\tnew Promise<void>((resolve) => {\n\t\tif (!isResolve) {\n\t\t\tfetchUploadConfig(uploadSource)\n\t\t\t\t.then((data) => {\n\t\t\t\t\ttask?.resolve({ ...data } as UploadSource<T>)\n\t\t\t\t})\n\t\t\t\t.catch((err) => {\n\t\t\t\t\ttask?.reject(err)\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tresolve()\n\t\t\t\t})\n\t\t} else {\n\t\t\tresolve()\n\t\t}\n\t}).finally(() => {\n\t\trunning = false\n\n\t\tif (tasks.length > 0) {\n\t\t\trunTask(uploadSource, useCache)\n\t\t}\n\t})\n}\n\n/**\n * @description Check if temporary credentials are expired, if expired, re-obtain temporary credentials\n * @param {Request} uploadSource\n * @param useCache\n */\nexport function getUploadConfig<T extends PlatformParams>(\n\tuploadSource: Request,\n\tuseCache: boolean = true, // Do not use cache\n): Promise<UploadSource<T>> {\n\treturn new Promise((resolve, reject) => {\n\t\ttasks.push({ resolve, reject })\n\t\tif (!running) {\n\t\t\trunTask(uploadSource, useCache)\n\t\t}\n\t})\n}\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAC,2BAAiD;AAClD,2BAAiD;AAEjD,qBAAwB;AAGxB,MAAM,cAA2C;AAAA;AAAA;AAAA;AAAA;AAAA;AAMjD;AAOA,IAAI,UAAU;AACd,MAAM,QAAgB,CAAC;AAEvB,eAAe,kBAA4C,cAAuB;AACjF,QAAM,EAAE,KAAK,QAAQ,SAAS,KAAK,IAAI;AACvC,QAAM,EAAE,MAAM,MAAM,QAAQ,IAAI,UAAM,wBAAiC;AAAA,IACtE;AAAA,IACA,QAAQ,UAAU;AAAA,IAClB,SAAS,WAAW,CAAC;AAAA,IACrB,MAAM;AAAA,IACN,MAAM,CAAC,QAAQ,WAAW;AACzB,aAAO,IAAI,mCAAc,uCAAkB,iCAAiC,MAAM,CAAC;AAAA,IACpF;AAAA,EACD,CAAC;AAED,MAAI,SAAS,KAAM;AAClB,UAAM,IAAI,mCAAc,uCAAkB,kCAAkC,OAAO;AAAA,EACpF;AACA,cAAY,GAAG,IAAI;AAEnB,SAAO;AACR;AAlBe;AAoBf,SAAS,QAAkC,cAAuB,UAAmB;AACpF,QAAM,EAAE,IAAI,IAAI;AAChB,YAAU;AACV,QAAM,OAAO,MAAM,MAAM;AACzB,MAAI,YAAY;AAEhB,MAAI,OAAO,KAAK,WAAW,EAAE,SAAS,GAAG,KAAK,UAAU;AACvD,UAAM,EAAE,OAAO,IAAI,YAAY,GAAG;AAElC,QAAI,QAAQ;AAEX,UAAI,IAAI,KAAK,SAAS,MAAO,KAAK,KAAK,GAAI,EAAE,QAAQ,IAAI,KAAK,IAAI,GAAG;AACpE,cAAM,QAAQ,YAAY,GAAG,CAAoB;AACjD,oBAAY;AAAA,MACb;AAAA,IACD,OAAO;AAEN,cAAQ;AAAA,QACP;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,MAAI,QAAc,CAAC,YAAY;AAC9B,QAAI,CAAC,WAAW;AACf,wBAAkB,YAAY,EAC5B,KAAK,CAAC,SAAS;AACf,cAAM,QAAQ,EAAE,GAAG,KAAK,CAAoB;AAAA,MAC7C,CAAC,EACA,MAAM,CAAC,QAAQ;AACf,cAAM,OAAO,GAAG;AAAA,MACjB,CAAC,EACA,QAAQ,MAAM;AACd,gBAAQ;AAAA,MACT,CAAC;AAAA,IACH,OAAO;AACN,cAAQ;AAAA,IACT;AAAA,EACD,CAAC,EAAE,QAAQ,MAAM;AAChB,cAAU;AAEV,QAAI,MAAM,SAAS,GAAG;AACrB,cAAQ,cAAc,QAAQ;AAAA,IAC/B;AAAA,EACD,CAAC;AACF;AA7CS;AAoDF,SAAS,gBACf,cACA,WAAoB,MACO;AAC3B,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACvC,UAAM,KAAK,EAAE,SAAS,OAAO,CAAC;AAC9B,QAAI,CAAC,SAAS;AACb,cAAQ,cAAc,QAAQ;AAAA,IAC/B;AAAA,EACD,CAAC;AACF;AAVgB;","names":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var utils_exports = {};
|
|
21
|
+
__export(utils_exports, {
|
|
22
|
+
checkSpecialCharacters: () => checkSpecialCharacters,
|
|
23
|
+
getFileExtension: () => getFileExtension
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(utils_exports);
|
|
26
|
+
function checkSpecialCharacters(fileName) {
|
|
27
|
+
return fileName.includes("%");
|
|
28
|
+
}
|
|
29
|
+
__name(checkSpecialCharacters, "checkSpecialCharacters");
|
|
30
|
+
function getFileExtension(fileName) {
|
|
31
|
+
const lastDotIndex = fileName.lastIndexOf(".");
|
|
32
|
+
if (lastDotIndex === -1) {
|
|
33
|
+
return "";
|
|
34
|
+
}
|
|
35
|
+
const extension = fileName.substring(lastDotIndex + 1);
|
|
36
|
+
return extension.toLowerCase();
|
|
37
|
+
}
|
|
38
|
+
__name(getFileExtension, "getFileExtension");
|
|
39
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
40
|
+
0 && (module.exports = {
|
|
41
|
+
checkSpecialCharacters,
|
|
42
|
+
getFileExtension
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/index.ts"],"sourcesContent":["/**\n * Check if fileName contains special characters\n * @param fileName\n */\nexport function checkSpecialCharacters(fileName: string) {\n\t// Exists in actual implementation\n\treturn fileName.includes(\"%\")\n}\n\n/**\n * Get file extension\n * @param fileName\n */\nexport function getFileExtension(fileName: string): string {\n\tconst lastDotIndex = fileName.lastIndexOf(\".\")\n\tif (lastDotIndex === -1) {\n\t\treturn \"\" // No extension in filename\n\t}\n\tconst extension = fileName.substring(lastDotIndex + 1)\n\treturn extension.toLowerCase() // Return lowercase extension\n}\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,SAAS,uBAAuB,UAAkB;AAExD,SAAO,SAAS,SAAS,GAAG;AAC7B;AAHgB;AAST,SAAS,iBAAiB,UAA0B;AAC1D,QAAM,eAAe,SAAS,YAAY,GAAG;AAC7C,MAAI,iBAAiB,IAAI;AACxB,WAAO;AAAA,EACR;AACA,QAAM,YAAY,SAAS,UAAU,eAAe,CAAC;AACrD,SAAO,UAAU,YAAY;AAC9B;AAPgB;","names":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var logPubSub_exports = {};
|
|
21
|
+
__export(logPubSub_exports, {
|
|
22
|
+
default: () => logPubSub_default
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(logPubSub_exports);
|
|
25
|
+
const _LogPubSub = class _LogPubSub {
|
|
26
|
+
constructor() {
|
|
27
|
+
this.callbacks = [];
|
|
28
|
+
}
|
|
29
|
+
// Subscribe to log
|
|
30
|
+
subscribe(cb) {
|
|
31
|
+
this.callbacks.push(cb);
|
|
32
|
+
}
|
|
33
|
+
// Publish log
|
|
34
|
+
report(createLogConfig) {
|
|
35
|
+
const log = _LogPubSub.createLog(createLogConfig);
|
|
36
|
+
if (this.callbacks.length > 0) {
|
|
37
|
+
this.callbacks.forEach((cb) => cb(log));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Create log
|
|
42
|
+
* @param {LogModule.createLogConfig} createLogConfig
|
|
43
|
+
* @return {LogModule.LogData} LogData
|
|
44
|
+
*/
|
|
45
|
+
static createLog(createLogConfig) {
|
|
46
|
+
const { type, eventName, eventParams, eventResponse, error, extra } = createLogConfig;
|
|
47
|
+
let output = {
|
|
48
|
+
type,
|
|
49
|
+
event_name: eventName,
|
|
50
|
+
event_params: eventParams || "",
|
|
51
|
+
event_response: eventResponse || "",
|
|
52
|
+
exception_type: "",
|
|
53
|
+
exception_message: "",
|
|
54
|
+
exception_file: "",
|
|
55
|
+
exception_line: "",
|
|
56
|
+
exception_row: "",
|
|
57
|
+
extra: extra || "",
|
|
58
|
+
time: /* @__PURE__ */ new Date(),
|
|
59
|
+
version: "Upload-SDK.js VERSION"
|
|
60
|
+
};
|
|
61
|
+
if (type === "ERROR" && error) {
|
|
62
|
+
const parseError = /at\s+(.*)\s+\((.*):(\d*):(\d*)\)/i.exec(error.stack || "");
|
|
63
|
+
output = {
|
|
64
|
+
...output,
|
|
65
|
+
exception_type: error.name,
|
|
66
|
+
exception_message: error.message,
|
|
67
|
+
exception_file: parseError ? parseError[2] : "",
|
|
68
|
+
exception_line: parseError ? parseError[3] : "",
|
|
69
|
+
exception_row: parseError ? parseError[4] : ""
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return output;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
__name(_LogPubSub, "LogPubSub");
|
|
76
|
+
let LogPubSub = _LogPubSub;
|
|
77
|
+
var logPubSub_default = new LogPubSub();
|
|
78
|
+
//# sourceMappingURL=logPubSub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/logPubSub.ts"],"sourcesContent":["import type { LogModule } from \"../types/log\"\n\n/**\n * Log module for publishing and collecting logs\n */\nclass LogPubSub {\n\tprivate callbacks: LogModule.CallBack[] = []\n\n\t// Subscribe to log\n\tsubscribe(cb: LogModule.CallBack) {\n\t\tthis.callbacks.push(cb)\n\t}\n\n\t// Publish log\n\treport(createLogConfig: LogModule.CreateLogConfig) {\n\t\tconst log = LogPubSub.createLog(createLogConfig)\n\n\t\tif (this.callbacks.length > 0) {\n\t\t\tthis.callbacks.forEach((cb) => cb(log))\n\t\t}\n\t}\n\n\t/**\n\t * Create log\n\t * @param {LogModule.createLogConfig} createLogConfig\n\t * @return {LogModule.LogData} LogData\n\t */\n\tstatic createLog(createLogConfig: LogModule.CreateLogConfig): LogModule.LogData {\n\t\tconst { type, eventName, eventParams, eventResponse, error, extra } = createLogConfig\n\t\tlet output = {\n\t\t\ttype,\n\t\t\tevent_name: eventName,\n\t\t\tevent_params: eventParams || \"\",\n\t\t\tevent_response: eventResponse || \"\",\n\t\t\texception_type: \"\",\n\t\t\texception_message: \"\",\n\t\t\texception_file: \"\",\n\t\t\texception_line: \"\",\n\t\t\texception_row: \"\",\n\t\t\textra: extra || \"\",\n\t\t\ttime: new Date(),\n\t\t\tversion: \"Upload-SDK.js VERSION\",\n\t\t}\n\t\tif (type === \"ERROR\" && error) {\n\t\t\tconst parseError = /at\\s+(.*)\\s+\\((.*):(\\d*):(\\d*)\\)/i.exec(error.stack || \"\")\n\n\t\t\toutput = {\n\t\t\t\t...output,\n\t\t\t\texception_type: error.name,\n\t\t\t\texception_message: error.message,\n\t\t\t\texception_file: parseError ? parseError[2] : \"\",\n\t\t\t\texception_line: parseError ? parseError[3] : \"\",\n\t\t\t\texception_row: parseError ? parseError[4] : \"\",\n\t\t\t}\n\t\t}\n\n\t\treturn output\n\t}\n}\n\nexport default new LogPubSub()\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,MAAM,aAAN,MAAM,WAAU;AAAA,EAAhB;AACC,SAAQ,YAAkC,CAAC;AAAA;AAAA;AAAA,EAG3C,UAAU,IAAwB;AACjC,SAAK,UAAU,KAAK,EAAE;AAAA,EACvB;AAAA;AAAA,EAGA,OAAO,iBAA4C;AAClD,UAAM,MAAM,WAAU,UAAU,eAAe;AAE/C,QAAI,KAAK,UAAU,SAAS,GAAG;AAC9B,WAAK,UAAU,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC;AAAA,IACvC;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,UAAU,iBAA+D;AAC/E,UAAM,EAAE,MAAM,WAAW,aAAa,eAAe,OAAO,MAAM,IAAI;AACtE,QAAI,SAAS;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,MACZ,cAAc,eAAe;AAAA,MAC7B,gBAAgB,iBAAiB;AAAA,MACjC,gBAAgB;AAAA,MAChB,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,OAAO,SAAS;AAAA,MAChB,MAAM,oBAAI,KAAK;AAAA,MACf,SAAS;AAAA,IACV;AACA,QAAI,SAAS,WAAW,OAAO;AAC9B,YAAM,aAAa,oCAAoC,KAAK,MAAM,SAAS,EAAE;AAE7E,eAAS;AAAA,QACR,GAAG;AAAA,QACH,gBAAgB,MAAM;AAAA,QACtB,mBAAmB,MAAM;AAAA,QACzB,gBAAgB,aAAa,WAAW,CAAC,IAAI;AAAA,QAC7C,gBAAgB,aAAa,WAAW,CAAC,IAAI;AAAA,QAC7C,eAAe,aAAa,WAAW,CAAC,IAAI;AAAA,MAC7C;AAAA,IACD;AAEA,WAAO;AAAA,EACR;AACD;AArDgB;AAAhB,IAAM,YAAN;AAuDA,IAAO,oBAAQ,IAAI,UAAU;","names":[]}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
var multipart_exports = {};
|
|
31
|
+
__export(multipart_exports, {
|
|
32
|
+
createBuffer: () => createBuffer,
|
|
33
|
+
divideParts: () => divideParts,
|
|
34
|
+
getBuffer: () => getBuffer,
|
|
35
|
+
getPartSize: () => getPartSize,
|
|
36
|
+
initCheckpoint: () => initCheckpoint,
|
|
37
|
+
parallelSend: () => parallelSend
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(multipart_exports);
|
|
40
|
+
var buffer = __toESM(require("buffer"), 1);
|
|
41
|
+
var import_InitException = require("../Exception/InitException");
|
|
42
|
+
var import_checkDataFormat = require("./checkDataFormat");
|
|
43
|
+
function parallelSend(todo, parallel, jobPromise) {
|
|
44
|
+
return new Promise((resolve) => {
|
|
45
|
+
const jobErr = [];
|
|
46
|
+
if (parallel <= 0 || !todo) {
|
|
47
|
+
resolve(jobErr);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
function onlyOnce(fn) {
|
|
51
|
+
return (...args) => {
|
|
52
|
+
if (fn === null)
|
|
53
|
+
throw new Error("Callback was already called.");
|
|
54
|
+
const callFn = fn;
|
|
55
|
+
fn = null;
|
|
56
|
+
callFn.apply("", args);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
__name(onlyOnce, "onlyOnce");
|
|
60
|
+
function createArrayIterator(coll) {
|
|
61
|
+
let i = -1;
|
|
62
|
+
const len = coll.length;
|
|
63
|
+
return /* @__PURE__ */ __name(function next() {
|
|
64
|
+
return ++i < len ? { value: coll[i], key: i } : null;
|
|
65
|
+
}, "next");
|
|
66
|
+
}
|
|
67
|
+
__name(createArrayIterator, "createArrayIterator");
|
|
68
|
+
const nextElem = createArrayIterator(todo);
|
|
69
|
+
let done = false;
|
|
70
|
+
let running = 0;
|
|
71
|
+
let looping = false;
|
|
72
|
+
function iteratee(value, callback) {
|
|
73
|
+
jobPromise(value).then((result) => {
|
|
74
|
+
callback(null, result);
|
|
75
|
+
}).catch((err) => {
|
|
76
|
+
callback(err);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
__name(iteratee, "iteratee");
|
|
80
|
+
function iterateeCallback(err) {
|
|
81
|
+
running -= 1;
|
|
82
|
+
if (err) {
|
|
83
|
+
done = true;
|
|
84
|
+
jobErr.push(err);
|
|
85
|
+
resolve(jobErr);
|
|
86
|
+
} else if (done && running <= 0) {
|
|
87
|
+
done = true;
|
|
88
|
+
resolve(jobErr);
|
|
89
|
+
} else if (!looping) {
|
|
90
|
+
replenish();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
__name(iterateeCallback, "iterateeCallback");
|
|
94
|
+
function replenish() {
|
|
95
|
+
looping = true;
|
|
96
|
+
while (running < parallel && !done) {
|
|
97
|
+
const elem = nextElem();
|
|
98
|
+
if (elem === null || jobErr.length > 0) {
|
|
99
|
+
done = true;
|
|
100
|
+
if (running <= 0) {
|
|
101
|
+
resolve(jobErr);
|
|
102
|
+
}
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
running += 1;
|
|
106
|
+
iteratee(elem.value, onlyOnce(iterateeCallback));
|
|
107
|
+
}
|
|
108
|
+
looping = false;
|
|
109
|
+
}
|
|
110
|
+
__name(replenish, "replenish");
|
|
111
|
+
replenish();
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
__name(parallelSend, "parallelSend");
|
|
115
|
+
function divideParts(fileSize, partSize) {
|
|
116
|
+
const numParts = Math.ceil(fileSize / partSize);
|
|
117
|
+
const partOffs = [];
|
|
118
|
+
for (let i = 0; i < numParts; i += 1) {
|
|
119
|
+
const start = partSize * i;
|
|
120
|
+
const end = Math.min(start + partSize, fileSize);
|
|
121
|
+
partOffs.push({
|
|
122
|
+
start,
|
|
123
|
+
end
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
return partOffs;
|
|
127
|
+
}
|
|
128
|
+
__name(divideParts, "divideParts");
|
|
129
|
+
function getBuffer(file) {
|
|
130
|
+
return new Promise((resolve, reject) => {
|
|
131
|
+
if (file.arrayBuffer) {
|
|
132
|
+
resolve(file.arrayBuffer());
|
|
133
|
+
}
|
|
134
|
+
const reader = new FileReader();
|
|
135
|
+
reader.onload = (e) => {
|
|
136
|
+
if (e?.target) {
|
|
137
|
+
if (e.target.result !== null) {
|
|
138
|
+
resolve(e.target.result);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
reader.onerror = (e) => {
|
|
143
|
+
reject(e);
|
|
144
|
+
};
|
|
145
|
+
reader.readAsArrayBuffer(file);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
__name(getBuffer, "getBuffer");
|
|
149
|
+
async function createBuffer(file, start, end) {
|
|
150
|
+
if ((0, import_checkDataFormat.isBlob)(file) || (0, import_checkDataFormat.isFile)(file)) {
|
|
151
|
+
const tempFile = file.slice(start, end);
|
|
152
|
+
const fileContent = await getBuffer(tempFile);
|
|
153
|
+
if (typeof fileContent === "string") {
|
|
154
|
+
return buffer.Buffer.from(fileContent);
|
|
155
|
+
}
|
|
156
|
+
return buffer.Buffer.from(new Uint8Array(fileContent));
|
|
157
|
+
}
|
|
158
|
+
throw new import_InitException.InitException(import_InitException.InitExceptionCode.UPLOAD_HEAD_NO_EXPOSE_ETAG);
|
|
159
|
+
}
|
|
160
|
+
__name(createBuffer, "createBuffer");
|
|
161
|
+
function getPartSize(fileSize, partSize, defaultPartSize = 1024 * 1024) {
|
|
162
|
+
const maxNumParts = 10 * 1e3;
|
|
163
|
+
let tempPartSize = partSize || defaultPartSize;
|
|
164
|
+
const safeSize = Math.ceil(fileSize / maxNumParts);
|
|
165
|
+
if (partSize < safeSize) {
|
|
166
|
+
tempPartSize = safeSize;
|
|
167
|
+
console.warn(
|
|
168
|
+
"partSize has been set to ".concat(
|
|
169
|
+
String(tempPartSize),
|
|
170
|
+
", because the partSize you provided causes partNumber to be greater than 10,000"
|
|
171
|
+
)
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
return tempPartSize;
|
|
175
|
+
}
|
|
176
|
+
__name(getPartSize, "getPartSize");
|
|
177
|
+
function initCheckpoint(file, name, fileSize, partSize, UploadId) {
|
|
178
|
+
return {
|
|
179
|
+
file,
|
|
180
|
+
name,
|
|
181
|
+
fileSize,
|
|
182
|
+
partSize,
|
|
183
|
+
UploadId,
|
|
184
|
+
doneParts: []
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
__name(initCheckpoint, "initCheckpoint");
|
|
188
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
189
|
+
0 && (module.exports = {
|
|
190
|
+
createBuffer,
|
|
191
|
+
divideParts,
|
|
192
|
+
getBuffer,
|
|
193
|
+
getPartSize,
|
|
194
|
+
initCheckpoint,
|
|
195
|
+
parallelSend
|
|
196
|
+
});
|
|
197
|
+
//# sourceMappingURL=multipart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/multipart.ts"],"sourcesContent":["import * as buffer from \"buffer\"\nimport { InitException, InitExceptionCode } from \"../Exception/InitException\"\nimport type { Checkpoint } from \"../types\"\nimport type { ErrorType } from \"../types/error\"\nimport { isBlob, isFile } from \"./checkDataFormat\"\n\nexport function parallelSend(\n\ttodo: number[],\n\tparallel: number,\n\tjobPromise: (value: number) => Promise<void>,\n): Promise<ErrorType.UploadPartException[]> {\n\treturn new Promise((resolve) => {\n\t\tconst jobErr: ErrorType.UploadPartException[] = []\n\t\tif (parallel <= 0 || !todo) {\n\t\t\tresolve(jobErr)\n\t\t\treturn\n\t\t}\n\n\t\tfunction onlyOnce(fn: Function | null) {\n\t\t\treturn (...args: ErrorType.UploadPartException[]) => {\n\t\t\t\tif (fn === null) throw new Error(\"Callback was already called.\")\n\t\t\t\tconst callFn = fn\n\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\tfn = null\n\t\t\t\tcallFn.apply(\"\", args)\n\t\t\t}\n\t\t}\n\n\t\tfunction createArrayIterator(coll: number[]) {\n\t\t\tlet i = -1\n\t\t\tconst len = coll.length\n\t\t\treturn function next() {\n\t\t\t\t// eslint-disable-next-line no-plusplus\n\t\t\t\treturn ++i < len ? { value: coll[i], key: i } : null\n\t\t\t}\n\t\t}\n\n\t\tconst nextElem = createArrayIterator(todo)\n\t\tlet done = false\n\t\tlet running = 0\n\t\tlet looping = false\n\n\t\tfunction iteratee(value: number, callback: Function) {\n\t\t\tjobPromise(value)\n\t\t\t\t.then((result) => {\n\t\t\t\t\tcallback(null, result)\n\t\t\t\t})\n\t\t\t\t.catch((err) => {\n\t\t\t\t\tcallback(err)\n\t\t\t\t})\n\t\t}\n\n\t\tfunction iterateeCallback(err: ErrorType.UploadPartException) {\n\t\t\trunning -= 1\n\t\t\tif (err) {\n\t\t\t\tdone = true\n\t\t\t\tjobErr.push(err)\n\t\t\t\tresolve(jobErr)\n\t\t\t} else if (done && running <= 0) {\n\t\t\t\tdone = true\n\t\t\t\tresolve(jobErr)\n\t\t\t} else if (!looping) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\t\treplenish()\n\t\t\t}\n\t\t}\n\t\tfunction replenish() {\n\t\t\tlooping = true\n\t\t\twhile (running < parallel && !done) {\n\t\t\t\tconst elem = nextElem()\n\t\t\t\tif (elem === null || jobErr.length > 0) {\n\t\t\t\t\tdone = true\n\t\t\t\t\tif (running <= 0) {\n\t\t\t\t\t\tresolve(jobErr)\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\trunning += 1\n\t\t\t\titeratee(elem.value, onlyOnce(iterateeCallback))\n\t\t\t}\n\t\t\tlooping = false\n\t\t}\n\n\t\treplenish()\n\t})\n}\n\nexport function divideParts(fileSize: number, partSize: number) {\n\tconst numParts = Math.ceil(fileSize / partSize)\n\tconst partOffs = []\n\tfor (let i = 0; i < numParts; i += 1) {\n\t\tconst start = partSize * i\n\t\tconst end = Math.min(start + partSize, fileSize)\n\n\t\tpartOffs.push({\n\t\t\tstart,\n\t\t\tend,\n\t\t})\n\t}\n\treturn partOffs\n}\n\nexport function getBuffer(file: File | Blob): Promise<string | ArrayBuffer> {\n\t// Some browsers do not support Blob.prototype.arrayBuffer, such as IE\n\treturn new Promise((resolve, reject) => {\n\t\tif (file.arrayBuffer) {\n\t\t\tresolve(file.arrayBuffer())\n\t\t}\n\t\tconst reader = new FileReader()\n\t\treader.onload = (e) => {\n\t\t\tif (e?.target) {\n\t\t\t\tif (e.target.result !== null) {\n\t\t\t\t\tresolve(e.target.result)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treader.onerror = (e) => {\n\t\t\treject(e)\n\t\t}\n\t\treader.readAsArrayBuffer(file)\n\t})\n}\n\nexport async function createBuffer(file: File | Blob, start: number, end: number) {\n\tif (isBlob(file) || isFile(file)) {\n\t\tconst tempFile = file.slice(start, end)\n\t\tconst fileContent = await getBuffer(tempFile)\n\t\tif (typeof fileContent === \"string\") {\n\t\t\treturn buffer.Buffer.from(fileContent)\n\t\t}\n\t\treturn buffer.Buffer.from(new Uint8Array(fileContent))\n\t}\n\tthrow new InitException(InitExceptionCode.UPLOAD_HEAD_NO_EXPOSE_ETAG)\n}\n\nexport function getPartSize(\n\tfileSize: number,\n\tpartSize: number,\n\tdefaultPartSize: number = 1024 * 1024,\n) {\n\tconst maxNumParts = 10 * 1000\n\tlet tempPartSize = partSize || defaultPartSize\n\tconst safeSize = Math.ceil(fileSize / maxNumParts)\n\n\tif (partSize < safeSize) {\n\t\ttempPartSize = safeSize\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(\n\t\t\t\"partSize has been set to \".concat(\n\t\t\t\tString(tempPartSize),\n\t\t\t\t\", because the partSize you provided causes partNumber to be greater than 10,000\",\n\t\t\t),\n\t\t)\n\t}\n\n\treturn tempPartSize\n}\n\nexport function initCheckpoint(\n\tfile: File | Blob,\n\tname: string,\n\tfileSize: number,\n\tpartSize: number,\n\tUploadId: string,\n): Checkpoint {\n\treturn {\n\t\tfile,\n\t\tname,\n\t\tfileSize,\n\t\tpartSize,\n\t\tUploadId,\n\t\tdoneParts: [],\n\t}\n}\n\n\n\n\n"],"mappings":"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","names":[]}
|