@weapp-vite/web 1.4.0 → 1.4.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/dist/compiler/wxml/renderer.mjs +4 -1
- package/dist/compiler/wxml/renderer.mjs.map +1 -1
- package/dist/compiler/wxml/specialNodes.mjs +2 -1
- package/dist/compiler/wxml/specialNodes.mjs.map +1 -1
- package/dist/index.d.mts +1 -6
- package/dist/index.mjs +1 -177
- package/dist/plugin/index.mjs +10 -6
- package/dist/plugin/index.mjs.map +1 -1
- package/dist/plugin/path.mjs +2 -1
- package/dist/plugin/path.mjs.map +1 -1
- package/dist/plugin/scan.mjs +23 -16
- package/dist/plugin/scan.mjs.map +1 -1
- package/dist/plugin/vueSfc.mjs +3 -2
- package/dist/plugin/vueSfc.mjs.map +1 -1
- package/dist/runtime/component/relations.mjs +2 -1
- package/dist/runtime/component/relations.mjs.map +1 -1
- package/dist/runtime/polyfill/deviceApi.mjs +6 -3
- package/dist/runtime/polyfill/deviceApi.mjs.map +1 -1
- package/dist/runtime/polyfill/font.mjs +2 -1
- package/dist/runtime/polyfill/font.mjs.map +1 -1
- package/dist/runtime/polyfill/interactionApi.mjs +6 -3
- package/dist/runtime/polyfill/interactionApi.mjs.map +1 -1
- package/dist/runtime/polyfill/locationApi.mjs +4 -2
- package/dist/runtime/polyfill/locationApi.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaApi/file.mjs +2 -1
- package/dist/runtime/polyfill/mediaApi/file.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaApi/picker.mjs +16 -8
- package/dist/runtime/polyfill/mediaApi/picker.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaApi/preview.mjs +4 -2
- package/dist/runtime/polyfill/mediaApi/preview.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaApi/process.mjs +4 -2
- package/dist/runtime/polyfill/mediaApi/process.mjs.map +1 -1
- package/dist/runtime/polyfill/menuApi.mjs +3 -2
- package/dist/runtime/polyfill/menuApi.mjs.map +1 -1
- package/dist/runtime/polyfill/platformApi.mjs +2 -1
- package/dist/runtime/polyfill/platformApi.mjs.map +1 -1
- package/dist/runtime/polyfill/storageAsync.mjs +4 -2
- package/dist/runtime/polyfill/storageAsync.mjs.map +1 -1
- package/dist/runtime/polyfill/system.mjs +1 -1
- package/dist/runtime/polyfill/system.mjs.map +1 -1
- package/dist/runtime/polyfill/systemApi.mjs +2 -1
- package/dist/runtime/polyfill/systemApi.mjs.map +1 -1
- package/package.json +5 -5
- package/dist/index.mjs.map +0 -1
|
@@ -9,7 +9,8 @@ function previewImageBridge(options) {
|
|
|
9
9
|
return Promise.reject(failure);
|
|
10
10
|
}
|
|
11
11
|
const current = typeof options?.current === "string" && options.current.trim() ? options.current.trim() : urls[0];
|
|
12
|
-
|
|
12
|
+
const target = urls.includes(current) ? current : urls[0];
|
|
13
|
+
openTargetInNewWindow(target);
|
|
13
14
|
return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: "previewImage:ok" }));
|
|
14
15
|
}
|
|
15
16
|
function previewMediaBridge(options) {
|
|
@@ -18,7 +19,8 @@ function previewMediaBridge(options) {
|
|
|
18
19
|
const failure = callMiniProgramAsyncFailure(options, "previewMedia:fail invalid sources");
|
|
19
20
|
return Promise.reject(failure);
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
+
const target = sources[typeof options?.current === "number" && Number.isFinite(options.current) ? Math.max(0, Math.floor(options.current)) : 0]?.url ?? sources[0].url;
|
|
23
|
+
openTargetInNewWindow(target);
|
|
22
24
|
return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: "previewMedia:ok" }));
|
|
23
25
|
}
|
|
24
26
|
function openVideoEditorBridge(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.mjs","names":[],"sources":["../../../../src/runtime/polyfill/mediaApi/preview.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from '../async'\nimport {\n normalizePreviewMediaSources,\n openTargetInNewWindow,\n readOpenVideoEditorPreset,\n} from '../mediaActions'\n\nexport function previewImageBridge(options?: any) {\n const urls = Array.isArray(options?.urls)\n ? options.urls.map((url: unknown) => String(url).trim()).filter(Boolean)\n : []\n if (!urls.length) {\n const failure = callMiniProgramAsyncFailure(options, 'previewImage:fail invalid urls')\n return Promise.reject(failure)\n }\n const current = typeof options?.current === 'string' && options.current.trim()\n ? options.current.trim()\n : urls[0]\n const target = urls.includes(current) ? current : urls[0]\n openTargetInNewWindow(target)\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'previewImage:ok' }))\n}\n\nexport function previewMediaBridge(options?: any) {\n const sources = normalizePreviewMediaSources(options?.sources)\n if (!sources.length) {\n const failure = callMiniProgramAsyncFailure(options, 'previewMedia:fail invalid sources')\n return Promise.reject(failure)\n }\n const current = typeof options?.current === 'number' && Number.isFinite(options.current)\n ? Math.max(0, Math.floor(options.current))\n : 0\n const target = sources[current]?.url ?? sources[0].url\n openTargetInNewWindow(target)\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'previewMedia:ok' }))\n}\n\nexport function openVideoEditorBridge(options?: any) {\n const src = typeof options?.src === 'string' ? options.src.trim() : ''\n if (!src) {\n const failure = callMiniProgramAsyncFailure(options, 'openVideoEditor:fail invalid src')\n return Promise.reject(failure)\n }\n const tempFilePath = readOpenVideoEditorPreset(src) || src\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'openVideoEditor:ok',\n tempFilePath,\n }))\n}\n"],"mappings":";;;;AAUA,SAAgB,mBAAmB,SAAe;CAChD,MAAM,OAAO,MAAM,QAAQ,SAAS,IAAI,IACpC,QAAQ,KAAK,KAAK,QAAiB,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,IACrE,CAAC;CACL,IAAI,CAAC,KAAK,QAAQ;EAChB,MAAM,UAAU,4BAA4B,SAAS,gCAAgC;EACrF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,MAAM,UAAU,OAAO,SAAS,YAAY,YAAY,QAAQ,QAAQ,KAAK,IACzE,QAAQ,QAAQ,KAAK,IACrB,KAAK;
|
|
1
|
+
{"version":3,"file":"preview.mjs","names":[],"sources":["../../../../src/runtime/polyfill/mediaApi/preview.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from '../async'\nimport {\n normalizePreviewMediaSources,\n openTargetInNewWindow,\n readOpenVideoEditorPreset,\n} from '../mediaActions'\n\nexport function previewImageBridge(options?: any) {\n const urls = Array.isArray(options?.urls)\n ? options.urls.map((url: unknown) => String(url).trim()).filter(Boolean)\n : []\n if (!urls.length) {\n const failure = callMiniProgramAsyncFailure(options, 'previewImage:fail invalid urls')\n return Promise.reject(failure)\n }\n const current = typeof options?.current === 'string' && options.current.trim()\n ? options.current.trim()\n : urls[0]\n const target = urls.includes(current) ? current : urls[0]\n openTargetInNewWindow(target)\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'previewImage:ok' }))\n}\n\nexport function previewMediaBridge(options?: any) {\n const sources = normalizePreviewMediaSources(options?.sources)\n if (!sources.length) {\n const failure = callMiniProgramAsyncFailure(options, 'previewMedia:fail invalid sources')\n return Promise.reject(failure)\n }\n const current = typeof options?.current === 'number' && Number.isFinite(options.current)\n ? Math.max(0, Math.floor(options.current))\n : 0\n const target = sources[current]?.url ?? sources[0].url\n openTargetInNewWindow(target)\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'previewMedia:ok' }))\n}\n\nexport function openVideoEditorBridge(options?: any) {\n const src = typeof options?.src === 'string' ? options.src.trim() : ''\n if (!src) {\n const failure = callMiniProgramAsyncFailure(options, 'openVideoEditor:fail invalid src')\n return Promise.reject(failure)\n }\n const tempFilePath = readOpenVideoEditorPreset(src) || src\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'openVideoEditor:ok',\n tempFilePath,\n }))\n}\n"],"mappings":";;;;AAUA,SAAgB,mBAAmB,SAAe;CAChD,MAAM,OAAO,MAAM,QAAQ,SAAS,IAAI,IACpC,QAAQ,KAAK,KAAK,QAAiB,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,IACrE,CAAC;CACL,IAAI,CAAC,KAAK,QAAQ;EAChB,MAAM,UAAU,4BAA4B,SAAS,gCAAgC;EACrF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,MAAM,UAAU,OAAO,SAAS,YAAY,YAAY,QAAQ,QAAQ,KAAK,IACzE,QAAQ,QAAQ,KAAK,IACrB,KAAK;CACT,MAAM,SAAS,KAAK,SAAS,OAAO,IAAI,UAAU,KAAK;CACvD,sBAAsB,MAAM;CAC5B,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;AAC5F;AAEA,SAAgB,mBAAmB,SAAe;CAChD,MAAM,UAAU,6BAA6B,SAAS,OAAO;CAC7D,IAAI,CAAC,QAAQ,QAAQ;EACnB,MAAM,UAAU,4BAA4B,SAAS,mCAAmC;EACxF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CAIA,MAAM,SAAS,QAHC,OAAO,SAAS,YAAY,YAAY,OAAO,SAAS,QAAQ,OAAO,IACnF,KAAK,IAAI,GAAG,KAAK,MAAM,QAAQ,OAAO,CAAC,IACvC,EAC2B,EAAE,OAAO,QAAQ,EAAE,CAAC;CACnD,sBAAsB,MAAM;CAC5B,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;AAC5F;AAEA,SAAgB,sBAAsB,SAAe;CACnD,MAAM,MAAM,OAAO,SAAS,QAAQ,WAAW,QAAQ,IAAI,KAAK,IAAI;CACpE,IAAI,CAAC,KAAK;EACR,MAAM,UAAU,4BAA4B,SAAS,kCAAkC;EACvF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,MAAM,eAAe,0BAA0B,GAAG,KAAK;CACvD,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;EAC1D,QAAQ;EACR;CACF,CAAC,CAAC;AACJ"}
|
|
@@ -11,12 +11,14 @@ async function compressImageBridge(options) {
|
|
|
11
11
|
}
|
|
12
12
|
const quality = normalizeCompressImageQuality(options?.quality);
|
|
13
13
|
try {
|
|
14
|
+
const tempFilePath = await compressImageByCanvas(src, quality);
|
|
14
15
|
return callMiniProgramAsyncSuccess(options, {
|
|
15
16
|
errMsg: "compressImage:ok",
|
|
16
|
-
tempFilePath
|
|
17
|
+
tempFilePath
|
|
17
18
|
});
|
|
18
19
|
} catch (error) {
|
|
19
|
-
const
|
|
20
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
21
|
+
const failure = callMiniProgramAsyncFailure(options, `compressImage:fail ${message}`);
|
|
20
22
|
return Promise.reject(failure);
|
|
21
23
|
}
|
|
22
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.mjs","names":[],"sources":["../../../../src/runtime/polyfill/mediaApi/process.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from '../async'\nimport { readPresetCompressVideo } from '../mediaInfo'\nimport {\n compressImageByCanvas,\n normalizeCompressImageQuality,\n} from '../mediaProcess'\n\nexport async function compressImageBridge(options?: any) {\n const src = typeof options?.src === 'string' ? options.src.trim() : ''\n if (!src) {\n const failure = callMiniProgramAsyncFailure(options, 'compressImage:fail invalid src')\n return Promise.reject(failure)\n }\n const quality = normalizeCompressImageQuality(options?.quality)\n try {\n const tempFilePath = await compressImageByCanvas(src, quality)\n return callMiniProgramAsyncSuccess(options, {\n errMsg: 'compressImage:ok',\n tempFilePath,\n })\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `compressImage:fail ${message}`)\n return Promise.reject(failure)\n }\n}\n\nexport function compressVideoBridge(options?: any) {\n const src = typeof options?.src === 'string' ? options.src.trim() : ''\n if (!src) {\n const failure = callMiniProgramAsyncFailure(options, 'compressVideo:fail invalid src')\n return Promise.reject(failure)\n }\n const preset = readPresetCompressVideo(src)\n const result = preset ?? {\n tempFilePath: src,\n size: 0,\n duration: 0,\n width: 0,\n height: 0,\n bitrate: 0,\n fps: 0,\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'compressVideo:ok',\n ...result,\n }))\n}\n"],"mappings":";;;;;AAUA,eAAsB,oBAAoB,SAAe;CACvD,MAAM,MAAM,OAAO,SAAS,QAAQ,WAAW,QAAQ,IAAI,KAAK,IAAI;CACpE,IAAI,CAAC,KAAK;EACR,MAAM,UAAU,4BAA4B,SAAS,gCAAgC;EACrF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,MAAM,UAAU,8BAA8B,SAAS,OAAO;CAC9D,IAAI;
|
|
1
|
+
{"version":3,"file":"process.mjs","names":[],"sources":["../../../../src/runtime/polyfill/mediaApi/process.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from '../async'\nimport { readPresetCompressVideo } from '../mediaInfo'\nimport {\n compressImageByCanvas,\n normalizeCompressImageQuality,\n} from '../mediaProcess'\n\nexport async function compressImageBridge(options?: any) {\n const src = typeof options?.src === 'string' ? options.src.trim() : ''\n if (!src) {\n const failure = callMiniProgramAsyncFailure(options, 'compressImage:fail invalid src')\n return Promise.reject(failure)\n }\n const quality = normalizeCompressImageQuality(options?.quality)\n try {\n const tempFilePath = await compressImageByCanvas(src, quality)\n return callMiniProgramAsyncSuccess(options, {\n errMsg: 'compressImage:ok',\n tempFilePath,\n })\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `compressImage:fail ${message}`)\n return Promise.reject(failure)\n }\n}\n\nexport function compressVideoBridge(options?: any) {\n const src = typeof options?.src === 'string' ? options.src.trim() : ''\n if (!src) {\n const failure = callMiniProgramAsyncFailure(options, 'compressVideo:fail invalid src')\n return Promise.reject(failure)\n }\n const preset = readPresetCompressVideo(src)\n const result = preset ?? {\n tempFilePath: src,\n size: 0,\n duration: 0,\n width: 0,\n height: 0,\n bitrate: 0,\n fps: 0,\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'compressVideo:ok',\n ...result,\n }))\n}\n"],"mappings":";;;;;AAUA,eAAsB,oBAAoB,SAAe;CACvD,MAAM,MAAM,OAAO,SAAS,QAAQ,WAAW,QAAQ,IAAI,KAAK,IAAI;CACpE,IAAI,CAAC,KAAK;EACR,MAAM,UAAU,4BAA4B,SAAS,gCAAgC;EACrF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,MAAM,UAAU,8BAA8B,SAAS,OAAO;CAC9D,IAAI;EACF,MAAM,eAAe,MAAM,sBAAsB,KAAK,OAAO;EAC7D,OAAO,4BAA4B,SAAS;GAC1C,QAAQ;GACR;EACF,CAAC;CACH,SACO,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EACrE,MAAM,UAAU,4BAA4B,SAAS,sBAAsB,SAAS;EACpF,OAAO,QAAQ,OAAO,OAAO;CAC/B;AACF;AAEA,SAAgB,oBAAoB,SAAe;CACjD,MAAM,MAAM,OAAO,SAAS,QAAQ,WAAW,QAAQ,IAAI,KAAK,IAAI;CACpE,IAAI,CAAC,KAAK;EACR,MAAM,UAAU,4BAA4B,SAAS,gCAAgC;EACrF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CAEA,MAAM,SADS,wBAAwB,GACnB,KAAK;EACvB,cAAc;EACd,MAAM;EACN,UAAU;EACV,OAAO;EACP,QAAQ;EACR,SAAS;EACT,KAAK;CACP;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;EAC1D,QAAQ;EACR,GAAG;CACL,CAAC,CAAC;AACJ"}
|
|
@@ -32,12 +32,13 @@ function setTabBarItemBridge(options) {
|
|
|
32
32
|
return resolveTabBarMutation("setTabBarItem", options, updateTabBarItem(options?.index, patch), "invalid index");
|
|
33
33
|
}
|
|
34
34
|
function setTabBarStyleBridge(options) {
|
|
35
|
-
|
|
35
|
+
const patch = {
|
|
36
36
|
...typeof options?.color === "string" ? { color: options.color } : {},
|
|
37
37
|
...typeof options?.selectedColor === "string" ? { selectedColor: options.selectedColor } : {},
|
|
38
38
|
...typeof options?.backgroundColor === "string" ? { backgroundColor: options.backgroundColor } : {},
|
|
39
39
|
...options?.borderStyle === "black" || options?.borderStyle === "white" ? { borderStyle: options.borderStyle } : {}
|
|
40
|
-
}
|
|
40
|
+
};
|
|
41
|
+
return resolveTabBarMutation("setTabBarStyle", options, updateTabBarStyle(patch));
|
|
41
42
|
}
|
|
42
43
|
function setTabBarBadgeBridge(options) {
|
|
43
44
|
return resolveTabBarMutation("setTabBarBadge", options, typeof options?.text === "string" && setTabBarBadgeState(options?.index, options.text), "invalid index or text");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menuApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/menuApi.ts"],"sourcesContent":["import {\n setTabBarBadgeState,\n setTabBarRedDotState,\n setTabBarVisible,\n updateTabBarItem,\n updateTabBarStyle,\n} from '../appShell/tabBar'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport { readNetworkStatusSnapshot } from './network'\nimport {\n normalizeSubscribeTemplateIds,\n resolveSubscribeDecisionMap,\n} from './subscribe'\nimport {\n normalizeActionSheetItems,\n resolveActionSheetSelection,\n resolveModalSelection,\n} from './ui'\n\nexport function getNetworkTypeBridge(options?: any): Promise<any> {\n const status = readNetworkStatusSnapshot()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'getNetworkType:ok',\n ...status,\n }))\n}\n\nfunction resolveTabBarMutation(action: string, options: any, succeeded: boolean, failureReason = 'tabBar not configured') {\n if (succeeded) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: `${action}:ok` }))\n }\n const failure = callMiniProgramAsyncFailure(options, `${action}:fail ${failureReason}`)\n return Promise.reject(failure)\n}\n\nexport function showTabBarBridge(options?: any): Promise<any> {\n return resolveTabBarMutation('showTabBar', options, setTabBarVisible(true, options?.animation === true))\n}\n\nexport function hideTabBarBridge(options?: any): Promise<any> {\n return resolveTabBarMutation('hideTabBar', options, setTabBarVisible(false, options?.animation === true))\n}\n\nexport function setTabBarItemBridge(options?: any): Promise<any> {\n const patch = {\n ...(typeof options?.text === 'string' ? { text: options.text } : {}),\n ...(typeof options?.iconPath === 'string' ? { iconPath: options.iconPath } : {}),\n ...(typeof options?.selectedIconPath === 'string' ? { selectedIconPath: options.selectedIconPath } : {}),\n }\n return resolveTabBarMutation('setTabBarItem', options, updateTabBarItem(options?.index, patch), 'invalid index')\n}\n\nexport function setTabBarStyleBridge(options?: any): Promise<any> {\n const patch = {\n ...(typeof options?.color === 'string' ? { color: options.color } : {}),\n ...(typeof options?.selectedColor === 'string' ? { selectedColor: options.selectedColor } : {}),\n ...(typeof options?.backgroundColor === 'string' ? { backgroundColor: options.backgroundColor } : {}),\n ...(options?.borderStyle === 'black' || options?.borderStyle === 'white'\n ? { borderStyle: options.borderStyle }\n : {}),\n }\n return resolveTabBarMutation('setTabBarStyle', options, updateTabBarStyle(patch))\n}\n\nexport function setTabBarBadgeBridge(options?: any): Promise<any> {\n const succeeded = typeof options?.text === 'string'\n && setTabBarBadgeState(options?.index, options.text)\n return resolveTabBarMutation('setTabBarBadge', options, succeeded, 'invalid index or text')\n}\n\nexport function removeTabBarBadgeBridge(options?: any): Promise<any> {\n return resolveTabBarMutation(\n 'removeTabBarBadge',\n options,\n setTabBarBadgeState(options?.index, undefined),\n 'invalid index',\n )\n}\n\nexport function showTabBarRedDotBridge(options?: any): Promise<any> {\n return resolveTabBarMutation('showTabBarRedDot', options, setTabBarRedDotState(options?.index, true), 'invalid index')\n}\n\nexport function hideTabBarRedDotBridge(options?: any): Promise<any> {\n return resolveTabBarMutation('hideTabBarRedDot', options, setTabBarRedDotState(options?.index, false), 'invalid index')\n}\n\nexport function requestPaymentBridge(options?: any): Promise<any> {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'requestPayment:ok' }))\n}\n\nexport function requestSubscribeMessageBridge(options?: any): Promise<any> {\n const tmplIds = normalizeSubscribeTemplateIds(options?.tmplIds)\n if (tmplIds.length === 0) {\n const failure = callMiniProgramAsyncFailure(options, 'requestSubscribeMessage:fail invalid tmplIds')\n return Promise.reject(failure)\n }\n const decisionMap = resolveSubscribeDecisionMap(tmplIds)\n const result: Record<string, any> & { errMsg: string } = tmplIds.reduce<Record<string, any> & { errMsg: string }>((payload, tmplId) => {\n payload[tmplId] = decisionMap[tmplId]\n return payload\n }, { errMsg: 'requestSubscribeMessage:ok' })\n return Promise.resolve(callMiniProgramAsyncSuccess(options, result))\n}\n\nexport function showModalBridge(options?: any): Promise<any> {\n const modalResult = resolveModalSelection(options)\n const result = {\n errMsg: 'showModal:ok',\n confirm: modalResult.confirm,\n cancel: modalResult.cancel,\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, result))\n}\n\nexport function showActionSheetBridge(options?: any): Promise<any> {\n const itemList = normalizeActionSheetItems(options?.itemList)\n if (!itemList.length) {\n const failure = callMiniProgramAsyncFailure(options, 'showActionSheet:fail invalid itemList')\n return Promise.reject(failure)\n }\n const tapIndex = resolveActionSheetSelection(itemList)\n if (tapIndex === null) {\n const failure = callMiniProgramAsyncFailure(options, 'showActionSheet:fail cancel')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'showActionSheet:ok',\n tapIndex,\n }))\n}\n\nexport function showShareMenuBridge(options?: any): Promise<any> {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'showShareMenu:ok' }))\n}\n\nexport function updateShareMenuBridge(options?: any): Promise<any> {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'updateShareMenu:ok' }))\n}\n"],"mappings":";;;;;;;AAsBA,SAAgB,qBAAqB,SAA6B;CAChE,MAAM,SAAS,0BAA0B;CACzC,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;EAC1D,QAAQ;EACR,GAAG;CACL,CAAC,CAAC;AACJ;AAEA,SAAS,sBAAsB,QAAgB,SAAc,WAAoB,gBAAgB,yBAAyB;CACxH,IAAI,WACF,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,GAAG,OAAO,KAAK,CAAC,CAAC;CAEzF,MAAM,UAAU,4BAA4B,SAAS,GAAG,OAAO,QAAQ,eAAe;CACtF,OAAO,QAAQ,OAAO,OAAO;AAC/B;AAEA,SAAgB,iBAAiB,SAA6B;CAC5D,OAAO,sBAAsB,cAAc,SAAS,iBAAiB,MAAM,SAAS,cAAc,IAAI,CAAC;AACzG;AAEA,SAAgB,iBAAiB,SAA6B;CAC5D,OAAO,sBAAsB,cAAc,SAAS,iBAAiB,OAAO,SAAS,cAAc,IAAI,CAAC;AAC1G;AAEA,SAAgB,oBAAoB,SAA6B;CAC/D,MAAM,QAAQ;EACZ,GAAI,OAAO,SAAS,SAAS,WAAW,EAAE,MAAM,QAAQ,KAAK,IAAI,CAAC;EAClE,GAAI,OAAO,SAAS,aAAa,WAAW,EAAE,UAAU,QAAQ,SAAS,IAAI,CAAC;EAC9E,GAAI,OAAO,SAAS,qBAAqB,WAAW,EAAE,kBAAkB,QAAQ,iBAAiB,IAAI,CAAC;CACxG;CACA,OAAO,sBAAsB,iBAAiB,SAAS,iBAAiB,SAAS,OAAO,KAAK,GAAG,eAAe;AACjH;AAEA,SAAgB,qBAAqB,SAA6B;
|
|
1
|
+
{"version":3,"file":"menuApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/menuApi.ts"],"sourcesContent":["import {\n setTabBarBadgeState,\n setTabBarRedDotState,\n setTabBarVisible,\n updateTabBarItem,\n updateTabBarStyle,\n} from '../appShell/tabBar'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport { readNetworkStatusSnapshot } from './network'\nimport {\n normalizeSubscribeTemplateIds,\n resolveSubscribeDecisionMap,\n} from './subscribe'\nimport {\n normalizeActionSheetItems,\n resolveActionSheetSelection,\n resolveModalSelection,\n} from './ui'\n\nexport function getNetworkTypeBridge(options?: any): Promise<any> {\n const status = readNetworkStatusSnapshot()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'getNetworkType:ok',\n ...status,\n }))\n}\n\nfunction resolveTabBarMutation(action: string, options: any, succeeded: boolean, failureReason = 'tabBar not configured') {\n if (succeeded) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: `${action}:ok` }))\n }\n const failure = callMiniProgramAsyncFailure(options, `${action}:fail ${failureReason}`)\n return Promise.reject(failure)\n}\n\nexport function showTabBarBridge(options?: any): Promise<any> {\n return resolveTabBarMutation('showTabBar', options, setTabBarVisible(true, options?.animation === true))\n}\n\nexport function hideTabBarBridge(options?: any): Promise<any> {\n return resolveTabBarMutation('hideTabBar', options, setTabBarVisible(false, options?.animation === true))\n}\n\nexport function setTabBarItemBridge(options?: any): Promise<any> {\n const patch = {\n ...(typeof options?.text === 'string' ? { text: options.text } : {}),\n ...(typeof options?.iconPath === 'string' ? { iconPath: options.iconPath } : {}),\n ...(typeof options?.selectedIconPath === 'string' ? { selectedIconPath: options.selectedIconPath } : {}),\n }\n return resolveTabBarMutation('setTabBarItem', options, updateTabBarItem(options?.index, patch), 'invalid index')\n}\n\nexport function setTabBarStyleBridge(options?: any): Promise<any> {\n const patch = {\n ...(typeof options?.color === 'string' ? { color: options.color } : {}),\n ...(typeof options?.selectedColor === 'string' ? { selectedColor: options.selectedColor } : {}),\n ...(typeof options?.backgroundColor === 'string' ? { backgroundColor: options.backgroundColor } : {}),\n ...(options?.borderStyle === 'black' || options?.borderStyle === 'white'\n ? { borderStyle: options.borderStyle }\n : {}),\n }\n return resolveTabBarMutation('setTabBarStyle', options, updateTabBarStyle(patch))\n}\n\nexport function setTabBarBadgeBridge(options?: any): Promise<any> {\n const succeeded = typeof options?.text === 'string'\n && setTabBarBadgeState(options?.index, options.text)\n return resolveTabBarMutation('setTabBarBadge', options, succeeded, 'invalid index or text')\n}\n\nexport function removeTabBarBadgeBridge(options?: any): Promise<any> {\n return resolveTabBarMutation(\n 'removeTabBarBadge',\n options,\n setTabBarBadgeState(options?.index, undefined),\n 'invalid index',\n )\n}\n\nexport function showTabBarRedDotBridge(options?: any): Promise<any> {\n return resolveTabBarMutation('showTabBarRedDot', options, setTabBarRedDotState(options?.index, true), 'invalid index')\n}\n\nexport function hideTabBarRedDotBridge(options?: any): Promise<any> {\n return resolveTabBarMutation('hideTabBarRedDot', options, setTabBarRedDotState(options?.index, false), 'invalid index')\n}\n\nexport function requestPaymentBridge(options?: any): Promise<any> {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'requestPayment:ok' }))\n}\n\nexport function requestSubscribeMessageBridge(options?: any): Promise<any> {\n const tmplIds = normalizeSubscribeTemplateIds(options?.tmplIds)\n if (tmplIds.length === 0) {\n const failure = callMiniProgramAsyncFailure(options, 'requestSubscribeMessage:fail invalid tmplIds')\n return Promise.reject(failure)\n }\n const decisionMap = resolveSubscribeDecisionMap(tmplIds)\n const result: Record<string, any> & { errMsg: string } = tmplIds.reduce<Record<string, any> & { errMsg: string }>((payload, tmplId) => {\n payload[tmplId] = decisionMap[tmplId]\n return payload\n }, { errMsg: 'requestSubscribeMessage:ok' })\n return Promise.resolve(callMiniProgramAsyncSuccess(options, result))\n}\n\nexport function showModalBridge(options?: any): Promise<any> {\n const modalResult = resolveModalSelection(options)\n const result = {\n errMsg: 'showModal:ok',\n confirm: modalResult.confirm,\n cancel: modalResult.cancel,\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, result))\n}\n\nexport function showActionSheetBridge(options?: any): Promise<any> {\n const itemList = normalizeActionSheetItems(options?.itemList)\n if (!itemList.length) {\n const failure = callMiniProgramAsyncFailure(options, 'showActionSheet:fail invalid itemList')\n return Promise.reject(failure)\n }\n const tapIndex = resolveActionSheetSelection(itemList)\n if (tapIndex === null) {\n const failure = callMiniProgramAsyncFailure(options, 'showActionSheet:fail cancel')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'showActionSheet:ok',\n tapIndex,\n }))\n}\n\nexport function showShareMenuBridge(options?: any): Promise<any> {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'showShareMenu:ok' }))\n}\n\nexport function updateShareMenuBridge(options?: any): Promise<any> {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'updateShareMenu:ok' }))\n}\n"],"mappings":"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"}
|
|
@@ -22,7 +22,8 @@ function getUpdateManagerBridge() {
|
|
|
22
22
|
return createUpdateManagerBridge(resolveUpdateManagerPreset, scheduleMicrotask);
|
|
23
23
|
}
|
|
24
24
|
function getLogManagerBridge(options) {
|
|
25
|
-
|
|
25
|
+
const level = options?.level === 0 ? 0 : 1;
|
|
26
|
+
return createLogManagerBridge(level, readRuntimeConsole());
|
|
26
27
|
}
|
|
27
28
|
function reportAnalyticsBridge(eventName, data) {
|
|
28
29
|
reportAnalyticsEvent(eventName, data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/platformApi.ts"],"sourcesContent":["import {\n createInterstitialAdImpl,\n createRewardedVideoAdImpl,\n} from './ad'\nimport { callMiniProgramAsyncSuccess, scheduleMicrotask } from './async'\nimport {\n createLogManagerBridge,\n createUpdateManagerBridge,\n readExtConfigValue,\n readRuntimeConsole,\n reportAnalyticsEvent,\n resolveUpdateManagerPreset,\n} from './platformRuntime'\n\nexport function createRewardedVideoAdBridge(options?: any): any {\n return createRewardedVideoAdImpl(options)\n}\n\nexport function createInterstitialAdBridge(options?: any): any {\n return createInterstitialAdImpl(options)\n}\n\nexport function getExtConfigSyncBridge() {\n return readExtConfigValue()\n}\n\nexport function getExtConfigBridge(options?: any): Promise<any> {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'getExtConfig:ok',\n extConfig: getExtConfigSyncBridge(),\n }))\n}\n\nexport function getUpdateManagerBridge() {\n return createUpdateManagerBridge(resolveUpdateManagerPreset, scheduleMicrotask)\n}\n\nexport function getLogManagerBridge(options?: any) {\n const level = options?.level === 0 ? 0 : 1\n return createLogManagerBridge(level, readRuntimeConsole())\n}\n\nexport function reportAnalyticsBridge(eventName: string, data?: Record<string, unknown>) {\n reportAnalyticsEvent(eventName, data)\n}\n"],"mappings":";;;;;AAcA,SAAgB,4BAA4B,SAAoB;CAC9D,OAAO,0BAA0B,OAAO;AAC1C;AAEA,SAAgB,2BAA2B,SAAoB;CAC7D,OAAO,yBAAyB,OAAO;AACzC;AAEA,SAAgB,yBAAyB;CACvC,OAAO,mBAAmB;AAC5B;AAEA,SAAgB,mBAAmB,SAA6B;CAC9D,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;EAC1D,QAAQ;EACR,WAAW,uBAAuB;CACpC,CAAC,CAAC;AACJ;AAEA,SAAgB,yBAAyB;CACvC,OAAO,0BAA0B,4BAA4B,iBAAiB;AAChF;AAEA,SAAgB,oBAAoB,SAAe;
|
|
1
|
+
{"version":3,"file":"platformApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/platformApi.ts"],"sourcesContent":["import {\n createInterstitialAdImpl,\n createRewardedVideoAdImpl,\n} from './ad'\nimport { callMiniProgramAsyncSuccess, scheduleMicrotask } from './async'\nimport {\n createLogManagerBridge,\n createUpdateManagerBridge,\n readExtConfigValue,\n readRuntimeConsole,\n reportAnalyticsEvent,\n resolveUpdateManagerPreset,\n} from './platformRuntime'\n\nexport function createRewardedVideoAdBridge(options?: any): any {\n return createRewardedVideoAdImpl(options)\n}\n\nexport function createInterstitialAdBridge(options?: any): any {\n return createInterstitialAdImpl(options)\n}\n\nexport function getExtConfigSyncBridge() {\n return readExtConfigValue()\n}\n\nexport function getExtConfigBridge(options?: any): Promise<any> {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'getExtConfig:ok',\n extConfig: getExtConfigSyncBridge(),\n }))\n}\n\nexport function getUpdateManagerBridge() {\n return createUpdateManagerBridge(resolveUpdateManagerPreset, scheduleMicrotask)\n}\n\nexport function getLogManagerBridge(options?: any) {\n const level = options?.level === 0 ? 0 : 1\n return createLogManagerBridge(level, readRuntimeConsole())\n}\n\nexport function reportAnalyticsBridge(eventName: string, data?: Record<string, unknown>) {\n reportAnalyticsEvent(eventName, data)\n}\n"],"mappings":";;;;;AAcA,SAAgB,4BAA4B,SAAoB;CAC9D,OAAO,0BAA0B,OAAO;AAC1C;AAEA,SAAgB,2BAA2B,SAAoB;CAC7D,OAAO,yBAAyB,OAAO;AACzC;AAEA,SAAgB,yBAAyB;CACvC,OAAO,mBAAmB;AAC5B;AAEA,SAAgB,mBAAmB,SAA6B;CAC9D,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;EAC1D,QAAQ;EACR,WAAW,uBAAuB;CACpC,CAAC,CAAC;AACJ;AAEA,SAAgB,yBAAyB;CACvC,OAAO,0BAA0B,4BAA4B,iBAAiB;AAChF;AAEA,SAAgB,oBAAoB,SAAe;CACjD,MAAM,QAAQ,SAAS,UAAU,IAAI,IAAI;CACzC,OAAO,uBAAuB,OAAO,mBAAmB,CAAC;AAC3D;AAEA,SAAgB,sBAAsB,WAAmB,MAAgC;CACvF,qBAAqB,WAAW,IAAI;AACtC"}
|
|
@@ -11,7 +11,8 @@ function setStorageBridge(options) {
|
|
|
11
11
|
try {
|
|
12
12
|
setStorageSyncInternal(key, options?.data);
|
|
13
13
|
} catch (error) {
|
|
14
|
-
const
|
|
14
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
15
|
+
const failure = callMiniProgramAsyncFailure(options, `setStorage:fail ${message}`);
|
|
15
16
|
return Promise.reject(failure);
|
|
16
17
|
}
|
|
17
18
|
return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: "setStorage:ok" }));
|
|
@@ -41,7 +42,8 @@ function removeStorageBridge(options) {
|
|
|
41
42
|
try {
|
|
42
43
|
removeStorageSyncInternal(key);
|
|
43
44
|
} catch (error) {
|
|
44
|
-
const
|
|
45
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
46
|
+
const failure = callMiniProgramAsyncFailure(options, `removeStorage:fail ${message}`);
|
|
45
47
|
return Promise.reject(failure);
|
|
46
48
|
}
|
|
47
49
|
return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: "removeStorage:ok" }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storageAsync.mjs","names":[],"sources":["../../../src/runtime/polyfill/storageAsync.ts"],"sourcesContent":["import type { MiniProgramAsyncOptions, MiniProgramBaseResult } from './types/base'\nimport type { GetStorageOptions, RemoveStorageOptions, SetStorageOptions, StorageInfoResult } from './types/common'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n clearStorageSyncInternal,\n getStorageInfoSyncInternal,\n getStorageSyncInternal,\n hasStorageKey,\n normalizeStorageKey,\n removeStorageSyncInternal,\n setStorageSyncInternal,\n} from './storage'\n\nexport function setStorageBridge(options?: SetStorageOptions) {\n const key = normalizeStorageKey(options?.key)\n if (!key) {\n const failure = callMiniProgramAsyncFailure(options, 'setStorage:fail invalid key')\n return Promise.reject(failure)\n }\n try {\n setStorageSyncInternal(key, options?.data)\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `setStorage:fail ${message}`)\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'setStorage:ok' }))\n}\n\nexport function getStorageBridge(options?: GetStorageOptions) {\n const key = normalizeStorageKey(options?.key)\n if (!key) {\n const failure = callMiniProgramAsyncFailure(options, 'getStorage:fail invalid key')\n return Promise.reject(failure)\n }\n if (!hasStorageKey(key)) {\n const failure = callMiniProgramAsyncFailure(options, `getStorage:fail data not found for key ${key}`)\n return Promise.reject(failure)\n }\n const data = getStorageSyncInternal(key)\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'getStorage:ok', data }))\n}\n\nexport function removeStorageBridge(options?: RemoveStorageOptions) {\n const key = normalizeStorageKey(options?.key)\n if (!key) {\n const failure = callMiniProgramAsyncFailure(options, 'removeStorage:fail invalid key')\n return Promise.reject(failure)\n }\n try {\n removeStorageSyncInternal(key)\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `removeStorage:fail ${message}`)\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'removeStorage:ok' }))\n}\n\nexport function clearStorageBridge(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n clearStorageSyncInternal()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'clearStorage:ok' }))\n}\n\nexport function getStorageInfoBridge(options?: MiniProgramAsyncOptions<StorageInfoResult>) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n ...getStorageInfoSyncInternal(),\n errMsg: 'getStorageInfo:ok',\n }))\n}\n"],"mappings":";;;;AAgBA,SAAgB,iBAAiB,SAA6B;CAC5D,MAAM,MAAM,oBAAoB,SAAS,GAAG;CAC5C,IAAI,CAAC,KAAK;EACR,MAAM,UAAU,4BAA4B,SAAS,6BAA6B;EAClF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,IAAI;EACF,uBAAuB,KAAK,SAAS,IAAI;CAC3C,SACO,OAAO;
|
|
1
|
+
{"version":3,"file":"storageAsync.mjs","names":[],"sources":["../../../src/runtime/polyfill/storageAsync.ts"],"sourcesContent":["import type { MiniProgramAsyncOptions, MiniProgramBaseResult } from './types/base'\nimport type { GetStorageOptions, RemoveStorageOptions, SetStorageOptions, StorageInfoResult } from './types/common'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n clearStorageSyncInternal,\n getStorageInfoSyncInternal,\n getStorageSyncInternal,\n hasStorageKey,\n normalizeStorageKey,\n removeStorageSyncInternal,\n setStorageSyncInternal,\n} from './storage'\n\nexport function setStorageBridge(options?: SetStorageOptions) {\n const key = normalizeStorageKey(options?.key)\n if (!key) {\n const failure = callMiniProgramAsyncFailure(options, 'setStorage:fail invalid key')\n return Promise.reject(failure)\n }\n try {\n setStorageSyncInternal(key, options?.data)\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `setStorage:fail ${message}`)\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'setStorage:ok' }))\n}\n\nexport function getStorageBridge(options?: GetStorageOptions) {\n const key = normalizeStorageKey(options?.key)\n if (!key) {\n const failure = callMiniProgramAsyncFailure(options, 'getStorage:fail invalid key')\n return Promise.reject(failure)\n }\n if (!hasStorageKey(key)) {\n const failure = callMiniProgramAsyncFailure(options, `getStorage:fail data not found for key ${key}`)\n return Promise.reject(failure)\n }\n const data = getStorageSyncInternal(key)\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'getStorage:ok', data }))\n}\n\nexport function removeStorageBridge(options?: RemoveStorageOptions) {\n const key = normalizeStorageKey(options?.key)\n if (!key) {\n const failure = callMiniProgramAsyncFailure(options, 'removeStorage:fail invalid key')\n return Promise.reject(failure)\n }\n try {\n removeStorageSyncInternal(key)\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `removeStorage:fail ${message}`)\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'removeStorage:ok' }))\n}\n\nexport function clearStorageBridge(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n clearStorageSyncInternal()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'clearStorage:ok' }))\n}\n\nexport function getStorageInfoBridge(options?: MiniProgramAsyncOptions<StorageInfoResult>) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n ...getStorageInfoSyncInternal(),\n errMsg: 'getStorageInfo:ok',\n }))\n}\n"],"mappings":";;;;AAgBA,SAAgB,iBAAiB,SAA6B;CAC5D,MAAM,MAAM,oBAAoB,SAAS,GAAG;CAC5C,IAAI,CAAC,KAAK;EACR,MAAM,UAAU,4BAA4B,SAAS,6BAA6B;EAClF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,IAAI;EACF,uBAAuB,KAAK,SAAS,IAAI;CAC3C,SACO,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EACrE,MAAM,UAAU,4BAA4B,SAAS,mBAAmB,SAAS;EACjF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,gBAAgB,CAAC,CAAC;AAC1F;AAEA,SAAgB,iBAAiB,SAA6B;CAC5D,MAAM,MAAM,oBAAoB,SAAS,GAAG;CAC5C,IAAI,CAAC,KAAK;EACR,MAAM,UAAU,4BAA4B,SAAS,6BAA6B;EAClF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,IAAI,CAAC,cAAc,GAAG,GAAG;EACvB,MAAM,UAAU,4BAA4B,SAAS,0CAA0C,KAAK;EACpG,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,MAAM,OAAO,uBAAuB,GAAG;CACvC,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;EAAE,QAAQ;EAAiB;CAAK,CAAC,CAAC;AAChG;AAEA,SAAgB,oBAAoB,SAAgC;CAClE,MAAM,MAAM,oBAAoB,SAAS,GAAG;CAC5C,IAAI,CAAC,KAAK;EACR,MAAM,UAAU,4BAA4B,SAAS,gCAAgC;EACrF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,IAAI;EACF,0BAA0B,GAAG;CAC/B,SACO,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EACrE,MAAM,UAAU,4BAA4B,SAAS,sBAAsB,SAAS;EACpF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,mBAAmB,CAAC,CAAC;AAC7F;AAEA,SAAgB,mBAAmB,SAA0D;CAC3F,yBAAyB;CACzB,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;AAC5F;AAEA,SAAgB,qBAAqB,SAAsD;CACzF,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;EAC1D,GAAG,2BAA2B;EAC9B,QAAQ;CACV,CAAC,CAAC;AACJ"}
|
|
@@ -121,7 +121,7 @@ function buildMenuButtonRect(windowWidth, statusBarHeight) {
|
|
|
121
121
|
const width = 88;
|
|
122
122
|
const height = 32;
|
|
123
123
|
const right = Math.max(width, windowWidth - 8);
|
|
124
|
-
const top = Math.max(0, statusBarHeight +
|
|
124
|
+
const top = Math.max(0, statusBarHeight + 12 / 2);
|
|
125
125
|
const left = Math.max(0, right - width);
|
|
126
126
|
return {
|
|
127
127
|
width,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.mjs","names":["navigatorWithUAData"],"sources":["../../../src/runtime/polyfill/system.ts"],"sourcesContent":["export function resolveSystemName(userAgent: string) {\n if (/android/i.test(userAgent)) {\n return 'Android'\n }\n if (/iphone|ipad|ipod/i.test(userAgent)) {\n return 'iOS'\n }\n if (/windows/i.test(userAgent)) {\n return 'Windows'\n }\n if (/mac os x/i.test(userAgent)) {\n return 'macOS'\n }\n if (/linux/i.test(userAgent)) {\n return 'Linux'\n }\n return 'Unknown'\n}\n\nexport function resolvePlatformName(\n userAgent: string,\n runtimeNavigator: Navigator | undefined,\n) {\n const navigatorWithUAData = runtimeNavigator as Navigator & {\n userAgentData?: { platform?: string }\n }\n const raw = navigatorWithUAData?.userAgentData?.platform\n ?? runtimeNavigator?.platform\n ?? resolveSystemName(userAgent)\n const normalized = raw.toLowerCase()\n if (normalized.includes('android')) {\n return 'android'\n }\n if (normalized.includes('iphone') || normalized.includes('ipad') || normalized.includes('ios')) {\n return 'ios'\n }\n if (normalized.includes('win')) {\n return 'windows'\n }\n if (normalized.includes('mac')) {\n return 'mac'\n }\n if (normalized.includes('linux')) {\n return 'linux'\n }\n return normalized || 'web'\n}\n\nexport function normalizePositiveNumber(value: number | undefined, fallback: number) {\n if (typeof value !== 'number' || Number.isNaN(value) || value <= 0) {\n return fallback\n }\n return value\n}\n\nexport function resolveDeviceOrientation(): 'portrait' | 'landscape' {\n const runtimeWindow = (typeof window !== 'undefined'\n ? window\n : globalThis) as {\n innerWidth?: number\n innerHeight?: number\n }\n const width = normalizePositiveNumber(runtimeWindow.innerWidth, 0)\n const height = normalizePositiveNumber(runtimeWindow.innerHeight, 0)\n if (width > 0 && height > 0 && width > height) {\n return 'landscape'\n }\n return 'portrait'\n}\n\nexport function normalizeMemorySize(memory: unknown) {\n if (typeof memory !== 'number' || Number.isNaN(memory) || memory <= 0) {\n return 0\n }\n return Math.round(memory * 1024)\n}\n\nexport function resolveRuntimeTheme(): 'light' | 'dark' {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return 'light'\n }\n try {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n }\n catch {\n return 'light'\n }\n}\n\nfunction resolveRuntimeWindow() {\n if (typeof window === 'undefined') {\n return globalThis\n }\n return window\n}\n\nexport function readSystemInfoSnapshot() {\n const runtimeWindow = resolveRuntimeWindow() as {\n innerWidth?: number\n innerHeight?: number\n devicePixelRatio?: number\n }\n const runtimeScreen = (typeof screen !== 'undefined'\n ? screen\n : globalThis) as {\n width?: number\n height?: number\n }\n const runtimeNavigator = typeof navigator !== 'undefined' ? navigator : undefined\n const userAgent = runtimeNavigator?.userAgent ?? ''\n const windowWidth = normalizePositiveNumber(\n runtimeWindow.innerWidth,\n normalizePositiveNumber(runtimeScreen.width, 0),\n )\n const windowHeight = normalizePositiveNumber(\n runtimeWindow.innerHeight,\n normalizePositiveNumber(runtimeScreen.height, 0),\n )\n const screenWidth = normalizePositiveNumber(runtimeScreen.width, windowWidth)\n const screenHeight = normalizePositiveNumber(runtimeScreen.height, windowHeight)\n\n const statusBarHeight = 0\n const safeArea = {\n left: 0,\n right: windowWidth,\n top: statusBarHeight,\n bottom: windowHeight,\n width: windowWidth,\n height: Math.max(0, windowHeight - statusBarHeight),\n }\n return {\n brand: 'web',\n model: runtimeNavigator?.platform ?? 'web',\n pixelRatio: normalizePositiveNumber(runtimeWindow.devicePixelRatio, 1),\n screenWidth,\n screenHeight,\n windowWidth,\n windowHeight,\n statusBarHeight,\n safeArea,\n safeAreaInsets: {\n left: safeArea.left,\n right: Math.max(0, windowWidth - safeArea.right),\n top: safeArea.top,\n bottom: Math.max(0, windowHeight - safeArea.bottom),\n },\n windowTop: 0,\n windowBottom: 0,\n language: runtimeNavigator?.language ?? 'en',\n version: runtimeNavigator?.appVersion ?? userAgent,\n system: resolveSystemName(userAgent),\n platform: resolvePlatformName(userAgent, runtimeNavigator),\n }\n}\n\nexport function rpx2px(value: number) {\n const width = readSystemInfoSnapshot().windowWidth\n if (!Number.isFinite(value) || width <= 0) {\n return 0\n }\n return value * width / 750\n}\n\nexport function buildWindowInfoSnapshot(systemInfo: {\n pixelRatio: number\n screenWidth: number\n screenHeight: number\n windowWidth: number\n windowHeight: number\n statusBarHeight: number\n}) {\n const safeArea = {\n left: 0,\n right: systemInfo.windowWidth,\n top: systemInfo.statusBarHeight,\n bottom: systemInfo.windowHeight,\n width: systemInfo.windowWidth,\n height: Math.max(0, systemInfo.windowHeight - systemInfo.statusBarHeight),\n }\n return {\n pixelRatio: systemInfo.pixelRatio,\n screenWidth: systemInfo.screenWidth,\n screenHeight: systemInfo.screenHeight,\n windowWidth: systemInfo.windowWidth,\n windowHeight: systemInfo.windowHeight,\n statusBarHeight: systemInfo.statusBarHeight,\n screenTop: systemInfo.statusBarHeight,\n safeArea,\n }\n}\n\nexport function readDeviceMemorySize() {\n const runtimeNavigator = (typeof navigator !== 'undefined' ? navigator : undefined) as (Navigator & {\n deviceMemory?: number\n }) | undefined\n return normalizeMemorySize(runtimeNavigator?.deviceMemory)\n}\n\nexport function resolveAccountAppId() {\n const runtimeLocation = (typeof location !== 'undefined' ? location : undefined) as {\n hostname?: string\n } | undefined\n const host = runtimeLocation?.hostname?.trim()\n return host ? `web:${host}` : 'web'\n}\n\nexport function buildMenuButtonRect(windowWidth: number, statusBarHeight: number) {\n const width = 88\n const height = 32\n const right = Math.max(width, windowWidth - 8)\n const top = Math.max(0, statusBarHeight + (44 - height) / 2)\n const left = Math.max(0, right - width)\n return {\n width,\n height,\n top,\n right,\n bottom: top + height,\n left,\n }\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"system.mjs","names":["navigatorWithUAData"],"sources":["../../../src/runtime/polyfill/system.ts"],"sourcesContent":["export function resolveSystemName(userAgent: string) {\n if (/android/i.test(userAgent)) {\n return 'Android'\n }\n if (/iphone|ipad|ipod/i.test(userAgent)) {\n return 'iOS'\n }\n if (/windows/i.test(userAgent)) {\n return 'Windows'\n }\n if (/mac os x/i.test(userAgent)) {\n return 'macOS'\n }\n if (/linux/i.test(userAgent)) {\n return 'Linux'\n }\n return 'Unknown'\n}\n\nexport function resolvePlatformName(\n userAgent: string,\n runtimeNavigator: Navigator | undefined,\n) {\n const navigatorWithUAData = runtimeNavigator as Navigator & {\n userAgentData?: { platform?: string }\n }\n const raw = navigatorWithUAData?.userAgentData?.platform\n ?? runtimeNavigator?.platform\n ?? resolveSystemName(userAgent)\n const normalized = raw.toLowerCase()\n if (normalized.includes('android')) {\n return 'android'\n }\n if (normalized.includes('iphone') || normalized.includes('ipad') || normalized.includes('ios')) {\n return 'ios'\n }\n if (normalized.includes('win')) {\n return 'windows'\n }\n if (normalized.includes('mac')) {\n return 'mac'\n }\n if (normalized.includes('linux')) {\n return 'linux'\n }\n return normalized || 'web'\n}\n\nexport function normalizePositiveNumber(value: number | undefined, fallback: number) {\n if (typeof value !== 'number' || Number.isNaN(value) || value <= 0) {\n return fallback\n }\n return value\n}\n\nexport function resolveDeviceOrientation(): 'portrait' | 'landscape' {\n const runtimeWindow = (typeof window !== 'undefined'\n ? window\n : globalThis) as {\n innerWidth?: number\n innerHeight?: number\n }\n const width = normalizePositiveNumber(runtimeWindow.innerWidth, 0)\n const height = normalizePositiveNumber(runtimeWindow.innerHeight, 0)\n if (width > 0 && height > 0 && width > height) {\n return 'landscape'\n }\n return 'portrait'\n}\n\nexport function normalizeMemorySize(memory: unknown) {\n if (typeof memory !== 'number' || Number.isNaN(memory) || memory <= 0) {\n return 0\n }\n return Math.round(memory * 1024)\n}\n\nexport function resolveRuntimeTheme(): 'light' | 'dark' {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return 'light'\n }\n try {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n }\n catch {\n return 'light'\n }\n}\n\nfunction resolveRuntimeWindow() {\n if (typeof window === 'undefined') {\n return globalThis\n }\n return window\n}\n\nexport function readSystemInfoSnapshot() {\n const runtimeWindow = resolveRuntimeWindow() as {\n innerWidth?: number\n innerHeight?: number\n devicePixelRatio?: number\n }\n const runtimeScreen = (typeof screen !== 'undefined'\n ? screen\n : globalThis) as {\n width?: number\n height?: number\n }\n const runtimeNavigator = typeof navigator !== 'undefined' ? navigator : undefined\n const userAgent = runtimeNavigator?.userAgent ?? ''\n const windowWidth = normalizePositiveNumber(\n runtimeWindow.innerWidth,\n normalizePositiveNumber(runtimeScreen.width, 0),\n )\n const windowHeight = normalizePositiveNumber(\n runtimeWindow.innerHeight,\n normalizePositiveNumber(runtimeScreen.height, 0),\n )\n const screenWidth = normalizePositiveNumber(runtimeScreen.width, windowWidth)\n const screenHeight = normalizePositiveNumber(runtimeScreen.height, windowHeight)\n\n const statusBarHeight = 0\n const safeArea = {\n left: 0,\n right: windowWidth,\n top: statusBarHeight,\n bottom: windowHeight,\n width: windowWidth,\n height: Math.max(0, windowHeight - statusBarHeight),\n }\n return {\n brand: 'web',\n model: runtimeNavigator?.platform ?? 'web',\n pixelRatio: normalizePositiveNumber(runtimeWindow.devicePixelRatio, 1),\n screenWidth,\n screenHeight,\n windowWidth,\n windowHeight,\n statusBarHeight,\n safeArea,\n safeAreaInsets: {\n left: safeArea.left,\n right: Math.max(0, windowWidth - safeArea.right),\n top: safeArea.top,\n bottom: Math.max(0, windowHeight - safeArea.bottom),\n },\n windowTop: 0,\n windowBottom: 0,\n language: runtimeNavigator?.language ?? 'en',\n version: runtimeNavigator?.appVersion ?? userAgent,\n system: resolveSystemName(userAgent),\n platform: resolvePlatformName(userAgent, runtimeNavigator),\n }\n}\n\nexport function rpx2px(value: number) {\n const width = readSystemInfoSnapshot().windowWidth\n if (!Number.isFinite(value) || width <= 0) {\n return 0\n }\n return value * width / 750\n}\n\nexport function buildWindowInfoSnapshot(systemInfo: {\n pixelRatio: number\n screenWidth: number\n screenHeight: number\n windowWidth: number\n windowHeight: number\n statusBarHeight: number\n}) {\n const safeArea = {\n left: 0,\n right: systemInfo.windowWidth,\n top: systemInfo.statusBarHeight,\n bottom: systemInfo.windowHeight,\n width: systemInfo.windowWidth,\n height: Math.max(0, systemInfo.windowHeight - systemInfo.statusBarHeight),\n }\n return {\n pixelRatio: systemInfo.pixelRatio,\n screenWidth: systemInfo.screenWidth,\n screenHeight: systemInfo.screenHeight,\n windowWidth: systemInfo.windowWidth,\n windowHeight: systemInfo.windowHeight,\n statusBarHeight: systemInfo.statusBarHeight,\n screenTop: systemInfo.statusBarHeight,\n safeArea,\n }\n}\n\nexport function readDeviceMemorySize() {\n const runtimeNavigator = (typeof navigator !== 'undefined' ? navigator : undefined) as (Navigator & {\n deviceMemory?: number\n }) | undefined\n return normalizeMemorySize(runtimeNavigator?.deviceMemory)\n}\n\nexport function resolveAccountAppId() {\n const runtimeLocation = (typeof location !== 'undefined' ? location : undefined) as {\n hostname?: string\n } | undefined\n const host = runtimeLocation?.hostname?.trim()\n return host ? `web:${host}` : 'web'\n}\n\nexport function buildMenuButtonRect(windowWidth: number, statusBarHeight: number) {\n const width = 88\n const height = 32\n const right = Math.max(width, windowWidth - 8)\n const top = Math.max(0, statusBarHeight + (44 - height) / 2)\n const left = Math.max(0, right - width)\n return {\n width,\n height,\n top,\n right,\n bottom: top + height,\n left,\n }\n}\n"],"mappings":"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"}
|
|
@@ -13,7 +13,8 @@ function getSystemInfoBridge(options) {
|
|
|
13
13
|
...info
|
|
14
14
|
}));
|
|
15
15
|
} catch (error) {
|
|
16
|
-
const
|
|
16
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
17
|
+
const failure = callMiniProgramAsyncFailure(options, `getSystemInfo:fail ${message}`);
|
|
17
18
|
return Promise.reject(failure);
|
|
18
19
|
}
|
|
19
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/systemApi.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n buildMenuButtonRect,\n buildWindowInfoSnapshot,\n readDeviceMemorySize,\n readSystemInfoSnapshot,\n resolveAccountAppId,\n resolveDeviceOrientation,\n resolveRuntimeTheme,\n} from './system'\n\nexport function getSystemInfoSyncBridge() {\n return readSystemInfoSnapshot()\n}\n\nexport function getSystemInfoBridge(options?: any): Promise<any> {\n try {\n const info = getSystemInfoSyncBridge()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'getSystemInfo:ok',\n ...info,\n }))\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `getSystemInfo:fail ${message}`)\n return Promise.reject(failure)\n }\n}\n\nexport function getWindowInfoBridge() {\n return buildWindowInfoSnapshot(getSystemInfoSyncBridge())\n}\n\nexport function getDeviceInfoBridge() {\n const systemInfo = getSystemInfoSyncBridge()\n return {\n brand: systemInfo.brand,\n model: systemInfo.model,\n system: systemInfo.system,\n platform: systemInfo.platform,\n memorySize: readDeviceMemorySize(),\n benchmarkLevel: -1,\n abi: 'web',\n deviceOrientation: resolveDeviceOrientation(),\n }\n}\n\nexport function getAccountInfoSyncBridge() {\n const appId = resolveAccountAppId()\n return {\n miniProgram: {\n appId,\n envVersion: 'develop',\n version: '0.0.0-web',\n },\n plugin: {},\n }\n}\n\nexport function getAppBaseInfoBridge() {\n const systemInfo = getSystemInfoSyncBridge()\n const runtimeNavigator = typeof navigator !== 'undefined' ? navigator : undefined\n return {\n SDKVersion: 'web',\n language: runtimeNavigator?.language ?? 'en',\n version: runtimeNavigator?.appVersion ?? runtimeNavigator?.userAgent ?? 'web',\n platform: systemInfo.platform,\n enableDebug: false,\n theme: resolveRuntimeTheme(),\n }\n}\n\nexport function getMenuButtonBoundingClientRectBridge() {\n const { windowWidth, statusBarHeight } = getSystemInfoSyncBridge()\n return buildMenuButtonRect(windowWidth, statusBarHeight)\n}\n"],"mappings":";;;;AAcA,SAAgB,0BAA0B;CACxC,OAAO,uBAAuB;AAChC;AAEA,SAAgB,oBAAoB,SAA6B;CAC/D,IAAI;EACF,MAAM,OAAO,wBAAwB;EACrC,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;GAC1D,QAAQ;GACR,GAAG;EACL,CAAC,CAAC;CACJ,SACO,OAAO;
|
|
1
|
+
{"version":3,"file":"systemApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/systemApi.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n buildMenuButtonRect,\n buildWindowInfoSnapshot,\n readDeviceMemorySize,\n readSystemInfoSnapshot,\n resolveAccountAppId,\n resolveDeviceOrientation,\n resolveRuntimeTheme,\n} from './system'\n\nexport function getSystemInfoSyncBridge() {\n return readSystemInfoSnapshot()\n}\n\nexport function getSystemInfoBridge(options?: any): Promise<any> {\n try {\n const info = getSystemInfoSyncBridge()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'getSystemInfo:ok',\n ...info,\n }))\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `getSystemInfo:fail ${message}`)\n return Promise.reject(failure)\n }\n}\n\nexport function getWindowInfoBridge() {\n return buildWindowInfoSnapshot(getSystemInfoSyncBridge())\n}\n\nexport function getDeviceInfoBridge() {\n const systemInfo = getSystemInfoSyncBridge()\n return {\n brand: systemInfo.brand,\n model: systemInfo.model,\n system: systemInfo.system,\n platform: systemInfo.platform,\n memorySize: readDeviceMemorySize(),\n benchmarkLevel: -1,\n abi: 'web',\n deviceOrientation: resolveDeviceOrientation(),\n }\n}\n\nexport function getAccountInfoSyncBridge() {\n const appId = resolveAccountAppId()\n return {\n miniProgram: {\n appId,\n envVersion: 'develop',\n version: '0.0.0-web',\n },\n plugin: {},\n }\n}\n\nexport function getAppBaseInfoBridge() {\n const systemInfo = getSystemInfoSyncBridge()\n const runtimeNavigator = typeof navigator !== 'undefined' ? navigator : undefined\n return {\n SDKVersion: 'web',\n language: runtimeNavigator?.language ?? 'en',\n version: runtimeNavigator?.appVersion ?? runtimeNavigator?.userAgent ?? 'web',\n platform: systemInfo.platform,\n enableDebug: false,\n theme: resolveRuntimeTheme(),\n }\n}\n\nexport function getMenuButtonBoundingClientRectBridge() {\n const { windowWidth, statusBarHeight } = getSystemInfoSyncBridge()\n return buildMenuButtonRect(windowWidth, statusBarHeight)\n}\n"],"mappings":";;;;AAcA,SAAgB,0BAA0B;CACxC,OAAO,uBAAuB;AAChC;AAEA,SAAgB,oBAAoB,SAA6B;CAC/D,IAAI;EACF,MAAM,OAAO,wBAAwB;EACrC,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;GAC1D,QAAQ;GACR,GAAG;EACL,CAAC,CAAC;CACJ,SACO,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EACrE,MAAM,UAAU,4BAA4B,SAAS,sBAAsB,SAAS;EACpF,OAAO,QAAQ,OAAO,OAAO;CAC/B;AACF;AAEA,SAAgB,sBAAsB;CACpC,OAAO,wBAAwB,wBAAwB,CAAC;AAC1D;AAEA,SAAgB,sBAAsB;CACpC,MAAM,aAAa,wBAAwB;CAC3C,OAAO;EACL,OAAO,WAAW;EAClB,OAAO,WAAW;EAClB,QAAQ,WAAW;EACnB,UAAU,WAAW;EACrB,YAAY,qBAAqB;EACjC,gBAAgB;EAChB,KAAK;EACL,mBAAmB,yBAAyB;CAC9C;AACF;AAEA,SAAgB,2BAA2B;CAEzC,OAAO;EACL,aAAa;GACX,OAHU,oBAGN;GACJ,YAAY;GACZ,SAAS;EACX;EACA,QAAQ,CAAC;CACX;AACF;AAEA,SAAgB,uBAAuB;CACrC,MAAM,aAAa,wBAAwB;CAC3C,MAAM,mBAAmB,OAAO,cAAc,cAAc,YAAY;CACxE,OAAO;EACL,YAAY;EACZ,UAAU,kBAAkB,YAAY;EACxC,SAAS,kBAAkB,cAAc,kBAAkB,aAAa;EACxE,UAAU,WAAW;EACrB,aAAa;EACb,OAAO,oBAAoB;CAC7B;AACF;AAEA,SAAgB,wCAAwC;CACtD,MAAM,EAAE,aAAa,oBAAoB,wBAAwB;CACjE,OAAO,oBAAoB,aAAa,eAAe;AACzD"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weapp-vite/web",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.1",
|
|
5
5
|
"description": "Experimental web runtime for weapp-vite templates",
|
|
6
6
|
"author": "ice breaker <1324318532@qq.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -57,13 +57,13 @@
|
|
|
57
57
|
"lit": "^3.3.3",
|
|
58
58
|
"magic-string": "^1.1.0",
|
|
59
59
|
"pathe": "^2.0.3",
|
|
60
|
-
"postcss": "^8.5.
|
|
60
|
+
"postcss": "^8.5.25",
|
|
61
61
|
"postcss-selector-parser": "^7.1.4",
|
|
62
|
-
"rolldown": "1.
|
|
62
|
+
"rolldown": "1.2.2",
|
|
63
63
|
"@weapp-core/constants": "0.1.15",
|
|
64
64
|
"@weapp-core/shared": "3.1.0",
|
|
65
|
-
"rolldown-require": "2.0.
|
|
66
|
-
"wevu": "6.19.
|
|
65
|
+
"rolldown-require": "2.0.23",
|
|
66
|
+
"wevu": "6.19.1"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"happy-dom": "^20.11.1"
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["export { transformWxssToCss } from './css/wxss'\nexport { weappWebPlugin } from './plugin'\nexport type { WeappWebPluginOptions } from './plugin'\nexport * from './runtime/index'\n"],"mappings":""}
|