@wuxiaolins/upload 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,114 @@
1
+ import { UploadOptions, WxFile } from './types';
2
+ import { justUpload } from './cos';
3
+ import { justUploadVod } from './vod';
4
+ export declare function useUpload(options?: UploadOptions & {
5
+ onTaskId?: (e: any) => void;
6
+ }): {
7
+ /**
8
+ * 新增文件到文件列表
9
+ */
10
+ add: (files: any[]) => Promise<void>;
11
+ /**
12
+ * 设置单文件
13
+ */
14
+ setFile: (file: WxFile) => void;
15
+ /**
16
+ * 设置文件列表
17
+ */
18
+ setFiles: (files: WxFile[]) => void;
19
+ /**
20
+ * 开始上传
21
+ */
22
+ start: (item: WxFile) => void;
23
+ /**
24
+ * 删除文件
25
+ */
26
+ remove: (file: WxFile) => Promise<void>;
27
+ /**
28
+ * 重新上传,继续上传
29
+ */
30
+ restart: (item: WxFile) => void;
31
+ /**
32
+ * 一键暂停
33
+ */
34
+ pauseAll: () => void;
35
+ /**
36
+ * 暂停
37
+ */
38
+ pause: (file: WxFile) => void;
39
+ /**
40
+ * 一键开始
41
+ */
42
+ startAll: () => Promise<void>;
43
+ /**
44
+ *
45
+ */
46
+ abort: (uid: string) => void;
47
+ /**
48
+ * 重置
49
+ */
50
+ reset: (file: WxFile) => void;
51
+ /**
52
+ * 直接上传到云储存
53
+ */
54
+ justUpload: typeof justUpload;
55
+ /**
56
+ * 直接上传到云点播
57
+ */
58
+ justUploadVod: typeof justUploadVod;
59
+ /**
60
+ * 上传前校验
61
+ */
62
+ beforeUpload: (file: any) => Promise<void>;
63
+ /**
64
+ * 文件列表
65
+ */
66
+ urls: import('vue').Ref<{
67
+ uid: string;
68
+ key?: string;
69
+ file: any;
70
+ name: string;
71
+ fileName?: string;
72
+ total?: string | number;
73
+ loaded?: string | number;
74
+ speed?: string | number;
75
+ percent?: string | number;
76
+ lastPercent?: string | number;
77
+ status: import('./types').UploadStatus;
78
+ url?: string;
79
+ uploader?: any;
80
+ uploadedSize?: string | number;
81
+ totalSize?: string | number;
82
+ size?: string | number;
83
+ taskId?: string;
84
+ }[], (WxFile & {
85
+ taskId?: string;
86
+ })[] | {
87
+ uid: string;
88
+ key?: string;
89
+ file: any;
90
+ name: string;
91
+ fileName?: string;
92
+ total?: string | number;
93
+ loaded?: string | number;
94
+ speed?: string | number;
95
+ percent?: string | number;
96
+ lastPercent?: string | number;
97
+ status: import('./types').UploadStatus;
98
+ url?: string;
99
+ uploader?: any;
100
+ uploadedSize?: string | number;
101
+ totalSize?: string | number;
102
+ size?: string | number;
103
+ taskId?: string;
104
+ }[]>;
105
+ /**
106
+ * 上传状态
107
+ */
108
+ uploading: import('vue').Ref<boolean, boolean>;
109
+ /**
110
+ * 上传事件监听
111
+ */
112
+ onUploadEvent: (event: string, handler: any) => void;
113
+ };
114
+ //# sourceMappingURL=uploader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploader.d.ts","sourceRoot":"","sources":["../../../../../src/hook/useUpload/uploader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAA4B,UAAU,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAa,aAAa,EAAE,MAAM,OAAO,CAAC;AAgBjD,wBAAgB,SAAS,CAAC,OAAO,GAAE,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAAO;IAwVnF;;OAEG;iBA7NqB,GAAG,EAAE;IA+N7B;;OAEG;oBApRkB,MAAM;IAsR3B;;OAEG;sBApToB,MAAM,EAAE;IAsT/B;;OAEG;kBAvEgB,MAAM;IAyEzB;;OAEG;mBA1HuB,MAAM;IA4HhC;;OAEG;oBArGkB,MAAM;IAuG3B;;OAEG;;IAEH;;OAEG;kBAhEgB,MAAM;IAkEzB;;OAEG;;IAEH;;OAEG;iBA7He,MAAM;IA+HxB;;OAEG;kBA5DgB,MAAM;IA+DzB;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;yBAnX6B,GAAG;IAsXnC;;OAEG;;;;;;;;;;;;;;;;;;iBAzYsC,MAAM;;iBAAN,MAAM;;;;;;;;;;;;;;;;;;iBAAN,MAAM;;IA2Y/C;;OAEG;;IAEH;;OAEG;2BAzZyB,MAAM,WAAW,GAAG;EA4ZnD"}
@@ -0,0 +1,26 @@
1
+ import { UploadOptions, WxFile } from './types';
2
+ export declare function generateUid(): string;
3
+ export declare function generateFileKey(file: Omit<WxFile, "name" | "status">, options?: UploadOptions): string;
4
+ /**
5
+ * 获取裁剪路径后的文件key。
6
+ */
7
+ export declare function getKey(key?: string): string;
8
+ /** 根据环境,判断获取腾讯云上传环境前缀 test/release */
9
+ export declare function getEnv(options?: UploadOptions): "release" | "test";
10
+ /** 获取随机ID */
11
+ export declare function getRandom(): string;
12
+ /**
13
+ * 获取文件格式。
14
+ *
15
+ * @param {string} filePath - 文件路径。
16
+ * @returns {string} 返回文件格式。
17
+ */
18
+ export declare function getFileType(filePath: string): string;
19
+ export declare function getImageInfo(file: any): Promise<{
20
+ width: number;
21
+ height: number;
22
+ }>;
23
+ export declare function initToken(options?: UploadOptions): Promise<any>;
24
+ export declare function initVodToken(options?: UploadOptions): Promise<any>;
25
+ export declare function startUploadByType(file: WxFile, options?: UploadOptions): Promise<unknown>;
26
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/hook/useUpload/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AASrD,wBAAgB,WAAW,WAE1B;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,UAgB7F;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,GAAG,GAAE,MAAW,UAMtC;AAED,sCAAsC;AACtC,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,sBAE7C;AAED,aAAa;AACb,wBAAgB,SAAS,WAMxB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,UAa3C;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAWlF;AAED,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAsB/D;AAED,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAalE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,oBAS5E"}
@@ -0,0 +1,9 @@
1
+ import { UploadOptions } from './types';
2
+ export declare function validateFile(file: any, params?: UploadOptions): Promise<{
3
+ valid: boolean;
4
+ message?: undefined;
5
+ } | {
6
+ valid: boolean;
7
+ message: string;
8
+ }>;
9
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../../src/hook/useUpload/validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,wBAAsB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,aAAa;;;;;;GA6BnE"}
@@ -0,0 +1,19 @@
1
+ import { WxFile, UploadOptions } from './types';
2
+ export declare function uploadVOD(file: WxFile, options?: UploadOptions & {
3
+ onTaskId?: (data: {
4
+ file: WxFile;
5
+ taskId: string;
6
+ cos: any;
7
+ }) => void;
8
+ onProgress?: (data: {
9
+ file: WxFile;
10
+ percent?: number;
11
+ speed?: number;
12
+ loaded?: number;
13
+ total?: number;
14
+ uploader?: any;
15
+ }) => void;
16
+ restart?: boolean;
17
+ }, func?: any): Promise<unknown>;
18
+ export declare function justUploadVod(file: File, options?: UploadOptions): Promise<unknown>;
19
+ //# sourceMappingURL=vod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vod.d.ts","sourceRoot":"","sources":["../../../../../src/hook/useUpload/vod.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAIrD,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GAAG;IACxB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IACtE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IACjI,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,EACD,IAAI,GAAE,GAAmC,oBAiE1C;AACD,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,aAAa,oBAYtE"}
package/dist/uno.css ADDED
@@ -0,0 +1,43 @@
1
+ /* layer: preflights */
2
+ *,::before,::after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / 0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / 0.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: ;}
3
+ /* layer: shortcuts */
4
+ .btn-default{cursor:pointer;border-width:1px;--un-border-opacity:1;border-color:rgb(153 153 153 / var(--un-border-opacity));border-radius:4px;border-style:solid;--un-bg-opacity:1;background-color:rgb(53 145 255 / var(--un-bg-opacity)) /* #3591ff */;padding:12px;padding-left:18px;padding-right:18px;font-size:16px;--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity)) /* #fff */;font-weight:500;}
5
+ .white-space-nowrap{white-space:nowrap;}
6
+ .b-btn{border-width:1px;--un-border-opacity:1;border-color:rgb(53 145 255 / var(--un-border-opacity));border-radius:20rpx;--un-text-opacity:1;color:rgb(53 145 255 / var(--un-text-opacity)) /* #3591ff */;}
7
+ .btn-ghost{border-width:1px;--un-border-opacity:1;border-color:rgb(153 153 153 / var(--un-border-opacity));border-style:solid;background-color:transparent /* transparent */;--un-text-opacity:1;color:rgb(102 102 102 / var(--un-text-opacity)) /* #666 */;}
8
+ .bg-hover{--un-bg-opacity:1;background-color:rgb(238 238 238 / var(--un-bg-opacity)) /* #eee */;}
9
+ .bg-primary{--un-bg-opacity:1;background-color:rgb(53 145 255 / var(--un-bg-opacity)) /* #3591ff */;}
10
+ .text-active{--un-text-opacity:1;color:rgb(53 145 255 / var(--un-text-opacity)) /* #3591ff */;}
11
+ .hover{opacity:0.9;}
12
+ .btn-default:active{opacity:0.8;}
13
+ /* layer: default */
14
+ .mt-\[\.25rem\]{margin-top:.25rem;}
15
+ .mt-\[1rem\]{margin-top:1rem;}
16
+ .mt-4px{margin-top:4px;}
17
+ .hidden{display:none;}
18
+ [size~="\32 0"]{width:5rem;height:5rem;}
19
+ [size~="\32 2"]{width:5.5rem;height:5.5rem;}
20
+ .max-w-\[20\.75rem\]{max-width:20.75rem;}
21
+ .flex{display:flex;}
22
+ .flex-wrap{flex-wrap:wrap;}
23
+ .table{display:table;}
24
+ .cursor-pointer{cursor:pointer;}
25
+ .border{border-width:1px;}
26
+ .rounded-\[\.25rem\]{border-radius:.25rem;}
27
+ .bg-\[var\(--theme-upload-sort-bg-color\)\]{background-color:var(--theme-upload-sort-bg-color) /* var(--theme-upload-sort-bg-color) */;}
28
+ .p-\[\.25rem_\.5rem\]{padding:.25rem .5rem;}
29
+ .p-\[\.25rem\]{padding:.25rem;}
30
+ .px{padding-left:1rem;padding-right:1rem;}
31
+ .font-size-\[\.75rem\],
32
+ .text-size-\[\.75rem\]{font-size:.75rem;}
33
+ .font-size-12px{font-size:12px;}
34
+ .text-color-\[var\(--theme-font-color-5\)\]{color:var(--theme-font-color-5) /* var(--theme-font-color-5) */;}
35
+ .text-color-\[var\(--theme-primary-color\)\]{color:var(--theme-primary-color) /* var(--theme-primary-color) */;}
36
+ .text-color-\[var\(--theme-upload-error-color\)\]{color:var(--theme-upload-error-color) /* var(--theme-upload-error-color) */;}
37
+ .text-color-\#999{--un-text-opacity:1;color:rgb(153 153 153 / var(--un-text-opacity)) /* #999 */;}
38
+ .line-height-\[1rem\]{line-height:1rem;}
39
+ .active\:opacity-80:active{opacity:0.8;}
40
+ .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
41
+ .inline-block{display:inline-block;vertical-align:middle;}
42
+ .relative{position:relative;}
43
+ .absolute{position:absolute;}
package/package.json ADDED
@@ -0,0 +1,91 @@
1
+ {
2
+ "name": "@wuxiaolins/upload",
3
+ "version": "0.0.0",
4
+ "private": false,
5
+ "type": "module",
6
+ "main": "./dist/index.umd.js",
7
+ "module": "./dist/index.es.js",
8
+ "types": "./dist/types/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/types/index.d.ts",
12
+ "import": "./dist/index.es.js",
13
+ "require": "./dist/index.umd.js"
14
+ },
15
+ "./hook": {
16
+ "types": "./dist/types/hook/index.d.ts",
17
+ "import": "./dist/hook.es.js",
18
+ "require": "./dist/hook.umd.js"
19
+ },
20
+ "./dist/style.css": "./dist/style.css",
21
+ "./dist/uno.css": "./dist/uno.css"
22
+ },
23
+ "typesVersions": {
24
+ "*": {
25
+ "hook": [
26
+ "dist/types/hook/index.d.ts"
27
+ ]
28
+ }
29
+ },
30
+ "files": [
31
+ "dist"
32
+ ],
33
+ "scripts": {
34
+ "publish:build": "rimraf node_modules && pnpm i && pnpm run build",
35
+ "dev": "vite",
36
+ "build": "pnpm run clean && vite build && vite build --config vite.hook.config.ts && unocss --config ./unocss.config.ts",
37
+ "clean": "rm -rf dist",
38
+ "publish:local": "../../scripts/publish.sh",
39
+ "p": "npm run publish:local"
40
+ },
41
+ "peerDependencies": {
42
+ "ant-design-vue": "^4.2.6",
43
+ "axios": "^1.10.0",
44
+ "cos-js-sdk-v5": "^1.10.1",
45
+ "dayjs": "^1.11.13",
46
+ "lodash-es": "^4.17.21",
47
+ "pinia": "^3.0.3",
48
+ "sass": "^1.89.2",
49
+ "sortablejs": "^1.15.6",
50
+ "unocss": "^66.1.4",
51
+ "vue": "^3.4.15",
52
+ "vue-router": "^4.5.1",
53
+ "vuedraggable": "^2.24.3",
54
+ "vod-js-sdk-v6": "1.7.1-beta.1"
55
+ },
56
+ "devDependencies": {
57
+ "@wuxiaolins/components": "workspace:*",
58
+ "@wuxiaolins/scss": "workspace:*",
59
+ "@types/lodash-es": "^4.17.12",
60
+ "@types/node": "^24.1.0",
61
+ "@unocss/cli": "^66.3.3",
62
+ "@unocss/vite": "^66.3.3",
63
+ "@vitejs/plugin-vue": "^4.1.0",
64
+ "ant-design-vue": "^4.2.6",
65
+ "axios": "^1.10.0",
66
+ "cos-js-sdk-v5": "^1.10.1",
67
+ "dayjs": "^1.11.13",
68
+ "lodash-es": "^4.17.21",
69
+ "path": "^0.12.7",
70
+ "rollup": "^2.70.2",
71
+ "rollup-plugin-css-only": "^4.5.2",
72
+ "rollup-plugin-typescript2": "^0.36.0",
73
+ "rollup-plugin-vue": "^6.0.0",
74
+ "sass": "^1.89.2",
75
+ "sortablejs": "^1.15.6",
76
+ "swiper": "^11.2.10",
77
+ "typescript": "^4.9.3",
78
+ "unocss": "^66.1.4",
79
+ "vite": "^4.2.0",
80
+ "vite-plugin-dts": "^4.5.4"
81
+ },
82
+ "author": {
83
+ "name": "bsy"
84
+ },
85
+ "homepage": "https://gitlab.bossyun.com/wuxl/package",
86
+ "repository": {
87
+ "type": "git",
88
+ "url": "https://gitlab.bossyun.com/wuxl/package.git"
89
+ },
90
+ "dependencies": {}
91
+ }