@hairy/wechat-jssdk 1.2.1 → 1.2.2
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 +6 -0
- package/index.cjs.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.esm.js.map +1 -1
- package/index.iife.js.map +1 -1
- package/index.iife.min.js +1 -1
- package/index.iife.min.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/index.cjs.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../index.ts", "../internal/load_script.ts", "../helper.ts"],
|
|
4
|
-
"sourcesContent": ["import * as WxType from 'jweixin'\r\nimport { WechatJssdkHelper, WechatJssdkOptions } from './helper'\r\n\r\n/**\r\n * @description WechatJssdk Api \u5C01\u88C5\uFF0C\u4E0E [jssdk \u6587\u6863](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html) \u4FDD\u6301\u4E00\u81F4\uFF0C\u4E3B\u8981\u4EE5\u4E0B\u6539\u52A8\r\n * @description \u5185\u7F6E\u8BF7\u6C42\uFF0C\u8BFB\u53D6 config \u914D\u7F6E\uFF0C\u521D\u59CB\u5316\u81EA\u52A8\u8C03\u7528 wx.config\r\n * @description \u6240\u6709 api \u7684 promise \u5316\u5904\u7406\uFF08\u4EC5\u7B49\u5F85 wx.ready\uFF09\r\n * @description \u7B80\u6613\u5316\u521D\u59CB\u5316\u6784\u5EFA\uFF0Cconfig \u5904\u7406\r\n * @description \u53EF\u6307\u5B9A\u52A0\u8F7D jssdk \u7248\u672C\uFF08\u9ED8\u8BA4 1.3.0\uFF09\r\n * @template `const wxJssdk = new WechatJssdk({env, config})`\r\n */\r\nclass WechatJssdk extends WechatJssdkHelper {\r\n constructor(options: WechatJssdkOptions) {\r\n super(options)\r\n }\r\n // --- 1.4.0 API start ---\r\n updateAppMessageShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateAppMessageShareData', options)\r\n }\r\n updateTimelineShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateTimelineShareData', options)\r\n }\r\n // --- 1.4.0 API end ---\r\n addCard() {\r\n return this.implement('addCard')\r\n }\r\n checkJsApi(options: WxType.IcheckJsApi) {\r\n return this.implement('checkJsApi', options)\r\n }\r\n chooseCard(options: WxType.IchooseCard) {\r\n return this.implement('chooseCard', options)\r\n }\r\n chooseImage(options: WxType.IchooseImage) {\r\n return this.implement('chooseImage', options)\r\n }\r\n chooseWXPay(options: WxType.IchooseWXPay) {\r\n return this.implement('chooseWXPay', options)\r\n }\r\n closeWindow() {\r\n return this.implement('closeWindow')\r\n }\r\n consumeAndShareCard(options: WxType.IconsumeAndShareCard) {\r\n return this.implement('consumeAndShareCard', options)\r\n }\r\n downloadImage(options: WxType.IdownloadImage) {\r\n return this.implement('downloadImage', options)\r\n }\r\n downloadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('downloadVoice', options)\r\n }\r\n getLocalImgData(options: WxType.IgetLocalImgData) {\r\n return this.implement('getLocalImgData', options)\r\n }\r\n getLocation(options: WxType.IgetLocation) {\r\n return this.implement('getLocation', options)\r\n }\r\n getNetworkType(options: WxType.IgetNetworkType) {\r\n return this.implement('getNetworkType', options)\r\n }\r\n hideAllNonBaseMenuItem() {\r\n return this.implement('hideAllNonBaseMenuItem')\r\n }\r\n hideMenuItems(options: WxType.IhideMenuItems) {\r\n return this.implement('hideMenuItems', options)\r\n }\r\n hideOptionMenu() {\r\n return this.implement('hideOptionMenu')\r\n }\r\n onMenuShareAppMessage(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('onMenuShareAppMessage', options)\r\n }\r\n onMenuShareQQ(options: WxType.IonMenuShareQQ) {\r\n return this.implement('onMenuShareQQ', options)\r\n }\r\n onMenuShareQZone(options: WxType.IonMenuShareQZone) {\r\n return this.implement('onMenuShareQZone', options)\r\n }\r\n onMenuShareTimeline(options: WxType.IonMenuShareTimeline) {\r\n return this.implement('onMenuShareTimeline', options)\r\n }\r\n onMenuShareWeibo(options: WxType.IonMenuShareWeibo) {\r\n return this.implement('onMenuShareWeibo', options)\r\n }\r\n onSearchBeacons(options: WxType.IonSearchBeacons) {\r\n return this.implement('onSearchBeacons', options)\r\n }\r\n onVoicePlayEnd(options: WxType.IonVoicePlayEnd) {\r\n return this.implement('onVoicePlayEnd', options)\r\n }\r\n onVoiceRecordEnd(options: WxType.IonVoiceRecordEnd) {\r\n return this.implement('onVoiceRecordEnd', options)\r\n }\r\n openCard(options: WxType.IopenCard) {\r\n return this.implement('openCard', options)\r\n }\r\n openLocation(options: WxType.IopenLocation) {\r\n return this.implement('openLocation', options)\r\n }\r\n openProductSpecificView(options: WxType.IopenProductSpecificView) {\r\n return this.implement('openProductSpecificView', options)\r\n }\r\n pauseVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('pauseVoice', options)\r\n }\r\n playVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('playVoice', options)\r\n }\r\n previewImage(options: WxType.IpreviewImage) {\r\n return this.implement('previewImage', options)\r\n }\r\n scanQRCode(options: WxType.IscanQRCode) {\r\n return this.implement('scanQRCode', options)\r\n }\r\n showAllNonBaseMenuItem() {\r\n return this.implement('showAllNonBaseMenuItem')\r\n }\r\n showMenuItems(options: WxType.IshowMenuItems) {\r\n return this.implement('showMenuItems', options)\r\n }\r\n showOptionMenu() {\r\n return this.implement('showOptionMenu')\r\n }\r\n startRecord() {\r\n return this.implement('startRecord')\r\n }\r\n startSearchBeacons(options: WxType.IstartSearchBeacons) {\r\n return this.implement('startSearchBeacons', options)\r\n }\r\n stopRecord(options: WxType.IstopRecord) {\r\n return this.implement('stopRecord', options)\r\n }\r\n stopSearchBeacons(options: WxType.IstopSearchBeacons) {\r\n return this.implement('stopSearchBeacons', options)\r\n }\r\n stopVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('stopVoice', options)\r\n }\r\n translateVoice(options: WxType.ItranslateVoice) {\r\n return this.implement('translateVoice', options)\r\n }\r\n uploadImage(options: WxType.IuploadImage) {\r\n return this.implement('uploadImage', options)\r\n }\r\n uploadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('uploadVoice', options)\r\n }\r\n}\r\n\r\nexport { WechatJssdk }\r\n", "import noop from 'lodash/noop'\r\n\r\nexport interface LoadScriptOptions {\r\n /**\r\n * @param waitForScriptLoad Promise \u662F\u5426\u5E94\u8BE5\u5728 <script> \u5C5E\u6027\u53D1\u51FA\u201Cload\u201D\u4E8B\u4EF6\u540E\u89E6\u53D1\uFF0C\u8FD8\u662F\u5728\u5C06\u5176\u9644\u52A0\u5230 DOM \u540E\u7ACB\u5373\u89E6\u53D1\u3002\r\n * @returns Promise<HTMLScriptElement>\r\n */\r\n waitForScriptLoad?: boolean\r\n async?: boolean\r\n type?: string\r\n crossOrigin?: 'anonymous' | 'use-credentials'\r\n referrerPolicy?:\r\n | 'no-referrer'\r\n | 'no-referrer-when-downgrade'\r\n | 'origin'\r\n | 'origin-when-cross-origin'\r\n | 'same-origin'\r\n | 'strict-origin'\r\n | 'strict-origin-when-cross-origin'\r\n | 'unsafe-url'\r\n noModule?: boolean\r\n defer?: boolean\r\n}\r\nexport const loadScript = (\r\n source: string,\r\n onLoaded: (element: HTMLScriptElement) => void = noop,\r\n options: LoadScriptOptions = {}\r\n): Promise<HTMLScriptElement> => {\r\n const {\r\n type = 'text/javascript',\r\n async = true,\r\n crossOrigin,\r\n referrerPolicy,\r\n noModule,\r\n defer,\r\n waitForScriptLoad = true\r\n } = options\r\n\r\n return new Promise((resolve, reject) => {\r\n // Local variable defining if the <script> tag should be appended or not.\r\n let shouldAppend = false\r\n\r\n let element = document.querySelector(`script[src=\"${source}\"]`) as HTMLScriptElement\r\n\r\n // Script tag not found, preparing the element for appending\r\n if (!element) {\r\n element = document.createElement('script')\r\n element.type = type\r\n element.async = async\r\n element.src = source\r\n\r\n // Optional attributes\r\n if (defer) element.defer = defer\r\n if (crossOrigin) element.crossOrigin = crossOrigin\r\n if (noModule) element.noModule = noModule\r\n if (referrerPolicy) element.referrerPolicy = referrerPolicy\r\n\r\n // Enables shouldAppend\r\n shouldAppend = true\r\n }\r\n // Script tag already exists, resolve the loading Promise with it.\r\n else if (Object.hasOwn(element.dataset, 'loaded')) {\r\n resolve(element)\r\n }\r\n\r\n // Event listeners\r\n element.addEventListener('error', (event) => reject(event))\r\n element.addEventListener('abort', (event) => reject(event))\r\n element.addEventListener('load', () => {\r\n element.dataset.loaded = 'true'\r\n onLoaded(element)\r\n resolve(element)\r\n })\r\n\r\n // Append the <script> tag to head.\r\n if (shouldAppend) {\r\n // eslint-disable-next-line unicorn/prefer-dom-node-append\r\n element = document.head.appendChild(element)\r\n }\r\n\r\n // If script load awaiting isn't needed, we can resolve the Promise.\r\n if (!waitForScriptLoad) {\r\n resolve(element)\r\n }\r\n })\r\n}\r\n", "import * as WxType from 'jweixin'\r\nimport { loadScript } from './internal/load_script'\r\n\r\ndeclare module 'jweixin' {\r\n type v4ApiMethod = 'updateTimelineShareData' | 'updateAppMessageShareData'\r\n export function config(config_: {\r\n debug?: boolean | undefined // \u5F00\u542F\u8C03\u8BD5\u6A21\u5F0F,\u8C03\u7528\u7684\u6240\u6709api\u7684\u8FD4\u56DE\u503C\u4F1A\u5728\u5BA2\u6237\u7AEFalert\u51FA\u6765\uFF0C\u82E5\u8981\u67E5\u770B\u4F20\u5165\u7684\u53C2\u6570\uFF0C\u53EF\u4EE5\u5728pc\u7AEF\u6253\u5F00\uFF0C\u53C2\u6570\u4FE1\u606F\u4F1A\u901A\u8FC7log\u6253\u51FA\uFF0C\u4EC5\u5728pc\u7AEF\u65F6\u624D\u4F1A\u6253\u5370\u3002\r\n appId: string // \u5FC5\u586B\uFF0C\u516C\u4F17\u53F7\u7684\u552F\u4E00\u6807\u8BC6\r\n timestamp: number // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u65F6\u95F4\u6233\r\n nonceStr: string // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u968F\u673A\u4E32\r\n signature: string // \u5FC5\u586B\uFF0C\u7B7E\u540D\uFF0C\u89C1\u9644\u5F551\r\n jsApiList: (WxType.ApiMethod & v4ApiMethod)[] // \u5FC5\u586B\uFF0C\u9700\u8981\u4F7F\u7528\u7684JS\u63A5\u53E3\u5217\u8868\uFF0C\u6240\u6709JS\u63A5\u53E3\u5217\u8868\u89C1\u9644\u5F552\r\n }): void\r\n}\r\n\r\ndeclare const wx: typeof WxType\r\n\r\nexport type WechatJssdkConfig = Omit<Parameters<typeof wx.config>[0], 'catch' | 'finally' | 'then'>\r\n\r\n/** \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\u5FAE\u4FE1 jssdk wx.config \u53C2\u6570 */\r\nexport type WechatJssdkConfigFunction = () => WechatJssdkConfig | Promise<WechatJssdkConfig>\r\nexport interface WechatJssdkOptions {\r\n /**\r\n * \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\r\n */\r\n requestConfig: () => Promise<WechatJssdkConfig>\r\n /**\r\n * \u662F\u5426\u7ACB\u5373\u52A0\u8F7D config\r\n *\r\n * @default true\r\n */\r\n immediate?: boolean\r\n /**\r\n * wechat-jssdk \u7248\u672C\r\n *\r\n * @default 1.3.0\r\n */\r\n version?: '1.2.0' | '1.3.0' | '1.4.0' | '1.5.0' | '1.6.0'\r\n}\r\n\r\n/**\r\n * jssdk \u7684\u524D\u7F6E\u5904\u7406\u7C7B\r\n * @constructor \u52A0\u8F7D\u914D\u7F6E\uFF08apiHost\uFF0CappId\uFF0Cconfig\uFF0Cversion\uFF0Cjssdk\uFF09\r\n * @function implement \u63D0\u4F9B wxApi \u6267\u884C\u5668\uFF08\u7B49\u5F85 config \u4E0E ready \u7ED3\u675F\uFF0C\u5728\u8C03\u7528 api\uFF09\r\n * @function config \u52A0\u8F7D\u914D\u7F6E\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n * @function ready wx.rady\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n */\r\nexport class WechatJssdkHelper {\r\n private version: string\r\n\r\n private isReady = false\r\n\r\n private requestConfig: () => Promise<WechatJssdkConfig>\r\n\r\n private loadPromise?: Promise<void>\r\n private configPromise?: Promise<void>\r\n private readyPromise?: Promise<void>\r\n\r\n private loadJssdk() {\r\n const scriptUrl = `https://res.wx.qq.com/open/js/jweixin-${this.version}.js`\r\n this.loadPromise = loadScript(scriptUrl).then(() => {\r\n this.loadPromise = undefined\r\n })\r\n }\r\n\r\n constructor(options: WechatJssdkOptions) {\r\n const { immediate = true, version, requestConfig } = options\r\n\r\n this.version = version || '1.3.0'\r\n this.requestConfig = requestConfig\r\n\r\n this.loadJssdk()\r\n\r\n if (immediate) this.config()\r\n }\r\n\r\n async config() {\r\n if (this.configPromise) return this.configPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n this.configPromise = (async () => {\r\n wx.config(await this.requestConfig())\r\n })()\r\n\r\n return this.configPromise\r\n }\r\n async ready() {\r\n if (this.readyPromise) return this.readyPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n if (this.isReady) return\r\n\r\n this.readyPromise = new Promise<void>((resolve, reject) => {\r\n wx.ready(() => {\r\n this.isReady = true\r\n this.readyPromise = undefined\r\n resolve()\r\n })\r\n wx.error((error) => {\r\n this.isReady = false\r\n this.readyPromise = undefined\r\n reject(error)\r\n })\r\n })\r\n\r\n return this.readyPromise\r\n }\r\n async error() {\r\n return this.ready().catch((error) => error)\r\n }\r\n\r\n protected async implement<Key extends keyof typeof wx | string>(key: Key, options?: any) {\r\n if (this.configPromise) {\r\n await this.configPromise\r\n }\r\n await this.ready()\r\n ;(wx as any)[key](options)\r\n }\r\n}\r\n"],
|
|
4
|
+
"sourcesContent": ["import * as WxType from 'jweixin'\r\nimport { WechatJssdkHelper, WechatJssdkOptions } from './helper'\r\n\r\n/**\r\n * @description WechatJssdk Api \u5C01\u88C5\uFF0C\u4E0E [jssdk \u6587\u6863](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html) \u4FDD\u6301\u4E00\u81F4\uFF0C\u4E3B\u8981\u4EE5\u4E0B\u6539\u52A8\r\n * @description \u5185\u7F6E\u8BF7\u6C42\uFF0C\u8BFB\u53D6 config \u914D\u7F6E\uFF0C\u521D\u59CB\u5316\u81EA\u52A8\u8C03\u7528 wx.config\r\n * @description \u6240\u6709 api \u7684 promise \u5316\u5904\u7406\uFF08\u4EC5\u7B49\u5F85 wx.ready\uFF09\r\n * @description \u7B80\u6613\u5316\u521D\u59CB\u5316\u6784\u5EFA\uFF0Cconfig \u5904\u7406\r\n * @description \u53EF\u6307\u5B9A\u52A0\u8F7D jssdk \u7248\u672C\uFF08\u9ED8\u8BA4 1.3.0\uFF09\r\n * @template `const wxJssdk = new WechatJssdk({env, config})`\r\n */\r\nclass WechatJssdk extends WechatJssdkHelper {\r\n constructor(options: WechatJssdkOptions) {\r\n super(options)\r\n }\r\n // --- 1.4.0 API start ---\r\n updateAppMessageShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateAppMessageShareData', options)\r\n }\r\n updateTimelineShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateTimelineShareData', options)\r\n }\r\n // --- 1.4.0 API end ---\r\n addCard() {\r\n return this.implement('addCard')\r\n }\r\n checkJsApi(options: WxType.IcheckJsApi) {\r\n return this.implement('checkJsApi', options)\r\n }\r\n chooseCard(options: WxType.IchooseCard) {\r\n return this.implement('chooseCard', options)\r\n }\r\n chooseImage(options: WxType.IchooseImage) {\r\n return this.implement('chooseImage', options)\r\n }\r\n chooseWXPay(options: WxType.IchooseWXPay) {\r\n return this.implement('chooseWXPay', options)\r\n }\r\n closeWindow() {\r\n return this.implement('closeWindow')\r\n }\r\n consumeAndShareCard(options: WxType.IconsumeAndShareCard) {\r\n return this.implement('consumeAndShareCard', options)\r\n }\r\n downloadImage(options: WxType.IdownloadImage) {\r\n return this.implement('downloadImage', options)\r\n }\r\n downloadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('downloadVoice', options)\r\n }\r\n getLocalImgData(options: WxType.IgetLocalImgData) {\r\n return this.implement('getLocalImgData', options)\r\n }\r\n getLocation(options: WxType.IgetLocation) {\r\n return this.implement('getLocation', options)\r\n }\r\n getNetworkType(options: WxType.IgetNetworkType) {\r\n return this.implement('getNetworkType', options)\r\n }\r\n hideAllNonBaseMenuItem() {\r\n return this.implement('hideAllNonBaseMenuItem')\r\n }\r\n hideMenuItems(options: WxType.IhideMenuItems) {\r\n return this.implement('hideMenuItems', options)\r\n }\r\n hideOptionMenu() {\r\n return this.implement('hideOptionMenu')\r\n }\r\n onMenuShareAppMessage(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('onMenuShareAppMessage', options)\r\n }\r\n onMenuShareQQ(options: WxType.IonMenuShareQQ) {\r\n return this.implement('onMenuShareQQ', options)\r\n }\r\n onMenuShareQZone(options: WxType.IonMenuShareQZone) {\r\n return this.implement('onMenuShareQZone', options)\r\n }\r\n onMenuShareTimeline(options: WxType.IonMenuShareTimeline) {\r\n return this.implement('onMenuShareTimeline', options)\r\n }\r\n onMenuShareWeibo(options: WxType.IonMenuShareWeibo) {\r\n return this.implement('onMenuShareWeibo', options)\r\n }\r\n onSearchBeacons(options: WxType.IonSearchBeacons) {\r\n return this.implement('onSearchBeacons', options)\r\n }\r\n onVoicePlayEnd(options: WxType.IonVoicePlayEnd) {\r\n return this.implement('onVoicePlayEnd', options)\r\n }\r\n onVoiceRecordEnd(options: WxType.IonVoiceRecordEnd) {\r\n return this.implement('onVoiceRecordEnd', options)\r\n }\r\n openCard(options: WxType.IopenCard) {\r\n return this.implement('openCard', options)\r\n }\r\n openLocation(options: WxType.IopenLocation) {\r\n return this.implement('openLocation', options)\r\n }\r\n openProductSpecificView(options: WxType.IopenProductSpecificView) {\r\n return this.implement('openProductSpecificView', options)\r\n }\r\n pauseVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('pauseVoice', options)\r\n }\r\n playVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('playVoice', options)\r\n }\r\n previewImage(options: WxType.IpreviewImage) {\r\n return this.implement('previewImage', options)\r\n }\r\n scanQRCode(options: WxType.IscanQRCode) {\r\n return this.implement('scanQRCode', options)\r\n }\r\n showAllNonBaseMenuItem() {\r\n return this.implement('showAllNonBaseMenuItem')\r\n }\r\n showMenuItems(options: WxType.IshowMenuItems) {\r\n return this.implement('showMenuItems', options)\r\n }\r\n showOptionMenu() {\r\n return this.implement('showOptionMenu')\r\n }\r\n startRecord() {\r\n return this.implement('startRecord')\r\n }\r\n startSearchBeacons(options: WxType.IstartSearchBeacons) {\r\n return this.implement('startSearchBeacons', options)\r\n }\r\n stopRecord(options: WxType.IstopRecord) {\r\n return this.implement('stopRecord', options)\r\n }\r\n stopSearchBeacons(options: WxType.IstopSearchBeacons) {\r\n return this.implement('stopSearchBeacons', options)\r\n }\r\n stopVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('stopVoice', options)\r\n }\r\n translateVoice(options: WxType.ItranslateVoice) {\r\n return this.implement('translateVoice', options)\r\n }\r\n uploadImage(options: WxType.IuploadImage) {\r\n return this.implement('uploadImage', options)\r\n }\r\n uploadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('uploadVoice', options)\r\n }\r\n}\r\n\r\nexport { WechatJssdk }\r\n", "import noop from 'lodash/noop'\r\n\r\nexport interface LoadScriptOptions {\r\n /**\r\n * @param waitForScriptLoad Promise \u662F\u5426\u5E94\u8BE5\u5728 <script> \u5C5E\u6027\u53D1\u51FA\u201Cload\u201D\u4E8B\u4EF6\u540E\u89E6\u53D1\uFF0C\u8FD8\u662F\u5728\u5C06\u5176\u9644\u52A0\u5230 DOM \u540E\u7ACB\u5373\u89E6\u53D1\u3002\r\n * @returns Promise<HTMLScriptElement>\r\n */\r\n waitForScriptLoad?: boolean\r\n async?: boolean\r\n type?: string\r\n crossOrigin?: 'anonymous' | 'use-credentials'\r\n referrerPolicy?:\r\n | 'no-referrer'\r\n | 'no-referrer-when-downgrade'\r\n | 'origin'\r\n | 'origin-when-cross-origin'\r\n | 'same-origin'\r\n | 'strict-origin'\r\n | 'strict-origin-when-cross-origin'\r\n | 'unsafe-url'\r\n noModule?: boolean\r\n defer?: boolean\r\n}\r\nexport const loadScript = (\r\n source: string,\r\n onLoaded: (element: HTMLScriptElement) => void = noop,\r\n options: LoadScriptOptions = {}\r\n): Promise<HTMLScriptElement> => {\r\n const {\r\n type = 'text/javascript',\r\n async = true,\r\n crossOrigin,\r\n referrerPolicy,\r\n noModule,\r\n defer,\r\n waitForScriptLoad = true\r\n } = options\r\n\r\n return new Promise((resolve, reject) => {\r\n // Local variable defining if the <script> tag should be appended or not.\r\n let shouldAppend = false\r\n\r\n let element = document.querySelector(`script[src=\"${source}\"]`) as HTMLScriptElement\r\n\r\n // Script tag not found, preparing the element for appending\r\n if (!element) {\r\n element = document.createElement('script')\r\n element.type = type\r\n element.async = async\r\n element.src = source\r\n\r\n // Optional attributes\r\n if (defer) element.defer = defer\r\n if (crossOrigin) element.crossOrigin = crossOrigin\r\n if (noModule) element.noModule = noModule\r\n if (referrerPolicy) element.referrerPolicy = referrerPolicy\r\n\r\n // Enables shouldAppend\r\n shouldAppend = true\r\n }\r\n // Script tag already exists, resolve the loading Promise with it.\r\n else if (Object.hasOwn(element.dataset, 'loaded')) {\r\n resolve(element)\r\n }\r\n\r\n // Event listeners\r\n element.addEventListener('error', (event) => reject(event))\r\n element.addEventListener('abort', (event) => reject(event))\r\n element.addEventListener('load', () => {\r\n element.dataset.loaded = 'true'\r\n onLoaded(element)\r\n resolve(element)\r\n })\r\n\r\n // Append the <script> tag to head.\r\n if (shouldAppend) {\r\n // eslint-disable-next-line unicorn/prefer-dom-node-append\r\n element = document.head.appendChild(element)\r\n }\r\n\r\n // If script load awaiting isn't needed, we can resolve the Promise.\r\n if (!waitForScriptLoad) {\r\n resolve(element)\r\n }\r\n })\r\n}\r\n", "import * as WxType from 'jweixin'\r\nimport { loadScript } from './internal/load_script'\r\n\r\ndeclare module 'jweixin' {\r\n type v4ApiMethod = 'updateTimelineShareData' | 'updateAppMessageShareData'\r\n export function config(config_: {\r\n debug?: boolean | undefined // \u5F00\u542F\u8C03\u8BD5\u6A21\u5F0F,\u8C03\u7528\u7684\u6240\u6709api\u7684\u8FD4\u56DE\u503C\u4F1A\u5728\u5BA2\u6237\u7AEFalert\u51FA\u6765\uFF0C\u82E5\u8981\u67E5\u770B\u4F20\u5165\u7684\u53C2\u6570\uFF0C\u53EF\u4EE5\u5728pc\u7AEF\u6253\u5F00\uFF0C\u53C2\u6570\u4FE1\u606F\u4F1A\u901A\u8FC7log\u6253\u51FA\uFF0C\u4EC5\u5728pc\u7AEF\u65F6\u624D\u4F1A\u6253\u5370\u3002\r\n appId: string // \u5FC5\u586B\uFF0C\u516C\u4F17\u53F7\u7684\u552F\u4E00\u6807\u8BC6\r\n timestamp: number // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u65F6\u95F4\u6233\r\n nonceStr: string // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u968F\u673A\u4E32\r\n signature: string // \u5FC5\u586B\uFF0C\u7B7E\u540D\uFF0C\u89C1\u9644\u5F551\r\n jsApiList: (WxType.ApiMethod | v4ApiMethod)[] // \u5FC5\u586B\uFF0C\u9700\u8981\u4F7F\u7528\u7684JS\u63A5\u53E3\u5217\u8868\uFF0C\u6240\u6709JS\u63A5\u53E3\u5217\u8868\u89C1\u9644\u5F552\r\n }): void\r\n}\r\n\r\ndeclare const wx: typeof WxType\r\n\r\nexport type WechatJssdkConfig = Omit<Parameters<typeof wx.config>[0], 'catch' | 'finally' | 'then'>\r\n\r\n/** \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\u5FAE\u4FE1 jssdk wx.config \u53C2\u6570 */\r\nexport type WechatJssdkConfigFunction = () => WechatJssdkConfig | Promise<WechatJssdkConfig>\r\nexport interface WechatJssdkOptions {\r\n /**\r\n * \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\r\n */\r\n requestConfig: () => Promise<WechatJssdkConfig> | WechatJssdkConfig\r\n /**\r\n * \u662F\u5426\u7ACB\u5373\u52A0\u8F7D config\r\n *\r\n * @default true\r\n */\r\n immediate?: boolean\r\n /**\r\n * wechat-jssdk \u7248\u672C\r\n *\r\n * @default 1.3.0\r\n */\r\n version?: '1.2.0' | '1.3.0' | '1.4.0' | '1.5.0' | '1.6.0'\r\n}\r\n\r\n/**\r\n * jssdk \u7684\u524D\u7F6E\u5904\u7406\u7C7B\r\n * @constructor \u52A0\u8F7D\u914D\u7F6E\uFF08apiHost\uFF0CappId\uFF0Cconfig\uFF0Cversion\uFF0Cjssdk\uFF09\r\n * @function implement \u63D0\u4F9B wxApi \u6267\u884C\u5668\uFF08\u7B49\u5F85 config \u4E0E ready \u7ED3\u675F\uFF0C\u5728\u8C03\u7528 api\uFF09\r\n * @function config \u52A0\u8F7D\u914D\u7F6E\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n * @function ready wx.rady\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n */\r\nexport class WechatJssdkHelper {\r\n private version: string\r\n\r\n private isReady = false\r\n\r\n private requestConfig: WechatJssdkOptions['requestConfig']\r\n\r\n private loadPromise?: Promise<void>\r\n private configPromise?: Promise<void>\r\n private readyPromise?: Promise<void>\r\n\r\n private loadJssdk() {\r\n const scriptUrl = `https://res.wx.qq.com/open/js/jweixin-${this.version}.js`\r\n this.loadPromise = loadScript(scriptUrl).then(() => {\r\n this.loadPromise = undefined\r\n })\r\n }\r\n\r\n constructor(options: WechatJssdkOptions) {\r\n const { immediate = true, version, requestConfig } = options\r\n\r\n this.version = version || '1.3.0'\r\n this.requestConfig = requestConfig\r\n\r\n this.loadJssdk()\r\n\r\n if (immediate) this.config()\r\n }\r\n\r\n async config() {\r\n if (this.configPromise) return this.configPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n this.configPromise = (async () => {\r\n wx.config(await this.requestConfig())\r\n })()\r\n\r\n return this.configPromise\r\n }\r\n async ready() {\r\n if (this.readyPromise) return this.readyPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n if (this.isReady) return\r\n\r\n this.readyPromise = new Promise<void>((resolve, reject) => {\r\n wx.ready(() => {\r\n this.isReady = true\r\n this.readyPromise = undefined\r\n resolve()\r\n })\r\n wx.error((error) => {\r\n this.isReady = false\r\n this.readyPromise = undefined\r\n reject(error)\r\n })\r\n })\r\n\r\n return this.readyPromise\r\n }\r\n async error() {\r\n return this.ready().catch((error) => error)\r\n }\r\n\r\n protected async implement<Key extends keyof typeof wx | string>(key: Key, options?: any) {\r\n if (this.configPromise) {\r\n await this.configPromise\r\n }\r\n await this.ready()\r\n ;(wx as any)[key](options)\r\n }\r\n}\r\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ declare module 'jweixin' {
|
|
|
8
8
|
timestamp: number;
|
|
9
9
|
nonceStr: string;
|
|
10
10
|
signature: string;
|
|
11
|
-
jsApiList: (WxType.ApiMethod
|
|
11
|
+
jsApiList: (WxType.ApiMethod | v4ApiMethod)[];
|
|
12
12
|
}): void;
|
|
13
13
|
}
|
|
14
14
|
declare const wx: typeof WxType;
|
|
@@ -17,7 +17,7 @@ interface WechatJssdkOptions {
|
|
|
17
17
|
/**
|
|
18
18
|
* 初始化请求配置
|
|
19
19
|
*/
|
|
20
|
-
requestConfig: () => Promise<WechatJssdkConfig
|
|
20
|
+
requestConfig: () => Promise<WechatJssdkConfig> | WechatJssdkConfig;
|
|
21
21
|
/**
|
|
22
22
|
* 是否立即加载 config
|
|
23
23
|
*
|
package/index.esm.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../internal/load_script.ts", "../helper.ts", "../index.ts"],
|
|
4
|
-
"sourcesContent": ["import noop from 'lodash/noop'\r\n\r\nexport interface LoadScriptOptions {\r\n /**\r\n * @param waitForScriptLoad Promise \u662F\u5426\u5E94\u8BE5\u5728 <script> \u5C5E\u6027\u53D1\u51FA\u201Cload\u201D\u4E8B\u4EF6\u540E\u89E6\u53D1\uFF0C\u8FD8\u662F\u5728\u5C06\u5176\u9644\u52A0\u5230 DOM \u540E\u7ACB\u5373\u89E6\u53D1\u3002\r\n * @returns Promise<HTMLScriptElement>\r\n */\r\n waitForScriptLoad?: boolean\r\n async?: boolean\r\n type?: string\r\n crossOrigin?: 'anonymous' | 'use-credentials'\r\n referrerPolicy?:\r\n | 'no-referrer'\r\n | 'no-referrer-when-downgrade'\r\n | 'origin'\r\n | 'origin-when-cross-origin'\r\n | 'same-origin'\r\n | 'strict-origin'\r\n | 'strict-origin-when-cross-origin'\r\n | 'unsafe-url'\r\n noModule?: boolean\r\n defer?: boolean\r\n}\r\nexport const loadScript = (\r\n source: string,\r\n onLoaded: (element: HTMLScriptElement) => void = noop,\r\n options: LoadScriptOptions = {}\r\n): Promise<HTMLScriptElement> => {\r\n const {\r\n type = 'text/javascript',\r\n async = true,\r\n crossOrigin,\r\n referrerPolicy,\r\n noModule,\r\n defer,\r\n waitForScriptLoad = true\r\n } = options\r\n\r\n return new Promise((resolve, reject) => {\r\n // Local variable defining if the <script> tag should be appended or not.\r\n let shouldAppend = false\r\n\r\n let element = document.querySelector(`script[src=\"${source}\"]`) as HTMLScriptElement\r\n\r\n // Script tag not found, preparing the element for appending\r\n if (!element) {\r\n element = document.createElement('script')\r\n element.type = type\r\n element.async = async\r\n element.src = source\r\n\r\n // Optional attributes\r\n if (defer) element.defer = defer\r\n if (crossOrigin) element.crossOrigin = crossOrigin\r\n if (noModule) element.noModule = noModule\r\n if (referrerPolicy) element.referrerPolicy = referrerPolicy\r\n\r\n // Enables shouldAppend\r\n shouldAppend = true\r\n }\r\n // Script tag already exists, resolve the loading Promise with it.\r\n else if (Object.hasOwn(element.dataset, 'loaded')) {\r\n resolve(element)\r\n }\r\n\r\n // Event listeners\r\n element.addEventListener('error', (event) => reject(event))\r\n element.addEventListener('abort', (event) => reject(event))\r\n element.addEventListener('load', () => {\r\n element.dataset.loaded = 'true'\r\n onLoaded(element)\r\n resolve(element)\r\n })\r\n\r\n // Append the <script> tag to head.\r\n if (shouldAppend) {\r\n // eslint-disable-next-line unicorn/prefer-dom-node-append\r\n element = document.head.appendChild(element)\r\n }\r\n\r\n // If script load awaiting isn't needed, we can resolve the Promise.\r\n if (!waitForScriptLoad) {\r\n resolve(element)\r\n }\r\n })\r\n}\r\n", "import * as WxType from 'jweixin'\r\nimport { loadScript } from './internal/load_script'\r\n\r\ndeclare module 'jweixin' {\r\n type v4ApiMethod = 'updateTimelineShareData' | 'updateAppMessageShareData'\r\n export function config(config_: {\r\n debug?: boolean | undefined // \u5F00\u542F\u8C03\u8BD5\u6A21\u5F0F,\u8C03\u7528\u7684\u6240\u6709api\u7684\u8FD4\u56DE\u503C\u4F1A\u5728\u5BA2\u6237\u7AEFalert\u51FA\u6765\uFF0C\u82E5\u8981\u67E5\u770B\u4F20\u5165\u7684\u53C2\u6570\uFF0C\u53EF\u4EE5\u5728pc\u7AEF\u6253\u5F00\uFF0C\u53C2\u6570\u4FE1\u606F\u4F1A\u901A\u8FC7log\u6253\u51FA\uFF0C\u4EC5\u5728pc\u7AEF\u65F6\u624D\u4F1A\u6253\u5370\u3002\r\n appId: string // \u5FC5\u586B\uFF0C\u516C\u4F17\u53F7\u7684\u552F\u4E00\u6807\u8BC6\r\n timestamp: number // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u65F6\u95F4\u6233\r\n nonceStr: string // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u968F\u673A\u4E32\r\n signature: string // \u5FC5\u586B\uFF0C\u7B7E\u540D\uFF0C\u89C1\u9644\u5F551\r\n jsApiList: (WxType.ApiMethod & v4ApiMethod)[] // \u5FC5\u586B\uFF0C\u9700\u8981\u4F7F\u7528\u7684JS\u63A5\u53E3\u5217\u8868\uFF0C\u6240\u6709JS\u63A5\u53E3\u5217\u8868\u89C1\u9644\u5F552\r\n }): void\r\n}\r\n\r\ndeclare const wx: typeof WxType\r\n\r\nexport type WechatJssdkConfig = Omit<Parameters<typeof wx.config>[0], 'catch' | 'finally' | 'then'>\r\n\r\n/** \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\u5FAE\u4FE1 jssdk wx.config \u53C2\u6570 */\r\nexport type WechatJssdkConfigFunction = () => WechatJssdkConfig | Promise<WechatJssdkConfig>\r\nexport interface WechatJssdkOptions {\r\n /**\r\n * \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\r\n */\r\n requestConfig: () => Promise<WechatJssdkConfig>\r\n /**\r\n * \u662F\u5426\u7ACB\u5373\u52A0\u8F7D config\r\n *\r\n * @default true\r\n */\r\n immediate?: boolean\r\n /**\r\n * wechat-jssdk \u7248\u672C\r\n *\r\n * @default 1.3.0\r\n */\r\n version?: '1.2.0' | '1.3.0' | '1.4.0' | '1.5.0' | '1.6.0'\r\n}\r\n\r\n/**\r\n * jssdk \u7684\u524D\u7F6E\u5904\u7406\u7C7B\r\n * @constructor \u52A0\u8F7D\u914D\u7F6E\uFF08apiHost\uFF0CappId\uFF0Cconfig\uFF0Cversion\uFF0Cjssdk\uFF09\r\n * @function implement \u63D0\u4F9B wxApi \u6267\u884C\u5668\uFF08\u7B49\u5F85 config \u4E0E ready \u7ED3\u675F\uFF0C\u5728\u8C03\u7528 api\uFF09\r\n * @function config \u52A0\u8F7D\u914D\u7F6E\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n * @function ready wx.rady\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n */\r\nexport class WechatJssdkHelper {\r\n private version: string\r\n\r\n private isReady = false\r\n\r\n private requestConfig: () => Promise<WechatJssdkConfig>\r\n\r\n private loadPromise?: Promise<void>\r\n private configPromise?: Promise<void>\r\n private readyPromise?: Promise<void>\r\n\r\n private loadJssdk() {\r\n const scriptUrl = `https://res.wx.qq.com/open/js/jweixin-${this.version}.js`\r\n this.loadPromise = loadScript(scriptUrl).then(() => {\r\n this.loadPromise = undefined\r\n })\r\n }\r\n\r\n constructor(options: WechatJssdkOptions) {\r\n const { immediate = true, version, requestConfig } = options\r\n\r\n this.version = version || '1.3.0'\r\n this.requestConfig = requestConfig\r\n\r\n this.loadJssdk()\r\n\r\n if (immediate) this.config()\r\n }\r\n\r\n async config() {\r\n if (this.configPromise) return this.configPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n this.configPromise = (async () => {\r\n wx.config(await this.requestConfig())\r\n })()\r\n\r\n return this.configPromise\r\n }\r\n async ready() {\r\n if (this.readyPromise) return this.readyPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n if (this.isReady) return\r\n\r\n this.readyPromise = new Promise<void>((resolve, reject) => {\r\n wx.ready(() => {\r\n this.isReady = true\r\n this.readyPromise = undefined\r\n resolve()\r\n })\r\n wx.error((error) => {\r\n this.isReady = false\r\n this.readyPromise = undefined\r\n reject(error)\r\n })\r\n })\r\n\r\n return this.readyPromise\r\n }\r\n async error() {\r\n return this.ready().catch((error) => error)\r\n }\r\n\r\n protected async implement<Key extends keyof typeof wx | string>(key: Key, options?: any) {\r\n if (this.configPromise) {\r\n await this.configPromise\r\n }\r\n await this.ready()\r\n ;(wx as any)[key](options)\r\n }\r\n}\r\n", "import * as WxType from 'jweixin'\r\nimport { WechatJssdkHelper, WechatJssdkOptions } from './helper'\r\n\r\n/**\r\n * @description WechatJssdk Api \u5C01\u88C5\uFF0C\u4E0E [jssdk \u6587\u6863](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html) \u4FDD\u6301\u4E00\u81F4\uFF0C\u4E3B\u8981\u4EE5\u4E0B\u6539\u52A8\r\n * @description \u5185\u7F6E\u8BF7\u6C42\uFF0C\u8BFB\u53D6 config \u914D\u7F6E\uFF0C\u521D\u59CB\u5316\u81EA\u52A8\u8C03\u7528 wx.config\r\n * @description \u6240\u6709 api \u7684 promise \u5316\u5904\u7406\uFF08\u4EC5\u7B49\u5F85 wx.ready\uFF09\r\n * @description \u7B80\u6613\u5316\u521D\u59CB\u5316\u6784\u5EFA\uFF0Cconfig \u5904\u7406\r\n * @description \u53EF\u6307\u5B9A\u52A0\u8F7D jssdk \u7248\u672C\uFF08\u9ED8\u8BA4 1.3.0\uFF09\r\n * @template `const wxJssdk = new WechatJssdk({env, config})`\r\n */\r\nclass WechatJssdk extends WechatJssdkHelper {\r\n constructor(options: WechatJssdkOptions) {\r\n super(options)\r\n }\r\n // --- 1.4.0 API start ---\r\n updateAppMessageShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateAppMessageShareData', options)\r\n }\r\n updateTimelineShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateTimelineShareData', options)\r\n }\r\n // --- 1.4.0 API end ---\r\n addCard() {\r\n return this.implement('addCard')\r\n }\r\n checkJsApi(options: WxType.IcheckJsApi) {\r\n return this.implement('checkJsApi', options)\r\n }\r\n chooseCard(options: WxType.IchooseCard) {\r\n return this.implement('chooseCard', options)\r\n }\r\n chooseImage(options: WxType.IchooseImage) {\r\n return this.implement('chooseImage', options)\r\n }\r\n chooseWXPay(options: WxType.IchooseWXPay) {\r\n return this.implement('chooseWXPay', options)\r\n }\r\n closeWindow() {\r\n return this.implement('closeWindow')\r\n }\r\n consumeAndShareCard(options: WxType.IconsumeAndShareCard) {\r\n return this.implement('consumeAndShareCard', options)\r\n }\r\n downloadImage(options: WxType.IdownloadImage) {\r\n return this.implement('downloadImage', options)\r\n }\r\n downloadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('downloadVoice', options)\r\n }\r\n getLocalImgData(options: WxType.IgetLocalImgData) {\r\n return this.implement('getLocalImgData', options)\r\n }\r\n getLocation(options: WxType.IgetLocation) {\r\n return this.implement('getLocation', options)\r\n }\r\n getNetworkType(options: WxType.IgetNetworkType) {\r\n return this.implement('getNetworkType', options)\r\n }\r\n hideAllNonBaseMenuItem() {\r\n return this.implement('hideAllNonBaseMenuItem')\r\n }\r\n hideMenuItems(options: WxType.IhideMenuItems) {\r\n return this.implement('hideMenuItems', options)\r\n }\r\n hideOptionMenu() {\r\n return this.implement('hideOptionMenu')\r\n }\r\n onMenuShareAppMessage(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('onMenuShareAppMessage', options)\r\n }\r\n onMenuShareQQ(options: WxType.IonMenuShareQQ) {\r\n return this.implement('onMenuShareQQ', options)\r\n }\r\n onMenuShareQZone(options: WxType.IonMenuShareQZone) {\r\n return this.implement('onMenuShareQZone', options)\r\n }\r\n onMenuShareTimeline(options: WxType.IonMenuShareTimeline) {\r\n return this.implement('onMenuShareTimeline', options)\r\n }\r\n onMenuShareWeibo(options: WxType.IonMenuShareWeibo) {\r\n return this.implement('onMenuShareWeibo', options)\r\n }\r\n onSearchBeacons(options: WxType.IonSearchBeacons) {\r\n return this.implement('onSearchBeacons', options)\r\n }\r\n onVoicePlayEnd(options: WxType.IonVoicePlayEnd) {\r\n return this.implement('onVoicePlayEnd', options)\r\n }\r\n onVoiceRecordEnd(options: WxType.IonVoiceRecordEnd) {\r\n return this.implement('onVoiceRecordEnd', options)\r\n }\r\n openCard(options: WxType.IopenCard) {\r\n return this.implement('openCard', options)\r\n }\r\n openLocation(options: WxType.IopenLocation) {\r\n return this.implement('openLocation', options)\r\n }\r\n openProductSpecificView(options: WxType.IopenProductSpecificView) {\r\n return this.implement('openProductSpecificView', options)\r\n }\r\n pauseVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('pauseVoice', options)\r\n }\r\n playVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('playVoice', options)\r\n }\r\n previewImage(options: WxType.IpreviewImage) {\r\n return this.implement('previewImage', options)\r\n }\r\n scanQRCode(options: WxType.IscanQRCode) {\r\n return this.implement('scanQRCode', options)\r\n }\r\n showAllNonBaseMenuItem() {\r\n return this.implement('showAllNonBaseMenuItem')\r\n }\r\n showMenuItems(options: WxType.IshowMenuItems) {\r\n return this.implement('showMenuItems', options)\r\n }\r\n showOptionMenu() {\r\n return this.implement('showOptionMenu')\r\n }\r\n startRecord() {\r\n return this.implement('startRecord')\r\n }\r\n startSearchBeacons(options: WxType.IstartSearchBeacons) {\r\n return this.implement('startSearchBeacons', options)\r\n }\r\n stopRecord(options: WxType.IstopRecord) {\r\n return this.implement('stopRecord', options)\r\n }\r\n stopSearchBeacons(options: WxType.IstopSearchBeacons) {\r\n return this.implement('stopSearchBeacons', options)\r\n }\r\n stopVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('stopVoice', options)\r\n }\r\n translateVoice(options: WxType.ItranslateVoice) {\r\n return this.implement('translateVoice', options)\r\n }\r\n uploadImage(options: WxType.IuploadImage) {\r\n return this.implement('uploadImage', options)\r\n }\r\n uploadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('uploadVoice', options)\r\n }\r\n}\r\n\r\nexport { WechatJssdk }\r\n"],
|
|
4
|
+
"sourcesContent": ["import noop from 'lodash/noop'\r\n\r\nexport interface LoadScriptOptions {\r\n /**\r\n * @param waitForScriptLoad Promise \u662F\u5426\u5E94\u8BE5\u5728 <script> \u5C5E\u6027\u53D1\u51FA\u201Cload\u201D\u4E8B\u4EF6\u540E\u89E6\u53D1\uFF0C\u8FD8\u662F\u5728\u5C06\u5176\u9644\u52A0\u5230 DOM \u540E\u7ACB\u5373\u89E6\u53D1\u3002\r\n * @returns Promise<HTMLScriptElement>\r\n */\r\n waitForScriptLoad?: boolean\r\n async?: boolean\r\n type?: string\r\n crossOrigin?: 'anonymous' | 'use-credentials'\r\n referrerPolicy?:\r\n | 'no-referrer'\r\n | 'no-referrer-when-downgrade'\r\n | 'origin'\r\n | 'origin-when-cross-origin'\r\n | 'same-origin'\r\n | 'strict-origin'\r\n | 'strict-origin-when-cross-origin'\r\n | 'unsafe-url'\r\n noModule?: boolean\r\n defer?: boolean\r\n}\r\nexport const loadScript = (\r\n source: string,\r\n onLoaded: (element: HTMLScriptElement) => void = noop,\r\n options: LoadScriptOptions = {}\r\n): Promise<HTMLScriptElement> => {\r\n const {\r\n type = 'text/javascript',\r\n async = true,\r\n crossOrigin,\r\n referrerPolicy,\r\n noModule,\r\n defer,\r\n waitForScriptLoad = true\r\n } = options\r\n\r\n return new Promise((resolve, reject) => {\r\n // Local variable defining if the <script> tag should be appended or not.\r\n let shouldAppend = false\r\n\r\n let element = document.querySelector(`script[src=\"${source}\"]`) as HTMLScriptElement\r\n\r\n // Script tag not found, preparing the element for appending\r\n if (!element) {\r\n element = document.createElement('script')\r\n element.type = type\r\n element.async = async\r\n element.src = source\r\n\r\n // Optional attributes\r\n if (defer) element.defer = defer\r\n if (crossOrigin) element.crossOrigin = crossOrigin\r\n if (noModule) element.noModule = noModule\r\n if (referrerPolicy) element.referrerPolicy = referrerPolicy\r\n\r\n // Enables shouldAppend\r\n shouldAppend = true\r\n }\r\n // Script tag already exists, resolve the loading Promise with it.\r\n else if (Object.hasOwn(element.dataset, 'loaded')) {\r\n resolve(element)\r\n }\r\n\r\n // Event listeners\r\n element.addEventListener('error', (event) => reject(event))\r\n element.addEventListener('abort', (event) => reject(event))\r\n element.addEventListener('load', () => {\r\n element.dataset.loaded = 'true'\r\n onLoaded(element)\r\n resolve(element)\r\n })\r\n\r\n // Append the <script> tag to head.\r\n if (shouldAppend) {\r\n // eslint-disable-next-line unicorn/prefer-dom-node-append\r\n element = document.head.appendChild(element)\r\n }\r\n\r\n // If script load awaiting isn't needed, we can resolve the Promise.\r\n if (!waitForScriptLoad) {\r\n resolve(element)\r\n }\r\n })\r\n}\r\n", "import * as WxType from 'jweixin'\r\nimport { loadScript } from './internal/load_script'\r\n\r\ndeclare module 'jweixin' {\r\n type v4ApiMethod = 'updateTimelineShareData' | 'updateAppMessageShareData'\r\n export function config(config_: {\r\n debug?: boolean | undefined // \u5F00\u542F\u8C03\u8BD5\u6A21\u5F0F,\u8C03\u7528\u7684\u6240\u6709api\u7684\u8FD4\u56DE\u503C\u4F1A\u5728\u5BA2\u6237\u7AEFalert\u51FA\u6765\uFF0C\u82E5\u8981\u67E5\u770B\u4F20\u5165\u7684\u53C2\u6570\uFF0C\u53EF\u4EE5\u5728pc\u7AEF\u6253\u5F00\uFF0C\u53C2\u6570\u4FE1\u606F\u4F1A\u901A\u8FC7log\u6253\u51FA\uFF0C\u4EC5\u5728pc\u7AEF\u65F6\u624D\u4F1A\u6253\u5370\u3002\r\n appId: string // \u5FC5\u586B\uFF0C\u516C\u4F17\u53F7\u7684\u552F\u4E00\u6807\u8BC6\r\n timestamp: number // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u65F6\u95F4\u6233\r\n nonceStr: string // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u968F\u673A\u4E32\r\n signature: string // \u5FC5\u586B\uFF0C\u7B7E\u540D\uFF0C\u89C1\u9644\u5F551\r\n jsApiList: (WxType.ApiMethod | v4ApiMethod)[] // \u5FC5\u586B\uFF0C\u9700\u8981\u4F7F\u7528\u7684JS\u63A5\u53E3\u5217\u8868\uFF0C\u6240\u6709JS\u63A5\u53E3\u5217\u8868\u89C1\u9644\u5F552\r\n }): void\r\n}\r\n\r\ndeclare const wx: typeof WxType\r\n\r\nexport type WechatJssdkConfig = Omit<Parameters<typeof wx.config>[0], 'catch' | 'finally' | 'then'>\r\n\r\n/** \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\u5FAE\u4FE1 jssdk wx.config \u53C2\u6570 */\r\nexport type WechatJssdkConfigFunction = () => WechatJssdkConfig | Promise<WechatJssdkConfig>\r\nexport interface WechatJssdkOptions {\r\n /**\r\n * \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\r\n */\r\n requestConfig: () => Promise<WechatJssdkConfig> | WechatJssdkConfig\r\n /**\r\n * \u662F\u5426\u7ACB\u5373\u52A0\u8F7D config\r\n *\r\n * @default true\r\n */\r\n immediate?: boolean\r\n /**\r\n * wechat-jssdk \u7248\u672C\r\n *\r\n * @default 1.3.0\r\n */\r\n version?: '1.2.0' | '1.3.0' | '1.4.0' | '1.5.0' | '1.6.0'\r\n}\r\n\r\n/**\r\n * jssdk \u7684\u524D\u7F6E\u5904\u7406\u7C7B\r\n * @constructor \u52A0\u8F7D\u914D\u7F6E\uFF08apiHost\uFF0CappId\uFF0Cconfig\uFF0Cversion\uFF0Cjssdk\uFF09\r\n * @function implement \u63D0\u4F9B wxApi \u6267\u884C\u5668\uFF08\u7B49\u5F85 config \u4E0E ready \u7ED3\u675F\uFF0C\u5728\u8C03\u7528 api\uFF09\r\n * @function config \u52A0\u8F7D\u914D\u7F6E\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n * @function ready wx.rady\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n */\r\nexport class WechatJssdkHelper {\r\n private version: string\r\n\r\n private isReady = false\r\n\r\n private requestConfig: WechatJssdkOptions['requestConfig']\r\n\r\n private loadPromise?: Promise<void>\r\n private configPromise?: Promise<void>\r\n private readyPromise?: Promise<void>\r\n\r\n private loadJssdk() {\r\n const scriptUrl = `https://res.wx.qq.com/open/js/jweixin-${this.version}.js`\r\n this.loadPromise = loadScript(scriptUrl).then(() => {\r\n this.loadPromise = undefined\r\n })\r\n }\r\n\r\n constructor(options: WechatJssdkOptions) {\r\n const { immediate = true, version, requestConfig } = options\r\n\r\n this.version = version || '1.3.0'\r\n this.requestConfig = requestConfig\r\n\r\n this.loadJssdk()\r\n\r\n if (immediate) this.config()\r\n }\r\n\r\n async config() {\r\n if (this.configPromise) return this.configPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n this.configPromise = (async () => {\r\n wx.config(await this.requestConfig())\r\n })()\r\n\r\n return this.configPromise\r\n }\r\n async ready() {\r\n if (this.readyPromise) return this.readyPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n if (this.isReady) return\r\n\r\n this.readyPromise = new Promise<void>((resolve, reject) => {\r\n wx.ready(() => {\r\n this.isReady = true\r\n this.readyPromise = undefined\r\n resolve()\r\n })\r\n wx.error((error) => {\r\n this.isReady = false\r\n this.readyPromise = undefined\r\n reject(error)\r\n })\r\n })\r\n\r\n return this.readyPromise\r\n }\r\n async error() {\r\n return this.ready().catch((error) => error)\r\n }\r\n\r\n protected async implement<Key extends keyof typeof wx | string>(key: Key, options?: any) {\r\n if (this.configPromise) {\r\n await this.configPromise\r\n }\r\n await this.ready()\r\n ;(wx as any)[key](options)\r\n }\r\n}\r\n", "import * as WxType from 'jweixin'\r\nimport { WechatJssdkHelper, WechatJssdkOptions } from './helper'\r\n\r\n/**\r\n * @description WechatJssdk Api \u5C01\u88C5\uFF0C\u4E0E [jssdk \u6587\u6863](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html) \u4FDD\u6301\u4E00\u81F4\uFF0C\u4E3B\u8981\u4EE5\u4E0B\u6539\u52A8\r\n * @description \u5185\u7F6E\u8BF7\u6C42\uFF0C\u8BFB\u53D6 config \u914D\u7F6E\uFF0C\u521D\u59CB\u5316\u81EA\u52A8\u8C03\u7528 wx.config\r\n * @description \u6240\u6709 api \u7684 promise \u5316\u5904\u7406\uFF08\u4EC5\u7B49\u5F85 wx.ready\uFF09\r\n * @description \u7B80\u6613\u5316\u521D\u59CB\u5316\u6784\u5EFA\uFF0Cconfig \u5904\u7406\r\n * @description \u53EF\u6307\u5B9A\u52A0\u8F7D jssdk \u7248\u672C\uFF08\u9ED8\u8BA4 1.3.0\uFF09\r\n * @template `const wxJssdk = new WechatJssdk({env, config})`\r\n */\r\nclass WechatJssdk extends WechatJssdkHelper {\r\n constructor(options: WechatJssdkOptions) {\r\n super(options)\r\n }\r\n // --- 1.4.0 API start ---\r\n updateAppMessageShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateAppMessageShareData', options)\r\n }\r\n updateTimelineShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateTimelineShareData', options)\r\n }\r\n // --- 1.4.0 API end ---\r\n addCard() {\r\n return this.implement('addCard')\r\n }\r\n checkJsApi(options: WxType.IcheckJsApi) {\r\n return this.implement('checkJsApi', options)\r\n }\r\n chooseCard(options: WxType.IchooseCard) {\r\n return this.implement('chooseCard', options)\r\n }\r\n chooseImage(options: WxType.IchooseImage) {\r\n return this.implement('chooseImage', options)\r\n }\r\n chooseWXPay(options: WxType.IchooseWXPay) {\r\n return this.implement('chooseWXPay', options)\r\n }\r\n closeWindow() {\r\n return this.implement('closeWindow')\r\n }\r\n consumeAndShareCard(options: WxType.IconsumeAndShareCard) {\r\n return this.implement('consumeAndShareCard', options)\r\n }\r\n downloadImage(options: WxType.IdownloadImage) {\r\n return this.implement('downloadImage', options)\r\n }\r\n downloadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('downloadVoice', options)\r\n }\r\n getLocalImgData(options: WxType.IgetLocalImgData) {\r\n return this.implement('getLocalImgData', options)\r\n }\r\n getLocation(options: WxType.IgetLocation) {\r\n return this.implement('getLocation', options)\r\n }\r\n getNetworkType(options: WxType.IgetNetworkType) {\r\n return this.implement('getNetworkType', options)\r\n }\r\n hideAllNonBaseMenuItem() {\r\n return this.implement('hideAllNonBaseMenuItem')\r\n }\r\n hideMenuItems(options: WxType.IhideMenuItems) {\r\n return this.implement('hideMenuItems', options)\r\n }\r\n hideOptionMenu() {\r\n return this.implement('hideOptionMenu')\r\n }\r\n onMenuShareAppMessage(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('onMenuShareAppMessage', options)\r\n }\r\n onMenuShareQQ(options: WxType.IonMenuShareQQ) {\r\n return this.implement('onMenuShareQQ', options)\r\n }\r\n onMenuShareQZone(options: WxType.IonMenuShareQZone) {\r\n return this.implement('onMenuShareQZone', options)\r\n }\r\n onMenuShareTimeline(options: WxType.IonMenuShareTimeline) {\r\n return this.implement('onMenuShareTimeline', options)\r\n }\r\n onMenuShareWeibo(options: WxType.IonMenuShareWeibo) {\r\n return this.implement('onMenuShareWeibo', options)\r\n }\r\n onSearchBeacons(options: WxType.IonSearchBeacons) {\r\n return this.implement('onSearchBeacons', options)\r\n }\r\n onVoicePlayEnd(options: WxType.IonVoicePlayEnd) {\r\n return this.implement('onVoicePlayEnd', options)\r\n }\r\n onVoiceRecordEnd(options: WxType.IonVoiceRecordEnd) {\r\n return this.implement('onVoiceRecordEnd', options)\r\n }\r\n openCard(options: WxType.IopenCard) {\r\n return this.implement('openCard', options)\r\n }\r\n openLocation(options: WxType.IopenLocation) {\r\n return this.implement('openLocation', options)\r\n }\r\n openProductSpecificView(options: WxType.IopenProductSpecificView) {\r\n return this.implement('openProductSpecificView', options)\r\n }\r\n pauseVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('pauseVoice', options)\r\n }\r\n playVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('playVoice', options)\r\n }\r\n previewImage(options: WxType.IpreviewImage) {\r\n return this.implement('previewImage', options)\r\n }\r\n scanQRCode(options: WxType.IscanQRCode) {\r\n return this.implement('scanQRCode', options)\r\n }\r\n showAllNonBaseMenuItem() {\r\n return this.implement('showAllNonBaseMenuItem')\r\n }\r\n showMenuItems(options: WxType.IshowMenuItems) {\r\n return this.implement('showMenuItems', options)\r\n }\r\n showOptionMenu() {\r\n return this.implement('showOptionMenu')\r\n }\r\n startRecord() {\r\n return this.implement('startRecord')\r\n }\r\n startSearchBeacons(options: WxType.IstartSearchBeacons) {\r\n return this.implement('startSearchBeacons', options)\r\n }\r\n stopRecord(options: WxType.IstopRecord) {\r\n return this.implement('stopRecord', options)\r\n }\r\n stopSearchBeacons(options: WxType.IstopSearchBeacons) {\r\n return this.implement('stopSearchBeacons', options)\r\n }\r\n stopVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('stopVoice', options)\r\n }\r\n translateVoice(options: WxType.ItranslateVoice) {\r\n return this.implement('translateVoice', options)\r\n }\r\n uploadImage(options: WxType.IuploadImage) {\r\n return this.implement('uploadImage', options)\r\n }\r\n uploadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('uploadVoice', options)\r\n }\r\n}\r\n\r\nexport { WechatJssdk }\r\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/index.iife.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../index.ts", "../internal/load_script.ts", "../helper.ts"],
|
|
4
|
-
"sourcesContent": ["import * as WxType from 'jweixin'\r\nimport { WechatJssdkHelper, WechatJssdkOptions } from './helper'\r\n\r\n/**\r\n * @description WechatJssdk Api \u5C01\u88C5\uFF0C\u4E0E [jssdk \u6587\u6863](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html) \u4FDD\u6301\u4E00\u81F4\uFF0C\u4E3B\u8981\u4EE5\u4E0B\u6539\u52A8\r\n * @description \u5185\u7F6E\u8BF7\u6C42\uFF0C\u8BFB\u53D6 config \u914D\u7F6E\uFF0C\u521D\u59CB\u5316\u81EA\u52A8\u8C03\u7528 wx.config\r\n * @description \u6240\u6709 api \u7684 promise \u5316\u5904\u7406\uFF08\u4EC5\u7B49\u5F85 wx.ready\uFF09\r\n * @description \u7B80\u6613\u5316\u521D\u59CB\u5316\u6784\u5EFA\uFF0Cconfig \u5904\u7406\r\n * @description \u53EF\u6307\u5B9A\u52A0\u8F7D jssdk \u7248\u672C\uFF08\u9ED8\u8BA4 1.3.0\uFF09\r\n * @template `const wxJssdk = new WechatJssdk({env, config})`\r\n */\r\nclass WechatJssdk extends WechatJssdkHelper {\r\n constructor(options: WechatJssdkOptions) {\r\n super(options)\r\n }\r\n // --- 1.4.0 API start ---\r\n updateAppMessageShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateAppMessageShareData', options)\r\n }\r\n updateTimelineShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateTimelineShareData', options)\r\n }\r\n // --- 1.4.0 API end ---\r\n addCard() {\r\n return this.implement('addCard')\r\n }\r\n checkJsApi(options: WxType.IcheckJsApi) {\r\n return this.implement('checkJsApi', options)\r\n }\r\n chooseCard(options: WxType.IchooseCard) {\r\n return this.implement('chooseCard', options)\r\n }\r\n chooseImage(options: WxType.IchooseImage) {\r\n return this.implement('chooseImage', options)\r\n }\r\n chooseWXPay(options: WxType.IchooseWXPay) {\r\n return this.implement('chooseWXPay', options)\r\n }\r\n closeWindow() {\r\n return this.implement('closeWindow')\r\n }\r\n consumeAndShareCard(options: WxType.IconsumeAndShareCard) {\r\n return this.implement('consumeAndShareCard', options)\r\n }\r\n downloadImage(options: WxType.IdownloadImage) {\r\n return this.implement('downloadImage', options)\r\n }\r\n downloadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('downloadVoice', options)\r\n }\r\n getLocalImgData(options: WxType.IgetLocalImgData) {\r\n return this.implement('getLocalImgData', options)\r\n }\r\n getLocation(options: WxType.IgetLocation) {\r\n return this.implement('getLocation', options)\r\n }\r\n getNetworkType(options: WxType.IgetNetworkType) {\r\n return this.implement('getNetworkType', options)\r\n }\r\n hideAllNonBaseMenuItem() {\r\n return this.implement('hideAllNonBaseMenuItem')\r\n }\r\n hideMenuItems(options: WxType.IhideMenuItems) {\r\n return this.implement('hideMenuItems', options)\r\n }\r\n hideOptionMenu() {\r\n return this.implement('hideOptionMenu')\r\n }\r\n onMenuShareAppMessage(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('onMenuShareAppMessage', options)\r\n }\r\n onMenuShareQQ(options: WxType.IonMenuShareQQ) {\r\n return this.implement('onMenuShareQQ', options)\r\n }\r\n onMenuShareQZone(options: WxType.IonMenuShareQZone) {\r\n return this.implement('onMenuShareQZone', options)\r\n }\r\n onMenuShareTimeline(options: WxType.IonMenuShareTimeline) {\r\n return this.implement('onMenuShareTimeline', options)\r\n }\r\n onMenuShareWeibo(options: WxType.IonMenuShareWeibo) {\r\n return this.implement('onMenuShareWeibo', options)\r\n }\r\n onSearchBeacons(options: WxType.IonSearchBeacons) {\r\n return this.implement('onSearchBeacons', options)\r\n }\r\n onVoicePlayEnd(options: WxType.IonVoicePlayEnd) {\r\n return this.implement('onVoicePlayEnd', options)\r\n }\r\n onVoiceRecordEnd(options: WxType.IonVoiceRecordEnd) {\r\n return this.implement('onVoiceRecordEnd', options)\r\n }\r\n openCard(options: WxType.IopenCard) {\r\n return this.implement('openCard', options)\r\n }\r\n openLocation(options: WxType.IopenLocation) {\r\n return this.implement('openLocation', options)\r\n }\r\n openProductSpecificView(options: WxType.IopenProductSpecificView) {\r\n return this.implement('openProductSpecificView', options)\r\n }\r\n pauseVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('pauseVoice', options)\r\n }\r\n playVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('playVoice', options)\r\n }\r\n previewImage(options: WxType.IpreviewImage) {\r\n return this.implement('previewImage', options)\r\n }\r\n scanQRCode(options: WxType.IscanQRCode) {\r\n return this.implement('scanQRCode', options)\r\n }\r\n showAllNonBaseMenuItem() {\r\n return this.implement('showAllNonBaseMenuItem')\r\n }\r\n showMenuItems(options: WxType.IshowMenuItems) {\r\n return this.implement('showMenuItems', options)\r\n }\r\n showOptionMenu() {\r\n return this.implement('showOptionMenu')\r\n }\r\n startRecord() {\r\n return this.implement('startRecord')\r\n }\r\n startSearchBeacons(options: WxType.IstartSearchBeacons) {\r\n return this.implement('startSearchBeacons', options)\r\n }\r\n stopRecord(options: WxType.IstopRecord) {\r\n return this.implement('stopRecord', options)\r\n }\r\n stopSearchBeacons(options: WxType.IstopSearchBeacons) {\r\n return this.implement('stopSearchBeacons', options)\r\n }\r\n stopVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('stopVoice', options)\r\n }\r\n translateVoice(options: WxType.ItranslateVoice) {\r\n return this.implement('translateVoice', options)\r\n }\r\n uploadImage(options: WxType.IuploadImage) {\r\n return this.implement('uploadImage', options)\r\n }\r\n uploadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('uploadVoice', options)\r\n }\r\n}\r\n\r\nexport { WechatJssdk }\r\n", "import noop from 'lodash/noop'\r\n\r\nexport interface LoadScriptOptions {\r\n /**\r\n * @param waitForScriptLoad Promise \u662F\u5426\u5E94\u8BE5\u5728 <script> \u5C5E\u6027\u53D1\u51FA\u201Cload\u201D\u4E8B\u4EF6\u540E\u89E6\u53D1\uFF0C\u8FD8\u662F\u5728\u5C06\u5176\u9644\u52A0\u5230 DOM \u540E\u7ACB\u5373\u89E6\u53D1\u3002\r\n * @returns Promise<HTMLScriptElement>\r\n */\r\n waitForScriptLoad?: boolean\r\n async?: boolean\r\n type?: string\r\n crossOrigin?: 'anonymous' | 'use-credentials'\r\n referrerPolicy?:\r\n | 'no-referrer'\r\n | 'no-referrer-when-downgrade'\r\n | 'origin'\r\n | 'origin-when-cross-origin'\r\n | 'same-origin'\r\n | 'strict-origin'\r\n | 'strict-origin-when-cross-origin'\r\n | 'unsafe-url'\r\n noModule?: boolean\r\n defer?: boolean\r\n}\r\nexport const loadScript = (\r\n source: string,\r\n onLoaded: (element: HTMLScriptElement) => void = noop,\r\n options: LoadScriptOptions = {}\r\n): Promise<HTMLScriptElement> => {\r\n const {\r\n type = 'text/javascript',\r\n async = true,\r\n crossOrigin,\r\n referrerPolicy,\r\n noModule,\r\n defer,\r\n waitForScriptLoad = true\r\n } = options\r\n\r\n return new Promise((resolve, reject) => {\r\n // Local variable defining if the <script> tag should be appended or not.\r\n let shouldAppend = false\r\n\r\n let element = document.querySelector(`script[src=\"${source}\"]`) as HTMLScriptElement\r\n\r\n // Script tag not found, preparing the element for appending\r\n if (!element) {\r\n element = document.createElement('script')\r\n element.type = type\r\n element.async = async\r\n element.src = source\r\n\r\n // Optional attributes\r\n if (defer) element.defer = defer\r\n if (crossOrigin) element.crossOrigin = crossOrigin\r\n if (noModule) element.noModule = noModule\r\n if (referrerPolicy) element.referrerPolicy = referrerPolicy\r\n\r\n // Enables shouldAppend\r\n shouldAppend = true\r\n }\r\n // Script tag already exists, resolve the loading Promise with it.\r\n else if (Object.hasOwn(element.dataset, 'loaded')) {\r\n resolve(element)\r\n }\r\n\r\n // Event listeners\r\n element.addEventListener('error', (event) => reject(event))\r\n element.addEventListener('abort', (event) => reject(event))\r\n element.addEventListener('load', () => {\r\n element.dataset.loaded = 'true'\r\n onLoaded(element)\r\n resolve(element)\r\n })\r\n\r\n // Append the <script> tag to head.\r\n if (shouldAppend) {\r\n // eslint-disable-next-line unicorn/prefer-dom-node-append\r\n element = document.head.appendChild(element)\r\n }\r\n\r\n // If script load awaiting isn't needed, we can resolve the Promise.\r\n if (!waitForScriptLoad) {\r\n resolve(element)\r\n }\r\n })\r\n}\r\n", "import * as WxType from 'jweixin'\r\nimport { loadScript } from './internal/load_script'\r\n\r\ndeclare module 'jweixin' {\r\n type v4ApiMethod = 'updateTimelineShareData' | 'updateAppMessageShareData'\r\n export function config(config_: {\r\n debug?: boolean | undefined // \u5F00\u542F\u8C03\u8BD5\u6A21\u5F0F,\u8C03\u7528\u7684\u6240\u6709api\u7684\u8FD4\u56DE\u503C\u4F1A\u5728\u5BA2\u6237\u7AEFalert\u51FA\u6765\uFF0C\u82E5\u8981\u67E5\u770B\u4F20\u5165\u7684\u53C2\u6570\uFF0C\u53EF\u4EE5\u5728pc\u7AEF\u6253\u5F00\uFF0C\u53C2\u6570\u4FE1\u606F\u4F1A\u901A\u8FC7log\u6253\u51FA\uFF0C\u4EC5\u5728pc\u7AEF\u65F6\u624D\u4F1A\u6253\u5370\u3002\r\n appId: string // \u5FC5\u586B\uFF0C\u516C\u4F17\u53F7\u7684\u552F\u4E00\u6807\u8BC6\r\n timestamp: number // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u65F6\u95F4\u6233\r\n nonceStr: string // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u968F\u673A\u4E32\r\n signature: string // \u5FC5\u586B\uFF0C\u7B7E\u540D\uFF0C\u89C1\u9644\u5F551\r\n jsApiList: (WxType.ApiMethod & v4ApiMethod)[] // \u5FC5\u586B\uFF0C\u9700\u8981\u4F7F\u7528\u7684JS\u63A5\u53E3\u5217\u8868\uFF0C\u6240\u6709JS\u63A5\u53E3\u5217\u8868\u89C1\u9644\u5F552\r\n }): void\r\n}\r\n\r\ndeclare const wx: typeof WxType\r\n\r\nexport type WechatJssdkConfig = Omit<Parameters<typeof wx.config>[0], 'catch' | 'finally' | 'then'>\r\n\r\n/** \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\u5FAE\u4FE1 jssdk wx.config \u53C2\u6570 */\r\nexport type WechatJssdkConfigFunction = () => WechatJssdkConfig | Promise<WechatJssdkConfig>\r\nexport interface WechatJssdkOptions {\r\n /**\r\n * \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\r\n */\r\n requestConfig: () => Promise<WechatJssdkConfig>\r\n /**\r\n * \u662F\u5426\u7ACB\u5373\u52A0\u8F7D config\r\n *\r\n * @default true\r\n */\r\n immediate?: boolean\r\n /**\r\n * wechat-jssdk \u7248\u672C\r\n *\r\n * @default 1.3.0\r\n */\r\n version?: '1.2.0' | '1.3.0' | '1.4.0' | '1.5.0' | '1.6.0'\r\n}\r\n\r\n/**\r\n * jssdk \u7684\u524D\u7F6E\u5904\u7406\u7C7B\r\n * @constructor \u52A0\u8F7D\u914D\u7F6E\uFF08apiHost\uFF0CappId\uFF0Cconfig\uFF0Cversion\uFF0Cjssdk\uFF09\r\n * @function implement \u63D0\u4F9B wxApi \u6267\u884C\u5668\uFF08\u7B49\u5F85 config \u4E0E ready \u7ED3\u675F\uFF0C\u5728\u8C03\u7528 api\uFF09\r\n * @function config \u52A0\u8F7D\u914D\u7F6E\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n * @function ready wx.rady\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n */\r\nexport class WechatJssdkHelper {\r\n private version: string\r\n\r\n private isReady = false\r\n\r\n private requestConfig: () => Promise<WechatJssdkConfig>\r\n\r\n private loadPromise?: Promise<void>\r\n private configPromise?: Promise<void>\r\n private readyPromise?: Promise<void>\r\n\r\n private loadJssdk() {\r\n const scriptUrl = `https://res.wx.qq.com/open/js/jweixin-${this.version}.js`\r\n this.loadPromise = loadScript(scriptUrl).then(() => {\r\n this.loadPromise = undefined\r\n })\r\n }\r\n\r\n constructor(options: WechatJssdkOptions) {\r\n const { immediate = true, version, requestConfig } = options\r\n\r\n this.version = version || '1.3.0'\r\n this.requestConfig = requestConfig\r\n\r\n this.loadJssdk()\r\n\r\n if (immediate) this.config()\r\n }\r\n\r\n async config() {\r\n if (this.configPromise) return this.configPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n this.configPromise = (async () => {\r\n wx.config(await this.requestConfig())\r\n })()\r\n\r\n return this.configPromise\r\n }\r\n async ready() {\r\n if (this.readyPromise) return this.readyPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n if (this.isReady) return\r\n\r\n this.readyPromise = new Promise<void>((resolve, reject) => {\r\n wx.ready(() => {\r\n this.isReady = true\r\n this.readyPromise = undefined\r\n resolve()\r\n })\r\n wx.error((error) => {\r\n this.isReady = false\r\n this.readyPromise = undefined\r\n reject(error)\r\n })\r\n })\r\n\r\n return this.readyPromise\r\n }\r\n async error() {\r\n return this.ready().catch((error) => error)\r\n }\r\n\r\n protected async implement<Key extends keyof typeof wx | string>(key: Key, options?: any) {\r\n if (this.configPromise) {\r\n await this.configPromise\r\n }\r\n await this.ready()\r\n ;(wx as any)[key](options)\r\n }\r\n}\r\n"],
|
|
4
|
+
"sourcesContent": ["import * as WxType from 'jweixin'\r\nimport { WechatJssdkHelper, WechatJssdkOptions } from './helper'\r\n\r\n/**\r\n * @description WechatJssdk Api \u5C01\u88C5\uFF0C\u4E0E [jssdk \u6587\u6863](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html) \u4FDD\u6301\u4E00\u81F4\uFF0C\u4E3B\u8981\u4EE5\u4E0B\u6539\u52A8\r\n * @description \u5185\u7F6E\u8BF7\u6C42\uFF0C\u8BFB\u53D6 config \u914D\u7F6E\uFF0C\u521D\u59CB\u5316\u81EA\u52A8\u8C03\u7528 wx.config\r\n * @description \u6240\u6709 api \u7684 promise \u5316\u5904\u7406\uFF08\u4EC5\u7B49\u5F85 wx.ready\uFF09\r\n * @description \u7B80\u6613\u5316\u521D\u59CB\u5316\u6784\u5EFA\uFF0Cconfig \u5904\u7406\r\n * @description \u53EF\u6307\u5B9A\u52A0\u8F7D jssdk \u7248\u672C\uFF08\u9ED8\u8BA4 1.3.0\uFF09\r\n * @template `const wxJssdk = new WechatJssdk({env, config})`\r\n */\r\nclass WechatJssdk extends WechatJssdkHelper {\r\n constructor(options: WechatJssdkOptions) {\r\n super(options)\r\n }\r\n // --- 1.4.0 API start ---\r\n updateAppMessageShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateAppMessageShareData', options)\r\n }\r\n updateTimelineShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateTimelineShareData', options)\r\n }\r\n // --- 1.4.0 API end ---\r\n addCard() {\r\n return this.implement('addCard')\r\n }\r\n checkJsApi(options: WxType.IcheckJsApi) {\r\n return this.implement('checkJsApi', options)\r\n }\r\n chooseCard(options: WxType.IchooseCard) {\r\n return this.implement('chooseCard', options)\r\n }\r\n chooseImage(options: WxType.IchooseImage) {\r\n return this.implement('chooseImage', options)\r\n }\r\n chooseWXPay(options: WxType.IchooseWXPay) {\r\n return this.implement('chooseWXPay', options)\r\n }\r\n closeWindow() {\r\n return this.implement('closeWindow')\r\n }\r\n consumeAndShareCard(options: WxType.IconsumeAndShareCard) {\r\n return this.implement('consumeAndShareCard', options)\r\n }\r\n downloadImage(options: WxType.IdownloadImage) {\r\n return this.implement('downloadImage', options)\r\n }\r\n downloadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('downloadVoice', options)\r\n }\r\n getLocalImgData(options: WxType.IgetLocalImgData) {\r\n return this.implement('getLocalImgData', options)\r\n }\r\n getLocation(options: WxType.IgetLocation) {\r\n return this.implement('getLocation', options)\r\n }\r\n getNetworkType(options: WxType.IgetNetworkType) {\r\n return this.implement('getNetworkType', options)\r\n }\r\n hideAllNonBaseMenuItem() {\r\n return this.implement('hideAllNonBaseMenuItem')\r\n }\r\n hideMenuItems(options: WxType.IhideMenuItems) {\r\n return this.implement('hideMenuItems', options)\r\n }\r\n hideOptionMenu() {\r\n return this.implement('hideOptionMenu')\r\n }\r\n onMenuShareAppMessage(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('onMenuShareAppMessage', options)\r\n }\r\n onMenuShareQQ(options: WxType.IonMenuShareQQ) {\r\n return this.implement('onMenuShareQQ', options)\r\n }\r\n onMenuShareQZone(options: WxType.IonMenuShareQZone) {\r\n return this.implement('onMenuShareQZone', options)\r\n }\r\n onMenuShareTimeline(options: WxType.IonMenuShareTimeline) {\r\n return this.implement('onMenuShareTimeline', options)\r\n }\r\n onMenuShareWeibo(options: WxType.IonMenuShareWeibo) {\r\n return this.implement('onMenuShareWeibo', options)\r\n }\r\n onSearchBeacons(options: WxType.IonSearchBeacons) {\r\n return this.implement('onSearchBeacons', options)\r\n }\r\n onVoicePlayEnd(options: WxType.IonVoicePlayEnd) {\r\n return this.implement('onVoicePlayEnd', options)\r\n }\r\n onVoiceRecordEnd(options: WxType.IonVoiceRecordEnd) {\r\n return this.implement('onVoiceRecordEnd', options)\r\n }\r\n openCard(options: WxType.IopenCard) {\r\n return this.implement('openCard', options)\r\n }\r\n openLocation(options: WxType.IopenLocation) {\r\n return this.implement('openLocation', options)\r\n }\r\n openProductSpecificView(options: WxType.IopenProductSpecificView) {\r\n return this.implement('openProductSpecificView', options)\r\n }\r\n pauseVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('pauseVoice', options)\r\n }\r\n playVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('playVoice', options)\r\n }\r\n previewImage(options: WxType.IpreviewImage) {\r\n return this.implement('previewImage', options)\r\n }\r\n scanQRCode(options: WxType.IscanQRCode) {\r\n return this.implement('scanQRCode', options)\r\n }\r\n showAllNonBaseMenuItem() {\r\n return this.implement('showAllNonBaseMenuItem')\r\n }\r\n showMenuItems(options: WxType.IshowMenuItems) {\r\n return this.implement('showMenuItems', options)\r\n }\r\n showOptionMenu() {\r\n return this.implement('showOptionMenu')\r\n }\r\n startRecord() {\r\n return this.implement('startRecord')\r\n }\r\n startSearchBeacons(options: WxType.IstartSearchBeacons) {\r\n return this.implement('startSearchBeacons', options)\r\n }\r\n stopRecord(options: WxType.IstopRecord) {\r\n return this.implement('stopRecord', options)\r\n }\r\n stopSearchBeacons(options: WxType.IstopSearchBeacons) {\r\n return this.implement('stopSearchBeacons', options)\r\n }\r\n stopVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('stopVoice', options)\r\n }\r\n translateVoice(options: WxType.ItranslateVoice) {\r\n return this.implement('translateVoice', options)\r\n }\r\n uploadImage(options: WxType.IuploadImage) {\r\n return this.implement('uploadImage', options)\r\n }\r\n uploadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('uploadVoice', options)\r\n }\r\n}\r\n\r\nexport { WechatJssdk }\r\n", "import noop from 'lodash/noop'\r\n\r\nexport interface LoadScriptOptions {\r\n /**\r\n * @param waitForScriptLoad Promise \u662F\u5426\u5E94\u8BE5\u5728 <script> \u5C5E\u6027\u53D1\u51FA\u201Cload\u201D\u4E8B\u4EF6\u540E\u89E6\u53D1\uFF0C\u8FD8\u662F\u5728\u5C06\u5176\u9644\u52A0\u5230 DOM \u540E\u7ACB\u5373\u89E6\u53D1\u3002\r\n * @returns Promise<HTMLScriptElement>\r\n */\r\n waitForScriptLoad?: boolean\r\n async?: boolean\r\n type?: string\r\n crossOrigin?: 'anonymous' | 'use-credentials'\r\n referrerPolicy?:\r\n | 'no-referrer'\r\n | 'no-referrer-when-downgrade'\r\n | 'origin'\r\n | 'origin-when-cross-origin'\r\n | 'same-origin'\r\n | 'strict-origin'\r\n | 'strict-origin-when-cross-origin'\r\n | 'unsafe-url'\r\n noModule?: boolean\r\n defer?: boolean\r\n}\r\nexport const loadScript = (\r\n source: string,\r\n onLoaded: (element: HTMLScriptElement) => void = noop,\r\n options: LoadScriptOptions = {}\r\n): Promise<HTMLScriptElement> => {\r\n const {\r\n type = 'text/javascript',\r\n async = true,\r\n crossOrigin,\r\n referrerPolicy,\r\n noModule,\r\n defer,\r\n waitForScriptLoad = true\r\n } = options\r\n\r\n return new Promise((resolve, reject) => {\r\n // Local variable defining if the <script> tag should be appended or not.\r\n let shouldAppend = false\r\n\r\n let element = document.querySelector(`script[src=\"${source}\"]`) as HTMLScriptElement\r\n\r\n // Script tag not found, preparing the element for appending\r\n if (!element) {\r\n element = document.createElement('script')\r\n element.type = type\r\n element.async = async\r\n element.src = source\r\n\r\n // Optional attributes\r\n if (defer) element.defer = defer\r\n if (crossOrigin) element.crossOrigin = crossOrigin\r\n if (noModule) element.noModule = noModule\r\n if (referrerPolicy) element.referrerPolicy = referrerPolicy\r\n\r\n // Enables shouldAppend\r\n shouldAppend = true\r\n }\r\n // Script tag already exists, resolve the loading Promise with it.\r\n else if (Object.hasOwn(element.dataset, 'loaded')) {\r\n resolve(element)\r\n }\r\n\r\n // Event listeners\r\n element.addEventListener('error', (event) => reject(event))\r\n element.addEventListener('abort', (event) => reject(event))\r\n element.addEventListener('load', () => {\r\n element.dataset.loaded = 'true'\r\n onLoaded(element)\r\n resolve(element)\r\n })\r\n\r\n // Append the <script> tag to head.\r\n if (shouldAppend) {\r\n // eslint-disable-next-line unicorn/prefer-dom-node-append\r\n element = document.head.appendChild(element)\r\n }\r\n\r\n // If script load awaiting isn't needed, we can resolve the Promise.\r\n if (!waitForScriptLoad) {\r\n resolve(element)\r\n }\r\n })\r\n}\r\n", "import * as WxType from 'jweixin'\r\nimport { loadScript } from './internal/load_script'\r\n\r\ndeclare module 'jweixin' {\r\n type v4ApiMethod = 'updateTimelineShareData' | 'updateAppMessageShareData'\r\n export function config(config_: {\r\n debug?: boolean | undefined // \u5F00\u542F\u8C03\u8BD5\u6A21\u5F0F,\u8C03\u7528\u7684\u6240\u6709api\u7684\u8FD4\u56DE\u503C\u4F1A\u5728\u5BA2\u6237\u7AEFalert\u51FA\u6765\uFF0C\u82E5\u8981\u67E5\u770B\u4F20\u5165\u7684\u53C2\u6570\uFF0C\u53EF\u4EE5\u5728pc\u7AEF\u6253\u5F00\uFF0C\u53C2\u6570\u4FE1\u606F\u4F1A\u901A\u8FC7log\u6253\u51FA\uFF0C\u4EC5\u5728pc\u7AEF\u65F6\u624D\u4F1A\u6253\u5370\u3002\r\n appId: string // \u5FC5\u586B\uFF0C\u516C\u4F17\u53F7\u7684\u552F\u4E00\u6807\u8BC6\r\n timestamp: number // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u65F6\u95F4\u6233\r\n nonceStr: string // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u968F\u673A\u4E32\r\n signature: string // \u5FC5\u586B\uFF0C\u7B7E\u540D\uFF0C\u89C1\u9644\u5F551\r\n jsApiList: (WxType.ApiMethod | v4ApiMethod)[] // \u5FC5\u586B\uFF0C\u9700\u8981\u4F7F\u7528\u7684JS\u63A5\u53E3\u5217\u8868\uFF0C\u6240\u6709JS\u63A5\u53E3\u5217\u8868\u89C1\u9644\u5F552\r\n }): void\r\n}\r\n\r\ndeclare const wx: typeof WxType\r\n\r\nexport type WechatJssdkConfig = Omit<Parameters<typeof wx.config>[0], 'catch' | 'finally' | 'then'>\r\n\r\n/** \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\u5FAE\u4FE1 jssdk wx.config \u53C2\u6570 */\r\nexport type WechatJssdkConfigFunction = () => WechatJssdkConfig | Promise<WechatJssdkConfig>\r\nexport interface WechatJssdkOptions {\r\n /**\r\n * \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\r\n */\r\n requestConfig: () => Promise<WechatJssdkConfig> | WechatJssdkConfig\r\n /**\r\n * \u662F\u5426\u7ACB\u5373\u52A0\u8F7D config\r\n *\r\n * @default true\r\n */\r\n immediate?: boolean\r\n /**\r\n * wechat-jssdk \u7248\u672C\r\n *\r\n * @default 1.3.0\r\n */\r\n version?: '1.2.0' | '1.3.0' | '1.4.0' | '1.5.0' | '1.6.0'\r\n}\r\n\r\n/**\r\n * jssdk \u7684\u524D\u7F6E\u5904\u7406\u7C7B\r\n * @constructor \u52A0\u8F7D\u914D\u7F6E\uFF08apiHost\uFF0CappId\uFF0Cconfig\uFF0Cversion\uFF0Cjssdk\uFF09\r\n * @function implement \u63D0\u4F9B wxApi \u6267\u884C\u5668\uFF08\u7B49\u5F85 config \u4E0E ready \u7ED3\u675F\uFF0C\u5728\u8C03\u7528 api\uFF09\r\n * @function config \u52A0\u8F7D\u914D\u7F6E\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n * @function ready wx.rady\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n */\r\nexport class WechatJssdkHelper {\r\n private version: string\r\n\r\n private isReady = false\r\n\r\n private requestConfig: WechatJssdkOptions['requestConfig']\r\n\r\n private loadPromise?: Promise<void>\r\n private configPromise?: Promise<void>\r\n private readyPromise?: Promise<void>\r\n\r\n private loadJssdk() {\r\n const scriptUrl = `https://res.wx.qq.com/open/js/jweixin-${this.version}.js`\r\n this.loadPromise = loadScript(scriptUrl).then(() => {\r\n this.loadPromise = undefined\r\n })\r\n }\r\n\r\n constructor(options: WechatJssdkOptions) {\r\n const { immediate = true, version, requestConfig } = options\r\n\r\n this.version = version || '1.3.0'\r\n this.requestConfig = requestConfig\r\n\r\n this.loadJssdk()\r\n\r\n if (immediate) this.config()\r\n }\r\n\r\n async config() {\r\n if (this.configPromise) return this.configPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n this.configPromise = (async () => {\r\n wx.config(await this.requestConfig())\r\n })()\r\n\r\n return this.configPromise\r\n }\r\n async ready() {\r\n if (this.readyPromise) return this.readyPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n if (this.isReady) return\r\n\r\n this.readyPromise = new Promise<void>((resolve, reject) => {\r\n wx.ready(() => {\r\n this.isReady = true\r\n this.readyPromise = undefined\r\n resolve()\r\n })\r\n wx.error((error) => {\r\n this.isReady = false\r\n this.readyPromise = undefined\r\n reject(error)\r\n })\r\n })\r\n\r\n return this.readyPromise\r\n }\r\n async error() {\r\n return this.ready().catch((error) => error)\r\n }\r\n\r\n protected async implement<Key extends keyof typeof wx | string>(key: Key, options?: any) {\r\n if (this.configPromise) {\r\n await this.configPromise\r\n }\r\n await this.ready()\r\n ;(wx as any)[key](options)\r\n }\r\n}\r\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/index.iife.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var HairyWechatJssdk=(()=>{var T=Object.create;var s=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var
|
|
1
|
+
var HairyWechatJssdk=(()=>{var T=Object.create;var s=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,P=Object.prototype.hasOwnProperty;var C=(t=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(t,{get:(e,n)=>(typeof require!="undefined"?require:e)[n]}):t)(function(t){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var V=(t,e)=>{for(var n in e)s(t,n,{get:e[n],enumerable:!0})},f=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of S(e))!P.call(t,o)&&o!==n&&s(t,o,{get:()=>e[o],enumerable:!(r=w(e,o))||r.enumerable});return t};var v=(t,e,n)=>(n=t!=null?T(M(t)):{},f(e||!t||!t.__esModule?s(n,"default",{value:t,enumerable:!0}):n,t)),A=t=>f(s({},"__esModule",{value:!0}),t);var L={};V(L,{WechatJssdk:()=>c});var I=v(C("lodash/noop")),x=(t,e=I.default,n={})=>{let{type:r="text/javascript",async:o=!0,crossOrigin:d,referrerPolicy:h,noModule:u,defer:l,waitForScriptLoad:W=!0}=n;return new Promise((p,y)=>{let g=!1,i=document.querySelector(`script[src="${t}"]`);i?Object.hasOwn(i.dataset,"loaded")&&p(i):(i=document.createElement("script"),i.type=r,i.async=o,i.src=t,l&&(i.defer=l),d&&(i.crossOrigin=d),u&&(i.noModule=u),h&&(i.referrerPolicy=h),g=!0),i.addEventListener("error",m=>y(m)),i.addEventListener("abort",m=>y(m)),i.addEventListener("load",()=>{i.dataset.loaded="true",e(i),p(i)}),g&&(i=document.head.appendChild(i)),W||p(i)})};var a=class{constructor(e){this.isReady=!1;let{immediate:n=!0,version:r,requestConfig:o}=e;this.version=r||"1.3.0",this.requestConfig=o,this.loadJssdk(),n&&this.config()}loadJssdk(){let e=`https://res.wx.qq.com/open/js/jweixin-${this.version}.js`;this.loadPromise=x(e).then(()=>{this.loadPromise=void 0})}async config(){return this.configPromise?this.configPromise:(this.loadPromise&&await this.loadPromise,this.configPromise=(async()=>{wx.config(await this.requestConfig())})(),this.configPromise)}async ready(){if(this.readyPromise)return this.readyPromise;if(this.loadPromise&&await this.loadPromise,!this.isReady)return this.readyPromise=new Promise((e,n)=>{wx.ready(()=>{this.isReady=!0,this.readyPromise=void 0,e()}),wx.error(r=>{this.isReady=!1,this.readyPromise=void 0,n(r)})}),this.readyPromise}async error(){return this.ready().catch(e=>e)}async implement(e,n){this.configPromise&&await this.configPromise,await this.ready(),wx[e](n)}};var c=class extends a{constructor(e){super(e)}updateAppMessageShareData(e){return this.implement("updateAppMessageShareData",e)}updateTimelineShareData(e){return this.implement("updateTimelineShareData",e)}addCard(){return this.implement("addCard")}checkJsApi(e){return this.implement("checkJsApi",e)}chooseCard(e){return this.implement("chooseCard",e)}chooseImage(e){return this.implement("chooseImage",e)}chooseWXPay(e){return this.implement("chooseWXPay",e)}closeWindow(){return this.implement("closeWindow")}consumeAndShareCard(e){return this.implement("consumeAndShareCard",e)}downloadImage(e){return this.implement("downloadImage",e)}downloadVoice(e){return this.implement("downloadVoice",e)}getLocalImgData(e){return this.implement("getLocalImgData",e)}getLocation(e){return this.implement("getLocation",e)}getNetworkType(e){return this.implement("getNetworkType",e)}hideAllNonBaseMenuItem(){return this.implement("hideAllNonBaseMenuItem")}hideMenuItems(e){return this.implement("hideMenuItems",e)}hideOptionMenu(){return this.implement("hideOptionMenu")}onMenuShareAppMessage(e){return this.implement("onMenuShareAppMessage",e)}onMenuShareQQ(e){return this.implement("onMenuShareQQ",e)}onMenuShareQZone(e){return this.implement("onMenuShareQZone",e)}onMenuShareTimeline(e){return this.implement("onMenuShareTimeline",e)}onMenuShareWeibo(e){return this.implement("onMenuShareWeibo",e)}onSearchBeacons(e){return this.implement("onSearchBeacons",e)}onVoicePlayEnd(e){return this.implement("onVoicePlayEnd",e)}onVoiceRecordEnd(e){return this.implement("onVoiceRecordEnd",e)}openCard(e){return this.implement("openCard",e)}openLocation(e){return this.implement("openLocation",e)}openProductSpecificView(e){return this.implement("openProductSpecificView",e)}pauseVoice(e){return this.implement("pauseVoice",e)}playVoice(e){return this.implement("playVoice",e)}previewImage(e){return this.implement("previewImage",e)}scanQRCode(e){return this.implement("scanQRCode",e)}showAllNonBaseMenuItem(){return this.implement("showAllNonBaseMenuItem")}showMenuItems(e){return this.implement("showMenuItems",e)}showOptionMenu(){return this.implement("showOptionMenu")}startRecord(){return this.implement("startRecord")}startSearchBeacons(e){return this.implement("startSearchBeacons",e)}stopRecord(e){return this.implement("stopRecord",e)}stopSearchBeacons(e){return this.implement("stopSearchBeacons",e)}stopVoice(e){return this.implement("stopVoice",e)}translateVoice(e){return this.implement("translateVoice",e)}uploadImage(e){return this.implement("uploadImage",e)}uploadVoice(e){return this.implement("uploadVoice",e)}};return A(L);})();
|
|
2
2
|
//# sourceMappingURL=index.iife.min.js.map
|
package/index.iife.min.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../index.ts", "../internal/load_script.ts", "../helper.ts"],
|
|
4
|
-
"sourcesContent": ["import * as WxType from 'jweixin'\r\nimport { WechatJssdkHelper, WechatJssdkOptions } from './helper'\r\n\r\n/**\r\n * @description WechatJssdk Api \u5C01\u88C5\uFF0C\u4E0E [jssdk \u6587\u6863](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html) \u4FDD\u6301\u4E00\u81F4\uFF0C\u4E3B\u8981\u4EE5\u4E0B\u6539\u52A8\r\n * @description \u5185\u7F6E\u8BF7\u6C42\uFF0C\u8BFB\u53D6 config \u914D\u7F6E\uFF0C\u521D\u59CB\u5316\u81EA\u52A8\u8C03\u7528 wx.config\r\n * @description \u6240\u6709 api \u7684 promise \u5316\u5904\u7406\uFF08\u4EC5\u7B49\u5F85 wx.ready\uFF09\r\n * @description \u7B80\u6613\u5316\u521D\u59CB\u5316\u6784\u5EFA\uFF0Cconfig \u5904\u7406\r\n * @description \u53EF\u6307\u5B9A\u52A0\u8F7D jssdk \u7248\u672C\uFF08\u9ED8\u8BA4 1.3.0\uFF09\r\n * @template `const wxJssdk = new WechatJssdk({env, config})`\r\n */\r\nclass WechatJssdk extends WechatJssdkHelper {\r\n constructor(options: WechatJssdkOptions) {\r\n super(options)\r\n }\r\n // --- 1.4.0 API start ---\r\n updateAppMessageShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateAppMessageShareData', options)\r\n }\r\n updateTimelineShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateTimelineShareData', options)\r\n }\r\n // --- 1.4.0 API end ---\r\n addCard() {\r\n return this.implement('addCard')\r\n }\r\n checkJsApi(options: WxType.IcheckJsApi) {\r\n return this.implement('checkJsApi', options)\r\n }\r\n chooseCard(options: WxType.IchooseCard) {\r\n return this.implement('chooseCard', options)\r\n }\r\n chooseImage(options: WxType.IchooseImage) {\r\n return this.implement('chooseImage', options)\r\n }\r\n chooseWXPay(options: WxType.IchooseWXPay) {\r\n return this.implement('chooseWXPay', options)\r\n }\r\n closeWindow() {\r\n return this.implement('closeWindow')\r\n }\r\n consumeAndShareCard(options: WxType.IconsumeAndShareCard) {\r\n return this.implement('consumeAndShareCard', options)\r\n }\r\n downloadImage(options: WxType.IdownloadImage) {\r\n return this.implement('downloadImage', options)\r\n }\r\n downloadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('downloadVoice', options)\r\n }\r\n getLocalImgData(options: WxType.IgetLocalImgData) {\r\n return this.implement('getLocalImgData', options)\r\n }\r\n getLocation(options: WxType.IgetLocation) {\r\n return this.implement('getLocation', options)\r\n }\r\n getNetworkType(options: WxType.IgetNetworkType) {\r\n return this.implement('getNetworkType', options)\r\n }\r\n hideAllNonBaseMenuItem() {\r\n return this.implement('hideAllNonBaseMenuItem')\r\n }\r\n hideMenuItems(options: WxType.IhideMenuItems) {\r\n return this.implement('hideMenuItems', options)\r\n }\r\n hideOptionMenu() {\r\n return this.implement('hideOptionMenu')\r\n }\r\n onMenuShareAppMessage(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('onMenuShareAppMessage', options)\r\n }\r\n onMenuShareQQ(options: WxType.IonMenuShareQQ) {\r\n return this.implement('onMenuShareQQ', options)\r\n }\r\n onMenuShareQZone(options: WxType.IonMenuShareQZone) {\r\n return this.implement('onMenuShareQZone', options)\r\n }\r\n onMenuShareTimeline(options: WxType.IonMenuShareTimeline) {\r\n return this.implement('onMenuShareTimeline', options)\r\n }\r\n onMenuShareWeibo(options: WxType.IonMenuShareWeibo) {\r\n return this.implement('onMenuShareWeibo', options)\r\n }\r\n onSearchBeacons(options: WxType.IonSearchBeacons) {\r\n return this.implement('onSearchBeacons', options)\r\n }\r\n onVoicePlayEnd(options: WxType.IonVoicePlayEnd) {\r\n return this.implement('onVoicePlayEnd', options)\r\n }\r\n onVoiceRecordEnd(options: WxType.IonVoiceRecordEnd) {\r\n return this.implement('onVoiceRecordEnd', options)\r\n }\r\n openCard(options: WxType.IopenCard) {\r\n return this.implement('openCard', options)\r\n }\r\n openLocation(options: WxType.IopenLocation) {\r\n return this.implement('openLocation', options)\r\n }\r\n openProductSpecificView(options: WxType.IopenProductSpecificView) {\r\n return this.implement('openProductSpecificView', options)\r\n }\r\n pauseVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('pauseVoice', options)\r\n }\r\n playVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('playVoice', options)\r\n }\r\n previewImage(options: WxType.IpreviewImage) {\r\n return this.implement('previewImage', options)\r\n }\r\n scanQRCode(options: WxType.IscanQRCode) {\r\n return this.implement('scanQRCode', options)\r\n }\r\n showAllNonBaseMenuItem() {\r\n return this.implement('showAllNonBaseMenuItem')\r\n }\r\n showMenuItems(options: WxType.IshowMenuItems) {\r\n return this.implement('showMenuItems', options)\r\n }\r\n showOptionMenu() {\r\n return this.implement('showOptionMenu')\r\n }\r\n startRecord() {\r\n return this.implement('startRecord')\r\n }\r\n startSearchBeacons(options: WxType.IstartSearchBeacons) {\r\n return this.implement('startSearchBeacons', options)\r\n }\r\n stopRecord(options: WxType.IstopRecord) {\r\n return this.implement('stopRecord', options)\r\n }\r\n stopSearchBeacons(options: WxType.IstopSearchBeacons) {\r\n return this.implement('stopSearchBeacons', options)\r\n }\r\n stopVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('stopVoice', options)\r\n }\r\n translateVoice(options: WxType.ItranslateVoice) {\r\n return this.implement('translateVoice', options)\r\n }\r\n uploadImage(options: WxType.IuploadImage) {\r\n return this.implement('uploadImage', options)\r\n }\r\n uploadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('uploadVoice', options)\r\n }\r\n}\r\n\r\nexport { WechatJssdk }\r\n", "import noop from 'lodash/noop'\r\n\r\nexport interface LoadScriptOptions {\r\n /**\r\n * @param waitForScriptLoad Promise \u662F\u5426\u5E94\u8BE5\u5728 <script> \u5C5E\u6027\u53D1\u51FA\u201Cload\u201D\u4E8B\u4EF6\u540E\u89E6\u53D1\uFF0C\u8FD8\u662F\u5728\u5C06\u5176\u9644\u52A0\u5230 DOM \u540E\u7ACB\u5373\u89E6\u53D1\u3002\r\n * @returns Promise<HTMLScriptElement>\r\n */\r\n waitForScriptLoad?: boolean\r\n async?: boolean\r\n type?: string\r\n crossOrigin?: 'anonymous' | 'use-credentials'\r\n referrerPolicy?:\r\n | 'no-referrer'\r\n | 'no-referrer-when-downgrade'\r\n | 'origin'\r\n | 'origin-when-cross-origin'\r\n | 'same-origin'\r\n | 'strict-origin'\r\n | 'strict-origin-when-cross-origin'\r\n | 'unsafe-url'\r\n noModule?: boolean\r\n defer?: boolean\r\n}\r\nexport const loadScript = (\r\n source: string,\r\n onLoaded: (element: HTMLScriptElement) => void = noop,\r\n options: LoadScriptOptions = {}\r\n): Promise<HTMLScriptElement> => {\r\n const {\r\n type = 'text/javascript',\r\n async = true,\r\n crossOrigin,\r\n referrerPolicy,\r\n noModule,\r\n defer,\r\n waitForScriptLoad = true\r\n } = options\r\n\r\n return new Promise((resolve, reject) => {\r\n // Local variable defining if the <script> tag should be appended or not.\r\n let shouldAppend = false\r\n\r\n let element = document.querySelector(`script[src=\"${source}\"]`) as HTMLScriptElement\r\n\r\n // Script tag not found, preparing the element for appending\r\n if (!element) {\r\n element = document.createElement('script')\r\n element.type = type\r\n element.async = async\r\n element.src = source\r\n\r\n // Optional attributes\r\n if (defer) element.defer = defer\r\n if (crossOrigin) element.crossOrigin = crossOrigin\r\n if (noModule) element.noModule = noModule\r\n if (referrerPolicy) element.referrerPolicy = referrerPolicy\r\n\r\n // Enables shouldAppend\r\n shouldAppend = true\r\n }\r\n // Script tag already exists, resolve the loading Promise with it.\r\n else if (Object.hasOwn(element.dataset, 'loaded')) {\r\n resolve(element)\r\n }\r\n\r\n // Event listeners\r\n element.addEventListener('error', (event) => reject(event))\r\n element.addEventListener('abort', (event) => reject(event))\r\n element.addEventListener('load', () => {\r\n element.dataset.loaded = 'true'\r\n onLoaded(element)\r\n resolve(element)\r\n })\r\n\r\n // Append the <script> tag to head.\r\n if (shouldAppend) {\r\n // eslint-disable-next-line unicorn/prefer-dom-node-append\r\n element = document.head.appendChild(element)\r\n }\r\n\r\n // If script load awaiting isn't needed, we can resolve the Promise.\r\n if (!waitForScriptLoad) {\r\n resolve(element)\r\n }\r\n })\r\n}\r\n", "import * as WxType from 'jweixin'\r\nimport { loadScript } from './internal/load_script'\r\n\r\ndeclare module 'jweixin' {\r\n type v4ApiMethod = 'updateTimelineShareData' | 'updateAppMessageShareData'\r\n export function config(config_: {\r\n debug?: boolean | undefined // \u5F00\u542F\u8C03\u8BD5\u6A21\u5F0F,\u8C03\u7528\u7684\u6240\u6709api\u7684\u8FD4\u56DE\u503C\u4F1A\u5728\u5BA2\u6237\u7AEFalert\u51FA\u6765\uFF0C\u82E5\u8981\u67E5\u770B\u4F20\u5165\u7684\u53C2\u6570\uFF0C\u53EF\u4EE5\u5728pc\u7AEF\u6253\u5F00\uFF0C\u53C2\u6570\u4FE1\u606F\u4F1A\u901A\u8FC7log\u6253\u51FA\uFF0C\u4EC5\u5728pc\u7AEF\u65F6\u624D\u4F1A\u6253\u5370\u3002\r\n appId: string // \u5FC5\u586B\uFF0C\u516C\u4F17\u53F7\u7684\u552F\u4E00\u6807\u8BC6\r\n timestamp: number // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u65F6\u95F4\u6233\r\n nonceStr: string // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u968F\u673A\u4E32\r\n signature: string // \u5FC5\u586B\uFF0C\u7B7E\u540D\uFF0C\u89C1\u9644\u5F551\r\n jsApiList: (WxType.ApiMethod & v4ApiMethod)[] // \u5FC5\u586B\uFF0C\u9700\u8981\u4F7F\u7528\u7684JS\u63A5\u53E3\u5217\u8868\uFF0C\u6240\u6709JS\u63A5\u53E3\u5217\u8868\u89C1\u9644\u5F552\r\n }): void\r\n}\r\n\r\ndeclare const wx: typeof WxType\r\n\r\nexport type WechatJssdkConfig = Omit<Parameters<typeof wx.config>[0], 'catch' | 'finally' | 'then'>\r\n\r\n/** \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\u5FAE\u4FE1 jssdk wx.config \u53C2\u6570 */\r\nexport type WechatJssdkConfigFunction = () => WechatJssdkConfig | Promise<WechatJssdkConfig>\r\nexport interface WechatJssdkOptions {\r\n /**\r\n * \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\r\n */\r\n requestConfig: () => Promise<WechatJssdkConfig>\r\n /**\r\n * \u662F\u5426\u7ACB\u5373\u52A0\u8F7D config\r\n *\r\n * @default true\r\n */\r\n immediate?: boolean\r\n /**\r\n * wechat-jssdk \u7248\u672C\r\n *\r\n * @default 1.3.0\r\n */\r\n version?: '1.2.0' | '1.3.0' | '1.4.0' | '1.5.0' | '1.6.0'\r\n}\r\n\r\n/**\r\n * jssdk \u7684\u524D\u7F6E\u5904\u7406\u7C7B\r\n * @constructor \u52A0\u8F7D\u914D\u7F6E\uFF08apiHost\uFF0CappId\uFF0Cconfig\uFF0Cversion\uFF0Cjssdk\uFF09\r\n * @function implement \u63D0\u4F9B wxApi \u6267\u884C\u5668\uFF08\u7B49\u5F85 config \u4E0E ready \u7ED3\u675F\uFF0C\u5728\u8C03\u7528 api\uFF09\r\n * @function config \u52A0\u8F7D\u914D\u7F6E\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n * @function ready wx.rady\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n */\r\nexport class WechatJssdkHelper {\r\n private version: string\r\n\r\n private isReady = false\r\n\r\n private requestConfig: () => Promise<WechatJssdkConfig>\r\n\r\n private loadPromise?: Promise<void>\r\n private configPromise?: Promise<void>\r\n private readyPromise?: Promise<void>\r\n\r\n private loadJssdk() {\r\n const scriptUrl = `https://res.wx.qq.com/open/js/jweixin-${this.version}.js`\r\n this.loadPromise = loadScript(scriptUrl).then(() => {\r\n this.loadPromise = undefined\r\n })\r\n }\r\n\r\n constructor(options: WechatJssdkOptions) {\r\n const { immediate = true, version, requestConfig } = options\r\n\r\n this.version = version || '1.3.0'\r\n this.requestConfig = requestConfig\r\n\r\n this.loadJssdk()\r\n\r\n if (immediate) this.config()\r\n }\r\n\r\n async config() {\r\n if (this.configPromise) return this.configPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n this.configPromise = (async () => {\r\n wx.config(await this.requestConfig())\r\n })()\r\n\r\n return this.configPromise\r\n }\r\n async ready() {\r\n if (this.readyPromise) return this.readyPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n if (this.isReady) return\r\n\r\n this.readyPromise = new Promise<void>((resolve, reject) => {\r\n wx.ready(() => {\r\n this.isReady = true\r\n this.readyPromise = undefined\r\n resolve()\r\n })\r\n wx.error((error) => {\r\n this.isReady = false\r\n this.readyPromise = undefined\r\n reject(error)\r\n })\r\n })\r\n\r\n return this.readyPromise\r\n }\r\n async error() {\r\n return this.ready().catch((error) => error)\r\n }\r\n\r\n protected async implement<Key extends keyof typeof wx | string>(key: Key, options?: any) {\r\n if (this.configPromise) {\r\n await this.configPromise\r\n }\r\n await this.ready()\r\n ;(wx as any)[key](options)\r\n }\r\n}\r\n"],
|
|
4
|
+
"sourcesContent": ["import * as WxType from 'jweixin'\r\nimport { WechatJssdkHelper, WechatJssdkOptions } from './helper'\r\n\r\n/**\r\n * @description WechatJssdk Api \u5C01\u88C5\uFF0C\u4E0E [jssdk \u6587\u6863](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html) \u4FDD\u6301\u4E00\u81F4\uFF0C\u4E3B\u8981\u4EE5\u4E0B\u6539\u52A8\r\n * @description \u5185\u7F6E\u8BF7\u6C42\uFF0C\u8BFB\u53D6 config \u914D\u7F6E\uFF0C\u521D\u59CB\u5316\u81EA\u52A8\u8C03\u7528 wx.config\r\n * @description \u6240\u6709 api \u7684 promise \u5316\u5904\u7406\uFF08\u4EC5\u7B49\u5F85 wx.ready\uFF09\r\n * @description \u7B80\u6613\u5316\u521D\u59CB\u5316\u6784\u5EFA\uFF0Cconfig \u5904\u7406\r\n * @description \u53EF\u6307\u5B9A\u52A0\u8F7D jssdk \u7248\u672C\uFF08\u9ED8\u8BA4 1.3.0\uFF09\r\n * @template `const wxJssdk = new WechatJssdk({env, config})`\r\n */\r\nclass WechatJssdk extends WechatJssdkHelper {\r\n constructor(options: WechatJssdkOptions) {\r\n super(options)\r\n }\r\n // --- 1.4.0 API start ---\r\n updateAppMessageShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateAppMessageShareData', options)\r\n }\r\n updateTimelineShareData(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('updateTimelineShareData', options)\r\n }\r\n // --- 1.4.0 API end ---\r\n addCard() {\r\n return this.implement('addCard')\r\n }\r\n checkJsApi(options: WxType.IcheckJsApi) {\r\n return this.implement('checkJsApi', options)\r\n }\r\n chooseCard(options: WxType.IchooseCard) {\r\n return this.implement('chooseCard', options)\r\n }\r\n chooseImage(options: WxType.IchooseImage) {\r\n return this.implement('chooseImage', options)\r\n }\r\n chooseWXPay(options: WxType.IchooseWXPay) {\r\n return this.implement('chooseWXPay', options)\r\n }\r\n closeWindow() {\r\n return this.implement('closeWindow')\r\n }\r\n consumeAndShareCard(options: WxType.IconsumeAndShareCard) {\r\n return this.implement('consumeAndShareCard', options)\r\n }\r\n downloadImage(options: WxType.IdownloadImage) {\r\n return this.implement('downloadImage', options)\r\n }\r\n downloadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('downloadVoice', options)\r\n }\r\n getLocalImgData(options: WxType.IgetLocalImgData) {\r\n return this.implement('getLocalImgData', options)\r\n }\r\n getLocation(options: WxType.IgetLocation) {\r\n return this.implement('getLocation', options)\r\n }\r\n getNetworkType(options: WxType.IgetNetworkType) {\r\n return this.implement('getNetworkType', options)\r\n }\r\n hideAllNonBaseMenuItem() {\r\n return this.implement('hideAllNonBaseMenuItem')\r\n }\r\n hideMenuItems(options: WxType.IhideMenuItems) {\r\n return this.implement('hideMenuItems', options)\r\n }\r\n hideOptionMenu() {\r\n return this.implement('hideOptionMenu')\r\n }\r\n onMenuShareAppMessage(options: WxType.IonMenuShareAppMessage) {\r\n return this.implement('onMenuShareAppMessage', options)\r\n }\r\n onMenuShareQQ(options: WxType.IonMenuShareQQ) {\r\n return this.implement('onMenuShareQQ', options)\r\n }\r\n onMenuShareQZone(options: WxType.IonMenuShareQZone) {\r\n return this.implement('onMenuShareQZone', options)\r\n }\r\n onMenuShareTimeline(options: WxType.IonMenuShareTimeline) {\r\n return this.implement('onMenuShareTimeline', options)\r\n }\r\n onMenuShareWeibo(options: WxType.IonMenuShareWeibo) {\r\n return this.implement('onMenuShareWeibo', options)\r\n }\r\n onSearchBeacons(options: WxType.IonSearchBeacons) {\r\n return this.implement('onSearchBeacons', options)\r\n }\r\n onVoicePlayEnd(options: WxType.IonVoicePlayEnd) {\r\n return this.implement('onVoicePlayEnd', options)\r\n }\r\n onVoiceRecordEnd(options: WxType.IonVoiceRecordEnd) {\r\n return this.implement('onVoiceRecordEnd', options)\r\n }\r\n openCard(options: WxType.IopenCard) {\r\n return this.implement('openCard', options)\r\n }\r\n openLocation(options: WxType.IopenLocation) {\r\n return this.implement('openLocation', options)\r\n }\r\n openProductSpecificView(options: WxType.IopenProductSpecificView) {\r\n return this.implement('openProductSpecificView', options)\r\n }\r\n pauseVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('pauseVoice', options)\r\n }\r\n playVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('playVoice', options)\r\n }\r\n previewImage(options: WxType.IpreviewImage) {\r\n return this.implement('previewImage', options)\r\n }\r\n scanQRCode(options: WxType.IscanQRCode) {\r\n return this.implement('scanQRCode', options)\r\n }\r\n showAllNonBaseMenuItem() {\r\n return this.implement('showAllNonBaseMenuItem')\r\n }\r\n showMenuItems(options: WxType.IshowMenuItems) {\r\n return this.implement('showMenuItems', options)\r\n }\r\n showOptionMenu() {\r\n return this.implement('showOptionMenu')\r\n }\r\n startRecord() {\r\n return this.implement('startRecord')\r\n }\r\n startSearchBeacons(options: WxType.IstartSearchBeacons) {\r\n return this.implement('startSearchBeacons', options)\r\n }\r\n stopRecord(options: WxType.IstopRecord) {\r\n return this.implement('stopRecord', options)\r\n }\r\n stopSearchBeacons(options: WxType.IstopSearchBeacons) {\r\n return this.implement('stopSearchBeacons', options)\r\n }\r\n stopVoice(options: WxType.IplaypausestopVoice) {\r\n return this.implement('stopVoice', options)\r\n }\r\n translateVoice(options: WxType.ItranslateVoice) {\r\n return this.implement('translateVoice', options)\r\n }\r\n uploadImage(options: WxType.IuploadImage) {\r\n return this.implement('uploadImage', options)\r\n }\r\n uploadVoice(options: WxType.IupdownloadVoice) {\r\n return this.implement('uploadVoice', options)\r\n }\r\n}\r\n\r\nexport { WechatJssdk }\r\n", "import noop from 'lodash/noop'\r\n\r\nexport interface LoadScriptOptions {\r\n /**\r\n * @param waitForScriptLoad Promise \u662F\u5426\u5E94\u8BE5\u5728 <script> \u5C5E\u6027\u53D1\u51FA\u201Cload\u201D\u4E8B\u4EF6\u540E\u89E6\u53D1\uFF0C\u8FD8\u662F\u5728\u5C06\u5176\u9644\u52A0\u5230 DOM \u540E\u7ACB\u5373\u89E6\u53D1\u3002\r\n * @returns Promise<HTMLScriptElement>\r\n */\r\n waitForScriptLoad?: boolean\r\n async?: boolean\r\n type?: string\r\n crossOrigin?: 'anonymous' | 'use-credentials'\r\n referrerPolicy?:\r\n | 'no-referrer'\r\n | 'no-referrer-when-downgrade'\r\n | 'origin'\r\n | 'origin-when-cross-origin'\r\n | 'same-origin'\r\n | 'strict-origin'\r\n | 'strict-origin-when-cross-origin'\r\n | 'unsafe-url'\r\n noModule?: boolean\r\n defer?: boolean\r\n}\r\nexport const loadScript = (\r\n source: string,\r\n onLoaded: (element: HTMLScriptElement) => void = noop,\r\n options: LoadScriptOptions = {}\r\n): Promise<HTMLScriptElement> => {\r\n const {\r\n type = 'text/javascript',\r\n async = true,\r\n crossOrigin,\r\n referrerPolicy,\r\n noModule,\r\n defer,\r\n waitForScriptLoad = true\r\n } = options\r\n\r\n return new Promise((resolve, reject) => {\r\n // Local variable defining if the <script> tag should be appended or not.\r\n let shouldAppend = false\r\n\r\n let element = document.querySelector(`script[src=\"${source}\"]`) as HTMLScriptElement\r\n\r\n // Script tag not found, preparing the element for appending\r\n if (!element) {\r\n element = document.createElement('script')\r\n element.type = type\r\n element.async = async\r\n element.src = source\r\n\r\n // Optional attributes\r\n if (defer) element.defer = defer\r\n if (crossOrigin) element.crossOrigin = crossOrigin\r\n if (noModule) element.noModule = noModule\r\n if (referrerPolicy) element.referrerPolicy = referrerPolicy\r\n\r\n // Enables shouldAppend\r\n shouldAppend = true\r\n }\r\n // Script tag already exists, resolve the loading Promise with it.\r\n else if (Object.hasOwn(element.dataset, 'loaded')) {\r\n resolve(element)\r\n }\r\n\r\n // Event listeners\r\n element.addEventListener('error', (event) => reject(event))\r\n element.addEventListener('abort', (event) => reject(event))\r\n element.addEventListener('load', () => {\r\n element.dataset.loaded = 'true'\r\n onLoaded(element)\r\n resolve(element)\r\n })\r\n\r\n // Append the <script> tag to head.\r\n if (shouldAppend) {\r\n // eslint-disable-next-line unicorn/prefer-dom-node-append\r\n element = document.head.appendChild(element)\r\n }\r\n\r\n // If script load awaiting isn't needed, we can resolve the Promise.\r\n if (!waitForScriptLoad) {\r\n resolve(element)\r\n }\r\n })\r\n}\r\n", "import * as WxType from 'jweixin'\r\nimport { loadScript } from './internal/load_script'\r\n\r\ndeclare module 'jweixin' {\r\n type v4ApiMethod = 'updateTimelineShareData' | 'updateAppMessageShareData'\r\n export function config(config_: {\r\n debug?: boolean | undefined // \u5F00\u542F\u8C03\u8BD5\u6A21\u5F0F,\u8C03\u7528\u7684\u6240\u6709api\u7684\u8FD4\u56DE\u503C\u4F1A\u5728\u5BA2\u6237\u7AEFalert\u51FA\u6765\uFF0C\u82E5\u8981\u67E5\u770B\u4F20\u5165\u7684\u53C2\u6570\uFF0C\u53EF\u4EE5\u5728pc\u7AEF\u6253\u5F00\uFF0C\u53C2\u6570\u4FE1\u606F\u4F1A\u901A\u8FC7log\u6253\u51FA\uFF0C\u4EC5\u5728pc\u7AEF\u65F6\u624D\u4F1A\u6253\u5370\u3002\r\n appId: string // \u5FC5\u586B\uFF0C\u516C\u4F17\u53F7\u7684\u552F\u4E00\u6807\u8BC6\r\n timestamp: number // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u65F6\u95F4\u6233\r\n nonceStr: string // \u5FC5\u586B\uFF0C\u751F\u6210\u7B7E\u540D\u7684\u968F\u673A\u4E32\r\n signature: string // \u5FC5\u586B\uFF0C\u7B7E\u540D\uFF0C\u89C1\u9644\u5F551\r\n jsApiList: (WxType.ApiMethod | v4ApiMethod)[] // \u5FC5\u586B\uFF0C\u9700\u8981\u4F7F\u7528\u7684JS\u63A5\u53E3\u5217\u8868\uFF0C\u6240\u6709JS\u63A5\u53E3\u5217\u8868\u89C1\u9644\u5F552\r\n }): void\r\n}\r\n\r\ndeclare const wx: typeof WxType\r\n\r\nexport type WechatJssdkConfig = Omit<Parameters<typeof wx.config>[0], 'catch' | 'finally' | 'then'>\r\n\r\n/** \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\u5FAE\u4FE1 jssdk wx.config \u53C2\u6570 */\r\nexport type WechatJssdkConfigFunction = () => WechatJssdkConfig | Promise<WechatJssdkConfig>\r\nexport interface WechatJssdkOptions {\r\n /**\r\n * \u521D\u59CB\u5316\u8BF7\u6C42\u914D\u7F6E\r\n */\r\n requestConfig: () => Promise<WechatJssdkConfig> | WechatJssdkConfig\r\n /**\r\n * \u662F\u5426\u7ACB\u5373\u52A0\u8F7D config\r\n *\r\n * @default true\r\n */\r\n immediate?: boolean\r\n /**\r\n * wechat-jssdk \u7248\u672C\r\n *\r\n * @default 1.3.0\r\n */\r\n version?: '1.2.0' | '1.3.0' | '1.4.0' | '1.5.0' | '1.6.0'\r\n}\r\n\r\n/**\r\n * jssdk \u7684\u524D\u7F6E\u5904\u7406\u7C7B\r\n * @constructor \u52A0\u8F7D\u914D\u7F6E\uFF08apiHost\uFF0CappId\uFF0Cconfig\uFF0Cversion\uFF0Cjssdk\uFF09\r\n * @function implement \u63D0\u4F9B wxApi \u6267\u884C\u5668\uFF08\u7B49\u5F85 config \u4E0E ready \u7ED3\u675F\uFF0C\u5728\u8C03\u7528 api\uFF09\r\n * @function config \u52A0\u8F7D\u914D\u7F6E\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n * @function ready wx.rady\uFF0C\u63D0\u4F9B promise \u5F0F\u8FD4\u56DE\r\n */\r\nexport class WechatJssdkHelper {\r\n private version: string\r\n\r\n private isReady = false\r\n\r\n private requestConfig: WechatJssdkOptions['requestConfig']\r\n\r\n private loadPromise?: Promise<void>\r\n private configPromise?: Promise<void>\r\n private readyPromise?: Promise<void>\r\n\r\n private loadJssdk() {\r\n const scriptUrl = `https://res.wx.qq.com/open/js/jweixin-${this.version}.js`\r\n this.loadPromise = loadScript(scriptUrl).then(() => {\r\n this.loadPromise = undefined\r\n })\r\n }\r\n\r\n constructor(options: WechatJssdkOptions) {\r\n const { immediate = true, version, requestConfig } = options\r\n\r\n this.version = version || '1.3.0'\r\n this.requestConfig = requestConfig\r\n\r\n this.loadJssdk()\r\n\r\n if (immediate) this.config()\r\n }\r\n\r\n async config() {\r\n if (this.configPromise) return this.configPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n this.configPromise = (async () => {\r\n wx.config(await this.requestConfig())\r\n })()\r\n\r\n return this.configPromise\r\n }\r\n async ready() {\r\n if (this.readyPromise) return this.readyPromise\r\n\r\n if (this.loadPromise) await this.loadPromise\r\n\r\n if (this.isReady) return\r\n\r\n this.readyPromise = new Promise<void>((resolve, reject) => {\r\n wx.ready(() => {\r\n this.isReady = true\r\n this.readyPromise = undefined\r\n resolve()\r\n })\r\n wx.error((error) => {\r\n this.isReady = false\r\n this.readyPromise = undefined\r\n reject(error)\r\n })\r\n })\r\n\r\n return this.readyPromise\r\n }\r\n async error() {\r\n return this.ready().catch((error) => error)\r\n }\r\n\r\n protected async implement<Key extends keyof typeof wx | string>(key: Key, options?: any) {\r\n if (this.configPromise) {\r\n await this.configPromise\r\n }\r\n await this.ready()\r\n ;(wx as any)[key](options)\r\n }\r\n}\r\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|