@weapp-vite/web 1.3.15 → 1.3.17

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 (243) hide show
  1. package/README.md +2 -2
  2. package/dist/_virtual/_rolldown/runtime.mjs +18 -0
  3. package/dist/compiler/wxml/attributes.mjs +93 -0
  4. package/dist/compiler/wxml/attributes.mjs.map +1 -0
  5. package/dist/compiler/wxml/compile.mjs +158 -0
  6. package/dist/compiler/wxml/compile.mjs.map +1 -0
  7. package/dist/compiler/wxml/dependency.mjs +31 -0
  8. package/dist/compiler/wxml/dependency.mjs.map +1 -0
  9. package/dist/compiler/wxml/interpolation.mjs +142 -0
  10. package/dist/compiler/wxml/interpolation.mjs.map +1 -0
  11. package/dist/compiler/wxml/navigation.mjs +85 -0
  12. package/dist/compiler/wxml/navigation.mjs.map +1 -0
  13. package/dist/compiler/wxml/parser.mjs +41 -0
  14. package/dist/compiler/wxml/parser.mjs.map +1 -0
  15. package/dist/compiler/wxml/renderer.mjs +114 -0
  16. package/dist/compiler/wxml/renderer.mjs.map +1 -0
  17. package/dist/compiler/wxml/specialNodes.mjs +85 -0
  18. package/dist/compiler/wxml/specialNodes.mjs.map +1 -0
  19. package/dist/compiler/wxs.mjs +83 -0
  20. package/dist/compiler/wxs.mjs.map +1 -0
  21. package/dist/css/wxss.d.mts +25 -0
  22. package/dist/css/wxss.mjs +17 -0
  23. package/dist/css/wxss.mjs.map +1 -0
  24. package/dist/index.d.mts +18 -2
  25. package/dist/index.mjs +18 -3
  26. package/dist/plugin/constants.mjs +43 -0
  27. package/dist/plugin/constants.mjs.map +1 -0
  28. package/dist/plugin/entry.mjs +29 -0
  29. package/dist/plugin/entry.mjs.map +1 -0
  30. package/dist/plugin/files.mjs +58 -0
  31. package/dist/plugin/files.mjs.map +1 -0
  32. package/dist/plugin/index.d.mts +33 -0
  33. package/dist/plugin/index.mjs +188 -0
  34. package/dist/plugin/index.mjs.map +1 -0
  35. package/dist/plugin/navigation.mjs +20 -0
  36. package/dist/plugin/navigation.mjs.map +1 -0
  37. package/dist/plugin/path.mjs +85 -0
  38. package/dist/plugin/path.mjs.map +1 -0
  39. package/dist/plugin/register.mjs +83 -0
  40. package/dist/plugin/register.mjs.map +1 -0
  41. package/dist/plugin/scan.mjs +195 -0
  42. package/dist/plugin/scan.mjs.map +1 -0
  43. package/dist/plugin/scanConfig.mjs +45 -0
  44. package/dist/plugin/scanConfig.mjs.map +1 -0
  45. package/dist/plugin/state.mjs +22 -0
  46. package/dist/plugin/state.mjs.map +1 -0
  47. package/dist/plugin/types.d.mts +46 -0
  48. package/dist/plugin.d.mts +3 -2
  49. package/dist/plugin.mjs +3 -2
  50. package/dist/runtime/button/helpers.mjs +92 -0
  51. package/dist/runtime/button/helpers.mjs.map +1 -0
  52. package/dist/runtime/button/index.d.mts +9 -0
  53. package/dist/runtime/button/index.mjs +198 -0
  54. package/dist/runtime/button/index.mjs.map +1 -0
  55. package/dist/runtime/button/style.mjs +168 -0
  56. package/dist/runtime/button/style.mjs.map +1 -0
  57. package/dist/runtime/component/behavior.mjs +98 -0
  58. package/dist/runtime/component/behavior.mjs.map +1 -0
  59. package/dist/runtime/component/constants.mjs +13 -0
  60. package/dist/runtime/component/constants.mjs.map +1 -0
  61. package/dist/runtime/component/dom.mjs +32 -0
  62. package/dist/runtime/component/dom.mjs.map +1 -0
  63. package/dist/runtime/component/element.mjs +208 -0
  64. package/dist/runtime/component/element.mjs.map +1 -0
  65. package/dist/runtime/component/events.mjs +49 -0
  66. package/dist/runtime/component/events.mjs.map +1 -0
  67. package/dist/runtime/component/index.d.mts +7 -0
  68. package/dist/runtime/component/index.mjs +44 -0
  69. package/dist/runtime/component/index.mjs.map +1 -0
  70. package/dist/runtime/component/state.mjs +63 -0
  71. package/dist/runtime/component/state.mjs.map +1 -0
  72. package/dist/runtime/component/types.d.mts +49 -0
  73. package/dist/runtime/component/utils.mjs +39 -0
  74. package/dist/runtime/component/utils.mjs.map +1 -0
  75. package/dist/runtime/execution.d.mts +7 -0
  76. package/dist/runtime/execution.mjs +37 -0
  77. package/dist/runtime/execution.mjs.map +1 -0
  78. package/dist/runtime/index.d.mts +16 -2
  79. package/dist/runtime/index.mjs +16 -2
  80. package/dist/runtime/legacyTemplate/dom.mjs +76 -0
  81. package/dist/runtime/legacyTemplate/dom.mjs.map +1 -0
  82. package/dist/runtime/legacyTemplate/expression.mjs +113 -0
  83. package/dist/runtime/legacyTemplate/expression.mjs.map +1 -0
  84. package/dist/runtime/legacyTemplate/index.d.mts +9 -0
  85. package/dist/runtime/legacyTemplate/index.mjs +132 -0
  86. package/dist/runtime/legacyTemplate/index.mjs.map +1 -0
  87. package/dist/runtime/legacyTemplate/types.d.mts +6 -0
  88. package/dist/runtime/navigationBar/index.d.mts +10 -0
  89. package/dist/runtime/navigationBar/index.mjs +162 -0
  90. package/dist/runtime/navigationBar/index.mjs.map +1 -0
  91. package/dist/runtime/navigationBar/style.mjs +108 -0
  92. package/dist/runtime/navigationBar/style.mjs.map +1 -0
  93. package/dist/runtime/polyfill/ad.mjs +150 -0
  94. package/dist/runtime/polyfill/ad.mjs.map +1 -0
  95. package/dist/runtime/polyfill/appState.mjs +31 -0
  96. package/dist/runtime/polyfill/appState.mjs.map +1 -0
  97. package/dist/runtime/polyfill/async.mjs +31 -0
  98. package/dist/runtime/polyfill/async.mjs.map +1 -0
  99. package/dist/runtime/polyfill/auth.mjs +120 -0
  100. package/dist/runtime/polyfill/auth.mjs.map +1 -0
  101. package/dist/runtime/polyfill/authApi.mjs +101 -0
  102. package/dist/runtime/polyfill/authApi.mjs.map +1 -0
  103. package/dist/runtime/polyfill/background.mjs +31 -0
  104. package/dist/runtime/polyfill/background.mjs.map +1 -0
  105. package/dist/runtime/polyfill/canvasContext.mjs +115 -0
  106. package/dist/runtime/polyfill/canvasContext.mjs.map +1 -0
  107. package/dist/runtime/polyfill/capability.mjs +20 -0
  108. package/dist/runtime/polyfill/capability.mjs.map +1 -0
  109. package/dist/runtime/polyfill/cloud.mjs +39 -0
  110. package/dist/runtime/polyfill/cloud.mjs.map +1 -0
  111. package/dist/runtime/polyfill/device.mjs +44 -0
  112. package/dist/runtime/polyfill/device.mjs.map +1 -0
  113. package/dist/runtime/polyfill/deviceApi.mjs +31 -0
  114. package/dist/runtime/polyfill/deviceApi.mjs.map +1 -0
  115. package/dist/runtime/polyfill/deviceAuthSystemApi.d.mts +102 -0
  116. package/dist/runtime/polyfill/deviceAuthSystemApi.mjs +144 -0
  117. package/dist/runtime/polyfill/deviceAuthSystemApi.mjs.map +1 -0
  118. package/dist/runtime/polyfill/filePicker.mjs +158 -0
  119. package/dist/runtime/polyfill/filePicker.mjs.map +1 -0
  120. package/dist/runtime/polyfill/fileSystemManager.mjs +45 -0
  121. package/dist/runtime/polyfill/fileSystemManager.mjs.map +1 -0
  122. package/dist/runtime/polyfill/files.mjs +118 -0
  123. package/dist/runtime/polyfill/files.mjs.map +1 -0
  124. package/dist/runtime/polyfill/index.d.mts +40 -0
  125. package/dist/runtime/polyfill/index.mjs +110 -0
  126. package/dist/runtime/polyfill/index.mjs.map +1 -0
  127. package/dist/runtime/polyfill/interaction.mjs +38 -0
  128. package/dist/runtime/polyfill/interaction.mjs.map +1 -0
  129. package/dist/runtime/polyfill/interactionApi.mjs +54 -0
  130. package/dist/runtime/polyfill/interactionApi.mjs.map +1 -0
  131. package/dist/runtime/polyfill/location.mjs +106 -0
  132. package/dist/runtime/polyfill/location.mjs.map +1 -0
  133. package/dist/runtime/polyfill/locationApi.mjs +120 -0
  134. package/dist/runtime/polyfill/locationApi.mjs.map +1 -0
  135. package/dist/runtime/polyfill/mediaActions.mjs +52 -0
  136. package/dist/runtime/polyfill/mediaActions.mjs.map +1 -0
  137. package/dist/runtime/polyfill/mediaApi/file.mjs +63 -0
  138. package/dist/runtime/polyfill/mediaApi/file.mjs.map +1 -0
  139. package/dist/runtime/polyfill/mediaApi/info.mjs +59 -0
  140. package/dist/runtime/polyfill/mediaApi/info.mjs.map +1 -0
  141. package/dist/runtime/polyfill/mediaApi/picker.mjs +82 -0
  142. package/dist/runtime/polyfill/mediaApi/picker.mjs.map +1 -0
  143. package/dist/runtime/polyfill/mediaApi/preview.mjs +39 -0
  144. package/dist/runtime/polyfill/mediaApi/preview.mjs.map +1 -0
  145. package/dist/runtime/polyfill/mediaApi/process.mjs +46 -0
  146. package/dist/runtime/polyfill/mediaApi/process.mjs.map +1 -0
  147. package/dist/runtime/polyfill/mediaInfo.mjs +136 -0
  148. package/dist/runtime/polyfill/mediaInfo.mjs.map +1 -0
  149. package/dist/runtime/polyfill/mediaPicker.mjs +213 -0
  150. package/dist/runtime/polyfill/mediaPicker.mjs.map +1 -0
  151. package/dist/runtime/polyfill/mediaProcess.mjs +65 -0
  152. package/dist/runtime/polyfill/mediaProcess.mjs.map +1 -0
  153. package/dist/runtime/polyfill/menuApi.mjs +70 -0
  154. package/dist/runtime/polyfill/menuApi.mjs.map +1 -0
  155. package/dist/runtime/polyfill/navigationBarRuntime.mjs +66 -0
  156. package/dist/runtime/polyfill/navigationBarRuntime.mjs.map +1 -0
  157. package/dist/runtime/polyfill/network/request.mjs +162 -0
  158. package/dist/runtime/polyfill/network/request.mjs.map +1 -0
  159. package/dist/runtime/polyfill/network/requestBridge.mjs +49 -0
  160. package/dist/runtime/polyfill/network/requestBridge.mjs.map +1 -0
  161. package/dist/runtime/polyfill/network/status.mjs +55 -0
  162. package/dist/runtime/polyfill/network/status.mjs.map +1 -0
  163. package/dist/runtime/polyfill/platformApi.mjs +33 -0
  164. package/dist/runtime/polyfill/platformApi.mjs.map +1 -0
  165. package/dist/runtime/polyfill/platformRuntime.mjs +120 -0
  166. package/dist/runtime/polyfill/platformRuntime.mjs.map +1 -0
  167. package/dist/runtime/polyfill/routeRuntime/dom.mjs +36 -0
  168. package/dist/runtime/polyfill/routeRuntime/dom.mjs.map +1 -0
  169. package/dist/runtime/polyfill/routeRuntime/lifecycle.mjs +83 -0
  170. package/dist/runtime/polyfill/routeRuntime/lifecycle.mjs.map +1 -0
  171. package/dist/runtime/polyfill/routeRuntime/options.d.mts +33 -0
  172. package/dist/runtime/polyfill/routeRuntime/options.mjs +76 -0
  173. package/dist/runtime/polyfill/routeRuntime/options.mjs.map +1 -0
  174. package/dist/runtime/polyfill/routeRuntime/url.mjs +35 -0
  175. package/dist/runtime/polyfill/routeRuntime/url.mjs.map +1 -0
  176. package/dist/runtime/polyfill/routeRuntime.d.mts +43 -0
  177. package/dist/runtime/polyfill/routeRuntime.mjs +202 -0
  178. package/dist/runtime/polyfill/routeRuntime.mjs.map +1 -0
  179. package/dist/runtime/polyfill/runtimeCapabilityApi.mjs +26 -0
  180. package/dist/runtime/polyfill/runtimeCapabilityApi.mjs.map +1 -0
  181. package/dist/runtime/polyfill/runtimeDataApi.d.mts +79 -0
  182. package/dist/runtime/polyfill/runtimeDataApi.mjs +134 -0
  183. package/dist/runtime/polyfill/runtimeDataApi.mjs.map +1 -0
  184. package/dist/runtime/polyfill/runtimeInfra.mjs +40 -0
  185. package/dist/runtime/polyfill/runtimeInfra.mjs.map +1 -0
  186. package/dist/runtime/polyfill/runtimeOps.mjs +62 -0
  187. package/dist/runtime/polyfill/runtimeOps.mjs.map +1 -0
  188. package/dist/runtime/polyfill/selectorQuery.mjs +204 -0
  189. package/dist/runtime/polyfill/selectorQuery.mjs.map +1 -0
  190. package/dist/runtime/polyfill/storage.mjs +103 -0
  191. package/dist/runtime/polyfill/storage.mjs.map +1 -0
  192. package/dist/runtime/polyfill/storageAsync.mjs +62 -0
  193. package/dist/runtime/polyfill/storageAsync.mjs.map +1 -0
  194. package/dist/runtime/polyfill/subscribe.mjs +30 -0
  195. package/dist/runtime/polyfill/subscribe.mjs.map +1 -0
  196. package/dist/runtime/polyfill/system.mjs +111 -0
  197. package/dist/runtime/polyfill/system.mjs.map +1 -0
  198. package/dist/runtime/polyfill/systemApi.mjs +65 -0
  199. package/dist/runtime/polyfill/systemApi.mjs.map +1 -0
  200. package/dist/runtime/polyfill/types/base.d.mts +12 -0
  201. package/dist/runtime/polyfill/types/common.d.mts +126 -0
  202. package/dist/runtime/polyfill/types/locationRuntime.d.mts +151 -0
  203. package/dist/runtime/polyfill/types/mediaAuth.d.mts +152 -0
  204. package/dist/runtime/polyfill/types/platformRuntime.d.mts +141 -0
  205. package/dist/runtime/polyfill/types/systemAuth.d.mts +122 -0
  206. package/dist/runtime/polyfill/ui.mjs +135 -0
  207. package/dist/runtime/polyfill/ui.mjs.map +1 -0
  208. package/dist/runtime/polyfill/uiFeedback.mjs +35 -0
  209. package/dist/runtime/polyfill/uiFeedback.mjs.map +1 -0
  210. package/dist/runtime/polyfill/uiMediaApi.d.mts +172 -0
  211. package/dist/runtime/polyfill/uiMediaApi.mjs +162 -0
  212. package/dist/runtime/polyfill/uiMediaApi.mjs.map +1 -0
  213. package/dist/runtime/polyfill/videoContext.mjs +56 -0
  214. package/dist/runtime/polyfill/videoContext.mjs.map +1 -0
  215. package/dist/runtime/polyfill/vkSession.mjs +58 -0
  216. package/dist/runtime/polyfill/vkSession.mjs.map +1 -0
  217. package/dist/runtime/polyfill/windowResize.mjs +39 -0
  218. package/dist/runtime/polyfill/windowResize.mjs.map +1 -0
  219. package/dist/runtime/polyfill/worker.mjs +77 -0
  220. package/dist/runtime/polyfill/worker.mjs.map +1 -0
  221. package/dist/runtime/polyfill.d.mts +5 -0
  222. package/dist/runtime/renderContext.d.mts +21 -0
  223. package/dist/runtime/renderContext.mjs +147 -0
  224. package/dist/runtime/renderContext.mjs.map +1 -0
  225. package/dist/runtime/rpx.d.mts +9 -0
  226. package/dist/runtime/rpx.mjs +27 -0
  227. package/dist/runtime/rpx.mjs.map +1 -0
  228. package/dist/runtime/style.d.mts +6 -0
  229. package/dist/runtime/style.mjs +37 -0
  230. package/dist/runtime/style.mjs.map +1 -0
  231. package/dist/runtime/template.d.mts +10 -0
  232. package/dist/runtime/warning.d.mts +10 -0
  233. package/dist/runtime/warning.mjs +43 -0
  234. package/dist/runtime/warning.mjs.map +1 -0
  235. package/dist/{slugify-B4l45KNs.mjs → shared/slugify.mjs} +3 -1
  236. package/dist/shared/slugify.mjs.map +1 -0
  237. package/dist/shared/wxml.mjs +83 -0
  238. package/dist/shared/wxml.mjs.map +1 -0
  239. package/package.json +2 -2
  240. package/dist/index-w9xxIH-l.d.mts +0 -1229
  241. package/dist/plugin-BARxSPO8.mjs +0 -1567
  242. package/dist/plugin-DP2iPVmw.d.mts +0 -96
  243. package/dist/runtime-D6j2_x_N.mjs +0 -6251
@@ -0,0 +1,83 @@
1
+ //#region src/runtime/polyfill/routeRuntime/lifecycle.ts
2
+ const ROUTE_META_SYMBOL = Symbol("@weapp-vite/web:route-meta");
3
+ const PAGE_STATE_SYMBOL = Symbol("@weapp-vite/web:page-state");
4
+ function getRouteMeta(instance) {
5
+ return instance[ROUTE_META_SYMBOL];
6
+ }
7
+ function getPageState(instance) {
8
+ const target = instance;
9
+ target[PAGE_STATE_SYMBOL] ??= { loaded: false };
10
+ return target[PAGE_STATE_SYMBOL];
11
+ }
12
+ function walkElementsDeep(root, collector) {
13
+ const nodes = Array.from(root.childNodes ?? []);
14
+ for (const node of nodes) {
15
+ if (!(node instanceof HTMLElement)) continue;
16
+ collector.add(node);
17
+ walkElementsDeep(node, collector);
18
+ if (node.shadowRoot) walkElementsDeep(node.shadowRoot, collector);
19
+ }
20
+ }
21
+ function dispatchPageLifetimeToComponents(page, type) {
22
+ const host = page;
23
+ const root = host.renderRoot ?? host.shadowRoot ?? host;
24
+ if (!root || typeof root.querySelectorAll !== "function") return;
25
+ const elements = /* @__PURE__ */ new Set();
26
+ walkElementsDeep(root, elements);
27
+ for (const element of elements) {
28
+ const component = element;
29
+ if (typeof component.__weappInvokePageLifetime === "function") component.__weappInvokePageLifetime(type);
30
+ }
31
+ }
32
+ function attachRouteMeta(element, meta) {
33
+ element[ROUTE_META_SYMBOL] = meta;
34
+ }
35
+ function augmentPageComponentOptions(component, record) {
36
+ const lifetimes = component.lifetimes ?? {};
37
+ const originalCreated = lifetimes?.created;
38
+ const originalAttached = lifetimes?.attached;
39
+ const originalReady = lifetimes?.ready;
40
+ const originalDetached = lifetimes?.detached;
41
+ return {
42
+ ...component,
43
+ lifetimes: {
44
+ ...lifetimes,
45
+ created() {
46
+ originalCreated?.call(this);
47
+ getPageState(this);
48
+ record.instances.add(this);
49
+ },
50
+ attached() {
51
+ originalAttached?.call(this);
52
+ const meta = getRouteMeta(this);
53
+ if (meta?.entry) meta.entry.instance = this;
54
+ const state = getPageState(this);
55
+ if (!state.loaded) {
56
+ record.hooks.onLoad?.call(this, meta?.query ?? {});
57
+ state.loaded = true;
58
+ }
59
+ record.hooks.onShow?.call(this);
60
+ },
61
+ ready() {
62
+ originalReady?.call(this);
63
+ record.hooks.onReady?.call(this);
64
+ dispatchPageLifetimeToComponents(this, "show");
65
+ },
66
+ detached() {
67
+ originalDetached?.call(this);
68
+ const meta = getRouteMeta(this);
69
+ if (meta?.entry) meta.entry.instance = void 0;
70
+ dispatchPageLifetimeToComponents(this, "hide");
71
+ record.hooks.onHide?.call(this);
72
+ record.hooks.onUnload?.call(this);
73
+ const state = getPageState(this);
74
+ state.loaded = false;
75
+ record.instances.delete(this);
76
+ }
77
+ }
78
+ };
79
+ }
80
+
81
+ //#endregion
82
+ export { attachRouteMeta, augmentPageComponentOptions, dispatchPageLifetimeToComponents };
83
+ //# sourceMappingURL=lifecycle.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/lifecycle.ts"],"sourcesContent":["import type { ComponentOptions, ComponentPublicInstance } from '../../component'\nimport type { PageRecord, RouteMeta } from './options'\n\nconst ROUTE_META_SYMBOL = Symbol('@weapp-vite/web:route-meta')\nconst PAGE_STATE_SYMBOL = Symbol('@weapp-vite/web:page-state')\n\ninterface RouteMetaCarrier {\n [ROUTE_META_SYMBOL]?: RouteMeta\n}\n\ninterface PageInstanceState {\n loaded: boolean\n}\n\ninterface PageStateCarrier {\n [PAGE_STATE_SYMBOL]?: PageInstanceState\n}\n\ntype ComponentPageLifetimeType = 'show' | 'hide' | 'resize'\n\ninterface PageLifetimeAwareComponent extends HTMLElement {\n __weappInvokePageLifetime?: (type: ComponentPageLifetimeType) => void\n renderRoot?: ShadowRoot | HTMLElement\n}\n\nfunction getRouteMeta(instance: ComponentPublicInstance): RouteMeta | undefined {\n return (instance as RouteMetaCarrier)[ROUTE_META_SYMBOL]\n}\n\nfunction getPageState(instance: ComponentPublicInstance): PageInstanceState {\n const target = instance as PageStateCarrier\n target[PAGE_STATE_SYMBOL] ??= { loaded: false }\n return target[PAGE_STATE_SYMBOL]!\n}\n\nfunction walkElementsDeep(root: ParentNode, collector: Set<HTMLElement>) {\n const nodes = Array.from((root as ParentNode & { childNodes?: ArrayLike<unknown> }).childNodes ?? [])\n for (const node of nodes) {\n if (!(node instanceof HTMLElement)) {\n continue\n }\n collector.add(node)\n walkElementsDeep(node, collector)\n if (node.shadowRoot) {\n walkElementsDeep(node.shadowRoot, collector)\n }\n }\n}\n\nexport function dispatchPageLifetimeToComponents(\n page: ComponentPublicInstance,\n type: ComponentPageLifetimeType,\n) {\n const host = page as ComponentPublicInstance & {\n renderRoot?: ShadowRoot | HTMLElement\n shadowRoot?: ShadowRoot | null\n }\n const root = host.renderRoot ?? host.shadowRoot ?? host\n if (!root || typeof root.querySelectorAll !== 'function') {\n return\n }\n const elements = new Set<HTMLElement>()\n walkElementsDeep(root, elements)\n for (const element of elements) {\n const component = element as PageLifetimeAwareComponent\n if (typeof component.__weappInvokePageLifetime === 'function') {\n component.__weappInvokePageLifetime(type)\n }\n }\n}\n\nexport function attachRouteMeta(\n element: HTMLElement & ComponentPublicInstance,\n meta: RouteMeta,\n) {\n (element as RouteMetaCarrier)[ROUTE_META_SYMBOL] = meta\n}\n\nexport function augmentPageComponentOptions(component: ComponentOptions, record: PageRecord) {\n const lifetimes = component.lifetimes ?? {}\n const originalCreated = lifetimes?.created\n const originalAttached = lifetimes?.attached\n const originalReady = lifetimes?.ready\n const originalDetached = lifetimes?.detached\n\n const enhanced: ComponentOptions = {\n ...component,\n lifetimes: {\n ...lifetimes,\n created(this: ComponentPublicInstance) {\n originalCreated?.call(this)\n getPageState(this)\n record.instances.add(this)\n },\n attached(this: ComponentPublicInstance) {\n originalAttached?.call(this)\n const meta = getRouteMeta(this)\n if (meta?.entry) {\n meta.entry.instance = this\n }\n const state = getPageState(this)\n if (!state.loaded) {\n record.hooks.onLoad?.call(this, meta?.query ?? {})\n state.loaded = true\n }\n record.hooks.onShow?.call(this)\n },\n ready(this: ComponentPublicInstance) {\n originalReady?.call(this)\n record.hooks.onReady?.call(this)\n dispatchPageLifetimeToComponents(this, 'show')\n },\n detached(this: ComponentPublicInstance) {\n originalDetached?.call(this)\n const meta = getRouteMeta(this)\n if (meta?.entry) {\n meta.entry.instance = undefined\n }\n dispatchPageLifetimeToComponents(this, 'hide')\n record.hooks.onHide?.call(this)\n record.hooks.onUnload?.call(this)\n const state = getPageState(this)\n state.loaded = false\n record.instances.delete(this)\n },\n },\n }\n\n return enhanced\n}\n"],"mappings":";AAGA,MAAM,oBAAoB,OAAO,6BAA6B;AAC9D,MAAM,oBAAoB,OAAO,6BAA6B;AAqB9D,SAAS,aAAa,UAA0D;AAC9E,QAAQ,SAA8B;;AAGxC,SAAS,aAAa,UAAsD;CAC1E,MAAM,SAAS;AACf,QAAO,uBAAuB,EAAE,QAAQ,OAAO;AAC/C,QAAO,OAAO;;AAGhB,SAAS,iBAAiB,MAAkB,WAA6B;CACvE,MAAM,QAAQ,MAAM,KAAM,KAA0D,cAAc,EAAE,CAAC;AACrG,MAAK,MAAM,QAAQ,OAAO;AACxB,MAAI,EAAE,gBAAgB,aACpB;AAEF,YAAU,IAAI,KAAK;AACnB,mBAAiB,MAAM,UAAU;AACjC,MAAI,KAAK,WACP,kBAAiB,KAAK,YAAY,UAAU;;;AAKlD,SAAgB,iCACd,MACA,MACA;CACA,MAAM,OAAO;CAIb,MAAM,OAAO,KAAK,cAAc,KAAK,cAAc;AACnD,KAAI,CAAC,QAAQ,OAAO,KAAK,qBAAqB,WAC5C;CAEF,MAAM,2BAAW,IAAI,KAAkB;AACvC,kBAAiB,MAAM,SAAS;AAChC,MAAK,MAAM,WAAW,UAAU;EAC9B,MAAM,YAAY;AAClB,MAAI,OAAO,UAAU,8BAA8B,WACjD,WAAU,0BAA0B,KAAK;;;AAK/C,SAAgB,gBACd,SACA,MACA;AACA,CAAC,QAA6B,qBAAqB;;AAGrD,SAAgB,4BAA4B,WAA6B,QAAoB;CAC3F,MAAM,YAAY,UAAU,aAAa,EAAE;CAC3C,MAAM,kBAAkB,WAAW;CACnC,MAAM,mBAAmB,WAAW;CACpC,MAAM,gBAAgB,WAAW;CACjC,MAAM,mBAAmB,WAAW;AA6CpC,QA3CmC;EACjC,GAAG;EACH,WAAW;GACT,GAAG;GACH,UAAuC;AACrC,qBAAiB,KAAK,KAAK;AAC3B,iBAAa,KAAK;AAClB,WAAO,UAAU,IAAI,KAAK;;GAE5B,WAAwC;AACtC,sBAAkB,KAAK,KAAK;IAC5B,MAAM,OAAO,aAAa,KAAK;AAC/B,QAAI,MAAM,MACR,MAAK,MAAM,WAAW;IAExB,MAAM,QAAQ,aAAa,KAAK;AAChC,QAAI,CAAC,MAAM,QAAQ;AACjB,YAAO,MAAM,QAAQ,KAAK,MAAM,MAAM,SAAS,EAAE,CAAC;AAClD,WAAM,SAAS;;AAEjB,WAAO,MAAM,QAAQ,KAAK,KAAK;;GAEjC,QAAqC;AACnC,mBAAe,KAAK,KAAK;AACzB,WAAO,MAAM,SAAS,KAAK,KAAK;AAChC,qCAAiC,MAAM,OAAO;;GAEhD,WAAwC;AACtC,sBAAkB,KAAK,KAAK;IAC5B,MAAM,OAAO,aAAa,KAAK;AAC/B,QAAI,MAAM,MACR,MAAK,MAAM,WAAW;AAExB,qCAAiC,MAAM,OAAO;AAC9C,WAAO,MAAM,QAAQ,KAAK,KAAK;AAC/B,WAAO,MAAM,UAAU,KAAK,KAAK;IACjC,MAAM,QAAQ,aAAa,KAAK;AAChC,UAAM,SAAS;AACf,WAAO,UAAU,OAAO,KAAK;;GAEhC;EACF"}
@@ -0,0 +1,33 @@
1
+ import { TemplateRenderer } from "../../template.mjs";
2
+ import { ComponentOptions, ComponentPublicInstance } from "../../component/types.mjs";
3
+ //#region src/runtime/polyfill/routeRuntime/options.d.ts
4
+ interface RegisterMeta {
5
+ id: string;
6
+ template?: TemplateRenderer;
7
+ style?: string;
8
+ }
9
+ interface PageHooks {
10
+ onLoad?: (this: ComponentPublicInstance, query: Record<string, string>) => void;
11
+ onReady?: (this: ComponentPublicInstance) => void;
12
+ onShow?: (this: ComponentPublicInstance) => void;
13
+ onHide?: (this: ComponentPublicInstance) => void;
14
+ onUnload?: (this: ComponentPublicInstance) => void;
15
+ }
16
+ interface AppLifecycleHooks {
17
+ onLaunch?: (this: AppRuntime, options: AppLaunchOptions) => void;
18
+ onShow?: (this: AppRuntime, options: AppLaunchOptions) => void;
19
+ }
20
+ type AppRuntime = Record<string, unknown> & Partial<AppLifecycleHooks> & {
21
+ globalData?: Record<string, unknown>;
22
+ };
23
+ interface AppLaunchOptions {
24
+ path: string;
25
+ scene: number;
26
+ query: Record<string, string>;
27
+ referrerInfo: Record<string, unknown>;
28
+ }
29
+ type PageRawOptions = ComponentOptions & PageHooks & Record<string, unknown>;
30
+ type ComponentRawOptions = ComponentOptions & Record<string, unknown>;
31
+ //#endregion
32
+ export { AppLaunchOptions, AppRuntime, ComponentRawOptions, PageRawOptions, RegisterMeta };
33
+ //# sourceMappingURL=options.d.mts.map
@@ -0,0 +1,76 @@
1
+ //#region src/runtime/polyfill/routeRuntime/options.ts
2
+ const RESERVED_PAGE_METHOD_KEYS = new Set([
3
+ "data",
4
+ "methods",
5
+ "lifetimes",
6
+ "properties",
7
+ "behaviors",
8
+ "options",
9
+ "observers",
10
+ "mixins",
11
+ ...new Set([
12
+ "onLoad",
13
+ "onReady",
14
+ "onShow",
15
+ "onHide",
16
+ "onUnload"
17
+ ])
18
+ ]);
19
+ const RESERVED_COMPONENT_METHOD_KEYS = new Set([
20
+ "data",
21
+ "methods",
22
+ "lifetimes",
23
+ "pageLifetimes",
24
+ "properties",
25
+ "behaviors",
26
+ "options",
27
+ "observers",
28
+ "mixins"
29
+ ]);
30
+ function cloneLifetimes(source) {
31
+ if (!source) return;
32
+ return { ...source };
33
+ }
34
+ function isRecord(value) {
35
+ return typeof value === "object" && value !== null;
36
+ }
37
+ function isMethodHandler(value) {
38
+ return typeof value === "function";
39
+ }
40
+ function normalizeMethodBag(source, reserved) {
41
+ const methods = {};
42
+ const sourceMethods = isRecord(source?.methods) ? source?.methods : void 0;
43
+ if (sourceMethods) {
44
+ for (const [key, value] of Object.entries(sourceMethods)) if (isMethodHandler(value)) methods[key] = value;
45
+ }
46
+ if (source) for (const [key, value] of Object.entries(source)) {
47
+ if (reserved.has(key)) continue;
48
+ if (isMethodHandler(value) && methods[key] === void 0) methods[key] = value;
49
+ }
50
+ return methods;
51
+ }
52
+ function normalizePageOptions(raw) {
53
+ const component = { ...raw ?? {} };
54
+ component.methods = normalizeMethodBag(raw, RESERVED_PAGE_METHOD_KEYS);
55
+ if (raw?.lifetimes) component.lifetimes = cloneLifetimes(raw.lifetimes);
56
+ const hooks = {};
57
+ if (typeof raw?.onLoad === "function") hooks.onLoad = raw.onLoad;
58
+ if (typeof raw?.onReady === "function") hooks.onReady = raw.onReady;
59
+ if (typeof raw?.onShow === "function") hooks.onShow = raw.onShow;
60
+ if (typeof raw?.onHide === "function") hooks.onHide = raw.onHide;
61
+ if (typeof raw?.onUnload === "function") hooks.onUnload = raw.onUnload;
62
+ return {
63
+ component,
64
+ hooks
65
+ };
66
+ }
67
+ function normalizeComponentOptions(raw) {
68
+ const component = { ...raw ?? {} };
69
+ component.methods = normalizeMethodBag(raw, RESERVED_COMPONENT_METHOD_KEYS);
70
+ if (raw?.lifetimes) component.lifetimes = cloneLifetimes(raw.lifetimes);
71
+ return component;
72
+ }
73
+
74
+ //#endregion
75
+ export { isRecord, normalizeComponentOptions, normalizePageOptions };
76
+ //# sourceMappingURL=options.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/options.ts"],"sourcesContent":["import type { ComponentOptions, ComponentPublicInstance } from '../../component'\nimport type { TemplateRenderer } from '../../template'\n\nexport interface RegisterMeta {\n id: string\n template?: TemplateRenderer\n style?: string\n}\n\nexport interface PageHooks {\n onLoad?: (this: ComponentPublicInstance, query: Record<string, string>) => void\n onReady?: (this: ComponentPublicInstance) => void\n onShow?: (this: ComponentPublicInstance) => void\n onHide?: (this: ComponentPublicInstance) => void\n onUnload?: (this: ComponentPublicInstance) => void\n}\n\nexport interface PageRecord {\n tag: string\n hooks: PageHooks\n instances: Set<ComponentPublicInstance>\n}\n\nexport interface ComponentRecord {\n tag: string\n}\n\nexport interface PageStackEntry {\n id: string\n query: Record<string, string>\n instance?: ComponentPublicInstance\n}\n\nexport interface RouteMeta {\n id: string\n query: Record<string, string>\n entry: PageStackEntry\n}\n\ninterface AppLifecycleHooks {\n onLaunch?: (this: AppRuntime, options: AppLaunchOptions) => void\n onShow?: (this: AppRuntime, options: AppLaunchOptions) => void\n}\n\nexport type AppRuntime = Record<string, unknown> & Partial<AppLifecycleHooks> & {\n globalData?: Record<string, unknown>\n}\n\nexport interface AppLaunchOptions {\n path: string\n scene: number\n query: Record<string, string>\n referrerInfo: Record<string, unknown>\n}\n\ntype MethodHandler = (this: ComponentPublicInstance, ...args: unknown[]) => unknown\n\nexport type PageRawOptions = ComponentOptions & PageHooks & Record<string, unknown>\nexport type ComponentRawOptions = ComponentOptions & Record<string, unknown>\n\nconst PAGE_LIFECYCLE_KEYS = new Set(['onLoad', 'onReady', 'onShow', 'onHide', 'onUnload'])\nconst RESERVED_PAGE_METHOD_KEYS = new Set([\n 'data',\n 'methods',\n 'lifetimes',\n 'properties',\n 'behaviors',\n 'options',\n 'observers',\n 'mixins',\n ...PAGE_LIFECYCLE_KEYS,\n])\nconst RESERVED_COMPONENT_METHOD_KEYS = new Set([\n 'data',\n 'methods',\n 'lifetimes',\n 'pageLifetimes',\n 'properties',\n 'behaviors',\n 'options',\n 'observers',\n 'mixins',\n])\n\nfunction cloneLifetimes(source?: ComponentOptions['lifetimes']): ComponentOptions['lifetimes'] {\n if (!source) {\n return undefined\n }\n return {\n ...source,\n }\n}\n\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null\n}\n\nfunction isMethodHandler(value: unknown): value is MethodHandler {\n return typeof value === 'function'\n}\n\nfunction normalizeMethodBag(\n source: Record<string, unknown> | undefined,\n reserved: Set<string>,\n) {\n const methods: Record<string, MethodHandler> = {}\n const sourceMethods = isRecord(source?.methods) ? source?.methods : undefined\n\n if (sourceMethods) {\n for (const [key, value] of Object.entries(sourceMethods)) {\n if (isMethodHandler(value)) {\n methods[key] = value\n }\n }\n }\n\n if (source) {\n for (const [key, value] of Object.entries(source)) {\n if (reserved.has(key)) {\n continue\n }\n if (isMethodHandler(value) && methods[key] === undefined) {\n methods[key] = value\n }\n }\n }\n return methods\n}\n\nexport function normalizePageOptions(raw: PageRawOptions | undefined): { component: ComponentOptions, hooks: PageHooks } {\n const component = { ...(raw ?? {}) } as ComponentOptions\n component.methods = normalizeMethodBag(raw as Record<string, unknown> | undefined, RESERVED_PAGE_METHOD_KEYS) as ComponentOptions['methods']\n if (raw?.lifetimes) {\n component.lifetimes = cloneLifetimes(raw.lifetimes)\n }\n const hooks: PageHooks = {}\n if (typeof raw?.onLoad === 'function') {\n hooks.onLoad = raw.onLoad as PageHooks['onLoad']\n }\n if (typeof raw?.onReady === 'function') {\n hooks.onReady = raw.onReady as PageHooks['onReady']\n }\n if (typeof raw?.onShow === 'function') {\n hooks.onShow = raw.onShow as PageHooks['onShow']\n }\n if (typeof raw?.onHide === 'function') {\n hooks.onHide = raw.onHide as PageHooks['onHide']\n }\n if (typeof raw?.onUnload === 'function') {\n hooks.onUnload = raw.onUnload as PageHooks['onUnload']\n }\n return { component, hooks }\n}\n\nexport function normalizeComponentOptions(raw: ComponentRawOptions | undefined): ComponentOptions {\n const component = { ...(raw ?? {}) } as ComponentOptions\n component.methods = normalizeMethodBag(raw as Record<string, unknown> | undefined, RESERVED_COMPONENT_METHOD_KEYS) as ComponentOptions['methods']\n if (raw?.lifetimes) {\n component.lifetimes = cloneLifetimes(raw.lifetimes)\n }\n return component\n}\n"],"mappings":";AA6DA,MAAM,4BAA4B,IAAI,IAAI;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAV0B,IAAI,IAAI;EAAC;EAAU;EAAW;EAAU;EAAU;EAAW,CAAC;CAWzF,CAAC;AACF,MAAM,iCAAiC,IAAI,IAAI;CAC7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,SAAS,eAAe,QAAuE;AAC7F,KAAI,CAAC,OACH;AAEF,QAAO,EACL,GAAG,QACJ;;AAGH,SAAgB,SAAS,OAAkD;AACzE,QAAO,OAAO,UAAU,YAAY,UAAU;;AAGhD,SAAS,gBAAgB,OAAwC;AAC/D,QAAO,OAAO,UAAU;;AAG1B,SAAS,mBACP,QACA,UACA;CACA,MAAM,UAAyC,EAAE;CACjD,MAAM,gBAAgB,SAAS,QAAQ,QAAQ,GAAG,QAAQ,UAAU;AAEpE,KAAI,eACF;OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,cAAc,CACtD,KAAI,gBAAgB,MAAM,CACxB,SAAQ,OAAO;;AAKrB,KAAI,OACF,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,EAAE;AACjD,MAAI,SAAS,IAAI,IAAI,CACnB;AAEF,MAAI,gBAAgB,MAAM,IAAI,QAAQ,SAAS,OAC7C,SAAQ,OAAO;;AAIrB,QAAO;;AAGT,SAAgB,qBAAqB,KAAoF;CACvH,MAAM,YAAY,EAAE,GAAI,OAAO,EAAE,EAAG;AACpC,WAAU,UAAU,mBAAmB,KAA4C,0BAA0B;AAC7G,KAAI,KAAK,UACP,WAAU,YAAY,eAAe,IAAI,UAAU;CAErD,MAAM,QAAmB,EAAE;AAC3B,KAAI,OAAO,KAAK,WAAW,WACzB,OAAM,SAAS,IAAI;AAErB,KAAI,OAAO,KAAK,YAAY,WAC1B,OAAM,UAAU,IAAI;AAEtB,KAAI,OAAO,KAAK,WAAW,WACzB,OAAM,SAAS,IAAI;AAErB,KAAI,OAAO,KAAK,WAAW,WACzB,OAAM,SAAS,IAAI;AAErB,KAAI,OAAO,KAAK,aAAa,WAC3B,OAAM,WAAW,IAAI;AAEvB,QAAO;EAAE;EAAW;EAAO;;AAG7B,SAAgB,0BAA0B,KAAwD;CAChG,MAAM,YAAY,EAAE,GAAI,OAAO,EAAE,EAAG;AACpC,WAAU,UAAU,mBAAmB,KAA4C,+BAA+B;AAClH,KAAI,KAAK,UACP,WAAU,YAAY,eAAe,IAAI,UAAU;AAErD,QAAO"}
@@ -0,0 +1,35 @@
1
+ //#region src/runtime/polyfill/routeRuntime/url.ts
2
+ const PAGE_TEMPLATE_EXTENSIONS = [
3
+ ".wxml",
4
+ ".axml",
5
+ ".swan",
6
+ ".ttml",
7
+ ".qml",
8
+ ".ksml",
9
+ ".xhsml",
10
+ ".html"
11
+ ];
12
+ function stripTemplateExtension(id) {
13
+ const lowered = id.toLowerCase();
14
+ for (const ext of PAGE_TEMPLATE_EXTENSIONS) if (lowered.endsWith(ext)) return id.slice(0, -ext.length);
15
+ return id;
16
+ }
17
+ function parsePageId(raw) {
18
+ return stripTemplateExtension(raw.replace(/^\//, ""));
19
+ }
20
+ function parsePageUrl(url) {
21
+ const [path, search = ""] = url.split("?");
22
+ const query = {};
23
+ if (search) {
24
+ const params = new URLSearchParams(search);
25
+ for (const [key, value] of params.entries()) query[key] = value;
26
+ }
27
+ return {
28
+ id: parsePageId(path || ""),
29
+ query
30
+ };
31
+ }
32
+
33
+ //#endregion
34
+ export { parsePageUrl };
35
+ //# sourceMappingURL=url.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/url.ts"],"sourcesContent":["import type { PageStackEntry } from './options'\n\nconst PAGE_TEMPLATE_EXTENSIONS = ['.wxml', '.axml', '.swan', '.ttml', '.qml', '.ksml', '.xhsml', '.html']\n\nfunction stripTemplateExtension(id: string) {\n const lowered = id.toLowerCase()\n for (const ext of PAGE_TEMPLATE_EXTENSIONS) {\n if (lowered.endsWith(ext)) {\n return id.slice(0, -ext.length)\n }\n }\n return id\n}\n\nfunction parsePageId(raw: string) {\n const normalized = raw.replace(/^\\//, '')\n return stripTemplateExtension(normalized)\n}\n\nexport function parsePageUrl(url: string): Pick<PageStackEntry, 'id' | 'query'> {\n const [path, search = ''] = url.split('?')\n const query: Record<string, string> = {}\n if (search) {\n const params = new URLSearchParams(search)\n for (const [key, value] of params.entries()) {\n query[key] = value\n }\n }\n return {\n id: parsePageId(path || ''),\n query,\n }\n}\n"],"mappings":";AAEA,MAAM,2BAA2B;CAAC;CAAS;CAAS;CAAS;CAAS;CAAQ;CAAS;CAAU;CAAQ;AAEzG,SAAS,uBAAuB,IAAY;CAC1C,MAAM,UAAU,GAAG,aAAa;AAChC,MAAK,MAAM,OAAO,yBAChB,KAAI,QAAQ,SAAS,IAAI,CACvB,QAAO,GAAG,MAAM,GAAG,CAAC,IAAI,OAAO;AAGnC,QAAO;;AAGT,SAAS,YAAY,KAAa;AAEhC,QAAO,uBADY,IAAI,QAAQ,OAAO,GAAG,CACA;;AAG3C,SAAgB,aAAa,KAAmD;CAC9E,MAAM,CAAC,MAAM,SAAS,MAAM,IAAI,MAAM,IAAI;CAC1C,MAAM,QAAgC,EAAE;AACxC,KAAI,QAAQ;EACV,MAAM,SAAS,IAAI,gBAAgB,OAAO;AAC1C,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,SAAS,CACzC,OAAM,OAAO;;AAGjB,QAAO;EACL,IAAI,YAAY,QAAQ,GAAG;EAC3B;EACD"}
@@ -0,0 +1,43 @@
1
+ import { ButtonFormConfig } from "../button/index.mjs";
2
+ import { NavigationBarMetrics } from "../navigationBar/index.mjs";
3
+ import { AppLaunchOptions, AppRuntime, ComponentRawOptions, PageRawOptions, RegisterMeta } from "./routeRuntime/options.mjs";
4
+
5
+ //#region src/runtime/polyfill/routeRuntime.d.ts
6
+ declare function initializePageRoutes(ids: string[], options?: {
7
+ rpx?: {
8
+ designWidth?: number;
9
+ varName?: string;
10
+ };
11
+ navigationBar?: NavigationBarMetrics;
12
+ form?: ButtonFormConfig;
13
+ runtime?: {
14
+ executionMode?: 'compat' | 'safe' | 'strict';
15
+ warnings?: {
16
+ level?: 'off' | 'warn' | 'error';
17
+ dedupe?: boolean;
18
+ };
19
+ };
20
+ }): void;
21
+ declare function registerPage<T extends PageRawOptions | undefined>(options: T, meta: RegisterMeta): T;
22
+ declare function registerComponent<T extends ComponentRawOptions | undefined>(options: T, meta: RegisterMeta): T;
23
+ declare function registerApp<T extends AppRuntime | undefined>(options: T, _meta?: RegisterMeta): T;
24
+ declare function navigateTo(options: {
25
+ url: string;
26
+ }): Promise<void>;
27
+ declare function redirectTo(options: {
28
+ url: string;
29
+ }): Promise<void>;
30
+ declare function reLaunch(options: {
31
+ url: string;
32
+ }): Promise<void>;
33
+ declare function switchTab(options: {
34
+ url: string;
35
+ }): Promise<void>;
36
+ declare function navigateBack(options?: {
37
+ delta?: number;
38
+ }): Promise<void>;
39
+ declare function getLaunchOptionsSync(): AppLaunchOptions;
40
+ declare function getEnterOptionsSync(): AppLaunchOptions;
41
+ //#endregion
42
+ export { getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab };
43
+ //# sourceMappingURL=routeRuntime.d.mts.map
@@ -0,0 +1,202 @@
1
+ import { slugify } from "../../shared/slugify.mjs";
2
+ import { ensureButtonDefined, setButtonFormConfig } from "../button/index.mjs";
3
+ import { setRuntimeWarningOptions } from "../warning.mjs";
4
+ import { setRuntimeExecutionMode } from "../execution.mjs";
5
+ import { defineComponent } from "../component/index.mjs";
6
+ import { ensureNavigationBarDefined, setNavigationBarMetrics } from "../navigationBar/index.mjs";
7
+ import { setupRpx } from "../rpx.mjs";
8
+ import { cloneLaunchOptions, resolveCurrentPages, resolveFallbackLaunchOptions } from "./appState.mjs";
9
+ import { augmentPageComponentOptions, dispatchPageLifetimeToComponents } from "./routeRuntime/lifecycle.mjs";
10
+ import { mountEntryToDom } from "./routeRuntime/dom.mjs";
11
+ import { isRecord, normalizeComponentOptions, normalizePageOptions } from "./routeRuntime/options.mjs";
12
+ import { parsePageUrl } from "./routeRuntime/url.mjs";
13
+
14
+ //#region src/runtime/polyfill/routeRuntime.ts
15
+ const pageRegistry = /* @__PURE__ */ new Map();
16
+ const componentRegistry = /* @__PURE__ */ new Map();
17
+ const navigationHistory = [];
18
+ let pageOrder = [];
19
+ let appInstance;
20
+ let appLaunched = false;
21
+ let lastLaunchOptions;
22
+ let pageResizeBridgeBound = false;
23
+ function bindPageResizeBridge() {
24
+ if (pageResizeBridgeBound || typeof window === "undefined") return;
25
+ if (typeof window.addEventListener !== "function") return;
26
+ pageResizeBridgeBound = true;
27
+ window.addEventListener("resize", () => {
28
+ const pages = getCurrentPagesInternal();
29
+ const current = pages[pages.length - 1];
30
+ if (!current) return;
31
+ dispatchPageLifetimeToComponents(current, "resize");
32
+ });
33
+ }
34
+ function ensureAppLaunched(entry) {
35
+ if (!appInstance || appLaunched) return;
36
+ const launchOptions = {
37
+ path: entry.id,
38
+ scene: 0,
39
+ query: entry.query,
40
+ referrerInfo: {}
41
+ };
42
+ lastLaunchOptions = {
43
+ path: launchOptions.path,
44
+ scene: launchOptions.scene,
45
+ query: { ...launchOptions.query },
46
+ referrerInfo: { ...launchOptions.referrerInfo }
47
+ };
48
+ if (typeof appInstance.onLaunch === "function") appInstance.onLaunch(launchOptions);
49
+ if (typeof appInstance.onShow === "function") appInstance.onShow(launchOptions);
50
+ appLaunched = true;
51
+ }
52
+ function mountEntry(entry) {
53
+ mountEntryToDom(entry, pageRegistry, ensureAppLaunched);
54
+ }
55
+ function pushEntry(id, query) {
56
+ if (!pageRegistry.has(id)) return;
57
+ const entry = {
58
+ id,
59
+ query
60
+ };
61
+ navigationHistory.push(entry);
62
+ mountEntry(entry);
63
+ }
64
+ function replaceEntry(id, query) {
65
+ if (!pageRegistry.has(id)) return;
66
+ const entry = {
67
+ id,
68
+ query
69
+ };
70
+ if (navigationHistory.length) navigationHistory[navigationHistory.length - 1] = entry;
71
+ else navigationHistory.push(entry);
72
+ mountEntry(entry);
73
+ }
74
+ function relaunchEntry(id, query) {
75
+ navigationHistory.length = 0;
76
+ pushEntry(id, query);
77
+ }
78
+ function initializePageRoutes(ids, options) {
79
+ setRuntimeExecutionMode(options?.runtime?.executionMode);
80
+ setRuntimeWarningOptions(options?.runtime?.warnings);
81
+ pageOrder = Array.from(new Set(ids));
82
+ if (!pageOrder.length) return;
83
+ bindPageResizeBridge();
84
+ if (options?.rpx) setupRpx(options.rpx);
85
+ if (options?.navigationBar) setNavigationBarMetrics(options.navigationBar);
86
+ if (options?.form) setButtonFormConfig(options.form);
87
+ if (!navigationHistory.length) pushEntry(pageOrder[0], {});
88
+ }
89
+ function registerPage(options, meta) {
90
+ ensureButtonDefined();
91
+ ensureNavigationBarDefined();
92
+ const tag = slugify(meta.id, "wv-page");
93
+ const template = meta.template ?? (() => "");
94
+ const normalized = normalizePageOptions(options);
95
+ const existing = pageRegistry.get(meta.id);
96
+ if (existing) {
97
+ existing.hooks = normalized.hooks;
98
+ const component = augmentPageComponentOptions(normalized.component, existing);
99
+ defineComponent(tag, {
100
+ template,
101
+ style: meta.style,
102
+ component
103
+ });
104
+ return options;
105
+ }
106
+ const record = {
107
+ tag,
108
+ hooks: normalized.hooks,
109
+ instances: /* @__PURE__ */ new Set()
110
+ };
111
+ const component = augmentPageComponentOptions(normalized.component, record);
112
+ defineComponent(tag, {
113
+ template,
114
+ style: meta.style,
115
+ component
116
+ });
117
+ pageRegistry.set(meta.id, record);
118
+ return options;
119
+ }
120
+ function registerComponent(options, meta) {
121
+ ensureButtonDefined();
122
+ const tag = slugify(meta.id, "wv-component");
123
+ const template = meta.template ?? (() => "");
124
+ const component = normalizeComponentOptions(options);
125
+ if (componentRegistry.has(meta.id)) {
126
+ defineComponent(tag, {
127
+ template,
128
+ style: meta.style,
129
+ component
130
+ });
131
+ return options;
132
+ }
133
+ defineComponent(tag, {
134
+ template,
135
+ style: meta.style,
136
+ component
137
+ });
138
+ componentRegistry.set(meta.id, { tag });
139
+ return options;
140
+ }
141
+ function registerApp(options, _meta) {
142
+ const resolved = options ?? {};
143
+ if (appInstance) {
144
+ const currentGlobal = appInstance.globalData;
145
+ Object.assign(appInstance, resolved);
146
+ if (isRecord(currentGlobal)) appInstance.globalData = currentGlobal;
147
+ else if (!isRecord(appInstance.globalData)) appInstance.globalData = {};
148
+ return options;
149
+ }
150
+ appInstance = resolved;
151
+ appLaunched = false;
152
+ lastLaunchOptions = void 0;
153
+ if (!isRecord(appInstance.globalData)) appInstance.globalData = {};
154
+ return options;
155
+ }
156
+ function navigateTo(options) {
157
+ if (!options?.url) return Promise.resolve();
158
+ const { id, query } = parsePageUrl(options.url);
159
+ pushEntry(id, query);
160
+ return Promise.resolve();
161
+ }
162
+ function redirectTo(options) {
163
+ if (!options?.url) return Promise.resolve();
164
+ const { id, query } = parsePageUrl(options.url);
165
+ replaceEntry(id, query);
166
+ return Promise.resolve();
167
+ }
168
+ function reLaunch(options) {
169
+ if (!options?.url) return Promise.resolve();
170
+ const { id, query } = parsePageUrl(options.url);
171
+ relaunchEntry(id, query);
172
+ return Promise.resolve();
173
+ }
174
+ function switchTab(options) {
175
+ return redirectTo(options);
176
+ }
177
+ function navigateBack(options) {
178
+ if (navigationHistory.length <= 1) return Promise.resolve();
179
+ const delta = Math.max(1, options?.delta ?? 1);
180
+ const targetIndex = Math.max(0, navigationHistory.length - 1 - delta);
181
+ const target = navigationHistory[targetIndex];
182
+ navigationHistory.length = targetIndex;
183
+ pushEntry(target.id, target.query);
184
+ return Promise.resolve();
185
+ }
186
+ function getCurrentPagesInternal() {
187
+ return resolveCurrentPages(navigationHistory);
188
+ }
189
+ function getAppInstance() {
190
+ return appInstance;
191
+ }
192
+ function getLaunchOptionsSync() {
193
+ if (lastLaunchOptions) return cloneLaunchOptions(lastLaunchOptions);
194
+ return resolveFallbackLaunchOptions(navigationHistory);
195
+ }
196
+ function getEnterOptionsSync() {
197
+ return getLaunchOptionsSync();
198
+ }
199
+
200
+ //#endregion
201
+ export { getAppInstance, getCurrentPagesInternal, getEnterOptionsSync, getLaunchOptionsSync, initializePageRoutes, navigateBack, navigateTo, reLaunch, redirectTo, registerApp, registerComponent, registerPage, switchTab };
202
+ //# sourceMappingURL=routeRuntime.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routeRuntime.mjs","names":[],"sources":["../../../src/runtime/polyfill/routeRuntime.ts"],"sourcesContent":["import type { ButtonFormConfig } from '../button'\nimport type { ComponentPublicInstance } from '../component'\nimport type { NavigationBarMetrics } from '../navigationBar'\nimport type { AppLaunchOptions, AppRuntime, ComponentRawOptions, ComponentRecord, PageRawOptions, PageRecord, PageStackEntry, RegisterMeta } from './routeRuntime/options'\nimport { slugify } from '../../shared/slugify'\nimport { ensureButtonDefined, setButtonFormConfig } from '../button'\nimport { defineComponent } from '../component'\nimport { setRuntimeExecutionMode } from '../execution'\nimport { ensureNavigationBarDefined, setNavigationBarMetrics } from '../navigationBar'\nimport { setupRpx } from '../rpx'\nimport { setRuntimeWarningOptions } from '../warning'\nimport {\n cloneLaunchOptions,\n resolveCurrentPages,\n resolveFallbackLaunchOptions,\n} from './appState'\nimport { mountEntryToDom } from './routeRuntime/dom'\nimport {\n augmentPageComponentOptions,\n dispatchPageLifetimeToComponents,\n} from './routeRuntime/lifecycle'\nimport {\n\n isRecord,\n normalizeComponentOptions,\n normalizePageOptions,\n} from './routeRuntime/options'\nimport { parsePageUrl } from './routeRuntime/url'\n\nconst pageRegistry = new Map<string, PageRecord>()\nconst componentRegistry = new Map<string, ComponentRecord>()\nconst navigationHistory: PageStackEntry[] = []\nlet pageOrder: string[] = []\nlet appInstance: AppRuntime | undefined\nlet appLaunched = false\nlet lastLaunchOptions: AppLaunchOptions | undefined\nlet pageResizeBridgeBound = false\n\nfunction bindPageResizeBridge() {\n if (pageResizeBridgeBound || typeof window === 'undefined') {\n return\n }\n if (typeof window.addEventListener !== 'function') {\n return\n }\n pageResizeBridgeBound = true\n window.addEventListener('resize', () => {\n const pages = getCurrentPagesInternal()\n const current = pages[pages.length - 1]\n if (!current) {\n return\n }\n dispatchPageLifetimeToComponents(current, 'resize')\n })\n}\n\nfunction ensureAppLaunched(entry: PageStackEntry) {\n if (!appInstance || appLaunched) {\n return\n }\n const launchOptions: AppLaunchOptions = {\n path: entry.id,\n scene: 0,\n query: entry.query,\n referrerInfo: {},\n }\n lastLaunchOptions = {\n path: launchOptions.path,\n scene: launchOptions.scene,\n query: { ...launchOptions.query },\n referrerInfo: { ...launchOptions.referrerInfo },\n }\n if (typeof appInstance.onLaunch === 'function') {\n appInstance.onLaunch(launchOptions)\n }\n if (typeof appInstance.onShow === 'function') {\n appInstance.onShow(launchOptions)\n }\n appLaunched = true\n}\n\nfunction mountEntry(entry: PageStackEntry) {\n mountEntryToDom(entry, pageRegistry, ensureAppLaunched)\n}\n\nfunction pushEntry(id: string, query: Record<string, string>) {\n if (!pageRegistry.has(id)) {\n return\n }\n const entry: PageStackEntry = { id, query }\n navigationHistory.push(entry)\n mountEntry(entry)\n}\n\nfunction replaceEntry(id: string, query: Record<string, string>) {\n if (!pageRegistry.has(id)) {\n return\n }\n const entry: PageStackEntry = { id, query }\n if (navigationHistory.length) {\n navigationHistory[navigationHistory.length - 1] = entry\n }\n else {\n navigationHistory.push(entry)\n }\n mountEntry(entry)\n}\n\nfunction relaunchEntry(id: string, query: Record<string, string>) {\n navigationHistory.length = 0\n pushEntry(id, query)\n}\n\nexport function initializePageRoutes(\n ids: string[],\n options?: {\n rpx?: { designWidth?: number, varName?: string }\n navigationBar?: NavigationBarMetrics\n form?: ButtonFormConfig\n runtime?: {\n executionMode?: 'compat' | 'safe' | 'strict'\n warnings?: {\n level?: 'off' | 'warn' | 'error'\n dedupe?: boolean\n }\n }\n },\n) {\n setRuntimeExecutionMode(options?.runtime?.executionMode)\n setRuntimeWarningOptions(options?.runtime?.warnings)\n pageOrder = Array.from(new Set(ids))\n if (!pageOrder.length) {\n return\n }\n bindPageResizeBridge()\n if (options?.rpx) {\n setupRpx(options.rpx)\n }\n if (options?.navigationBar) {\n setNavigationBarMetrics(options.navigationBar)\n }\n if (options?.form) {\n setButtonFormConfig(options.form)\n }\n if (!navigationHistory.length) {\n pushEntry(pageOrder[0], {})\n }\n}\n\nexport function registerPage<T extends PageRawOptions | undefined>(options: T, meta: RegisterMeta): T {\n ensureButtonDefined()\n ensureNavigationBarDefined()\n const tag = slugify(meta.id, 'wv-page')\n const template = meta.template ?? (() => '')\n const normalized = normalizePageOptions(options)\n const existing = pageRegistry.get(meta.id)\n if (existing) {\n existing.hooks = normalized.hooks\n const component = augmentPageComponentOptions(normalized.component, existing)\n defineComponent(tag, {\n template,\n style: meta.style,\n component,\n })\n return options\n }\n const record: PageRecord = {\n tag,\n hooks: normalized.hooks,\n instances: new Set(),\n }\n const component = augmentPageComponentOptions(normalized.component, record)\n defineComponent(tag, {\n template,\n style: meta.style,\n component,\n })\n pageRegistry.set(meta.id, record)\n return options\n}\n\nexport function registerComponent<T extends ComponentRawOptions | undefined>(options: T, meta: RegisterMeta): T {\n ensureButtonDefined()\n const tag = slugify(meta.id, 'wv-component')\n const template = meta.template ?? (() => '')\n const component = normalizeComponentOptions(options)\n if (componentRegistry.has(meta.id)) {\n defineComponent(tag, {\n template,\n style: meta.style,\n component,\n })\n return options\n }\n defineComponent(tag, {\n template,\n style: meta.style,\n component,\n })\n componentRegistry.set(meta.id, { tag })\n return options\n}\n\nexport function registerApp<T extends AppRuntime | undefined>(options: T, _meta?: RegisterMeta): T {\n const resolved = (options ?? {}) as AppRuntime\n if (appInstance) {\n const currentGlobal = appInstance.globalData\n Object.assign(appInstance, resolved)\n if (isRecord(currentGlobal)) {\n appInstance.globalData = currentGlobal\n }\n else if (!isRecord(appInstance.globalData)) {\n appInstance.globalData = {}\n }\n return options\n }\n appInstance = resolved\n appLaunched = false\n lastLaunchOptions = undefined\n if (!isRecord(appInstance.globalData)) {\n appInstance.globalData = {}\n }\n return options\n}\n\nexport function navigateTo(options: { url: string }) {\n if (!options?.url) {\n return Promise.resolve()\n }\n const { id, query } = parsePageUrl(options.url)\n pushEntry(id, query)\n return Promise.resolve()\n}\n\nexport function redirectTo(options: { url: string }) {\n if (!options?.url) {\n return Promise.resolve()\n }\n const { id, query } = parsePageUrl(options.url)\n replaceEntry(id, query)\n return Promise.resolve()\n}\n\nexport function reLaunch(options: { url: string }) {\n if (!options?.url) {\n return Promise.resolve()\n }\n const { id, query } = parsePageUrl(options.url)\n relaunchEntry(id, query)\n return Promise.resolve()\n}\n\nexport function switchTab(options: { url: string }) {\n return redirectTo(options)\n}\n\nexport function navigateBack(options?: { delta?: number }) {\n if (navigationHistory.length <= 1) {\n return Promise.resolve()\n }\n const delta = Math.max(1, options?.delta ?? 1)\n const targetIndex = Math.max(0, navigationHistory.length - 1 - delta)\n const target = navigationHistory[targetIndex]\n navigationHistory.length = targetIndex\n pushEntry(target.id, target.query)\n return Promise.resolve()\n}\n\nexport function getCurrentPagesInternal() {\n return resolveCurrentPages<ComponentPublicInstance>(navigationHistory)\n}\n\nexport function getAppInstance() {\n return appInstance\n}\n\nexport function getLaunchOptionsSync(): AppLaunchOptions {\n if (lastLaunchOptions) {\n return cloneLaunchOptions(lastLaunchOptions)\n }\n return resolveFallbackLaunchOptions(navigationHistory)\n}\n\nexport function getEnterOptionsSync(): AppLaunchOptions {\n return getLaunchOptionsSync()\n}\n"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { addNetworkStatusCallback, removeNetworkStatusCallback } from "./network/status.mjs";
2
+ import { checkRuntimeCapability } from "./capability.mjs";
3
+ import { addWindowResizeCallback, removeWindowResizeCallback } from "./windowResize.mjs";
4
+
5
+ //#region src/runtime/polyfill/runtimeCapabilityApi.ts
6
+ function onNetworkStatusChangeBridge(callback) {
7
+ if (typeof callback !== "function") return;
8
+ addNetworkStatusCallback(callback);
9
+ }
10
+ function offNetworkStatusChangeBridge(callback) {
11
+ removeNetworkStatusCallback(callback);
12
+ }
13
+ function onWindowResizeBridge(callback, getWindowInfo) {
14
+ if (typeof callback !== "function") return;
15
+ addWindowResizeCallback(callback, getWindowInfo);
16
+ }
17
+ function offWindowResizeBridge(callback) {
18
+ removeWindowResizeCallback(callback);
19
+ }
20
+ function canIUseBridge(miniProgramBridge, schema) {
21
+ return checkRuntimeCapability(miniProgramBridge, schema);
22
+ }
23
+
24
+ //#endregion
25
+ export { canIUseBridge, offNetworkStatusChangeBridge, offWindowResizeBridge, onNetworkStatusChangeBridge, onWindowResizeBridge };
26
+ //# sourceMappingURL=runtimeCapabilityApi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeCapabilityApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/runtimeCapabilityApi.ts"],"sourcesContent":["import { checkRuntimeCapability } from './capability'\nimport {\n addNetworkStatusCallback,\n removeNetworkStatusCallback,\n} from './network'\nimport {\n addWindowResizeCallback,\n removeWindowResizeCallback,\n} from './windowResize'\n\nexport function onNetworkStatusChangeBridge(callback: any) {\n if (typeof callback !== 'function') {\n return\n }\n addNetworkStatusCallback(callback)\n}\n\nexport function offNetworkStatusChangeBridge(callback?: any) {\n removeNetworkStatusCallback(callback)\n}\n\nexport function onWindowResizeBridge(callback: any, getWindowInfo: () => any) {\n if (typeof callback !== 'function') {\n return\n }\n addWindowResizeCallback(callback, getWindowInfo)\n}\n\nexport function offWindowResizeBridge(callback?: any) {\n removeWindowResizeCallback(callback)\n}\n\nexport function canIUseBridge(miniProgramBridge: Record<string, unknown> | undefined, schema: string) {\n return checkRuntimeCapability(miniProgramBridge, schema)\n}\n"],"mappings":";;;;;AAUA,SAAgB,4BAA4B,UAAe;AACzD,KAAI,OAAO,aAAa,WACtB;AAEF,0BAAyB,SAAS;;AAGpC,SAAgB,6BAA6B,UAAgB;AAC3D,6BAA4B,SAAS;;AAGvC,SAAgB,qBAAqB,UAAe,eAA0B;AAC5E,KAAI,OAAO,aAAa,WACtB;AAEF,yBAAwB,UAAU,cAAc;;AAGlD,SAAgB,sBAAsB,UAAgB;AACpD,4BAA2B,SAAS;;AAGtC,SAAgB,cAAc,mBAAwD,QAAgB;AACpG,QAAO,uBAAuB,mBAAmB,OAAO"}
@@ -0,0 +1,79 @@
1
+ import { MiniProgramAsyncOptions, MiniProgramBaseResult } from "./types/base.mjs";
2
+ import { DownloadFileOptions, FileSystemManager, GetStorageOptions, RemoveStorageOptions, RequestOptions, SetStorageOptions, StorageInfoResult, UploadFileOptions, WorkerBridge } from "./types/common.mjs";
3
+ import { LoadSubPackageOptions, NavigateToMiniProgramOptions, PreloadSubpackageOptions } from "./types/locationRuntime.mjs";
4
+ import { CanvasContext, PageScrollToOptions, SelectorQuery, VideoContext, VkSession } from "./types/platformRuntime.mjs";
5
+
6
+ //#region src/runtime/polyfill/runtimeDataApi.d.ts
7
+ declare function navigateToMiniProgram(options?: NavigateToMiniProgramOptions): Promise<{
8
+ errMsg: string;
9
+ }>;
10
+ declare function exitMiniProgram(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>): Promise<{
11
+ errMsg: string;
12
+ }>;
13
+ declare function nextTick(callback?: () => void): void;
14
+ declare function startPullDownRefresh(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>): Promise<{
15
+ errMsg: string;
16
+ }>;
17
+ declare function stopPullDownRefresh(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>): Promise<{
18
+ errMsg: string;
19
+ }>;
20
+ declare function hideKeyboard(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>): Promise<{
21
+ errMsg: string;
22
+ }>;
23
+ declare function loadSubPackage(options?: LoadSubPackageOptions): Promise<{
24
+ errMsg: string;
25
+ }>;
26
+ declare function preloadSubpackage(options?: PreloadSubpackageOptions): Promise<{
27
+ errMsg: string;
28
+ }>;
29
+ declare function pageScrollTo(options?: PageScrollToOptions): Promise<unknown>;
30
+ declare function createSelectorQuery(): SelectorQuery;
31
+ declare function createCanvasContext(canvasId: string): CanvasContext;
32
+ declare function createVideoContext(videoId: string): VideoContext;
33
+ declare function setStorageSync(key: string, data: any): void;
34
+ declare function getStorageSync(key: string): any;
35
+ declare function removeStorageSync(key: string): void;
36
+ declare function clearStorageSync(): void;
37
+ declare function getStorageInfoSync(): StorageInfoResult;
38
+ declare function setStorage(options?: SetStorageOptions): Promise<{
39
+ errMsg: string;
40
+ }>;
41
+ declare function getStorage(options?: GetStorageOptions): Promise<{
42
+ errMsg: string;
43
+ data: any;
44
+ }>;
45
+ declare function removeStorage(options?: RemoveStorageOptions): Promise<{
46
+ errMsg: string;
47
+ }>;
48
+ declare function clearStorage(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>): Promise<{
49
+ errMsg: string;
50
+ }>;
51
+ declare function getStorageInfo(options?: MiniProgramAsyncOptions<StorageInfoResult>): Promise<{
52
+ errMsg: string;
53
+ keys: string[];
54
+ currentSize: number;
55
+ limitSize: number;
56
+ }>;
57
+ declare function getFileSystemManager(): FileSystemManager;
58
+ declare function createWorker(path: string): WorkerBridge;
59
+ declare function createVKSession(_options?: Record<string, unknown>): VkSession;
60
+ declare function request(options?: RequestOptions): Promise<{
61
+ errMsg: string;
62
+ data: any;
63
+ statusCode: number;
64
+ header: Record<string, string>;
65
+ }>;
66
+ declare function downloadFile(options?: DownloadFileOptions): Promise<{
67
+ errMsg: string;
68
+ tempFilePath: string;
69
+ statusCode: number;
70
+ }>;
71
+ declare function uploadFile(options?: UploadFileOptions): Promise<{
72
+ errMsg: string;
73
+ data: string;
74
+ statusCode: number;
75
+ header: Record<string, string>;
76
+ }>;
77
+ //#endregion
78
+ export { 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 };
79
+ //# sourceMappingURL=runtimeDataApi.d.mts.map