@cloudbase/js-sdk 3.4.8 → 3.4.9-beta.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.
- package/CHANGELOG.md +14 -0
- package/ai/dist/index.esm.js +1 -1
- package/ai/dist/index.esm.js.map +1 -1
- package/ai/dist/index.js +1 -1
- package/ai/dist/index.js.map +1 -1
- package/app/dist/index.esm.js +1 -1
- package/app/dist/index.esm.js.map +1 -1
- package/app/dist/index.js +1 -1
- package/app/dist/index.js.map +1 -1
- package/auth/dist/index.esm.js +1 -1
- package/auth/dist/index.esm.js.map +1 -1
- package/auth/dist/index.js +1 -1
- package/auth/dist/index.js.map +1 -1
- package/cloudrun/dist/index.esm.js +1 -1
- package/cloudrun/dist/index.esm.js.map +1 -1
- package/cloudrun/dist/index.js +1 -1
- package/cloudrun/dist/index.js.map +1 -1
- package/container/dist/index.esm.js +1 -1
- package/container/dist/index.esm.js.map +1 -1
- package/container/dist/index.js +1 -1
- package/container/dist/index.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/functions/dist/index.esm.js +1 -1
- package/functions/dist/index.esm.js.map +1 -1
- package/functions/dist/index.js +1 -1
- package/functions/dist/index.js.map +1 -1
- package/index.d.ts +654 -45
- package/miniprogram_dist/ai.js +1 -1
- package/miniprogram_dist/app.js +1 -1
- package/miniprogram_dist/auth.js +1 -1
- package/miniprogram_dist/cloudrun.js +1 -1
- package/miniprogram_dist/container.js +1 -1
- package/miniprogram_dist/functions.js +1 -1
- package/miniprogram_dist/index.js +1 -1
- package/miniprogram_dist/model.js +1 -1
- package/miniprogram_dist/oauth.js +1 -1
- package/miniprogram_dist/storage.js +1 -1
- package/model/dist/index.esm.js +1 -1
- package/model/dist/index.esm.js.map +1 -1
- package/model/dist/index.js +1 -1
- package/model/dist/index.js.map +1 -1
- package/oauth/dist/index.esm.js +1 -1
- package/oauth/dist/index.esm.js.map +1 -1
- package/oauth/dist/index.js +1 -1
- package/oauth/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/storage/dist/index.esm.js +1 -1
- package/storage/dist/index.esm.js.map +1 -1
- package/storage/dist/index.js +1 -1
- package/storage/dist/index.js.map +1 -1
- package/types/index.d.ts +2 -2
- package/types/package.json +1 -1
- package/utilities/dist/cjs/adapters/platforms/web.js +12 -4
- package/utilities/dist/esm/adapters/platforms/web.js +12 -4
- package/utilities/dist/miniprogram/index.js +1 -1
- package/utilities/package.json +2 -2
package/model/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@cloudbase/js-sdk/index.ts","webpack://@cloudbase/js-sdk/web.ts","webpack://@cloudbase/js-sdk/common.ts","webpack://@cloudbase/js-sdk/errors.ts","webpack://@cloudbase/js-sdk/decorators.ts","webpack://@cloudbase/js-sdk/abortController.ts","webpack://@cloudbase/js-sdk/cache.ts","webpack://@cloudbase/js-sdk/events.ts","webpack://@cloudbase/js-sdk/langEvent.ts","webpack://@cloudbase/js-sdk/util.ts","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/adapter-interface\",\"commonjs2\":\"@cloudbase/adapter-interface\",\"amd\":\"@cloudbase/adapter-interface\",\"root\":\"@cloudbase/adapter-interface\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/wx-cloud-client-sdk\",\"commonjs2\":\"@cloudbase/wx-cloud-client-sdk\",\"amd\":\"@cloudbase/wx-cloud-client-sdk\",\"root\":\"@cloudbase/wx-cloud-client-sdk\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"jwt-decode\",\"commonjs2\":\"jwt-decode\",\"amd\":\"jwt-decode\",\"root\":\"jwt-decode\"}","webpack://@cloudbase/js-sdk/webpack/bootstrap","webpack://@cloudbase/js-sdk/webpack/startup"],"sourcesContent":["export * from '@cloudbase/model'\n","import {\n SDKAdapterInterface,\n AbstractSDKRequest,\n IRequestOptions,\n ResponseObject,\n IUploadRequestOptions,\n IRequestConfig,\n IRequestMethod,\n IFetchOptions,\n} from '@cloudbase/adapter-interface'\nimport { isFormData, formatUrl, toQueryString } from '../../libs/util'\nimport { getProtocol } from '../../constants/common'\n\n/**\n * @class WebRequest\n */\nclass WebRequest extends AbstractSDKRequest {\n // 默认不限超时\n private readonly timeout: number\n // 超时提示文案\n private readonly timeoutMsg: string\n // 超时受限请求类型,默认所有请求均受限\n private readonly restrictedMethods: Array<IRequestMethod>\n constructor(config: IRequestConfig) {\n super()\n const { timeout, timeoutMsg, restrictedMethods } = config\n this.timeout = timeout || 0\n this.timeoutMsg = timeoutMsg || '请求超时'\n this.restrictedMethods = restrictedMethods || ['get', 'post', 'upload', 'download']\n }\n public get(options: IRequestOptions): Promise<ResponseObject> {\n return this.request(\n {\n ...options,\n method: 'get',\n },\n this.restrictedMethods.includes('get'),\n )\n }\n public post(options: IRequestOptions): Promise<ResponseObject> {\n return this.request(\n {\n ...options,\n method: 'post',\n },\n this.restrictedMethods.includes('post'),\n )\n }\n public put(options: IRequestOptions): Promise<ResponseObject> {\n return this.request({\n ...options,\n method: 'put',\n })\n }\n public upload(options: IUploadRequestOptions): Promise<ResponseObject> {\n const { data, file, name, method, headers = {} } = options\n const reqMethod = { post: 'post', put: 'put' }[method?.toLowerCase()] || 'put'\n // 上传方式为post时,需转换为FormData\n const formData = new FormData()\n if (reqMethod === 'post') {\n Object.keys(data).forEach((key) => {\n formData.append(key, data[key])\n })\n formData.append('key', name)\n formData.append('file', file)\n return this.request(\n {\n ...options,\n data: formData,\n method: reqMethod,\n },\n this.restrictedMethods.includes('upload'),\n )\n }\n return this.request(\n {\n ...options,\n method: 'put',\n headers,\n body: file,\n },\n this.restrictedMethods.includes('upload'),\n )\n }\n public async download(options: IRequestOptions): Promise<any> {\n try {\n const { data } = await this.get({\n ...options,\n headers: {}, // 下载资源请求不经过service,header清空\n responseType: 'blob',\n })\n const url = window.URL.createObjectURL(new Blob([data]))\n const fileName = decodeURIComponent(new URL(options.url).pathname.split('/').pop() || '')\n const link = document.createElement('a')\n\n link.href = url\n link.setAttribute('download', fileName)\n link.style.display = 'none'\n\n document.body.appendChild(link)\n link.click()\n // 回收内存\n window.URL.revokeObjectURL(url)\n document.body.removeChild(link)\n } catch (e) {}\n return new Promise((resolve) => {\n resolve({\n statusCode: 200,\n tempFilePath: options.url,\n })\n })\n }\n async fetch(options: IFetchOptions & { shouldThrowOnError?: boolean }): Promise<ResponseObject> {\n const abortController = new AbortController()\n const { url, enableAbort = false, stream = false, signal, timeout: _timeout, shouldThrowOnError = true } = options\n\n const timeout = _timeout ?? this.timeout\n\n if (signal) {\n if (signal.aborted) abortController.abort()\n signal.addEventListener('abort', () => abortController.abort())\n }\n\n let timer = null\n if (enableAbort && timeout) {\n timer = setTimeout(() => {\n console.warn(this.timeoutMsg)\n abortController.abort(new Error(this.timeoutMsg))\n }, timeout)\n }\n\n const res = await fetch(url, {\n ...options,\n signal: abortController.signal,\n })\n .then(async (response) => {\n clearTimeout(timer)\n if (shouldThrowOnError) {\n // 404 等等也会进 resolve,所以要再通过 ok 判断\n return response.ok ? response : Promise.reject(await response.json())\n }\n return response\n })\n .catch((x) => {\n clearTimeout(timer)\n if (shouldThrowOnError) {\n return Promise.reject(x)\n }\n })\n\n return {\n // eslint-disable-next-line no-nested-ternary\n data: stream ? res.body : res.headers.get('content-type')?.includes('application/json') ? res.json() : res.text(),\n statusCode: res.status,\n header: res.headers,\n }\n }\n /**\n * @param {IRequestOptions} options\n * @param {boolean} enableAbort 是否超时中断请求\n */\n protected request(options: IRequestOptions, enableAbort = false): Promise<ResponseObject> {\n const method = String(options.method).toLowerCase() || 'get'\n return new Promise((resolve) => {\n const { url, headers = {}, data, responseType, withCredentials, body, onUploadProgress } = options\n const realUrl = formatUrl(getProtocol(), url, method === 'get' ? data : {})\n const ajax = new XMLHttpRequest()\n ajax.open(method, realUrl)\n responseType && (ajax.responseType = responseType)\n Object.keys(headers).forEach((key) => {\n ajax.setRequestHeader(key, headers[key])\n })\n let timer\n if (onUploadProgress) {\n ajax.upload.addEventListener('progress', onUploadProgress)\n }\n ajax.onreadystatechange = () => {\n const result: ResponseObject = {}\n if (ajax.readyState === 4) {\n const headers = ajax.getAllResponseHeaders()\n const arr = headers.trim().split(/[\\r\\n]+/)\n // Create a map of header names to values\n const headerMap = {}\n arr.forEach((line) => {\n const parts = line.split(': ')\n const header = parts.shift().toLowerCase()\n const value = parts.join(': ')\n headerMap[header] = value\n })\n result.header = headerMap\n result.statusCode = ajax.status\n try {\n // 上传post请求返回数据格式为xml,此处容错\n result.data = responseType === 'blob' ? ajax.response : JSON.parse(ajax.responseText)\n } catch (e) {\n result.data = responseType === 'blob' ? ajax.response : ajax.responseText\n }\n clearTimeout(timer)\n resolve(result)\n }\n }\n if (enableAbort && this.timeout) {\n timer = setTimeout(() => {\n console.warn(this.timeoutMsg)\n ajax.abort()\n }, this.timeout)\n }\n // 处理 payload\n let payload\n if (isFormData(data)) {\n // FormData,不处理\n payload = data\n } else if (headers['content-type'] === 'application/x-www-form-urlencoded') {\n payload = toQueryString(data)\n } else if (body) {\n payload = body\n } else {\n // 其它情况\n payload = data ? JSON.stringify(data) : undefined\n }\n\n if (withCredentials) {\n ajax.withCredentials = true\n }\n ajax.send(payload)\n })\n }\n}\n\nfunction genAdapter() {\n const adapter: SDKAdapterInterface & { type?: 'default' | '' } = {\n type: 'default',\n root: window,\n reqClass: WebRequest,\n wsClass: WebSocket,\n localStorage,\n }\n return adapter\n}\n\nexport { genAdapter, WebRequest }\n","let sdkName = '@cloudbase/js-sdk'\nexport function setSdkName(name: string) {\n sdkName = name\n}\nexport function getSdkName() {\n return sdkName\n}\n\nlet PROTOCOL = 'https:'\n\nexport function setProtocol(protocol: 'http:' | 'https:') {\n PROTOCOL = protocol\n}\n\nexport function getProtocol() {\n return PROTOCOL\n}\n// 是否为开发模式\nexport const IS_DEBUG_MODE = typeof process === 'undefined' || typeof process.env === 'undefined' ? false : process.env.NODE_ENV === 'development'\n// 问答社区链接\nexport const COMMUNITY_SITE_URL = 'https://support.qq.com/products/148793'\n","export const ERRORS = {\n INVALID_PARAMS: 'INVALID_PARAMS',\n INVALID_SYNTAX: 'INVALID_SYNTAX',\n INVALID_OPERATION: 'INVALID_OPERATION',\n OPERATION_FAIL: 'OPERATION_FAIL',\n NETWORK_ERROR: 'NETWORK_ERROR',\n UNKOWN_ERROR: 'UNKOWN_ERROR',\n}\n","import { printGroupLog } from '../libs/util'\nimport { IS_DEBUG_MODE } from '../constants'\n\ninterface ICatchErrorsDecoratorOptions {\n mode?: 'sync' | 'async';\n customInfo?: {\n className?: string;\n methodName?: string;\n };\n title?: string;\n messages?: string[];\n}\n// firefox的stack格式与chrome不同\nlet isFirefox = false\nif (typeof navigator !== 'undefined' && navigator.userAgent) {\n isFirefox = navigator.userAgent.indexOf('Firefox') !== -1\n}\n/**\n * decorate在stack中一般都特定的规范\n */\nconst REG_STACK_DECORATE = isFirefox\n ? /(\\.js\\/)?__decorate(\\$\\d+)?<@.*\\d$/\n : /(\\/\\w+\\.js\\.)?__decorate(\\$\\d+)?\\s*\\(.*\\)$/\nconst REG_STACK_LINK = /https?:\\/\\/.+:\\d*\\/.*\\.js:\\d+:\\d+/\n/**\n * debug模式强化日志信息\n * @param options\n */\nexport function catchErrorsDecorator(options: ICatchErrorsDecoratorOptions) {\n const { mode = 'async', customInfo = {}, title, messages = [] } = options\n\n return function (\n target: any,\n methodName: string,\n descriptor: TypedPropertyDescriptor<Function>\n ) {\n // 生产环境禁用\n if (!IS_DEBUG_MODE) {\n return\n }\n const className = customInfo.className || target.constructor.name\n const fnName = customInfo.methodName || methodName\n const fn = descriptor.value\n\n // 被decorator装饰的源码link\n // 在descriptor.value外部此处创建的stack层次可触达源码\n // 而descriptor.value内部有可能由于stack太深无法触达\n const sourceLink = getSourceLink(new Error())\n\n if (mode === 'sync') {\n descriptor.value = function (...args: any[]) {\n // 此处的stack作用主要是为了获取被decorator装饰的源码class和method名称\n const innerErr: any = getRewritedError({\n err: new Error(),\n className,\n methodName: fnName,\n sourceLink,\n })\n try {\n return fn.apply(this, args)\n } catch (err) {\n let failErr = err\n const { message: errMsg, error, error_description: errorDescription } = err\n const logs: any = {\n title: title || `${className}.${fnName} failed`,\n content: [{\n type: 'error',\n body: err,\n }],\n }\n // 只特殊处理SDK业务逻辑抛出的错误-JSON string\n if (errMsg && /^\\{.*\\}$/.test(errMsg)) {\n const msg = JSON.parse(errMsg)\n logs.subtitle = errMsg\n if (msg.code) {\n if (innerErr) {\n innerErr.code = msg.code\n innerErr.msg = msg.msg\n } else {\n err.code = msg.code\n err.message = msg.msg\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n }\n\n // oauth 错误特殊处理\n if (error && errorDescription) {\n logs.subtitle = errorDescription\n if (innerErr) {\n innerErr.code = error\n innerErr.msg = errorDescription\n } else {\n err.code = error\n err.message = errorDescription\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n printGroupLog(logs)\n throw failErr\n }\n }\n } else {\n descriptor.value = async function (...args: any[]) {\n const innerErr: any = getRewritedError({\n err: new Error(),\n className,\n methodName: fnName,\n sourceLink,\n })\n\n try {\n return await fn.apply(this, args)\n } catch (err) {\n let failErr = err\n const { message: errMsg, error, error_description: errorDescription } = err\n const logs: any = {\n title: title || `${className}.${fnName} failed`,\n content: [{\n type: 'error',\n body: err,\n }],\n }\n // 只特殊处理SDK业务逻辑抛出的错误-JSON string\n if (errMsg && /^\\{.*\\}$/.test(errMsg)) {\n const msg = JSON.parse(errMsg)\n logs.subtitle = msg\n if (msg.code) {\n if (innerErr) {\n innerErr.code = msg.code\n innerErr.message = msg.msg\n } else {\n err.code = msg.code\n err.message = msg.msg\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n }\n\n // oauth 错误特殊处理\n if (error && errorDescription) {\n logs.subtitle = errorDescription\n if (innerErr) {\n innerErr.code = error\n innerErr.msg = errorDescription\n } else {\n err.code = error\n err.message = errorDescription\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n printGroupLog(logs)\n throw failErr\n }\n }\n }\n }\n}\n\n/**\n * 在原始堆栈中查找装饰器条目并返回源码链接link\n * @param err\n */\nfunction getSourceLink(err: Error) {\n let sourceLink = ''\n const outterErrStacks = err.stack.split('\\n')\n const indexOfDecorator = outterErrStacks.findIndex(str => REG_STACK_DECORATE.test(str))\n\n if (indexOfDecorator !== -1) {\n const match = REG_STACK_LINK.exec(outterErrStacks[indexOfDecorator + 1] || '')\n\n sourceLink = match ? match[0] : ''\n }\n return sourceLink\n}\n\n/**\n * 在原始堆栈中查找装饰器条目,剔除其后的无用堆栈,并将链接替换为源码link\n * @param options\n */\nfunction getRewritedError(options: {\n err: Error;\n className: string;\n methodName: string;\n sourceLink: string;\n}) {\n const { err, className, methodName, sourceLink } = options\n // 找不到源码link返回null,后续逻辑将打印原堆栈信息\n if (!sourceLink) {\n return null\n }\n\n const innerErrStack = err.stack.split('\\n')\n const REG_STACK_INNER_METHOD = isFirefox\n ? /^catchErrorsDecorator\\/<\\/descriptor.value@.*\\d$/\n : new RegExp(`${className}\\\\.descriptor.value\\\\s*\\\\[as\\\\s${methodName}\\\\]\\\\s*\\\\(.*\\\\)$`)\n const REG_STACK_INNER_METHOD_WITHOUT_LINK = isFirefox\n ? /^catchErrorsDecorator\\/<\\/descriptor.value/\n : new RegExp(`${className}\\\\.descriptor.value\\\\s*\\\\[as\\\\s${methodName}\\\\]`)\n const indexOfSource = innerErrStack.findIndex(str => REG_STACK_INNER_METHOD.test(str))\n let innerErr: Error\n if (indexOfSource !== -1) {\n // @ts-ignore\n const realErrStack = innerErrStack.filter((v, i) => i > indexOfSource)\n realErrStack.unshift(innerErrStack[indexOfSource]\n .replace(REG_STACK_INNER_METHOD_WITHOUT_LINK, `${className}.${methodName}`)\n .replace(REG_STACK_LINK, sourceLink))\n innerErr = new Error()\n innerErr.stack = `${isFirefox ? '@debugger' : 'Error'}\\n${realErrStack.join('\\n')}`\n }\n return innerErr\n}\n","export default class AbortController {\n listeners: Array<CallableFunction> = []\n signal = {\n aborted: false,\n addEventListener: (e: string, f: CallableFunction) => {\n if (e === 'abort') {\n this.listeners.push(f)\n }\n },\n }\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor() {}\n\n abort() {\n if (this.signal.aborted) return\n\n this.signal.aborted = true\n this.listeners.forEach(f => f())\n }\n}\n","import { StorageInterface, AbstractStorage, SDKAdapterInterface } from '@cloudbase/adapter-interface'\nimport { ICloudbaseCache, ICacheConfig } from '@cloudbase/types/cache'\nimport { KV, Persistence, ICloudbasePlatformInfo } from '@cloudbase/types'\nimport { printWarn } from './util'\nimport { ERRORS, getSdkName } from '../constants'\n\n/**\n * persitence=none时登录态保存在内存中\n */\nclass TcbCacheObject extends AbstractStorage {\n private readonly root: any\n constructor(root: any) {\n super()\n this.root = root\n if (!root.tcbCacheObject) {\n root.tcbCacheObject = {}\n }\n }\n public setItem(key: string, value: any) {\n this.root.tcbCacheObject[key] = value\n }\n public getItem(key: string) {\n return this.root.tcbCacheObject[key]\n }\n public removeItem(key: string) {\n delete this.root.tcbCacheObject[key]\n }\n public clear() {\n delete this.root.tcbCacheObject\n }\n}\n/**\n * 工厂函数\n */\nfunction createStorage(persistence: Persistence, adapter: SDKAdapterInterface): StorageInterface {\n switch (persistence) {\n case 'local':\n if (!adapter.localStorage) {\n printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform')\n // 不支持localstorage的平台降级为none\n return new TcbCacheObject(adapter.root)\n }\n return adapter.localStorage\n case 'none':\n return new TcbCacheObject(adapter.root)\n default:\n if (!adapter.localStorage) {\n printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform')\n // 不支持localstorage的平台降级为none\n return new TcbCacheObject(adapter.root)\n }\n return adapter.localStorage\n }\n}\n\nexport class CloudbaseCache implements ICloudbaseCache {\n public keys: KV<string> = {}\n\n private persistenceTag: Persistence\n private platformInfo: ICloudbasePlatformInfo\n private storage: StorageInterface\n\n constructor(config: ICacheConfig) {\n const { persistence, platformInfo = {}, keys = {} } = config\n this.platformInfo = platformInfo\n if (!this.storage) {\n this.persistenceTag = this.platformInfo.adapter.primaryStorage || persistence\n this.storage = createStorage(this.persistenceTag, this.platformInfo.adapter)\n this.keys = keys\n }\n }\n /**\n * @getter storage模式-同步/异步\n */\n get mode() {\n return this.storage.mode || 'sync'\n }\n get persistence(): Persistence {\n return this.persistenceTag\n }\n\n public setStore(key: string, value: any, version?: any) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use setStoreAsync insteed')\n return\n }\n if (!this.storage) {\n return\n }\n\n try {\n const val = {\n version: version || 'localCachev1',\n content: value,\n }\n this.storage.setItem(key, JSON.stringify(val))\n } catch (e) {\n throw new Error(JSON.stringify({\n code: ERRORS.OPERATION_FAIL,\n msg: `[${getSdkName()}][${ERRORS.OPERATION_FAIL}]setStore failed`,\n info: e,\n }))\n }\n\n return\n }\n public async setStoreAsync(key: string, value: any, version?: any) {\n if (!this.storage) {\n return\n }\n\n try {\n const val = {\n version: version || 'localCachev1',\n content: value,\n }\n await this.storage.setItem(key, JSON.stringify(val))\n } catch (e) {\n return\n }\n\n return\n }\n public getStore(key: string, version?: string) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use getStoreAsync insteed')\n return\n }\n try {\n // 测试用例使用\n if (typeof process !== 'undefined' && process.env?.tcb_token) {\n return process.env.tcb_token\n }\n\n if (!this.storage) {\n return ''\n }\n } catch (e) {\n return ''\n }\n\n version = version || 'localCachev1'\n\n const content = this.storage.getItem(key)\n if (!content) {\n return ''\n }\n\n if (content.indexOf(version) >= 0) {\n const d = JSON.parse(content)\n return d.content\n }\n return ''\n }\n public async getStoreAsync(key: string, version?: string) {\n try {\n // 测试用例使用\n if (typeof process !== 'undefined' && process.env?.tcb_token) {\n return process.env.tcb_token\n }\n\n if (!this.storage) {\n return ''\n }\n } catch (e) {\n return ''\n }\n\n version = version || 'localCachev1'\n\n const content = await this.storage.getItem(key)\n if (!content) {\n return ''\n }\n\n if (content.indexOf(version) >= 0) {\n const d = JSON.parse(content)\n return d.content\n }\n return ''\n }\n public removeStore(key: string) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use removeStoreAsync insteed')\n return\n }\n this.storage.removeItem(key)\n }\n public async removeStoreAsync(key: string) {\n await this.storage.removeItem(key)\n }\n}\n","import { isString, isInstanceOf } from './util'\nimport { Listeners, ICloudbaseEventEmitter } from '@cloudbase/types/events'\n\n\n/**\n * @private\n * @function _addEventListener - 添加监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @param {Listeners} listeners - 已存响应函数集合\n */\nfunction customeAddEventListener(name: string, listener: Function, listeners: Listeners) {\n listeners[name] = listeners[name] || []\n listeners[name].push(listener)\n}\n/**\n * @private\n * @function _removeEventListener - 移除监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @param {Listeners} listeners - 已存响应函数集合\n */\nfunction customRemoveEventListener(name: string, listener: Function, listeners: Listeners) {\n if (listeners?.[name]) {\n const index = listeners[name].indexOf(listener)\n if (index !== -1) {\n listeners[name].splice(index, 1)\n }\n }\n}\ninterface IEvent {\n name: string;\n target: any;\n data: any;\n}\n/**\n * 自定义事件\n * @class CloudbaseEvent\n * @param {string} name - 类型\n * @param {any} data - 数据\n */\nexport class CloudbaseEvent implements IEvent {\n public readonly name: string\n public target: any\n public data: any\n\n constructor(name: string, data: any) {\n this.data = data || null\n this.name = name\n }\n}\n/**\n * 自定义错误事件\n * @class IErrorEvent\n * @extends CloudbaseEvent\n * @param {Error} error - 错误信息对象\n * @param {any} data - 数据\n */\nexport class IErrorEvent extends CloudbaseEvent {\n public readonly error: Error\n constructor(error: Error, data?: any) {\n super('error', { error, data })\n this.error = error\n }\n}\n\n/**\n * @class CloudbaseEventEmitter\n */\nexport class CloudbaseEventEmitter implements ICloudbaseEventEmitter {\n /**\n * @private\n * @readonly\n * @property {Listeners} listeners - 响应函数集合\n * @default `{}`\n */\n private readonly listeners: Listeners = {}\n\n /**\n * @public\n * @method on - 添加监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @return `this`\n */\n public on(name: string, listener: Function): this {\n customeAddEventListener(name, listener, this.listeners)\n return this\n }\n /**\n * @public\n * @method off - 移除监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @return `this`\n */\n public off(name: string, listener: Function): this {\n customRemoveEventListener(name, listener, this.listeners)\n return this\n }\n /**\n * @public\n * @method fire - 触发事件\n * @param {string|CloudbaseEvent} event - event\n * @return `this`\n */\n public fire(event: string | CloudbaseEvent, data?: any): this {\n // 打印错误信息\n if (isInstanceOf(event, IErrorEvent)) {\n console.error((event as IErrorEvent).error)\n return this\n }\n\n const ev: CloudbaseEvent = isString(event) ? new CloudbaseEvent(event as string, data || {}) : event as CloudbaseEvent\n\n const { name } = ev\n\n if (this.listens(name)) {\n ev.target = this\n\n const handlers = this.listeners[name] ? [...this.listeners[name]] : []\n for (const fn of handlers) {\n fn.call(this, ev)\n }\n }\n\n return this\n }\n\n /**\n * @private\n * @method listens - 判断是否监听了name事件\n * @param {string} name - event名称\n * @return `boolean`\n */\n private listens(name: string): boolean {\n return this.listeners[name] && this.listeners[name].length > 0\n }\n}\n\n\nconst eventEmitter = new CloudbaseEventEmitter()\n\nexport function addEventListener(event: string, callback: Function) {\n eventEmitter.on(event, callback)\n}\n\nexport function activateEvent(event: string, data: any = {}) {\n eventEmitter.fire(event, data)\n}\n\nexport function removeEventListener(event: string, callback: Function) {\n eventEmitter.off(event, callback)\n}\n","import { CloudbaseEventEmitter } from './events'\n\nexport const bus = new CloudbaseEventEmitter()\n\nexport const LANG_CHANGE_EVENT = 'lang_change'\n","import { KV } from '@cloudbase/types'\nimport { getSdkName } from '../constants'\n\nexport function isArray(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object Array]'\n}\nexport function isString(val: any): boolean {\n return typeof val === 'string'\n}\nexport function isUndefined(val: any): boolean {\n return typeof val === 'undefined'\n}\nexport function isPalinObject(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object Object]'\n}\nexport function isNull(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object Null]'\n}\nexport function isInstanceOf(instance: any, construct: any): boolean {\n return instance instanceof construct\n}\nexport function isFormData(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object FormData]'\n}\nexport function genSeqId(): string {\n return Math.random().toString(16)\n .slice(2)\n}\nexport function generateRequestId() {\n let d = new Date().getTime()\n let d2 = (Date?.now && Date.now() * 1000) || 0\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n let r = Math.random() * 16\n if (d > 0) {\n r = (d + r) % 16 | 0\n d = Math.floor(d / 16)\n } else {\n r = (d2 + r) % 16 | 0\n d2 = Math.floor(d2 / 16)\n }\n return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16)\n })\n}\nexport function formatUrl(PROTOCOL: string, url: string, query: KV<any> = {}): string {\n const urlHasQuery = /\\?/.test(url)\n let queryString = ''\n Object.keys(query).forEach((key) => {\n if (queryString === '') {\n !urlHasQuery && (url += '?')\n } else {\n queryString += '&'\n }\n queryString += `${key}=${encodeURIComponent(query[key])}`\n })\n url += queryString\n if (/^http(s)?:\\/\\//.test(url)) {\n return url\n }\n return `${PROTOCOL}${url}`\n}\n\nexport function toQueryString(query: KV<any> = {}) {\n const queryString = []\n Object.keys(query).forEach((key) => {\n queryString.push(`${key}=${encodeURIComponent(query[key])}`)\n })\n return queryString.join('&')\n}\n\nexport function getQuery(name: string, url?: string) {\n if (typeof window === 'undefined') {\n return false\n }\n // 参数:变量名,url为空则表从当前页面的url中取\n const u = url || decodeURIComponent(window.location.search)\n const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`)\n const r = u.substr(u.indexOf('?') + 1).match(reg)\n return r !== null && r !== undefined ? r[2] : ''\n}\n\nexport const getHash = function (name: string) {\n if (typeof window === 'undefined') {\n return ''\n }\n const matches = window.location.hash.match(new RegExp(`[#?&/]${name}=([^&#]*)`))\n return matches ? matches[1] : ''\n}\n\nexport function removeParam(key: string, sourceURL: string) {\n let rtn = sourceURL.split('?')[0]\n let param\n let params = []\n const queryString = sourceURL.indexOf('?') !== -1 ? sourceURL.split('?')[1] : ''\n if (queryString !== '') {\n params = queryString.split('&')\n for (let i = params.length - 1; i >= 0; i -= 1) {\n /* eslint-disable-next-line */\n param = params[i].split('=')[0]\n if (param === key) {\n params.splice(i, 1)\n }\n }\n rtn = `${rtn}?${params.join('&')}`\n }\n return rtn\n}\n\nexport function createPromiseCallback() {\n let cb: any = {}\n if (!Promise) {\n cb = () => {}\n cb.promise = {}\n\n const throwPromiseNotDefined = () => {\n throw new Error('Your Node runtime does support ES6 Promises. '\n + 'Set \"global.Promise\" to your preferred implementation of promises.',)\n }\n\n Object.defineProperty(cb.promise, 'then', { get: throwPromiseNotDefined })\n Object.defineProperty(cb.promise, 'catch', { get: throwPromiseNotDefined })\n return cb\n }\n\n const promise = new Promise((resolve, reject) => {\n cb = (err, data) => {\n if (err) return reject(err)\n return resolve(data)\n }\n })\n cb.promise = promise\n return cb\n}\n\nexport function execCallback(fn: Function | null | undefined, err: any, data = null) {\n if (fn && typeof fn === 'function') {\n return fn(err, data)\n }\n if (err) {\n throw err\n }\n return data\n}\n\nexport function printWarn(error: string, msg: string) {\n console.warn(`[${getSdkName()}][${error}]:${msg}`)\n}\n\nexport function printError(error: string, msg: string) {\n console.error({\n code: error,\n msg: `[${getSdkName()}][${error}]:${msg}`,\n })\n}\nexport function printInfo(error: string, msg: string) {\n console.log(`[${getSdkName()}][${error}]:${msg}`)\n}\nexport function throwError(error: string, msg: string) {\n throw new Error(JSON.stringify({\n code: error,\n msg: `[${getSdkName()}][${error}]:${msg}`,\n }),)\n}\n\ninterface IPrintGroupLogOptions {\n title: string\n subtitle: string | object\n content: {\n type: 'info' | 'warn' | 'error'\n body: string | Error\n }[]\n printTrace?: boolean\n collapsed?: boolean\n}\nexport function printGroupLog(options: IPrintGroupLogOptions) {\n const { title, subtitle = '', content = [], printTrace = false, collapsed = false } = options\n if (collapsed) {\n (console.groupCollapsed || console.error)(title, subtitle)\n } else {\n (console.group || console.error)(title, subtitle)\n }\n for (const tip of content) {\n const { type, body } = tip\n switch (type) {\n case 'info':\n console.log(body)\n break\n case 'warn':\n console.warn(body)\n break\n case 'error':\n console.error(body)\n break\n }\n }\n if (printTrace) {\n (console.trace || console.log)('stack trace:')\n }\n console.groupEnd?.()\n}\n\nexport const sleep = (ms = 0) => new Promise(r => setTimeout(r, ms))\n\nexport function transformPhone(phoneNumber: string) {\n return `+86${phoneNumber}`\n}\n\nexport const parseQueryString = (queryString) => {\n queryString = queryString.replace(/^\\?/, '')\n const params = {}\n const pairs = queryString.split('&')\n\n pairs.forEach((item) => {\n let [key, value] = item.split('=')\n key = decodeURIComponent(key)\n value = decodeURIComponent(value)\n if (key) {\n if (params[key]) {\n if (Array.isArray(params[key])) {\n params[key].push(value)\n } else {\n params[key] = [params[key], value]\n }\n } else {\n params[key] = value\n }\n }\n })\n\n return params\n}\n\n// 解析URL参数\nexport function parseCaptcha(url) {\n let queryObj: any = {}\n const matched = url.match(/^(data:.*?)(\\?[^#\\s]*)?$/)\n if (matched) {\n // eslint-disable-next-line prefer-destructuring\n url = matched[1]\n const search = matched[2]\n if (search) {\n queryObj = parseQueryString(search)\n }\n }\n const { token, ...restQueryObj } = queryObj\n if (/^data:/.test(url) && !token) {\n return {\n error: 'invalid_argument',\n error_description: `invalid captcha data: ${url}`,\n }\n }\n if (!token) {\n return {\n error: 'unimplemented',\n error_description: 'need to impl captcha data',\n }\n }\n // 解析url得到的参数\n return {\n state: restQueryObj.state,\n token, // 验证码token\n captchaData: url, // 验证码base64图片\n }\n}\n","module.exports = require(\"@cloudbase/adapter-interface\");","module.exports = require(\"@cloudbase/wx-cloud-client-sdk\");","module.exports = require(\"jwt-decode\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(171);\n"],"names":["__exportStar","require","exports","wx_cloud_client_sdk_1","CloudbaseEventEmitter","events","COMPONENT_NAME","cloudbaseModelMap","WeakMap","lazyGetEntity","cloudbase","Proxy","get","_","prop","_a","getEndPointWithKey","BASE_URL","PROTOCOL","key","__assign","entity","_this","callFunction","bind","cloudbaseFetch","request","fetch","baseUrl","concat","sqlBaseUrl","generateHTTPClient","fetchOptions","__awaiter","headers","sent","data","getEntity","set","CLOUDBASE_INIT_EVENT","bus","on","Object","assign","models","component","name","namespace","console","warn","injectEvents","registerComponent","e","registerModel","app","window","RUNTIME","Web","__importStar","util_1","adapters","options","_i","adapterList_1","isArray","length","adapter","isMatch","genAdapter","runtime","WEB","adapter_interface_1","common_1","WebRequest","_super","config","call","timeout","timeoutMsg","restrictedMethods","__extends","prototype","this","method","includes","post","put","upload","file","reqMethod","toLowerCase","formData","FormData","keys","forEach","append","body","download","Promise","responseType","url","URL","createObjectURL","Blob","fileName","decodeURIComponent","pathname","split","pop","link","document","createElement","href","setAttribute","style","display","appendChild","click","revokeObjectURL","removeChild","resolve","statusCode","tempFilePath","abortController","AbortController","_b","enableAbort","_c","stream","signal","_timeout","_d","shouldThrowOnError","aborted","abort","addEventListener","timer","setTimeout","Error","then","response","clearTimeout","ok","reject","json","apply","catch","x","res","_e","text","status","header","String","payload","withCredentials","onUploadProgress","realUrl","formatUrl","getProtocol","ajax","XMLHttpRequest","open","setRequestHeader","onreadystatechange","result","readyState","arr","getAllResponseHeaders","trim","headerMap_1","line","parts","shift","value","join","JSON","parse","responseText","isFormData","toQueryString","stringify","undefined","send","AbstractSDKRequest","type","root","reqClass","wsClass","WebSocket","localStorage","sdkName","protocol","INVALID_PARAMS","INVALID_SYNTAX","INVALID_OPERATION","OPERATION_FAIL","NETWORK_ERROR","UNKOWN_ERROR","constants_1","isFirefox","navigator","userAgent","indexOf","REG_STACK_DECORATE","REG_STACK_LINK","getRewritedError","err","className","methodName","sourceLink","innerErr","innerErrStack","stack","REG_STACK_INNER_METHOD","RegExp","REG_STACK_INNER_METHOD_WITHOUT_LINK","indexOfSource","findIndex","str","test","realErrStack","filter","v","i","unshift","replace","mode","customInfo","title","messages","target","descriptor","IS_DEBUG_MODE","constructor","fnName","fn","outterErrStacks","indexOfDecorator","match","exec","getSourceLink","args","arguments","failErr","errMsg","message","error","errorDescription","error_description","logs","content","msg","subtitle","code","map","printGroupLog","err_1","constants","cache","langEvent","utils","helpers","abortController_1","__importDefault","default","jwt","decode","listeners","f","push","TcbCacheObject","tcbCacheObject","setItem","getItem","removeItem","clear","AbstractStorage","CloudbaseCache","persistence","platformInfo","storage","persistenceTag","primaryStorage","printWarn","ERRORS","createStorage","defineProperty","setStore","version","val","getSdkName","info","setStoreAsync","getStore","process","tcb_token","getStoreAsync","removeStore","removeStoreAsync","CloudbaseEvent","IErrorEvent","listener","customeAddEventListener","off","index","splice","customRemoveEventListener","fire","event","isInstanceOf","ev","isString","listens","handlers_1","__spreadArray","eventEmitter","callback","events_1","toString","instance","construct","Math","random","slice","d","Date","getTime","d2","now","c","r","floor","query","urlHasQuery","queryString","encodeURIComponent","u","location","search","reg","substr","matches","hash","sourceURL","rtn","params","cb","promise","throwPromiseNotDefined","log","printTrace","collapsed","groupCollapsed","group","content_1","tip","trace","groupEnd","ms","phoneNumber","item","Array","queryObj","matched","parseQueryString","token","restQueryObj","__rest","state","captchaData","module","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.js","mappings":"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","sources":["webpack://@cloudbase/js-sdk/index.ts","webpack://@cloudbase/js-sdk/web.ts","webpack://@cloudbase/js-sdk/common.ts","webpack://@cloudbase/js-sdk/errors.ts","webpack://@cloudbase/js-sdk/decorators.ts","webpack://@cloudbase/js-sdk/abortController.ts","webpack://@cloudbase/js-sdk/cache.ts","webpack://@cloudbase/js-sdk/events.ts","webpack://@cloudbase/js-sdk/langEvent.ts","webpack://@cloudbase/js-sdk/util.ts","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/adapter-interface\",\"commonjs2\":\"@cloudbase/adapter-interface\",\"amd\":\"@cloudbase/adapter-interface\",\"root\":\"@cloudbase/adapter-interface\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/wx-cloud-client-sdk\",\"commonjs2\":\"@cloudbase/wx-cloud-client-sdk\",\"amd\":\"@cloudbase/wx-cloud-client-sdk\",\"root\":\"@cloudbase/wx-cloud-client-sdk\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"jwt-decode\",\"commonjs2\":\"jwt-decode\",\"amd\":\"jwt-decode\",\"root\":\"jwt-decode\"}","webpack://@cloudbase/js-sdk/webpack/bootstrap","webpack://@cloudbase/js-sdk/webpack/startup"],"sourcesContent":["export * from '@cloudbase/model'\n","import {\n SDKAdapterInterface,\n AbstractSDKRequest,\n IRequestOptions,\n ResponseObject,\n IUploadRequestOptions,\n IRequestConfig,\n IRequestMethod,\n IFetchOptions,\n} from '@cloudbase/adapter-interface'\nimport { isFormData, formatUrl, toQueryString } from '../../libs/util'\nimport { getProtocol } from '../../constants/common'\n\n/**\n * @class WebRequest\n */\nclass WebRequest extends AbstractSDKRequest {\n // 默认不限超时\n private readonly timeout: number\n // 超时提示文案\n private readonly timeoutMsg: string\n // 超时受限请求类型,默认所有请求均受限\n private readonly restrictedMethods: Array<IRequestMethod>\n constructor(config: IRequestConfig) {\n super()\n const { timeout, timeoutMsg, restrictedMethods } = config\n this.timeout = timeout || 0\n this.timeoutMsg = timeoutMsg || '请求超时'\n this.restrictedMethods = restrictedMethods || ['get', 'post', 'upload', 'download']\n }\n public get(options: IRequestOptions): Promise<ResponseObject> {\n return this.request(\n {\n ...options,\n method: 'get',\n },\n this.restrictedMethods.includes('get'),\n )\n }\n public post(options: IRequestOptions): Promise<ResponseObject> {\n return this.request(\n {\n ...options,\n method: 'post',\n },\n this.restrictedMethods.includes('post'),\n )\n }\n public put(options: IRequestOptions): Promise<ResponseObject> {\n return this.request({\n ...options,\n method: 'put',\n })\n }\n public upload(options: IUploadRequestOptions): Promise<ResponseObject> {\n const { data, file, name, method, headers = {} } = options\n const reqMethod = { post: 'post', put: 'put' }[method?.toLowerCase()] || 'put'\n // 上传方式为post时,需转换为FormData\n const formData = new FormData()\n if (reqMethod === 'post') {\n Object.keys(data).forEach((key) => {\n formData.append(key, data[key])\n })\n formData.append('key', name)\n formData.append('file', file)\n return this.request(\n {\n ...options,\n data: formData,\n method: reqMethod,\n },\n this.restrictedMethods.includes('upload'),\n )\n }\n return this.request(\n {\n ...options,\n method: 'put',\n headers,\n body: file,\n },\n this.restrictedMethods.includes('upload'),\n )\n }\n public async download(options: IRequestOptions): Promise<any> {\n try {\n const { data } = await this.get({\n ...options,\n headers: {}, // 下载资源请求不经过service,header清空\n responseType: 'blob',\n })\n const url = window.URL.createObjectURL(new Blob([data]))\n const fileName = decodeURIComponent(new URL(options.url).pathname.split('/').pop() || '')\n const link = document.createElement('a')\n\n link.href = url\n link.setAttribute('download', fileName)\n link.style.display = 'none'\n\n document.body.appendChild(link)\n link.click()\n // 回收内存\n window.URL.revokeObjectURL(url)\n document.body.removeChild(link)\n } catch (e) {}\n return new Promise((resolve) => {\n resolve({\n statusCode: 200,\n tempFilePath: options.url,\n })\n })\n }\n async fetch(options: IFetchOptions & { shouldThrowOnError?: boolean }): Promise<ResponseObject> {\n const abortController = new AbortController()\n const { url, enableAbort = false, stream = false, signal, timeout: _timeout, shouldThrowOnError = true } = options\n\n const timeout = _timeout ?? this.timeout\n\n // FIXME(内存泄漏): { once: true } 只在 abort 事件【触发后】才解绑监听器。\n // 如果请求正常完成、从未 abort,该监听器会一直残留在外部 signal 上。\n // 当调用方复用同一长生命周期 signal 反复发请求时,监听器仍会持续累积。\n // 根治方式:在请求结束(finally)时 removeEventListener 主动解绑,\n // 而不能仅依赖 { once: true }。此处暂仅记录,不改动逻辑。\n if (signal) {\n if (signal.aborted) abortController.abort()\n signal.addEventListener('abort', () => abortController.abort())\n }\n\n let timer = null\n if (enableAbort && timeout) {\n timer = setTimeout(() => {\n console.warn(this.timeoutMsg)\n abortController.abort(new Error(this.timeoutMsg))\n }, timeout)\n }\n\n const res = await fetch(url, {\n ...options,\n signal: abortController.signal,\n })\n .then(async (response) => {\n clearTimeout(timer)\n if (shouldThrowOnError) {\n // 404 等等也会进 resolve,所以要再通过 ok 判断\n return response.ok ? response : Promise.reject(await response.json())\n }\n return response\n })\n .catch((x) => {\n clearTimeout(timer)\n // 传输级失败(网络中断、CORS 预检被拒、请求被 abort 等)时 fetch 会 reject,\n // 此时没有可解析的 Response。无论 shouldThrowOnError 取值都必须把真实错误抛出,\n // 否则 res 会变成 undefined,下方读取 res.headers 会抛出令人误解的\n // \"Cannot read properties of undefined (reading 'headers')\",掩盖真正的错误原因。\n return Promise.reject(x)\n })\n\n return {\n // eslint-disable-next-line no-nested-ternary\n data: stream ? res.body : res.headers.get('content-type')?.includes('application/json') ? res.json() : res.text(),\n statusCode: res.status,\n header: res.headers,\n // 透出原始 Response,便于上层按需 .blob() / .arrayBuffer() / 读取 body 流,避免二次包装。\n response: res,\n }\n }\n /**\n * @param {IRequestOptions} options\n * @param {boolean} enableAbort 是否超时中断请求\n */\n protected request(options: IRequestOptions, enableAbort = false): Promise<ResponseObject> {\n const method = String(options.method).toLowerCase() || 'get'\n return new Promise((resolve) => {\n const { url, headers = {}, data, responseType, withCredentials, body, onUploadProgress } = options\n const realUrl = formatUrl(getProtocol(), url, method === 'get' ? data : {})\n const ajax = new XMLHttpRequest()\n ajax.open(method, realUrl)\n responseType && (ajax.responseType = responseType)\n // 支持通过 AbortSignal 取消请求:已 abort 立即取消;否则用 { once: true }\n // 监听,触发后自动解绑,避免复用同一 AbortController 多次请求时累积监听器。\n //\n // FIXME(内存泄漏): { once: true } 只在 abort 事件【触发后】才解绑监听器。\n // 如果请求正常完成、从未 abort,该监听器会一直残留在外部 signal 上。\n // 当调用方复用同一长生命周期 signal 反复发请求时,监听器仍会持续累积。\n // 根治方式:在请求结束(readyState===4 / onloadend)时 removeEventListener\n // 主动解绑,而不能仅依赖 { once: true }。此处暂仅记录,不改动逻辑。\n const signal = (options as any).signal as AbortSignal | undefined\n if (signal) {\n if (signal.aborted) {\n ajax.abort()\n } else {\n signal.addEventListener('abort', () => ajax.abort(), { once: true })\n }\n }\n Object.keys(headers).forEach((key) => {\n ajax.setRequestHeader(key, headers[key])\n })\n let timer\n if (onUploadProgress) {\n ajax.upload.addEventListener('progress', onUploadProgress)\n }\n ajax.onreadystatechange = () => {\n const result: ResponseObject = {}\n if (ajax.readyState === 4) {\n const headers = ajax.getAllResponseHeaders()\n const arr = headers.trim().split(/[\\r\\n]+/)\n // Create a map of header names to values\n const headerMap = {}\n arr.forEach((line) => {\n const parts = line.split(': ')\n const header = parts.shift().toLowerCase()\n const value = parts.join(': ')\n headerMap[header] = value\n })\n result.header = headerMap\n result.statusCode = ajax.status\n try {\n // 上传post请求返回数据格式为xml,此处容错\n result.data = responseType === 'blob' ? ajax.response : JSON.parse(ajax.responseText)\n } catch (e) {\n result.data = responseType === 'blob' ? ajax.response : ajax.responseText\n }\n clearTimeout(timer)\n resolve(result)\n }\n }\n if (enableAbort && this.timeout) {\n timer = setTimeout(() => {\n console.warn(this.timeoutMsg)\n ajax.abort()\n }, this.timeout)\n }\n // 处理 payload\n let payload\n if (isFormData(data)) {\n // FormData,不处理\n payload = data\n } else if (headers['content-type'] === 'application/x-www-form-urlencoded') {\n payload = toQueryString(data)\n } else if (body) {\n payload = body\n } else {\n // 其它情况\n payload = data ? JSON.stringify(data) : undefined\n }\n\n if (withCredentials) {\n ajax.withCredentials = true\n }\n ajax.send(payload)\n })\n }\n}\n\nfunction genAdapter() {\n const adapter: SDKAdapterInterface & { type?: 'default' | '' } = {\n type: 'default',\n root: window,\n reqClass: WebRequest,\n wsClass: WebSocket,\n localStorage,\n }\n return adapter\n}\n\nexport { genAdapter, WebRequest }\n","let sdkName = '@cloudbase/js-sdk'\nexport function setSdkName(name: string) {\n sdkName = name\n}\nexport function getSdkName() {\n return sdkName\n}\n\nlet PROTOCOL = 'https:'\n\nexport function setProtocol(protocol: 'http:' | 'https:') {\n PROTOCOL = protocol\n}\n\nexport function getProtocol() {\n return PROTOCOL\n}\n// 是否为开发模式\nexport const IS_DEBUG_MODE = typeof process === 'undefined' || typeof process.env === 'undefined' ? false : process.env.NODE_ENV === 'development'\n// 问答社区链接\nexport const COMMUNITY_SITE_URL = 'https://support.qq.com/products/148793'\n","export const ERRORS = {\n INVALID_PARAMS: 'INVALID_PARAMS',\n INVALID_SYNTAX: 'INVALID_SYNTAX',\n INVALID_OPERATION: 'INVALID_OPERATION',\n OPERATION_FAIL: 'OPERATION_FAIL',\n NETWORK_ERROR: 'NETWORK_ERROR',\n UNKOWN_ERROR: 'UNKOWN_ERROR',\n}\n","import { printGroupLog } from '../libs/util'\nimport { IS_DEBUG_MODE } from '../constants'\n\ninterface ICatchErrorsDecoratorOptions {\n mode?: 'sync' | 'async';\n customInfo?: {\n className?: string;\n methodName?: string;\n };\n title?: string;\n messages?: string[];\n}\n// firefox的stack格式与chrome不同\nlet isFirefox = false\nif (typeof navigator !== 'undefined' && navigator.userAgent) {\n isFirefox = navigator.userAgent.indexOf('Firefox') !== -1\n}\n/**\n * decorate在stack中一般都特定的规范\n */\nconst REG_STACK_DECORATE = isFirefox\n ? /(\\.js\\/)?__decorate(\\$\\d+)?<@.*\\d$/\n : /(\\/\\w+\\.js\\.)?__decorate(\\$\\d+)?\\s*\\(.*\\)$/\nconst REG_STACK_LINK = /https?:\\/\\/.+:\\d*\\/.*\\.js:\\d+:\\d+/\n/**\n * debug模式强化日志信息\n * @param options\n */\nexport function catchErrorsDecorator(options: ICatchErrorsDecoratorOptions) {\n const { mode = 'async', customInfo = {}, title, messages = [] } = options\n\n return function (\n target: any,\n methodName: string,\n descriptor: TypedPropertyDescriptor<Function>\n ) {\n // 生产环境禁用\n if (!IS_DEBUG_MODE) {\n return\n }\n const className = customInfo.className || target.constructor.name\n const fnName = customInfo.methodName || methodName\n const fn = descriptor.value\n\n // 被decorator装饰的源码link\n // 在descriptor.value外部此处创建的stack层次可触达源码\n // 而descriptor.value内部有可能由于stack太深无法触达\n const sourceLink = getSourceLink(new Error())\n\n if (mode === 'sync') {\n descriptor.value = function (...args: any[]) {\n // 此处的stack作用主要是为了获取被decorator装饰的源码class和method名称\n const innerErr: any = getRewritedError({\n err: new Error(),\n className,\n methodName: fnName,\n sourceLink,\n })\n try {\n return fn.apply(this, args)\n } catch (err) {\n let failErr = err\n const { message: errMsg, error, error_description: errorDescription } = err\n const logs: any = {\n title: title || `${className}.${fnName} failed`,\n content: [{\n type: 'error',\n body: err,\n }],\n }\n // 只特殊处理SDK业务逻辑抛出的错误-JSON string\n if (errMsg && /^\\{.*\\}$/.test(errMsg)) {\n const msg = JSON.parse(errMsg)\n logs.subtitle = errMsg\n if (msg.code) {\n if (innerErr) {\n innerErr.code = msg.code\n innerErr.msg = msg.msg\n } else {\n err.code = msg.code\n err.message = msg.msg\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n }\n\n // oauth 错误特殊处理\n if (error && errorDescription) {\n logs.subtitle = errorDescription\n if (innerErr) {\n innerErr.code = error\n innerErr.msg = errorDescription\n } else {\n err.code = error\n err.message = errorDescription\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n printGroupLog(logs)\n throw failErr\n }\n }\n } else {\n descriptor.value = async function (...args: any[]) {\n const innerErr: any = getRewritedError({\n err: new Error(),\n className,\n methodName: fnName,\n sourceLink,\n })\n\n try {\n return await fn.apply(this, args)\n } catch (err) {\n let failErr = err\n const { message: errMsg, error, error_description: errorDescription } = err\n const logs: any = {\n title: title || `${className}.${fnName} failed`,\n content: [{\n type: 'error',\n body: err,\n }],\n }\n // 只特殊处理SDK业务逻辑抛出的错误-JSON string\n if (errMsg && /^\\{.*\\}$/.test(errMsg)) {\n const msg = JSON.parse(errMsg)\n logs.subtitle = msg\n if (msg.code) {\n if (innerErr) {\n innerErr.code = msg.code\n innerErr.message = msg.msg\n } else {\n err.code = msg.code\n err.message = msg.msg\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n }\n\n // oauth 错误特殊处理\n if (error && errorDescription) {\n logs.subtitle = errorDescription\n if (innerErr) {\n innerErr.code = error\n innerErr.msg = errorDescription\n } else {\n err.code = error\n err.message = errorDescription\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n printGroupLog(logs)\n throw failErr\n }\n }\n }\n }\n}\n\n/**\n * 在原始堆栈中查找装饰器条目并返回源码链接link\n * @param err\n */\nfunction getSourceLink(err: Error) {\n let sourceLink = ''\n const outterErrStacks = err.stack.split('\\n')\n const indexOfDecorator = outterErrStacks.findIndex(str => REG_STACK_DECORATE.test(str))\n\n if (indexOfDecorator !== -1) {\n const match = REG_STACK_LINK.exec(outterErrStacks[indexOfDecorator + 1] || '')\n\n sourceLink = match ? match[0] : ''\n }\n return sourceLink\n}\n\n/**\n * 在原始堆栈中查找装饰器条目,剔除其后的无用堆栈,并将链接替换为源码link\n * @param options\n */\nfunction getRewritedError(options: {\n err: Error;\n className: string;\n methodName: string;\n sourceLink: string;\n}) {\n const { err, className, methodName, sourceLink } = options\n // 找不到源码link返回null,后续逻辑将打印原堆栈信息\n if (!sourceLink) {\n return null\n }\n\n const innerErrStack = err.stack.split('\\n')\n const REG_STACK_INNER_METHOD = isFirefox\n ? /^catchErrorsDecorator\\/<\\/descriptor.value@.*\\d$/\n : new RegExp(`${className}\\\\.descriptor.value\\\\s*\\\\[as\\\\s${methodName}\\\\]\\\\s*\\\\(.*\\\\)$`)\n const REG_STACK_INNER_METHOD_WITHOUT_LINK = isFirefox\n ? /^catchErrorsDecorator\\/<\\/descriptor.value/\n : new RegExp(`${className}\\\\.descriptor.value\\\\s*\\\\[as\\\\s${methodName}\\\\]`)\n const indexOfSource = innerErrStack.findIndex(str => REG_STACK_INNER_METHOD.test(str))\n let innerErr: Error\n if (indexOfSource !== -1) {\n // @ts-ignore\n const realErrStack = innerErrStack.filter((v, i) => i > indexOfSource)\n realErrStack.unshift(innerErrStack[indexOfSource]\n .replace(REG_STACK_INNER_METHOD_WITHOUT_LINK, `${className}.${methodName}`)\n .replace(REG_STACK_LINK, sourceLink))\n innerErr = new Error()\n innerErr.stack = `${isFirefox ? '@debugger' : 'Error'}\\n${realErrStack.join('\\n')}`\n }\n return innerErr\n}\n","export default class AbortController {\n listeners: Array<CallableFunction> = []\n signal = {\n aborted: false,\n addEventListener: (e: string, f: CallableFunction) => {\n if (e === 'abort') {\n this.listeners.push(f)\n }\n },\n }\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor() {}\n\n abort() {\n if (this.signal.aborted) return\n\n this.signal.aborted = true\n this.listeners.forEach(f => f())\n }\n}\n","import { StorageInterface, AbstractStorage, SDKAdapterInterface } from '@cloudbase/adapter-interface'\nimport { ICloudbaseCache, ICacheConfig } from '@cloudbase/types/cache'\nimport { KV, Persistence, ICloudbasePlatformInfo } from '@cloudbase/types'\nimport { printWarn } from './util'\nimport { ERRORS, getSdkName } from '../constants'\n\n/**\n * persitence=none时登录态保存在内存中\n */\nclass TcbCacheObject extends AbstractStorage {\n private readonly root: any\n constructor(root: any) {\n super()\n this.root = root\n if (!root.tcbCacheObject) {\n root.tcbCacheObject = {}\n }\n }\n public setItem(key: string, value: any) {\n this.root.tcbCacheObject[key] = value\n }\n public getItem(key: string) {\n return this.root.tcbCacheObject[key]\n }\n public removeItem(key: string) {\n delete this.root.tcbCacheObject[key]\n }\n public clear() {\n delete this.root.tcbCacheObject\n }\n}\n/**\n * 工厂函数\n */\nfunction createStorage(persistence: Persistence, adapter: SDKAdapterInterface): StorageInterface {\n switch (persistence) {\n case 'local':\n if (!adapter.localStorage) {\n printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform')\n // 不支持localstorage的平台降级为none\n return new TcbCacheObject(adapter.root)\n }\n return adapter.localStorage\n case 'none':\n return new TcbCacheObject(adapter.root)\n default:\n if (!adapter.localStorage) {\n printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform')\n // 不支持localstorage的平台降级为none\n return new TcbCacheObject(adapter.root)\n }\n return adapter.localStorage\n }\n}\n\nexport class CloudbaseCache implements ICloudbaseCache {\n public keys: KV<string> = {}\n\n private persistenceTag: Persistence\n private platformInfo: ICloudbasePlatformInfo\n private storage: StorageInterface\n\n constructor(config: ICacheConfig) {\n const { persistence, platformInfo = {}, keys = {} } = config\n this.platformInfo = platformInfo\n if (!this.storage) {\n this.persistenceTag = this.platformInfo.adapter.primaryStorage || persistence\n this.storage = createStorage(this.persistenceTag, this.platformInfo.adapter)\n this.keys = keys\n }\n }\n /**\n * @getter storage模式-同步/异步\n */\n get mode() {\n return this.storage.mode || 'sync'\n }\n get persistence(): Persistence {\n return this.persistenceTag\n }\n\n public setStore(key: string, value: any, version?: any) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use setStoreAsync insteed')\n return\n }\n if (!this.storage) {\n return\n }\n\n try {\n const val = {\n version: version || 'localCachev1',\n content: value,\n }\n this.storage.setItem(key, JSON.stringify(val))\n } catch (e) {\n throw new Error(JSON.stringify({\n code: ERRORS.OPERATION_FAIL,\n msg: `[${getSdkName()}][${ERRORS.OPERATION_FAIL}]setStore failed`,\n info: e,\n }))\n }\n\n return\n }\n public async setStoreAsync(key: string, value: any, version?: any) {\n if (!this.storage) {\n return\n }\n\n try {\n const val = {\n version: version || 'localCachev1',\n content: value,\n }\n await this.storage.setItem(key, JSON.stringify(val))\n } catch (e) {\n return\n }\n\n return\n }\n public getStore(key: string, version?: string) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use getStoreAsync insteed')\n return\n }\n try {\n // 测试用例使用\n if (typeof process !== 'undefined' && process.env?.tcb_token) {\n return process.env.tcb_token\n }\n\n if (!this.storage) {\n return ''\n }\n } catch (e) {\n return ''\n }\n\n version = version || 'localCachev1'\n\n const content = this.storage.getItem(key)\n if (!content) {\n return ''\n }\n\n if (content.indexOf(version) >= 0) {\n const d = JSON.parse(content)\n return d.content\n }\n return ''\n }\n public async getStoreAsync(key: string, version?: string) {\n try {\n // 测试用例使用\n if (typeof process !== 'undefined' && process.env?.tcb_token) {\n return process.env.tcb_token\n }\n\n if (!this.storage) {\n return ''\n }\n } catch (e) {\n return ''\n }\n\n version = version || 'localCachev1'\n\n const content = await this.storage.getItem(key)\n if (!content) {\n return ''\n }\n\n if (content.indexOf(version) >= 0) {\n const d = JSON.parse(content)\n return d.content\n }\n return ''\n }\n public removeStore(key: string) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use removeStoreAsync insteed')\n return\n }\n this.storage.removeItem(key)\n }\n public async removeStoreAsync(key: string) {\n await this.storage.removeItem(key)\n }\n}\n","import { isString, isInstanceOf } from './util'\nimport { Listeners, ICloudbaseEventEmitter } from '@cloudbase/types/events'\n\n\n/**\n * @private\n * @function _addEventListener - 添加监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @param {Listeners} listeners - 已存响应函数集合\n */\nfunction customeAddEventListener(name: string, listener: Function, listeners: Listeners) {\n listeners[name] = listeners[name] || []\n listeners[name].push(listener)\n}\n/**\n * @private\n * @function _removeEventListener - 移除监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @param {Listeners} listeners - 已存响应函数集合\n */\nfunction customRemoveEventListener(name: string, listener: Function, listeners: Listeners) {\n if (listeners?.[name]) {\n const index = listeners[name].indexOf(listener)\n if (index !== -1) {\n listeners[name].splice(index, 1)\n }\n }\n}\ninterface IEvent {\n name: string;\n target: any;\n data: any;\n}\n/**\n * 自定义事件\n * @class CloudbaseEvent\n * @param {string} name - 类型\n * @param {any} data - 数据\n */\nexport class CloudbaseEvent implements IEvent {\n public readonly name: string\n public target: any\n public data: any\n\n constructor(name: string, data: any) {\n this.data = data || null\n this.name = name\n }\n}\n/**\n * 自定义错误事件\n * @class IErrorEvent\n * @extends CloudbaseEvent\n * @param {Error} error - 错误信息对象\n * @param {any} data - 数据\n */\nexport class IErrorEvent extends CloudbaseEvent {\n public readonly error: Error\n constructor(error: Error, data?: any) {\n super('error', { error, data })\n this.error = error\n }\n}\n\n/**\n * @class CloudbaseEventEmitter\n */\nexport class CloudbaseEventEmitter implements ICloudbaseEventEmitter {\n /**\n * @private\n * @readonly\n * @property {Listeners} listeners - 响应函数集合\n * @default `{}`\n */\n private readonly listeners: Listeners = {}\n\n /**\n * @public\n * @method on - 添加监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @return `this`\n */\n public on(name: string, listener: Function): this {\n customeAddEventListener(name, listener, this.listeners)\n return this\n }\n /**\n * @public\n * @method off - 移除监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @return `this`\n */\n public off(name: string, listener: Function): this {\n customRemoveEventListener(name, listener, this.listeners)\n return this\n }\n /**\n * @public\n * @method fire - 触发事件\n * @param {string|CloudbaseEvent} event - event\n * @return `this`\n */\n public fire(event: string | CloudbaseEvent, data?: any): this {\n // 打印错误信息\n if (isInstanceOf(event, IErrorEvent)) {\n console.error((event as IErrorEvent).error)\n return this\n }\n\n const ev: CloudbaseEvent = isString(event) ? new CloudbaseEvent(event as string, data || {}) : event as CloudbaseEvent\n\n const { name } = ev\n\n if (this.listens(name)) {\n ev.target = this\n\n const handlers = this.listeners[name] ? [...this.listeners[name]] : []\n for (const fn of handlers) {\n fn.call(this, ev)\n }\n }\n\n return this\n }\n\n /**\n * @private\n * @method listens - 判断是否监听了name事件\n * @param {string} name - event名称\n * @return `boolean`\n */\n private listens(name: string): boolean {\n return this.listeners[name] && this.listeners[name].length > 0\n }\n}\n\n\nconst eventEmitter = new CloudbaseEventEmitter()\n\nexport function addEventListener(event: string, callback: Function) {\n eventEmitter.on(event, callback)\n}\n\nexport function activateEvent(event: string, data: any = {}) {\n eventEmitter.fire(event, data)\n}\n\nexport function removeEventListener(event: string, callback: Function) {\n eventEmitter.off(event, callback)\n}\n","import { CloudbaseEventEmitter } from './events'\n\nexport const bus = new CloudbaseEventEmitter()\n\nexport const LANG_CHANGE_EVENT = 'lang_change'\n","import { KV } from '@cloudbase/types'\nimport { getSdkName } from '../constants'\n\nexport function isArray(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object Array]'\n}\nexport function isString(val: any): boolean {\n return typeof val === 'string'\n}\nexport function isUndefined(val: any): boolean {\n return typeof val === 'undefined'\n}\nexport function isPalinObject(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object Object]'\n}\nexport function isNull(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object Null]'\n}\nexport function isInstanceOf(instance: any, construct: any): boolean {\n return instance instanceof construct\n}\nexport function isFormData(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object FormData]'\n}\nexport function genSeqId(): string {\n return Math.random().toString(16)\n .slice(2)\n}\nexport function generateRequestId() {\n let d = new Date().getTime()\n let d2 = (Date?.now && Date.now() * 1000) || 0\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n let r = Math.random() * 16\n if (d > 0) {\n r = (d + r) % 16 | 0\n d = Math.floor(d / 16)\n } else {\n r = (d2 + r) % 16 | 0\n d2 = Math.floor(d2 / 16)\n }\n return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16)\n })\n}\nexport function formatUrl(PROTOCOL: string, url: string, query: KV<any> = {}): string {\n const urlHasQuery = /\\?/.test(url)\n let queryString = ''\n Object.keys(query).forEach((key) => {\n if (queryString === '') {\n !urlHasQuery && (url += '?')\n } else {\n queryString += '&'\n }\n queryString += `${key}=${encodeURIComponent(query[key])}`\n })\n url += queryString\n if (/^http(s)?:\\/\\//.test(url)) {\n return url\n }\n return `${PROTOCOL}${url}`\n}\n\nexport function toQueryString(query: KV<any> = {}) {\n const queryString = []\n Object.keys(query).forEach((key) => {\n queryString.push(`${key}=${encodeURIComponent(query[key])}`)\n })\n return queryString.join('&')\n}\n\nexport function getQuery(name: string, url?: string) {\n if (typeof window === 'undefined') {\n return false\n }\n // 参数:变量名,url为空则表从当前页面的url中取\n const u = url || decodeURIComponent(window.location.search)\n const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`)\n const r = u.substr(u.indexOf('?') + 1).match(reg)\n return r !== null && r !== undefined ? r[2] : ''\n}\n\nexport const getHash = function (name: string) {\n if (typeof window === 'undefined') {\n return ''\n }\n const matches = window.location.hash.match(new RegExp(`[#?&/]${name}=([^&#]*)`))\n return matches ? matches[1] : ''\n}\n\nexport function removeParam(key: string, sourceURL: string) {\n let rtn = sourceURL.split('?')[0]\n let param\n let params = []\n const queryString = sourceURL.indexOf('?') !== -1 ? sourceURL.split('?')[1] : ''\n if (queryString !== '') {\n params = queryString.split('&')\n for (let i = params.length - 1; i >= 0; i -= 1) {\n /* eslint-disable-next-line */\n param = params[i].split('=')[0]\n if (param === key) {\n params.splice(i, 1)\n }\n }\n rtn = `${rtn}?${params.join('&')}`\n }\n return rtn\n}\n\nexport function createPromiseCallback() {\n let cb: any = {}\n if (!Promise) {\n cb = () => {}\n cb.promise = {}\n\n const throwPromiseNotDefined = () => {\n throw new Error('Your Node runtime does support ES6 Promises. '\n + 'Set \"global.Promise\" to your preferred implementation of promises.',)\n }\n\n Object.defineProperty(cb.promise, 'then', { get: throwPromiseNotDefined })\n Object.defineProperty(cb.promise, 'catch', { get: throwPromiseNotDefined })\n return cb\n }\n\n const promise = new Promise((resolve, reject) => {\n cb = (err, data) => {\n if (err) return reject(err)\n return resolve(data)\n }\n })\n cb.promise = promise\n return cb\n}\n\nexport function execCallback(fn: Function | null | undefined, err: any, data = null) {\n if (fn && typeof fn === 'function') {\n return fn(err, data)\n }\n if (err) {\n throw err\n }\n return data\n}\n\nexport function printWarn(error: string, msg: string) {\n console.warn(`[${getSdkName()}][${error}]:${msg}`)\n}\n\nexport function printError(error: string, msg: string) {\n console.error({\n code: error,\n msg: `[${getSdkName()}][${error}]:${msg}`,\n })\n}\nexport function printInfo(error: string, msg: string) {\n console.log(`[${getSdkName()}][${error}]:${msg}`)\n}\nexport function throwError(error: string, msg: string) {\n throw new Error(JSON.stringify({\n code: error,\n msg: `[${getSdkName()}][${error}]:${msg}`,\n }),)\n}\n\ninterface IPrintGroupLogOptions {\n title: string\n subtitle: string | object\n content: {\n type: 'info' | 'warn' | 'error'\n body: string | Error\n }[]\n printTrace?: boolean\n collapsed?: boolean\n}\nexport function printGroupLog(options: IPrintGroupLogOptions) {\n const { title, subtitle = '', content = [], printTrace = false, collapsed = false } = options\n if (collapsed) {\n (console.groupCollapsed || console.error)(title, subtitle)\n } else {\n (console.group || console.error)(title, subtitle)\n }\n for (const tip of content) {\n const { type, body } = tip\n switch (type) {\n case 'info':\n console.log(body)\n break\n case 'warn':\n console.warn(body)\n break\n case 'error':\n console.error(body)\n break\n }\n }\n if (printTrace) {\n (console.trace || console.log)('stack trace:')\n }\n console.groupEnd?.()\n}\n\nexport const sleep = (ms = 0) => new Promise(r => setTimeout(r, ms))\n\nexport function transformPhone(phoneNumber: string) {\n return `+86${phoneNumber}`\n}\n\nexport const parseQueryString = (queryString) => {\n queryString = queryString.replace(/^\\?/, '')\n const params = {}\n const pairs = queryString.split('&')\n\n pairs.forEach((item) => {\n let [key, value] = item.split('=')\n key = decodeURIComponent(key)\n value = decodeURIComponent(value)\n if (key) {\n if (params[key]) {\n if (Array.isArray(params[key])) {\n params[key].push(value)\n } else {\n params[key] = [params[key], value]\n }\n } else {\n params[key] = value\n }\n }\n })\n\n return params\n}\n\n// 解析URL参数\nexport function parseCaptcha(url) {\n let queryObj: any = {}\n const matched = url.match(/^(data:.*?)(\\?[^#\\s]*)?$/)\n if (matched) {\n // eslint-disable-next-line prefer-destructuring\n url = matched[1]\n const search = matched[2]\n if (search) {\n queryObj = parseQueryString(search)\n }\n }\n const { token, ...restQueryObj } = queryObj\n if (/^data:/.test(url) && !token) {\n return {\n error: 'invalid_argument',\n error_description: `invalid captcha data: ${url}`,\n }\n }\n if (!token) {\n return {\n error: 'unimplemented',\n error_description: 'need to impl captcha data',\n }\n }\n // 解析url得到的参数\n return {\n state: restQueryObj.state,\n token, // 验证码token\n captchaData: url, // 验证码base64图片\n }\n}\n","module.exports = require(\"@cloudbase/adapter-interface\");","module.exports = require(\"@cloudbase/wx-cloud-client-sdk\");","module.exports = require(\"jwt-decode\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(171);\n"],"names":["__exportStar","require","exports","wx_cloud_client_sdk_1","CloudbaseEventEmitter","events","COMPONENT_NAME","cloudbaseModelMap","WeakMap","lazyGetEntity","cloudbase","Proxy","get","_","prop","_a","getEndPointWithKey","BASE_URL","PROTOCOL","key","__assign","entity","_this","callFunction","bind","cloudbaseFetch","request","fetch","baseUrl","concat","sqlBaseUrl","generateHTTPClient","fetchOptions","__awaiter","headers","sent","data","getEntity","set","CLOUDBASE_INIT_EVENT","bus","on","Object","assign","models","component","name","namespace","console","warn","injectEvents","registerComponent","e","registerModel","app","window","RUNTIME","Web","__importStar","util_1","adapters","options","_i","adapterList_1","isArray","length","adapter","isMatch","genAdapter","runtime","WEB","adapter_interface_1","common_1","WebRequest","_super","config","call","timeout","timeoutMsg","restrictedMethods","__extends","prototype","this","method","includes","post","put","upload","file","reqMethod","toLowerCase","formData","FormData","keys","forEach","append","body","download","Promise","responseType","url","URL","createObjectURL","Blob","fileName","decodeURIComponent","pathname","split","pop","link","document","createElement","href","setAttribute","style","display","appendChild","click","revokeObjectURL","removeChild","resolve","statusCode","tempFilePath","abortController","AbortController","_b","enableAbort","_c","stream","signal","_timeout","_d","shouldThrowOnError","aborted","abort","addEventListener","timer","setTimeout","Error","then","response","clearTimeout","ok","reject","json","apply","catch","x","res","_e","text","status","header","String","withCredentials","onUploadProgress","realUrl","formatUrl","getProtocol","ajax","XMLHttpRequest","open","payload","once","setRequestHeader","onreadystatechange","result","readyState","arr","getAllResponseHeaders","trim","headerMap_1","line","parts","shift","value","join","JSON","parse","responseText","isFormData","toQueryString","stringify","undefined","send","AbstractSDKRequest","type","root","reqClass","wsClass","WebSocket","localStorage","sdkName","protocol","INVALID_PARAMS","INVALID_SYNTAX","INVALID_OPERATION","OPERATION_FAIL","NETWORK_ERROR","UNKOWN_ERROR","constants_1","isFirefox","navigator","userAgent","indexOf","REG_STACK_DECORATE","REG_STACK_LINK","getRewritedError","err","className","methodName","sourceLink","innerErr","innerErrStack","stack","REG_STACK_INNER_METHOD","RegExp","REG_STACK_INNER_METHOD_WITHOUT_LINK","indexOfSource","findIndex","str","test","realErrStack","filter","v","i","unshift","replace","mode","customInfo","title","messages","target","descriptor","IS_DEBUG_MODE","constructor","fnName","fn","outterErrStacks","indexOfDecorator","match","exec","getSourceLink","args","arguments","failErr","errMsg","message","error","errorDescription","error_description","logs","content","msg","subtitle","code","map","printGroupLog","err_1","constants","cache","langEvent","utils","helpers","abortController_1","__importDefault","default","jwt","decode","listeners","f","push","TcbCacheObject","tcbCacheObject","setItem","getItem","removeItem","clear","AbstractStorage","CloudbaseCache","persistence","platformInfo","storage","persistenceTag","primaryStorage","printWarn","ERRORS","createStorage","defineProperty","setStore","version","val","getSdkName","info","setStoreAsync","getStore","process","tcb_token","getStoreAsync","removeStore","removeStoreAsync","CloudbaseEvent","IErrorEvent","listener","customeAddEventListener","off","index","splice","customRemoveEventListener","fire","event","isInstanceOf","ev","isString","listens","handlers_1","__spreadArray","eventEmitter","callback","events_1","toString","instance","construct","Math","random","slice","d","Date","getTime","d2","now","c","r","floor","query","urlHasQuery","queryString","encodeURIComponent","u","location","search","reg","substr","matches","hash","sourceURL","rtn","params","cb","promise","throwPromiseNotDefined","log","printTrace","collapsed","groupCollapsed","group","content_1","tip","trace","groupEnd","ms","phoneNumber","item","Array","queryObj","matched","parseQueryString","token","restQueryObj","__rest","state","captchaData","module","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
|