@qxs-bns/utils 0.0.10 → 0.0.12
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/README.md +65 -0
- package/es/_virtual/_commonjs-dynamic-modules.mjs +7 -0
- package/es/_virtual/_commonjs-dynamic-modules.mjs.map +1 -0
- package/es/_virtual/_commonjsHelpers.mjs +7 -0
- package/es/_virtual/_commonjsHelpers.mjs.map +1 -0
- package/es/_virtual/ali-oss/dist/aliyun-oss-sdk.mjs +20195 -0
- package/es/_virtual/ali-oss/dist/aliyun-oss-sdk.mjs.map +1 -0
- package/es/_virtual/aliyun-oss-sdk.mjs +8 -0
- package/es/_virtual/aliyun-oss-sdk.mjs.map +1 -0
- package/es/_virtual/aliyun-oss-sdk2.mjs +5 -0
- package/es/_virtual/aliyun-oss-sdk2.mjs.map +1 -0
- package/es/_virtual/xlsx/xlsx.mjs +24583 -0
- package/es/_virtual/xlsx/xlsx.mjs.map +1 -0
- package/es/index.d.ts +1 -0
- package/es/index.mjs +22 -18
- package/es/index.mjs.map +1 -1
- package/es/src/argo-log.d.ts +20 -3
- package/es/src/argo-log.mjs +31 -19
- package/es/src/argo-log.mjs.map +1 -1
- package/es/src/json.mjs +14 -14
- package/es/src/oss-uploader.d.ts +43 -0
- package/es/src/oss-uploader.mjs +89 -0
- package/es/src/oss-uploader.mjs.map +1 -0
- package/lib/_virtual/_commonjs-dynamic-modules.js +2 -0
- package/lib/_virtual/_commonjs-dynamic-modules.js.map +1 -0
- package/lib/_virtual/_commonjsHelpers.js +2 -0
- package/lib/_virtual/_commonjsHelpers.js.map +1 -0
- package/lib/_virtual/ali-oss/dist/aliyun-oss-sdk.js +85 -0
- package/lib/_virtual/ali-oss/dist/aliyun-oss-sdk.js.map +1 -0
- package/lib/_virtual/aliyun-oss-sdk.js +2 -0
- package/lib/_virtual/aliyun-oss-sdk.js.map +1 -0
- package/lib/_virtual/aliyun-oss-sdk2.js +2 -0
- package/lib/_virtual/aliyun-oss-sdk2.js.map +1 -0
- package/lib/_virtual/xlsx/xlsx.js +105 -0
- package/lib/_virtual/xlsx/xlsx.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -1
- package/lib/src/argo-log.d.ts +20 -3
- package/lib/src/argo-log.js +1 -1
- package/lib/src/argo-log.js.map +1 -1
- package/lib/src/json.js +1 -1
- package/lib/src/json.js.map +1 -1
- package/lib/src/oss-uploader.d.ts +43 -0
- package/lib/src/oss-uploader.js +2 -0
- package/lib/src/oss-uploader.js.map +1 -0
- package/package.json +7 -8
- package/es/src/media.d.ts +0 -1
- package/es/src/media.mjs +0 -7
- package/es/src/media.mjs.map +0 -1
- package/lib/src/media.d.ts +0 -1
- package/lib/src/media.js +0 -2
- package/lib/src/media.js.map +0 -1
package/lib/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './src/argo-log';
|
|
|
2
2
|
export * from './src/device';
|
|
3
3
|
export * from './src/file-operations';
|
|
4
4
|
export * from './src/json';
|
|
5
|
+
export { generateSignedUrl, type OssClientConfig, type OssConfig, type OssCredentials, OssUploader, uploadFile, } from './src/oss-uploader';
|
|
5
6
|
export * from './src/storage';
|
|
6
7
|
export * from './src/types';
|
|
7
8
|
export * from './src/watermark';
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./src/argo-log.js"),t=require("./src/device.js"),i=require("./src/file-operations.js"),r=require("./src/json.js"),o=require("./src/oss-uploader.js"),s=require("./src/storage.js"),e=require("./src/types.js"),a=require("./src/watermark.js");exports.ArgoLog=n.ArgoLog;exports.isMobile=t.isMobile;exports.createVideoUploader=i.createVideoUploader;exports.downloadFile=i.downloadFile;exports.JsonToExcel=r.JsonToExcel;exports.excelToJson=r.excelToJson;exports.OssUploader=o.OssUploader;exports.generateSignedUrl=o.generateSignedUrl;exports.uploadFile=o.uploadFile;exports.initStorage=s.initStorage;exports.useStorage=s.useStorage;exports.isBoolean=e.isBoolean;exports.isElement=e.isElement;exports.isImageByMimeType=e.isImageByMimeType;exports.isJSONString=e.isJSONString;exports.isNumber=e.isNumber;exports.isUndefined=e.isUndefined;exports.isWindow=e.isWindow;exports.watermark=a.watermark;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/src/argo-log.d.ts
CHANGED
|
@@ -6,11 +6,28 @@ interface EnvironmentConfig {
|
|
|
6
6
|
autoProfile?: boolean;
|
|
7
7
|
autoTrack?: boolean;
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* ArgoLog 类 - 用于处理埋点统计的工具类
|
|
11
|
+
*
|
|
12
|
+
* @class ArgoLog
|
|
13
|
+
* @description 基于 AnalysysAgent SDK 封装的埋点工具类,提供了埋点追踪、用户画像设置和用户别名设置等功能
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const argoLog = new ArgoLog({
|
|
17
|
+
* appkey: 'your-app-key',
|
|
18
|
+
* uploadURL: 'your-upload-url'
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* // 追踪事件
|
|
22
|
+
* argoLog.track('event_name', { key: 'value' });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
9
25
|
export declare class ArgoLog {
|
|
10
26
|
private static instances;
|
|
27
|
+
private AnalysysAgent;
|
|
11
28
|
constructor(envConfig: EnvironmentConfig);
|
|
12
|
-
track: (name: string, opt?: any) => void;
|
|
13
|
-
setProfile: (info: any) => void;
|
|
14
|
-
setAlias: (code:
|
|
29
|
+
track: (name: string, opt?: Record<string, any>) => void;
|
|
30
|
+
setProfile: (info: Record<string, any>) => void;
|
|
31
|
+
setAlias: (code: string) => void;
|
|
15
32
|
}
|
|
16
33
|
export {};
|
package/lib/src/argo-log.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var c=Object.defineProperty;var l=(
|
|
1
|
+
"use strict";var c=Object.defineProperty;var l=(s,r,e)=>r in s?c(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e;var t=(s,r,e)=>l(s,typeof r!="symbol"?r+"":r,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=class n{constructor(r){t(this,"AnalysysAgent",null);t(this,"track",(r,e)=>{try{if(!this.AnalysysAgent){console.warn("[ArgoLog] SDK 未初始化");return}if(!r){console.warn("[ArgoLog] track: name is required");return}this.AnalysysAgent.track(r,e)}catch(o){console.warn("[ArgoLog] track failed:",o)}});t(this,"setProfile",r=>{try{if(!r){console.warn("[ArgoLog] setProfile: info is required");return}this.AnalysysAgent.profileSet(r)}catch(e){console.warn("[ArgoLog] setProfile failed:",e)}});t(this,"setAlias",r=>{try{if(!r){console.warn("[ArgoLog] setAlias: code is required");return}this.AnalysysAgent.alias(r)}catch(e){console.warn("[ArgoLog] setAlias failed:",e)}});try{if(typeof window>"u")return console.warn("[ArgoLog] 仅支持浏览器环境"),this;const e=JSON.stringify(r),o=n.instances.get(e);if(o)return o;if(!r)return console.error("envConfig is required"),this;Promise.resolve().then(()=>require("../_virtual/ans-javascript-sdk/sdk/AnalysysAgent_JS_SDK.es6.min.js")).then(i=>{this.AnalysysAgent=i.default,this.AnalysysAgent.init(r),n.instances.set(e,this)}).catch(i=>{console.warn("[ArgoLog] SDK 加载失败:",i)})}catch(e){console.warn("[ArgoLog] Init failed:",e)}return this}};t(n,"instances",new Map);let a=n;exports.ArgoLog=a;
|
|
2
2
|
//# sourceMappingURL=argo-log.js.map
|
package/lib/src/argo-log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argo-log.js","sources":["../../../../packages/utils/src/argo-log.ts"],"sourcesContent":["import AnalysysAgent from 'ans-javascript-sdk'\n\n// 定义配置项的类型别名\ninterface EnvironmentConfig {\n encryptType?: number\n debugMode?: number\n appkey: string\n uploadURL: string\n autoProfile?: boolean\n autoTrack?: boolean\n}\n\nexport class ArgoLog {\n private static instances = new Map<string, ArgoLog>()\n\n constructor(envConfig: EnvironmentConfig) {\n try {\n const configKey = JSON.stringify(envConfig)\n const existingInstance = ArgoLog.instances.get(configKey)\n\n if (existingInstance) {\n return existingInstance\n }\n\n if (!envConfig) {\n console.error('envConfig is required')\n }\n\n AnalysysAgent.init(envConfig)\n
|
|
1
|
+
{"version":3,"file":"argo-log.js","sources":["../../../../packages/utils/src/argo-log.ts"],"sourcesContent":["// import AnalysysAgent from 'ans-javascript-sdk'\n\n// 定义配置项的类型别名\ninterface EnvironmentConfig {\n encryptType?: number\n debugMode?: number\n appkey: string\n uploadURL: string\n autoProfile?: boolean\n autoTrack?: boolean\n}\n\n/**\n * ArgoLog 类 - 用于处理埋点统计的工具类\n *\n * @class ArgoLog\n * @description 基于 AnalysysAgent SDK 封装的埋点工具类,提供了埋点追踪、用户画像设置和用户别名设置等功能\n * @example\n * ```typescript\n * const argoLog = new ArgoLog({\n * appkey: 'your-app-key',\n * uploadURL: 'your-upload-url'\n * });\n *\n * // 追踪事件\n * argoLog.track('event_name', { key: 'value' });\n * ```\n */\nexport class ArgoLog {\n private static instances = new Map<string, ArgoLog>()\n private AnalysysAgent: any | null = null\n\n constructor(envConfig: EnvironmentConfig) {\n try {\n // 检查是否为浏览器环境\n if (typeof window === 'undefined') {\n console.warn('[ArgoLog] 仅支持浏览器环境')\n return this\n }\n\n const configKey = JSON.stringify(envConfig)\n const existingInstance = ArgoLog.instances.get(configKey)\n\n if (existingInstance) {\n return existingInstance\n }\n\n if (!envConfig) {\n console.error('envConfig is required')\n return this\n }\n\n // 动态导入 SDK\n import('ans-javascript-sdk').then((module) => {\n this.AnalysysAgent = module.default\n this.AnalysysAgent.init(envConfig)\n ArgoLog.instances.set(configKey, this)\n }).catch((error) => {\n console.warn('[ArgoLog] SDK 加载失败:', error)\n })\n }\n catch (error) {\n console.warn('[ArgoLog] Init failed:', error)\n }\n\n return this\n }\n\n track = (name: string, opt?: Record<string, any>): void => {\n try {\n if (!this.AnalysysAgent) {\n console.warn('[ArgoLog] SDK 未初始化')\n return\n }\n if (!name) {\n console.warn('[ArgoLog] track: name is required')\n return\n }\n this.AnalysysAgent.track(name, opt)\n }\n catch (error) {\n console.warn('[ArgoLog] track failed:', error)\n }\n }\n\n setProfile = (info: Record<string, any>): void => {\n try {\n if (!info) {\n console.warn('[ArgoLog] setProfile: info is required')\n return\n }\n this.AnalysysAgent.profileSet(info)\n }\n catch (error) {\n console.warn('[ArgoLog] setProfile failed:', error)\n }\n }\n\n setAlias = (code: string): void => {\n try {\n if (!code) {\n console.warn('[ArgoLog] setAlias: code is required')\n return\n }\n this.AnalysysAgent.alias(code)\n }\n catch (error) {\n console.warn('[ArgoLog] setAlias failed:', error)\n }\n }\n}\n"],"names":["_ArgoLog","envConfig","__publicField","name","opt","error","info","code","configKey","existingInstance","module","ArgoLog"],"mappings":"oPA4BO,MAAMA,EAAN,MAAMA,CAAQ,CAInB,YAAYC,EAA8B,CAFlCC,EAAA,qBAA4B,MAsCpCA,EAAA,aAAQ,CAACC,EAAcC,IAAoC,CACrD,GAAA,CACE,GAAA,CAAC,KAAK,cAAe,CACvB,QAAQ,KAAK,oBAAoB,EACjC,MAAA,CAEF,GAAI,CAACD,EAAM,CACT,QAAQ,KAAK,mCAAmC,EAChD,MAAA,CAEG,KAAA,cAAc,MAAMA,EAAMC,CAAG,QAE7BC,EAAO,CACJ,QAAA,KAAK,0BAA2BA,CAAK,CAAA,CAEjD,GAEAH,EAAA,kBAAcI,GAAoC,CAC5C,GAAA,CACF,GAAI,CAACA,EAAM,CACT,QAAQ,KAAK,wCAAwC,EACrD,MAAA,CAEG,KAAA,cAAc,WAAWA,CAAI,QAE7BD,EAAO,CACJ,QAAA,KAAK,+BAAgCA,CAAK,CAAA,CAEtD,GAEAH,EAAA,gBAAYK,GAAuB,CAC7B,GAAA,CACF,GAAI,CAACA,EAAM,CACT,QAAQ,KAAK,sCAAsC,EACnD,MAAA,CAEG,KAAA,cAAc,MAAMA,CAAI,QAExBF,EAAO,CACJ,QAAA,KAAK,6BAA8BA,CAAK,CAAA,CAEpD,GA5EM,GAAA,CAEE,GAAA,OAAO,OAAW,IACpB,eAAQ,KAAK,oBAAoB,EAC1B,KAGH,MAAAG,EAAY,KAAK,UAAUP,CAAS,EACpCQ,EAAmBT,EAAQ,UAAU,IAAIQ,CAAS,EAExD,GAAIC,EACK,OAAAA,EAGT,GAAI,CAACR,EACH,eAAQ,MAAM,uBAAuB,EAC9B,KAIT,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,oEAAoB,CAAA,EAAE,KAAMS,GAAW,CAC5C,KAAK,cAAgBA,EAAO,QACvB,KAAA,cAAc,KAAKT,CAAS,EACzBD,EAAA,UAAU,IAAIQ,EAAW,IAAI,CAAA,CACtC,EAAE,MAAOH,GAAU,CACV,QAAA,KAAK,sBAAuBA,CAAK,CAAA,CAC1C,QAEIA,EAAO,CACJ,QAAA,KAAK,yBAA0BA,CAAK,CAAA,CAGvC,OAAA,IAAA,CA6CX,EAjFEH,EADWF,EACI,YAAY,IAAI,KAD1B,IAAMW,EAANX"}
|
package/lib/src/json.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("xlsx");function w(c="",s=[],n){try{if(!s.length)return;const e=t.utils.aoa_to_sheet(s);n&&(e["!merges"]=n);const o=t.utils.book_new();t.utils.book_append_sheet(o,e,""),t.writeFile(o,`${c}.xlsx`)}catch(e){return console.log("e: ",e),new Error("数据导出失败")}}function y(c,s,n){const e=t.read(c,{type:"binary"}),o=[];for(const l in e.Sheets)if(Object.prototype.hasOwnProperty.call(e.Sheets,l)){let r=[];const i=e.Sheets[l]["!ref"]||"",h=i.split(":"),u=n+h[1].toString();r=r.concat(t.utils.sheet_to_json(e.Sheets[l],{header:1,range:n?u:i}));const f=r[0];r.shift();const p=r.map(x=>{const a={};return f.forEach((b,k)=>{a[b]=x[k]}),a});o.push(...p)}return s&&s(o),o}exports.JsonToExcel=w;exports.excelToJson=y;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../_virtual/xlsx/xlsx.js");function w(c="",s=[],n){try{if(!s.length)return;const e=t.utils.aoa_to_sheet(s);n&&(e["!merges"]=n);const o=t.utils.book_new();t.utils.book_append_sheet(o,e,""),t.writeFile(o,`${c}.xlsx`)}catch(e){return console.log("e: ",e),new Error("数据导出失败")}}function y(c,s,n){const e=t.read(c,{type:"binary"}),o=[];for(const l in e.Sheets)if(Object.prototype.hasOwnProperty.call(e.Sheets,l)){let r=[];const i=e.Sheets[l]["!ref"]||"",h=i.split(":"),u=n+h[1].toString();r=r.concat(t.utils.sheet_to_json(e.Sheets[l],{header:1,range:n?u:i}));const f=r[0];r.shift();const p=r.map(x=>{const a={};return f.forEach((b,k)=>{a[b]=x[k]}),a});o.push(...p)}return s&&s(o),o}exports.JsonToExcel=w;exports.excelToJson=y;
|
|
2
2
|
//# sourceMappingURL=json.js.map
|
package/lib/src/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sources":["../../../../packages/utils/src/json.ts"],"sourcesContent":["import { read, utils, writeFile } from 'xlsx'\n\n/**\n * 将JSON数据导出为Excel文件\n * @param title - Excel文件的标题\n * @param json - JSON数据\n * @param merge - 合并单元格的配置\n * @returns 如果JSON数据为空,则返回undefined,否则返回Excel文件的名称\n */\nexport function JsonToExcel(title = '', json: (string | number)[][] = [], merge?: any) {\n try {\n if (!json.length) {\n return\n }\n // 创建worksheet\n const worksheet = utils.aoa_to_sheet(json)\n if (merge) {\n worksheet['!merges'] = merge\n }\n // 新建空workbook,加入worksheet\n const workbook = utils.book_new()\n utils.book_append_sheet(workbook, worksheet, '')\n writeFile(workbook, `${title}.xlsx`)\n }\n catch (e) {\n console.log('e: ', e)\n return new Error('数据导出失败')\n }\n}\n\n/**\n * 将Excel数据转换为JSON\n * @param data - Excel数据\n * @param cb - 回调函数,用于处理转换后的JSON数据\n * @param start - 开始行号\n * @returns 转换后的JSON数组\n */\nexport function excelToJson(data: any[], cb: (json: any[]) => void, start: number): any[] {\n const workbook = read(data, { type: 'binary' })\n // 遍历每张表读取\n const json = []\n for (const sheet in workbook.Sheets) {\n if (Object.prototype.hasOwnProperty.call(workbook.Sheets, sheet)) {\n let arr: string[][] = []\n const fromTo = workbook.Sheets[sheet]['!ref'] || ''\n const end = fromTo.split(':')\n const space = start + end[1].toString()\n arr = arr.concat(utils.sheet_to_json(workbook.Sheets[sheet], { header: 1, range: start ? space : fromTo }))\n const titleArr = arr[0]\n arr.shift()\n const excelJsonArr = arr.map((item) => {\n const obj: {\n [key: string]: any\n } = {}\n titleArr.forEach((titleItem: string, index: number) => {\n obj[titleItem] = item[index]\n })\n return obj\n })\n json.push(...excelJsonArr)\n }\n }\n if (cb) {\n cb(json)\n }\n return json\n}\n"],"names":["JsonToExcel","title","json","merge","worksheet","utils","workbook","writeFile","excelToJson","data","cb","start","read","sheet","arr","fromTo","end","space","titleArr","excelJsonArr","item","obj","titleItem","index"],"mappings":"
|
|
1
|
+
{"version":3,"file":"json.js","sources":["../../../../packages/utils/src/json.ts"],"sourcesContent":["import { read, utils, writeFile } from 'xlsx'\n\n/**\n * 将JSON数据导出为Excel文件\n * @param title - Excel文件的标题\n * @param json - JSON数据\n * @param merge - 合并单元格的配置\n * @returns 如果JSON数据为空,则返回undefined,否则返回Excel文件的名称\n */\nexport function JsonToExcel(title = '', json: (string | number)[][] = [], merge?: any) {\n try {\n if (!json.length) {\n return\n }\n // 创建worksheet\n const worksheet = utils.aoa_to_sheet(json)\n if (merge) {\n worksheet['!merges'] = merge\n }\n // 新建空workbook,加入worksheet\n const workbook = utils.book_new()\n utils.book_append_sheet(workbook, worksheet, '')\n writeFile(workbook, `${title}.xlsx`)\n }\n catch (e) {\n console.log('e: ', e)\n return new Error('数据导出失败')\n }\n}\n\n/**\n * 将Excel数据转换为JSON\n * @param data - Excel数据\n * @param cb - 回调函数,用于处理转换后的JSON数据\n * @param start - 开始行号\n * @returns 转换后的JSON数组\n */\nexport function excelToJson(data: any[], cb: (json: any[]) => void, start: number): any[] {\n const workbook = read(data, { type: 'binary' })\n // 遍历每张表读取\n const json = []\n for (const sheet in workbook.Sheets) {\n if (Object.prototype.hasOwnProperty.call(workbook.Sheets, sheet)) {\n let arr: string[][] = []\n const fromTo = workbook.Sheets[sheet]['!ref'] || ''\n const end = fromTo.split(':')\n const space = start + end[1].toString()\n arr = arr.concat(utils.sheet_to_json(workbook.Sheets[sheet], { header: 1, range: start ? space : fromTo }))\n const titleArr = arr[0]\n arr.shift()\n const excelJsonArr = arr.map((item) => {\n const obj: {\n [key: string]: any\n } = {}\n titleArr.forEach((titleItem: string, index: number) => {\n obj[titleItem] = item[index]\n })\n return obj\n })\n json.push(...excelJsonArr)\n }\n }\n if (cb) {\n cb(json)\n }\n return json\n}\n"],"names":["JsonToExcel","title","json","merge","worksheet","utils","workbook","writeFile","excelToJson","data","cb","start","read","sheet","arr","fromTo","end","space","titleArr","excelJsonArr","item","obj","titleItem","index"],"mappings":"4HASO,SAASA,EAAYC,EAAQ,GAAIC,EAA8B,CAAA,EAAIC,EAAa,CACjF,GAAA,CACE,GAAA,CAACD,EAAK,OACR,OAGI,MAAAE,EAAYC,EAAAA,MAAM,aAAaH,CAAI,EACrCC,IACFC,EAAU,SAAS,EAAID,GAGnB,MAAAG,EAAWD,QAAM,SAAS,EAC1BA,EAAAA,MAAA,kBAAkBC,EAAUF,EAAW,EAAE,EACrCG,EAAAA,UAAAD,EAAU,GAAGL,CAAK,OAAO,QAE9B,EAAG,CACA,eAAA,IAAI,MAAO,CAAC,EACb,IAAI,MAAM,QAAQ,CAAA,CAE7B,CASgB,SAAAO,EAAYC,EAAaC,EAA2BC,EAAsB,CACxF,MAAML,EAAWM,EAAAA,KAAKH,EAAM,CAAE,KAAM,SAAU,EAExCP,EAAO,CAAC,EACH,UAAAW,KAASP,EAAS,OAC3B,GAAI,OAAO,UAAU,eAAe,KAAKA,EAAS,OAAQO,CAAK,EAAG,CAChE,IAAIC,EAAkB,CAAC,EACvB,MAAMC,EAAST,EAAS,OAAOO,CAAK,EAAE,MAAM,GAAK,GAC3CG,EAAMD,EAAO,MAAM,GAAG,EACtBE,EAAQN,EAAQK,EAAI,CAAC,EAAE,SAAS,EACtCF,EAAMA,EAAI,OAAOT,EAAA,MAAM,cAAcC,EAAS,OAAOO,CAAK,EAAG,CAAE,OAAQ,EAAG,MAAOF,EAAQM,EAAQF,CAAA,CAAQ,CAAC,EACpG,MAAAG,EAAWJ,EAAI,CAAC,EACtBA,EAAI,MAAM,EACV,MAAMK,EAAeL,EAAI,IAAKM,GAAS,CACrC,MAAMC,EAEF,CAAC,EACI,OAAAH,EAAA,QAAQ,CAACI,EAAmBC,IAAkB,CACjDF,EAAAC,CAAS,EAAIF,EAAKG,CAAK,CAAA,CAC5B,EACMF,CAAA,CACR,EACInB,EAAA,KAAK,GAAGiB,CAAY,CAAA,CAG7B,OAAIT,GACFA,EAAGR,CAAI,EAEFA,CACT"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { default as OSS } from 'ali-oss';
|
|
2
|
+
|
|
3
|
+
export interface OssCredentials {
|
|
4
|
+
accessKeyId: string;
|
|
5
|
+
accessKeySecret: string;
|
|
6
|
+
securityToken: string;
|
|
7
|
+
}
|
|
8
|
+
export interface OssConfig extends Partial<Omit<OssClientConfig, 'accessKeyId' | 'accessKeySecret' | 'stsToken'>> {
|
|
9
|
+
file: File;
|
|
10
|
+
onProgress?: (p: {
|
|
11
|
+
percent: number;
|
|
12
|
+
}) => void;
|
|
13
|
+
path?: string;
|
|
14
|
+
getCredentials: () => Promise<OssCredentials | null>;
|
|
15
|
+
}
|
|
16
|
+
export interface OssClientConfig {
|
|
17
|
+
accessKeyId: string;
|
|
18
|
+
accessKeySecret: string;
|
|
19
|
+
stsToken: string;
|
|
20
|
+
secure: boolean;
|
|
21
|
+
bucket: string;
|
|
22
|
+
region: string;
|
|
23
|
+
cors: boolean;
|
|
24
|
+
useFetch: boolean;
|
|
25
|
+
timeout: number;
|
|
26
|
+
headers: Record<string, string>;
|
|
27
|
+
}
|
|
28
|
+
export declare class OssError extends Error {
|
|
29
|
+
constructor(message: string);
|
|
30
|
+
}
|
|
31
|
+
export declare class OssUploader {
|
|
32
|
+
private static client;
|
|
33
|
+
private static createTokenTime;
|
|
34
|
+
private static readonly expireTime;
|
|
35
|
+
private static getOssCredentials;
|
|
36
|
+
static initOssClient(getCredentials: OssConfig['getCredentials'], args?: Partial<OssConfig>): Promise<void>;
|
|
37
|
+
static uploadFile(opts: OssConfig & {
|
|
38
|
+
getCredentials: OssConfig['getCredentials'];
|
|
39
|
+
}): Promise<OSS.MultipartUploadResult>;
|
|
40
|
+
static generateSignedUrl(objectKey: string, getCredentials: OssConfig['getCredentials'], args?: Partial<OssConfig>): Promise<string>;
|
|
41
|
+
}
|
|
42
|
+
export declare const uploadFile: typeof OssUploader.uploadFile;
|
|
43
|
+
export declare const generateSignedUrl: typeof OssUploader.generateSignedUrl;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var h=Object.defineProperty;var g=(n,e,s)=>e in n?h(n,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[e]=s;var o=(n,e,s)=>g(n,typeof e!="symbol"?e+"":e,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("../_virtual/aliyun-oss-sdk.js");class a extends Error{constructor(e){super(e),this.name="OssError"}}const d={accessKeyId:"",accessKeySecret:"",stsToken:"",secure:!0,bucket:"yao-file-daily",region:"oss-cn-hangzhou",cors:!0,useFetch:!1,timeout:6e4,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE","Access-Control-Allow-Headers":"*"}};class r{static async getOssCredentials(e){const s=await e();if(!s)throw new a("获取凭证失败");return{accessKeyId:s.accessKeyId,accessKeySecret:s.accessKeySecret,securityToken:s.securityToken}}static async initOssClient(e,s){const c=Date.now()-this.createTokenTime;if(!d.accessKeyId||c>this.expireTime)try{const{accessKeyId:t,accessKeySecret:l,securityToken:i}=await this.getOssCredentials(e);Object.assign(d,{accessKeyId:t,accessKeySecret:l,stsToken:i,...s,refreshSTSToken:async()=>await this.getOssCredentials(e),refreshSTSTokenInterval:3e5}),this.createTokenTime=Date.now(),this.client=new y.default(d)}catch(t){throw new a(t instanceof Error?t.message:String(t))}}static async uploadFile(e){const{file:s,onProgress:c=()=>{},path:t="ksh/pdf",getCredentials:l}=e;await this.initOssClient(l);try{return await this.client.multipartUpload(`${t}/${s.name}`,s,{progress(u){c({percent:Math.round(u*100)})}})}catch(i){throw new a(i instanceof Error?i.message:String(i))}}static async generateSignedUrl(e,s,c){await this.initOssClient(s,c);try{return await this.client.signatureUrl(e,{expires:60*60})}catch(t){throw new a(t instanceof Error?t.message:String(t))}}}o(r,"client"),o(r,"createTokenTime",0),o(r,"expireTime",15*60*1e3);const T=r.uploadFile.bind(r),w=r.generateSignedUrl.bind(r);exports.OssError=a;exports.OssUploader=r;exports.generateSignedUrl=w;exports.uploadFile=T;
|
|
2
|
+
//# sourceMappingURL=oss-uploader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oss-uploader.js","sources":["../../../../packages/utils/src/oss-uploader.ts"],"sourcesContent":["import OSS from 'ali-oss'\n\nexport interface OssCredentials {\n accessKeyId: string\n accessKeySecret: string\n securityToken: string\n}\n\nexport interface OssConfig extends Partial<Omit<OssClientConfig, 'accessKeyId' | 'accessKeySecret' | 'stsToken'>> {\n file: File\n onProgress?: (p: { percent: number }) => void\n path?: string\n getCredentials: () => Promise<OssCredentials | null>\n}\n\nexport interface OssClientConfig {\n accessKeyId: string\n accessKeySecret: string\n stsToken: string\n secure: boolean\n bucket: string\n region: string\n cors: boolean\n useFetch: boolean\n timeout: number\n headers: Record<string, string>\n}\n\n// 定义错误类型\nexport class OssError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'OssError'\n }\n}\n\nconst ossConfig: OssClientConfig = {\n accessKeyId: '',\n accessKeySecret: '',\n stsToken: '',\n secure: true,\n bucket: 'yao-file-daily',\n region: 'oss-cn-hangzhou',\n cors: true,\n useFetch: false,\n timeout: 60000,\n headers: {\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',\n 'Access-Control-Allow-Headers': '*',\n },\n}\n\nexport class OssUploader {\n private static client: OSS\n private static createTokenTime: number = 0\n private static readonly expireTime = 15 * 60 * 1000\n\n // 获取凭证\n private static async getOssCredentials(getCredentials: OssConfig['getCredentials']): Promise<Required<OssCredentials>> {\n const credentials = await getCredentials()\n if (!credentials) {\n throw new OssError('获取凭证失败')\n }\n return {\n accessKeyId: credentials.accessKeyId,\n accessKeySecret: credentials.accessKeySecret,\n securityToken: credentials.securityToken,\n }\n }\n\n // 修改初始化方法\n public static async initOssClient(getCredentials: OssConfig['getCredentials'], args?: Partial<OssConfig>): Promise<void> {\n const diff = Date.now() - this.createTokenTime\n if (!ossConfig.accessKeyId || diff > this.expireTime) {\n try {\n const { accessKeyId, accessKeySecret, securityToken: stsToken } = await this.getOssCredentials(getCredentials)\n Object.assign(ossConfig, {\n accessKeyId,\n accessKeySecret,\n stsToken,\n ...args,\n refreshSTSToken: async () => {\n return await this.getOssCredentials(getCredentials)\n },\n refreshSTSTokenInterval: 300000,\n })\n this.createTokenTime = Date.now()\n this.client = new OSS(ossConfig)\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n }\n\n // 修改上传方法\n public static async uploadFile(opts: OssConfig & { getCredentials: OssConfig['getCredentials'] }): Promise<OSS.MultipartUploadResult> {\n const { file, onProgress = () => {}, path = 'ksh/pdf', getCredentials } = opts\n\n await this.initOssClient(getCredentials)\n\n try {\n const result = await this.client.multipartUpload(`${path}/${file.name}`, file, {\n progress(p: number) {\n onProgress({ percent: Math.round(p * 100) })\n },\n })\n return result\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n\n // 修改生成签名URL方法\n public static async generateSignedUrl(\n objectKey: string,\n getCredentials: OssConfig['getCredentials'],\n args?: Partial<OssConfig>,\n ): Promise<string> {\n await this.initOssClient(getCredentials, args)\n try {\n return await this.client.signatureUrl(objectKey, { expires: 60 * 60 })\n }\n catch (error) {\n throw new OssError(error instanceof Error ? error.message : String(error))\n }\n }\n}\n\n// 导出便捷方法\nexport const uploadFile = OssUploader.uploadFile.bind(OssUploader)\nexport const generateSignedUrl = OssUploader.generateSignedUrl.bind(OssUploader)\n"],"names":["OssError","message","ossConfig","OssUploader","getCredentials","credentials","args","diff","accessKeyId","accessKeySecret","stsToken","OSS","error","opts","file","onProgress","path","p","objectKey","__publicField","uploadFile","generateSignedUrl"],"mappings":"qSA6BO,MAAMA,UAAiB,KAAM,CAClC,YAAYC,EAAiB,CAC3B,MAAMA,CAAO,EACb,KAAK,KAAO,UAAA,CAEhB,CAEA,MAAMC,EAA6B,CACjC,YAAa,GACb,gBAAiB,GACjB,SAAU,GACV,OAAQ,GACR,OAAQ,iBACR,OAAQ,kBACR,KAAM,GACN,SAAU,GACV,QAAS,IACT,QAAS,CACP,8BAA+B,IAC/B,+BAAgC,yBAChC,+BAAgC,GAAA,CAEpC,EAEO,MAAMC,CAAY,CAMvB,aAAqB,kBAAkBC,EAAgF,CAC/G,MAAAC,EAAc,MAAMD,EAAe,EACzC,GAAI,CAACC,EACG,MAAA,IAAIL,EAAS,QAAQ,EAEtB,MAAA,CACL,YAAaK,EAAY,YACzB,gBAAiBA,EAAY,gBAC7B,cAAeA,EAAY,aAC7B,CAAA,CAIF,aAAoB,cAAcD,EAA6CE,EAA0C,CACvH,MAAMC,EAAO,KAAK,IAAI,EAAI,KAAK,gBAC/B,GAAI,CAACL,EAAU,aAAeK,EAAO,KAAK,WACpC,GAAA,CACI,KAAA,CAAE,YAAAC,EAAa,gBAAAC,EAAiB,cAAeC,GAAa,MAAM,KAAK,kBAAkBN,CAAc,EAC7G,OAAO,OAAOF,EAAW,CACvB,YAAAM,EACA,gBAAAC,EACA,SAAAC,EACA,GAAGJ,EACH,gBAAiB,SACR,MAAM,KAAK,kBAAkBF,CAAc,EAEpD,wBAAyB,GAAA,CAC1B,EACI,KAAA,gBAAkB,KAAK,IAAI,EAC3B,KAAA,OAAS,IAAIO,EAAA,QAAIT,CAAS,QAE1BU,EAAO,CACN,MAAA,IAAIZ,EAASY,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,CAAC,CAAA,CAE7E,CAIF,aAAoB,WAAWC,EAAuG,CAC9H,KAAA,CAAE,KAAAC,EAAM,WAAAC,EAAa,IAAM,CAAI,EAAA,KAAAC,EAAO,UAAW,eAAAZ,CAAA,EAAmBS,EAEpE,MAAA,KAAK,cAAcT,CAAc,EAEnC,GAAA,CAMK,OALQ,MAAM,KAAK,OAAO,gBAAgB,GAAGY,CAAI,IAAIF,EAAK,IAAI,GAAIA,EAAM,CAC7E,SAASG,EAAW,CAClBF,EAAW,CAAE,QAAS,KAAK,MAAME,EAAI,GAAG,EAAG,CAAA,CAC7C,CACD,QAGIL,EAAO,CACN,MAAA,IAAIZ,EAASY,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,CAAC,CAAA,CAC3E,CAIF,aAAoB,kBAClBM,EACAd,EACAE,EACiB,CACX,MAAA,KAAK,cAAcF,EAAgBE,CAAI,EACzC,GAAA,CACK,OAAA,MAAM,KAAK,OAAO,aAAaY,EAAW,CAAE,QAAS,GAAK,GAAI,QAEhEN,EAAO,CACN,MAAA,IAAIZ,EAASY,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,CAAC,CAAA,CAC3E,CAEJ,CA3EEO,EADWhB,EACI,UACfgB,EAFWhB,EAEI,kBAA0B,GACzCgB,EAHWhB,EAGa,aAAa,GAAK,GAAK,KA4E1C,MAAMiB,EAAajB,EAAY,WAAW,KAAKA,CAAW,EACpDkB,EAAoBlB,EAAY,kBAAkB,KAAKA,CAAW"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qxs-bns/utils",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.12",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"module": "es/index.mjs",
|
|
6
6
|
"types": "es/index.d.ts",
|
|
@@ -27,12 +27,11 @@
|
|
|
27
27
|
"lib"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
"tinymce": "^7.4.1"
|
|
30
|
+
"ali-oss": "^6.22.0",
|
|
31
|
+
"ans-javascript-sdk": "^4.5.5",
|
|
32
|
+
"xlsx": "^0.18.5"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@types/ali-oss": "^6.16.11"
|
|
37
36
|
}
|
|
38
37
|
}
|
package/es/src/media.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function isImageByMimeType(file: File): boolean;
|
package/es/src/media.mjs
DELETED
package/es/src/media.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"media.mjs","sources":["../../../../packages/utils/src/media.ts"],"sourcesContent":["export function isImageByMimeType(file: File) {\n return file.type.startsWith('image/')\n}\n"],"names":["isImageByMimeType","file"],"mappings":"AAAO,SAASA,EAAkBC,GAAY;AACrC,SAAAA,EAAK,KAAK,WAAW,QAAQ;AACtC;"}
|
package/lib/src/media.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function isImageByMimeType(file: File): boolean;
|
package/lib/src/media.js
DELETED
package/lib/src/media.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","sources":["../../../../packages/utils/src/media.ts"],"sourcesContent":["export function isImageByMimeType(file: File) {\n return file.type.startsWith('image/')\n}\n"],"names":["isImageByMimeType","file"],"mappings":"gFAAO,SAASA,EAAkBC,EAAY,CACrC,OAAAA,EAAK,KAAK,WAAW,QAAQ,CACtC"}
|