mo-h5-bridge 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/index.d.ts +7 -0
- package/dist/mo-h5-bridge.js +156 -0
- package/dist/mo-h5-bridge.js.map +1 -0
- package/dist/mo-h5-bridge.umd.cjs +2 -0
- package/dist/mo-h5-bridge.umd.cjs.map +1 -0
- package/package.json +62 -0
- package/vite.config.ts.timestamp-1721369096848-e2997a95a42c7.mjs +136 -0
- package/vite.config.ts.timestamp-1739958217000-1f107e0a40c72.mjs +119 -0
package/README.md
ADDED
package/dist/index.d.ts
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
function d(i) {
|
2
|
+
return new Promise((n) => {
|
3
|
+
const e = document.createElement("script");
|
4
|
+
e.type = "text/javascript", e.src = i, e.onload = function() {
|
5
|
+
n();
|
6
|
+
}, document.head.appendChild(e);
|
7
|
+
});
|
8
|
+
}
|
9
|
+
const o = navigator.userAgent, u = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(o), p = /Windows|Macintosh|Linux/i.test(o) && !u, t = {
|
10
|
+
WeChatMini: "WeChatMini",
|
11
|
+
// 微信小程序
|
12
|
+
AlipayMini: "AlipayMini",
|
13
|
+
// 支付宝小程序
|
14
|
+
Android: "Android",
|
15
|
+
// 安卓端
|
16
|
+
Ios: "Ios",
|
17
|
+
// ios端
|
18
|
+
Mobile: "Mobile",
|
19
|
+
// 移动端
|
20
|
+
Pc: "Pc"
|
21
|
+
// pc端
|
22
|
+
}, a = {
|
23
|
+
["is" + t.WeChatMini]: /miniProgram/i.test(o),
|
24
|
+
// 微信小程序
|
25
|
+
["is" + t.AlipayMini]: /AlipayClient.*miniProgram/i.test(o),
|
26
|
+
// 支付宝小程序
|
27
|
+
["is" + t.Android]: /Android/i.test(o),
|
28
|
+
// andorid
|
29
|
+
["is" + t.Ios]: /iPhone|iPad|iPod/i.test(o),
|
30
|
+
// ios
|
31
|
+
["is" + t.Mobile]: u,
|
32
|
+
["is" + t.Pc]: p
|
33
|
+
}, f = "https://appx/web-view.min.js", c = {
|
34
|
+
chooseMedia: void 0
|
35
|
+
};
|
36
|
+
async function m() {
|
37
|
+
return new Promise((i, n) => {
|
38
|
+
my.chooseImage({
|
39
|
+
sourceType: ["album"],
|
40
|
+
success: function(e) {
|
41
|
+
i(e);
|
42
|
+
},
|
43
|
+
fail: function(e) {
|
44
|
+
n(e);
|
45
|
+
}
|
46
|
+
});
|
47
|
+
});
|
48
|
+
}
|
49
|
+
function g() {
|
50
|
+
c.chooseMedia = m;
|
51
|
+
}
|
52
|
+
async function h() {
|
53
|
+
await d(f), g();
|
54
|
+
}
|
55
|
+
const y = "https://res.wx.qq.com/open/js/jweixin-1.6.0.js";
|
56
|
+
async function v() {
|
57
|
+
return new Promise((i, n) => {
|
58
|
+
wx.chooseImage({
|
59
|
+
count: 1,
|
60
|
+
sizeType: ["original", "compressed"],
|
61
|
+
sourceType: ["album", "camera"],
|
62
|
+
success: function(e) {
|
63
|
+
const s = e.localIds;
|
64
|
+
console.log(s), i(s);
|
65
|
+
},
|
66
|
+
fail: function(e) {
|
67
|
+
n(e);
|
68
|
+
}
|
69
|
+
});
|
70
|
+
});
|
71
|
+
}
|
72
|
+
function b() {
|
73
|
+
c.chooseMedia = v;
|
74
|
+
}
|
75
|
+
async function M(i) {
|
76
|
+
const n = location.href.split("#")[0];
|
77
|
+
return await fetch(`${i}?url=${n}`).then((e) => e.json());
|
78
|
+
}
|
79
|
+
function P(i) {
|
80
|
+
async function n() {
|
81
|
+
const e = await M(i.requestUrl);
|
82
|
+
wx.config({
|
83
|
+
appId: e.data.appId,
|
84
|
+
timestamp: e.data.timestamp,
|
85
|
+
nonceStr: e.data.nonceStr,
|
86
|
+
signature: e.data.signature,
|
87
|
+
jsApiList: i.jsApiList
|
88
|
+
});
|
89
|
+
}
|
90
|
+
return n(), wx.error((e) => {
|
91
|
+
console.log("wx.error", e), setTimeout(() => {
|
92
|
+
n();
|
93
|
+
}, 1e3 * 2);
|
94
|
+
}), setInterval(async () => {
|
95
|
+
n();
|
96
|
+
}, 1e3 * 60 * 4), Promise.resolve();
|
97
|
+
}
|
98
|
+
async function A(i) {
|
99
|
+
await d(y), await P(i), wx.ready(function() {
|
100
|
+
b();
|
101
|
+
});
|
102
|
+
}
|
103
|
+
const l = a.isAndroid, B = (i) => {
|
104
|
+
window.WebViewJavascriptBridge ? i(window.WebViewJavascriptBridge) : document.addEventListener(
|
105
|
+
"WebViewJavascriptBridgeReady",
|
106
|
+
function() {
|
107
|
+
i(window.WebViewJavascriptBridge);
|
108
|
+
},
|
109
|
+
!1
|
110
|
+
);
|
111
|
+
}, W = (i) => {
|
112
|
+
if (window.WebViewJavascriptBridge)
|
113
|
+
return i(window.WebViewJavascriptBridge);
|
114
|
+
if (window.WVJBCallbacks)
|
115
|
+
return window.WVJBCallbacks.push(i);
|
116
|
+
window.WVJBCallbacks = [i];
|
117
|
+
const n = document.createElement("iframe");
|
118
|
+
n.style.display = "none", n.src = "wvjbscheme://__BRIDGE_LOADED__", document.documentElement.appendChild(n), setTimeout(function() {
|
119
|
+
document.documentElement.removeChild(n);
|
120
|
+
}, 0);
|
121
|
+
};
|
122
|
+
window.setupWebViewJavascriptBridge = l ? B : W;
|
123
|
+
l && window.setupWebViewJavascriptBridge(function(i) {
|
124
|
+
i.init(function(n, e) {
|
125
|
+
alert(n), e("JS 返回给原生的消息内容");
|
126
|
+
});
|
127
|
+
});
|
128
|
+
async function C() {
|
129
|
+
window.setupWebViewJavascriptBridge((i) => {
|
130
|
+
Object.keys(c).forEach((n) => {
|
131
|
+
c[n] = function(e) {
|
132
|
+
return new Promise((s, w) => {
|
133
|
+
i.callHandler(
|
134
|
+
"sendToNative",
|
135
|
+
// 传递给原生的参数
|
136
|
+
{
|
137
|
+
type: n,
|
138
|
+
value: e
|
139
|
+
},
|
140
|
+
(r) => {
|
141
|
+
r.type === "success" ? s(r.value) : w(r.value);
|
142
|
+
}
|
143
|
+
);
|
144
|
+
});
|
145
|
+
};
|
146
|
+
});
|
147
|
+
});
|
148
|
+
}
|
149
|
+
async function I(i) {
|
150
|
+
a.isAlipayMini ? await h() : a.isWeChatMini ? await A(i) : a.isMobile && await C();
|
151
|
+
}
|
152
|
+
export {
|
153
|
+
c as Bridge,
|
154
|
+
I as initBridge
|
155
|
+
};
|
156
|
+
//# sourceMappingURL=mo-h5-bridge.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mo-h5-bridge.js","sources":["../node_modules/.pnpm/mo-front-end-util@0.0.12_postcss@8.4.38_rollup@4.18.0_typescript@5.4.5_vite@5.2.12_sass@1.77.4_terser@5.31.1_/node_modules/mo-front-end-util/dist/mo-front-end-util.js","../package/sdk/alipay/const.ts","../package/const.ts","../package/sdk/alipay/chooseImage/index.ts","../package/sdk/alipay/register.ts","../package/sdk/alipay/index.ts","../package/sdk/we-chat/const.ts","../package/sdk/we-chat/chooseMedia/index.ts","../package/sdk/we-chat/register.ts","../package/sdk/we-chat/index.ts","../package/sdk/mobile/depend.ts","../package/sdk/mobile/index.ts","../package/main.ts"],"sourcesContent":["const a = /^1[3456789]\\d{9}$/, c = /[\\(\\)\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\-\\+\\=\\_\\|\\{\\}\\[\\]\\:\\;\\'\\<\\>\\,\\.\\?\\\\]/, r = /^(?=.*\\d)(?=.*[a-zA-Z])(?=.*[`~!@#$%^&*()-+=_|{}\\[\\]:;'<>,.?/])[\\da-zA-Z`~!@#$%^&*()-+=_|{}\\[\\]:;'<>,.?/]{12,30}$/;\nfunction l(o) {\n return new Promise((t) => {\n const i = document.createElement(\"script\");\n i.type = \"text/javascript\", i.src = o, i.onload = function() {\n t();\n }, document.head.appendChild(i);\n });\n}\nfunction p(o, t) {\n const i = document.createElement(\"a\");\n i.href = URL.createObjectURL(o), i.target = \"_blank\", i.download = t, document.body.appendChild(i), i.click(), URL.revokeObjectURL(i.href), document.body.removeChild(i);\n}\nconst n = navigator.userAgent, d = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(n), s = /Windows|Macintosh|Linux/i.test(n) && !d, e = {\n WeChatMini: \"WeChatMini\",\n // 微信小程序\n AlipayMini: \"AlipayMini\",\n // 支付宝小程序\n Android: \"Android\",\n // 安卓端\n Ios: \"Ios\",\n // ios端\n Mobile: \"Mobile\",\n // 移动端\n Pc: \"Pc\"\n // pc端\n}, h = {\n [\"is\" + e.WeChatMini]: /miniProgram/i.test(n),\n // 微信小程序\n [\"is\" + e.AlipayMini]: /AlipayClient.*miniProgram/i.test(n),\n // 支付宝小程序\n [\"is\" + e.Android]: /Android/i.test(n),\n // andorid\n [\"is\" + e.Ios]: /iPhone|iPad|iPod/i.test(n),\n // ios\n [\"is\" + e.Mobile]: d,\n [\"is\" + e.Pc]: s\n};\nexport {\n e as ALL_ENV,\n h as RUN_ENV,\n p as downloadByBlob,\n l as downloadCdn,\n r as passwordReg,\n a as phoneReg,\n c as specialCharReg\n};\n//# sourceMappingURL=mo-front-end-util.js.map\n","\r\n// 支付宝sdk下载地址\r\nexport const URL_PATH = 'https://appx/web-view.min.js'\r\n","// 桥接对象,供外部使用\r\nexport const Bridge: {\r\n chooseMedia: any\r\n} = {\r\n chooseMedia: undefined\r\n}\r\n","export async function chooseImage() {\r\n return new Promise((resolve, reject) => {\r\n my.chooseImage({\r\n sourceType: ['album'],\r\n success: function (res: unknown) {\r\n resolve(res)\r\n },\r\n fail: function (err: unknown) {\r\n reject(err)\r\n }\r\n })\r\n })\r\n}\r\n","import { Bridge } from '../../const'\r\nimport { chooseImage } from './chooseImage'\r\n\r\n// 在这里添加具体的需要暴露的方法名\r\nexport function register() {\r\n Bridge.chooseMedia = chooseImage\r\n}\r\n","import { URL_PATH } from './const'\r\nimport { downloadCdn } from 'mo-front-end-util';\r\nimport { register } from './register'\r\n\r\nexport async function init() {\r\n await downloadCdn(URL_PATH)\r\n\r\n register()\r\n}\r\n","\r\n// 支付宝sdk下载地址\r\nexport const URL_PATH = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js'\r\n","export async function chooseMedia() {\r\n return new Promise((resolve, reject) => {\r\n wx.chooseImage({\r\n count: 1,\r\n sizeType: ['original', 'compressed'],\r\n sourceType: ['album', 'camera'],\r\n success: function (res: unknown) {\r\n const localIds = (res as any).localIds\r\n console.log(localIds)\r\n resolve(localIds)\r\n },\r\n fail: function (err: unknown) {\r\n reject(err)\r\n }\r\n })\r\n })\r\n}\r\n","import { Bridge } from '../../const'\r\nimport { chooseMedia } from './chooseMedia'\r\n\r\nexport function register() {\r\n Bridge.chooseMedia = chooseMedia\r\n}\r\n","import { URL_PATH } from './const'\r\nimport { downloadCdn } from 'mo-front-end-util'\r\nimport { register } from './register'\r\n\r\nasync function getConfig(requestUrl: string) {\r\n const urlParam = location.href.split('#')[0]\r\n\r\n return await fetch(`${requestUrl}?url=${urlParam}`).then((response) => {\r\n return response.json()\r\n })\r\n}\r\n\r\nfunction setConfig(arg: InitWxConfigType) {\r\n async function initConfig() {\r\n const configData = await getConfig(arg.requestUrl)\r\n\r\n wx.config({\r\n appId: configData.data.appId,\r\n timestamp: configData.data.timestamp,\r\n nonceStr: configData.data.nonceStr,\r\n signature: configData.data.signature,\r\n jsApiList: arg.jsApiList\r\n })\r\n }\r\n\r\n initConfig()\r\n\r\n // wx.error只需要注册一次,每次失败间隔会重新初始化\r\n wx.error((res: unknown) => {\r\n console.log('wx.error', res)\r\n setTimeout(() => {\r\n initConfig()\r\n }, 1000 * 2)\r\n })\r\n\r\n // 签名5min会过期,所以需要定时更新签名\r\n setInterval(async () => {\r\n initConfig()\r\n }, 1000 * 60 * 4)\r\n\r\n return Promise.resolve()\r\n}\r\n\r\nexport async function init(arg: InitWxConfigType) {\r\n await downloadCdn(URL_PATH)\r\n await setConfig(arg)\r\n\r\n wx.ready(function () {\r\n register()\r\n })\r\n}\r\n","/**\r\n * 使用 JSBridge 总结:\r\n * 1、跟 IOS 交互的时候,只需要且必须注册 iosFunction 方法即可,\r\n * 不能在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,否则 IOS 无法调用到 H5 的注册函数;\r\n * 2、与安卓进行交互的时候\r\n * ①、使用 iosFunction,就可以实现 H5 调用 安卓的注册函数,但是安卓无法调用 H5 的注册函数,\r\n * 并且 H5 调用安卓成功后的回调函数也无法执行\r\n * ②、使用 androidFunction 并且要在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,\r\n * 安卓才可以正常调用 H5 的回调函数,并且 H5 调用安卓成功后的回调函数也可以正常执行了\r\n */\r\n\r\n// @ts-nocheck\r\n\r\nimport { RUN_ENV } from 'mo-front-end-util'\r\n\r\nconst isAndroid = RUN_ENV.isAndroid\r\n\r\n/**\r\n * Android 与安卓交互时:\r\n * 1、不调用这个函数安卓无法调用 H5 注册的事件函数;\r\n * 2、但是 H5 可以正常调用安卓注册的事件函数;\r\n * 3、还必须在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,否则:\r\n * ①、安卓依然无法调用 H5 注册的事件函数\r\n * ①、H5 正常调用安卓事件函数后的回调函数无法正常执行\r\n *\r\n * @param {*} callback\r\n */\r\nconst androidFunction = (callback) => {\r\n if (window.WebViewJavascriptBridge) {\r\n callback(window.WebViewJavascriptBridge)\r\n } else {\r\n document.addEventListener(\r\n 'WebViewJavascriptBridgeReady',\r\n function () {\r\n callback(window.WebViewJavascriptBridge)\r\n },\r\n false\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * IOS 与 IOS 交互时,使用这个函数即可,别的操作都不需要执行\r\n * @param {*} callback\r\n */\r\nconst iosFunction = (callback) => {\r\n if (window.WebViewJavascriptBridge) {\r\n return callback(window.WebViewJavascriptBridge)\r\n }\r\n if (window.WVJBCallbacks) {\r\n return window.WVJBCallbacks.push(callback)\r\n }\r\n window.WVJBCallbacks = [callback]\r\n const WVJBIframe = document.createElement('iframe')\r\n WVJBIframe.style.display = 'none'\r\n WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__'\r\n document.documentElement.appendChild(WVJBIframe)\r\n setTimeout(function () {\r\n document.documentElement.removeChild(WVJBIframe)\r\n }, 0)\r\n}\r\n\r\n/**\r\n * 注册 setupWebViewJavascriptBridge 方法\r\n * 之所以不将上面两个方法融合成一个方法,是因为放在一起,那么就只有 iosFunction 中相关的方法体生效\r\n */\r\nwindow.setupWebViewJavascriptBridge = isAndroid ? androidFunction : iosFunction\r\n\r\n/**\r\n * 这里如果不做判断是不是安卓,而是直接就执行下面的方法,就会导致\r\n * 1、IOS 无法调用 H5 这边注册的事件函数\r\n * 2、H5 可以正常调用 IOS 这边的事件函数,并且 H5 的回调函数可以正常执行\r\n */\r\nif (isAndroid) {\r\n /**\r\n * 与安卓交互时,不调用这个函数会导致:\r\n * 1、H5 可以正常调用 安卓这边的事件函数,但是无法再调用到 H5 的回调函数\r\n *\r\n * 前提 setupWebViewJavascriptBridge 这个函数使用的是 androidFunction 这个,否则还是会导致上面 1 的现象出现\r\n */\r\n window.setupWebViewJavascriptBridge(function (bridge) {\r\n // 注册 H5 界面的默认接收函数(与安卓交互时,不注册这个事件无法接收回调函数)\r\n bridge.init(function (msg, responseCallback) {\r\n alert(msg)\r\n responseCallback('JS 返回给原生的消息内容')\r\n })\r\n })\r\n}\r\n","import './depend'\r\nimport { Bridge } from '../../const'\r\n\r\nexport async function init() {\r\n // @ts-ignore\r\n window.setupWebViewJavascriptBridge((bridge) => {\r\n Object.keys(Bridge).forEach((name) => {\r\n Bridge[name as keyof typeof Bridge] = function (toNativeParams: unknown) {\r\n return new Promise((resolve, reject) => {\r\n // 调用原生方法\r\n bridge.callHandler(\r\n 'sendToNative',\r\n // 传递给原生的参数\r\n {\r\n type: name,\r\n value: toNativeParams\r\n },\r\n (data: { type: string; value: any }) => {\r\n // 原生返回回来的数据\r\n if (data.type === 'success') {\r\n resolve(data.value)\r\n } else {\r\n reject(data.value)\r\n }\r\n }\r\n )\r\n })\r\n }\r\n })\r\n })\r\n}\r\n","import { RUN_ENV } from 'mo-front-end-util'\r\nimport { init as alipayInit } from './sdk/alipay/index'\r\nimport { init as weChatInit } from './sdk/we-chat/index'\r\nimport { init as mobileInit } from './sdk/mobile/index'\r\nimport { Bridge } from './const'\r\n\r\nasync function initBridge(arg: void | InitWxConfigType) {\r\n if (RUN_ENV.isAlipayMini) {\r\n await alipayInit()\r\n } else if (RUN_ENV.isWeChatMini) {\r\n await weChatInit(arg as InitWxConfigType)\r\n } else if (RUN_ENV.isMobile) {\r\n await mobileInit()\r\n }\r\n}\r\n\r\nexport { Bridge, initBridge }\r\n"],"names":["l","o","t","i","n","d","s","e","h","URL_PATH","Bridge","chooseImage","resolve","reject","res","err","register","init","downloadCdn","chooseMedia","localIds","getConfig","requestUrl","urlParam","response","setConfig","arg","initConfig","configData","isAndroid","RUN_ENV","androidFunction","callback","iosFunction","WVJBIframe","bridge","msg","responseCallback","name","toNativeParams","data","initBridge","alipayInit","weChatInit","mobileInit"],"mappings":"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","x_google_ignoreList":[0]}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
(function(t,o){typeof exports=="object"&&typeof module<"u"?o(exports):typeof define=="function"&&define.amd?define(["exports"],o):(t=typeof globalThis<"u"?globalThis:t||self,o(t["mo-h5-bridge"]={}))})(this,function(t){"use strict";function o(i){return new Promise(n=>{const e=document.createElement("script");e.type="text/javascript",e.src=i,e.onload=function(){n()},document.head.appendChild(e)})}const s=navigator.userAgent,l=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(s),w=/Windows|Macintosh|Linux/i.test(s)&&!l,a={WeChatMini:"WeChatMini",AlipayMini:"AlipayMini",Android:"Android",Ios:"Ios",Mobile:"Mobile",Pc:"Pc"},r={["is"+a.WeChatMini]:/miniProgram/i.test(s),["is"+a.AlipayMini]:/AlipayClient.*miniProgram/i.test(s),["is"+a.Android]:/Android/i.test(s),["is"+a.Ios]:/iPhone|iPad|iPod/i.test(s),["is"+a.Mobile]:l,["is"+a.Pc]:w},p="https://appx/web-view.min.js",c={chooseMedia:void 0};async function m(){return new Promise((i,n)=>{my.chooseImage({sourceType:["album"],success:function(e){i(e)},fail:function(e){n(e)}})})}function g(){c.chooseMedia=m}async function h(){await o(p),g()}const y="https://res.wx.qq.com/open/js/jweixin-1.6.0.js";async function b(){return new Promise((i,n)=>{wx.chooseImage({count:1,sizeType:["original","compressed"],sourceType:["album","camera"],success:function(e){const d=e.localIds;console.log(d),i(d)},fail:function(e){n(e)}})})}function v(){c.chooseMedia=b}async function B(i){const n=location.href.split("#")[0];return await fetch(`${i}?url=${n}`).then(e=>e.json())}function M(i){async function n(){const e=await B(i.requestUrl);wx.config({appId:e.data.appId,timestamp:e.data.timestamp,nonceStr:e.data.nonceStr,signature:e.data.signature,jsApiList:i.jsApiList})}return n(),wx.error(e=>{console.log("wx.error",e),setTimeout(()=>{n()},1e3*2)}),setInterval(async()=>{n()},1e3*60*4),Promise.resolve()}async function P(i){await o(y),await M(i),wx.ready(function(){v()})}const f=r.isAndroid,A=i=>{window.WebViewJavascriptBridge?i(window.WebViewJavascriptBridge):document.addEventListener("WebViewJavascriptBridgeReady",function(){i(window.WebViewJavascriptBridge)},!1)},W=i=>{if(window.WebViewJavascriptBridge)return i(window.WebViewJavascriptBridge);if(window.WVJBCallbacks)return window.WVJBCallbacks.push(i);window.WVJBCallbacks=[i];const n=document.createElement("iframe");n.style.display="none",n.src="wvjbscheme://__BRIDGE_LOADED__",document.documentElement.appendChild(n),setTimeout(function(){document.documentElement.removeChild(n)},0)};window.setupWebViewJavascriptBridge=f?A:W,f&&window.setupWebViewJavascriptBridge(function(i){i.init(function(n,e){alert(n),e("JS 返回给原生的消息内容")})});async function C(){window.setupWebViewJavascriptBridge(i=>{Object.keys(c).forEach(n=>{c[n]=function(e){return new Promise((d,J)=>{i.callHandler("sendToNative",{type:n,value:e},u=>{u.type==="success"?d(u.value):J(u.value)})})}})})}async function I(i){r.isAlipayMini?await h():r.isWeChatMini?await P(i):r.isMobile&&await C()}t.Bridge=c,t.initBridge=I,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
|
2
|
+
//# sourceMappingURL=mo-h5-bridge.umd.cjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mo-h5-bridge.umd.cjs","sources":["../node_modules/.pnpm/mo-front-end-util@0.0.12_postcss@8.4.38_rollup@4.18.0_typescript@5.4.5_vite@5.2.12_sass@1.77.4_terser@5.31.1_/node_modules/mo-front-end-util/dist/mo-front-end-util.js","../package/sdk/alipay/const.ts","../package/const.ts","../package/sdk/alipay/chooseImage/index.ts","../package/sdk/alipay/register.ts","../package/sdk/alipay/index.ts","../package/sdk/we-chat/const.ts","../package/sdk/we-chat/chooseMedia/index.ts","../package/sdk/we-chat/register.ts","../package/sdk/we-chat/index.ts","../package/sdk/mobile/depend.ts","../package/sdk/mobile/index.ts","../package/main.ts"],"sourcesContent":["const a = /^1[3456789]\\d{9}$/, c = /[\\(\\)\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\-\\+\\=\\_\\|\\{\\}\\[\\]\\:\\;\\'\\<\\>\\,\\.\\?\\\\]/, r = /^(?=.*\\d)(?=.*[a-zA-Z])(?=.*[`~!@#$%^&*()-+=_|{}\\[\\]:;'<>,.?/])[\\da-zA-Z`~!@#$%^&*()-+=_|{}\\[\\]:;'<>,.?/]{12,30}$/;\nfunction l(o) {\n return new Promise((t) => {\n const i = document.createElement(\"script\");\n i.type = \"text/javascript\", i.src = o, i.onload = function() {\n t();\n }, document.head.appendChild(i);\n });\n}\nfunction p(o, t) {\n const i = document.createElement(\"a\");\n i.href = URL.createObjectURL(o), i.target = \"_blank\", i.download = t, document.body.appendChild(i), i.click(), URL.revokeObjectURL(i.href), document.body.removeChild(i);\n}\nconst n = navigator.userAgent, d = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(n), s = /Windows|Macintosh|Linux/i.test(n) && !d, e = {\n WeChatMini: \"WeChatMini\",\n // 微信小程序\n AlipayMini: \"AlipayMini\",\n // 支付宝小程序\n Android: \"Android\",\n // 安卓端\n Ios: \"Ios\",\n // ios端\n Mobile: \"Mobile\",\n // 移动端\n Pc: \"Pc\"\n // pc端\n}, h = {\n [\"is\" + e.WeChatMini]: /miniProgram/i.test(n),\n // 微信小程序\n [\"is\" + e.AlipayMini]: /AlipayClient.*miniProgram/i.test(n),\n // 支付宝小程序\n [\"is\" + e.Android]: /Android/i.test(n),\n // andorid\n [\"is\" + e.Ios]: /iPhone|iPad|iPod/i.test(n),\n // ios\n [\"is\" + e.Mobile]: d,\n [\"is\" + e.Pc]: s\n};\nexport {\n e as ALL_ENV,\n h as RUN_ENV,\n p as downloadByBlob,\n l as downloadCdn,\n r as passwordReg,\n a as phoneReg,\n c as specialCharReg\n};\n//# sourceMappingURL=mo-front-end-util.js.map\n","\r\n// 支付宝sdk下载地址\r\nexport const URL_PATH = 'https://appx/web-view.min.js'\r\n","// 桥接对象,供外部使用\r\nexport const Bridge: {\r\n chooseMedia: any\r\n} = {\r\n chooseMedia: undefined\r\n}\r\n","export async function chooseImage() {\r\n return new Promise((resolve, reject) => {\r\n my.chooseImage({\r\n sourceType: ['album'],\r\n success: function (res: unknown) {\r\n resolve(res)\r\n },\r\n fail: function (err: unknown) {\r\n reject(err)\r\n }\r\n })\r\n })\r\n}\r\n","import { Bridge } from '../../const'\r\nimport { chooseImage } from './chooseImage'\r\n\r\n// 在这里添加具体的需要暴露的方法名\r\nexport function register() {\r\n Bridge.chooseMedia = chooseImage\r\n}\r\n","import { URL_PATH } from './const'\r\nimport { downloadCdn } from 'mo-front-end-util';\r\nimport { register } from './register'\r\n\r\nexport async function init() {\r\n await downloadCdn(URL_PATH)\r\n\r\n register()\r\n}\r\n","\r\n// 支付宝sdk下载地址\r\nexport const URL_PATH = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js'\r\n","export async function chooseMedia() {\r\n return new Promise((resolve, reject) => {\r\n wx.chooseImage({\r\n count: 1,\r\n sizeType: ['original', 'compressed'],\r\n sourceType: ['album', 'camera'],\r\n success: function (res: unknown) {\r\n const localIds = (res as any).localIds\r\n console.log(localIds)\r\n resolve(localIds)\r\n },\r\n fail: function (err: unknown) {\r\n reject(err)\r\n }\r\n })\r\n })\r\n}\r\n","import { Bridge } from '../../const'\r\nimport { chooseMedia } from './chooseMedia'\r\n\r\nexport function register() {\r\n Bridge.chooseMedia = chooseMedia\r\n}\r\n","import { URL_PATH } from './const'\r\nimport { downloadCdn } from 'mo-front-end-util'\r\nimport { register } from './register'\r\n\r\nasync function getConfig(requestUrl: string) {\r\n const urlParam = location.href.split('#')[0]\r\n\r\n return await fetch(`${requestUrl}?url=${urlParam}`).then((response) => {\r\n return response.json()\r\n })\r\n}\r\n\r\nfunction setConfig(arg: InitWxConfigType) {\r\n async function initConfig() {\r\n const configData = await getConfig(arg.requestUrl)\r\n\r\n wx.config({\r\n appId: configData.data.appId,\r\n timestamp: configData.data.timestamp,\r\n nonceStr: configData.data.nonceStr,\r\n signature: configData.data.signature,\r\n jsApiList: arg.jsApiList\r\n })\r\n }\r\n\r\n initConfig()\r\n\r\n // wx.error只需要注册一次,每次失败间隔会重新初始化\r\n wx.error((res: unknown) => {\r\n console.log('wx.error', res)\r\n setTimeout(() => {\r\n initConfig()\r\n }, 1000 * 2)\r\n })\r\n\r\n // 签名5min会过期,所以需要定时更新签名\r\n setInterval(async () => {\r\n initConfig()\r\n }, 1000 * 60 * 4)\r\n\r\n return Promise.resolve()\r\n}\r\n\r\nexport async function init(arg: InitWxConfigType) {\r\n await downloadCdn(URL_PATH)\r\n await setConfig(arg)\r\n\r\n wx.ready(function () {\r\n register()\r\n })\r\n}\r\n","/**\r\n * 使用 JSBridge 总结:\r\n * 1、跟 IOS 交互的时候,只需要且必须注册 iosFunction 方法即可,\r\n * 不能在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,否则 IOS 无法调用到 H5 的注册函数;\r\n * 2、与安卓进行交互的时候\r\n * ①、使用 iosFunction,就可以实现 H5 调用 安卓的注册函数,但是安卓无法调用 H5 的注册函数,\r\n * 并且 H5 调用安卓成功后的回调函数也无法执行\r\n * ②、使用 androidFunction 并且要在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,\r\n * 安卓才可以正常调用 H5 的回调函数,并且 H5 调用安卓成功后的回调函数也可以正常执行了\r\n */\r\n\r\n// @ts-nocheck\r\n\r\nimport { RUN_ENV } from 'mo-front-end-util'\r\n\r\nconst isAndroid = RUN_ENV.isAndroid\r\n\r\n/**\r\n * Android 与安卓交互时:\r\n * 1、不调用这个函数安卓无法调用 H5 注册的事件函数;\r\n * 2、但是 H5 可以正常调用安卓注册的事件函数;\r\n * 3、还必须在 setupWebViewJavascriptBridge 中执行 bridge.init 方法,否则:\r\n * ①、安卓依然无法调用 H5 注册的事件函数\r\n * ①、H5 正常调用安卓事件函数后的回调函数无法正常执行\r\n *\r\n * @param {*} callback\r\n */\r\nconst androidFunction = (callback) => {\r\n if (window.WebViewJavascriptBridge) {\r\n callback(window.WebViewJavascriptBridge)\r\n } else {\r\n document.addEventListener(\r\n 'WebViewJavascriptBridgeReady',\r\n function () {\r\n callback(window.WebViewJavascriptBridge)\r\n },\r\n false\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * IOS 与 IOS 交互时,使用这个函数即可,别的操作都不需要执行\r\n * @param {*} callback\r\n */\r\nconst iosFunction = (callback) => {\r\n if (window.WebViewJavascriptBridge) {\r\n return callback(window.WebViewJavascriptBridge)\r\n }\r\n if (window.WVJBCallbacks) {\r\n return window.WVJBCallbacks.push(callback)\r\n }\r\n window.WVJBCallbacks = [callback]\r\n const WVJBIframe = document.createElement('iframe')\r\n WVJBIframe.style.display = 'none'\r\n WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__'\r\n document.documentElement.appendChild(WVJBIframe)\r\n setTimeout(function () {\r\n document.documentElement.removeChild(WVJBIframe)\r\n }, 0)\r\n}\r\n\r\n/**\r\n * 注册 setupWebViewJavascriptBridge 方法\r\n * 之所以不将上面两个方法融合成一个方法,是因为放在一起,那么就只有 iosFunction 中相关的方法体生效\r\n */\r\nwindow.setupWebViewJavascriptBridge = isAndroid ? androidFunction : iosFunction\r\n\r\n/**\r\n * 这里如果不做判断是不是安卓,而是直接就执行下面的方法,就会导致\r\n * 1、IOS 无法调用 H5 这边注册的事件函数\r\n * 2、H5 可以正常调用 IOS 这边的事件函数,并且 H5 的回调函数可以正常执行\r\n */\r\nif (isAndroid) {\r\n /**\r\n * 与安卓交互时,不调用这个函数会导致:\r\n * 1、H5 可以正常调用 安卓这边的事件函数,但是无法再调用到 H5 的回调函数\r\n *\r\n * 前提 setupWebViewJavascriptBridge 这个函数使用的是 androidFunction 这个,否则还是会导致上面 1 的现象出现\r\n */\r\n window.setupWebViewJavascriptBridge(function (bridge) {\r\n // 注册 H5 界面的默认接收函数(与安卓交互时,不注册这个事件无法接收回调函数)\r\n bridge.init(function (msg, responseCallback) {\r\n alert(msg)\r\n responseCallback('JS 返回给原生的消息内容')\r\n })\r\n })\r\n}\r\n","import './depend'\r\nimport { Bridge } from '../../const'\r\n\r\nexport async function init() {\r\n // @ts-ignore\r\n window.setupWebViewJavascriptBridge((bridge) => {\r\n Object.keys(Bridge).forEach((name) => {\r\n Bridge[name as keyof typeof Bridge] = function (toNativeParams: unknown) {\r\n return new Promise((resolve, reject) => {\r\n // 调用原生方法\r\n bridge.callHandler(\r\n 'sendToNative',\r\n // 传递给原生的参数\r\n {\r\n type: name,\r\n value: toNativeParams\r\n },\r\n (data: { type: string; value: any }) => {\r\n // 原生返回回来的数据\r\n if (data.type === 'success') {\r\n resolve(data.value)\r\n } else {\r\n reject(data.value)\r\n }\r\n }\r\n )\r\n })\r\n }\r\n })\r\n })\r\n}\r\n","import { RUN_ENV } from 'mo-front-end-util'\r\nimport { init as alipayInit } from './sdk/alipay/index'\r\nimport { init as weChatInit } from './sdk/we-chat/index'\r\nimport { init as mobileInit } from './sdk/mobile/index'\r\nimport { Bridge } from './const'\r\n\r\nasync function initBridge(arg: void | InitWxConfigType) {\r\n if (RUN_ENV.isAlipayMini) {\r\n await alipayInit()\r\n } else if (RUN_ENV.isWeChatMini) {\r\n await weChatInit(arg as InitWxConfigType)\r\n } else if (RUN_ENV.isMobile) {\r\n await mobileInit()\r\n }\r\n}\r\n\r\nexport { Bridge, initBridge }\r\n"],"names":["l","o","t","i","n","d","s","e","h","URL_PATH","Bridge","chooseImage","resolve","reject","res","err","register","init","downloadCdn","chooseMedia","localIds","getConfig","requestUrl","urlParam","response","setConfig","arg","initConfig","configData","isAndroid","RUN_ENV","androidFunction","callback","iosFunction","WVJBIframe","bridge","msg","responseCallback","name","toNativeParams","data","initBridge","alipayInit","weChatInit","mobileInit"],"mappings":"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","x_google_ignoreList":[0]}
|
package/package.json
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
{
|
2
|
+
"name": "mo-h5-bridge",
|
3
|
+
"private": false,
|
4
|
+
"version": "0.0.1",
|
5
|
+
"type": "module",
|
6
|
+
"main": "./dist/mo-h5-bridge.js",
|
7
|
+
"types": "./dist/index.d.ts",
|
8
|
+
"scripts": {
|
9
|
+
"dev": "vite --mode dev",
|
10
|
+
"pack": "cd ./build && index.bat",
|
11
|
+
"doc": "vite build --mode doc",
|
12
|
+
"build": "vite build --mode package"
|
13
|
+
},
|
14
|
+
"dependencies": {
|
15
|
+
"@types/pinyin": "^2.10.2",
|
16
|
+
"lodash-es": "^4.17.21",
|
17
|
+
"mo-front-end-util": "^0.0.12",
|
18
|
+
"mo-web-components": "^4.0.17",
|
19
|
+
"nprogress": "^0.2.0",
|
20
|
+
"rimraf": "^6.0.1",
|
21
|
+
"screenfull": "^6.0.2",
|
22
|
+
"unocss": "^0.60.4",
|
23
|
+
"vite-plugin-dts": "^4.5.0",
|
24
|
+
"vue": "^3.4.21",
|
25
|
+
"vue-router": "^4.3.2"
|
26
|
+
},
|
27
|
+
"devDependencies": {
|
28
|
+
"@vitejs/plugin-vue": "^5.0.4",
|
29
|
+
"@vueuse/core": "^10.10.0",
|
30
|
+
"autoprefixer": "^10.4.19",
|
31
|
+
"eslint": "^9.4.0",
|
32
|
+
"eslint-config-prettier": "^9.1.0",
|
33
|
+
"eslint-define-config": "^2.1.0",
|
34
|
+
"eslint-plugin-import": "^2.29.1",
|
35
|
+
"eslint-plugin-prettier": "^5.1.3",
|
36
|
+
"eslint-plugin-unused-imports": "^4.0.0",
|
37
|
+
"eslint-plugin-vue": "^9.26.0",
|
38
|
+
"globals": "^15.4.0",
|
39
|
+
"postcss-html": "^1.7.0",
|
40
|
+
"postcss-import": "^16.1.0",
|
41
|
+
"postcss-scss": "^4.0.9",
|
42
|
+
"prettier": "^3.3.2",
|
43
|
+
"rollup-plugin-visualizer": "^5.12.0",
|
44
|
+
"sass": "^1.77.4",
|
45
|
+
"stylelint-config-html": "^1.1.0",
|
46
|
+
"stylelint-config-recess-order": "^5.0.1",
|
47
|
+
"stylelint-config-recommended-scss": "^14.0.0",
|
48
|
+
"stylelint-config-recommended-vue": "^1.5.0",
|
49
|
+
"stylelint-config-standard": "^36.0.0",
|
50
|
+
"stylelint-config-standard-scss": "^13.1.0",
|
51
|
+
"stylelint-order": "^6.0.4",
|
52
|
+
"stylelint-prettier": "^5.0.0",
|
53
|
+
"stylelint-scss": "^6.3.1",
|
54
|
+
"typescript": "^5.2.2",
|
55
|
+
"typescript-eslint": "^7.13.0",
|
56
|
+
"vite": "^5.2.0",
|
57
|
+
"vite-plugin-doc-preview": "^0.2.1",
|
58
|
+
"vite-plugin-eslint": "^1.8.1",
|
59
|
+
"vite-plugin-stylelint": "^5.3.1",
|
60
|
+
"vue-tsc": "^2.0.6"
|
61
|
+
}
|
62
|
+
}
|
@@ -0,0 +1,136 @@
|
|
1
|
+
// vite.config.ts
|
2
|
+
import { fileURLToPath, URL } from "node:url";
|
3
|
+
import { defineConfig } from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mo-web-components/node_modules/.pnpm/vite@5.2.12_sass@1.77.4_terser@5.31.1/node_modules/vite/dist/node/index.js";
|
4
|
+
import vue from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mo-web-components/node_modules/.pnpm/@vitejs+plugin-vue@5.0.5_vite@5.2.12_sass@1.77.4_terser@5.31.1__vue@3.4.27_typescript@5.4.5_/node_modules/@vitejs/plugin-vue/dist/index.mjs";
|
5
|
+
import unoCSS from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mo-web-components/node_modules/.pnpm/unocss@0.60.4_postcss@8.4.38_rollup@4.18.0_vite@5.2.12_sass@1.77.4_terser@5.31.1_/node_modules/unocss/dist/vite.mjs";
|
6
|
+
import eslintPlugin from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mo-web-components/node_modules/.pnpm/vite-plugin-eslint@1.8.1_eslint@9.4.0_vite@5.2.12_sass@1.77.4_terser@5.31.1_/node_modules/vite-plugin-eslint/dist/index.mjs";
|
7
|
+
import stylelintPlugin from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mo-web-components/node_modules/.pnpm/vite-plugin-stylelint@5.3.1_postcss@8.4.38_rollup@4.18.0_stylelint@16.6.1_typescript@5.4.5__v_syctlevscz6xbciy7mv4wfbjca/node_modules/vite-plugin-stylelint/dist/index.mjs";
|
8
|
+
import markedPreview from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mo-web-components/node_modules/.pnpm/vite-plugin-doc-preview@0.2.1/node_modules/vite-plugin-doc-preview/dist/index.js";
|
9
|
+
var __vite_injected_original_import_meta_url = "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mo-web-components/vite.config.ts";
|
10
|
+
var DEV_CONFIG = {
|
11
|
+
config: {
|
12
|
+
base: "./",
|
13
|
+
server: {
|
14
|
+
host: "0.0.0.0",
|
15
|
+
port: 6688,
|
16
|
+
open: true,
|
17
|
+
proxy: {
|
18
|
+
"/api": {
|
19
|
+
target: "https://manager-sit-tc.mobje.cn",
|
20
|
+
changeOrigin: true,
|
21
|
+
rewrite: (path) => path.replace(new RegExp("^/api"), "")
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
},
|
26
|
+
plugins: [
|
27
|
+
vue({
|
28
|
+
include: [/\.vue$/, /\.md$/]
|
29
|
+
}),
|
30
|
+
markedPreview(),
|
31
|
+
eslintPlugin({
|
32
|
+
cache: false,
|
33
|
+
include: [
|
34
|
+
"doc/**/*.{js,ts,vue}",
|
35
|
+
"doc/*.{js,ts,vue}",
|
36
|
+
"*.{js,ts}",
|
37
|
+
"package/**/*.{js,ts,vue}",
|
38
|
+
"package/*.{js,ts,vue}"
|
39
|
+
],
|
40
|
+
fix: true
|
41
|
+
})
|
42
|
+
]
|
43
|
+
};
|
44
|
+
var DOCS_CONFIG = {
|
45
|
+
config: {
|
46
|
+
base: "./",
|
47
|
+
build: {
|
48
|
+
outDir: `dist`
|
49
|
+
}
|
50
|
+
},
|
51
|
+
plugins: [
|
52
|
+
vue({
|
53
|
+
include: [/\.vue$/, /\.md$/]
|
54
|
+
}),
|
55
|
+
markedPreview(),
|
56
|
+
eslintPlugin({
|
57
|
+
cache: false,
|
58
|
+
include: [
|
59
|
+
"doc/**/*.{js,ts,vue}",
|
60
|
+
"doc/*.{js,ts,vue}",
|
61
|
+
"*.{js,ts}",
|
62
|
+
"package/**/*.{js,ts,vue}",
|
63
|
+
"package/*.{js,ts,vue}"
|
64
|
+
],
|
65
|
+
fix: true
|
66
|
+
})
|
67
|
+
// visualizer({
|
68
|
+
// open: true
|
69
|
+
// })
|
70
|
+
]
|
71
|
+
};
|
72
|
+
var PACKAGES_CONFIG = {
|
73
|
+
config: {
|
74
|
+
base: "./",
|
75
|
+
build: {
|
76
|
+
lib: {
|
77
|
+
entry: "./package/main.ts",
|
78
|
+
name: "mo-web-components"
|
79
|
+
},
|
80
|
+
sourcemap: true,
|
81
|
+
outDir: "dist",
|
82
|
+
// 确保外部化处理那些你不想打包进库的依赖
|
83
|
+
rollupOptions: {
|
84
|
+
external: ["vue"]
|
85
|
+
}
|
86
|
+
}
|
87
|
+
},
|
88
|
+
plugins: [
|
89
|
+
vue({
|
90
|
+
include: [/\.vue$/]
|
91
|
+
}),
|
92
|
+
eslintPlugin({
|
93
|
+
cache: false,
|
94
|
+
include: [
|
95
|
+
"doc/**/*.{js,ts,vue}",
|
96
|
+
"doc/*.{js,ts,vue}",
|
97
|
+
"*.{js,ts}",
|
98
|
+
"package/**/*.{js,ts,vue}",
|
99
|
+
"package/*.{js,ts,vue}"
|
100
|
+
],
|
101
|
+
fix: true
|
102
|
+
})
|
103
|
+
// visualizer({
|
104
|
+
// open: true
|
105
|
+
// })
|
106
|
+
]
|
107
|
+
};
|
108
|
+
var vite_config_default = defineConfig(({ mode }) => {
|
109
|
+
const viteConfig = mode === "dev" ? DEV_CONFIG : mode === "doc" ? DOCS_CONFIG : PACKAGES_CONFIG;
|
110
|
+
return {
|
111
|
+
...viteConfig.config,
|
112
|
+
resolve: {
|
113
|
+
alias: {
|
114
|
+
"@": fileURLToPath(new URL("./package", __vite_injected_original_import_meta_url)),
|
115
|
+
"@doc": fileURLToPath(new URL("./doc", __vite_injected_original_import_meta_url))
|
116
|
+
}
|
117
|
+
},
|
118
|
+
plugins: [
|
119
|
+
...viteConfig.plugins,
|
120
|
+
unoCSS(),
|
121
|
+
stylelintPlugin({
|
122
|
+
include: [
|
123
|
+
"doc/**/*.{css,scss,less}",
|
124
|
+
"doc/*.{css,scss,less}",
|
125
|
+
"package/**/*.{css,scss,less}",
|
126
|
+
"package/*.{css,scss,less}"
|
127
|
+
],
|
128
|
+
fix: true
|
129
|
+
})
|
130
|
+
]
|
131
|
+
};
|
132
|
+
});
|
133
|
+
export {
|
134
|
+
vite_config_default as default
|
135
|
+
};
|
136
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxwcm9qZWN0c1xcXFxcdTkxQ0RcdTY3ODRcdTc2ODRcdTk4NzlcdTc2RUVcXFxcbW9iamUtd2ViLWNvbXBvbmVudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkQ6XFxcXHByb2plY3RzXFxcXFx1OTFDRFx1Njc4NFx1NzY4NFx1OTg3OVx1NzZFRVxcXFxtb2JqZS13ZWItY29tcG9uZW50c1xcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRDovcHJvamVjdHMvJUU5JTg3JThEJUU2JTlFJTg0JUU3JTlBJTg0JUU5JUExJUI5JUU3JTlCJUFFL21vYmplLXdlYi1jb21wb25lbnRzL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHtmaWxlVVJMVG9QYXRoLCBVUkx9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7ZGVmaW5lQ29uZmlnfSBmcm9tICd2aXRlJztcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJztcbmltcG9ydCB1bm9DU1MgZnJvbSAndW5vY3NzL3ZpdGUnO1xuaW1wb3J0IGVzbGludFBsdWdpbiBmcm9tICd2aXRlLXBsdWdpbi1lc2xpbnQnO1xuaW1wb3J0IHN0eWxlbGludFBsdWdpbiBmcm9tICd2aXRlLXBsdWdpbi1zdHlsZWxpbnQnO1xuaW1wb3J0IG1hcmtlZFByZXZpZXcgZnJvbSAndml0ZS1wbHVnaW4tZG9jLXByZXZpZXcnXG5pbXBvcnQgeyB2aXN1YWxpemVyIH0gZnJvbSAncm9sbHVwLXBsdWdpbi12aXN1YWxpemVyJztcblxuY29uc3QgREVWX0NPTkZJRyA9IHtcbiAgY29uZmlnOiB7XG4gICAgYmFzZTogJy4vJyxcbiAgICBzZXJ2ZXI6IHtcbiAgICAgIGhvc3Q6ICcwLjAuMC4wJyxcbiAgICAgIHBvcnQ6IDY2ODgsXG4gICAgICBvcGVuOiB0cnVlLFxuICAgICAgcHJveHk6IHtcbiAgICAgICAgJy9hcGknOiB7XG4gICAgICAgICAgdGFyZ2V0OiAnaHR0cHM6Ly9tYW5hZ2VyLXNpdC10Yy5tb2JqZS5jbicsXG4gICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxuICAgICAgICAgIHJld3JpdGU6IChwYXRoKSA9PiBwYXRoLnJlcGxhY2UobmV3IFJlZ0V4cCgnXi9hcGknKSwgJycpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICB9LFxuICBwbHVnaW5zOiBbXG4gICAgdnVlKHtcbiAgICAgIGluY2x1ZGU6IFsvXFwudnVlJC8sIC9cXC5tZCQvXSxcbiAgICB9KSxcbiAgICBtYXJrZWRQcmV2aWV3KCksXG4gICAgZXNsaW50UGx1Z2luKHtcbiAgICAgIGNhY2hlOiBmYWxzZSxcbiAgICAgIGluY2x1ZGU6IFtcbiAgICAgICAgJ2RvY3MvKiovKi57anMsdHMsdnVlfScsXG4gICAgICAgICdkb2NzLyoue2pzLHRzLHZ1ZX0nLFxuICAgICAgICAnKi57anMsdHN9JyxcbiAgICAgICAgJ3BhY2thZ2VzLyoqLyoue2pzLHRzLHZ1ZX0nLFxuICAgICAgICAncGFja2FnZXMvKi57anMsdHMsdnVlfScsXG4gICAgICBdLFxuICAgICAgZml4OiB0cnVlXG4gICAgfSksXG4gIF1cbn1cblxuY29uc3QgRE9DU19DT05GSUcgPSB7XG4gIGNvbmZpZzoge1xuICAgIGJhc2U6ICcuLycsXG4gICAgYnVpbGQ6IHtcbiAgICAgIG91dERpcjogYGRpc3QtZG9jcy9kb2NzYCxcbiAgICB9LFxuICB9LFxuICBwbHVnaW5zOiBbXG4gICAgdnVlKHtcbiAgICAgIGluY2x1ZGU6IFsvXFwudnVlJC8sIC9cXC5tZCQvXSxcbiAgICB9KSxcbiAgICBtYXJrZWRQcmV2aWV3KCksXG4gICAgZXNsaW50UGx1Z2luKHtcbiAgICAgIGNhY2hlOiBmYWxzZSxcbiAgICAgIGluY2x1ZGU6IFtcbiAgICAgICAgJ2RvY3MvKiovKi57anMsdHMsdnVlfScsXG4gICAgICAgICdkb2NzLyoue2pzLHRzLHZ1ZX0nLFxuICAgICAgICAnKi57anMsdHN9JyxcbiAgICAgICAgJ3BhY2thZ2VzLyoqLyoue2pzLHRzLHZ1ZX0nLFxuICAgICAgICAncGFja2FnZXMvKi57anMsdHMsdnVlfScsXG4gICAgICBdLFxuICAgICAgZml4OiB0cnVlXG4gICAgfSksXG4gICAgLy8gdmlzdWFsaXplcih7XG4gICAgLy8gICBvcGVuOiB0cnVlXG4gICAgLy8gfSlcbiAgXVxufVxuXG5jb25zdCBQQUNLQUdFU19DT05GSUcgPSB7XG4gIGNvbmZpZzoge1xuICAgIGJhc2U6ICcuLycsXG4gICAgYnVpbGQ6IHtcbiAgICAgIGxpYjoge1xuICAgICAgICBlbnRyeTogJy4vcGFja2FnZXMvbWFpbi50cycsXG4gICAgICAgIG5hbWU6ICdtb2JqZS13ZWItY29tcG9uZW50cycsXG4gICAgICB9LFxuICAgICAgc291cmNlbWFwOiB0cnVlLFxuICAgICAgb3V0RGlyOiAnZGlzdCcsXG4gICAgICAvLyBcdTc4NkVcdTRGRERcdTU5MTZcdTkwRThcdTUzMTZcdTU5MDRcdTc0MDZcdTkwQTNcdTRFOUJcdTRGNjBcdTRFMERcdTYwRjNcdTYyNTNcdTUzMDVcdThGREJcdTVFOTNcdTc2ODRcdTRGOURcdThENTZcbiAgICAgIHJvbGx1cE9wdGlvbnM6IHtcbiAgICAgICAgZXh0ZXJuYWw6IFsndnVlJ10sXG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgcGx1Z2luczogW1xuICAgIHZ1ZSh7XG4gICAgICBpbmNsdWRlOiBbL1xcLnZ1ZSQvXSxcbiAgICB9KSxcbiAgICBlc2xpbnRQbHVnaW4oe1xuICAgICAgY2FjaGU6IGZhbHNlLFxuICAgICAgaW5jbHVkZTogW1xuICAgICAgICAnZG9jcy8qKi8qLntqcyx0cyx2dWV9JyxcbiAgICAgICAgJ2RvY3MvKi57anMsdHMsdnVlfScsXG4gICAgICAgICcqLntqcyx0c30nLFxuICAgICAgICAncGFja2FnZXMvKiovKi57anMsdHMsdnVlfScsXG4gICAgICAgICdwYWNrYWdlcy8qLntqcyx0cyx2dWV9JyxcbiAgICAgIF0sXG4gICAgICBmaXg6IHRydWVcbiAgICB9KSxcbiAgICAvLyB2aXN1YWxpemVyKHtcbiAgICAvLyAgIG9wZW46IHRydWVcbiAgICAvLyB9KVxuICBdXG59XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZygoe21vZGV9KSA9PiB7XG4gIGNvbnN0IHZpdGVDb25maWcgPSBtb2RlID09PSAnZGV2JyA/IERFVl9DT05GSUcgOiAoXG4gICAgbW9kZSA9PT0gJ2RvY3MnID8gRE9DU19DT05GSUcgOiBQQUNLQUdFU19DT05GSUdcbiAgKVxuXG4gIHJldHVybiB7XG4gICAgLi4udml0ZUNvbmZpZy5jb25maWcsXG4gICAgcmVzb2x2ZToge1xuICAgICAgYWxpYXM6IHtcbiAgICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vcGFja2FnZXMnLCBpbXBvcnQubWV0YS51cmwpKSxcbiAgICAgICAgJ0Bkb2NzJzogZmlsZVVSTFRvUGF0aChuZXcgVVJMKCcuL2RvY3MnLCBpbXBvcnQubWV0YS51cmwpKSxcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgcGx1Z2luczogW1xuICAgICAgLi4udml0ZUNvbmZpZy5wbHVnaW5zLFxuXG4gICAgICB1bm9DU1MoKSxcblxuICAgICAgc3R5bGVsaW50UGx1Z2luKHtcbiAgICAgICAgaW5jbHVkZTogW1xuICAgICAgICAgICdkb2NzLyoqLyoue2NzcyxzY3NzLGxlc3N9JyxcbiAgICAgICAgICAnZG9jcy8qLntjc3Msc2NzcyxsZXNzfScsXG4gICAgICAgICAgJ3BhY2thZ2VzLyoqLyoue2NzcyxzY3NzLGxlc3N9JyxcbiAgICAgICAgICAncGFja2FnZXMvKi57Y3NzLHNjc3MsbGVzc30nLFxuICAgICAgICBdLFxuICAgICAgICBmaXg6IHRydWVcbiAgICAgIH0pXG4gICAgXVxuICB9O1xufSk7XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQW9WLFNBQVEsZUFBZSxXQUFVO0FBQ3JYLFNBQVEsb0JBQW1CO0FBQzNCLE9BQU8sU0FBUztBQUNoQixPQUFPLFlBQVk7QUFDbkIsT0FBTyxrQkFBa0I7QUFDekIsT0FBTyxxQkFBcUI7QUFDNUIsT0FBTyxtQkFBbUI7QUFOaUssSUFBTSwyQ0FBMkM7QUFTNU8sSUFBTSxhQUFhO0FBQUEsRUFDakIsUUFBUTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sUUFBUTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sT0FBTztBQUFBLFFBQ0wsUUFBUTtBQUFBLFVBQ04sUUFBUTtBQUFBLFVBQ1IsY0FBYztBQUFBLFVBQ2QsU0FBUyxDQUFDLFNBQVMsS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLEdBQUcsRUFBRTtBQUFBLFFBQ3pEO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsTUFDRixTQUFTLENBQUMsVUFBVSxPQUFPO0FBQUEsSUFDN0IsQ0FBQztBQUFBLElBQ0QsY0FBYztBQUFBLElBQ2QsYUFBYTtBQUFBLE1BQ1gsT0FBTztBQUFBLE1BQ1AsU0FBUztBQUFBLFFBQ1A7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUFBLE1BQ0EsS0FBSztBQUFBLElBQ1AsQ0FBQztBQUFBLEVBQ0g7QUFDRjtBQUVBLElBQU0sY0FBYztBQUFBLEVBQ2xCLFFBQVE7QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxNQUNMLFFBQVE7QUFBQSxJQUNWO0FBQUEsRUFDRjtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsSUFBSTtBQUFBLE1BQ0YsU0FBUyxDQUFDLFVBQVUsT0FBTztBQUFBLElBQzdCLENBQUM7QUFBQSxJQUNELGNBQWM7QUFBQSxJQUNkLGFBQWE7QUFBQSxNQUNYLE9BQU87QUFBQSxNQUNQLFNBQVM7QUFBQSxRQUNQO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFBQSxNQUNBLEtBQUs7QUFBQSxJQUNQLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlIO0FBQ0Y7QUFFQSxJQUFNLGtCQUFrQjtBQUFBLEVBQ3RCLFFBQVE7QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLE9BQU87QUFBQSxNQUNMLEtBQUs7QUFBQSxRQUNILE9BQU87QUFBQSxRQUNQLE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxRQUFRO0FBQUE7QUFBQSxNQUVSLGVBQWU7QUFBQSxRQUNiLFVBQVUsQ0FBQyxLQUFLO0FBQUEsTUFDbEI7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsSUFBSTtBQUFBLE1BQ0YsU0FBUyxDQUFDLFFBQVE7QUFBQSxJQUNwQixDQUFDO0FBQUEsSUFDRCxhQUFhO0FBQUEsTUFDWCxPQUFPO0FBQUEsTUFDUCxTQUFTO0FBQUEsUUFDUDtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsTUFDQSxLQUFLO0FBQUEsSUFDUCxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJSDtBQUNGO0FBRUEsSUFBTyxzQkFBUSxhQUFhLENBQUMsRUFBQyxLQUFJLE1BQU07QUFDdEMsUUFBTSxhQUFhLFNBQVMsUUFBUSxhQUNsQyxTQUFTLFNBQVMsY0FBYztBQUdsQyxTQUFPO0FBQUEsSUFDTCxHQUFHLFdBQVc7QUFBQSxJQUNkLFNBQVM7QUFBQSxNQUNQLE9BQU87QUFBQSxRQUNMLEtBQUssY0FBYyxJQUFJLElBQUksY0FBYyx3Q0FBZSxDQUFDO0FBQUEsUUFDekQsU0FBUyxjQUFjLElBQUksSUFBSSxVQUFVLHdDQUFlLENBQUM7QUFBQSxNQUMzRDtBQUFBLElBQ0Y7QUFBQSxJQUVBLFNBQVM7QUFBQSxNQUNQLEdBQUcsV0FBVztBQUFBLE1BRWQsT0FBTztBQUFBLE1BRVAsZ0JBQWdCO0FBQUEsUUFDZCxTQUFTO0FBQUEsVUFDUDtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFBQSxRQUNBLEtBQUs7QUFBQSxNQUNQLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGLENBQUM7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -0,0 +1,119 @@
|
|
1
|
+
// vite.config.ts
|
2
|
+
import { fileURLToPath, URL } from "node:url";
|
3
|
+
import { defineConfig } from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mobje-web-util/node_modules/.pnpm/vite@5.2.12_sass@1.77.4_terser@5.31.1/node_modules/vite/dist/node/index.js";
|
4
|
+
import vue from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mobje-web-util/node_modules/.pnpm/@vitejs+plugin-vue@5.0.5_vite@5.2.12_sass@1.77.4_terser@5.31.1__vue@3.4.27_typescript@5.4.5_/node_modules/@vitejs/plugin-vue/dist/index.mjs";
|
5
|
+
import unoCSS from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mobje-web-util/node_modules/.pnpm/unocss@0.60.4_postcss@8.4.38_rollup@4.18.0_vite@5.2.12_sass@1.77.4_terser@5.31.1_/node_modules/unocss/dist/vite.mjs";
|
6
|
+
import eslintPlugin from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mobje-web-util/node_modules/.pnpm/vite-plugin-eslint@1.8.1_eslint@9.4.0_vite@5.2.12_sass@1.77.4_terser@5.31.1_/node_modules/vite-plugin-eslint/dist/index.mjs";
|
7
|
+
import stylelintPlugin from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mobje-web-util/node_modules/.pnpm/vite-plugin-stylelint@5.3.1_postcss@8.4.38_rollup@4.18.0_stylelint@16.6.1_typescript@5.4.5__v_syctlevscz6xbciy7mv4wfbjca/node_modules/vite-plugin-stylelint/dist/index.mjs";
|
8
|
+
import markedPreview from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mobje-web-util/node_modules/.pnpm/vite-plugin-doc-preview@0.2.1/node_modules/vite-plugin-doc-preview/dist/index.js";
|
9
|
+
import dts from "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mobje-web-util/node_modules/.pnpm/vite-plugin-dts@4.5.0_rollup@4.18.0_typescript@5.4.5_vite@5.2.12_sass@1.77.4_terser@5.31.1_/node_modules/vite-plugin-dts/dist/index.mjs";
|
10
|
+
var __vite_injected_original_import_meta_url = "file:///D:/projects/%E9%87%8D%E6%9E%84%E7%9A%84%E9%A1%B9%E7%9B%AE/mobje-web-util/vite.config.ts";
|
11
|
+
var DEV_CONFIG = {
|
12
|
+
config: {
|
13
|
+
base: "",
|
14
|
+
server: {
|
15
|
+
host: "0.0.0.0",
|
16
|
+
port: 6699,
|
17
|
+
open: true
|
18
|
+
}
|
19
|
+
},
|
20
|
+
plugins: [
|
21
|
+
vue({
|
22
|
+
include: [/\.vue$/, /\.md$/]
|
23
|
+
}),
|
24
|
+
unoCSS(),
|
25
|
+
markedPreview(),
|
26
|
+
eslintPlugin({
|
27
|
+
cache: false,
|
28
|
+
include: [
|
29
|
+
"doc/**/*.{js,ts,vue}",
|
30
|
+
"doc/*.{js,ts,vue}",
|
31
|
+
"*.{js,ts}",
|
32
|
+
"package/**/*.{js,ts,vue}",
|
33
|
+
"package/*.{js,ts,vue}"
|
34
|
+
],
|
35
|
+
fix: true
|
36
|
+
})
|
37
|
+
]
|
38
|
+
};
|
39
|
+
var DOCS_CONFIG = {
|
40
|
+
config: {
|
41
|
+
base: "./",
|
42
|
+
build: {
|
43
|
+
outDir: `dist-doc`
|
44
|
+
}
|
45
|
+
},
|
46
|
+
plugins: [
|
47
|
+
vue({
|
48
|
+
include: [/\.vue$/, /\.md$/]
|
49
|
+
}),
|
50
|
+
unoCSS(),
|
51
|
+
markedPreview(),
|
52
|
+
eslintPlugin({
|
53
|
+
cache: false,
|
54
|
+
include: [
|
55
|
+
"doc/**/*.{js,ts,vue}",
|
56
|
+
"doc/*.{js,ts,vue}",
|
57
|
+
"package/**/*.{js,ts,vue}",
|
58
|
+
"package/*.{js,ts,vue}"
|
59
|
+
],
|
60
|
+
fix: true
|
61
|
+
}),
|
62
|
+
stylelintPlugin({
|
63
|
+
include: [
|
64
|
+
"doc/**/*.{css,scss,less}",
|
65
|
+
"doc/*.{css,scss,less}",
|
66
|
+
"package/**/*.{css,scss,less}",
|
67
|
+
"package/*.{css,scss,less}"
|
68
|
+
],
|
69
|
+
fix: true
|
70
|
+
})
|
71
|
+
]
|
72
|
+
};
|
73
|
+
var PACKAGES_CONFIG = {
|
74
|
+
config: {
|
75
|
+
base: "./",
|
76
|
+
build: {
|
77
|
+
lib: {
|
78
|
+
entry: "./package/main.ts",
|
79
|
+
name: "mo-front-end-util"
|
80
|
+
},
|
81
|
+
sourcemap: true,
|
82
|
+
outDir: "dist"
|
83
|
+
}
|
84
|
+
},
|
85
|
+
plugins: [
|
86
|
+
eslintPlugin({
|
87
|
+
cache: false,
|
88
|
+
include: [
|
89
|
+
"package/**/*.{js,ts,vue}",
|
90
|
+
"package/*.{js,ts,vue}"
|
91
|
+
],
|
92
|
+
fix: true
|
93
|
+
}),
|
94
|
+
dts({
|
95
|
+
// 生成 .d.ts 文件
|
96
|
+
insertTypesEntry: true
|
97
|
+
// 在 package.json 中自动生成 types 字段
|
98
|
+
})
|
99
|
+
]
|
100
|
+
};
|
101
|
+
var vite_config_default = defineConfig(({ mode }) => {
|
102
|
+
const viteConfig = mode === "dev" ? DEV_CONFIG : mode === "doc" ? DOCS_CONFIG : PACKAGES_CONFIG;
|
103
|
+
return {
|
104
|
+
...viteConfig.config,
|
105
|
+
resolve: {
|
106
|
+
alias: {
|
107
|
+
"@": fileURLToPath(new URL("./package", __vite_injected_original_import_meta_url)),
|
108
|
+
"@doc": fileURLToPath(new URL("./doc", __vite_injected_original_import_meta_url))
|
109
|
+
}
|
110
|
+
},
|
111
|
+
plugins: [
|
112
|
+
...viteConfig.plugins
|
113
|
+
]
|
114
|
+
};
|
115
|
+
});
|
116
|
+
export {
|
117
|
+
vite_config_default as default
|
118
|
+
};
|
119
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxwcm9qZWN0c1xcXFxcdTkxQ0RcdTY3ODRcdTc2ODRcdTk4NzlcdTc2RUVcXFxcbW9iamUtd2ViLXV0aWxcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkQ6XFxcXHByb2plY3RzXFxcXFx1OTFDRFx1Njc4NFx1NzY4NFx1OTg3OVx1NzZFRVxcXFxtb2JqZS13ZWItdXRpbFxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRDovcHJvamVjdHMvJUU5JTg3JThEJUU2JTlFJTg0JUU3JTlBJTg0JUU5JUExJUI5JUU3JTlCJUFFL21vYmplLXdlYi11dGlsL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHtmaWxlVVJMVG9QYXRoLCBVUkx9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7ZGVmaW5lQ29uZmlnfSBmcm9tICd2aXRlJztcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJztcbmltcG9ydCB1bm9DU1MgZnJvbSAndW5vY3NzL3ZpdGUnO1xuaW1wb3J0IGVzbGludFBsdWdpbiBmcm9tICd2aXRlLXBsdWdpbi1lc2xpbnQnO1xuaW1wb3J0IHN0eWxlbGludFBsdWdpbiBmcm9tICd2aXRlLXBsdWdpbi1zdHlsZWxpbnQnO1xuaW1wb3J0IG1hcmtlZFByZXZpZXcgZnJvbSAndml0ZS1wbHVnaW4tZG9jLXByZXZpZXcnXG5pbXBvcnQgZHRzIGZyb20gJ3ZpdGUtcGx1Z2luLWR0cyc7XG5pbXBvcnQgeyB2aXN1YWxpemVyIH0gZnJvbSAncm9sbHVwLXBsdWdpbi12aXN1YWxpemVyJztcblxuY29uc3QgREVWX0NPTkZJRyA9IHtcbiAgY29uZmlnOiB7XG4gICAgYmFzZTogJycsXG4gICAgc2VydmVyOiB7XG4gICAgICBob3N0OiAnMC4wLjAuMCcsXG4gICAgICBwb3J0OiA2Njk5LFxuICAgICAgb3BlbjogdHJ1ZVxuICAgIH0sXG4gIH0sXG4gIHBsdWdpbnM6IFtcbiAgICB2dWUoe1xuICAgICAgaW5jbHVkZTogWy9cXC52dWUkLywgL1xcLm1kJC9dLFxuICAgIH0pLFxuICAgIHVub0NTUygpLFxuICAgIG1hcmtlZFByZXZpZXcoKSxcbiAgICBlc2xpbnRQbHVnaW4oe1xuICAgICAgY2FjaGU6IGZhbHNlLFxuICAgICAgaW5jbHVkZTogW1xuICAgICAgICAnZG9jLyoqLyoue2pzLHRzLHZ1ZX0nLFxuICAgICAgICAnZG9jLyoue2pzLHRzLHZ1ZX0nLFxuICAgICAgICAnKi57anMsdHN9JyxcbiAgICAgICAgJ3BhY2thZ2UvKiovKi57anMsdHMsdnVlfScsXG4gICAgICAgICdwYWNrYWdlLyoue2pzLHRzLHZ1ZX0nLFxuICAgICAgXSxcbiAgICAgIGZpeDogdHJ1ZVxuICAgIH0pLFxuICBdXG59XG5cbmNvbnN0IERPQ1NfQ09ORklHID0ge1xuICBjb25maWc6IHtcbiAgICBiYXNlOiAnLi8nLFxuICAgIGJ1aWxkOiB7XG4gICAgICBvdXREaXI6IGBkaXN0LWRvY2AsXG4gICAgfSxcbiAgfSxcbiAgcGx1Z2luczogW1xuICAgIHZ1ZSh7XG4gICAgICBpbmNsdWRlOiBbL1xcLnZ1ZSQvLCAvXFwubWQkL10sXG4gICAgfSksXG4gICAgdW5vQ1NTKCksXG4gICAgbWFya2VkUHJldmlldygpLFxuICAgIGVzbGludFBsdWdpbih7XG4gICAgICBjYWNoZTogZmFsc2UsXG4gICAgICBpbmNsdWRlOiBbXG4gICAgICAgICdkb2MvKiovKi57anMsdHMsdnVlfScsXG4gICAgICAgICdkb2MvKi57anMsdHMsdnVlfScsXG4gICAgICAgICdwYWNrYWdlLyoqLyoue2pzLHRzLHZ1ZX0nLFxuICAgICAgICAncGFja2FnZS8qLntqcyx0cyx2dWV9JyxcbiAgICAgIF0sXG4gICAgICBmaXg6IHRydWVcbiAgICB9KSxcbiAgICBzdHlsZWxpbnRQbHVnaW4oe1xuICAgICAgaW5jbHVkZTogW1xuICAgICAgICAnZG9jLyoqLyoue2NzcyxzY3NzLGxlc3N9JyxcbiAgICAgICAgJ2RvYy8qLntjc3Msc2NzcyxsZXNzfScsXG4gICAgICAgICdwYWNrYWdlLyoqLyoue2NzcyxzY3NzLGxlc3N9JyxcbiAgICAgICAgJ3BhY2thZ2UvKi57Y3NzLHNjc3MsbGVzc30nLFxuICAgICAgXSxcbiAgICAgIGZpeDogdHJ1ZVxuICAgIH0pXG4gIF1cbn1cblxuY29uc3QgUEFDS0FHRVNfQ09ORklHID0ge1xuICBjb25maWc6IHtcbiAgICBiYXNlOiAnLi8nLFxuICAgIGJ1aWxkOiB7XG4gICAgICBsaWI6IHtcbiAgICAgICAgZW50cnk6ICcuL3BhY2thZ2UvbWFpbi50cycsXG4gICAgICAgIG5hbWU6ICdtby1mcm9udC1lbmQtdXRpbCcsXG4gICAgICB9LFxuICAgICAgc291cmNlbWFwOiB0cnVlLFxuICAgICAgb3V0RGlyOiAnZGlzdCdcbiAgICB9LFxuICB9LFxuICBwbHVnaW5zOiBbXG4gICAgZXNsaW50UGx1Z2luKHtcbiAgICAgIGNhY2hlOiBmYWxzZSxcbiAgICAgIGluY2x1ZGU6IFtcbiAgICAgICAgJ3BhY2thZ2UvKiovKi57anMsdHMsdnVlfScsXG4gICAgICAgICdwYWNrYWdlLyoue2pzLHRzLHZ1ZX0nLFxuICAgICAgXSxcbiAgICAgIGZpeDogdHJ1ZVxuICAgIH0pLFxuICAgIGR0cyh7IC8vIFx1NzUxRlx1NjIxMCAuZC50cyBcdTY1ODdcdTRFRjZcbiAgICAgIGluc2VydFR5cGVzRW50cnk6IHRydWUsIC8vIFx1NTcyOCBwYWNrYWdlLmpzb24gXHU0RTJEXHU4MUVBXHU1MkE4XHU3NTFGXHU2MjEwIHR5cGVzIFx1NUI1N1x1NkJCNVxuICAgIH0pLFxuICBdXG59XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZygoe21vZGV9KSA9PiB7XG4gIGNvbnN0IHZpdGVDb25maWcgPSBtb2RlID09PSAnZGV2JyA/IERFVl9DT05GSUcgOiAoXG4gICAgbW9kZSA9PT0gJ2RvYycgPyBET0NTX0NPTkZJRyA6IFBBQ0tBR0VTX0NPTkZJR1xuICApXG5cbiAgcmV0dXJuIHtcbiAgICAuLi52aXRlQ29uZmlnLmNvbmZpZyxcbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczoge1xuICAgICAgICAnQCc6IGZpbGVVUkxUb1BhdGgobmV3IFVSTCgnLi9wYWNrYWdlJywgaW1wb3J0Lm1ldGEudXJsKSksXG4gICAgICAgICdAZG9jJzogZmlsZVVSTFRvUGF0aChuZXcgVVJMKCcuL2RvYycsIGltcG9ydC5tZXRhLnVybCkpLFxuICAgICAgfVxuICAgIH0sXG5cbiAgICBwbHVnaW5zOiBbXG4gICAgICAuLi52aXRlQ29uZmlnLnBsdWdpbnMsXG4gICAgXVxuICB9O1xufSk7XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQWtVLFNBQVEsZUFBZSxXQUFVO0FBQ25XLFNBQVEsb0JBQW1CO0FBQzNCLE9BQU8sU0FBUztBQUNoQixPQUFPLFlBQVk7QUFDbkIsT0FBTyxrQkFBa0I7QUFDekIsT0FBTyxxQkFBcUI7QUFDNUIsT0FBTyxtQkFBbUI7QUFDMUIsT0FBTyxTQUFTO0FBUCtKLElBQU0sMkNBQTJDO0FBVWhPLElBQU0sYUFBYTtBQUFBLEVBQ2pCLFFBQVE7QUFBQSxJQUNOLE1BQU07QUFBQSxJQUNOLFFBQVE7QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU07QUFBQSxJQUNSO0FBQUEsRUFDRjtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsSUFBSTtBQUFBLE1BQ0YsU0FBUyxDQUFDLFVBQVUsT0FBTztBQUFBLElBQzdCLENBQUM7QUFBQSxJQUNELE9BQU87QUFBQSxJQUNQLGNBQWM7QUFBQSxJQUNkLGFBQWE7QUFBQSxNQUNYLE9BQU87QUFBQSxNQUNQLFNBQVM7QUFBQSxRQUNQO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFBQSxNQUNBLEtBQUs7QUFBQSxJQUNQLENBQUM7QUFBQSxFQUNIO0FBQ0Y7QUFFQSxJQUFNLGNBQWM7QUFBQSxFQUNsQixRQUFRO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsTUFDTCxRQUFRO0FBQUEsSUFDVjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLFNBQVM7QUFBQSxJQUNQLElBQUk7QUFBQSxNQUNGLFNBQVMsQ0FBQyxVQUFVLE9BQU87QUFBQSxJQUM3QixDQUFDO0FBQUEsSUFDRCxPQUFPO0FBQUEsSUFDUCxjQUFjO0FBQUEsSUFDZCxhQUFhO0FBQUEsTUFDWCxPQUFPO0FBQUEsTUFDUCxTQUFTO0FBQUEsUUFDUDtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFBQSxNQUNBLEtBQUs7QUFBQSxJQUNQLENBQUM7QUFBQSxJQUNELGdCQUFnQjtBQUFBLE1BQ2QsU0FBUztBQUFBLFFBQ1A7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsTUFDQSxLQUFLO0FBQUEsSUFDUCxDQUFDO0FBQUEsRUFDSDtBQUNGO0FBRUEsSUFBTSxrQkFBa0I7QUFBQSxFQUN0QixRQUFRO0FBQUEsSUFDTixNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsTUFDTCxLQUFLO0FBQUEsUUFDSCxPQUFPO0FBQUEsUUFDUCxNQUFNO0FBQUEsTUFDUjtBQUFBLE1BQ0EsV0FBVztBQUFBLE1BQ1gsUUFBUTtBQUFBLElBQ1Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUCxhQUFhO0FBQUEsTUFDWCxPQUFPO0FBQUEsTUFDUCxTQUFTO0FBQUEsUUFDUDtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsTUFDQSxLQUFLO0FBQUEsSUFDUCxDQUFDO0FBQUEsSUFDRCxJQUFJO0FBQUE7QUFBQSxNQUNGLGtCQUFrQjtBQUFBO0FBQUEsSUFDcEIsQ0FBQztBQUFBLEVBQ0g7QUFDRjtBQUVBLElBQU8sc0JBQVEsYUFBYSxDQUFDLEVBQUMsS0FBSSxNQUFNO0FBQ3RDLFFBQU0sYUFBYSxTQUFTLFFBQVEsYUFDbEMsU0FBUyxRQUFRLGNBQWM7QUFHakMsU0FBTztBQUFBLElBQ0wsR0FBRyxXQUFXO0FBQUEsSUFDZCxTQUFTO0FBQUEsTUFDUCxPQUFPO0FBQUEsUUFDTCxLQUFLLGNBQWMsSUFBSSxJQUFJLGFBQWEsd0NBQWUsQ0FBQztBQUFBLFFBQ3hELFFBQVEsY0FBYyxJQUFJLElBQUksU0FBUyx3Q0FBZSxDQUFDO0FBQUEsTUFDekQ7QUFBQSxJQUNGO0FBQUEsSUFFQSxTQUFTO0FBQUEsTUFDUCxHQUFHLFdBQVc7QUFBQSxJQUNoQjtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo=
|