@weapp-vite/web 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/dist/_virtual/_rolldown/runtime.mjs +1 -2
  2. package/dist/compiler/wxml/attributes.mjs +12 -4
  3. package/dist/compiler/wxml/attributes.mjs.map +1 -1
  4. package/dist/compiler/wxml/compile.mjs +26 -8
  5. package/dist/compiler/wxml/compile.mjs.map +1 -1
  6. package/dist/compiler/wxml/dependency.mjs +1 -2
  7. package/dist/compiler/wxml/interpolation.mjs +13 -3
  8. package/dist/compiler/wxml/interpolation.mjs.map +1 -1
  9. package/dist/compiler/wxml/nativeTags.mjs +60 -0
  10. package/dist/compiler/wxml/nativeTags.mjs.map +1 -0
  11. package/dist/compiler/wxml/navigation.mjs +1 -2
  12. package/dist/compiler/wxml/parser.mjs +1 -2
  13. package/dist/compiler/wxml/prepare.mjs +1 -2
  14. package/dist/compiler/wxml/renderer.mjs +1 -2
  15. package/dist/compiler/wxml/specialNodes.mjs +1 -2
  16. package/dist/compiler/wxml/types.d.mts +0 -2
  17. package/dist/compiler/wxml/unknownTags.mjs +33 -0
  18. package/dist/compiler/wxml/unknownTags.mjs.map +1 -0
  19. package/dist/compiler/wxs.mjs +1 -2
  20. package/dist/css/wxss.d.mts +2 -19
  21. package/dist/css/wxss.mjs +5 -12
  22. package/dist/css/wxss.mjs.map +1 -1
  23. package/dist/index.d.mts +8 -3
  24. package/dist/index.mjs +8 -5
  25. package/dist/plugin/assets.d.mts +0 -2
  26. package/dist/plugin/assets.mjs +1 -2
  27. package/dist/plugin/constants.mjs +1 -2
  28. package/dist/plugin/dependencyScan.mjs +1 -2
  29. package/dist/plugin/entry.mjs +6 -4
  30. package/dist/plugin/entry.mjs.map +1 -1
  31. package/dist/plugin/files.mjs +1 -2
  32. package/dist/plugin/hostTypes.d.mts +0 -2
  33. package/dist/plugin/index.d.mts +0 -2
  34. package/dist/plugin/index.mjs +5 -5
  35. package/dist/plugin/index.mjs.map +1 -1
  36. package/dist/plugin/layout.mjs +1 -2
  37. package/dist/plugin/navigation.mjs +1 -2
  38. package/dist/plugin/packageResolution.mjs +1 -2
  39. package/dist/plugin/path.mjs +1 -2
  40. package/dist/plugin/register.mjs +1 -2
  41. package/dist/plugin/scan.mjs +1 -2
  42. package/dist/plugin/scanConfig.mjs +1 -2
  43. package/dist/plugin/scanSfc.mjs +1 -2
  44. package/dist/plugin/sfcHmr.mjs +1 -2
  45. package/dist/plugin/state.mjs +1 -2
  46. package/dist/plugin/styleModule.mjs +1 -2
  47. package/dist/plugin/types.d.mts +2 -3
  48. package/dist/plugin/vueSfc.mjs +1 -2
  49. package/dist/runtime/appShell/container.mjs +1 -2
  50. package/dist/runtime/appShell/tabBar/index.mjs +1 -2
  51. package/dist/runtime/appShell/tabBar/style.mjs +1 -2
  52. package/dist/runtime/appStyle.mjs +1 -2
  53. package/dist/runtime/button/helpers.mjs +1 -2
  54. package/dist/runtime/button/index.d.mts +0 -2
  55. package/dist/runtime/button/index.mjs +1 -2
  56. package/dist/runtime/button/style.mjs +1 -2
  57. package/dist/runtime/component/behavior.mjs +1 -2
  58. package/dist/runtime/component/constants.mjs +1 -2
  59. package/dist/runtime/component/dom.mjs +1 -2
  60. package/dist/runtime/component/element.mjs +9 -2
  61. package/dist/runtime/component/element.mjs.map +1 -1
  62. package/dist/runtime/component/events.mjs +4 -4
  63. package/dist/runtime/component/events.mjs.map +1 -1
  64. package/dist/runtime/component/index.d.mts +0 -2
  65. package/dist/runtime/component/index.mjs +1 -2
  66. package/dist/runtime/component/observers.mjs +1 -2
  67. package/dist/runtime/component/publicInstance.mjs +1 -2
  68. package/dist/runtime/component/relations.mjs +1 -2
  69. package/dist/runtime/component/slots.mjs +1 -2
  70. package/dist/runtime/component/state.mjs +1 -2
  71. package/dist/runtime/component/types.d.mts +0 -2
  72. package/dist/runtime/component/utils.mjs +1 -2
  73. package/dist/runtime/component/virtualHost.mjs +1 -2
  74. package/dist/runtime/componentEvents.mjs +1 -2
  75. package/dist/runtime/dataset.mjs +49 -0
  76. package/dist/runtime/dataset.mjs.map +1 -0
  77. package/dist/runtime/datasetBinding.d.mts +13 -0
  78. package/dist/runtime/datasetBinding.mjs +40 -0
  79. package/dist/runtime/datasetBinding.mjs.map +1 -0
  80. package/dist/runtime/eventBinding.d.mts +0 -2
  81. package/dist/runtime/eventBinding.mjs +1 -2
  82. package/dist/runtime/execution.d.mts +0 -2
  83. package/dist/runtime/execution.mjs +1 -2
  84. package/dist/runtime/host/index.d.mts +0 -2
  85. package/dist/runtime/host/index.mjs +1 -2
  86. package/dist/runtime/host/types.d.mts +0 -2
  87. package/dist/runtime/hostGlobals.d.mts +0 -2
  88. package/dist/runtime/hostGlobals.mjs +1 -2
  89. package/dist/runtime/index.d.mts +8 -3
  90. package/dist/runtime/index.mjs +9 -7
  91. package/dist/runtime/index.mjs.map +1 -1
  92. package/dist/runtime/inlineStyle.d.mts +5 -0
  93. package/dist/runtime/inlineStyle.mjs +21 -0
  94. package/dist/runtime/inlineStyle.mjs.map +1 -0
  95. package/dist/runtime/inputHandlerResult.mjs +1 -2
  96. package/dist/runtime/legacyTemplate/dataset.mjs +53 -0
  97. package/dist/runtime/legacyTemplate/dataset.mjs.map +1 -0
  98. package/dist/runtime/legacyTemplate/dom.mjs +20 -5
  99. package/dist/runtime/legacyTemplate/dom.mjs.map +1 -1
  100. package/dist/runtime/legacyTemplate/expression.mjs +1 -2
  101. package/dist/runtime/legacyTemplate/index.d.mts +0 -2
  102. package/dist/runtime/legacyTemplate/index.mjs +23 -16
  103. package/dist/runtime/legacyTemplate/index.mjs.map +1 -1
  104. package/dist/runtime/legacyTemplate/types.d.mts +0 -2
  105. package/dist/runtime/nativeComponents/canvas/index.mjs +1 -2
  106. package/dist/runtime/nativeComponents/checkbox.mjs +1 -2
  107. package/dist/runtime/nativeComponents/cover/index.mjs +1 -2
  108. package/dist/runtime/nativeComponents/form.d.mts +0 -2
  109. package/dist/runtime/nativeComponents/form.mjs +1 -2
  110. package/dist/runtime/nativeComponents/formControl.mjs +1 -2
  111. package/dist/runtime/nativeComponents/helpers.mjs +1 -2
  112. package/dist/runtime/nativeComponents/icon/helpers.mjs +1 -2
  113. package/dist/runtime/nativeComponents/icon/index.mjs +1 -2
  114. package/dist/runtime/nativeComponents/icon/style.mjs +1 -2
  115. package/dist/runtime/nativeComponents/image.d.mts +0 -2
  116. package/dist/runtime/nativeComponents/image.mjs +1 -2
  117. package/dist/runtime/nativeComponents/index.d.mts +1 -3
  118. package/dist/runtime/nativeComponents/index.mjs +3 -3
  119. package/dist/runtime/nativeComponents/index.mjs.map +1 -1
  120. package/dist/runtime/nativeComponents/input.d.mts +0 -2
  121. package/dist/runtime/nativeComponents/input.mjs +1 -2
  122. package/dist/runtime/nativeComponents/label.mjs +1 -2
  123. package/dist/runtime/nativeComponents/mediaRegistry.mjs +1 -2
  124. package/dist/runtime/nativeComponents/movable/helpers.mjs +1 -2
  125. package/dist/runtime/nativeComponents/movable/index.mjs +1 -2
  126. package/dist/runtime/nativeComponents/navigator.mjs +1 -2
  127. package/dist/runtime/nativeComponents/picker/editors.mjs +1 -2
  128. package/dist/runtime/nativeComponents/picker/helpers.mjs +1 -2
  129. package/dist/runtime/nativeComponents/picker/index.mjs +1 -2
  130. package/dist/runtime/nativeComponents/picker/style.mjs +1 -2
  131. package/dist/runtime/nativeComponents/pickerView/column.mjs +1 -2
  132. package/dist/runtime/nativeComponents/pickerView/helpers.mjs +1 -2
  133. package/dist/runtime/nativeComponents/pickerView/index.mjs +1 -2
  134. package/dist/runtime/nativeComponents/pickerView/style.mjs +1 -2
  135. package/dist/runtime/nativeComponents/primitives.mjs +1 -2
  136. package/dist/runtime/nativeComponents/progress/helpers.mjs +1 -2
  137. package/dist/runtime/nativeComponents/progress/index.mjs +1 -2
  138. package/dist/runtime/nativeComponents/progress/style.mjs +1 -2
  139. package/dist/runtime/nativeComponents/radio.mjs +1 -2
  140. package/dist/runtime/nativeComponents/richText/index.mjs +1 -2
  141. package/dist/runtime/nativeComponents/scrollView/boundaries.mjs +62 -0
  142. package/dist/runtime/nativeComponents/scrollView/boundaries.mjs.map +1 -0
  143. package/dist/runtime/nativeComponents/{scrollView.d.mts → scrollView/helpers.d.mts} +4 -5
  144. package/dist/runtime/nativeComponents/scrollView/helpers.mjs +14 -0
  145. package/dist/runtime/nativeComponents/scrollView/helpers.mjs.map +1 -0
  146. package/dist/runtime/nativeComponents/scrollView/index.mjs +193 -0
  147. package/dist/runtime/nativeComponents/scrollView/index.mjs.map +1 -0
  148. package/dist/runtime/nativeComponents/scrollView/position.mjs +43 -0
  149. package/dist/runtime/nativeComponents/scrollView/position.mjs.map +1 -0
  150. package/dist/runtime/nativeComponents/slider/helpers.mjs +1 -2
  151. package/dist/runtime/nativeComponents/slider/index.mjs +1 -2
  152. package/dist/runtime/nativeComponents/slider/style.mjs +1 -2
  153. package/dist/runtime/nativeComponents/style.mjs +1 -2
  154. package/dist/runtime/nativeComponents/swiper/helpers.mjs +1 -2
  155. package/dist/runtime/nativeComponents/swiper/index.mjs +1 -2
  156. package/dist/runtime/nativeComponents/swiper/item.mjs +1 -2
  157. package/dist/runtime/nativeComponents/swiper/style.mjs +1 -2
  158. package/dist/runtime/nativeComponents/switch.d.mts +0 -2
  159. package/dist/runtime/nativeComponents/switch.mjs +1 -2
  160. package/dist/runtime/nativeComponents/textarea.d.mts +0 -2
  161. package/dist/runtime/nativeComponents/textarea.mjs +1 -2
  162. package/dist/runtime/nativeComponents/video/helpers.d.mts +0 -2
  163. package/dist/runtime/nativeComponents/video/helpers.mjs +1 -2
  164. package/dist/runtime/nativeComponents/video/index.mjs +1 -2
  165. package/dist/runtime/nativeComponents/video/style.mjs +1 -2
  166. package/dist/runtime/navigationBar/index.d.mts +0 -2
  167. package/dist/runtime/navigationBar/index.mjs +1 -2
  168. package/dist/runtime/navigationBar/style.mjs +1 -2
  169. package/dist/runtime/pageLayout.d.mts +0 -2
  170. package/dist/runtime/pageLayout.mjs +1 -2
  171. package/dist/runtime/polyfill/ad.mjs +1 -2
  172. package/dist/runtime/polyfill/animation.mjs +1 -2
  173. package/dist/runtime/polyfill/appState.mjs +1 -2
  174. package/dist/runtime/polyfill/async.d.mts +0 -2
  175. package/dist/runtime/polyfill/async.mjs +1 -2
  176. package/dist/runtime/polyfill/auth.mjs +1 -2
  177. package/dist/runtime/polyfill/authApi.mjs +1 -2
  178. package/dist/runtime/polyfill/background.mjs +1 -2
  179. package/dist/runtime/polyfill/canvasContext.mjs +1 -2
  180. package/dist/runtime/polyfill/capability.mjs +1 -2
  181. package/dist/runtime/polyfill/cloud.mjs +1 -2
  182. package/dist/runtime/polyfill/device.mjs +1 -2
  183. package/dist/runtime/polyfill/deviceApi.mjs +1 -2
  184. package/dist/runtime/polyfill/deviceAuthSystemApi.d.mts +0 -2
  185. package/dist/runtime/polyfill/deviceAuthSystemApi.mjs +1 -2
  186. package/dist/runtime/polyfill/eventBus.mjs +1 -2
  187. package/dist/runtime/polyfill/filePicker.mjs +1 -2
  188. package/dist/runtime/polyfill/fileSystemManager.mjs +1 -2
  189. package/dist/runtime/polyfill/files.mjs +1 -2
  190. package/dist/runtime/polyfill/font.mjs +1 -2
  191. package/dist/runtime/polyfill/index.d.mts +4 -4
  192. package/dist/runtime/polyfill/index.mjs +11 -4
  193. package/dist/runtime/polyfill/index.mjs.map +1 -1
  194. package/dist/runtime/polyfill/interaction.mjs +1 -2
  195. package/dist/runtime/polyfill/interactionApi.mjs +1 -2
  196. package/dist/runtime/polyfill/intersectionObserver.mjs +4 -4
  197. package/dist/runtime/polyfill/intersectionObserver.mjs.map +1 -1
  198. package/dist/runtime/polyfill/lifecycleEvents.d.mts +12 -0
  199. package/dist/runtime/polyfill/lifecycleEvents.mjs +67 -0
  200. package/dist/runtime/polyfill/lifecycleEvents.mjs.map +1 -0
  201. package/dist/runtime/polyfill/locale.mjs +1 -2
  202. package/dist/runtime/polyfill/location.mjs +1 -2
  203. package/dist/runtime/polyfill/locationApi.mjs +1 -2
  204. package/dist/runtime/polyfill/mediaActions.mjs +1 -2
  205. package/dist/runtime/polyfill/mediaApi/file.mjs +1 -2
  206. package/dist/runtime/polyfill/mediaApi/info.mjs +1 -2
  207. package/dist/runtime/polyfill/mediaApi/picker.mjs +1 -2
  208. package/dist/runtime/polyfill/mediaApi/preview.mjs +1 -2
  209. package/dist/runtime/polyfill/mediaApi/process.mjs +1 -2
  210. package/dist/runtime/polyfill/mediaInfo.mjs +1 -2
  211. package/dist/runtime/polyfill/mediaPicker.mjs +1 -2
  212. package/dist/runtime/polyfill/mediaProcess.mjs +1 -2
  213. package/dist/runtime/polyfill/menuApi.mjs +5 -3
  214. package/dist/runtime/polyfill/menuApi.mjs.map +1 -1
  215. package/dist/runtime/polyfill/navigationBarRuntime.mjs +1 -2
  216. package/dist/runtime/polyfill/network/request.mjs +1 -2
  217. package/dist/runtime/polyfill/network/requestBridge.mjs +1 -2
  218. package/dist/runtime/polyfill/network/status.mjs +1 -2
  219. package/dist/runtime/polyfill/platformApi.mjs +1 -2
  220. package/dist/runtime/polyfill/platformRuntime.mjs +1 -2
  221. package/dist/runtime/polyfill/routeRuntime/appLifecycle.mjs +1 -2
  222. package/dist/runtime/polyfill/routeRuntime/dom.mjs +1 -2
  223. package/dist/runtime/polyfill/routeRuntime/events.d.mts +0 -2
  224. package/dist/runtime/polyfill/routeRuntime/events.mjs +1 -2
  225. package/dist/runtime/polyfill/routeRuntime/history.d.mts +0 -2
  226. package/dist/runtime/polyfill/routeRuntime/history.mjs +1 -2
  227. package/dist/runtime/polyfill/routeRuntime/lifecycle.mjs +1 -2
  228. package/dist/runtime/polyfill/routeRuntime/options.d.mts +0 -2
  229. package/dist/runtime/polyfill/routeRuntime/options.mjs +1 -2
  230. package/dist/runtime/polyfill/routeRuntime/result.mjs +1 -2
  231. package/dist/runtime/polyfill/routeRuntime/scroll.mjs +37 -6
  232. package/dist/runtime/polyfill/routeRuntime/scroll.mjs.map +1 -1
  233. package/dist/runtime/polyfill/routeRuntime/stack.mjs +1 -2
  234. package/dist/runtime/polyfill/routeRuntime/url.mjs +1 -2
  235. package/dist/runtime/polyfill/routeRuntime.d.mts +2 -2
  236. package/dist/runtime/polyfill/routeRuntime.mjs +14 -5
  237. package/dist/runtime/polyfill/routeRuntime.mjs.map +1 -1
  238. package/dist/runtime/polyfill/runtimeCapabilityApi.mjs +1 -2
  239. package/dist/runtime/polyfill/runtimeDataApi.d.mts +0 -2
  240. package/dist/runtime/polyfill/runtimeDataApi.mjs +1 -2
  241. package/dist/runtime/polyfill/runtimeInfra.mjs +1 -2
  242. package/dist/runtime/polyfill/runtimeOps.mjs +1 -2
  243. package/dist/runtime/polyfill/selectorQuery.mjs +3 -3
  244. package/dist/runtime/polyfill/selectorQuery.mjs.map +1 -1
  245. package/dist/runtime/polyfill/storage.mjs +1 -2
  246. package/dist/runtime/polyfill/storageAsync.mjs +1 -2
  247. package/dist/runtime/polyfill/subscribe.mjs +1 -2
  248. package/dist/runtime/polyfill/system.mjs +1 -2
  249. package/dist/runtime/polyfill/systemApi.mjs +1 -2
  250. package/dist/runtime/polyfill/types/base.d.mts +0 -2
  251. package/dist/runtime/polyfill/types/common.d.mts +0 -2
  252. package/dist/runtime/polyfill/types/lifecycle.d.mts +12 -0
  253. package/dist/runtime/polyfill/types/locationRuntime.d.mts +0 -2
  254. package/dist/runtime/polyfill/types/mediaAuth.d.mts +0 -2
  255. package/dist/runtime/polyfill/types/platformRuntime.d.mts +0 -2
  256. package/dist/runtime/polyfill/types/systemAuth.d.mts +0 -2
  257. package/dist/runtime/polyfill/types/tabBarRuntime.d.mts +0 -2
  258. package/dist/runtime/polyfill/ui.mjs +1 -2
  259. package/dist/runtime/polyfill/uiFeedback.mjs +19 -5
  260. package/dist/runtime/polyfill/uiFeedback.mjs.map +1 -1
  261. package/dist/runtime/polyfill/uiMediaApi.d.mts +8 -2
  262. package/dist/runtime/polyfill/uiMediaApi.mjs +20 -5
  263. package/dist/runtime/polyfill/uiMediaApi.mjs.map +1 -1
  264. package/dist/runtime/polyfill/videoContext.mjs +1 -2
  265. package/dist/runtime/polyfill/vkSession.mjs +1 -2
  266. package/dist/runtime/polyfill/windowResize.mjs +1 -2
  267. package/dist/runtime/polyfill/worker.mjs +1 -2
  268. package/dist/runtime/polyfill.d.mts +4 -2
  269. package/dist/runtime/renderContext.d.mts +0 -2
  270. package/dist/runtime/renderContext.mjs +5 -4
  271. package/dist/runtime/renderContext.mjs.map +1 -1
  272. package/dist/runtime/rpx.d.mts +0 -2
  273. package/dist/runtime/rpx.mjs +6 -6
  274. package/dist/runtime/rpx.mjs.map +1 -1
  275. package/dist/runtime/seo/index.d.mts +0 -2
  276. package/dist/runtime/seo/index.mjs +1 -2
  277. package/dist/runtime/style.d.mts +0 -2
  278. package/dist/runtime/style.mjs +1 -2
  279. package/dist/runtime/template.d.mts +0 -2
  280. package/dist/runtime/utils/object.mjs +1 -2
  281. package/dist/runtime/viewport/index.d.mts +0 -2
  282. package/dist/runtime/viewport/index.mjs +1 -2
  283. package/dist/runtime/viewport/style.mjs +2 -2
  284. package/dist/runtime/viewport/style.mjs.map +1 -1
  285. package/dist/runtime/viewport/types.d.mts +0 -2
  286. package/dist/runtime/warning.d.mts +0 -2
  287. package/dist/runtime/warning.mjs +1 -2
  288. package/dist/runtime/wevu.d.mts +0 -2
  289. package/dist/runtime/wevu.mjs +1 -2
  290. package/dist/shared/nativeComponents.mjs +10 -3
  291. package/dist/shared/nativeComponents.mjs.map +1 -1
  292. package/dist/shared/slugify.mjs +1 -2
  293. package/dist/shared/styleUnits/options.d.mts +24 -0
  294. package/dist/shared/styleUnits/options.mjs +13 -0
  295. package/dist/shared/styleUnits/options.mjs.map +1 -0
  296. package/dist/shared/styleUnits/value.mjs +63 -0
  297. package/dist/shared/styleUnits/value.mjs.map +1 -0
  298. package/dist/shared/tabBar.d.mts +0 -2
  299. package/dist/shared/tabBar.mjs +1 -2
  300. package/dist/shared/wxml.mjs +1 -2
  301. package/package.json +15 -13
  302. package/dist/runtime/nativeComponents/scrollView.mjs +0 -88
  303. package/dist/runtime/nativeComponents/scrollView.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"wxss.mjs","names":[],"sources":["../../src/css/wxss.ts"],"sourcesContent":["import postcss from 'postcss'\nimport selectorParser from 'postcss-selector-parser'\nimport { resolveNativeComponentWebTag } from '../shared/nativeComponents'\n\nexport interface WxssTransformOptions {\n /**\n * 1rpx 对应的 CSS 像素数。\n * 默认值近似于 750rpx 设计稿在 375px 屏幕上的换算。\n */\n pxPerRpx?: number\n /**\n * rpx 换算的设计宽度。传入后会把 rpx 转为\n * `calc(var(--rpx) * N)` 以实现响应式缩放。\n */\n designWidth?: number\n /**\n * 用于存储运行时 rpx 大小的 CSS 变量名。\n * @default \"--rpx\"\n */\n rpxVar?: string\n}\n\nexport interface WxssTransformResult {\n css: string\n}\n\nconst RPX_RE = /(-?(?:\\d+(?:\\.\\d+)?|\\.\\d+))rpx/gi\nconst SAFE_AREA_ENV_RE = /env\\(\\s*safe-area-inset-(top|right|bottom|left)(?:\\s*,[^)]*)?\\)/gi\nconst PAGE_HOST_SELECTOR = selectorParser().astSync(':host(:where([data-weapp-page-active]))').nodes[0]!.nodes[0]!\n\nfunction isDeepPseudo(pseudo: selectorParser.Pseudo) {\n return pseudo.value === ':deep' || pseudo.value === '::v-deep'\n}\n\nfunction flattenDeepPseudos(selector: selectorParser.Selector) {\n selector.walkPseudos((pseudo) => {\n if (!isDeepPseudo(pseudo)) {\n return\n }\n const nestedSelector = pseudo.nodes?.[0]\n if (nestedSelector && nestedSelector.nodes.length > 0) {\n pseudo.replaceWith(...nestedSelector.nodes.map(node => node.clone()))\n return\n }\n pseudo.remove()\n })\n}\n\nfunction transformNativeTags(selector: selectorParser.Selector) {\n selector.walkTags((tag) => {\n if (tag.parent?.type === 'selector' && tag.parent.parent?.type === 'pseudo' && tag.parent.parent.value === '::part') {\n return\n }\n if (tag.value === 'page') {\n tag.replaceWith(PAGE_HOST_SELECTOR.clone())\n return\n }\n const webTag = resolveNativeComponentWebTag(tag.value)\n if (webTag) {\n tag.value = webTag\n }\n })\n}\n\nfunction createPartPseudo(className: string) {\n return selectorParser.pseudo({\n value: '::part',\n nodes: [selectorParser.selector({\n value: '',\n nodes: [selectorParser.tag({ value: className })],\n })],\n })\n}\n\nfunction createVirtualHostPartSelector(source: selectorParser.Selector) {\n const selector = source.clone()\n let deepPseudo: selectorParser.Pseudo | undefined\n selector.walkPseudos((pseudo) => {\n if (!deepPseudo && isDeepPseudo(pseudo)) {\n deepPseudo = pseudo\n }\n })\n if (!deepPseudo || deepPseudo.parent?.type !== 'selector') {\n return undefined\n }\n\n const parent = deepPseudo.parent\n const pseudoIndex = parent.nodes.indexOf(deepPseudo)\n const nestedNodes = deepPseudo.nodes?.[0]?.nodes ?? []\n const nestedTargetClass = nestedNodes.find(node => node.type === 'class')?.value\n let targetStart = pseudoIndex\n if (nestedNodes.length > 0) {\n deepPseudo.replaceWith(...nestedNodes.map(node => node.clone()))\n }\n else {\n deepPseudo.remove()\n while (parent.nodes[targetStart]?.type === 'combinator') {\n targetStart += 1\n }\n }\n\n let targetEnd = targetStart\n while (targetEnd + 1 < parent.nodes.length && parent.nodes[targetEnd + 1]?.type !== 'combinator') {\n targetEnd += 1\n }\n if (targetStart >= parent.nodes.length || targetEnd < parent.nodes.length - 1) {\n return undefined\n }\n\n const targetNodes = parent.nodes.slice(targetStart, targetEnd + 1)\n const targetClass = nestedTargetClass\n ?? targetNodes.find(node => node.type === 'class')?.value\n const targetNode = parent.nodes[targetEnd]!\n if (!targetClass) {\n return undefined\n }\n\n const firstTargetPseudo = targetNodes.find(node => node.type === 'pseudo')\n if (firstTargetPseudo?.value.startsWith(':') && !firstTargetPseudo.value.startsWith('::')) {\n return undefined\n }\n if (firstTargetPseudo) {\n parent.insertBefore(firstTargetPseudo, createPartPseudo(targetClass))\n }\n else {\n parent.insertAfter(targetNode, createPartPseudo(targetClass))\n }\n flattenDeepPseudos(selector)\n transformNativeTags(selector)\n return selector\n}\n\nfunction transformWxssSelector(selector: string) {\n const root = selectorParser().astSync(selector)\n const output: string[] = []\n for (const sourceSelector of root.nodes) {\n const partSelector = createVirtualHostPartSelector(sourceSelector)\n const flatSelector = sourceSelector.clone()\n flattenDeepPseudos(flatSelector)\n transformNativeTags(flatSelector)\n output.push(flatSelector.toString())\n if (partSelector) {\n output.push(partSelector.toString())\n }\n }\n return output.join(',\\n')\n}\n\nfunction transformWxssRoot(root: postcss.Root, options?: WxssTransformOptions) {\n const rpxVar = options?.rpxVar ?? '--rpx'\n const useVariable = options?.pxPerRpx === undefined\n || (typeof options.designWidth === 'number' && Number.isFinite(options.designWidth))\n const ratio = options?.pxPerRpx ?? 0.5\n root.walkRules((rule) => {\n if (rule.selector) {\n rule.selector = transformWxssSelector(rule.selector)\n }\n })\n root.walkDecls((declaration) => {\n declaration.value = declaration.value\n .replace(\n SAFE_AREA_ENV_RE,\n (_, side: string) => `var(--weapp-safe-area-inset-${side})`,\n )\n .replace(RPX_RE, (_, value: string) => {\n const numeric = Number.parseFloat(value)\n if (useVariable) {\n return `calc(var(${rpxVar}) * ${numeric})`\n }\n const converted = Math.round(numeric * ratio * 1000) / 1000\n return `${converted}px`\n })\n })\n}\n\nexport function createWxssPostcssPlugin(options?: WxssTransformOptions) {\n return {\n postcssPlugin: 'weapp-vite-web-wxss',\n Once(root: postcss.Root) {\n transformWxssRoot(root, options)\n },\n }\n}\n\nexport function transformWxssToCss(source: string, options?: WxssTransformOptions): WxssTransformResult {\n const root = postcss.parse(source)\n transformWxssRoot(root, options)\n return {\n css: root.toString(),\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"wxss.mjs","names":[],"sources":["../../src/css/wxss.ts"],"sourcesContent":["import type { WxssTransformOptions } from '../shared/styleUnits/options'\nimport postcss from 'postcss'\nimport selectorParser from 'postcss-selector-parser'\nimport { resolveNativeComponentWebTag } from '../shared/nativeComponents'\nimport { resolveStyleUnitOptions } from '../shared/styleUnits/options'\nimport { transformStyleValue } from '../shared/styleUnits/value'\n\nexport type { WxssTransformOptions } from '../shared/styleUnits/options'\n\nexport interface WxssTransformResult {\n css: string\n}\n\nconst PAGE_HOST_SELECTOR = selectorParser().astSync(':host(:where([data-weapp-page-active]))').nodes[0]!.nodes[0]!\n\nfunction isDeepPseudo(pseudo: selectorParser.Pseudo) {\n return pseudo.value === ':deep' || pseudo.value === '::v-deep'\n}\n\nfunction flattenDeepPseudos(selector: selectorParser.Selector) {\n selector.walkPseudos((pseudo) => {\n if (!isDeepPseudo(pseudo)) {\n return\n }\n const nestedSelector = pseudo.nodes?.[0]\n if (nestedSelector && nestedSelector.nodes.length > 0) {\n pseudo.replaceWith(...nestedSelector.nodes.map(node => node.clone()))\n return\n }\n pseudo.remove()\n })\n}\n\nfunction transformNativeTags(selector: selectorParser.Selector) {\n selector.walkTags((tag) => {\n if (tag.parent?.type === 'selector' && tag.parent.parent?.type === 'pseudo' && tag.parent.parent.value === '::part') {\n return\n }\n if (tag.value === 'page') {\n tag.replaceWith(PAGE_HOST_SELECTOR.clone())\n return\n }\n const webTag = resolveNativeComponentWebTag(tag.value)\n if (webTag) {\n tag.value = webTag\n }\n })\n}\n\nfunction createPartPseudo(className: string) {\n return selectorParser.pseudo({\n value: '::part',\n nodes: [selectorParser.selector({\n value: '',\n nodes: [selectorParser.tag({ value: className })],\n })],\n })\n}\n\nfunction createVirtualHostPartSelector(source: selectorParser.Selector) {\n const selector = source.clone()\n let deepPseudo: selectorParser.Pseudo | undefined\n selector.walkPseudos((pseudo) => {\n if (!deepPseudo && isDeepPseudo(pseudo)) {\n deepPseudo = pseudo\n }\n })\n if (!deepPseudo || deepPseudo.parent?.type !== 'selector') {\n return undefined\n }\n\n const parent = deepPseudo.parent\n const pseudoIndex = parent.nodes.indexOf(deepPseudo)\n const nestedNodes = deepPseudo.nodes?.[0]?.nodes ?? []\n const nestedTargetClass = nestedNodes.find(node => node.type === 'class')?.value\n let targetStart = pseudoIndex\n if (nestedNodes.length > 0) {\n deepPseudo.replaceWith(...nestedNodes.map(node => node.clone()))\n }\n else {\n deepPseudo.remove()\n while (parent.nodes[targetStart]?.type === 'combinator') {\n targetStart += 1\n }\n }\n\n let targetEnd = targetStart\n while (targetEnd + 1 < parent.nodes.length && parent.nodes[targetEnd + 1]?.type !== 'combinator') {\n targetEnd += 1\n }\n if (targetStart >= parent.nodes.length || targetEnd < parent.nodes.length - 1) {\n return undefined\n }\n\n const targetNodes = parent.nodes.slice(targetStart, targetEnd + 1)\n const targetClass = nestedTargetClass\n ?? targetNodes.find(node => node.type === 'class')?.value\n const targetNode = parent.nodes[targetEnd]!\n if (!targetClass) {\n return undefined\n }\n\n const firstTargetPseudo = targetNodes.find(node => node.type === 'pseudo')\n if (firstTargetPseudo?.value.startsWith(':') && !firstTargetPseudo.value.startsWith('::')) {\n return undefined\n }\n if (firstTargetPseudo) {\n parent.insertBefore(firstTargetPseudo, createPartPseudo(targetClass))\n }\n else {\n parent.insertAfter(targetNode, createPartPseudo(targetClass))\n }\n flattenDeepPseudos(selector)\n transformNativeTags(selector)\n return selector\n}\n\nfunction transformWxssSelector(selector: string) {\n const root = selectorParser().astSync(selector)\n const output: string[] = []\n for (const sourceSelector of root.nodes) {\n const partSelector = createVirtualHostPartSelector(sourceSelector)\n const flatSelector = sourceSelector.clone()\n flattenDeepPseudos(flatSelector)\n transformNativeTags(flatSelector)\n output.push(flatSelector.toString())\n if (partSelector) {\n output.push(partSelector.toString())\n }\n }\n return output.join(',\\n')\n}\n\nfunction transformWxssRoot(root: postcss.Root, options?: WxssTransformOptions) {\n const unitOptions = resolveStyleUnitOptions(options)\n root.walkRules((rule) => {\n if (rule.selector) {\n rule.selector = transformWxssSelector(rule.selector)\n }\n })\n root.walkDecls((declaration) => {\n declaration.value = transformStyleValue(declaration.value, unitOptions)\n })\n}\n\nexport function createWxssPostcssPlugin(options?: WxssTransformOptions) {\n return {\n postcssPlugin: 'weapp-vite-web-wxss',\n Once(root: postcss.Root) {\n transformWxssRoot(root, options)\n },\n }\n}\n\nexport function transformWxssToCss(source: string, options?: WxssTransformOptions): WxssTransformResult {\n const root = postcss.parse(source)\n transformWxssRoot(root, options)\n return {\n css: root.toString(),\n }\n}\n"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -1,3 +1,4 @@
1
+ import { ResolvedStyleUnitOptions } from "./shared/styleUnits/options.mjs";
1
2
  import { transformWxssToCss } from "./css/wxss.mjs";
2
3
  import { RenderContext, createRenderContext } from "./runtime/renderContext.mjs";
3
4
  import { createTemplate, renderTemplate } from "./runtime/legacyTemplate/index.mjs";
@@ -11,14 +12,16 @@ import { WeappWebPluginOptions } from "./plugin/types.mjs";
11
12
  import { weappWebPlugin } from "./plugin/index.mjs";
12
13
  import "./plugin.mjs";
13
14
  import { ButtonFormConfig, ensureButtonDefined, setButtonFormConfig } from "./runtime/button/index.mjs";
15
+ import { bindRuntimeDataset } from "./runtime/datasetBinding.mjs";
14
16
  import { bindRuntimeEvent } from "./runtime/eventBinding.mjs";
15
17
  import { getRuntimeExecutionMode, setRuntimeExecutionMode } from "./runtime/execution.mjs";
16
18
  import { WebRuntimeClipboard, WebRuntimeDialogs, WebRuntimeHost, WebRuntimeStorage } from "./runtime/host/types.mjs";
17
19
  import { getRuntimeClipboard, getRuntimeDialogs, getRuntimeFetch, getRuntimeStorage, getWebRuntimeHost, openRuntimeUrl, resetWebRuntimeHost, setWebRuntimeHost } from "./runtime/host/index.mjs";
18
20
  import { installWebHostGlobals } from "./runtime/hostGlobals.mjs";
21
+ import { transformInlineStyleValue } from "./runtime/inlineStyle.mjs";
19
22
  import { resolveImageModeStyle } from "./runtime/nativeComponents/image.mjs";
20
23
  import { createInputEventDetail } from "./runtime/nativeComponents/input.mjs";
21
- import { createScrollEventDetail } from "./runtime/nativeComponents/scrollView.mjs";
24
+ import { createScrollEventDetail } from "./runtime/nativeComponents/scrollView/helpers.mjs";
22
25
  import { createSwitchEventDetail } from "./runtime/nativeComponents/switch.mjs";
23
26
  import { createTextareaLineChangeDetail } from "./runtime/nativeComponents/textarea.mjs";
24
27
  import { createVideoProgressDetail, createVideoTimeUpdateDetail, resolveVideoObjectFit } from "./runtime/nativeComponents/video/helpers.mjs";
@@ -26,12 +29,14 @@ import { ensureNativeComponentsDefined } from "./runtime/nativeComponents/index.
26
29
  import { NavigationBarMetrics, setNavigationBarMetrics } from "./runtime/navigationBar/index.mjs";
27
30
  import { setPageLayout } from "./runtime/pageLayout.mjs";
28
31
  import { authorize, checkSession, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getDeviceInfo, getFuzzyLocation, getLocation, getMenuButtonBoundingClientRect, getNetworkType, getSetting, getSystemInfo, getSystemInfoSync, getSystemSetting, getUserInfo, getUserProfile, getWindowInfo, login, offNetworkStatusChange, offWindowResize, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openSetting, vibrateShort } from "./runtime/polyfill/deviceAuthSystemApi.mjs";
32
+ import { MiniProgramErrorCallback, ThemeChangeCallback, ThemeChangeEvent, UnhandledRejectionCallback, UnhandledRejectionEvent } from "./runtime/polyfill/types/lifecycle.mjs";
33
+ import { offError, offThemeChange, offUnhandledRejection, onError, onThemeChange, onUnhandledRejection, reportEvent } from "./runtime/polyfill/lifecycleEvents.mjs";
29
34
  import { ResolvedWebViewportConfig, WebViewportConfig } from "./runtime/viewport/types.mjs";
30
35
  import { getWebViewportWidth, resolveWebViewportConfig, setupWebViewport } from "./runtime/viewport/index.mjs";
31
36
  import { getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, offAppHide, offAppShow, onAppHide, onAppShow, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab } from "./runtime/polyfill/routeRuntime.mjs";
32
37
  import { AppRouteCallback, AppRouteEvent, AppRouteOpenType, BeforePageUnloadCallback, BeforePageUnloadEvent, offAppRoute, offAppRouteDone, offBeforeAppRoute, offBeforePageUnload, onAppRoute, onAppRouteDone, onBeforeAppRoute, onBeforePageUnload } from "./runtime/polyfill/routeRuntime/events.mjs";
33
38
  import { clearStorage, clearStorageSync, createCanvasContext, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getFileSystemManager, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, hideKeyboard, loadSubPackage, navigateToMiniProgram, nextTick, pageScrollTo, preloadSubpackage, removeStorage, removeStorageSync, request, setStorage, setStorageSync, startPullDownRefresh, stopPullDownRefresh, uploadFile } from "./runtime/polyfill/runtimeDataApi.mjs";
34
- import { chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, compressImage, compressVideo, getClipboardData, getImageInfo, getVideoInfo, hideLoading, hideTabBar, hideTabBarRedDot, makePhoneCall, openCustomerServiceChat, openDocument, openLocation, openVideoEditor, previewImage, previewMedia, removeTabBarBadge, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, updateShareMenu } from "./runtime/polyfill/uiMediaApi.mjs";
39
+ import { chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, compressImage, compressVideo, getClipboardData, getImageInfo, getVideoInfo, hideHomeButton, hideLoading, hideShareMenu, hideTabBar, hideTabBarRedDot, hideToast, makePhoneCall, openCustomerServiceChat, openDocument, openLocation, openVideoEditor, previewImage, previewMedia, removeTabBarBadge, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, updateShareMenu } from "./runtime/polyfill/uiMediaApi.mjs";
35
40
  import { canIUse, createInterstitialAd, createRewardedVideoAd, getExtConfig, getExtConfigSync, getLogManager, getUpdateManager, hideNavigationBarLoading, reportAnalytics, setBackgroundColor, setBackgroundTextStyle, setNavigationBarColor, setNavigationBarTitle, showNavigationBarLoading } from "./runtime/polyfill/index.mjs";
36
41
  import { RpxConfig, setupRpx } from "./runtime/rpx.mjs";
37
42
  import { injectStyle, removeStyle } from "./runtime/style.mjs";
@@ -39,4 +44,4 @@ import { RuntimeWarningLevel, RuntimeWarningOptions, setRuntimeWarningOptions }
39
44
  import { installWebModuleRegistration, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory } from "./runtime/wevu.mjs";
40
45
  import "./runtime/index.mjs";
41
46
  export * from "wevu/internal-runtime";
42
- export { type AppHideCallback, type AppHideOptions, type AppLaunchOptions, type AppRouteCallback, type AppRouteEvent, type AppRouteOpenType, type AppShowCallback, type BeforePageUnloadCallback, type BeforePageUnloadEvent, type ButtonFormConfig, type NavigationBarMetrics, type RenderContext, type ResolvedWebRoutingConfig, type ResolvedWebViewportConfig, type RpxConfig, type RuntimeWarningLevel, type RuntimeWarningOptions, type TemplateRenderer, type TemplateScope, type WeappWebPluginOptions, type WebPageHead, type WebResourceHint, type WebResourceHintRelation, type WebResourceHintsConfig, type WebRouteHistoryState, type WebRouteTarget, type WebRoutingConfig, type WebRoutingMode, type WebRuntimeClipboard, type WebRuntimeDialogs, type WebRuntimeHost, type WebRuntimeStorage, type WebSeoConfig, type WebTabBarConfig, type WebTabBarItem, type WebViewportConfig, authorize, bindRuntimeEvent, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, configureWebSeo, createCanvasContext, createInputEventDetail, createInterstitialAd, createRenderContext, createRewardedVideoAd, createScrollEventDetail, createSelectorQuery, createSwitchEventDetail, createTemplate, createTextareaLineChangeDetail, createVKSession, createVideoContext, createVideoProgressDetail, createVideoTimeUpdateDetail, createWorker, defineComponent, disposeWebRouting, downloadFile, ensureButtonDefined, ensureNativeComponentsDefined, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getRuntimeClipboard, getRuntimeDialogs, getRuntimeExecutionMode, getRuntimeFetch, getRuntimeStorage, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWebRoutingConfig, getWebRuntimeHost, getWebViewportWidth, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, injectStyle, installWebHostGlobals, installWebModuleRegistration, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppRoute, offAppRouteDone, offAppShow, offBeforeAppRoute, offBeforePageUnload, offNetworkStatusChange, offWindowResize, onAppHide, onAppRoute, onAppRouteDone, onAppShow, onBeforeAppRoute, onBeforePageUnload, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openRuntimeUrl, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory, removeStorage, removeStorageSync, removeStyle, removeTabBarBadge, renderTemplate, reportAnalytics, request, requestPayment, requestSubscribeMessage, resetWebDocumentHead, resetWebRuntimeHost, resolveImageModeStyle, resolveVideoObjectFit, resolveWebRoutingConfig, resolveWebViewportConfig, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setButtonFormConfig, setClipboardData, setNavigationBarColor, setNavigationBarMetrics, setNavigationBarTitle, setPageLayout, setRuntimeExecutionMode, setRuntimeWarningOptions, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setWebRuntimeHost, setupRpx, setupWebResourceHints, setupWebViewport, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, syncWebDocumentHead, transformWxssToCss, updateShareMenu, updateWebDocumentTitle, uploadFile, vibrateShort, weappWebPlugin };
47
+ export { type AppHideCallback, type AppHideOptions, type AppLaunchOptions, type AppRouteCallback, type AppRouteEvent, type AppRouteOpenType, type AppShowCallback, type BeforePageUnloadCallback, type BeforePageUnloadEvent, type ButtonFormConfig, type MiniProgramErrorCallback, type NavigationBarMetrics, type RenderContext, type ResolvedStyleUnitOptions, type ResolvedWebRoutingConfig, type ResolvedWebViewportConfig, type RpxConfig, type RuntimeWarningLevel, type RuntimeWarningOptions, type TemplateRenderer, type TemplateScope, type ThemeChangeCallback, type ThemeChangeEvent, type UnhandledRejectionCallback, type UnhandledRejectionEvent, type WeappWebPluginOptions, type WebPageHead, type WebResourceHint, type WebResourceHintRelation, type WebResourceHintsConfig, type WebRouteHistoryState, type WebRouteTarget, type WebRoutingConfig, type WebRoutingMode, type WebRuntimeClipboard, type WebRuntimeDialogs, type WebRuntimeHost, type WebRuntimeStorage, type WebSeoConfig, type WebTabBarConfig, type WebTabBarItem, type WebViewportConfig, authorize, bindRuntimeDataset, bindRuntimeEvent, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, configureWebSeo, createCanvasContext, createInputEventDetail, createInterstitialAd, createRenderContext, createRewardedVideoAd, createScrollEventDetail, createSelectorQuery, createSwitchEventDetail, createTemplate, createTextareaLineChangeDetail, createVKSession, createVideoContext, createVideoProgressDetail, createVideoTimeUpdateDetail, createWorker, defineComponent, disposeWebRouting, downloadFile, ensureButtonDefined, ensureNativeComponentsDefined, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getRuntimeClipboard, getRuntimeDialogs, getRuntimeExecutionMode, getRuntimeFetch, getRuntimeStorage, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWebRoutingConfig, getWebRuntimeHost, getWebViewportWidth, getWindowInfo, hideHomeButton, hideKeyboard, hideLoading, hideNavigationBarLoading, hideShareMenu, hideTabBar, hideTabBarRedDot, hideToast, initializePageRoutes, injectStyle, installWebHostGlobals, installWebModuleRegistration, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppRoute, offAppRouteDone, offAppShow, offBeforeAppRoute, offBeforePageUnload, offError, offNetworkStatusChange, offThemeChange, offUnhandledRejection, offWindowResize, onAppHide, onAppRoute, onAppRouteDone, onAppShow, onBeforeAppRoute, onBeforePageUnload, onError, onNetworkStatusChange, onThemeChange, onUnhandledRejection, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openRuntimeUrl, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory, removeStorage, removeStorageSync, removeStyle, removeTabBarBadge, renderTemplate, reportAnalytics, reportEvent, request, requestPayment, requestSubscribeMessage, resetWebDocumentHead, resetWebRuntimeHost, resolveImageModeStyle, resolveVideoObjectFit, resolveWebRoutingConfig, resolveWebViewportConfig, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setButtonFormConfig, setClipboardData, setNavigationBarColor, setNavigationBarMetrics, setNavigationBarTitle, setPageLayout, setRuntimeExecutionMode, setRuntimeWarningOptions, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setWebRuntimeHost, setupRpx, setupWebResourceHints, setupWebViewport, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, syncWebDocumentHead, transformInlineStyleValue, transformWxssToCss, updateShareMenu, updateWebDocumentTitle, uploadFile, vibrateShort, weappWebPlugin };
package/dist/index.mjs CHANGED
@@ -5,28 +5,31 @@ import { setRuntimeWarningOptions } from "./runtime/warning.mjs";
5
5
  import { installWebHostGlobals } from "./runtime/hostGlobals.mjs";
6
6
  import { getRuntimeClipboard, getRuntimeDialogs, getRuntimeFetch, getRuntimeStorage, getWebRuntimeHost, openRuntimeUrl, resetWebRuntimeHost, setWebRuntimeHost } from "./runtime/host/index.mjs";
7
7
  import { authorize, checkSession, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getDeviceInfo, getFuzzyLocation, getLocation, getMenuButtonBoundingClientRect, getNetworkType, getSetting, getSystemInfo, getSystemInfoSync, getSystemSetting, getUserInfo, getUserProfile, getWindowInfo, login, offNetworkStatusChange, offWindowResize, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openSetting, vibrateShort } from "./runtime/polyfill/deviceAuthSystemApi.mjs";
8
+ import { offError, offThemeChange, offUnhandledRejection, onError, onThemeChange, onUnhandledRejection, reportEvent } from "./runtime/polyfill/lifecycleEvents.mjs";
8
9
  import { configureWebSeo, resetWebDocumentHead, setupWebResourceHints, syncWebDocumentHead, updateWebDocumentTitle } from "./runtime/seo/index.mjs";
9
10
  import { injectStyle, removeStyle } from "./runtime/style.mjs";
10
11
  import { ensureButtonDefined, setButtonFormConfig } from "./runtime/button/index.mjs";
11
12
  import { getRuntimeExecutionMode, setRuntimeExecutionMode } from "./runtime/execution.mjs";
12
13
  import { createRenderContext } from "./runtime/renderContext.mjs";
13
14
  import { defineComponent } from "./runtime/component/index.mjs";
15
+ import { transformInlineStyleValue } from "./runtime/inlineStyle.mjs";
14
16
  import { resolveImageModeStyle } from "./runtime/nativeComponents/image.mjs";
15
17
  import { createInputEventDetail } from "./runtime/nativeComponents/input.mjs";
16
18
  import { clearStorage, clearStorageSync, createCanvasContext, createSelectorQuery, createVKSession, createVideoContext, createWorker, downloadFile, exitMiniProgram, getFileSystemManager, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, hideKeyboard, loadSubPackage, navigateToMiniProgram, nextTick, pageScrollTo, preloadSubpackage, removeStorage, removeStorageSync, request, setStorage, setStorageSync, startPullDownRefresh, stopPullDownRefresh, uploadFile } from "./runtime/polyfill/runtimeDataApi.mjs";
17
- import { createScrollEventDetail } from "./runtime/nativeComponents/scrollView.mjs";
19
+ import { getWebViewportWidth, resolveWebViewportConfig, setupWebViewport } from "./runtime/viewport/index.mjs";
20
+ import { setupRpx } from "./runtime/rpx.mjs";
21
+ import { createScrollEventDetail } from "./runtime/nativeComponents/scrollView/helpers.mjs";
18
22
  import { createSwitchEventDetail } from "./runtime/nativeComponents/switch.mjs";
19
23
  import { createTextareaLineChangeDetail } from "./runtime/nativeComponents/textarea.mjs";
20
24
  import { createVideoProgressDetail, createVideoTimeUpdateDetail, resolveVideoObjectFit } from "./runtime/nativeComponents/video/helpers.mjs";
21
25
  import { ensureNativeComponentsDefined } from "./runtime/nativeComponents/index.mjs";
22
26
  import { setNavigationBarMetrics } from "./runtime/navigationBar/index.mjs";
23
- import { getWebViewportWidth, resolveWebViewportConfig, setupWebViewport } from "./runtime/viewport/index.mjs";
24
- import { setupRpx } from "./runtime/rpx.mjs";
25
27
  import { offAppRoute, offAppRouteDone, offBeforeAppRoute, offBeforePageUnload, onAppRoute, onAppRouteDone, onBeforeAppRoute, onBeforePageUnload } from "./runtime/polyfill/routeRuntime/events.mjs";
26
28
  import { disposeWebRouting, getWebRoutingConfig, resolveWebRoutingConfig } from "./runtime/polyfill/routeRuntime/history.mjs";
27
29
  import { getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, offAppHide, offAppShow, onAppHide, onAppShow, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab } from "./runtime/polyfill/routeRuntime.mjs";
28
- import { chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, compressImage, compressVideo, getClipboardData, getImageInfo, getVideoInfo, hideLoading, hideTabBar, hideTabBarRedDot, makePhoneCall, openCustomerServiceChat, openDocument, openLocation, openVideoEditor, previewImage, previewMedia, removeTabBarBadge, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, updateShareMenu } from "./runtime/polyfill/uiMediaApi.mjs";
30
+ import { chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, compressImage, compressVideo, getClipboardData, getImageInfo, getVideoInfo, hideHomeButton, hideLoading, hideShareMenu, hideTabBar, hideTabBarRedDot, hideToast, makePhoneCall, openCustomerServiceChat, openDocument, openLocation, openVideoEditor, previewImage, previewMedia, removeTabBarBadge, requestPayment, requestSubscribeMessage, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setClipboardData, setTabBarBadge, setTabBarItem, setTabBarStyle, showActionSheet, showLoading, showModal, showShareMenu, showTabBar, showTabBarRedDot, showToast, updateShareMenu } from "./runtime/polyfill/uiMediaApi.mjs";
29
31
  import { canIUse, createInterstitialAd, createRewardedVideoAd, getExtConfig, getExtConfigSync, getLogManager, getUpdateManager, hideNavigationBarLoading, reportAnalytics, setBackgroundColor, setBackgroundTextStyle, setNavigationBarColor, setNavigationBarTitle, showNavigationBarLoading } from "./runtime/polyfill/index.mjs";
32
+ import { bindRuntimeDataset } from "./runtime/datasetBinding.mjs";
30
33
  import { bindRuntimeEvent } from "./runtime/eventBinding.mjs";
31
34
  import { setPageLayout } from "./runtime/pageLayout.mjs";
32
35
  import { createTemplate, renderTemplate } from "./runtime/legacyTemplate/index.mjs";
@@ -34,4 +37,4 @@ import { installWebModuleRegistration, registerWebWevuApp, registerWebWevuCompon
34
37
 
35
38
  export * from "wevu/internal-runtime"
36
39
 
37
- export { authorize, bindRuntimeEvent, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, configureWebSeo, createCanvasContext, createInputEventDetail, createInterstitialAd, createRenderContext, createRewardedVideoAd, createScrollEventDetail, createSelectorQuery, createSwitchEventDetail, createTemplate, createTextareaLineChangeDetail, createVKSession, createVideoContext, createVideoProgressDetail, createVideoTimeUpdateDetail, createWorker, defineComponent, disposeWebRouting, downloadFile, ensureButtonDefined, ensureNativeComponentsDefined, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getRuntimeClipboard, getRuntimeDialogs, getRuntimeExecutionMode, getRuntimeFetch, getRuntimeStorage, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWebRoutingConfig, getWebRuntimeHost, getWebViewportWidth, getWindowInfo, hideKeyboard, hideLoading, hideNavigationBarLoading, hideTabBar, hideTabBarRedDot, initializePageRoutes, injectStyle, installWebHostGlobals, installWebModuleRegistration, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppRoute, offAppRouteDone, offAppShow, offBeforeAppRoute, offBeforePageUnload, offNetworkStatusChange, offWindowResize, onAppHide, onAppRoute, onAppRouteDone, onAppShow, onBeforeAppRoute, onBeforePageUnload, onNetworkStatusChange, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openRuntimeUrl, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory, removeStorage, removeStorageSync, removeStyle, removeTabBarBadge, renderTemplate, reportAnalytics, request, requestPayment, requestSubscribeMessage, resetWebDocumentHead, resetWebRuntimeHost, resolveImageModeStyle, resolveVideoObjectFit, resolveWebRoutingConfig, resolveWebViewportConfig, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setButtonFormConfig, setClipboardData, setNavigationBarColor, setNavigationBarMetrics, setNavigationBarTitle, setPageLayout, setRuntimeExecutionMode, setRuntimeWarningOptions, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setWebRuntimeHost, setupRpx, setupWebResourceHints, setupWebViewport, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, syncWebDocumentHead, transformWxssToCss, updateShareMenu, updateWebDocumentTitle, uploadFile, vibrateShort, weappWebPlugin };
40
+ export { authorize, bindRuntimeDataset, bindRuntimeEvent, canIUse, checkSession, chooseAddress, chooseFile, chooseImage, chooseLocation, chooseMedia, chooseMessageFile, chooseVideo, clearStorage, clearStorageSync, compressImage, compressVideo, configureWebSeo, createCanvasContext, createInputEventDetail, createInterstitialAd, createRenderContext, createRewardedVideoAd, createScrollEventDetail, createSelectorQuery, createSwitchEventDetail, createTemplate, createTextareaLineChangeDetail, createVKSession, createVideoContext, createVideoProgressDetail, createVideoTimeUpdateDetail, createWorker, defineComponent, disposeWebRouting, downloadFile, ensureButtonDefined, ensureNativeComponentsDefined, exitMiniProgram, getAccountInfoSync, getAppAuthorizeSetting, getAppBaseInfo, getBatteryInfo, getBatteryInfoSync, getClipboardData, getDeviceInfo, getEnterOptionsSync, getExtConfig, getExtConfigSync, getFileSystemManager, getFuzzyLocation, getImageInfo, getLaunchOptionsSync, getLocation, getLogManager, getMenuButtonBoundingClientRect, getNetworkType, getRuntimeClipboard, getRuntimeDialogs, getRuntimeExecutionMode, getRuntimeFetch, getRuntimeStorage, getSetting, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getSystemSetting, getUpdateManager, getUserInfo, getUserProfile, getVideoInfo, getWebRoutingConfig, getWebRuntimeHost, getWebViewportWidth, getWindowInfo, hideHomeButton, hideKeyboard, hideLoading, hideNavigationBarLoading, hideShareMenu, hideTabBar, hideTabBarRedDot, hideToast, initializePageRoutes, injectStyle, installWebHostGlobals, installWebModuleRegistration, loadSubPackage, login, makePhoneCall, navigateBack, navigateTo, navigateToMiniProgram, nextTick, offAppHide, offAppRoute, offAppRouteDone, offAppShow, offBeforeAppRoute, offBeforePageUnload, offError, offNetworkStatusChange, offThemeChange, offUnhandledRejection, offWindowResize, onAppHide, onAppRoute, onAppRouteDone, onAppShow, onBeforeAppRoute, onBeforePageUnload, onError, onNetworkStatusChange, onThemeChange, onUnhandledRejection, onWindowResize, openAppAuthorizeSetting, openCustomerServiceChat, openDocument, openLocation, openRuntimeUrl, openSetting, openVideoEditor, pageScrollTo, preloadSubpackage, previewImage, previewMedia, reLaunch, redirectTo, registerApp, registerComponent, registerPage, registerWebWevuApp, registerWebWevuComponent, registerWebWevuComponentFactory, removeStorage, removeStorageSync, removeStyle, removeTabBarBadge, renderTemplate, reportAnalytics, reportEvent, request, requestPayment, requestSubscribeMessage, resetWebDocumentHead, resetWebRuntimeHost, resolveImageModeStyle, resolveVideoObjectFit, resolveWebRoutingConfig, resolveWebViewportConfig, saveFile, saveFileToDisk, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, setBackgroundColor, setBackgroundTextStyle, setButtonFormConfig, setClipboardData, setNavigationBarColor, setNavigationBarMetrics, setNavigationBarTitle, setPageLayout, setRuntimeExecutionMode, setRuntimeWarningOptions, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setWebRuntimeHost, setupRpx, setupWebResourceHints, setupWebViewport, showActionSheet, showLoading, showModal, showNavigationBarLoading, showShareMenu, showTabBar, showTabBarRedDot, showToast, startPullDownRefresh, stopPullDownRefresh, switchTab, syncWebDocumentHead, transformInlineStyleValue, transformWxssToCss, updateShareMenu, updateWebDocumentTitle, uploadFile, vibrateShort, weappWebPlugin };
@@ -1,7 +1,5 @@
1
1
  import { IncomingMessage, ServerResponse } from "node:http";
2
- //#region src/plugin/assets.d.ts
3
2
  type WebAssetNext = (error?: unknown) => void;
4
3
  export declare function createWebAssetMiddleware(srcRoot: string): (request: IncomingMessage, response: ServerResponse, next: WebAssetNext) => void;
5
- //#endregion
6
4
  export {};
7
5
  //# sourceMappingURL=assets.d.mts.map
@@ -3,7 +3,7 @@ import { readFile, readdir, stat } from "node:fs/promises";
3
3
  import { extname, relative, resolve } from "pathe";
4
4
  import { createReadStream } from "node:fs";
5
5
 
6
- //#region src/plugin/assets.ts
6
+ // src/plugin/assets.ts
7
7
  const WEB_ASSET_EXTENSIONS = /* @__PURE__ */ new Set([
8
8
  ".aac",
9
9
  ".avif",
@@ -117,6 +117,5 @@ function createWebAssetMiddleware(srcRoot) {
117
117
  };
118
118
  }
119
119
 
120
- //#endregion
121
120
  export { createWebAssetMiddleware, emitWebAssets, resolveWebAssetRequest };
122
121
  //# sourceMappingURL=assets.mjs.map
@@ -1,6 +1,6 @@
1
1
  import { WEAPP_VITE_WEB_AUTO_ROUTES_RESOLVED_MODULE_ID, WEAPP_VITE_WEB_ENTRY_RESOLVED_MODULE_ID } from "@weapp-core/constants";
2
2
 
3
- //#region src/plugin/constants.ts
3
+ // src/plugin/constants.ts
4
4
  const SCRIPT_EXTS = [
5
5
  ".vue",
6
6
  ".ts",
@@ -50,6 +50,5 @@ const SFC_STYLE_QUERY = "weapp-web-sfc-style";
50
50
  const WEB_COMPONENT_PREFIX = "/@weapp-vite/web/component/";
51
51
  const WEB_COMPONENT_QUERY = "weapp-web-component";
52
52
 
53
- //#endregion
54
53
  export { AUTO_ROUTES_ID, ENTRY_ID, RESOLVED_AUTO_ROUTES_ID, RUNTIME_ID, SCRIPT_EXTS, SFC_STYLE_QUERY, SFC_TEMPLATE_QUERY, STYLE_EXTS, STYLE_QUERY, TEMPLATE_EXTS, TEMPLATE_QUERY, TRANSFORM_STYLE_EXTS, WEB_COMPONENT_PREFIX, WEB_COMPONENT_QUERY, WXS_EXTS, WXS_RESOLVE_EXTS };
55
54
  //# sourceMappingURL=constants.mjs.map
@@ -1,7 +1,7 @@
1
1
  import { extname } from "pathe";
2
2
  import { build } from "esbuild";
3
3
 
4
- //#region src/plugin/dependencyScan.ts
4
+ // src/plugin/dependencyScan.ts
5
5
  const SCRIPT_EXTENSIONS = /* @__PURE__ */ new Set([
6
6
  ".cjs",
7
7
  ".js",
@@ -36,6 +36,5 @@ async function collectExternalComponentOptimizeDeps(components) {
36
36
  return Array.from(dependencies).sort();
37
37
  }
38
38
 
39
- //#endregion
40
39
  export { collectExternalComponentOptimizeDeps };
41
40
  //# sourceMappingURL=dependencyScan.mjs.map
@@ -1,7 +1,8 @@
1
+ import { resolveStyleUnitOptions } from "../shared/styleUnits/options.mjs";
1
2
  import { WEB_COMPONENT_PREFIX } from "./constants.mjs";
2
3
  import { relativeModuleId, resolveRuntimePolyfillPath, toViteFsImport } from "./path.mjs";
3
4
 
4
- //#region src/plugin/entry.ts
5
+ // src/plugin/entry.ts
5
6
  function generateAutoRoutesModule(result) {
6
7
  const pages = result.pages.map((page) => page.id);
7
8
  const subPackageMap = /* @__PURE__ */ new Map();
@@ -52,11 +53,13 @@ function generateEntryModule(result, root, wxssOptions, pluginOptions) {
52
53
  }
53
54
  for (const layout of result.layouts) importLines.push(`import '${relativeModuleId(root, layout.script)}'`);
54
55
  const pageOrder = result.pages.map((page) => page.id);
55
- const rpxConfig = wxssOptions?.pxPerRpx === void 0 || typeof wxssOptions.designWidth === "number" && Number.isFinite(wxssOptions.designWidth) ? {
56
- designWidth: wxssOptions?.designWidth ?? 750,
56
+ const unitOptions = resolveStyleUnitOptions(wxssOptions);
57
+ const rpxConfig = unitOptions.useVariable ? {
58
+ designWidth: unitOptions.designWidth,
57
59
  varName: wxssOptions?.rpxVar
58
60
  } : void 0;
59
61
  const initOptions = {};
62
+ initOptions.styleUnits = unitOptions;
60
63
  if (result.tabBar) initOptions.tabBar = result.tabBar;
61
64
  if (rpxConfig) initOptions.rpx = rpxConfig;
62
65
  if (pluginOptions?.form?.preventDefault !== void 0) initOptions.form = { preventDefault: pluginOptions.form.preventDefault };
@@ -73,6 +76,5 @@ function generateEntryModule(result, root, wxssOptions, pluginOptions) {
73
76
  return [...importLines, ...bodyLines].join("\n");
74
77
  }
75
78
 
76
- //#endregion
77
79
  export { generateAutoRoutesModule, generateEntryModule };
78
80
  //# sourceMappingURL=entry.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"entry.mjs","names":[],"sources":["../../src/plugin/entry.ts"],"sourcesContent":["import type { WxssTransformOptions } from '../css/wxss'\n\nimport type { ScanResult, WeappWebPluginOptions } from './types'\nimport { WEB_COMPONENT_PREFIX } from './constants'\nimport { relativeModuleId, resolveRuntimePolyfillPath, toViteFsImport } from './path'\n\nexport function generateAutoRoutesModule(result: ScanResult) {\n const pages = result.pages.map(page => page.id)\n const subPackageMap = new Map<string, string[]>()\n for (const id of pages) {\n const pagesSegment = id.indexOf('/pages/')\n if (pagesSegment <= 0) {\n continue\n }\n const root = id.slice(0, pagesSegment)\n const route = id.slice(pagesSegment + 1)\n const routes = subPackageMap.get(root) ?? []\n routes.push(route)\n subPackageMap.set(root, routes)\n }\n const mainPages = pages.filter(id => !id.includes('/pages/'))\n const subPackages = [...subPackageMap].map(([root, routes]) => ({ root, pages: routes }))\n const snapshot = JSON.stringify({ pages: mainPages, entries: pages, subPackages })\n return [\n `const routes = ${snapshot}`,\n `const call = (name, options) => globalThis.wx?.[name]?.(options)`,\n `export const pages = routes.pages`,\n `export const entries = routes.entries`,\n `export const subPackages = routes.subPackages`,\n `export const miniProgramRouter = {`,\n ` switchTab: options => call('switchTab', options),`,\n ` reLaunch: options => call('reLaunch', options),`,\n ` redirectTo: options => call('redirectTo', options),`,\n ` navigateTo: options => call('navigateTo', options),`,\n ` navigateBack: options => call('navigateBack', options),`,\n `}`,\n `export const wxRouter = miniProgramRouter`,\n `export { routes }`,\n `export default routes`,\n ].join('\\n')\n}\n\nexport function generateEntryModule(\n result: ScanResult,\n root: string,\n wxssOptions?: WxssTransformOptions,\n pluginOptions?: WeappWebPluginOptions,\n) {\n const runtimePolyfillId = pluginOptions?.__runtimeProvider?.moduleId\n ?? toViteFsImport(resolveRuntimePolyfillPath())\n const importLines: string[] = [`import { initializePageRoutes } from '${runtimePolyfillId}'`]\n const bodyLines: string[] = []\n\n if (result.app) {\n importLines.push(`import '${relativeModuleId(root, result.app)}'`)\n }\n for (const page of result.pages) {\n importLines.push(`import '${relativeModuleId(root, page.script)}'`)\n }\n for (const component of result.components) {\n const componentImportId = component.importId\n ? `${WEB_COMPONENT_PREFIX}${encodeURIComponent(component.importId)}`\n : relativeModuleId(root, component.script)\n importLines.push(`import '${componentImportId}'`)\n }\n for (const layout of result.layouts) {\n importLines.push(`import '${relativeModuleId(root, layout.script)}'`)\n }\n\n const pageOrder = result.pages.map(page => page.id)\n const useRuntimeRpx = wxssOptions?.pxPerRpx === undefined\n || (typeof wxssOptions.designWidth === 'number' && Number.isFinite(wxssOptions.designWidth))\n const rpxConfig = useRuntimeRpx\n ? { designWidth: wxssOptions?.designWidth ?? 750, varName: wxssOptions?.rpxVar }\n : undefined\n\n const initOptions: Record<string, any> = {}\n if (result.tabBar) {\n initOptions.tabBar = result.tabBar\n }\n if (rpxConfig) {\n initOptions.rpx = rpxConfig\n }\n if (pluginOptions?.form?.preventDefault !== undefined) {\n initOptions.form = { preventDefault: pluginOptions.form.preventDefault }\n }\n\n const runtimeOptions: Record<string, any> = {}\n if (pluginOptions?.runtime?.executionMode) {\n runtimeOptions.executionMode = pluginOptions.runtime.executionMode\n }\n if (pluginOptions?.runtime?.warnings) {\n runtimeOptions.warnings = pluginOptions.runtime.warnings\n }\n if (pluginOptions?.runtime?.viewport) {\n runtimeOptions.viewport = pluginOptions.runtime.viewport\n }\n if (pluginOptions?.runtime?.routing) {\n runtimeOptions.routing = pluginOptions.runtime.routing\n }\n if (pluginOptions?.runtime?.seo) {\n runtimeOptions.seo = pluginOptions.runtime.seo\n }\n if (pluginOptions?.runtime?.resourceHints) {\n runtimeOptions.resourceHints = pluginOptions.runtime.resourceHints\n }\n if (Object.keys(runtimeOptions).length > 0) {\n initOptions.runtime = runtimeOptions\n }\n\n const initOptionsCode = Object.keys(initOptions).length > 0 ? `, ${JSON.stringify(initOptions)}` : ''\n bodyLines.push(`initializePageRoutes(${JSON.stringify(pageOrder)}${initOptionsCode})`)\n return [...importLines, ...bodyLines].join('\\n')\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"entry.mjs","names":[],"sources":["../../src/plugin/entry.ts"],"sourcesContent":["import type { WxssTransformOptions } from '../css/wxss'\nimport type { ScanResult, WeappWebPluginOptions } from './types'\n\nimport { resolveStyleUnitOptions } from '../shared/styleUnits/options'\nimport { WEB_COMPONENT_PREFIX } from './constants'\nimport { relativeModuleId, resolveRuntimePolyfillPath, toViteFsImport } from './path'\n\nexport function generateAutoRoutesModule(result: ScanResult) {\n const pages = result.pages.map(page => page.id)\n const subPackageMap = new Map<string, string[]>()\n for (const id of pages) {\n const pagesSegment = id.indexOf('/pages/')\n if (pagesSegment <= 0) {\n continue\n }\n const root = id.slice(0, pagesSegment)\n const route = id.slice(pagesSegment + 1)\n const routes = subPackageMap.get(root) ?? []\n routes.push(route)\n subPackageMap.set(root, routes)\n }\n const mainPages = pages.filter(id => !id.includes('/pages/'))\n const subPackages = [...subPackageMap].map(([root, routes]) => ({ root, pages: routes }))\n const snapshot = JSON.stringify({ pages: mainPages, entries: pages, subPackages })\n return [\n `const routes = ${snapshot}`,\n `const call = (name, options) => globalThis.wx?.[name]?.(options)`,\n `export const pages = routes.pages`,\n `export const entries = routes.entries`,\n `export const subPackages = routes.subPackages`,\n `export const miniProgramRouter = {`,\n ` switchTab: options => call('switchTab', options),`,\n ` reLaunch: options => call('reLaunch', options),`,\n ` redirectTo: options => call('redirectTo', options),`,\n ` navigateTo: options => call('navigateTo', options),`,\n ` navigateBack: options => call('navigateBack', options),`,\n `}`,\n `export const wxRouter = miniProgramRouter`,\n `export { routes }`,\n `export default routes`,\n ].join('\\n')\n}\n\nexport function generateEntryModule(\n result: ScanResult,\n root: string,\n wxssOptions?: WxssTransformOptions,\n pluginOptions?: WeappWebPluginOptions,\n) {\n const runtimePolyfillId = pluginOptions?.__runtimeProvider?.moduleId\n ?? toViteFsImport(resolveRuntimePolyfillPath())\n const importLines: string[] = [`import { initializePageRoutes } from '${runtimePolyfillId}'`]\n const bodyLines: string[] = []\n\n if (result.app) {\n importLines.push(`import '${relativeModuleId(root, result.app)}'`)\n }\n for (const page of result.pages) {\n importLines.push(`import '${relativeModuleId(root, page.script)}'`)\n }\n for (const component of result.components) {\n const componentImportId = component.importId\n ? `${WEB_COMPONENT_PREFIX}${encodeURIComponent(component.importId)}`\n : relativeModuleId(root, component.script)\n importLines.push(`import '${componentImportId}'`)\n }\n for (const layout of result.layouts) {\n importLines.push(`import '${relativeModuleId(root, layout.script)}'`)\n }\n\n const pageOrder = result.pages.map(page => page.id)\n const unitOptions = resolveStyleUnitOptions(wxssOptions)\n const rpxConfig = unitOptions.useVariable\n ? { designWidth: unitOptions.designWidth, varName: wxssOptions?.rpxVar }\n : undefined\n\n const initOptions: Record<string, any> = {}\n initOptions.styleUnits = unitOptions\n if (result.tabBar) {\n initOptions.tabBar = result.tabBar\n }\n if (rpxConfig) {\n initOptions.rpx = rpxConfig\n }\n if (pluginOptions?.form?.preventDefault !== undefined) {\n initOptions.form = { preventDefault: pluginOptions.form.preventDefault }\n }\n\n const runtimeOptions: Record<string, any> = {}\n if (pluginOptions?.runtime?.executionMode) {\n runtimeOptions.executionMode = pluginOptions.runtime.executionMode\n }\n if (pluginOptions?.runtime?.warnings) {\n runtimeOptions.warnings = pluginOptions.runtime.warnings\n }\n if (pluginOptions?.runtime?.viewport) {\n runtimeOptions.viewport = pluginOptions.runtime.viewport\n }\n if (pluginOptions?.runtime?.routing) {\n runtimeOptions.routing = pluginOptions.runtime.routing\n }\n if (pluginOptions?.runtime?.seo) {\n runtimeOptions.seo = pluginOptions.runtime.seo\n }\n if (pluginOptions?.runtime?.resourceHints) {\n runtimeOptions.resourceHints = pluginOptions.runtime.resourceHints\n }\n if (Object.keys(runtimeOptions).length > 0) {\n initOptions.runtime = runtimeOptions\n }\n\n const initOptionsCode = Object.keys(initOptions).length > 0 ? `, ${JSON.stringify(initOptions)}` : ''\n bodyLines.push(`initializePageRoutes(${JSON.stringify(pageOrder)}${initOptionsCode})`)\n return [...importLines, ...bodyLines].join('\\n')\n}\n"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { extname } from "pathe";
3
3
  import { fs } from "@weapp-core/shared/fs";
4
4
  import { bundleRequire } from "rolldown-require";
5
5
 
6
- //#region src/plugin/files.ts
6
+ // src/plugin/files.ts
7
7
  function isRecord(value) {
8
8
  return typeof value === "object" && value !== null && !Array.isArray(value);
9
9
  }
@@ -53,6 +53,5 @@ async function resolveTemplateFile(scriptPath) {
53
53
  }
54
54
  }
55
55
 
56
- //#endregion
57
56
  export { isRecord, readJsonFile, resolveJsonPath, resolveScriptFile, resolveStyleFile, resolveTemplateFile };
58
57
  //# sourceMappingURL=files.mjs.map
@@ -3,7 +3,6 @@ import { ResolveWebModuleId, WebStylePreprocessOptions } from "./types.mjs";
3
3
  import { AcceptedPlugin, ProcessOptions } from "postcss";
4
4
  import { SourceMap } from "magic-string";
5
5
  import { ViteDevServer } from "vite";
6
- //#region src/plugin/hostTypes.d.ts
7
6
  export interface WebPluginContext {
8
7
  warn?: (message: string) => void;
9
8
  addWatchFile?: (id: string) => void;
@@ -70,6 +69,5 @@ export interface WeappWebVitePlugin {
70
69
  handleHotUpdate?: <Module extends object>(this: WebPluginContext, ctx: WebHmrContext<Module>) => Module[] | void | Promise<Module[] | void>;
71
70
  transform?: (this: WebPluginContext, code: string, id: string) => WebTransformResult | Promise<WebTransformResult>;
72
71
  }
73
- //#endregion
74
72
  export {};
75
73
  //# sourceMappingURL=hostTypes.d.mts.map
@@ -1,7 +1,5 @@
1
1
  import { WeappWebPluginOptions } from "./types.mjs";
2
2
  import { WeappWebVitePlugin } from "./hostTypes.mjs";
3
- //#region src/plugin/index.d.ts
4
3
  export declare function weappWebPlugin(options?: WeappWebPluginOptions): WeappWebVitePlugin;
5
- //#endregion
6
4
  export type { WeappWebPluginOptions };
7
5
  //# sourceMappingURL=index.d.mts.map
@@ -1,6 +1,6 @@
1
1
  import { createWxssPostcssPlugin, transformWxssToCss } from "../css/wxss.mjs";
2
2
  import { AUTO_ROUTES_ID, ENTRY_ID, RESOLVED_AUTO_ROUTES_ID, RUNTIME_ID, SCRIPT_EXTS, SFC_STYLE_QUERY, SFC_TEMPLATE_QUERY, STYLE_EXTS, STYLE_QUERY, TEMPLATE_EXTS, TEMPLATE_QUERY, TRANSFORM_STYLE_EXTS, WEB_COMPONENT_PREFIX, WEB_COMPONENT_QUERY, WXS_EXTS } from "./constants.mjs";
3
- import { compileWxml } from "../compiler/wxml/compile.mjs";
3
+ import { compileWxml, compileWxmlDependency } from "../compiler/wxml/compile.mjs";
4
4
  import { transformWxsToEsm } from "../compiler/wxs.mjs";
5
5
  import { cleanUrl, isHtmlEntry, isInsideDir, normalizePath, resolveFileWithExtensionsSync, resolveRuntimePolyfillPath, resolveTemplatePathSync, resolveWxsPathSync, toRelativeImport, toViteFsImport } from "./path.mjs";
6
6
  import { createWebAssetMiddleware, emitWebAssets } from "./assets.mjs";
@@ -19,7 +19,7 @@ import process from "node:process";
19
19
  import { dirname, extname, resolve } from "pathe";
20
20
  import { isUniAppCompatibilityFile, transformUniAppSource } from "wevu/compiler";
21
21
 
22
- //#region src/plugin/index.ts
22
+ // src/plugin/index.ts
23
23
  const WEB_RUNTIME_MODULE_IDS = [
24
24
  "lit",
25
25
  "lit/async-directive.js",
@@ -247,10 +247,11 @@ function weappWebPlugin(options = {}) {
247
247
  if (hasQuery(id, "weapp-web-template")) {
248
248
  const filename = cleanUrl(id);
249
249
  let source = await readFile(filename, "utf8");
250
- if (resolveMetaByTemplate(filename)?.kind === "page" && state.scanResult.layouts.length) source = wrapPageTemplate(source, state.scanResult.layouts);
250
+ const pageMeta = resolveMetaByTemplate(filename);
251
+ if (pageMeta?.kind === "page" && state.scanResult.layouts.length) source = wrapPageTemplate(source, state.scanResult.layouts);
251
252
  const navigationConfig = state.pageNavigationMap.get(normalizePath(filename));
252
253
  const componentTags = state.templateComponentMap.get(normalizePath(filename));
253
- const compiled = compileWxml({
254
+ const compiled = (pageMeta ? compileWxml : compileWxmlDependency)({
254
255
  id: filename,
255
256
  source,
256
257
  resolveTemplatePath,
@@ -452,6 +453,5 @@ function weappWebPlugin(options = {}) {
452
453
  };
453
454
  }
454
455
 
455
- //#endregion
456
456
  export { weappWebPlugin };
457
457
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/plugin/index.ts"],"sourcesContent":["import type { WeappWebVitePlugin, WebCssConfig, WebDevServer, WebHmrContext, WebPluginContext, WebResolvedConfig, WebUserConfig } from './hostTypes'\nimport type { ResolveWebAutoImportTag, ResolveWebModuleId, WeappWebPluginOptions, WebResolvedComponent, WebStylePreprocessOptions } from './types'\nimport { readFile } from 'node:fs/promises'\nimport process from 'node:process'\n\nimport { dirname, extname, resolve } from 'pathe'\nimport { isUniAppCompatibilityFile, transformUniAppSource } from 'wevu/compiler'\nimport { compileWxml } from '../compiler/wxml'\nimport { transformWxsToEsm } from '../compiler/wxs'\nimport { createWxssPostcssPlugin, transformWxssToCss } from '../css/wxss'\nimport { createWebAssetMiddleware, emitWebAssets } from './assets'\nimport { AUTO_ROUTES_ID, ENTRY_ID, RESOLVED_AUTO_ROUTES_ID, RUNTIME_ID, SCRIPT_EXTS, SFC_STYLE_QUERY, SFC_TEMPLATE_QUERY, STYLE_EXTS, STYLE_QUERY, TEMPLATE_EXTS, TEMPLATE_QUERY, TRANSFORM_STYLE_EXTS, WEB_COMPONENT_PREFIX, WEB_COMPONENT_QUERY, WXS_EXTS } from './constants'\nimport { collectExternalComponentOptimizeDeps } from './dependencyScan'\nimport { generateAutoRoutesModule, generateEntryModule } from './entry'\nimport { wrapPageTemplate } from './layout'\nimport { createMiniProgramPackageResolver, getAncestorNodeModulesPaths } from './packageResolution'\nimport { cleanUrl, isHtmlEntry, isInsideDir, normalizePath, resolveFileWithExtensionsSync, resolveRuntimePolyfillPath, resolveTemplatePathSync, resolveWxsPathSync, toRelativeImport, toViteFsImport } from './path'\nimport { transformScriptModule } from './register'\nimport { getStableWebComponentId, scanProject } from './scan'\nimport { collectSfcHmrModules } from './sfcHmr'\nimport { createEmptyScanState } from './state'\nimport { createInlineStyleModule } from './styleModule'\nimport { ensureWebVueSfcResult, generateWebVueSfcStyle, generateWebVueSfcTemplate, resolveWebVueSfcStyleLanguage, transformWebVueSfcScript } from './vueSfc'\n\nconst WEB_RUNTIME_MODULE_IDS = [\n 'lit',\n 'lit/async-directive.js',\n 'lit/directives/repeat.js',\n] as const\n\nconst SCAN_VIRTUAL_MODULE_IDS = [ENTRY_ID, RESOLVED_AUTO_ROUTES_ID] as const\n\nfunction isTemplateFile(id: string) {\n const lower = id.toLowerCase()\n return TEMPLATE_EXTS.some(ext => lower.endsWith(ext))\n}\n\nfunction isWxsFile(id: string) {\n const lower = id.toLowerCase()\n return WXS_EXTS.some(ext => lower.endsWith(ext))\n}\n\nfunction hasWxsQuery(id: string) {\n return id.includes('?wxs') || id.includes('&wxs')\n}\n\nfunction hasQuery(id: string, query: string) {\n return id.includes(`?${query}`) || id.includes(`&${query}`)\n}\n\nfunction isUniAppDependency(id: string, includes: readonly string[]) {\n return includes.some(packageName => id === packageName || id.startsWith(`${packageName}/`))\n}\n\nfunction resolveSfcStyleSourceFilename(id: string) {\n const filename = cleanUrl(id)\n const vueSuffixIndex = filename.lastIndexOf('.vue.')\n return vueSuffixIndex >= 0\n ? filename.slice(0, vueSuffixIndex + '.vue'.length)\n : filename\n}\n\nfunction createWebCssConfig(\n config: WebUserConfig,\n wxssOptions: WeappWebPluginOptions['wxss'],\n warn?: (message: string) => void,\n): WebCssConfig | undefined {\n const postcssConfig = config.css?.postcss\n if (typeof postcssConfig === 'string') {\n warn?.('[@weapp-vite/web] css.postcss 使用配置文件路径时无法注入 WXSS 转换插件。')\n return undefined\n }\n\n const plugins = postcssConfig?.plugins ?? []\n if (plugins.some(plugin => 'postcssPlugin' in plugin && plugin.postcssPlugin === 'weapp-vite-web-wxss')) {\n return undefined\n }\n\n return {\n postcss: {\n ...postcssConfig,\n plugins: [...plugins, createWxssPostcssPlugin(wxssOptions)],\n },\n preprocessorOptions: config.css?.preprocessorOptions,\n }\n}\n\nfunction resolveStylePreprocessOptions(\n options: WebStylePreprocessOptions | undefined,\n root: string,\n): WebStylePreprocessOptions | undefined {\n if (!options) {\n return undefined\n }\n\n const nodeModules = getAncestorNodeModulesPaths(root)\n return Object.fromEntries(Object.entries(options).map(([language, languageOptions]) => {\n if (!['sass', 'scss'].includes(language)) {\n return [language, languageOptions]\n }\n\n const loadPaths = Array.isArray(languageOptions.loadPaths)\n ? languageOptions.loadPaths.filter((value): value is string => typeof value === 'string')\n : []\n return [language, {\n ...languageOptions,\n loadPaths: Array.from(new Set([...loadPaths, ...nodeModules])),\n }]\n }))\n}\n\nexport function weappWebPlugin(options: WeappWebPluginOptions = {}): WeappWebVitePlugin {\n let root = process.cwd()\n let srcRoot = resolve(root, options.srcDir ?? 'src')\n let enableHmr = false\n let devServer: WebDevServer | undefined\n let resolveWebModuleId: ResolveWebModuleId | undefined\n let resolveMiniProgramModuleId: ResolveWebModuleId | undefined\n let resolveWebAutoImportTag: ResolveWebAutoImportTag | undefined\n const webRuntimeModules = new Map<string, string>()\n let stylePreprocessOptions: WebStylePreprocessOptions | undefined\n let componentImportIdMap = new Map<string, string>()\n\n let state = createEmptyScanState()\n let scanQueue: Promise<void> = Promise.resolve()\n const wxssOptions = options.wxss\n const runtimeProvider = options.__runtimeProvider\n const hmrAcceptCode = runtimeProvider\n ? runtimeProvider.hmrAcceptCode\n : 'if (import.meta.hot) { import.meta.hot.accept() }'\n\n const resolveTemplatePath = (raw: string, importer: string) => resolveTemplatePathSync(raw, importer, srcRoot)\n const resolveWxsPath = (raw: string, importer: string) => resolveWxsPathSync(raw, importer, srcRoot)\n const resolveMetaByTemplate = (filename: string) => {\n const normalized = normalizePath(filename)\n for (const meta of state.moduleMeta.values()) {\n if (meta.templatePath && normalizePath(meta.templatePath) === normalized) {\n return meta\n }\n }\n return undefined\n }\n\n const createAutoImportTagResolver = (): ResolveWebAutoImportTag | undefined => {\n const resolvers = options.__autoImportResolvers\n if (!resolvers?.length) {\n return undefined\n }\n return async (tag, importer) => {\n for (const resolver of resolvers) {\n let matched: WebResolvedComponent | void\n if (typeof resolver === 'function') {\n matched = resolver(tag, importer)\n }\n else if (typeof resolver.resolve === 'function') {\n matched = resolver.resolve(tag, importer)\n }\n else {\n const from = resolver.components?.[tag]\n matched = from ? { name: tag, from } : undefined\n }\n if (!matched) {\n continue\n }\n const request = matched.resolvedId ?? matched.from\n const resolvedId = await resolveWebModuleId?.(request, importer)\n return {\n ...matched,\n resolvedId: resolvedId ?? matched.resolvedId,\n sourceType: matched.sourceType ?? (resolvedId?.endsWith('.vue') ? 'wevu-sfc' : 'native'),\n }\n }\n return undefined\n }\n }\n\n const scan = (context: WebPluginContext) => {\n const graph = devServer?.moduleGraph\n // 先撤销旧拓扑响应,避免扫描期间的浏览器重验证通过缓存跳过 load。\n for (const id of SCAN_VIRTUAL_MODULE_IDS) {\n const module = graph?.getModuleById(id)\n if (module) {\n graph?.invalidateModule(module)\n }\n }\n const result = scanQueue.then(async () => {\n const previousState = state\n const nextState = createEmptyScanState()\n await scanProject({\n srcRoot,\n warn: context.warn?.bind(context),\n state: nextState,\n resolveId: resolveWebModuleId,\n resolveAutoImportTag: resolveWebAutoImportTag,\n resolveAppConfig: options.__resolveAppConfig,\n uniApp: options.__uniApp,\n stylePreprocessOptions,\n })\n const nextComponentImportIdMap = new Map<string, string>()\n for (const component of nextState.scanResult.components) {\n if (component.importId) {\n nextComponentImportIdMap.set(component.importId, component.script)\n }\n }\n const files = graph ? new Set<string>() : undefined\n if (files) {\n for (const snapshot of [state, nextState]) {\n for (const file of snapshot.moduleMeta.keys()) {\n files.add(file)\n }\n for (const file of snapshot.templatePathSet) {\n files.add(file)\n }\n for (const [file, result] of snapshot.sfcResults) {\n files.add(`${file}.${resolveWebVueSfcStyleLanguage(result, file)}`)\n }\n }\n }\n // 源模块始终读取最后一次完整快照,不暴露扫描过程中的空映射。\n state = nextState\n componentImportIdMap = nextComponentImportIdMap\n if (graph && files) {\n // 入口失效不会向下传播;脚本、模板和合成样式同样属于扫描快照。\n for (const file of files) {\n const modules = graph.getModulesByFile(file)\n if (modules) {\n for (const module of modules) {\n graph.invalidateModule(module)\n }\n }\n }\n }\n return [previousState, nextState] as const\n })\n // 调用方仍接收原始错误;队尾只负责允许下一次文件变更恢复扫描。\n scanQueue = result.then(() => {}, () => {})\n return result\n }\n\n const scanChangedFile = async (context: WebPluginContext, file: string) => {\n const clean = cleanUrl(file)\n const normalized = normalizePath(clean)\n if (!isInsideDir(clean, srcRoot) && !state.moduleMeta.has(normalized) && !state.templatePathSet.has(normalized)) {\n return\n }\n if (state.templatePathSet.has(normalized) || clean.endsWith('.json') || isTemplateFile(clean) || isWxsFile(clean) || clean.endsWith('.wxss') || SCRIPT_EXTS.includes(extname(clean))) {\n return scan(context)\n }\n }\n\n return {\n name: '@weapp-vite/web',\n enforce: 'pre',\n config(this: WebPluginContext, config: WebUserConfig) {\n const css = createWebCssConfig(config, wxssOptions, this.warn?.bind(this))\n return css ? { css } : undefined\n },\n async configResolved(this: WebPluginContext, config: WebResolvedConfig) {\n root = config.root\n const { createRequire } = await import('node:module')\n const requireFromWebRuntime = createRequire(import.meta.url)\n const requireFromProject = createRequire(resolve(root, 'package.json'))\n for (const id of WEB_RUNTIME_MODULE_IDS) {\n webRuntimeModules.set(id, requireFromWebRuntime.resolve(id))\n }\n webRuntimeModules.set(RUNTIME_ID, resolveRuntimePolyfillPath())\n resolveMiniProgramModuleId = createMiniProgramPackageResolver(requireFromProject.resolve)\n srcRoot = resolve(root, options.srcDir ?? 'src')\n stylePreprocessOptions = resolveStylePreprocessOptions(config.css?.preprocessorOptions, root)\n enableHmr = config.command === 'serve'\n const resolveViteModuleId = config.createResolver?.()\n resolveWebModuleId = resolveViteModuleId\n ? async (source, importer) => {\n const resolved = await resolveViteModuleId(source, importer)\n return await resolveMiniProgramModuleId?.(resolved ?? source, importer)\n ?? await resolveMiniProgramModuleId?.(source, importer)\n ?? resolved\n }\n : undefined\n resolveWebAutoImportTag = createAutoImportTagResolver()\n await scan(this)\n const componentDependencies = await collectExternalComponentOptimizeDeps(state.scanResult.components)\n const uniAppIncludes = options.__uniApp?.include ?? []\n config.optimizeDeps ??= {}\n config.optimizeDeps.exclude = Array.from(new Set([\n ...(config.optimizeDeps.exclude ?? []),\n ...uniAppIncludes,\n ]))\n config.optimizeDeps.include = Array.from(new Set([\n ...(config.optimizeDeps.include ?? []),\n ...componentDependencies,\n ])).filter(dependency => !isUniAppDependency(dependency, uniAppIncludes))\n },\n configureServer(server: WebDevServer) {\n devServer = server\n server.middlewares.use(createWebAssetMiddleware(srcRoot))\n },\n async buildStart(this: WebPluginContext) {\n if (!resolveWebModuleId && this.resolve) {\n resolveWebModuleId = async (source, importer) => {\n const resolved = await this.resolve?.(source, importer, { skipSelf: true })\n return await resolveMiniProgramModuleId?.(resolved?.id ?? source, importer)\n ?? await resolveMiniProgramModuleId?.(source, importer)\n ?? resolved?.id\n }\n }\n resolveWebAutoImportTag = createAutoImportTagResolver()\n await scan(this)\n if (!enableHmr) {\n await emitWebAssets(this, srcRoot)\n }\n },\n resolveId(id: string, importer?: string) {\n const runtimeModule = webRuntimeModules.get(id)\n if (runtimeModule) {\n return runtimeModule\n }\n if (id === '/@weapp-vite/web/entry' || id === '@weapp-vite/web/entry') {\n return ENTRY_ID\n }\n if (id === AUTO_ROUTES_ID) {\n return RESOLVED_AUTO_ROUTES_ID\n }\n if (id.startsWith(WEB_COMPONENT_PREFIX)) {\n const request = decodeURIComponent(id.slice(WEB_COMPONENT_PREFIX.length))\n const resolvedId = componentImportIdMap.get(request)\n return resolvedId ? `${cleanUrl(resolvedId)}?${WEB_COMPONENT_QUERY}` : null\n }\n if (id.startsWith('.') && importer && cleanUrl(importer).endsWith('.vue') && !extname(id)) {\n const resolvedScript = resolveFileWithExtensionsSync(resolve(dirname(cleanUrl(importer)), id), SCRIPT_EXTS)\n if (resolvedScript?.endsWith('.vue')) {\n return resolvedScript\n }\n }\n if (hasQuery(id, SFC_STYLE_QUERY)) {\n const queryIndex = id.indexOf('?')\n const pathname = queryIndex >= 0 ? id.slice(0, queryIndex) : id\n const query = queryIndex >= 0 ? id.slice(queryIndex) : ''\n if (pathname.startsWith('.') && importer) {\n return `${resolve(dirname(cleanUrl(importer)), pathname)}${query}`\n }\n return id\n }\n return resolveMiniProgramModuleId?.(id, importer).then(resolved => resolved ?? null) ?? null\n },\n async load(this: WebPluginContext, id: string) {\n if (id === ENTRY_ID) {\n await scanQueue\n return generateEntryModule(state.scanResult, root, wxssOptions, options)\n }\n if (id === RESOLVED_AUTO_ROUTES_ID) {\n await scanQueue\n return generateAutoRoutesModule(state.scanResult)\n }\n if (hasQuery(id, TEMPLATE_QUERY)) {\n const filename = cleanUrl(id)\n let source = await readFile(filename, 'utf8')\n const pageMeta = resolveMetaByTemplate(filename)\n if (pageMeta?.kind === 'page' && state.scanResult.layouts.length) {\n source = wrapPageTemplate(source, state.scanResult.layouts)\n }\n const navigationConfig = state.pageNavigationMap.get(normalizePath(filename))\n const componentTags = state.templateComponentMap.get(normalizePath(filename))\n const compiled = compileWxml({\n id: filename,\n source,\n resolveTemplatePath,\n resolveWxsPath,\n navigationBar: navigationConfig ? { config: navigationConfig } : undefined,\n componentTags,\n })\n for (const dependency of compiled.dependencies) {\n this.addWatchFile?.(dependency)\n }\n for (const warning of compiled.warnings ?? []) {\n this.warn?.(warning)\n }\n return compiled.code\n }\n if (hasWxsQuery(id)) {\n const filename = cleanUrl(id)\n const source = await readFile(filename, 'utf8')\n const compiled = transformWxsToEsm(source, filename, {\n resolvePath: resolveWxsPath,\n toImportPath: (resolved, importer) => normalizePath(toRelativeImport(importer, resolved)),\n })\n for (const dependency of compiled.dependencies) {\n this.addWatchFile?.(dependency)\n }\n for (const warning of compiled.warnings ?? []) {\n this.warn?.(warning)\n }\n return compiled.code\n }\n if (hasQuery(id, STYLE_QUERY)) {\n const source = await readFile(cleanUrl(id), 'utf8')\n const { css } = transformWxssToCss(source, wxssOptions)\n return createInlineStyleModule(css)\n }\n if (id.includes(`?${SFC_TEMPLATE_QUERY}`) || id.includes(`&${SFC_TEMPLATE_QUERY}`)) {\n const filename = cleanUrl(id)\n const meta = state.moduleMeta.get(normalizePath(filename))\n if (!meta) {\n return null\n }\n const result = await ensureWebVueSfcResult({\n filename,\n meta,\n srcRoot,\n state,\n resolveId: resolveWebModuleId,\n resolveAutoImportTag: resolveWebAutoImportTag,\n uniApp: options.__uniApp,\n stylePreprocessOptions,\n })\n const compiled = generateWebVueSfcTemplate(result, meta, filename, srcRoot)\n for (const dependency of compiled.dependencies) {\n this.addWatchFile?.(dependency)\n }\n for (const warning of compiled.warnings ?? []) {\n this.warn?.(warning)\n }\n return compiled.code\n }\n if (id.includes(`?${SFC_STYLE_QUERY}`) || id.includes(`&${SFC_STYLE_QUERY}`)) {\n const filename = resolveSfcStyleSourceFilename(id)\n const meta = state.moduleMeta.get(normalizePath(filename))\n if (!meta) {\n return null\n }\n const result = await ensureWebVueSfcResult({\n filename,\n meta,\n srcRoot,\n state,\n resolveId: resolveWebModuleId,\n resolveAutoImportTag: resolveWebAutoImportTag,\n uniApp: options.__uniApp,\n stylePreprocessOptions,\n })\n this.addWatchFile?.(filename)\n for (const dependency of result.meta?.sfcSrcDeps ?? []) {\n this.addWatchFile?.(dependency)\n }\n return generateWebVueSfcStyle(result)\n }\n return null\n },\n watchChange: {\n order: 'post',\n sequential: true,\n async handler(this: WebPluginContext, id, change) {\n // Vite 的 handleHotUpdate 不处理增删;必须在结构性 HMR 前发布完整入口。\n if (enableHmr && change.event !== 'update') {\n await scanChangedFile(this, id)\n }\n },\n },\n async handleHotUpdate<Module extends object>(this: WebPluginContext, ctx: WebHmrContext<Module>) {\n const graph = devServer?.moduleGraph\n // 扫描排队期间仍可能发布前一轮拓扑;节点归属必须来自本轮实际提交的前后快照。\n // 保留前快照中的已删除 owner、外部块和旧样式后缀,同时用后快照识别恢复的 SFC。\n const snapshots = await scanChangedFile(this, ctx.file)\n const affected = graph\n ? collectSfcHmrModules(snapshots ?? [state], cleanUrl(ctx.file), graph, ctx.modules)\n : ctx.modules\n return ctx.modules || affected?.length ? affected : undefined\n },\n async transform(this: WebPluginContext, code: string, id: string) {\n const clean = cleanUrl(id)\n let uniAppTransformed = false\n\n if (\n options.__uniApp\n && isUniAppCompatibilityFile(clean, srcRoot, options.__uniApp.include)\n && !clean.endsWith('.vue')\n ) {\n const transformed = transformUniAppSource(code, { filename: clean, target: 'h5' })\n if (transformed.changed) {\n code = transformed.code\n uniAppTransformed = true\n }\n }\n\n if (\n hasQuery(id, TEMPLATE_QUERY)\n || hasWxsQuery(id)\n || hasQuery(id, STYLE_QUERY)\n || hasQuery(id, SFC_TEMPLATE_QUERY)\n || hasQuery(id, SFC_STYLE_QUERY)\n ) {\n return null\n }\n\n if (clean.endsWith('.vue')) {\n const normalized = normalizePath(clean)\n const meta = state.moduleMeta.get(normalized) ?? {\n kind: 'component' as const,\n id: getStableWebComponentId(clean, srcRoot),\n scriptPath: clean,\n sourceType: 'vue-sfc' as const,\n }\n state.moduleMeta.set(normalized, meta)\n const result = await ensureWebVueSfcResult({\n filename: clean,\n meta,\n srcRoot,\n state,\n source: code,\n resolveId: resolveWebModuleId,\n resolveAutoImportTag: resolveWebAutoImportTag,\n uniApp: options.__uniApp,\n stylePreprocessOptions,\n })\n return transformWebVueSfcScript({\n code: result.script!,\n filename: clean,\n meta,\n runtimeModuleId: runtimeProvider?.moduleId ?? toViteFsImport(resolveRuntimePolyfillPath()),\n styleLanguage: resolveWebVueSfcStyleLanguage(result, clean),\n enableHmr,\n hmrAcceptCode,\n })\n }\n\n if (isTemplateFile(clean)) {\n if (isHtmlEntry(clean, root)) {\n return null\n }\n const normalizedId = normalizePath(clean)\n if (state.templatePathSet.size > 0) {\n if (!isInsideDir(clean, srcRoot)) {\n return null\n }\n if (!state.templatePathSet.has(normalizedId)) {\n return null\n }\n }\n let templateSource = code\n const pageMeta = resolveMetaByTemplate(clean)\n if (pageMeta?.kind === 'page' && state.scanResult.layouts.length) {\n templateSource = wrapPageTemplate(code, state.scanResult.layouts)\n }\n const navigationConfig = state.pageNavigationMap.get(normalizedId)\n const componentTags = state.templateComponentMap.get(normalizedId)\n const { code: compiled, dependencies, warnings } = compileWxml({\n id: clean,\n source: templateSource,\n resolveTemplatePath,\n resolveWxsPath,\n navigationBar: navigationConfig ? { config: navigationConfig } : undefined,\n componentTags,\n })\n const addWatchFile = this.addWatchFile\n if (dependencies.length > 0 && addWatchFile) {\n for (const dep of dependencies) {\n addWatchFile.call(this, dep)\n }\n }\n const warn = this.warn\n if (warnings?.length && warn) {\n for (const warning of warnings) {\n warn.call(this, warning)\n }\n }\n return { code: compiled, map: null }\n }\n\n if (isWxsFile(clean) || hasWxsQuery(id)) {\n const { code: compiled, dependencies, warnings } = transformWxsToEsm(code, clean, {\n resolvePath: resolveWxsPath,\n toImportPath: (resolved, importer) => normalizePath(toRelativeImport(importer, resolved)),\n })\n const addWatchFile = this.addWatchFile\n if (dependencies.length > 0 && addWatchFile) {\n for (const dep of dependencies) {\n addWatchFile.call(this, dep)\n }\n }\n const warn = this.warn\n if (warnings?.length && warn) {\n for (const warning of warnings) {\n warn.call(this, warning)\n }\n }\n return { code: compiled, map: null }\n }\n\n if (TRANSFORM_STYLE_EXTS.some(ext => clean.endsWith(ext))) {\n const { css } = transformWxssToCss(code, wxssOptions)\n return {\n code: createInlineStyleModule(css),\n map: null,\n }\n }\n\n if (STYLE_EXTS.some(ext => clean.endsWith(ext)) && !clean.endsWith('.wxss')) {\n const { css } = transformWxssToCss(code, wxssOptions)\n return { code: css, map: null }\n }\n\n if (!SCRIPT_EXTS.some(ext => clean.endsWith(ext))) {\n return uniAppTransformed ? { code, map: null } : null\n }\n if (clean.includes('node_modules') && !hasQuery(id, WEB_COMPONENT_QUERY)) {\n return options.__uniApp && isUniAppCompatibilityFile(clean, srcRoot, options.__uniApp.include)\n ? { code, map: null }\n : null\n }\n\n const meta = state.moduleMeta.get(normalizePath(clean))\n if (!meta) {\n return null\n }\n\n return transformScriptModule({\n code,\n cleanId: clean,\n meta,\n enableHmr,\n runtimeModuleId: runtimeProvider?.moduleId,\n hmrAcceptCode,\n })\n },\n }\n}\n\nexport type { WeappWebPluginOptions } from './types'\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/plugin/index.ts"],"sourcesContent":["import type { WeappWebVitePlugin, WebCssConfig, WebDevServer, WebHmrContext, WebPluginContext, WebResolvedConfig, WebUserConfig } from './hostTypes'\nimport type { ResolveWebAutoImportTag, ResolveWebModuleId, WeappWebPluginOptions, WebResolvedComponent, WebStylePreprocessOptions } from './types'\nimport { readFile } from 'node:fs/promises'\nimport process from 'node:process'\n\nimport { dirname, extname, resolve } from 'pathe'\nimport { isUniAppCompatibilityFile, transformUniAppSource } from 'wevu/compiler'\nimport { compileWxml } from '../compiler/wxml'\nimport { compileWxmlDependency } from '../compiler/wxml/compile'\nimport { transformWxsToEsm } from '../compiler/wxs'\nimport { createWxssPostcssPlugin, transformWxssToCss } from '../css/wxss'\nimport { createWebAssetMiddleware, emitWebAssets } from './assets'\nimport { AUTO_ROUTES_ID, ENTRY_ID, RESOLVED_AUTO_ROUTES_ID, RUNTIME_ID, SCRIPT_EXTS, SFC_STYLE_QUERY, SFC_TEMPLATE_QUERY, STYLE_EXTS, STYLE_QUERY, TEMPLATE_EXTS, TEMPLATE_QUERY, TRANSFORM_STYLE_EXTS, WEB_COMPONENT_PREFIX, WEB_COMPONENT_QUERY, WXS_EXTS } from './constants'\nimport { collectExternalComponentOptimizeDeps } from './dependencyScan'\nimport { generateAutoRoutesModule, generateEntryModule } from './entry'\nimport { wrapPageTemplate } from './layout'\nimport { createMiniProgramPackageResolver, getAncestorNodeModulesPaths } from './packageResolution'\nimport { cleanUrl, isHtmlEntry, isInsideDir, normalizePath, resolveFileWithExtensionsSync, resolveRuntimePolyfillPath, resolveTemplatePathSync, resolveWxsPathSync, toRelativeImport, toViteFsImport } from './path'\nimport { transformScriptModule } from './register'\nimport { getStableWebComponentId, scanProject } from './scan'\nimport { collectSfcHmrModules } from './sfcHmr'\nimport { createEmptyScanState } from './state'\nimport { createInlineStyleModule } from './styleModule'\nimport { ensureWebVueSfcResult, generateWebVueSfcStyle, generateWebVueSfcTemplate, resolveWebVueSfcStyleLanguage, transformWebVueSfcScript } from './vueSfc'\n\nconst WEB_RUNTIME_MODULE_IDS = [\n 'lit',\n 'lit/async-directive.js',\n 'lit/directives/repeat.js',\n] as const\n\nconst SCAN_VIRTUAL_MODULE_IDS = [ENTRY_ID, RESOLVED_AUTO_ROUTES_ID] as const\n\nfunction isTemplateFile(id: string) {\n const lower = id.toLowerCase()\n return TEMPLATE_EXTS.some(ext => lower.endsWith(ext))\n}\n\nfunction isWxsFile(id: string) {\n const lower = id.toLowerCase()\n return WXS_EXTS.some(ext => lower.endsWith(ext))\n}\n\nfunction hasWxsQuery(id: string) {\n return id.includes('?wxs') || id.includes('&wxs')\n}\n\nfunction hasQuery(id: string, query: string) {\n return id.includes(`?${query}`) || id.includes(`&${query}`)\n}\n\nfunction isUniAppDependency(id: string, includes: readonly string[]) {\n return includes.some(packageName => id === packageName || id.startsWith(`${packageName}/`))\n}\n\nfunction resolveSfcStyleSourceFilename(id: string) {\n const filename = cleanUrl(id)\n const vueSuffixIndex = filename.lastIndexOf('.vue.')\n return vueSuffixIndex >= 0\n ? filename.slice(0, vueSuffixIndex + '.vue'.length)\n : filename\n}\n\nfunction createWebCssConfig(\n config: WebUserConfig,\n wxssOptions: WeappWebPluginOptions['wxss'],\n warn?: (message: string) => void,\n): WebCssConfig | undefined {\n const postcssConfig = config.css?.postcss\n if (typeof postcssConfig === 'string') {\n warn?.('[@weapp-vite/web] css.postcss 使用配置文件路径时无法注入 WXSS 转换插件。')\n return undefined\n }\n\n const plugins = postcssConfig?.plugins ?? []\n if (plugins.some(plugin => 'postcssPlugin' in plugin && plugin.postcssPlugin === 'weapp-vite-web-wxss')) {\n return undefined\n }\n\n return {\n postcss: {\n ...postcssConfig,\n plugins: [...plugins, createWxssPostcssPlugin(wxssOptions)],\n },\n preprocessorOptions: config.css?.preprocessorOptions,\n }\n}\n\nfunction resolveStylePreprocessOptions(\n options: WebStylePreprocessOptions | undefined,\n root: string,\n): WebStylePreprocessOptions | undefined {\n if (!options) {\n return undefined\n }\n\n const nodeModules = getAncestorNodeModulesPaths(root)\n return Object.fromEntries(Object.entries(options).map(([language, languageOptions]) => {\n if (!['sass', 'scss'].includes(language)) {\n return [language, languageOptions]\n }\n\n const loadPaths = Array.isArray(languageOptions.loadPaths)\n ? languageOptions.loadPaths.filter((value): value is string => typeof value === 'string')\n : []\n return [language, {\n ...languageOptions,\n loadPaths: Array.from(new Set([...loadPaths, ...nodeModules])),\n }]\n }))\n}\n\nexport function weappWebPlugin(options: WeappWebPluginOptions = {}): WeappWebVitePlugin {\n let root = process.cwd()\n let srcRoot = resolve(root, options.srcDir ?? 'src')\n let enableHmr = false\n let devServer: WebDevServer | undefined\n let resolveWebModuleId: ResolveWebModuleId | undefined\n let resolveMiniProgramModuleId: ResolveWebModuleId | undefined\n let resolveWebAutoImportTag: ResolveWebAutoImportTag | undefined\n const webRuntimeModules = new Map<string, string>()\n let stylePreprocessOptions: WebStylePreprocessOptions | undefined\n let componentImportIdMap = new Map<string, string>()\n\n let state = createEmptyScanState()\n let scanQueue: Promise<void> = Promise.resolve()\n const wxssOptions = options.wxss\n const runtimeProvider = options.__runtimeProvider\n const hmrAcceptCode = runtimeProvider\n ? runtimeProvider.hmrAcceptCode\n : 'if (import.meta.hot) { import.meta.hot.accept() }'\n\n const resolveTemplatePath = (raw: string, importer: string) => resolveTemplatePathSync(raw, importer, srcRoot)\n const resolveWxsPath = (raw: string, importer: string) => resolveWxsPathSync(raw, importer, srcRoot)\n const resolveMetaByTemplate = (filename: string) => {\n const normalized = normalizePath(filename)\n for (const meta of state.moduleMeta.values()) {\n if (meta.templatePath && normalizePath(meta.templatePath) === normalized) {\n return meta\n }\n }\n return undefined\n }\n\n const createAutoImportTagResolver = (): ResolveWebAutoImportTag | undefined => {\n const resolvers = options.__autoImportResolvers\n if (!resolvers?.length) {\n return undefined\n }\n return async (tag, importer) => {\n for (const resolver of resolvers) {\n let matched: WebResolvedComponent | void\n if (typeof resolver === 'function') {\n matched = resolver(tag, importer)\n }\n else if (typeof resolver.resolve === 'function') {\n matched = resolver.resolve(tag, importer)\n }\n else {\n const from = resolver.components?.[tag]\n matched = from ? { name: tag, from } : undefined\n }\n if (!matched) {\n continue\n }\n const request = matched.resolvedId ?? matched.from\n const resolvedId = await resolveWebModuleId?.(request, importer)\n return {\n ...matched,\n resolvedId: resolvedId ?? matched.resolvedId,\n sourceType: matched.sourceType ?? (resolvedId?.endsWith('.vue') ? 'wevu-sfc' : 'native'),\n }\n }\n return undefined\n }\n }\n\n const scan = (context: WebPluginContext) => {\n const graph = devServer?.moduleGraph\n // 先撤销旧拓扑响应,避免扫描期间的浏览器重验证通过缓存跳过 load。\n for (const id of SCAN_VIRTUAL_MODULE_IDS) {\n const module = graph?.getModuleById(id)\n if (module) {\n graph?.invalidateModule(module)\n }\n }\n const result = scanQueue.then(async () => {\n const previousState = state\n const nextState = createEmptyScanState()\n await scanProject({\n srcRoot,\n warn: context.warn?.bind(context),\n state: nextState,\n resolveId: resolveWebModuleId,\n resolveAutoImportTag: resolveWebAutoImportTag,\n resolveAppConfig: options.__resolveAppConfig,\n uniApp: options.__uniApp,\n stylePreprocessOptions,\n })\n const nextComponentImportIdMap = new Map<string, string>()\n for (const component of nextState.scanResult.components) {\n if (component.importId) {\n nextComponentImportIdMap.set(component.importId, component.script)\n }\n }\n const files = graph ? new Set<string>() : undefined\n if (files) {\n for (const snapshot of [state, nextState]) {\n for (const file of snapshot.moduleMeta.keys()) {\n files.add(file)\n }\n for (const file of snapshot.templatePathSet) {\n files.add(file)\n }\n for (const [file, result] of snapshot.sfcResults) {\n files.add(`${file}.${resolveWebVueSfcStyleLanguage(result, file)}`)\n }\n }\n }\n // 源模块始终读取最后一次完整快照,不暴露扫描过程中的空映射。\n state = nextState\n componentImportIdMap = nextComponentImportIdMap\n if (graph && files) {\n // 入口失效不会向下传播;脚本、模板和合成样式同样属于扫描快照。\n for (const file of files) {\n const modules = graph.getModulesByFile(file)\n if (modules) {\n for (const module of modules) {\n graph.invalidateModule(module)\n }\n }\n }\n }\n return [previousState, nextState] as const\n })\n // 调用方仍接收原始错误;队尾只负责允许下一次文件变更恢复扫描。\n scanQueue = result.then(() => {}, () => {})\n return result\n }\n\n const scanChangedFile = async (context: WebPluginContext, file: string) => {\n const clean = cleanUrl(file)\n const normalized = normalizePath(clean)\n if (!isInsideDir(clean, srcRoot) && !state.moduleMeta.has(normalized) && !state.templatePathSet.has(normalized)) {\n return\n }\n if (state.templatePathSet.has(normalized) || clean.endsWith('.json') || isTemplateFile(clean) || isWxsFile(clean) || clean.endsWith('.wxss') || SCRIPT_EXTS.includes(extname(clean))) {\n return scan(context)\n }\n }\n\n return {\n name: '@weapp-vite/web',\n enforce: 'pre',\n config(this: WebPluginContext, config: WebUserConfig) {\n const css = createWebCssConfig(config, wxssOptions, this.warn?.bind(this))\n return css ? { css } : undefined\n },\n async configResolved(this: WebPluginContext, config: WebResolvedConfig) {\n root = config.root\n const { createRequire } = await import('node:module')\n const requireFromWebRuntime = createRequire(import.meta.url)\n const requireFromProject = createRequire(resolve(root, 'package.json'))\n for (const id of WEB_RUNTIME_MODULE_IDS) {\n webRuntimeModules.set(id, requireFromWebRuntime.resolve(id))\n }\n webRuntimeModules.set(RUNTIME_ID, resolveRuntimePolyfillPath())\n resolveMiniProgramModuleId = createMiniProgramPackageResolver(requireFromProject.resolve)\n srcRoot = resolve(root, options.srcDir ?? 'src')\n stylePreprocessOptions = resolveStylePreprocessOptions(config.css?.preprocessorOptions, root)\n enableHmr = config.command === 'serve'\n const resolveViteModuleId = config.createResolver?.()\n resolveWebModuleId = resolveViteModuleId\n ? async (source, importer) => {\n const resolved = await resolveViteModuleId(source, importer)\n return await resolveMiniProgramModuleId?.(resolved ?? source, importer)\n ?? await resolveMiniProgramModuleId?.(source, importer)\n ?? resolved\n }\n : undefined\n resolveWebAutoImportTag = createAutoImportTagResolver()\n await scan(this)\n const componentDependencies = await collectExternalComponentOptimizeDeps(state.scanResult.components)\n const uniAppIncludes = options.__uniApp?.include ?? []\n config.optimizeDeps ??= {}\n config.optimizeDeps.exclude = Array.from(new Set([\n ...(config.optimizeDeps.exclude ?? []),\n ...uniAppIncludes,\n ]))\n config.optimizeDeps.include = Array.from(new Set([\n ...(config.optimizeDeps.include ?? []),\n ...componentDependencies,\n ])).filter(dependency => !isUniAppDependency(dependency, uniAppIncludes))\n },\n configureServer(server: WebDevServer) {\n devServer = server\n server.middlewares.use(createWebAssetMiddleware(srcRoot))\n },\n async buildStart(this: WebPluginContext) {\n if (!resolveWebModuleId && this.resolve) {\n resolveWebModuleId = async (source, importer) => {\n const resolved = await this.resolve?.(source, importer, { skipSelf: true })\n return await resolveMiniProgramModuleId?.(resolved?.id ?? source, importer)\n ?? await resolveMiniProgramModuleId?.(source, importer)\n ?? resolved?.id\n }\n }\n resolveWebAutoImportTag = createAutoImportTagResolver()\n await scan(this)\n if (!enableHmr) {\n await emitWebAssets(this, srcRoot)\n }\n },\n resolveId(id: string, importer?: string) {\n const runtimeModule = webRuntimeModules.get(id)\n if (runtimeModule) {\n return runtimeModule\n }\n if (id === '/@weapp-vite/web/entry' || id === '@weapp-vite/web/entry') {\n return ENTRY_ID\n }\n if (id === AUTO_ROUTES_ID) {\n return RESOLVED_AUTO_ROUTES_ID\n }\n if (id.startsWith(WEB_COMPONENT_PREFIX)) {\n const request = decodeURIComponent(id.slice(WEB_COMPONENT_PREFIX.length))\n const resolvedId = componentImportIdMap.get(request)\n return resolvedId ? `${cleanUrl(resolvedId)}?${WEB_COMPONENT_QUERY}` : null\n }\n if (id.startsWith('.') && importer && cleanUrl(importer).endsWith('.vue') && !extname(id)) {\n const resolvedScript = resolveFileWithExtensionsSync(resolve(dirname(cleanUrl(importer)), id), SCRIPT_EXTS)\n if (resolvedScript?.endsWith('.vue')) {\n return resolvedScript\n }\n }\n if (hasQuery(id, SFC_STYLE_QUERY)) {\n const queryIndex = id.indexOf('?')\n const pathname = queryIndex >= 0 ? id.slice(0, queryIndex) : id\n const query = queryIndex >= 0 ? id.slice(queryIndex) : ''\n if (pathname.startsWith('.') && importer) {\n return `${resolve(dirname(cleanUrl(importer)), pathname)}${query}`\n }\n return id\n }\n return resolveMiniProgramModuleId?.(id, importer).then(resolved => resolved ?? null) ?? null\n },\n async load(this: WebPluginContext, id: string) {\n if (id === ENTRY_ID) {\n await scanQueue\n return generateEntryModule(state.scanResult, root, wxssOptions, options)\n }\n if (id === RESOLVED_AUTO_ROUTES_ID) {\n await scanQueue\n return generateAutoRoutesModule(state.scanResult)\n }\n if (hasQuery(id, TEMPLATE_QUERY)) {\n const filename = cleanUrl(id)\n let source = await readFile(filename, 'utf8')\n const pageMeta = resolveMetaByTemplate(filename)\n if (pageMeta?.kind === 'page' && state.scanResult.layouts.length) {\n source = wrapPageTemplate(source, state.scanResult.layouts)\n }\n const navigationConfig = state.pageNavigationMap.get(normalizePath(filename))\n const componentTags = state.templateComponentMap.get(normalizePath(filename))\n const compileTemplate = pageMeta ? compileWxml : compileWxmlDependency\n const compiled = compileTemplate({\n id: filename,\n source,\n resolveTemplatePath,\n resolveWxsPath,\n navigationBar: navigationConfig ? { config: navigationConfig } : undefined,\n componentTags,\n })\n for (const dependency of compiled.dependencies) {\n this.addWatchFile?.(dependency)\n }\n for (const warning of compiled.warnings ?? []) {\n this.warn?.(warning)\n }\n return compiled.code\n }\n if (hasWxsQuery(id)) {\n const filename = cleanUrl(id)\n const source = await readFile(filename, 'utf8')\n const compiled = transformWxsToEsm(source, filename, {\n resolvePath: resolveWxsPath,\n toImportPath: (resolved, importer) => normalizePath(toRelativeImport(importer, resolved)),\n })\n for (const dependency of compiled.dependencies) {\n this.addWatchFile?.(dependency)\n }\n for (const warning of compiled.warnings ?? []) {\n this.warn?.(warning)\n }\n return compiled.code\n }\n if (hasQuery(id, STYLE_QUERY)) {\n const source = await readFile(cleanUrl(id), 'utf8')\n const { css } = transformWxssToCss(source, wxssOptions)\n return createInlineStyleModule(css)\n }\n if (id.includes(`?${SFC_TEMPLATE_QUERY}`) || id.includes(`&${SFC_TEMPLATE_QUERY}`)) {\n const filename = cleanUrl(id)\n const meta = state.moduleMeta.get(normalizePath(filename))\n if (!meta) {\n return null\n }\n const result = await ensureWebVueSfcResult({\n filename,\n meta,\n srcRoot,\n state,\n resolveId: resolveWebModuleId,\n resolveAutoImportTag: resolveWebAutoImportTag,\n uniApp: options.__uniApp,\n stylePreprocessOptions,\n })\n const compiled = generateWebVueSfcTemplate(result, meta, filename, srcRoot)\n for (const dependency of compiled.dependencies) {\n this.addWatchFile?.(dependency)\n }\n for (const warning of compiled.warnings ?? []) {\n this.warn?.(warning)\n }\n return compiled.code\n }\n if (id.includes(`?${SFC_STYLE_QUERY}`) || id.includes(`&${SFC_STYLE_QUERY}`)) {\n const filename = resolveSfcStyleSourceFilename(id)\n const meta = state.moduleMeta.get(normalizePath(filename))\n if (!meta) {\n return null\n }\n const result = await ensureWebVueSfcResult({\n filename,\n meta,\n srcRoot,\n state,\n resolveId: resolveWebModuleId,\n resolveAutoImportTag: resolveWebAutoImportTag,\n uniApp: options.__uniApp,\n stylePreprocessOptions,\n })\n this.addWatchFile?.(filename)\n for (const dependency of result.meta?.sfcSrcDeps ?? []) {\n this.addWatchFile?.(dependency)\n }\n return generateWebVueSfcStyle(result)\n }\n return null\n },\n watchChange: {\n order: 'post',\n sequential: true,\n async handler(this: WebPluginContext, id, change) {\n // Vite 的 handleHotUpdate 不处理增删;必须在结构性 HMR 前发布完整入口。\n if (enableHmr && change.event !== 'update') {\n await scanChangedFile(this, id)\n }\n },\n },\n async handleHotUpdate<Module extends object>(this: WebPluginContext, ctx: WebHmrContext<Module>) {\n const graph = devServer?.moduleGraph\n // 扫描排队期间仍可能发布前一轮拓扑;节点归属必须来自本轮实际提交的前后快照。\n // 保留前快照中的已删除 owner、外部块和旧样式后缀,同时用后快照识别恢复的 SFC。\n const snapshots = await scanChangedFile(this, ctx.file)\n const affected = graph\n ? collectSfcHmrModules(snapshots ?? [state], cleanUrl(ctx.file), graph, ctx.modules)\n : ctx.modules\n return ctx.modules || affected?.length ? affected : undefined\n },\n async transform(this: WebPluginContext, code: string, id: string) {\n const clean = cleanUrl(id)\n let uniAppTransformed = false\n\n if (\n options.__uniApp\n && isUniAppCompatibilityFile(clean, srcRoot, options.__uniApp.include)\n && !clean.endsWith('.vue')\n ) {\n const transformed = transformUniAppSource(code, { filename: clean, target: 'h5' })\n if (transformed.changed) {\n code = transformed.code\n uniAppTransformed = true\n }\n }\n\n if (\n hasQuery(id, TEMPLATE_QUERY)\n || hasWxsQuery(id)\n || hasQuery(id, STYLE_QUERY)\n || hasQuery(id, SFC_TEMPLATE_QUERY)\n || hasQuery(id, SFC_STYLE_QUERY)\n ) {\n return null\n }\n\n if (clean.endsWith('.vue')) {\n const normalized = normalizePath(clean)\n const meta = state.moduleMeta.get(normalized) ?? {\n kind: 'component' as const,\n id: getStableWebComponentId(clean, srcRoot),\n scriptPath: clean,\n sourceType: 'vue-sfc' as const,\n }\n state.moduleMeta.set(normalized, meta)\n const result = await ensureWebVueSfcResult({\n filename: clean,\n meta,\n srcRoot,\n state,\n source: code,\n resolveId: resolveWebModuleId,\n resolveAutoImportTag: resolveWebAutoImportTag,\n uniApp: options.__uniApp,\n stylePreprocessOptions,\n })\n return transformWebVueSfcScript({\n code: result.script!,\n filename: clean,\n meta,\n runtimeModuleId: runtimeProvider?.moduleId ?? toViteFsImport(resolveRuntimePolyfillPath()),\n styleLanguage: resolveWebVueSfcStyleLanguage(result, clean),\n enableHmr,\n hmrAcceptCode,\n })\n }\n\n if (isTemplateFile(clean)) {\n if (isHtmlEntry(clean, root)) {\n return null\n }\n const normalizedId = normalizePath(clean)\n if (state.templatePathSet.size > 0) {\n if (!isInsideDir(clean, srcRoot)) {\n return null\n }\n if (!state.templatePathSet.has(normalizedId)) {\n return null\n }\n }\n let templateSource = code\n const pageMeta = resolveMetaByTemplate(clean)\n if (pageMeta?.kind === 'page' && state.scanResult.layouts.length) {\n templateSource = wrapPageTemplate(code, state.scanResult.layouts)\n }\n const navigationConfig = state.pageNavigationMap.get(normalizedId)\n const componentTags = state.templateComponentMap.get(normalizedId)\n const { code: compiled, dependencies, warnings } = compileWxml({\n id: clean,\n source: templateSource,\n resolveTemplatePath,\n resolveWxsPath,\n navigationBar: navigationConfig ? { config: navigationConfig } : undefined,\n componentTags,\n })\n const addWatchFile = this.addWatchFile\n if (dependencies.length > 0 && addWatchFile) {\n for (const dep of dependencies) {\n addWatchFile.call(this, dep)\n }\n }\n const warn = this.warn\n if (warnings?.length && warn) {\n for (const warning of warnings) {\n warn.call(this, warning)\n }\n }\n return { code: compiled, map: null }\n }\n\n if (isWxsFile(clean) || hasWxsQuery(id)) {\n const { code: compiled, dependencies, warnings } = transformWxsToEsm(code, clean, {\n resolvePath: resolveWxsPath,\n toImportPath: (resolved, importer) => normalizePath(toRelativeImport(importer, resolved)),\n })\n const addWatchFile = this.addWatchFile\n if (dependencies.length > 0 && addWatchFile) {\n for (const dep of dependencies) {\n addWatchFile.call(this, dep)\n }\n }\n const warn = this.warn\n if (warnings?.length && warn) {\n for (const warning of warnings) {\n warn.call(this, warning)\n }\n }\n return { code: compiled, map: null }\n }\n\n if (TRANSFORM_STYLE_EXTS.some(ext => clean.endsWith(ext))) {\n const { css } = transformWxssToCss(code, wxssOptions)\n return {\n code: createInlineStyleModule(css),\n map: null,\n }\n }\n\n if (STYLE_EXTS.some(ext => clean.endsWith(ext)) && !clean.endsWith('.wxss')) {\n const { css } = transformWxssToCss(code, wxssOptions)\n return { code: css, map: null }\n }\n\n if (!SCRIPT_EXTS.some(ext => clean.endsWith(ext))) {\n return uniAppTransformed ? { code, map: null } : null\n }\n if (clean.includes('node_modules') && !hasQuery(id, WEB_COMPONENT_QUERY)) {\n return options.__uniApp && isUniAppCompatibilityFile(clean, srcRoot, options.__uniApp.include)\n ? { code, map: null }\n : null\n }\n\n const meta = state.moduleMeta.get(normalizePath(clean))\n if (!meta) {\n return null\n }\n\n return transformScriptModule({\n code,\n cleanId: clean,\n meta,\n enableHmr,\n runtimeModuleId: runtimeProvider?.moduleId,\n hmrAcceptCode,\n })\n },\n }\n}\n\nexport type { WeappWebPluginOptions } from './types'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAM,yBAAyB;CAC7B;CACA;CACA;AACF;AAEA,MAAM,0BAA0B,CAAC,UAAU,uBAAuB;AAElE,SAAS,eAAe,IAAY;CAClC,MAAM,QAAQ,GAAG,YAAY;CAC7B,OAAO,cAAc,MAAK,QAAO,MAAM,SAAS,GAAG,CAAC;AACtD;AAEA,SAAS,UAAU,IAAY;CAC7B,MAAM,QAAQ,GAAG,YAAY;CAC7B,OAAO,SAAS,MAAK,QAAO,MAAM,SAAS,GAAG,CAAC;AACjD;AAEA,SAAS,YAAY,IAAY;CAC/B,OAAO,GAAG,SAAS,MAAM,KAAK,GAAG,SAAS,MAAM;AAClD;AAEA,SAAS,SAAS,IAAY,OAAe;CAC3C,OAAO,GAAG,SAAS,IAAI,OAAO,KAAK,GAAG,SAAS,IAAI,OAAO;AAC5D;AAEA,SAAS,mBAAmB,IAAY,UAA6B;CACnE,OAAO,SAAS,MAAK,gBAAe,OAAO,eAAe,GAAG,WAAW,GAAG,YAAY,EAAE,CAAC;AAC5F;AAEA,SAAS,8BAA8B,IAAY;CACjD,MAAM,WAAW,SAAS,EAAE;CAC5B,MAAM,iBAAiB,SAAS,YAAY,OAAO;CACnD,OAAO,kBAAkB,IACrB,SAAS,MAAM,GAAG,iBAAiB,CAAa,IAChD;AACN;AAEA,SAAS,mBACP,QACA,aACA,MAC0B;CAC1B,MAAM,gBAAgB,OAAO,KAAK;CAClC,IAAI,OAAO,kBAAkB,UAAU;EACrC,OAAO,wDAAwD;EAC/D;CACF;CAEA,MAAM,UAAU,eAAe,WAAW,CAAC;CAC3C,IAAI,QAAQ,MAAK,WAAU,mBAAmB,UAAU,OAAO,kBAAkB,qBAAqB,GACpG;CAGF,OAAO;EACL,SAAS;GACP,GAAG;GACH,SAAS,CAAC,GAAG,SAAS,wBAAwB,WAAW,CAAC;EAC5D;EACA,qBAAqB,OAAO,KAAK;CACnC;AACF;AAEA,SAAS,8BACP,SACA,MACuC;CACvC,IAAI,CAAC,SACH;CAGF,MAAM,cAAc,4BAA4B,IAAI;CACpD,OAAO,OAAO,YAAY,OAAO,QAAQ,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,qBAAqB;EACrF,IAAI,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,SAAS,QAAQ,GACrC,OAAO,CAAC,UAAU,eAAe;EAGnC,MAAM,YAAY,MAAM,QAAQ,gBAAgB,SAAS,IACrD,gBAAgB,UAAU,QAAQ,UAA2B,OAAO,UAAU,QAAQ,IACtF,CAAC;EACL,OAAO,CAAC,UAAU;GAChB,GAAG;GACH,WAAW,MAAM,qBAAK,IAAI,IAAI,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;EAC/D,CAAC;CACH,CAAC,CAAC;AACJ;AAEA,SAAgB,eAAe,UAAiC,CAAC,GAAuB;CACtF,IAAI,OAAO,QAAQ,IAAI;CACvB,IAAI,UAAU,QAAQ,MAAM,QAAQ,UAAU,KAAK;CACnD,IAAI,YAAY;CAChB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM,oCAAoB,IAAI,IAAoB;CAClD,IAAI;CACJ,IAAI,uCAAuB,IAAI,IAAoB;CAEnD,IAAI,QAAQ,qBAAqB;CACjC,IAAI,YAA2B,QAAQ,QAAQ;CAC/C,MAAM,cAAc,QAAQ;CAC5B,MAAM,kBAAkB,QAAQ;CAChC,MAAM,gBAAgB,kBAClB,gBAAgB,gBAChB;CAEJ,MAAM,uBAAuB,KAAa,aAAqB,wBAAwB,KAAK,UAAU,OAAO;CAC7G,MAAM,kBAAkB,KAAa,aAAqB,mBAAmB,KAAK,UAAU,OAAO;CACnG,MAAM,yBAAyB,aAAqB;EAClD,MAAM,aAAa,cAAc,QAAQ;EACzC,KAAK,MAAM,QAAQ,MAAM,WAAW,OAAO,GACzC,IAAI,KAAK,gBAAgB,cAAc,KAAK,YAAY,MAAM,YAC5D,OAAO;CAIb;CAEA,MAAM,oCAAyE;EAC7E,MAAM,YAAY,QAAQ;EAC1B,IAAI,CAAC,WAAW,QACd;EAEF,OAAO,OAAO,KAAK,aAAa;GAC9B,KAAK,MAAM,YAAY,WAAW;IAChC,IAAI;IACJ,IAAI,OAAO,aAAa,YACtB,UAAU,SAAS,KAAK,QAAQ;SAE7B,IAAI,OAAO,SAAS,YAAY,YACnC,UAAU,SAAS,QAAQ,KAAK,QAAQ;SAErC;KACH,MAAM,OAAO,SAAS,aAAa;KACnC,UAAU,OAAO;MAAE,MAAM;MAAK;KAAK,IAAI;IACzC;IACA,IAAI,CAAC,SACH;IAEF,MAAM,UAAU,QAAQ,cAAc,QAAQ;IAC9C,MAAM,aAAa,MAAM,qBAAqB,SAAS,QAAQ;IAC/D,OAAO;KACL,GAAG;KACH,YAAY,cAAc,QAAQ;KAClC,YAAY,QAAQ,eAAe,YAAY,SAAS,MAAM,IAAI,aAAa;IACjF;GACF;EAEF;CACF;CAEA,MAAM,QAAQ,YAA8B;EAC1C,MAAM,QAAQ,WAAW;EAEzB,KAAK,MAAM,MAAM,yBAAyB;GACxC,MAAM,SAAS,OAAO,cAAc,EAAE;GACtC,IAAI,QACF,OAAO,iBAAiB,MAAM;EAElC;EACA,MAAM,SAAS,UAAU,KAAK,YAAY;GACxC,MAAM,gBAAgB;GACtB,MAAM,YAAY,qBAAqB;GACvC,MAAM,YAAY;IAChB;IACA,MAAM,QAAQ,MAAM,KAAK,OAAO;IAChC,OAAO;IACP,WAAW;IACX,sBAAsB;IACtB,kBAAkB,QAAQ;IAC1B,QAAQ,QAAQ;IAChB;GACF,CAAC;GACD,MAAM,2CAA2B,IAAI,IAAoB;GACzD,KAAK,MAAM,aAAa,UAAU,WAAW,YAC3C,IAAI,UAAU,UACZ,yBAAyB,IAAI,UAAU,UAAU,UAAU,MAAM;GAGrE,MAAM,QAAQ,wBAAQ,IAAI,IAAY,IAAI;GAC1C,IAAI,OACF,KAAK,MAAM,YAAY,CAAC,OAAO,SAAS,GAAG;IACzC,KAAK,MAAM,QAAQ,SAAS,WAAW,KAAK,GAC1C,MAAM,IAAI,IAAI;IAEhB,KAAK,MAAM,QAAQ,SAAS,iBAC1B,MAAM,IAAI,IAAI;IAEhB,KAAK,MAAM,CAAC,MAAM,WAAW,SAAS,YACpC,MAAM,IAAI,GAAG,KAAK,GAAG,8BAA8B,QAAQ,IAAI,GAAG;GAEtE;GAGF,QAAQ;GACR,uBAAuB;GACvB,IAAI,SAAS,OAEX,KAAK,MAAM,QAAQ,OAAO;IACxB,MAAM,UAAU,MAAM,iBAAiB,IAAI;IAC3C,IAAI,SACF,KAAK,MAAM,UAAU,SACnB,MAAM,iBAAiB,MAAM;GAGnC;GAEF,OAAO,CAAC,eAAe,SAAS;EAClC,CAAC;EAED,YAAY,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;EAC1C,OAAO;CACT;CAEA,MAAM,kBAAkB,OAAO,SAA2B,SAAiB;EACzE,MAAM,QAAQ,SAAS,IAAI;EAC3B,MAAM,aAAa,cAAc,KAAK;EACtC,IAAI,CAAC,YAAY,OAAO,OAAO,KAAK,CAAC,MAAM,WAAW,IAAI,UAAU,KAAK,CAAC,MAAM,gBAAgB,IAAI,UAAU,GAC5G;EAEF,IAAI,MAAM,gBAAgB,IAAI,UAAU,KAAK,MAAM,SAAS,OAAO,KAAK,eAAe,KAAK,KAAK,UAAU,KAAK,KAAK,MAAM,SAAS,OAAO,KAAK,YAAY,SAAS,QAAQ,KAAK,CAAC,GACjL,OAAO,KAAK,OAAO;CAEvB;CAEA,OAAO;EACL,MAAM;EACN,SAAS;EACT,OAA+B,QAAuB;GACpD,MAAM,MAAM,mBAAmB,QAAQ,aAAa,KAAK,MAAM,KAAK,IAAI,CAAC;GACzE,OAAO,MAAM,EAAE,IAAI,IAAI;EACzB;EACA,MAAM,eAAuC,QAA2B;GACtE,OAAO,OAAO;GACd,MAAM,EAAE,kBAAkB,MAAM,OAAO;GACvC,MAAM,wBAAwB,cAAc,YAAY,GAAG;GAC3D,MAAM,qBAAqB,cAAc,QAAQ,MAAM,cAAc,CAAC;GACtE,KAAK,MAAM,MAAM,wBACf,kBAAkB,IAAI,IAAI,sBAAsB,QAAQ,EAAE,CAAC;GAE7D,kBAAkB,IAAI,YAAY,2BAA2B,CAAC;GAC9D,6BAA6B,iCAAiC,mBAAmB,OAAO;GACxF,UAAU,QAAQ,MAAM,QAAQ,UAAU,KAAK;GAC/C,yBAAyB,8BAA8B,OAAO,KAAK,qBAAqB,IAAI;GAC5F,YAAY,OAAO,YAAY;GAC/B,MAAM,sBAAsB,OAAO,iBAAiB;GACpD,qBAAqB,sBACjB,OAAO,QAAQ,aAAa;IAC5B,MAAM,WAAW,MAAM,oBAAoB,QAAQ,QAAQ;IAC3D,OAAO,MAAM,6BAA6B,YAAY,QAAQ,QAAQ,KACjE,MAAM,6BAA6B,QAAQ,QAAQ,KACnD;GACP,IACE;GACJ,0BAA0B,4BAA4B;GACtD,MAAM,KAAK,IAAI;GACf,MAAM,wBAAwB,MAAM,qCAAqC,MAAM,WAAW,UAAU;GACpG,MAAM,iBAAiB,QAAQ,UAAU,WAAW,CAAC;GACrD,OAAO,iBAAiB,CAAC;GACzB,OAAO,aAAa,UAAU,MAAM,qBAAK,IAAI,IAAI,CAC/C,GAAI,OAAO,aAAa,WAAW,CAAC,GACpC,GAAG,cACL,CAAC,CAAC;GACF,OAAO,aAAa,UAAU,MAAM,qBAAK,IAAI,IAAI,CAC/C,GAAI,OAAO,aAAa,WAAW,CAAC,GACpC,GAAG,qBACL,CAAC,CAAC,CAAC,CAAC,QAAO,eAAc,CAAC,mBAAmB,YAAY,cAAc,CAAC;EAC1E;EACA,gBAAgB,QAAsB;GACpC,YAAY;GACZ,OAAO,YAAY,IAAI,yBAAyB,OAAO,CAAC;EAC1D;EACA,MAAM,aAAmC;GACvC,IAAI,CAAC,sBAAsB,KAAK,SAC9B,qBAAqB,OAAO,QAAQ,aAAa;IAC/C,MAAM,WAAW,MAAM,KAAK,UAAU,QAAQ,UAAU,EAAE,UAAU,KAAK,CAAC;IAC1E,OAAO,MAAM,6BAA6B,UAAU,MAAM,QAAQ,QAAQ,KACrE,MAAM,6BAA6B,QAAQ,QAAQ,KACnD,UAAU;GACjB;GAEF,0BAA0B,4BAA4B;GACtD,MAAM,KAAK,IAAI;GACf,IAAI,CAAC,WACH,MAAM,cAAc,MAAM,OAAO;EAErC;EACA,UAAU,IAAY,UAAmB;GACvC,MAAM,gBAAgB,kBAAkB,IAAI,EAAE;GAC9C,IAAI,eACF,OAAO;GAET,IAAI,OAAO,4BAA4B,OAAO,yBAC5C,OAAO;GAET,IAAI,iCACF,OAAO;GAET,IAAI,GAAG,wCAA+B,GAAG;IACvC,MAAM,UAAU,mBAAmB,GAAG,MAAM,qBAAqB,MAAM,CAAC;IACxE,MAAM,aAAa,qBAAqB,IAAI,OAAO;IACnD,OAAO,aAAa,GAAG,SAAS,UAAU,EAAE,GAAG,wBAAwB;GACzE;GACA,IAAI,GAAG,WAAW,GAAG,KAAK,YAAY,SAAS,QAAQ,CAAC,CAAC,SAAS,MAAM,KAAK,CAAC,QAAQ,EAAE,GAAG;IACzF,MAAM,iBAAiB,8BAA8B,QAAQ,QAAQ,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,WAAW;IAC1G,IAAI,gBAAgB,SAAS,MAAM,GACjC,OAAO;GAEX;GACA,IAAI,SAAS,yBAAmB,GAAG;IACjC,MAAM,aAAa,GAAG,QAAQ,GAAG;IACjC,MAAM,WAAW,cAAc,IAAI,GAAG,MAAM,GAAG,UAAU,IAAI;IAC7D,MAAM,QAAQ,cAAc,IAAI,GAAG,MAAM,UAAU,IAAI;IACvD,IAAI,SAAS,WAAW,GAAG,KAAK,UAC9B,OAAO,GAAG,QAAQ,QAAQ,SAAS,QAAQ,CAAC,GAAG,QAAQ,IAAI;IAE7D,OAAO;GACT;GACA,OAAO,6BAA6B,IAAI,QAAQ,CAAC,CAAC,MAAK,aAAY,YAAY,IAAI,KAAK;EAC1F;EACA,MAAM,KAA6B,IAAY;GAC7C,IAAI,OAAO,UAAU;IACnB,MAAM;IACN,OAAO,oBAAoB,MAAM,YAAY,MAAM,aAAa,OAAO;GACzE;GACA,IAAI,OAAO,yBAAyB;IAClC,MAAM;IACN,OAAO,yBAAyB,MAAM,UAAU;GAClD;GACA,IAAI,SAAS,wBAAkB,GAAG;IAChC,MAAM,WAAW,SAAS,EAAE;IAC5B,IAAI,SAAS,MAAM,SAAS,UAAU,MAAM;IAC5C,MAAM,WAAW,sBAAsB,QAAQ;IAC/C,IAAI,UAAU,SAAS,UAAU,MAAM,WAAW,QAAQ,QACxD,SAAS,iBAAiB,QAAQ,MAAM,WAAW,OAAO;IAE5D,MAAM,mBAAmB,MAAM,kBAAkB,IAAI,cAAc,QAAQ,CAAC;IAC5E,MAAM,gBAAgB,MAAM,qBAAqB,IAAI,cAAc,QAAQ,CAAC;IAE5E,MAAM,YADkB,WAAW,cAAc,sBACjB,CAAC;KAC/B,IAAI;KACJ;KACA;KACA;KACA,eAAe,mBAAmB,EAAE,QAAQ,iBAAiB,IAAI;KACjE;IACF,CAAC;IACD,KAAK,MAAM,cAAc,SAAS,cAChC,KAAK,eAAe,UAAU;IAEhC,KAAK,MAAM,WAAW,SAAS,YAAY,CAAC,GAC1C,KAAK,OAAO,OAAO;IAErB,OAAO,SAAS;GAClB;GACA,IAAI,YAAY,EAAE,GAAG;IACnB,MAAM,WAAW,SAAS,EAAE;IAC5B,MAAM,SAAS,MAAM,SAAS,UAAU,MAAM;IAC9C,MAAM,WAAW,kBAAkB,QAAQ,UAAU;KACnD,aAAa;KACb,eAAe,UAAU,aAAa,cAAc,iBAAiB,UAAU,QAAQ,CAAC;IAC1F,CAAC;IACD,KAAK,MAAM,cAAc,SAAS,cAChC,KAAK,eAAe,UAAU;IAEhC,KAAK,MAAM,WAAW,SAAS,YAAY,CAAC,GAC1C,KAAK,OAAO,OAAO;IAErB,OAAO,SAAS;GAClB;GACA,IAAI,SAAS,qBAAe,GAAG;IAC7B,MAAM,SAAS,MAAM,SAAS,SAAS,EAAE,GAAG,MAAM;IAClD,MAAM,EAAE,QAAQ,mBAAmB,QAAQ,WAAW;IACtD,OAAO,wBAAwB,GAAG;GACpC;GACA,IAAI,GAAG,SAAS,8BAAwB,KAAK,GAAG,SAAS,8BAAwB,GAAG;IAClF,MAAM,WAAW,SAAS,EAAE;IAC5B,MAAM,OAAO,MAAM,WAAW,IAAI,cAAc,QAAQ,CAAC;IACzD,IAAI,CAAC,MACH,OAAO;IAET,MAAM,SAAS,MAAM,sBAAsB;KACzC;KACA;KACA;KACA;KACA,WAAW;KACX,sBAAsB;KACtB,QAAQ,QAAQ;KAChB;IACF,CAAC;IACD,MAAM,WAAW,0BAA0B,QAAQ,MAAM,UAAU,OAAO;IAC1E,KAAK,MAAM,cAAc,SAAS,cAChC,KAAK,eAAe,UAAU;IAEhC,KAAK,MAAM,WAAW,SAAS,YAAY,CAAC,GAC1C,KAAK,OAAO,OAAO;IAErB,OAAO,SAAS;GAClB;GACA,IAAI,GAAG,SAAS,2BAAqB,KAAK,GAAG,SAAS,2BAAqB,GAAG;IAC5E,MAAM,WAAW,8BAA8B,EAAE;IACjD,MAAM,OAAO,MAAM,WAAW,IAAI,cAAc,QAAQ,CAAC;IACzD,IAAI,CAAC,MACH,OAAO;IAET,MAAM,SAAS,MAAM,sBAAsB;KACzC;KACA;KACA;KACA;KACA,WAAW;KACX,sBAAsB;KACtB,QAAQ,QAAQ;KAChB;IACF,CAAC;IACD,KAAK,eAAe,QAAQ;IAC5B,KAAK,MAAM,cAAc,OAAO,MAAM,cAAc,CAAC,GACnD,KAAK,eAAe,UAAU;IAEhC,OAAO,uBAAuB,MAAM;GACtC;GACA,OAAO;EACT;EACA,aAAa;GACX,OAAO;GACP,YAAY;GACZ,MAAM,QAAgC,IAAI,QAAQ;IAEhD,IAAI,aAAa,OAAO,UAAU,UAChC,MAAM,gBAAgB,MAAM,EAAE;GAElC;EACF;EACA,MAAM,gBAA+D,KAA4B;GAC/F,MAAM,QAAQ,WAAW;GAGzB,MAAM,YAAY,MAAM,gBAAgB,MAAM,IAAI,IAAI;GACtD,MAAM,WAAW,QACb,qBAAqB,aAAa,CAAC,KAAK,GAAG,SAAS,IAAI,IAAI,GAAG,OAAO,IAAI,OAAO,IACjF,IAAI;GACR,OAAO,IAAI,WAAW,UAAU,SAAS,WAAW;EACtD;EACA,MAAM,UAAkC,MAAc,IAAY;GAChE,MAAM,QAAQ,SAAS,EAAE;GACzB,IAAI,oBAAoB;GAExB,IACE,QAAQ,YACL,0BAA0B,OAAO,SAAS,QAAQ,SAAS,OAAO,KAClE,CAAC,MAAM,SAAS,MAAM,GACzB;IACA,MAAM,cAAc,sBAAsB,MAAM;KAAE,UAAU;KAAO,QAAQ;IAAK,CAAC;IACjF,IAAI,YAAY,SAAS;KACvB,OAAO,YAAY;KACnB,oBAAoB;IACtB;GACF;GAEA,IACE,SAAS,wBAAkB,KACxB,YAAY,EAAE,KACd,SAAS,qBAAe,KACxB,SAAS,4BAAsB,KAC/B,SAAS,yBAAmB,GAE/B,OAAO;GAGT,IAAI,MAAM,SAAS,MAAM,GAAG;IAC1B,MAAM,aAAa,cAAc,KAAK;IACtC,MAAM,OAAO,MAAM,WAAW,IAAI,UAAU,KAAK;KAC/C,MAAM;KACN,IAAI,wBAAwB,OAAO,OAAO;KAC1C,YAAY;KACZ,YAAY;IACd;IACA,MAAM,WAAW,IAAI,YAAY,IAAI;IACrC,MAAM,SAAS,MAAM,sBAAsB;KACzC,UAAU;KACV;KACA;KACA;KACA,QAAQ;KACR,WAAW;KACX,sBAAsB;KACtB,QAAQ,QAAQ;KAChB;IACF,CAAC;IACD,OAAO,yBAAyB;KAC9B,MAAM,OAAO;KACb,UAAU;KACV;KACA,iBAAiB,iBAAiB,YAAY,eAAe,2BAA2B,CAAC;KACzF,eAAe,8BAA8B,QAAQ,KAAK;KAC1D;KACA;IACF,CAAC;GACH;GAEA,IAAI,eAAe,KAAK,GAAG;IACzB,IAAI,YAAY,OAAO,IAAI,GACzB,OAAO;IAET,MAAM,eAAe,cAAc,KAAK;IACxC,IAAI,MAAM,gBAAgB,OAAO,GAAG;KAClC,IAAI,CAAC,YAAY,OAAO,OAAO,GAC7B,OAAO;KAET,IAAI,CAAC,MAAM,gBAAgB,IAAI,YAAY,GACzC,OAAO;IAEX;IACA,IAAI,iBAAiB;IAErB,IADiB,sBAAsB,KAC5B,CAAC,EAAE,SAAS,UAAU,MAAM,WAAW,QAAQ,QACxD,iBAAiB,iBAAiB,MAAM,MAAM,WAAW,OAAO;IAElE,MAAM,mBAAmB,MAAM,kBAAkB,IAAI,YAAY;IACjE,MAAM,gBAAgB,MAAM,qBAAqB,IAAI,YAAY;IACjE,MAAM,EAAE,MAAM,UAAU,cAAc,aAAa,YAAY;KAC7D,IAAI;KACJ,QAAQ;KACR;KACA;KACA,eAAe,mBAAmB,EAAE,QAAQ,iBAAiB,IAAI;KACjE;IACF,CAAC;IACD,MAAM,eAAe,KAAK;IAC1B,IAAI,aAAa,SAAS,KAAK,cAC7B,KAAK,MAAM,OAAO,cAChB,aAAa,KAAK,MAAM,GAAG;IAG/B,MAAM,OAAO,KAAK;IAClB,IAAI,UAAU,UAAU,MACtB,KAAK,MAAM,WAAW,UACpB,KAAK,KAAK,MAAM,OAAO;IAG3B,OAAO;KAAE,MAAM;KAAU,KAAK;IAAK;GACrC;GAEA,IAAI,UAAU,KAAK,KAAK,YAAY,EAAE,GAAG;IACvC,MAAM,EAAE,MAAM,UAAU,cAAc,aAAa,kBAAkB,MAAM,OAAO;KAChF,aAAa;KACb,eAAe,UAAU,aAAa,cAAc,iBAAiB,UAAU,QAAQ,CAAC;IAC1F,CAAC;IACD,MAAM,eAAe,KAAK;IAC1B,IAAI,aAAa,SAAS,KAAK,cAC7B,KAAK,MAAM,OAAO,cAChB,aAAa,KAAK,MAAM,GAAG;IAG/B,MAAM,OAAO,KAAK;IAClB,IAAI,UAAU,UAAU,MACtB,KAAK,MAAM,WAAW,UACpB,KAAK,KAAK,MAAM,OAAO;IAG3B,OAAO;KAAE,MAAM;KAAU,KAAK;IAAK;GACrC;GAEA,IAAI,qBAAqB,MAAK,QAAO,MAAM,SAAS,GAAG,CAAC,GAAG;IACzD,MAAM,EAAE,QAAQ,mBAAmB,MAAM,WAAW;IACpD,OAAO;KACL,MAAM,wBAAwB,GAAG;KACjC,KAAK;IACP;GACF;GAEA,IAAI,WAAW,MAAK,QAAO,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,MAAM,SAAS,OAAO,GAAG;IAC3E,MAAM,EAAE,QAAQ,mBAAmB,MAAM,WAAW;IACpD,OAAO;KAAE,MAAM;KAAK,KAAK;IAAK;GAChC;GAEA,IAAI,CAAC,YAAY,MAAK,QAAO,MAAM,SAAS,GAAG,CAAC,GAC9C,OAAO,oBAAoB;IAAE;IAAM,KAAK;GAAK,IAAI;GAEnD,IAAI,MAAM,SAAS,cAAc,KAAK,CAAC,SAAS,yBAAuB,GACrE,OAAO,QAAQ,YAAY,0BAA0B,OAAO,SAAS,QAAQ,SAAS,OAAO,IACzF;IAAE;IAAM,KAAK;GAAK,IAClB;GAGN,MAAM,OAAO,MAAM,WAAW,IAAI,cAAc,KAAK,CAAC;GACtD,IAAI,CAAC,MACH,OAAO;GAGT,OAAO,sBAAsB;IAC3B;IACA,SAAS;IACT;IACA;IACA,iBAAiB,iBAAiB;IAClC;GACF,CAAC;EACH;CACF;AACF"}
@@ -1,4 +1,4 @@
1
- //#region src/plugin/layout.ts
1
+ // src/plugin/layout.ts
2
2
  function collectLayoutPropKeys(layouts) {
3
3
  const keys = /* @__PURE__ */ new Set();
4
4
  for (const layout of layouts) {
@@ -19,6 +19,5 @@ function wrapPageTemplate(source, layouts) {
19
19
  }).join("")}<block wx:else>${source}</block>`;
20
20
  }
21
21
 
22
- //#endregion
23
22
  export { wrapPageTemplate };
24
23
  //# sourceMappingURL=layout.mjs.map
@@ -1,4 +1,4 @@
1
- //#region src/plugin/navigation.ts
1
+ // src/plugin/navigation.ts
2
2
  function pickNavigationConfig(source) {
3
3
  const config = {};
4
4
  if (!source) return config;
@@ -15,6 +15,5 @@ function mergeNavigationConfig(base, overrides) {
15
15
  };
16
16
  }
17
17
 
18
- //#endregion
19
18
  export { mergeNavigationConfig, pickNavigationConfig };
20
19
  //# sourceMappingURL=navigation.mjs.map