@weapp-vite/web 1.3.19 → 1.3.20

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 (103) hide show
  1. package/dist/compiler/wxml/attributes.mjs.map +1 -1
  2. package/dist/compiler/wxml/compile.mjs.map +1 -1
  3. package/dist/compiler/wxml/dependency.mjs.map +1 -1
  4. package/dist/compiler/wxml/interpolation.mjs.map +1 -1
  5. package/dist/compiler/wxml/navigation.mjs.map +1 -1
  6. package/dist/compiler/wxml/parser.mjs.map +1 -1
  7. package/dist/compiler/wxml/renderer.mjs.map +1 -1
  8. package/dist/compiler/wxml/specialNodes.mjs.map +1 -1
  9. package/dist/compiler/wxs.mjs.map +1 -1
  10. package/dist/css/wxss.mjs.map +1 -1
  11. package/dist/plugin/entry.mjs.map +1 -1
  12. package/dist/plugin/files.mjs.map +1 -1
  13. package/dist/plugin/index.mjs.map +1 -1
  14. package/dist/plugin/navigation.mjs.map +1 -1
  15. package/dist/plugin/path.mjs.map +1 -1
  16. package/dist/plugin/register.mjs.map +1 -1
  17. package/dist/plugin/scan.mjs.map +1 -1
  18. package/dist/plugin/scanConfig.mjs.map +1 -1
  19. package/dist/plugin/state.mjs.map +1 -1
  20. package/dist/runtime/button/helpers.mjs.map +1 -1
  21. package/dist/runtime/button/index.mjs.map +1 -1
  22. package/dist/runtime/button/style.mjs.map +1 -1
  23. package/dist/runtime/component/behavior.mjs.map +1 -1
  24. package/dist/runtime/component/dom.mjs.map +1 -1
  25. package/dist/runtime/component/element.mjs +3 -2
  26. package/dist/runtime/component/element.mjs.map +1 -1
  27. package/dist/runtime/component/events.mjs.map +1 -1
  28. package/dist/runtime/component/index.mjs.map +1 -1
  29. package/dist/runtime/component/state.mjs +2 -1
  30. package/dist/runtime/component/state.mjs.map +1 -1
  31. package/dist/runtime/component/utils.mjs.map +1 -1
  32. package/dist/runtime/execution.mjs.map +1 -1
  33. package/dist/runtime/legacyTemplate/dom.mjs.map +1 -1
  34. package/dist/runtime/legacyTemplate/expression.mjs.map +1 -1
  35. package/dist/runtime/legacyTemplate/index.mjs.map +1 -1
  36. package/dist/runtime/navigationBar/index.mjs.map +1 -1
  37. package/dist/runtime/polyfill/ad.mjs.map +1 -1
  38. package/dist/runtime/polyfill/appState.mjs.map +1 -1
  39. package/dist/runtime/polyfill/async.mjs.map +1 -1
  40. package/dist/runtime/polyfill/auth.mjs.map +1 -1
  41. package/dist/runtime/polyfill/authApi.mjs.map +1 -1
  42. package/dist/runtime/polyfill/background.mjs.map +1 -1
  43. package/dist/runtime/polyfill/canvasContext.mjs.map +1 -1
  44. package/dist/runtime/polyfill/capability.mjs.map +1 -1
  45. package/dist/runtime/polyfill/cloud.mjs.map +1 -1
  46. package/dist/runtime/polyfill/device.mjs.map +1 -1
  47. package/dist/runtime/polyfill/deviceApi.mjs.map +1 -1
  48. package/dist/runtime/polyfill/deviceAuthSystemApi.mjs.map +1 -1
  49. package/dist/runtime/polyfill/filePicker.mjs.map +1 -1
  50. package/dist/runtime/polyfill/fileSystemManager.mjs.map +1 -1
  51. package/dist/runtime/polyfill/files.mjs.map +1 -1
  52. package/dist/runtime/polyfill/index.mjs.map +1 -1
  53. package/dist/runtime/polyfill/interaction.mjs.map +1 -1
  54. package/dist/runtime/polyfill/interactionApi.mjs.map +1 -1
  55. package/dist/runtime/polyfill/location.mjs.map +1 -1
  56. package/dist/runtime/polyfill/locationApi.mjs.map +1 -1
  57. package/dist/runtime/polyfill/mediaActions.mjs.map +1 -1
  58. package/dist/runtime/polyfill/mediaApi/file.mjs.map +1 -1
  59. package/dist/runtime/polyfill/mediaApi/info.mjs.map +1 -1
  60. package/dist/runtime/polyfill/mediaApi/picker.mjs.map +1 -1
  61. package/dist/runtime/polyfill/mediaApi/preview.mjs.map +1 -1
  62. package/dist/runtime/polyfill/mediaApi/process.mjs.map +1 -1
  63. package/dist/runtime/polyfill/mediaInfo.mjs.map +1 -1
  64. package/dist/runtime/polyfill/mediaPicker.mjs.map +1 -1
  65. package/dist/runtime/polyfill/mediaProcess.mjs.map +1 -1
  66. package/dist/runtime/polyfill/menuApi.mjs.map +1 -1
  67. package/dist/runtime/polyfill/navigationBarRuntime.mjs.map +1 -1
  68. package/dist/runtime/polyfill/network/request.mjs.map +1 -1
  69. package/dist/runtime/polyfill/network/requestBridge.mjs.map +1 -1
  70. package/dist/runtime/polyfill/network/status.mjs.map +1 -1
  71. package/dist/runtime/polyfill/platformApi.mjs.map +1 -1
  72. package/dist/runtime/polyfill/platformRuntime.mjs.map +1 -1
  73. package/dist/runtime/polyfill/routeRuntime/dom.mjs.map +1 -1
  74. package/dist/runtime/polyfill/routeRuntime/lifecycle.mjs.map +1 -1
  75. package/dist/runtime/polyfill/routeRuntime/options.mjs.map +1 -1
  76. package/dist/runtime/polyfill/routeRuntime/url.mjs.map +1 -1
  77. package/dist/runtime/polyfill/routeRuntime.mjs.map +1 -1
  78. package/dist/runtime/polyfill/runtimeCapabilityApi.mjs.map +1 -1
  79. package/dist/runtime/polyfill/runtimeDataApi.mjs.map +1 -1
  80. package/dist/runtime/polyfill/runtimeInfra.mjs.map +1 -1
  81. package/dist/runtime/polyfill/runtimeOps.mjs.map +1 -1
  82. package/dist/runtime/polyfill/selectorQuery.mjs.map +1 -1
  83. package/dist/runtime/polyfill/storage.mjs.map +1 -1
  84. package/dist/runtime/polyfill/storageAsync.mjs.map +1 -1
  85. package/dist/runtime/polyfill/subscribe.mjs.map +1 -1
  86. package/dist/runtime/polyfill/system.mjs.map +1 -1
  87. package/dist/runtime/polyfill/systemApi.mjs.map +1 -1
  88. package/dist/runtime/polyfill/ui.mjs.map +1 -1
  89. package/dist/runtime/polyfill/uiFeedback.mjs.map +1 -1
  90. package/dist/runtime/polyfill/uiMediaApi.mjs.map +1 -1
  91. package/dist/runtime/polyfill/videoContext.mjs.map +1 -1
  92. package/dist/runtime/polyfill/vkSession.mjs.map +1 -1
  93. package/dist/runtime/polyfill/windowResize.mjs.map +1 -1
  94. package/dist/runtime/polyfill/worker.mjs.map +1 -1
  95. package/dist/runtime/renderContext.mjs.map +1 -1
  96. package/dist/runtime/rpx.mjs.map +1 -1
  97. package/dist/runtime/style.mjs.map +1 -1
  98. package/dist/runtime/utils/object.mjs +8 -0
  99. package/dist/runtime/utils/object.mjs.map +1 -0
  100. package/dist/runtime/warning.mjs.map +1 -1
  101. package/dist/shared/slugify.mjs.map +1 -1
  102. package/dist/shared/wxml.mjs.map +1 -1
  103. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"navigationBarRuntime.mjs","names":[],"sources":["../../../src/runtime/polyfill/navigationBarRuntime.ts"],"sourcesContent":["interface RuntimeWarningOptions {\n key: string\n context: string\n}\n\ntype RuntimeWarningEmitter = (message: string, options: RuntimeWarningOptions) => void\n\ninterface PageLike extends HTMLElement {\n renderRoot?: ShadowRoot | HTMLElement\n}\n\nfunction getActiveNavigationBar(pages: PageLike[]) {\n const current = pages[pages.length - 1]\n if (!current) {\n return undefined\n }\n const renderRoot = current.renderRoot\n ?? current.shadowRoot\n ?? current\n if (!renderRoot || typeof (renderRoot as ParentNode).querySelector !== 'function') {\n return undefined\n }\n return (renderRoot as ParentNode).querySelector('weapp-navigation-bar') as HTMLElement | null\n}\n\nfunction warnNavigationBarMissing(emitWarning: RuntimeWarningEmitter, action: string) {\n emitWarning(`[@weapp-vite/web] ${action} 需要默认导航栏支持,但当前页面未渲染 weapp-navigation-bar。`, {\n key: 'navigation-bar-missing',\n context: 'runtime:navigation',\n })\n}\n\nexport function createNavigationBarRuntimeBridge(\n getCurrentPages: () => PageLike[],\n emitWarning: RuntimeWarningEmitter,\n) {\n const navigationBarActionPrefix = 'miniProgram.'\n\n return {\n setNavigationBarTitle(options: { title: string }) {\n const bar = getActiveNavigationBar(getCurrentPages())\n if (!bar) {\n warnNavigationBarMissing(emitWarning, `${navigationBarActionPrefix}setNavigationBarTitle`)\n return Promise.resolve()\n }\n if (options?.title !== undefined) {\n bar.setAttribute('title', options.title)\n }\n return Promise.resolve()\n },\n setNavigationBarColor(options: {\n frontColor?: string\n backgroundColor?: string\n animation?: { duration?: number, timingFunction?: string }\n }) {\n const bar = getActiveNavigationBar(getCurrentPages())\n if (!bar) {\n warnNavigationBarMissing(emitWarning, `${navigationBarActionPrefix}setNavigationBarColor`)\n return Promise.resolve()\n }\n if (options?.frontColor) {\n bar.setAttribute('front-color', options.frontColor)\n }\n if (options?.backgroundColor) {\n bar.setAttribute('background-color', options.backgroundColor)\n }\n if (options?.animation) {\n const duration = typeof options.animation.duration === 'number'\n ? `${options.animation.duration}ms`\n : undefined\n const easing = options.animation.timingFunction\n if (duration) {\n bar.style.setProperty('--weapp-nav-transition-duration', duration)\n }\n if (easing) {\n bar.style.setProperty('--weapp-nav-transition-easing', easing)\n }\n }\n return Promise.resolve()\n },\n showNavigationBarLoading() {\n const bar = getActiveNavigationBar(getCurrentPages())\n if (!bar) {\n warnNavigationBarMissing(emitWarning, `${navigationBarActionPrefix}showNavigationBarLoading`)\n return Promise.resolve()\n }\n bar.setAttribute('loading', 'true')\n return Promise.resolve()\n },\n hideNavigationBarLoading() {\n const bar = getActiveNavigationBar(getCurrentPages())\n if (!bar) {\n warnNavigationBarMissing(emitWarning, `${navigationBarActionPrefix}hideNavigationBarLoading`)\n return Promise.resolve()\n }\n bar.removeAttribute('loading')\n return Promise.resolve()\n },\n }\n}\n"],"mappings":";AAWA,SAAS,uBAAuB,OAAmB;CACjD,MAAM,UAAU,MAAM,MAAM,SAAS;AACrC,KAAI,CAAC,QACH;CAEF,MAAM,aAAa,QAAQ,cACtB,QAAQ,cACR;AACL,KAAI,CAAC,cAAc,OAAQ,WAA0B,kBAAkB,WACrE;AAEF,QAAQ,WAA0B,cAAc,uBAAuB;;AAGzE,SAAS,yBAAyB,aAAoC,QAAgB;AACpF,aAAY,qBAAqB,OAAO,4CAA4C;EAClF,KAAK;EACL,SAAS;EACV,CAAC;;AAGJ,SAAgB,iCACd,iBACA,aACA;CACA,MAAM,4BAA4B;AAElC,QAAO;EACL,sBAAsB,SAA4B;GAChD,MAAM,MAAM,uBAAuB,iBAAiB,CAAC;AACrD,OAAI,CAAC,KAAK;AACR,6BAAyB,aAAa,GAAG,0BAA0B,uBAAuB;AAC1F,WAAO,QAAQ,SAAS;;AAE1B,OAAI,SAAS,UAAU,OACrB,KAAI,aAAa,SAAS,QAAQ,MAAM;AAE1C,UAAO,QAAQ,SAAS;;EAE1B,sBAAsB,SAInB;GACD,MAAM,MAAM,uBAAuB,iBAAiB,CAAC;AACrD,OAAI,CAAC,KAAK;AACR,6BAAyB,aAAa,GAAG,0BAA0B,uBAAuB;AAC1F,WAAO,QAAQ,SAAS;;AAE1B,OAAI,SAAS,WACX,KAAI,aAAa,eAAe,QAAQ,WAAW;AAErD,OAAI,SAAS,gBACX,KAAI,aAAa,oBAAoB,QAAQ,gBAAgB;AAE/D,OAAI,SAAS,WAAW;IACtB,MAAM,WAAW,OAAO,QAAQ,UAAU,aAAa,WACnD,GAAG,QAAQ,UAAU,SAAS,MAC9B;IACJ,MAAM,SAAS,QAAQ,UAAU;AACjC,QAAI,SACF,KAAI,MAAM,YAAY,mCAAmC,SAAS;AAEpE,QAAI,OACF,KAAI,MAAM,YAAY,iCAAiC,OAAO;;AAGlE,UAAO,QAAQ,SAAS;;EAE1B,2BAA2B;GACzB,MAAM,MAAM,uBAAuB,iBAAiB,CAAC;AACrD,OAAI,CAAC,KAAK;AACR,6BAAyB,aAAa,GAAG,0BAA0B,0BAA0B;AAC7F,WAAO,QAAQ,SAAS;;AAE1B,OAAI,aAAa,WAAW,OAAO;AACnC,UAAO,QAAQ,SAAS;;EAE1B,2BAA2B;GACzB,MAAM,MAAM,uBAAuB,iBAAiB,CAAC;AACrD,OAAI,CAAC,KAAK;AACR,6BAAyB,aAAa,GAAG,0BAA0B,0BAA0B;AAC7F,WAAO,QAAQ,SAAS;;AAE1B,OAAI,gBAAgB,UAAU;AAC9B,UAAO,QAAQ,SAAS;;EAE3B"}
1
+ {"version":3,"file":"navigationBarRuntime.mjs","names":[],"sources":["../../../src/runtime/polyfill/navigationBarRuntime.ts"],"sourcesContent":["interface RuntimeWarningOptions {\n key: string\n context: string\n}\n\ntype RuntimeWarningEmitter = (message: string, options: RuntimeWarningOptions) => void\n\ninterface PageLike extends HTMLElement {\n renderRoot?: ShadowRoot | HTMLElement\n}\n\nfunction getActiveNavigationBar(pages: PageLike[]) {\n const current = pages[pages.length - 1]\n if (!current) {\n return undefined\n }\n const renderRoot = current.renderRoot\n ?? current.shadowRoot\n ?? current\n if (!renderRoot || typeof (renderRoot as ParentNode).querySelector !== 'function') {\n return undefined\n }\n return (renderRoot as ParentNode).querySelector('weapp-navigation-bar') as HTMLElement | null\n}\n\nfunction warnNavigationBarMissing(emitWarning: RuntimeWarningEmitter, action: string) {\n emitWarning(`[@weapp-vite/web] ${action} 需要默认导航栏支持,但当前页面未渲染 weapp-navigation-bar。`, {\n key: 'navigation-bar-missing',\n context: 'runtime:navigation',\n })\n}\n\nexport function createNavigationBarRuntimeBridge(\n getCurrentPages: () => PageLike[],\n emitWarning: RuntimeWarningEmitter,\n) {\n const navigationBarActionPrefix = 'miniProgram.'\n\n return {\n setNavigationBarTitle(options: { title: string }) {\n const bar = getActiveNavigationBar(getCurrentPages())\n if (!bar) {\n warnNavigationBarMissing(emitWarning, `${navigationBarActionPrefix}setNavigationBarTitle`)\n return Promise.resolve()\n }\n if (options?.title !== undefined) {\n bar.setAttribute('title', options.title)\n }\n return Promise.resolve()\n },\n setNavigationBarColor(options: {\n frontColor?: string\n backgroundColor?: string\n animation?: { duration?: number, timingFunction?: string }\n }) {\n const bar = getActiveNavigationBar(getCurrentPages())\n if (!bar) {\n warnNavigationBarMissing(emitWarning, `${navigationBarActionPrefix}setNavigationBarColor`)\n return Promise.resolve()\n }\n if (options?.frontColor) {\n bar.setAttribute('front-color', options.frontColor)\n }\n if (options?.backgroundColor) {\n bar.setAttribute('background-color', options.backgroundColor)\n }\n if (options?.animation) {\n const duration = typeof options.animation.duration === 'number'\n ? `${options.animation.duration}ms`\n : undefined\n const easing = options.animation.timingFunction\n if (duration) {\n bar.style.setProperty('--weapp-nav-transition-duration', duration)\n }\n if (easing) {\n bar.style.setProperty('--weapp-nav-transition-easing', easing)\n }\n }\n return Promise.resolve()\n },\n showNavigationBarLoading() {\n const bar = getActiveNavigationBar(getCurrentPages())\n if (!bar) {\n warnNavigationBarMissing(emitWarning, `${navigationBarActionPrefix}showNavigationBarLoading`)\n return Promise.resolve()\n }\n bar.setAttribute('loading', 'true')\n return Promise.resolve()\n },\n hideNavigationBarLoading() {\n const bar = getActiveNavigationBar(getCurrentPages())\n if (!bar) {\n warnNavigationBarMissing(emitWarning, `${navigationBarActionPrefix}hideNavigationBarLoading`)\n return Promise.resolve()\n }\n bar.removeAttribute('loading')\n return Promise.resolve()\n },\n }\n}\n"],"mappings":";AAWA,SAAS,uBAAuB,OAAmB;CACjD,MAAM,UAAU,MAAM,MAAM,SAAS;CACrC,IAAI,CAAC,SACH;CAEF,MAAM,aAAa,QAAQ,cACtB,QAAQ,cACR;CACL,IAAI,CAAC,cAAc,OAAQ,WAA0B,kBAAkB,YACrE;CAEF,OAAQ,WAA0B,cAAc,uBAAuB;;AAGzE,SAAS,yBAAyB,aAAoC,QAAgB;CACpF,YAAY,qBAAqB,OAAO,4CAA4C;EAClF,KAAK;EACL,SAAS;EACV,CAAC;;AAGJ,SAAgB,iCACd,iBACA,aACA;CACA,MAAM,4BAA4B;CAElC,OAAO;EACL,sBAAsB,SAA4B;GAChD,MAAM,MAAM,uBAAuB,iBAAiB,CAAC;GACrD,IAAI,CAAC,KAAK;IACR,yBAAyB,aAAa,GAAG,0BAA0B,uBAAuB;IAC1F,OAAO,QAAQ,SAAS;;GAE1B,IAAI,SAAS,UAAU,QACrB,IAAI,aAAa,SAAS,QAAQ,MAAM;GAE1C,OAAO,QAAQ,SAAS;;EAE1B,sBAAsB,SAInB;GACD,MAAM,MAAM,uBAAuB,iBAAiB,CAAC;GACrD,IAAI,CAAC,KAAK;IACR,yBAAyB,aAAa,GAAG,0BAA0B,uBAAuB;IAC1F,OAAO,QAAQ,SAAS;;GAE1B,IAAI,SAAS,YACX,IAAI,aAAa,eAAe,QAAQ,WAAW;GAErD,IAAI,SAAS,iBACX,IAAI,aAAa,oBAAoB,QAAQ,gBAAgB;GAE/D,IAAI,SAAS,WAAW;IACtB,MAAM,WAAW,OAAO,QAAQ,UAAU,aAAa,WACnD,GAAG,QAAQ,UAAU,SAAS,MAC9B;IACJ,MAAM,SAAS,QAAQ,UAAU;IACjC,IAAI,UACF,IAAI,MAAM,YAAY,mCAAmC,SAAS;IAEpE,IAAI,QACF,IAAI,MAAM,YAAY,iCAAiC,OAAO;;GAGlE,OAAO,QAAQ,SAAS;;EAE1B,2BAA2B;GACzB,MAAM,MAAM,uBAAuB,iBAAiB,CAAC;GACrD,IAAI,CAAC,KAAK;IACR,yBAAyB,aAAa,GAAG,0BAA0B,0BAA0B;IAC7F,OAAO,QAAQ,SAAS;;GAE1B,IAAI,aAAa,WAAW,OAAO;GACnC,OAAO,QAAQ,SAAS;;EAE1B,2BAA2B;GACzB,MAAM,MAAM,uBAAuB,iBAAiB,CAAC;GACrD,IAAI,CAAC,KAAK;IACR,yBAAyB,aAAa,GAAG,0BAA0B,0BAA0B;IAC7F,OAAO,QAAQ,SAAS;;GAE1B,IAAI,gBAAgB,UAAU;GAC9B,OAAO,QAAQ,SAAS;;EAE3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"request.mjs","names":["runtime"],"sources":["../../../../src/runtime/polyfill/network/request.ts"],"sourcesContent":["import {\n normalizeFilePath,\n resolveUploadFileBlob,\n resolveUploadFileName,\n} from '../files'\n\ninterface RequestParseOptions {\n responseType?: 'text' | 'arraybuffer'\n dataType?: 'json' | 'text'\n}\n\ninterface RequestLikeOptions extends RequestParseOptions {\n url?: string\n method?: string\n header?: Record<string, string>\n data?: unknown\n timeout?: number\n}\n\ninterface DownloadLikeOptions {\n url?: string\n header?: Record<string, string>\n timeout?: number\n}\n\ninterface UploadLikeOptions {\n url?: string\n filePath?: string\n header?: Record<string, string>\n formData?: Record<string, unknown>\n name?: string\n timeout?: number\n}\n\nfunction resolveTimeoutSignal(timeout: number) {\n const controller = typeof AbortController === 'function' ? new AbortController() : undefined\n let timeoutTimer: ReturnType<typeof setTimeout> | undefined\n if (timeout > 0 && controller) {\n timeoutTimer = setTimeout(() => controller.abort(), timeout)\n }\n return {\n signal: controller?.signal,\n clear: () => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n }\n },\n }\n}\n\nexport function getRuntimeFetch() {\n const runtime = globalThis as Record<string, unknown>\n const maybeFetch = runtime.fetch\n if (typeof maybeFetch === 'function') {\n return maybeFetch as typeof fetch\n }\n return undefined\n}\n\nexport function normalizeRequestMethod(method?: string) {\n return (method || 'GET').toUpperCase()\n}\n\nexport function normalizeRequestHeaders(header?: Record<string, string>) {\n if (!header) {\n return {}\n }\n return { ...header }\n}\n\nexport function buildRequestUrl(url: string, method: string, data: unknown) {\n if (method !== 'GET' || data == null) {\n return url\n }\n if (typeof data === 'string') {\n if (!data) {\n return url\n }\n return `${url}${url.includes('?') ? '&' : '?'}${data}`\n }\n if (typeof URLSearchParams !== 'undefined' && data instanceof URLSearchParams) {\n const query = data.toString()\n if (!query) {\n return url\n }\n return `${url}${url.includes('?') ? '&' : '?'}${query}`\n }\n if (typeof data === 'object') {\n const query = new URLSearchParams()\n for (const [key, value] of Object.entries(data as Record<string, unknown>)) {\n query.append(key, value == null ? '' : String(value))\n }\n const queryText = query.toString()\n if (!queryText) {\n return url\n }\n return `${url}${url.includes('?') ? '&' : '?'}${queryText}`\n }\n return url\n}\n\nexport function buildRequestBody(\n method: string,\n data: unknown,\n headers: Record<string, string>,\n) {\n if (method === 'GET' || data == null) {\n return undefined\n }\n if (typeof data === 'string') {\n return data\n }\n if (typeof URLSearchParams !== 'undefined' && data instanceof URLSearchParams) {\n return data\n }\n if (typeof FormData !== 'undefined' && data instanceof FormData) {\n return data\n }\n const contentTypeKey = Object.keys(headers).find(key => key.toLowerCase() === 'content-type')\n const contentType = contentTypeKey ? headers[contentTypeKey] : ''\n if (contentType && !contentType.includes('application/json')) {\n return String(data)\n }\n if (!contentTypeKey) {\n headers['content-type'] = 'application/json'\n }\n return JSON.stringify(data)\n}\n\nexport async function parseRequestResponseData(\n response: Response,\n options?: RequestParseOptions,\n) {\n if (options?.responseType === 'arraybuffer') {\n return response.arrayBuffer()\n }\n const contentType = response.headers.get('content-type') ?? ''\n if (options?.dataType === 'text') {\n return response.text()\n }\n if (options?.dataType === 'json' || contentType.includes('application/json')) {\n return response.json()\n }\n return response.text()\n}\n\nexport function createBlobObjectUrl(blob: Blob) {\n const runtimeUrl = (globalThis as {\n URL?: {\n createObjectURL?: (value: Blob) => string\n }\n }).URL\n if (runtimeUrl && typeof runtimeUrl.createObjectURL === 'function') {\n return runtimeUrl.createObjectURL(blob)\n }\n return ''\n}\n\nexport function collectResponseHeaders(response: {\n headers: {\n forEach: (callback: (value: string, key: string) => void) => void\n }\n}) {\n const headers: Record<string, string> = {}\n response.headers.forEach((value, key) => {\n headers[key] = value\n })\n return headers\n}\n\nexport function stripUploadContentType(headers: Record<string, string>) {\n const normalized = { ...headers }\n for (const key of Object.keys(normalized)) {\n if (key.toLowerCase() === 'content-type') {\n delete normalized[key]\n }\n }\n return normalized\n}\n\nexport async function performRequestByFetch(options?: RequestLikeOptions) {\n const url = options?.url?.trim() ?? ''\n if (!url) {\n throw new TypeError('invalid url')\n }\n const runtimeFetch = getRuntimeFetch()\n if (!runtimeFetch) {\n throw new TypeError('fetch is unavailable')\n }\n const method = normalizeRequestMethod(options?.method)\n const headers = normalizeRequestHeaders(options?.header)\n const requestUrl = buildRequestUrl(url, method, options?.data)\n const body = buildRequestBody(method, options?.data, headers)\n const timeout = typeof options?.timeout === 'number' && options.timeout > 0 ? options.timeout : 0\n const timeoutControl = resolveTimeoutSignal(timeout)\n\n try {\n const response = await runtimeFetch(requestUrl, {\n method,\n headers,\n body,\n signal: timeoutControl.signal,\n })\n const responseData = await parseRequestResponseData(response, options)\n return {\n data: responseData,\n statusCode: response.status,\n header: collectResponseHeaders(response),\n }\n }\n finally {\n timeoutControl.clear()\n }\n}\n\nexport async function performDownloadByFetch(options?: DownloadLikeOptions) {\n const url = options?.url?.trim() ?? ''\n if (!url) {\n throw new TypeError('invalid url')\n }\n const runtimeFetch = getRuntimeFetch()\n if (!runtimeFetch) {\n throw new TypeError('fetch is unavailable')\n }\n const headers = normalizeRequestHeaders(options?.header)\n const timeout = typeof options?.timeout === 'number' && options.timeout > 0 ? options.timeout : 0\n const timeoutControl = resolveTimeoutSignal(timeout)\n\n try {\n const response = await runtimeFetch(url, {\n method: 'GET',\n headers,\n signal: timeoutControl.signal,\n })\n const blob = await response.blob()\n return {\n tempFilePath: createBlobObjectUrl(blob) || url,\n statusCode: response.status,\n }\n }\n finally {\n timeoutControl.clear()\n }\n}\n\nexport async function performUploadByFetch(options?: UploadLikeOptions) {\n const url = options?.url?.trim() ?? ''\n if (!url) {\n throw new TypeError('invalid url')\n }\n const filePath = normalizeFilePath(options?.filePath)\n if (!filePath) {\n throw new TypeError('invalid filePath')\n }\n const runtimeFetch = getRuntimeFetch()\n if (!runtimeFetch) {\n throw new TypeError('fetch is unavailable')\n }\n const FormDataCtor = (globalThis as { FormData?: typeof FormData }).FormData\n if (typeof FormDataCtor !== 'function') {\n throw new TypeError('FormData is unavailable')\n }\n\n const headers = stripUploadContentType(normalizeRequestHeaders(options?.header))\n const formData = new FormDataCtor()\n for (const [key, value] of Object.entries(options?.formData ?? {})) {\n formData.append(key, value == null ? '' : String(value))\n }\n const blob = await resolveUploadFileBlob(filePath, runtimeFetch)\n formData.append(options?.name?.trim() || 'file', blob, resolveUploadFileName(filePath))\n\n const timeout = typeof options?.timeout === 'number' && options.timeout > 0 ? options.timeout : 0\n const timeoutControl = resolveTimeoutSignal(timeout)\n\n try {\n const response = await runtimeFetch(url, {\n method: 'POST',\n headers,\n body: formData,\n signal: timeoutControl.signal,\n })\n const data = await response.text()\n return {\n data,\n statusCode: response.status,\n header: collectResponseHeaders(response),\n }\n }\n finally {\n timeoutControl.clear()\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"request.mjs","names":["runtime"],"sources":["../../../../src/runtime/polyfill/network/request.ts"],"sourcesContent":["import {\n normalizeFilePath,\n resolveUploadFileBlob,\n resolveUploadFileName,\n} from '../files'\n\ninterface RequestParseOptions {\n responseType?: 'text' | 'arraybuffer'\n dataType?: 'json' | 'text'\n}\n\ninterface RequestLikeOptions extends RequestParseOptions {\n url?: string\n method?: string\n header?: Record<string, string>\n data?: unknown\n timeout?: number\n}\n\ninterface DownloadLikeOptions {\n url?: string\n header?: Record<string, string>\n timeout?: number\n}\n\ninterface UploadLikeOptions {\n url?: string\n filePath?: string\n header?: Record<string, string>\n formData?: Record<string, unknown>\n name?: string\n timeout?: number\n}\n\nfunction resolveTimeoutSignal(timeout: number) {\n const controller = typeof AbortController === 'function' ? new AbortController() : undefined\n let timeoutTimer: ReturnType<typeof setTimeout> | undefined\n if (timeout > 0 && controller) {\n timeoutTimer = setTimeout(() => controller.abort(), timeout)\n }\n return {\n signal: controller?.signal,\n clear: () => {\n if (timeoutTimer) {\n clearTimeout(timeoutTimer)\n }\n },\n }\n}\n\nexport function getRuntimeFetch() {\n const runtime = globalThis as Record<string, unknown>\n const maybeFetch = runtime.fetch\n if (typeof maybeFetch === 'function') {\n return maybeFetch as typeof fetch\n }\n return undefined\n}\n\nexport function normalizeRequestMethod(method?: string) {\n return (method || 'GET').toUpperCase()\n}\n\nexport function normalizeRequestHeaders(header?: Record<string, string>) {\n if (!header) {\n return {}\n }\n return { ...header }\n}\n\nexport function buildRequestUrl(url: string, method: string, data: unknown) {\n if (method !== 'GET' || data == null) {\n return url\n }\n if (typeof data === 'string') {\n if (!data) {\n return url\n }\n return `${url}${url.includes('?') ? '&' : '?'}${data}`\n }\n if (typeof URLSearchParams !== 'undefined' && data instanceof URLSearchParams) {\n const query = data.toString()\n if (!query) {\n return url\n }\n return `${url}${url.includes('?') ? '&' : '?'}${query}`\n }\n if (typeof data === 'object') {\n const query = new URLSearchParams()\n for (const [key, value] of Object.entries(data as Record<string, unknown>)) {\n query.append(key, value == null ? '' : String(value))\n }\n const queryText = query.toString()\n if (!queryText) {\n return url\n }\n return `${url}${url.includes('?') ? '&' : '?'}${queryText}`\n }\n return url\n}\n\nexport function buildRequestBody(\n method: string,\n data: unknown,\n headers: Record<string, string>,\n) {\n if (method === 'GET' || data == null) {\n return undefined\n }\n if (typeof data === 'string') {\n return data\n }\n if (typeof URLSearchParams !== 'undefined' && data instanceof URLSearchParams) {\n return data\n }\n if (typeof FormData !== 'undefined' && data instanceof FormData) {\n return data\n }\n const contentTypeKey = Object.keys(headers).find(key => key.toLowerCase() === 'content-type')\n const contentType = contentTypeKey ? headers[contentTypeKey] : ''\n if (contentType && !contentType.includes('application/json')) {\n return String(data)\n }\n if (!contentTypeKey) {\n headers['content-type'] = 'application/json'\n }\n return JSON.stringify(data)\n}\n\nexport async function parseRequestResponseData(\n response: Response,\n options?: RequestParseOptions,\n) {\n if (options?.responseType === 'arraybuffer') {\n return response.arrayBuffer()\n }\n const contentType = response.headers.get('content-type') ?? ''\n if (options?.dataType === 'text') {\n return response.text()\n }\n if (options?.dataType === 'json' || contentType.includes('application/json')) {\n return response.json()\n }\n return response.text()\n}\n\nexport function createBlobObjectUrl(blob: Blob) {\n const runtimeUrl = (globalThis as {\n URL?: {\n createObjectURL?: (value: Blob) => string\n }\n }).URL\n if (runtimeUrl && typeof runtimeUrl.createObjectURL === 'function') {\n return runtimeUrl.createObjectURL(blob)\n }\n return ''\n}\n\nexport function collectResponseHeaders(response: {\n headers: {\n forEach: (callback: (value: string, key: string) => void) => void\n }\n}) {\n const headers: Record<string, string> = {}\n response.headers.forEach((value, key) => {\n headers[key] = value\n })\n return headers\n}\n\nexport function stripUploadContentType(headers: Record<string, string>) {\n const normalized = { ...headers }\n for (const key of Object.keys(normalized)) {\n if (key.toLowerCase() === 'content-type') {\n delete normalized[key]\n }\n }\n return normalized\n}\n\nexport async function performRequestByFetch(options?: RequestLikeOptions) {\n const url = options?.url?.trim() ?? ''\n if (!url) {\n throw new TypeError('invalid url')\n }\n const runtimeFetch = getRuntimeFetch()\n if (!runtimeFetch) {\n throw new TypeError('fetch is unavailable')\n }\n const method = normalizeRequestMethod(options?.method)\n const headers = normalizeRequestHeaders(options?.header)\n const requestUrl = buildRequestUrl(url, method, options?.data)\n const body = buildRequestBody(method, options?.data, headers)\n const timeout = typeof options?.timeout === 'number' && options.timeout > 0 ? options.timeout : 0\n const timeoutControl = resolveTimeoutSignal(timeout)\n\n try {\n const response = await runtimeFetch(requestUrl, {\n method,\n headers,\n body,\n signal: timeoutControl.signal,\n })\n const responseData = await parseRequestResponseData(response, options)\n return {\n data: responseData,\n statusCode: response.status,\n header: collectResponseHeaders(response),\n }\n }\n finally {\n timeoutControl.clear()\n }\n}\n\nexport async function performDownloadByFetch(options?: DownloadLikeOptions) {\n const url = options?.url?.trim() ?? ''\n if (!url) {\n throw new TypeError('invalid url')\n }\n const runtimeFetch = getRuntimeFetch()\n if (!runtimeFetch) {\n throw new TypeError('fetch is unavailable')\n }\n const headers = normalizeRequestHeaders(options?.header)\n const timeout = typeof options?.timeout === 'number' && options.timeout > 0 ? options.timeout : 0\n const timeoutControl = resolveTimeoutSignal(timeout)\n\n try {\n const response = await runtimeFetch(url, {\n method: 'GET',\n headers,\n signal: timeoutControl.signal,\n })\n const blob = await response.blob()\n return {\n tempFilePath: createBlobObjectUrl(blob) || url,\n statusCode: response.status,\n }\n }\n finally {\n timeoutControl.clear()\n }\n}\n\nexport async function performUploadByFetch(options?: UploadLikeOptions) {\n const url = options?.url?.trim() ?? ''\n if (!url) {\n throw new TypeError('invalid url')\n }\n const filePath = normalizeFilePath(options?.filePath)\n if (!filePath) {\n throw new TypeError('invalid filePath')\n }\n const runtimeFetch = getRuntimeFetch()\n if (!runtimeFetch) {\n throw new TypeError('fetch is unavailable')\n }\n const FormDataCtor = (globalThis as { FormData?: typeof FormData }).FormData\n if (typeof FormDataCtor !== 'function') {\n throw new TypeError('FormData is unavailable')\n }\n\n const headers = stripUploadContentType(normalizeRequestHeaders(options?.header))\n const formData = new FormDataCtor()\n for (const [key, value] of Object.entries(options?.formData ?? {})) {\n formData.append(key, value == null ? '' : String(value))\n }\n const blob = await resolveUploadFileBlob(filePath, runtimeFetch)\n formData.append(options?.name?.trim() || 'file', blob, resolveUploadFileName(filePath))\n\n const timeout = typeof options?.timeout === 'number' && options.timeout > 0 ? options.timeout : 0\n const timeoutControl = resolveTimeoutSignal(timeout)\n\n try {\n const response = await runtimeFetch(url, {\n method: 'POST',\n headers,\n body: formData,\n signal: timeoutControl.signal,\n })\n const data = await response.text()\n return {\n data,\n statusCode: response.status,\n header: collectResponseHeaders(response),\n }\n }\n finally {\n timeoutControl.clear()\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"requestBridge.mjs","names":[],"sources":["../../../../src/runtime/polyfill/network/requestBridge.ts"],"sourcesContent":["import type { DownloadFileOptions, RequestOptions, UploadFileOptions } from '../types/common'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from '../async'\nimport {\n performDownloadByFetch,\n performRequestByFetch,\n performUploadByFetch,\n} from './request'\n\nexport async function requestByFetchBridge(options?: RequestOptions) {\n try {\n const response = await performRequestByFetch(options)\n return callMiniProgramAsyncSuccess(options, {\n errMsg: 'request:ok',\n data: response.data,\n statusCode: response.statusCode,\n header: response.header,\n })\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n return Promise.reject(callMiniProgramAsyncFailure(options, `request:fail ${message}`))\n }\n}\n\nexport async function downloadFileByFetchBridge(options?: DownloadFileOptions) {\n try {\n const response = await performDownloadByFetch(options)\n return callMiniProgramAsyncSuccess(options, {\n errMsg: 'downloadFile:ok',\n tempFilePath: response.tempFilePath,\n statusCode: response.statusCode,\n })\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n return Promise.reject(callMiniProgramAsyncFailure(options, `downloadFile:fail ${message}`))\n }\n}\n\nexport async function uploadFileByFetchBridge(options?: UploadFileOptions) {\n try {\n const response = await performUploadByFetch(options)\n return callMiniProgramAsyncSuccess(options, {\n errMsg: 'uploadFile:ok',\n data: response.data,\n statusCode: response.statusCode,\n header: response.header,\n })\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n return Promise.reject(callMiniProgramAsyncFailure(options, `uploadFile:fail ${message}`))\n }\n}\n"],"mappings":";;;;AAWA,eAAsB,qBAAqB,SAA0B;AACnE,KAAI;EACF,MAAM,WAAW,MAAM,sBAAsB,QAAQ;AACrD,SAAO,4BAA4B,SAAS;GAC1C,QAAQ;GACR,MAAM,SAAS;GACf,YAAY,SAAS;GACrB,QAAQ,SAAS;GAClB,CAAC;UAEG,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;AACtE,SAAO,QAAQ,OAAO,4BAA4B,SAAS,gBAAgB,UAAU,CAAC;;;AAI1F,eAAsB,0BAA0B,SAA+B;AAC7E,KAAI;EACF,MAAM,WAAW,MAAM,uBAAuB,QAAQ;AACtD,SAAO,4BAA4B,SAAS;GAC1C,QAAQ;GACR,cAAc,SAAS;GACvB,YAAY,SAAS;GACtB,CAAC;UAEG,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;AACtE,SAAO,QAAQ,OAAO,4BAA4B,SAAS,qBAAqB,UAAU,CAAC;;;AAI/F,eAAsB,wBAAwB,SAA6B;AACzE,KAAI;EACF,MAAM,WAAW,MAAM,qBAAqB,QAAQ;AACpD,SAAO,4BAA4B,SAAS;GAC1C,QAAQ;GACR,MAAM,SAAS;GACf,YAAY,SAAS;GACrB,QAAQ,SAAS;GAClB,CAAC;UAEG,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;AACtE,SAAO,QAAQ,OAAO,4BAA4B,SAAS,mBAAmB,UAAU,CAAC"}
1
+ {"version":3,"file":"requestBridge.mjs","names":[],"sources":["../../../../src/runtime/polyfill/network/requestBridge.ts"],"sourcesContent":["import type { DownloadFileOptions, RequestOptions, UploadFileOptions } from '../types/common'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from '../async'\nimport {\n performDownloadByFetch,\n performRequestByFetch,\n performUploadByFetch,\n} from './request'\n\nexport async function requestByFetchBridge(options?: RequestOptions) {\n try {\n const response = await performRequestByFetch(options)\n return callMiniProgramAsyncSuccess(options, {\n errMsg: 'request:ok',\n data: response.data,\n statusCode: response.statusCode,\n header: response.header,\n })\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n return Promise.reject(callMiniProgramAsyncFailure(options, `request:fail ${message}`))\n }\n}\n\nexport async function downloadFileByFetchBridge(options?: DownloadFileOptions) {\n try {\n const response = await performDownloadByFetch(options)\n return callMiniProgramAsyncSuccess(options, {\n errMsg: 'downloadFile:ok',\n tempFilePath: response.tempFilePath,\n statusCode: response.statusCode,\n })\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n return Promise.reject(callMiniProgramAsyncFailure(options, `downloadFile:fail ${message}`))\n }\n}\n\nexport async function uploadFileByFetchBridge(options?: UploadFileOptions) {\n try {\n const response = await performUploadByFetch(options)\n return callMiniProgramAsyncSuccess(options, {\n errMsg: 'uploadFile:ok',\n data: response.data,\n statusCode: response.statusCode,\n header: response.header,\n })\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n return Promise.reject(callMiniProgramAsyncFailure(options, `uploadFile:fail ${message}`))\n }\n}\n"],"mappings":";;;;AAWA,eAAsB,qBAAqB,SAA0B;CACnE,IAAI;EACF,MAAM,WAAW,MAAM,sBAAsB,QAAQ;EACrD,OAAO,4BAA4B,SAAS;GAC1C,QAAQ;GACR,MAAM,SAAS;GACf,YAAY,SAAS;GACrB,QAAQ,SAAS;GAClB,CAAC;UAEG,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;EACtE,OAAO,QAAQ,OAAO,4BAA4B,SAAS,gBAAgB,UAAU,CAAC;;;AAI1F,eAAsB,0BAA0B,SAA+B;CAC7E,IAAI;EACF,MAAM,WAAW,MAAM,uBAAuB,QAAQ;EACtD,OAAO,4BAA4B,SAAS;GAC1C,QAAQ;GACR,cAAc,SAAS;GACvB,YAAY,SAAS;GACtB,CAAC;UAEG,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;EACtE,OAAO,QAAQ,OAAO,4BAA4B,SAAS,qBAAqB,UAAU,CAAC;;;AAI/F,eAAsB,wBAAwB,SAA6B;CACzE,IAAI;EACF,MAAM,WAAW,MAAM,qBAAqB,QAAQ;EACpD,OAAO,4BAA4B,SAAS;GAC1C,QAAQ;GACR,MAAM,SAAS;GACf,YAAY,SAAS;GACrB,QAAQ,SAAS;GAClB,CAAC;UAEG,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;EACtE,OAAO,QAAQ,OAAO,4BAA4B,SAAS,mBAAmB,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.mjs","names":[],"sources":["../../../../src/runtime/polyfill/network/status.ts"],"sourcesContent":["type NetworkType = 'wifi' | '2g' | '3g' | '4g' | '5g' | 'unknown' | 'none'\n\ninterface NetworkStatusSnapshot {\n isConnected: boolean\n networkType: NetworkType\n}\n\ninterface NavigatorConnection {\n type?: string\n effectiveType?: string\n addEventListener?: (type: string, listener: () => void) => void\n}\n\nexport function getNavigatorConnection() {\n const runtimeNavigator = (typeof navigator !== 'undefined' ? navigator : undefined) as (Navigator & {\n connection?: NavigatorConnection\n mozConnection?: NavigatorConnection\n webkitConnection?: NavigatorConnection\n }) | undefined\n return runtimeNavigator?.connection ?? runtimeNavigator?.mozConnection ?? runtimeNavigator?.webkitConnection\n}\n\nfunction resolveNetworkType(connection: NavigatorConnection | undefined, isConnected: boolean): NetworkType {\n if (!isConnected) {\n return 'none'\n }\n const type = typeof connection?.type === 'string' ? connection.type.toLowerCase() : ''\n const effectiveType = typeof connection?.effectiveType === 'string'\n ? connection.effectiveType.toLowerCase()\n : ''\n if (type.includes('wifi') || type.includes('ethernet')) {\n return 'wifi'\n }\n if (effectiveType.includes('5g')) {\n return '5g'\n }\n if (effectiveType.includes('4g')) {\n return '4g'\n }\n if (effectiveType.includes('3g')) {\n return '3g'\n }\n if (effectiveType.includes('2g') || effectiveType.includes('slow-2g')) {\n return '2g'\n }\n if (type.includes('cellular')) {\n return 'unknown'\n }\n return 'unknown'\n}\n\nexport function readNetworkStatusSnapshot(): NetworkStatusSnapshot {\n const runtimeNavigator = typeof navigator !== 'undefined' ? navigator : undefined\n const isConnected = typeof runtimeNavigator?.onLine === 'boolean' ? runtimeNavigator.onLine : true\n const connection = getNavigatorConnection()\n return {\n isConnected,\n networkType: resolveNetworkType(connection, isConnected),\n }\n}\n\nconst networkStatusCallbacks = new Set<(result: NetworkStatusSnapshot) => void>()\nlet networkStatusBridgeBound = false\n\nfunction notifyNetworkStatusChange() {\n if (networkStatusCallbacks.size === 0) {\n return\n }\n const status = readNetworkStatusSnapshot()\n for (const callback of networkStatusCallbacks) {\n callback(status)\n }\n}\n\nfunction bindNetworkStatusBridge() {\n if (networkStatusBridgeBound) {\n return\n }\n networkStatusBridgeBound = true\n const runtimeTarget = globalThis as {\n addEventListener?: (type: string, listener: () => void) => void\n }\n runtimeTarget.addEventListener?.('online', notifyNetworkStatusChange)\n runtimeTarget.addEventListener?.('offline', notifyNetworkStatusChange)\n const connection = getNavigatorConnection()\n connection?.addEventListener?.('change', notifyNetworkStatusChange)\n}\n\nexport function addNetworkStatusCallback(callback: (result: NetworkStatusSnapshot) => void) {\n bindNetworkStatusBridge()\n networkStatusCallbacks.add(callback)\n}\n\nexport function removeNetworkStatusCallback(callback?: (result: NetworkStatusSnapshot) => void) {\n if (typeof callback !== 'function') {\n networkStatusCallbacks.clear()\n return\n }\n networkStatusCallbacks.delete(callback)\n}\n"],"mappings":";AAaA,SAAgB,yBAAyB;CACvC,MAAM,mBAAoB,OAAO,cAAc,cAAc,YAAY;AAKzE,QAAO,kBAAkB,cAAc,kBAAkB,iBAAiB,kBAAkB;;AAG9F,SAAS,mBAAmB,YAA6C,aAAmC;AAC1G,KAAI,CAAC,YACH,QAAO;CAET,MAAM,OAAO,OAAO,YAAY,SAAS,WAAW,WAAW,KAAK,aAAa,GAAG;CACpF,MAAM,gBAAgB,OAAO,YAAY,kBAAkB,WACvD,WAAW,cAAc,aAAa,GACtC;AACJ,KAAI,KAAK,SAAS,OAAO,IAAI,KAAK,SAAS,WAAW,CACpD,QAAO;AAET,KAAI,cAAc,SAAS,KAAK,CAC9B,QAAO;AAET,KAAI,cAAc,SAAS,KAAK,CAC9B,QAAO;AAET,KAAI,cAAc,SAAS,KAAK,CAC9B,QAAO;AAET,KAAI,cAAc,SAAS,KAAK,IAAI,cAAc,SAAS,UAAU,CACnE,QAAO;AAET,KAAI,KAAK,SAAS,WAAW,CAC3B,QAAO;AAET,QAAO;;AAGT,SAAgB,4BAAmD;CACjE,MAAM,mBAAmB,OAAO,cAAc,cAAc,YAAY;CACxE,MAAM,cAAc,OAAO,kBAAkB,WAAW,YAAY,iBAAiB,SAAS;AAE9F,QAAO;EACL;EACA,aAAa,mBAHI,wBAGyB,EAAE,YAAY;EACzD;;AAGH,MAAM,yCAAyB,IAAI,KAA8C;AACjF,IAAI,2BAA2B;AAE/B,SAAS,4BAA4B;AACnC,KAAI,uBAAuB,SAAS,EAClC;CAEF,MAAM,SAAS,2BAA2B;AAC1C,MAAK,MAAM,YAAY,uBACrB,UAAS,OAAO;;AAIpB,SAAS,0BAA0B;AACjC,KAAI,yBACF;AAEF,4BAA2B;CAC3B,MAAM,gBAAgB;AAGtB,eAAc,mBAAmB,UAAU,0BAA0B;AACrE,eAAc,mBAAmB,WAAW,0BAA0B;AAEtE,CADmB,wBACT,EAAE,mBAAmB,UAAU,0BAA0B;;AAGrE,SAAgB,yBAAyB,UAAmD;AAC1F,0BAAyB;AACzB,wBAAuB,IAAI,SAAS;;AAGtC,SAAgB,4BAA4B,UAAoD;AAC9F,KAAI,OAAO,aAAa,YAAY;AAClC,yBAAuB,OAAO;AAC9B;;AAEF,wBAAuB,OAAO,SAAS"}
1
+ {"version":3,"file":"status.mjs","names":[],"sources":["../../../../src/runtime/polyfill/network/status.ts"],"sourcesContent":["type NetworkType = 'wifi' | '2g' | '3g' | '4g' | '5g' | 'unknown' | 'none'\n\ninterface NetworkStatusSnapshot {\n isConnected: boolean\n networkType: NetworkType\n}\n\ninterface NavigatorConnection {\n type?: string\n effectiveType?: string\n addEventListener?: (type: string, listener: () => void) => void\n}\n\nexport function getNavigatorConnection() {\n const runtimeNavigator = (typeof navigator !== 'undefined' ? navigator : undefined) as (Navigator & {\n connection?: NavigatorConnection\n mozConnection?: NavigatorConnection\n webkitConnection?: NavigatorConnection\n }) | undefined\n return runtimeNavigator?.connection ?? runtimeNavigator?.mozConnection ?? runtimeNavigator?.webkitConnection\n}\n\nfunction resolveNetworkType(connection: NavigatorConnection | undefined, isConnected: boolean): NetworkType {\n if (!isConnected) {\n return 'none'\n }\n const type = typeof connection?.type === 'string' ? connection.type.toLowerCase() : ''\n const effectiveType = typeof connection?.effectiveType === 'string'\n ? connection.effectiveType.toLowerCase()\n : ''\n if (type.includes('wifi') || type.includes('ethernet')) {\n return 'wifi'\n }\n if (effectiveType.includes('5g')) {\n return '5g'\n }\n if (effectiveType.includes('4g')) {\n return '4g'\n }\n if (effectiveType.includes('3g')) {\n return '3g'\n }\n if (effectiveType.includes('2g') || effectiveType.includes('slow-2g')) {\n return '2g'\n }\n if (type.includes('cellular')) {\n return 'unknown'\n }\n return 'unknown'\n}\n\nexport function readNetworkStatusSnapshot(): NetworkStatusSnapshot {\n const runtimeNavigator = typeof navigator !== 'undefined' ? navigator : undefined\n const isConnected = typeof runtimeNavigator?.onLine === 'boolean' ? runtimeNavigator.onLine : true\n const connection = getNavigatorConnection()\n return {\n isConnected,\n networkType: resolveNetworkType(connection, isConnected),\n }\n}\n\nconst networkStatusCallbacks = new Set<(result: NetworkStatusSnapshot) => void>()\nlet networkStatusBridgeBound = false\n\nfunction notifyNetworkStatusChange() {\n if (networkStatusCallbacks.size === 0) {\n return\n }\n const status = readNetworkStatusSnapshot()\n for (const callback of networkStatusCallbacks) {\n callback(status)\n }\n}\n\nfunction bindNetworkStatusBridge() {\n if (networkStatusBridgeBound) {\n return\n }\n networkStatusBridgeBound = true\n const runtimeTarget = globalThis as {\n addEventListener?: (type: string, listener: () => void) => void\n }\n runtimeTarget.addEventListener?.('online', notifyNetworkStatusChange)\n runtimeTarget.addEventListener?.('offline', notifyNetworkStatusChange)\n const connection = getNavigatorConnection()\n connection?.addEventListener?.('change', notifyNetworkStatusChange)\n}\n\nexport function addNetworkStatusCallback(callback: (result: NetworkStatusSnapshot) => void) {\n bindNetworkStatusBridge()\n networkStatusCallbacks.add(callback)\n}\n\nexport function removeNetworkStatusCallback(callback?: (result: NetworkStatusSnapshot) => void) {\n if (typeof callback !== 'function') {\n networkStatusCallbacks.clear()\n return\n }\n networkStatusCallbacks.delete(callback)\n}\n"],"mappings":";AAaA,SAAgB,yBAAyB;CACvC,MAAM,mBAAoB,OAAO,cAAc,cAAc,YAAY;CAKzE,OAAO,kBAAkB,cAAc,kBAAkB,iBAAiB,kBAAkB;;AAG9F,SAAS,mBAAmB,YAA6C,aAAmC;CAC1G,IAAI,CAAC,aACH,OAAO;CAET,MAAM,OAAO,OAAO,YAAY,SAAS,WAAW,WAAW,KAAK,aAAa,GAAG;CACpF,MAAM,gBAAgB,OAAO,YAAY,kBAAkB,WACvD,WAAW,cAAc,aAAa,GACtC;CACJ,IAAI,KAAK,SAAS,OAAO,IAAI,KAAK,SAAS,WAAW,EACpD,OAAO;CAET,IAAI,cAAc,SAAS,KAAK,EAC9B,OAAO;CAET,IAAI,cAAc,SAAS,KAAK,EAC9B,OAAO;CAET,IAAI,cAAc,SAAS,KAAK,EAC9B,OAAO;CAET,IAAI,cAAc,SAAS,KAAK,IAAI,cAAc,SAAS,UAAU,EACnE,OAAO;CAET,IAAI,KAAK,SAAS,WAAW,EAC3B,OAAO;CAET,OAAO;;AAGT,SAAgB,4BAAmD;CACjE,MAAM,mBAAmB,OAAO,cAAc,cAAc,YAAY;CACxE,MAAM,cAAc,OAAO,kBAAkB,WAAW,YAAY,iBAAiB,SAAS;CAE9F,OAAO;EACL;EACA,aAAa,mBAHI,wBAGyB,EAAE,YAAY;EACzD;;AAGH,MAAM,yCAAyB,IAAI,KAA8C;AACjF,IAAI,2BAA2B;AAE/B,SAAS,4BAA4B;CACnC,IAAI,uBAAuB,SAAS,GAClC;CAEF,MAAM,SAAS,2BAA2B;CAC1C,KAAK,MAAM,YAAY,wBACrB,SAAS,OAAO;;AAIpB,SAAS,0BAA0B;CACjC,IAAI,0BACF;CAEF,2BAA2B;CAC3B,MAAM,gBAAgB;CAGtB,cAAc,mBAAmB,UAAU,0BAA0B;CACrE,cAAc,mBAAmB,WAAW,0BAA0B;CAEtE,AADmB,wBACT,EAAE,mBAAmB,UAAU,0BAA0B;;AAGrE,SAAgB,yBAAyB,UAAmD;CAC1F,yBAAyB;CACzB,uBAAuB,IAAI,SAAS;;AAGtC,SAAgB,4BAA4B,UAAoD;CAC9F,IAAI,OAAO,aAAa,YAAY;EAClC,uBAAuB,OAAO;EAC9B;;CAEF,uBAAuB,OAAO,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"platformApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/platformApi.ts"],"sourcesContent":["import {\n createInterstitialAdImpl,\n createRewardedVideoAdImpl,\n} from './ad'\nimport { callMiniProgramAsyncSuccess, scheduleMicrotask } from './async'\nimport {\n createLogManagerBridge,\n createUpdateManagerBridge,\n readExtConfigValue,\n readRuntimeConsole,\n reportAnalyticsEvent,\n resolveUpdateManagerPreset,\n} from './platformRuntime'\n\nexport function createRewardedVideoAdBridge(options?: any): any {\n return createRewardedVideoAdImpl(options)\n}\n\nexport function createInterstitialAdBridge(options?: any): any {\n return createInterstitialAdImpl(options)\n}\n\nexport function getExtConfigSyncBridge() {\n return readExtConfigValue()\n}\n\nexport function getExtConfigBridge(options?: any): Promise<any> {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'getExtConfig:ok',\n extConfig: getExtConfigSyncBridge(),\n }))\n}\n\nexport function getUpdateManagerBridge() {\n return createUpdateManagerBridge(resolveUpdateManagerPreset, scheduleMicrotask)\n}\n\nexport function getLogManagerBridge(options?: any) {\n const level = options?.level === 0 ? 0 : 1\n return createLogManagerBridge(level, readRuntimeConsole())\n}\n\nexport function reportAnalyticsBridge(eventName: string, data?: Record<string, unknown>) {\n reportAnalyticsEvent(eventName, data)\n}\n"],"mappings":";;;;;AAcA,SAAgB,4BAA4B,SAAoB;AAC9D,QAAO,0BAA0B,QAAQ;;AAG3C,SAAgB,2BAA2B,SAAoB;AAC7D,QAAO,yBAAyB,QAAQ;;AAG1C,SAAgB,yBAAyB;AACvC,QAAO,oBAAoB;;AAG7B,SAAgB,mBAAmB,SAA6B;AAC9D,QAAO,QAAQ,QAAQ,4BAA4B,SAAS;EAC1D,QAAQ;EACR,WAAW,wBAAwB;EACpC,CAAC,CAAC;;AAGL,SAAgB,yBAAyB;AACvC,QAAO,0BAA0B,4BAA4B,kBAAkB;;AAGjF,SAAgB,oBAAoB,SAAe;AAEjD,QAAO,uBADO,SAAS,UAAU,IAAI,IAAI,GACJ,oBAAoB,CAAC;;AAG5D,SAAgB,sBAAsB,WAAmB,MAAgC;AACvF,sBAAqB,WAAW,KAAK"}
1
+ {"version":3,"file":"platformApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/platformApi.ts"],"sourcesContent":["import {\n createInterstitialAdImpl,\n createRewardedVideoAdImpl,\n} from './ad'\nimport { callMiniProgramAsyncSuccess, scheduleMicrotask } from './async'\nimport {\n createLogManagerBridge,\n createUpdateManagerBridge,\n readExtConfigValue,\n readRuntimeConsole,\n reportAnalyticsEvent,\n resolveUpdateManagerPreset,\n} from './platformRuntime'\n\nexport function createRewardedVideoAdBridge(options?: any): any {\n return createRewardedVideoAdImpl(options)\n}\n\nexport function createInterstitialAdBridge(options?: any): any {\n return createInterstitialAdImpl(options)\n}\n\nexport function getExtConfigSyncBridge() {\n return readExtConfigValue()\n}\n\nexport function getExtConfigBridge(options?: any): Promise<any> {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'getExtConfig:ok',\n extConfig: getExtConfigSyncBridge(),\n }))\n}\n\nexport function getUpdateManagerBridge() {\n return createUpdateManagerBridge(resolveUpdateManagerPreset, scheduleMicrotask)\n}\n\nexport function getLogManagerBridge(options?: any) {\n const level = options?.level === 0 ? 0 : 1\n return createLogManagerBridge(level, readRuntimeConsole())\n}\n\nexport function reportAnalyticsBridge(eventName: string, data?: Record<string, unknown>) {\n reportAnalyticsEvent(eventName, data)\n}\n"],"mappings":";;;;;AAcA,SAAgB,4BAA4B,SAAoB;CAC9D,OAAO,0BAA0B,QAAQ;;AAG3C,SAAgB,2BAA2B,SAAoB;CAC7D,OAAO,yBAAyB,QAAQ;;AAG1C,SAAgB,yBAAyB;CACvC,OAAO,oBAAoB;;AAG7B,SAAgB,mBAAmB,SAA6B;CAC9D,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;EAC1D,QAAQ;EACR,WAAW,wBAAwB;EACpC,CAAC,CAAC;;AAGL,SAAgB,yBAAyB;CACvC,OAAO,0BAA0B,4BAA4B,kBAAkB;;AAGjF,SAAgB,oBAAoB,SAAe;CAEjD,OAAO,uBADO,SAAS,UAAU,IAAI,IAAI,GACJ,oBAAoB,CAAC;;AAG5D,SAAgB,sBAAsB,WAAmB,MAAgC;CACvF,qBAAqB,WAAW,KAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"platformRuntime.mjs","names":["runtimeGlobal"],"sources":["../../../src/runtime/polyfill/platformRuntime.ts"],"sourcesContent":["import {\n WEAPP_VITE_WEB_ANALYTICS_EVENTS_KEY,\n WEAPP_VITE_WEB_EXT_CONFIG_KEY,\n WEAPP_VITE_WEB_UPDATE_MANAGER_KEY,\n} from '@weapp-core/constants'\n\ninterface UpdatePresetSnapshot {\n hasUpdate: boolean\n ready: boolean\n failed: boolean\n}\n\ninterface RuntimeConsoleLike {\n debug?: (...args: unknown[]) => void\n info?: (...args: unknown[]) => void\n log?: (...args: unknown[]) => void\n warn?: (...args: unknown[]) => void\n}\n\nfunction normalizeSubPackageName(value: unknown) {\n if (typeof value !== 'string') {\n return ''\n }\n return value.trim()\n}\n\nexport function resolveSubPackageName(options?: { name?: unknown, root?: unknown }) {\n return normalizeSubPackageName(options?.name) || normalizeSubPackageName(options?.root)\n}\n\nfunction normalizeUpdateManagerPreset(value: unknown): UpdatePresetSnapshot {\n if (typeof value === 'boolean') {\n return {\n hasUpdate: value,\n ready: value,\n failed: false,\n }\n }\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase()\n if (!normalized || normalized === 'none' || normalized === 'false') {\n return {\n hasUpdate: false,\n ready: false,\n failed: false,\n }\n }\n if (normalized === 'fail' || normalized === 'failed' || normalized === 'error') {\n return {\n hasUpdate: true,\n ready: false,\n failed: true,\n }\n }\n return {\n hasUpdate: true,\n ready: true,\n failed: false,\n }\n }\n if (value && typeof value === 'object') {\n const payload = value as {\n hasUpdate?: unknown\n ready?: unknown\n updateReady?: unknown\n failed?: unknown\n fail?: unknown\n }\n const failed = Boolean(payload.failed ?? payload.fail)\n const ready = failed ? false : Boolean(payload.ready ?? payload.updateReady)\n const hasUpdate = payload.hasUpdate == null ? (ready || failed) : Boolean(payload.hasUpdate)\n return {\n hasUpdate,\n ready: hasUpdate && ready,\n failed: hasUpdate && failed,\n }\n }\n return {\n hasUpdate: false,\n ready: false,\n failed: false,\n }\n}\n\nexport function resolveUpdateManagerPreset() {\n const runtimeGlobal = globalThis as Record<string, unknown>\n const preset = runtimeGlobal[WEAPP_VITE_WEB_UPDATE_MANAGER_KEY]\n if (typeof preset === 'function') {\n return normalizeUpdateManagerPreset((preset as () => unknown)())\n }\n return normalizeUpdateManagerPreset(preset)\n}\n\nexport function readRuntimeConsole() {\n const runtimeGlobal = globalThis as { console?: Console }\n return runtimeGlobal.console\n}\n\nexport function readExtConfigValue() {\n const runtimeGlobal = globalThis as Record<string, unknown>\n const value = runtimeGlobal[WEAPP_VITE_WEB_EXT_CONFIG_KEY]\n if (value && typeof value === 'object') {\n return { ...(value as Record<string, unknown>) }\n }\n return {}\n}\n\nexport function createUpdateManagerBridge(\n resolveUpdateManagerPreset: () => UpdatePresetSnapshot,\n scheduleMicrotask: (callback: () => void) => void,\n) {\n return {\n applyUpdate() {},\n onCheckForUpdate(callback: ((result: { hasUpdate: boolean }) => void) | undefined) {\n if (typeof callback !== 'function') {\n return\n }\n const preset = resolveUpdateManagerPreset()\n scheduleMicrotask(() => callback({ hasUpdate: preset.hasUpdate }))\n },\n onUpdateReady(callback: (() => void) | undefined) {\n if (typeof callback !== 'function') {\n return\n }\n const preset = resolveUpdateManagerPreset()\n if (!preset.hasUpdate || !preset.ready) {\n return\n }\n scheduleMicrotask(() => callback())\n },\n onUpdateFailed(callback: (() => void) | undefined) {\n if (typeof callback !== 'function') {\n return\n }\n const preset = resolveUpdateManagerPreset()\n if (!preset.hasUpdate || !preset.failed) {\n return\n }\n scheduleMicrotask(() => callback())\n },\n }\n}\n\nexport function createLogManagerBridge(level: 0 | 1, runtimeConsole: RuntimeConsoleLike | undefined) {\n const invokeConsole = (method: 'debug' | 'info' | 'log' | 'warn', args: unknown[]) => {\n const handler = runtimeConsole?.[method]\n if (typeof handler === 'function') {\n handler.apply(runtimeConsole, args)\n }\n }\n return {\n debug(...args: unknown[]) {\n if (level > 0) {\n return\n }\n invokeConsole('debug', args)\n },\n info(...args: unknown[]) {\n invokeConsole('info', args)\n },\n log(...args: unknown[]) {\n invokeConsole('log', args)\n },\n warn(...args: unknown[]) {\n invokeConsole('warn', args)\n },\n }\n}\n\nexport function reportAnalyticsEvent(eventName: string, data?: Record<string, unknown>) {\n const runtimeGlobal = globalThis as {\n [WEAPP_VITE_WEB_ANALYTICS_EVENTS_KEY]?: Array<{\n eventName: string\n data: Record<string, unknown>\n timestamp: number\n }>\n }\n runtimeGlobal[WEAPP_VITE_WEB_ANALYTICS_EVENTS_KEY] ??= []\n runtimeGlobal[WEAPP_VITE_WEB_ANALYTICS_EVENTS_KEY].push({\n eventName: String(eventName ?? ''),\n data: { ...(data ?? {}) },\n timestamp: Date.now(),\n })\n}\n"],"mappings":";;;AAmBA,SAAS,wBAAwB,OAAgB;AAC/C,KAAI,OAAO,UAAU,SACnB,QAAO;AAET,QAAO,MAAM,MAAM;;AAGrB,SAAgB,sBAAsB,SAA8C;AAClF,QAAO,wBAAwB,SAAS,KAAK,IAAI,wBAAwB,SAAS,KAAK;;AAGzF,SAAS,6BAA6B,OAAsC;AAC1E,KAAI,OAAO,UAAU,UACnB,QAAO;EACL,WAAW;EACX,OAAO;EACP,QAAQ;EACT;AAEH,KAAI,OAAO,UAAU,UAAU;EAC7B,MAAM,aAAa,MAAM,MAAM,CAAC,aAAa;AAC7C,MAAI,CAAC,cAAc,eAAe,UAAU,eAAe,QACzD,QAAO;GACL,WAAW;GACX,OAAO;GACP,QAAQ;GACT;AAEH,MAAI,eAAe,UAAU,eAAe,YAAY,eAAe,QACrE,QAAO;GACL,WAAW;GACX,OAAO;GACP,QAAQ;GACT;AAEH,SAAO;GACL,WAAW;GACX,OAAO;GACP,QAAQ;GACT;;AAEH,KAAI,SAAS,OAAO,UAAU,UAAU;EACtC,MAAM,UAAU;EAOhB,MAAM,SAAS,QAAQ,QAAQ,UAAU,QAAQ,KAAK;EACtD,MAAM,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,YAAY;EAC5E,MAAM,YAAY,QAAQ,aAAa,OAAQ,SAAS,SAAU,QAAQ,QAAQ,UAAU;AAC5F,SAAO;GACL;GACA,OAAO,aAAa;GACpB,QAAQ,aAAa;GACtB;;AAEH,QAAO;EACL,WAAW;EACX,OAAO;EACP,QAAQ;EACT;;AAGH,SAAgB,6BAA6B;CAE3C,MAAM,SAASA,WAAc;AAC7B,KAAI,OAAO,WAAW,WACpB,QAAO,6BAA8B,QAA0B,CAAC;AAElE,QAAO,6BAA6B,OAAO;;AAG7C,SAAgB,qBAAqB;AAEnC,QAAOA,WAAc;;AAGvB,SAAgB,qBAAqB;CAEnC,MAAM,QAAQA,WAAc;AAC5B,KAAI,SAAS,OAAO,UAAU,SAC5B,QAAO,EAAE,GAAI,OAAmC;AAElD,QAAO,EAAE;;AAGX,SAAgB,0BACd,4BACA,mBACA;AACA,QAAO;EACL,cAAc;EACd,iBAAiB,UAAkE;AACjF,OAAI,OAAO,aAAa,WACtB;GAEF,MAAM,SAAS,4BAA4B;AAC3C,2BAAwB,SAAS,EAAE,WAAW,OAAO,WAAW,CAAC,CAAC;;EAEpE,cAAc,UAAoC;AAChD,OAAI,OAAO,aAAa,WACtB;GAEF,MAAM,SAAS,4BAA4B;AAC3C,OAAI,CAAC,OAAO,aAAa,CAAC,OAAO,MAC/B;AAEF,2BAAwB,UAAU,CAAC;;EAErC,eAAe,UAAoC;AACjD,OAAI,OAAO,aAAa,WACtB;GAEF,MAAM,SAAS,4BAA4B;AAC3C,OAAI,CAAC,OAAO,aAAa,CAAC,OAAO,OAC/B;AAEF,2BAAwB,UAAU,CAAC;;EAEtC;;AAGH,SAAgB,uBAAuB,OAAc,gBAAgD;CACnG,MAAM,iBAAiB,QAA2C,SAAoB;EACpF,MAAM,UAAU,iBAAiB;AACjC,MAAI,OAAO,YAAY,WACrB,SAAQ,MAAM,gBAAgB,KAAK;;AAGvC,QAAO;EACL,MAAM,GAAG,MAAiB;AACxB,OAAI,QAAQ,EACV;AAEF,iBAAc,SAAS,KAAK;;EAE9B,KAAK,GAAG,MAAiB;AACvB,iBAAc,QAAQ,KAAK;;EAE7B,IAAI,GAAG,MAAiB;AACtB,iBAAc,OAAO,KAAK;;EAE5B,KAAK,GAAG,MAAiB;AACvB,iBAAc,QAAQ,KAAK;;EAE9B;;AAGH,SAAgB,qBAAqB,WAAmB,MAAgC;CACtF,MAAM,gBAAgB;AAOtB,eAAc,yCAAyC,EAAE;AACzD,eAAc,qCAAqC,KAAK;EACtD,WAAW,OAAO,aAAa,GAAG;EAClC,MAAM,EAAE,GAAI,QAAQ,EAAE,EAAG;EACzB,WAAW,KAAK,KAAK;EACtB,CAAC"}
1
+ {"version":3,"file":"platformRuntime.mjs","names":["runtimeGlobal"],"sources":["../../../src/runtime/polyfill/platformRuntime.ts"],"sourcesContent":["import {\n WEAPP_VITE_WEB_ANALYTICS_EVENTS_KEY,\n WEAPP_VITE_WEB_EXT_CONFIG_KEY,\n WEAPP_VITE_WEB_UPDATE_MANAGER_KEY,\n} from '@weapp-core/constants'\n\ninterface UpdatePresetSnapshot {\n hasUpdate: boolean\n ready: boolean\n failed: boolean\n}\n\ninterface RuntimeConsoleLike {\n debug?: (...args: unknown[]) => void\n info?: (...args: unknown[]) => void\n log?: (...args: unknown[]) => void\n warn?: (...args: unknown[]) => void\n}\n\nfunction normalizeSubPackageName(value: unknown) {\n if (typeof value !== 'string') {\n return ''\n }\n return value.trim()\n}\n\nexport function resolveSubPackageName(options?: { name?: unknown, root?: unknown }) {\n return normalizeSubPackageName(options?.name) || normalizeSubPackageName(options?.root)\n}\n\nfunction normalizeUpdateManagerPreset(value: unknown): UpdatePresetSnapshot {\n if (typeof value === 'boolean') {\n return {\n hasUpdate: value,\n ready: value,\n failed: false,\n }\n }\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase()\n if (!normalized || normalized === 'none' || normalized === 'false') {\n return {\n hasUpdate: false,\n ready: false,\n failed: false,\n }\n }\n if (normalized === 'fail' || normalized === 'failed' || normalized === 'error') {\n return {\n hasUpdate: true,\n ready: false,\n failed: true,\n }\n }\n return {\n hasUpdate: true,\n ready: true,\n failed: false,\n }\n }\n if (value && typeof value === 'object') {\n const payload = value as {\n hasUpdate?: unknown\n ready?: unknown\n updateReady?: unknown\n failed?: unknown\n fail?: unknown\n }\n const failed = Boolean(payload.failed ?? payload.fail)\n const ready = failed ? false : Boolean(payload.ready ?? payload.updateReady)\n const hasUpdate = payload.hasUpdate == null ? (ready || failed) : Boolean(payload.hasUpdate)\n return {\n hasUpdate,\n ready: hasUpdate && ready,\n failed: hasUpdate && failed,\n }\n }\n return {\n hasUpdate: false,\n ready: false,\n failed: false,\n }\n}\n\nexport function resolveUpdateManagerPreset() {\n const runtimeGlobal = globalThis as Record<string, unknown>\n const preset = runtimeGlobal[WEAPP_VITE_WEB_UPDATE_MANAGER_KEY]\n if (typeof preset === 'function') {\n return normalizeUpdateManagerPreset((preset as () => unknown)())\n }\n return normalizeUpdateManagerPreset(preset)\n}\n\nexport function readRuntimeConsole() {\n const runtimeGlobal = globalThis as { console?: Console }\n return runtimeGlobal.console\n}\n\nexport function readExtConfigValue() {\n const runtimeGlobal = globalThis as Record<string, unknown>\n const value = runtimeGlobal[WEAPP_VITE_WEB_EXT_CONFIG_KEY]\n if (value && typeof value === 'object') {\n return { ...(value as Record<string, unknown>) }\n }\n return {}\n}\n\nexport function createUpdateManagerBridge(\n resolveUpdateManagerPreset: () => UpdatePresetSnapshot,\n scheduleMicrotask: (callback: () => void) => void,\n) {\n return {\n applyUpdate() {},\n onCheckForUpdate(callback: ((result: { hasUpdate: boolean }) => void) | undefined) {\n if (typeof callback !== 'function') {\n return\n }\n const preset = resolveUpdateManagerPreset()\n scheduleMicrotask(() => callback({ hasUpdate: preset.hasUpdate }))\n },\n onUpdateReady(callback: (() => void) | undefined) {\n if (typeof callback !== 'function') {\n return\n }\n const preset = resolveUpdateManagerPreset()\n if (!preset.hasUpdate || !preset.ready) {\n return\n }\n scheduleMicrotask(() => callback())\n },\n onUpdateFailed(callback: (() => void) | undefined) {\n if (typeof callback !== 'function') {\n return\n }\n const preset = resolveUpdateManagerPreset()\n if (!preset.hasUpdate || !preset.failed) {\n return\n }\n scheduleMicrotask(() => callback())\n },\n }\n}\n\nexport function createLogManagerBridge(level: 0 | 1, runtimeConsole: RuntimeConsoleLike | undefined) {\n const invokeConsole = (method: 'debug' | 'info' | 'log' | 'warn', args: unknown[]) => {\n const handler = runtimeConsole?.[method]\n if (typeof handler === 'function') {\n handler.apply(runtimeConsole, args)\n }\n }\n return {\n debug(...args: unknown[]) {\n if (level > 0) {\n return\n }\n invokeConsole('debug', args)\n },\n info(...args: unknown[]) {\n invokeConsole('info', args)\n },\n log(...args: unknown[]) {\n invokeConsole('log', args)\n },\n warn(...args: unknown[]) {\n invokeConsole('warn', args)\n },\n }\n}\n\nexport function reportAnalyticsEvent(eventName: string, data?: Record<string, unknown>) {\n const runtimeGlobal = globalThis as {\n [WEAPP_VITE_WEB_ANALYTICS_EVENTS_KEY]?: Array<{\n eventName: string\n data: Record<string, unknown>\n timestamp: number\n }>\n }\n runtimeGlobal[WEAPP_VITE_WEB_ANALYTICS_EVENTS_KEY] ??= []\n runtimeGlobal[WEAPP_VITE_WEB_ANALYTICS_EVENTS_KEY].push({\n eventName: String(eventName ?? ''),\n data: { ...(data ?? {}) },\n timestamp: Date.now(),\n })\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/dom.ts"],"sourcesContent":["import type { ComponentPublicInstance } from '../../component'\nimport type { PageRecord, PageStackEntry } from './options'\nimport { attachRouteMeta } from './lifecycle'\n\nfunction ensureDocumentReady(callback: () => void) {\n if (typeof document === 'undefined') {\n return\n }\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => callback(), { once: true })\n return\n }\n callback()\n}\n\nfunction ensureContainer(): HTMLElement | undefined {\n if (typeof document === 'undefined') {\n return undefined\n }\n return (document.querySelector('#app') as HTMLElement | null) ?? document.body\n}\n\nexport function mountEntryToDom(\n entry: PageStackEntry,\n pageRegistry: Map<string, PageRecord>,\n onMounted: (entry: PageStackEntry) => void,\n) {\n const record = pageRegistry.get(entry.id)\n if (!record) {\n return\n }\n ensureDocumentReady(() => {\n const container = ensureContainer()\n if (!container) {\n return\n }\n while (container.childNodes.length) {\n container.removeChild(container.childNodes[0]!)\n }\n const element = document.createElement(record.tag) as HTMLElement & ComponentPublicInstance\n attachRouteMeta(element, {\n id: entry.id,\n query: entry.query,\n entry,\n })\n container.append(element)\n onMounted(entry)\n })\n}\n"],"mappings":";;;AAIA,SAAS,oBAAoB,UAAsB;AACjD,KAAI,OAAO,aAAa,YACtB;AAEF,KAAI,SAAS,eAAe,WAAW;AACrC,WAAS,iBAAiB,0BAA0B,UAAU,EAAE,EAAE,MAAM,MAAM,CAAC;AAC/E;;AAEF,WAAU;;AAGZ,SAAS,kBAA2C;AAClD,KAAI,OAAO,aAAa,YACtB;AAEF,QAAQ,SAAS,cAAc,OAAO,IAA2B,SAAS;;AAG5E,SAAgB,gBACd,OACA,cACA,WACA;CACA,MAAM,SAAS,aAAa,IAAI,MAAM,GAAG;AACzC,KAAI,CAAC,OACH;AAEF,2BAA0B;EACxB,MAAM,YAAY,iBAAiB;AACnC,MAAI,CAAC,UACH;AAEF,SAAO,UAAU,WAAW,OAC1B,WAAU,YAAY,UAAU,WAAW,GAAI;EAEjD,MAAM,UAAU,SAAS,cAAc,OAAO,IAAI;AAClD,kBAAgB,SAAS;GACvB,IAAI,MAAM;GACV,OAAO,MAAM;GACb;GACD,CAAC;AACF,YAAU,OAAO,QAAQ;AACzB,YAAU,MAAM;GAChB"}
1
+ {"version":3,"file":"dom.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/dom.ts"],"sourcesContent":["import type { ComponentPublicInstance } from '../../component'\nimport type { PageRecord, PageStackEntry } from './options'\nimport { attachRouteMeta } from './lifecycle'\n\nfunction ensureDocumentReady(callback: () => void) {\n if (typeof document === 'undefined') {\n return\n }\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => callback(), { once: true })\n return\n }\n callback()\n}\n\nfunction ensureContainer(): HTMLElement | undefined {\n if (typeof document === 'undefined') {\n return undefined\n }\n return (document.querySelector('#app') as HTMLElement | null) ?? document.body\n}\n\nexport function mountEntryToDom(\n entry: PageStackEntry,\n pageRegistry: Map<string, PageRecord>,\n onMounted: (entry: PageStackEntry) => void,\n) {\n const record = pageRegistry.get(entry.id)\n if (!record) {\n return\n }\n ensureDocumentReady(() => {\n const container = ensureContainer()\n if (!container) {\n return\n }\n while (container.childNodes.length) {\n container.removeChild(container.childNodes[0]!)\n }\n const element = document.createElement(record.tag) as HTMLElement & ComponentPublicInstance\n attachRouteMeta(element, {\n id: entry.id,\n query: entry.query,\n entry,\n })\n container.append(element)\n onMounted(entry)\n })\n}\n"],"mappings":";;;AAIA,SAAS,oBAAoB,UAAsB;CACjD,IAAI,OAAO,aAAa,aACtB;CAEF,IAAI,SAAS,eAAe,WAAW;EACrC,SAAS,iBAAiB,0BAA0B,UAAU,EAAE,EAAE,MAAM,MAAM,CAAC;EAC/E;;CAEF,UAAU;;AAGZ,SAAS,kBAA2C;CAClD,IAAI,OAAO,aAAa,aACtB;CAEF,OAAQ,SAAS,cAAc,OAAO,IAA2B,SAAS;;AAG5E,SAAgB,gBACd,OACA,cACA,WACA;CACA,MAAM,SAAS,aAAa,IAAI,MAAM,GAAG;CACzC,IAAI,CAAC,QACH;CAEF,0BAA0B;EACxB,MAAM,YAAY,iBAAiB;EACnC,IAAI,CAAC,WACH;EAEF,OAAO,UAAU,WAAW,QAC1B,UAAU,YAAY,UAAU,WAAW,GAAI;EAEjD,MAAM,UAAU,SAAS,cAAc,OAAO,IAAI;EAClD,gBAAgB,SAAS;GACvB,IAAI,MAAM;GACV,OAAO,MAAM;GACb;GACD,CAAC;EACF,UAAU,OAAO,QAAQ;EACzB,UAAU,MAAM;GAChB"}
@@ -1 +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,QAAO;EA1CL,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;EAGY"}
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;CAC9E,OAAQ,SAA8B;;AAGxC,SAAS,aAAa,UAAsD;CAC1E,MAAM,SAAS;CACf,OAAO,uBAAuB,EAAE,QAAQ,OAAO;CAC/C,OAAO,OAAO;;AAGhB,SAAS,iBAAiB,MAAkB,WAA6B;CACvE,MAAM,QAAQ,MAAM,KAAM,KAA0D,cAAc,EAAE,CAAC;CACrG,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,EAAE,gBAAgB,cACpB;EAEF,UAAU,IAAI,KAAK;EACnB,iBAAiB,MAAM,UAAU;EACjC,IAAI,KAAK,YACP,iBAAiB,KAAK,YAAY,UAAU;;;AAKlD,SAAgB,iCACd,MACA,MACA;CACA,MAAM,OAAO;CAIb,MAAM,OAAO,KAAK,cAAc,KAAK,cAAc;CACnD,IAAI,CAAC,QAAQ,OAAO,KAAK,qBAAqB,YAC5C;CAEF,MAAM,2BAAW,IAAI,KAAkB;CACvC,iBAAiB,MAAM,SAAS;CAChC,KAAK,MAAM,WAAW,UAAU;EAC9B,MAAM,YAAY;EAClB,IAAI,OAAO,UAAU,8BAA8B,YACjD,UAAU,0BAA0B,KAAK;;;AAK/C,SAAgB,gBACd,SACA,MACA;CACA,AAAC,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;CA6CpC,OAAO;EA1CL,GAAG;EACH,WAAW;GACT,GAAG;GACH,UAAuC;IACrC,iBAAiB,KAAK,KAAK;IAC3B,aAAa,KAAK;IAClB,OAAO,UAAU,IAAI,KAAK;;GAE5B,WAAwC;IACtC,kBAAkB,KAAK,KAAK;IAC5B,MAAM,OAAO,aAAa,KAAK;IAC/B,IAAI,MAAM,OACR,KAAK,MAAM,WAAW;IAExB,MAAM,QAAQ,aAAa,KAAK;IAChC,IAAI,CAAC,MAAM,QAAQ;KACjB,OAAO,MAAM,QAAQ,KAAK,MAAM,MAAM,SAAS,EAAE,CAAC;KAClD,MAAM,SAAS;;IAEjB,OAAO,MAAM,QAAQ,KAAK,KAAK;;GAEjC,QAAqC;IACnC,eAAe,KAAK,KAAK;IACzB,OAAO,MAAM,SAAS,KAAK,KAAK;IAChC,iCAAiC,MAAM,OAAO;;GAEhD,WAAwC;IACtC,kBAAkB,KAAK,KAAK;IAC5B,MAAM,OAAO,aAAa,KAAK;IAC/B,IAAI,MAAM,OACR,KAAK,MAAM,WAAW;IAExB,iCAAiC,MAAM,OAAO;IAC9C,OAAO,MAAM,QAAQ,KAAK,KAAK;IAC/B,OAAO,MAAM,UAAU,KAAK,KAAK;IACjC,MAAM,QAAQ,aAAa,KAAK;IAChC,MAAM,SAAS;IACf,OAAO,UAAU,OAAO,KAAK;;GAEhC;EAGY"}
@@ -1 +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,GAAG,IAV2B,IAAI;EAAC;EAAU;EAAW;EAAU;EAAU;EAAW,CAUjE;CACvB,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"}
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,GAAG,IAV2B,IAAI;EAAC;EAAU;EAAW;EAAU;EAAU;EAAW,CAUjE;CACvB,CAAC;AACF,MAAM,iCAAiC,IAAI,IAAI;CAC7C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,SAAS,eAAe,QAAuE;CAC7F,IAAI,CAAC,QACH;CAEF,OAAO,EACL,GAAG,QACJ;;AAGH,SAAgB,SAAS,OAAkD;CACzE,OAAO,OAAO,UAAU,YAAY,UAAU;;AAGhD,SAAS,gBAAgB,OAAwC;CAC/D,OAAO,OAAO,UAAU;;AAG1B,SAAS,mBACP,QACA,UACA;CACA,MAAM,UAAyC,EAAE;CACjD,MAAM,gBAAgB,SAAS,QAAQ,QAAQ,GAAG,QAAQ,UAAU;CAEpE,IAAI,eACF;OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,cAAc,EACtD,IAAI,gBAAgB,MAAM,EACxB,QAAQ,OAAO;;CAKrB,IAAI,QACF,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,EAAE;EACjD,IAAI,SAAS,IAAI,IAAI,EACnB;EAEF,IAAI,gBAAgB,MAAM,IAAI,QAAQ,SAAS,QAC7C,QAAQ,OAAO;;CAIrB,OAAO;;AAGT,SAAgB,qBAAqB,KAAoF;CACvH,MAAM,YAAY,EAAE,GAAI,OAAO,EAAE,EAAG;CACpC,UAAU,UAAU,mBAAmB,KAA4C,0BAA0B;CAC7G,IAAI,KAAK,WACP,UAAU,YAAY,eAAe,IAAI,UAAU;CAErD,MAAM,QAAmB,EAAE;CAC3B,IAAI,OAAO,KAAK,WAAW,YACzB,MAAM,SAAS,IAAI;CAErB,IAAI,OAAO,KAAK,YAAY,YAC1B,MAAM,UAAU,IAAI;CAEtB,IAAI,OAAO,KAAK,WAAW,YACzB,MAAM,SAAS,IAAI;CAErB,IAAI,OAAO,KAAK,WAAW,YACzB,MAAM,SAAS,IAAI;CAErB,IAAI,OAAO,KAAK,aAAa,YAC3B,MAAM,WAAW,IAAI;CAEvB,OAAO;EAAE;EAAW;EAAO;;AAG7B,SAAgB,0BAA0B,KAAwD;CAChG,MAAM,YAAY,EAAE,GAAI,OAAO,EAAE,EAAG;CACpC,UAAU,UAAU,mBAAmB,KAA4C,+BAA+B;CAClH,IAAI,KAAK,WACP,UAAU,YAAY,eAAe,IAAI,UAAU;CAErD,OAAO"}
@@ -1 +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,GACE,CAAC;;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"}
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;CAChC,KAAK,MAAM,OAAO,0BAChB,IAAI,QAAQ,SAAS,IAAI,EACvB,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,OAAO;CAGnC,OAAO;;AAGT,SAAS,YAAY,KAAa;CAEhC,OAAO,uBADY,IAAI,QAAQ,OAAO,GACE,CAAC;;AAG3C,SAAgB,aAAa,KAAmD;CAC9E,MAAM,CAAC,MAAM,SAAS,MAAM,IAAI,MAAM,IAAI;CAC1C,MAAM,QAAgC,EAAE;CACxC,IAAI,QAAQ;EACV,MAAM,SAAS,IAAI,gBAAgB,OAAO;EAC1C,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,SAAS,EACzC,MAAM,OAAO;;CAGjB,OAAO;EACL,IAAI,YAAY,QAAQ,GAAG;EAC3B;EACD"}
@@ -1 +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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"}
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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"}
@@ -1 +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"}
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;CACzD,IAAI,OAAO,aAAa,YACtB;CAEF,yBAAyB,SAAS;;AAGpC,SAAgB,6BAA6B,UAAgB;CAC3D,4BAA4B,SAAS;;AAGvC,SAAgB,qBAAqB,UAAe,eAA0B;CAC5E,IAAI,OAAO,aAAa,YACtB;CAEF,wBAAwB,UAAU,cAAc;;AAGlD,SAAgB,sBAAsB,UAAgB;CACpD,2BAA2B,SAAS;;AAGtC,SAAgB,cAAc,mBAAwD,QAAgB;CACpG,OAAO,uBAAuB,mBAAmB,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeDataApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/runtimeDataApi.ts"],"sourcesContent":["import type {\n CanvasContext,\n DownloadFileOptions,\n FileSystemManager,\n GetStorageOptions,\n LoadSubPackageOptions,\n MiniProgramAsyncOptions,\n MiniProgramBaseResult,\n NavigateToMiniProgramOptions,\n PageScrollToOptions,\n PreloadSubpackageOptions,\n RemoveStorageOptions,\n RequestOptions,\n SelectorQuery,\n SetStorageOptions,\n StorageInfoResult,\n UploadFileOptions,\n VideoContext,\n VkSession,\n WorkerBridge,\n} from './types'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport { createCanvasContextBridge } from './canvasContext'\nimport {\n downloadFileByFetchBridge,\n requestByFetchBridge,\n uploadFileByFetchBridge,\n} from './network'\nimport {\n clearStorageSyncBridge,\n createFileSystemManagerBridgeApi,\n createVKSessionBridgeApi,\n createWorkerBridgeApi,\n getStorageInfoSyncBridge,\n getStorageSyncBridge,\n removeStorageSyncBridge,\n setStorageSyncBridge,\n} from './runtimeInfra'\nimport {\n hideKeyboardBridge,\n loadSubPackageBridge,\n nextTickBridge,\n pageScrollToBridge,\n preloadSubpackageBridge,\n startPullDownRefreshBridge,\n stopPullDownRefreshBridge,\n} from './runtimeOps'\nimport { createSelectorQueryBridge } from './selectorQuery'\nimport {\n clearStorageBridge,\n getStorageBridge,\n getStorageInfoBridge,\n removeStorageBridge,\n setStorageBridge,\n} from './storageAsync'\nimport { createVideoContextBridge } from './videoContext'\n\nconst fileSystemManagerBridge: FileSystemManager = createFileSystemManagerBridgeApi(\n (options: any, result: any) => callMiniProgramAsyncSuccess(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n result as MiniProgramBaseResult,\n ),\n (options: any, errMsg: any) => callMiniProgramAsyncFailure(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n errMsg,\n ),\n) as FileSystemManager\n\nexport function navigateToMiniProgram(options?: NavigateToMiniProgramOptions) {\n const appId = options?.appId?.trim() ?? ''\n if (!appId) {\n const failure = callMiniProgramAsyncFailure(options, 'navigateToMiniProgram:fail invalid appId')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'navigateToMiniProgram:ok' }))\n}\n\nexport function exitMiniProgram(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'exitMiniProgram:ok' }))\n}\n\nexport function nextTick(callback?: () => void) {\n return nextTickBridge(callback)\n}\n\nexport function startPullDownRefresh(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return startPullDownRefreshBridge(options)\n}\n\nexport function stopPullDownRefresh(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return stopPullDownRefreshBridge(options)\n}\n\nexport function hideKeyboard(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return hideKeyboardBridge(options)\n}\n\nexport function loadSubPackage(options?: LoadSubPackageOptions) {\n return loadSubPackageBridge(options)\n}\n\nexport function preloadSubpackage(options?: PreloadSubpackageOptions) {\n return preloadSubpackageBridge(options)\n}\n\nexport function pageScrollTo(options?: PageScrollToOptions) {\n return pageScrollToBridge(options)\n}\n\nexport function createSelectorQuery(): SelectorQuery {\n return createSelectorQueryBridge()\n}\n\nexport function createCanvasContext(canvasId: string): CanvasContext {\n return createCanvasContextBridge(canvasId)\n}\n\nexport function createVideoContext(videoId: string): VideoContext {\n return createVideoContextBridge(videoId)\n}\n\nexport function setStorageSync(key: string, data: any) {\n return setStorageSyncBridge(key, data)\n}\n\nexport function getStorageSync(key: string) {\n return getStorageSyncBridge(key)\n}\n\nexport function removeStorageSync(key: string) {\n return removeStorageSyncBridge(key)\n}\n\nexport function clearStorageSync() {\n return clearStorageSyncBridge()\n}\n\nexport function getStorageInfoSync(): StorageInfoResult {\n return getStorageInfoSyncBridge() as StorageInfoResult\n}\n\nexport function setStorage(options?: SetStorageOptions) {\n return setStorageBridge(options)\n}\n\nexport function getStorage(options?: GetStorageOptions) {\n return getStorageBridge(options)\n}\n\nexport function removeStorage(options?: RemoveStorageOptions) {\n return removeStorageBridge(options)\n}\n\nexport function clearStorage(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return clearStorageBridge(options)\n}\n\nexport function getStorageInfo(options?: MiniProgramAsyncOptions<StorageInfoResult>) {\n return getStorageInfoBridge(options)\n}\n\nexport function getFileSystemManager() {\n return fileSystemManagerBridge\n}\n\nexport function createWorker(path: string): WorkerBridge {\n return createWorkerBridgeApi(path) as WorkerBridge\n}\n\nexport function createVKSession(_options?: Record<string, unknown>): VkSession {\n return createVKSessionBridgeApi() as VkSession\n}\n\nexport async function request(options?: RequestOptions) {\n return requestByFetchBridge(options)\n}\n\nexport async function downloadFile(options?: DownloadFileOptions) {\n return downloadFileByFetchBridge(options)\n}\n\nexport async function uploadFile(options?: UploadFileOptions) {\n return uploadFileByFetchBridge(options)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,MAAM,0BAA6C,kCAChD,SAAc,WAAgB,4BAC7B,SACA,OACD,GACA,SAAc,WAAgB,4BAC7B,SACA,OACD,CACF;AAED,SAAgB,sBAAsB,SAAwC;AAE5E,KAAI,EADU,SAAS,OAAO,MAAM,IAAI,KAC5B;EACV,MAAM,UAAU,4BAA4B,SAAS,2CAA2C;AAChG,SAAO,QAAQ,OAAO,QAAQ;;AAEhC,QAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,4BAA4B,CAAC,CAAC;;AAGtG,SAAgB,gBAAgB,SAA0D;AACxF,QAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,sBAAsB,CAAC,CAAC;;AAGhG,SAAgB,SAAS,UAAuB;AAC9C,QAAO,eAAe,SAAS;;AAGjC,SAAgB,qBAAqB,SAA0D;AAC7F,QAAO,2BAA2B,QAAQ;;AAG5C,SAAgB,oBAAoB,SAA0D;AAC5F,QAAO,0BAA0B,QAAQ;;AAG3C,SAAgB,aAAa,SAA0D;AACrF,QAAO,mBAAmB,QAAQ;;AAGpC,SAAgB,eAAe,SAAiC;AAC9D,QAAO,qBAAqB,QAAQ;;AAGtC,SAAgB,kBAAkB,SAAoC;AACpE,QAAO,wBAAwB,QAAQ;;AAGzC,SAAgB,aAAa,SAA+B;AAC1D,QAAO,mBAAmB,QAAQ;;AAGpC,SAAgB,sBAAqC;AACnD,QAAO,2BAA2B;;AAGpC,SAAgB,oBAAoB,UAAiC;AACnE,QAAO,0BAA0B,SAAS;;AAG5C,SAAgB,mBAAmB,SAA+B;AAChE,QAAO,yBAAyB,QAAQ;;AAG1C,SAAgB,eAAe,KAAa,MAAW;AACrD,QAAO,qBAAqB,KAAK,KAAK;;AAGxC,SAAgB,eAAe,KAAa;AAC1C,QAAO,qBAAqB,IAAI;;AAGlC,SAAgB,kBAAkB,KAAa;AAC7C,QAAO,wBAAwB,IAAI;;AAGrC,SAAgB,mBAAmB;AACjC,QAAO,wBAAwB;;AAGjC,SAAgB,qBAAwC;AACtD,QAAO,0BAA0B;;AAGnC,SAAgB,WAAW,SAA6B;AACtD,QAAO,iBAAiB,QAAQ;;AAGlC,SAAgB,WAAW,SAA6B;AACtD,QAAO,iBAAiB,QAAQ;;AAGlC,SAAgB,cAAc,SAAgC;AAC5D,QAAO,oBAAoB,QAAQ;;AAGrC,SAAgB,aAAa,SAA0D;AACrF,QAAO,mBAAmB,QAAQ;;AAGpC,SAAgB,eAAe,SAAsD;AACnF,QAAO,qBAAqB,QAAQ;;AAGtC,SAAgB,uBAAuB;AACrC,QAAO;;AAGT,SAAgB,aAAa,MAA4B;AACvD,QAAO,sBAAsB,KAAK;;AAGpC,SAAgB,gBAAgB,UAA+C;AAC7E,QAAO,0BAA0B;;AAGnC,eAAsB,QAAQ,SAA0B;AACtD,QAAO,qBAAqB,QAAQ;;AAGtC,eAAsB,aAAa,SAA+B;AAChE,QAAO,0BAA0B,QAAQ;;AAG3C,eAAsB,WAAW,SAA6B;AAC5D,QAAO,wBAAwB,QAAQ"}
1
+ {"version":3,"file":"runtimeDataApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/runtimeDataApi.ts"],"sourcesContent":["import type {\n CanvasContext,\n DownloadFileOptions,\n FileSystemManager,\n GetStorageOptions,\n LoadSubPackageOptions,\n MiniProgramAsyncOptions,\n MiniProgramBaseResult,\n NavigateToMiniProgramOptions,\n PageScrollToOptions,\n PreloadSubpackageOptions,\n RemoveStorageOptions,\n RequestOptions,\n SelectorQuery,\n SetStorageOptions,\n StorageInfoResult,\n UploadFileOptions,\n VideoContext,\n VkSession,\n WorkerBridge,\n} from './types'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport { createCanvasContextBridge } from './canvasContext'\nimport {\n downloadFileByFetchBridge,\n requestByFetchBridge,\n uploadFileByFetchBridge,\n} from './network'\nimport {\n clearStorageSyncBridge,\n createFileSystemManagerBridgeApi,\n createVKSessionBridgeApi,\n createWorkerBridgeApi,\n getStorageInfoSyncBridge,\n getStorageSyncBridge,\n removeStorageSyncBridge,\n setStorageSyncBridge,\n} from './runtimeInfra'\nimport {\n hideKeyboardBridge,\n loadSubPackageBridge,\n nextTickBridge,\n pageScrollToBridge,\n preloadSubpackageBridge,\n startPullDownRefreshBridge,\n stopPullDownRefreshBridge,\n} from './runtimeOps'\nimport { createSelectorQueryBridge } from './selectorQuery'\nimport {\n clearStorageBridge,\n getStorageBridge,\n getStorageInfoBridge,\n removeStorageBridge,\n setStorageBridge,\n} from './storageAsync'\nimport { createVideoContextBridge } from './videoContext'\n\nconst fileSystemManagerBridge: FileSystemManager = createFileSystemManagerBridgeApi(\n (options: any, result: any) => callMiniProgramAsyncSuccess(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n result as MiniProgramBaseResult,\n ),\n (options: any, errMsg: any) => callMiniProgramAsyncFailure(\n options as unknown as MiniProgramAsyncOptions<MiniProgramBaseResult> | undefined,\n errMsg,\n ),\n) as FileSystemManager\n\nexport function navigateToMiniProgram(options?: NavigateToMiniProgramOptions) {\n const appId = options?.appId?.trim() ?? ''\n if (!appId) {\n const failure = callMiniProgramAsyncFailure(options, 'navigateToMiniProgram:fail invalid appId')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'navigateToMiniProgram:ok' }))\n}\n\nexport function exitMiniProgram(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'exitMiniProgram:ok' }))\n}\n\nexport function nextTick(callback?: () => void) {\n return nextTickBridge(callback)\n}\n\nexport function startPullDownRefresh(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return startPullDownRefreshBridge(options)\n}\n\nexport function stopPullDownRefresh(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return stopPullDownRefreshBridge(options)\n}\n\nexport function hideKeyboard(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return hideKeyboardBridge(options)\n}\n\nexport function loadSubPackage(options?: LoadSubPackageOptions) {\n return loadSubPackageBridge(options)\n}\n\nexport function preloadSubpackage(options?: PreloadSubpackageOptions) {\n return preloadSubpackageBridge(options)\n}\n\nexport function pageScrollTo(options?: PageScrollToOptions) {\n return pageScrollToBridge(options)\n}\n\nexport function createSelectorQuery(): SelectorQuery {\n return createSelectorQueryBridge()\n}\n\nexport function createCanvasContext(canvasId: string): CanvasContext {\n return createCanvasContextBridge(canvasId)\n}\n\nexport function createVideoContext(videoId: string): VideoContext {\n return createVideoContextBridge(videoId)\n}\n\nexport function setStorageSync(key: string, data: any) {\n return setStorageSyncBridge(key, data)\n}\n\nexport function getStorageSync(key: string) {\n return getStorageSyncBridge(key)\n}\n\nexport function removeStorageSync(key: string) {\n return removeStorageSyncBridge(key)\n}\n\nexport function clearStorageSync() {\n return clearStorageSyncBridge()\n}\n\nexport function getStorageInfoSync(): StorageInfoResult {\n return getStorageInfoSyncBridge() as StorageInfoResult\n}\n\nexport function setStorage(options?: SetStorageOptions) {\n return setStorageBridge(options)\n}\n\nexport function getStorage(options?: GetStorageOptions) {\n return getStorageBridge(options)\n}\n\nexport function removeStorage(options?: RemoveStorageOptions) {\n return removeStorageBridge(options)\n}\n\nexport function clearStorage(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return clearStorageBridge(options)\n}\n\nexport function getStorageInfo(options?: MiniProgramAsyncOptions<StorageInfoResult>) {\n return getStorageInfoBridge(options)\n}\n\nexport function getFileSystemManager() {\n return fileSystemManagerBridge\n}\n\nexport function createWorker(path: string): WorkerBridge {\n return createWorkerBridgeApi(path) as WorkerBridge\n}\n\nexport function createVKSession(_options?: Record<string, unknown>): VkSession {\n return createVKSessionBridgeApi() as VkSession\n}\n\nexport async function request(options?: RequestOptions) {\n return requestByFetchBridge(options)\n}\n\nexport async function downloadFile(options?: DownloadFileOptions) {\n return downloadFileByFetchBridge(options)\n}\n\nexport async function uploadFile(options?: UploadFileOptions) {\n return uploadFileByFetchBridge(options)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,MAAM,0BAA6C,kCAChD,SAAc,WAAgB,4BAC7B,SACA,OACD,GACA,SAAc,WAAgB,4BAC7B,SACA,OACD,CACF;AAED,SAAgB,sBAAsB,SAAwC;CAE5E,IAAI,EADU,SAAS,OAAO,MAAM,IAAI,KAC5B;EACV,MAAM,UAAU,4BAA4B,SAAS,2CAA2C;EAChG,OAAO,QAAQ,OAAO,QAAQ;;CAEhC,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,4BAA4B,CAAC,CAAC;;AAGtG,SAAgB,gBAAgB,SAA0D;CACxF,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,sBAAsB,CAAC,CAAC;;AAGhG,SAAgB,SAAS,UAAuB;CAC9C,OAAO,eAAe,SAAS;;AAGjC,SAAgB,qBAAqB,SAA0D;CAC7F,OAAO,2BAA2B,QAAQ;;AAG5C,SAAgB,oBAAoB,SAA0D;CAC5F,OAAO,0BAA0B,QAAQ;;AAG3C,SAAgB,aAAa,SAA0D;CACrF,OAAO,mBAAmB,QAAQ;;AAGpC,SAAgB,eAAe,SAAiC;CAC9D,OAAO,qBAAqB,QAAQ;;AAGtC,SAAgB,kBAAkB,SAAoC;CACpE,OAAO,wBAAwB,QAAQ;;AAGzC,SAAgB,aAAa,SAA+B;CAC1D,OAAO,mBAAmB,QAAQ;;AAGpC,SAAgB,sBAAqC;CACnD,OAAO,2BAA2B;;AAGpC,SAAgB,oBAAoB,UAAiC;CACnE,OAAO,0BAA0B,SAAS;;AAG5C,SAAgB,mBAAmB,SAA+B;CAChE,OAAO,yBAAyB,QAAQ;;AAG1C,SAAgB,eAAe,KAAa,MAAW;CACrD,OAAO,qBAAqB,KAAK,KAAK;;AAGxC,SAAgB,eAAe,KAAa;CAC1C,OAAO,qBAAqB,IAAI;;AAGlC,SAAgB,kBAAkB,KAAa;CAC7C,OAAO,wBAAwB,IAAI;;AAGrC,SAAgB,mBAAmB;CACjC,OAAO,wBAAwB;;AAGjC,SAAgB,qBAAwC;CACtD,OAAO,0BAA0B;;AAGnC,SAAgB,WAAW,SAA6B;CACtD,OAAO,iBAAiB,QAAQ;;AAGlC,SAAgB,WAAW,SAA6B;CACtD,OAAO,iBAAiB,QAAQ;;AAGlC,SAAgB,cAAc,SAAgC;CAC5D,OAAO,oBAAoB,QAAQ;;AAGrC,SAAgB,aAAa,SAA0D;CACrF,OAAO,mBAAmB,QAAQ;;AAGpC,SAAgB,eAAe,SAAsD;CACnF,OAAO,qBAAqB,QAAQ;;AAGtC,SAAgB,uBAAuB;CACrC,OAAO;;AAGT,SAAgB,aAAa,MAA4B;CACvD,OAAO,sBAAsB,KAAK;;AAGpC,SAAgB,gBAAgB,UAA+C;CAC7E,OAAO,0BAA0B;;AAGnC,eAAsB,QAAQ,SAA0B;CACtD,OAAO,qBAAqB,QAAQ;;AAGtC,eAAsB,aAAa,SAA+B;CAChE,OAAO,0BAA0B,QAAQ;;AAG3C,eAAsB,WAAW,SAA6B;CAC5D,OAAO,wBAAwB,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeInfra.mjs","names":[],"sources":["../../../src/runtime/polyfill/runtimeInfra.ts"],"sourcesContent":["import {\n createFileSystemManagerBridge,\n} from './fileSystemManager'\nimport {\n clearStorageSyncInternal,\n getStorageInfoSyncInternal,\n getStorageSyncInternal,\n normalizeStorageKey,\n removeStorageSyncInternal,\n setStorageSyncInternal,\n} from './storage'\nimport { createVkSessionBridge } from './vkSession'\nimport { createWorkerBridge } from './worker'\n\nexport function setStorageSyncBridge(key: string, data: any) {\n const normalizedKey = normalizeStorageKey(key)\n if (!normalizedKey) {\n throw new TypeError('setStorageSync:fail invalid key')\n }\n setStorageSyncInternal(normalizedKey, data)\n}\n\nexport function getStorageSyncBridge(key: string) {\n const normalizedKey = normalizeStorageKey(key)\n if (!normalizedKey) {\n throw new TypeError('getStorageSync:fail invalid key')\n }\n return getStorageSyncInternal(normalizedKey)\n}\n\nexport function removeStorageSyncBridge(key: string) {\n const normalizedKey = normalizeStorageKey(key)\n if (!normalizedKey) {\n throw new TypeError('removeStorageSync:fail invalid key')\n }\n removeStorageSyncInternal(normalizedKey)\n}\n\nexport function clearStorageSyncBridge() {\n clearStorageSyncInternal()\n}\n\nexport function getStorageInfoSyncBridge() {\n return getStorageInfoSyncInternal()\n}\n\nexport function createFileSystemManagerBridgeApi(onSuccess: any, onFailure: any): any {\n return createFileSystemManagerBridge(onSuccess, onFailure)\n}\n\nexport function createWorkerBridgeApi(path: string) {\n return createWorkerBridge(path)\n}\n\nexport function createVKSessionBridgeApi(): any {\n return createVkSessionBridge()\n}\n"],"mappings":";;;;;;AAcA,SAAgB,qBAAqB,KAAa,MAAW;CAC3D,MAAM,gBAAgB,oBAAoB,IAAI;AAC9C,KAAI,CAAC,cACH,OAAM,IAAI,UAAU,kCAAkC;AAExD,wBAAuB,eAAe,KAAK;;AAG7C,SAAgB,qBAAqB,KAAa;CAChD,MAAM,gBAAgB,oBAAoB,IAAI;AAC9C,KAAI,CAAC,cACH,OAAM,IAAI,UAAU,kCAAkC;AAExD,QAAO,uBAAuB,cAAc;;AAG9C,SAAgB,wBAAwB,KAAa;CACnD,MAAM,gBAAgB,oBAAoB,IAAI;AAC9C,KAAI,CAAC,cACH,OAAM,IAAI,UAAU,qCAAqC;AAE3D,2BAA0B,cAAc;;AAG1C,SAAgB,yBAAyB;AACvC,2BAA0B;;AAG5B,SAAgB,2BAA2B;AACzC,QAAO,4BAA4B;;AAGrC,SAAgB,iCAAiC,WAAgB,WAAqB;AACpF,QAAO,8BAA8B,WAAW,UAAU;;AAG5D,SAAgB,sBAAsB,MAAc;AAClD,QAAO,mBAAmB,KAAK;;AAGjC,SAAgB,2BAAgC;AAC9C,QAAO,uBAAuB"}
1
+ {"version":3,"file":"runtimeInfra.mjs","names":[],"sources":["../../../src/runtime/polyfill/runtimeInfra.ts"],"sourcesContent":["import {\n createFileSystemManagerBridge,\n} from './fileSystemManager'\nimport {\n clearStorageSyncInternal,\n getStorageInfoSyncInternal,\n getStorageSyncInternal,\n normalizeStorageKey,\n removeStorageSyncInternal,\n setStorageSyncInternal,\n} from './storage'\nimport { createVkSessionBridge } from './vkSession'\nimport { createWorkerBridge } from './worker'\n\nexport function setStorageSyncBridge(key: string, data: any) {\n const normalizedKey = normalizeStorageKey(key)\n if (!normalizedKey) {\n throw new TypeError('setStorageSync:fail invalid key')\n }\n setStorageSyncInternal(normalizedKey, data)\n}\n\nexport function getStorageSyncBridge(key: string) {\n const normalizedKey = normalizeStorageKey(key)\n if (!normalizedKey) {\n throw new TypeError('getStorageSync:fail invalid key')\n }\n return getStorageSyncInternal(normalizedKey)\n}\n\nexport function removeStorageSyncBridge(key: string) {\n const normalizedKey = normalizeStorageKey(key)\n if (!normalizedKey) {\n throw new TypeError('removeStorageSync:fail invalid key')\n }\n removeStorageSyncInternal(normalizedKey)\n}\n\nexport function clearStorageSyncBridge() {\n clearStorageSyncInternal()\n}\n\nexport function getStorageInfoSyncBridge() {\n return getStorageInfoSyncInternal()\n}\n\nexport function createFileSystemManagerBridgeApi(onSuccess: any, onFailure: any): any {\n return createFileSystemManagerBridge(onSuccess, onFailure)\n}\n\nexport function createWorkerBridgeApi(path: string) {\n return createWorkerBridge(path)\n}\n\nexport function createVKSessionBridgeApi(): any {\n return createVkSessionBridge()\n}\n"],"mappings":";;;;;;AAcA,SAAgB,qBAAqB,KAAa,MAAW;CAC3D,MAAM,gBAAgB,oBAAoB,IAAI;CAC9C,IAAI,CAAC,eACH,MAAM,IAAI,UAAU,kCAAkC;CAExD,uBAAuB,eAAe,KAAK;;AAG7C,SAAgB,qBAAqB,KAAa;CAChD,MAAM,gBAAgB,oBAAoB,IAAI;CAC9C,IAAI,CAAC,eACH,MAAM,IAAI,UAAU,kCAAkC;CAExD,OAAO,uBAAuB,cAAc;;AAG9C,SAAgB,wBAAwB,KAAa;CACnD,MAAM,gBAAgB,oBAAoB,IAAI;CAC9C,IAAI,CAAC,eACH,MAAM,IAAI,UAAU,qCAAqC;CAE3D,0BAA0B,cAAc;;AAG1C,SAAgB,yBAAyB;CACvC,0BAA0B;;AAG5B,SAAgB,2BAA2B;CACzC,OAAO,4BAA4B;;AAGrC,SAAgB,iCAAiC,WAAgB,WAAqB;CACpF,OAAO,8BAA8B,WAAW,UAAU;;AAG5D,SAAgB,sBAAsB,MAAc;CAClD,OAAO,mBAAmB,KAAK;;AAGjC,SAAgB,2BAAgC;CAC9C,OAAO,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeOps.mjs","names":[],"sources":["../../../src/runtime/polyfill/runtimeOps.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n normalizeDuration,\n scheduleMicrotask,\n} from './async'\nimport { resolveSubPackageName } from './platformRuntime'\n\nfunction resolveScrollTop(value: unknown) {\n if (typeof value !== 'number' || Number.isNaN(value)) {\n return 0\n }\n return Math.max(0, value)\n}\n\nfunction setWindowScrollTop(top: number) {\n if (typeof window === 'undefined') {\n return\n }\n const runtimeWindow = window as Window & {\n scrollTo?: (x: number, y: number) => void\n }\n if (typeof runtimeWindow.scrollTo !== 'function') {\n return\n }\n runtimeWindow.scrollTo(0, top)\n}\n\nexport function nextTickBridge(callback?: () => void) {\n if (typeof callback !== 'function') {\n return\n }\n scheduleMicrotask(() => callback())\n}\n\nexport function startPullDownRefreshBridge(options?: any) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'startPullDownRefresh:ok' }))\n}\n\nexport function stopPullDownRefreshBridge(options?: any) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'stopPullDownRefresh:ok' }))\n}\n\nexport function hideKeyboardBridge(options?: any) {\n const activeElement = (typeof document !== 'undefined'\n ? (document as { activeElement?: { blur?: () => void } }).activeElement\n : undefined)\n if (activeElement && typeof activeElement.blur === 'function') {\n activeElement.blur()\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'hideKeyboard:ok' }))\n}\n\nexport function loadSubPackageBridge(options?: any) {\n const name = resolveSubPackageName(options)\n if (!name) {\n const failure = callMiniProgramAsyncFailure(options, 'loadSubPackage:fail invalid name')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'loadSubPackage:ok' }))\n}\n\nexport function preloadSubpackageBridge(options?: any) {\n const name = resolveSubPackageName(options)\n if (!name) {\n const failure = callMiniProgramAsyncFailure(options, 'preloadSubpackage:fail invalid name')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'preloadSubpackage:ok' }))\n}\n\nexport function pageScrollToBridge(options?: any) {\n const targetTop = resolveScrollTop(options?.scrollTop)\n const duration = normalizeDuration(options?.duration, 300)\n const run = () => setWindowScrollTop(targetTop)\n\n if (duration <= 0) {\n run()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'pageScrollTo:ok' }))\n }\n\n return new Promise((resolve) => {\n setTimeout(() => {\n run()\n resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'pageScrollTo:ok' }))\n }, duration)\n })\n}\n"],"mappings":";;;;AAQA,SAAS,iBAAiB,OAAgB;AACxC,KAAI,OAAO,UAAU,YAAY,OAAO,MAAM,MAAM,CAClD,QAAO;AAET,QAAO,KAAK,IAAI,GAAG,MAAM;;AAG3B,SAAS,mBAAmB,KAAa;AACvC,KAAI,OAAO,WAAW,YACpB;CAEF,MAAM,gBAAgB;AAGtB,KAAI,OAAO,cAAc,aAAa,WACpC;AAEF,eAAc,SAAS,GAAG,IAAI;;AAGhC,SAAgB,eAAe,UAAuB;AACpD,KAAI,OAAO,aAAa,WACtB;AAEF,yBAAwB,UAAU,CAAC;;AAGrC,SAAgB,2BAA2B,SAAe;AACxD,QAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,2BAA2B,CAAC,CAAC;;AAGrG,SAAgB,0BAA0B,SAAe;AACvD,QAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,0BAA0B,CAAC,CAAC;;AAGpG,SAAgB,mBAAmB,SAAe;CAChD,MAAM,gBAAiB,OAAO,aAAa,cACtC,SAAuD,gBACxD;AACJ,KAAI,iBAAiB,OAAO,cAAc,SAAS,WACjD,eAAc,MAAM;AAEtB,QAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,mBAAmB,CAAC,CAAC;;AAG7F,SAAgB,qBAAqB,SAAe;AAElD,KAAI,CADS,sBAAsB,QAC1B,EAAE;EACT,MAAM,UAAU,4BAA4B,SAAS,mCAAmC;AACxF,SAAO,QAAQ,OAAO,QAAQ;;AAEhC,QAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,qBAAqB,CAAC,CAAC;;AAG/F,SAAgB,wBAAwB,SAAe;AAErD,KAAI,CADS,sBAAsB,QAC1B,EAAE;EACT,MAAM,UAAU,4BAA4B,SAAS,sCAAsC;AAC3F,SAAO,QAAQ,OAAO,QAAQ;;AAEhC,QAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,wBAAwB,CAAC,CAAC;;AAGlG,SAAgB,mBAAmB,SAAe;CAChD,MAAM,YAAY,iBAAiB,SAAS,UAAU;CACtD,MAAM,WAAW,kBAAkB,SAAS,UAAU,IAAI;CAC1D,MAAM,YAAY,mBAAmB,UAAU;AAE/C,KAAI,YAAY,GAAG;AACjB,OAAK;AACL,SAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,mBAAmB,CAAC,CAAC;;AAG7F,QAAO,IAAI,SAAS,YAAY;AAC9B,mBAAiB;AACf,QAAK;AACL,WAAQ,4BAA4B,SAAS,EAAE,QAAQ,mBAAmB,CAAC,CAAC;KAC3E,SAAS;GACZ"}
1
+ {"version":3,"file":"runtimeOps.mjs","names":[],"sources":["../../../src/runtime/polyfill/runtimeOps.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n normalizeDuration,\n scheduleMicrotask,\n} from './async'\nimport { resolveSubPackageName } from './platformRuntime'\n\nfunction resolveScrollTop(value: unknown) {\n if (typeof value !== 'number' || Number.isNaN(value)) {\n return 0\n }\n return Math.max(0, value)\n}\n\nfunction setWindowScrollTop(top: number) {\n if (typeof window === 'undefined') {\n return\n }\n const runtimeWindow = window as Window & {\n scrollTo?: (x: number, y: number) => void\n }\n if (typeof runtimeWindow.scrollTo !== 'function') {\n return\n }\n runtimeWindow.scrollTo(0, top)\n}\n\nexport function nextTickBridge(callback?: () => void) {\n if (typeof callback !== 'function') {\n return\n }\n scheduleMicrotask(() => callback())\n}\n\nexport function startPullDownRefreshBridge(options?: any) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'startPullDownRefresh:ok' }))\n}\n\nexport function stopPullDownRefreshBridge(options?: any) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'stopPullDownRefresh:ok' }))\n}\n\nexport function hideKeyboardBridge(options?: any) {\n const activeElement = (typeof document !== 'undefined'\n ? (document as { activeElement?: { blur?: () => void } }).activeElement\n : undefined)\n if (activeElement && typeof activeElement.blur === 'function') {\n activeElement.blur()\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'hideKeyboard:ok' }))\n}\n\nexport function loadSubPackageBridge(options?: any) {\n const name = resolveSubPackageName(options)\n if (!name) {\n const failure = callMiniProgramAsyncFailure(options, 'loadSubPackage:fail invalid name')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'loadSubPackage:ok' }))\n}\n\nexport function preloadSubpackageBridge(options?: any) {\n const name = resolveSubPackageName(options)\n if (!name) {\n const failure = callMiniProgramAsyncFailure(options, 'preloadSubpackage:fail invalid name')\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'preloadSubpackage:ok' }))\n}\n\nexport function pageScrollToBridge(options?: any) {\n const targetTop = resolveScrollTop(options?.scrollTop)\n const duration = normalizeDuration(options?.duration, 300)\n const run = () => setWindowScrollTop(targetTop)\n\n if (duration <= 0) {\n run()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'pageScrollTo:ok' }))\n }\n\n return new Promise((resolve) => {\n setTimeout(() => {\n run()\n resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'pageScrollTo:ok' }))\n }, duration)\n })\n}\n"],"mappings":";;;;AAQA,SAAS,iBAAiB,OAAgB;CACxC,IAAI,OAAO,UAAU,YAAY,OAAO,MAAM,MAAM,EAClD,OAAO;CAET,OAAO,KAAK,IAAI,GAAG,MAAM;;AAG3B,SAAS,mBAAmB,KAAa;CACvC,IAAI,OAAO,WAAW,aACpB;CAEF,MAAM,gBAAgB;CAGtB,IAAI,OAAO,cAAc,aAAa,YACpC;CAEF,cAAc,SAAS,GAAG,IAAI;;AAGhC,SAAgB,eAAe,UAAuB;CACpD,IAAI,OAAO,aAAa,YACtB;CAEF,wBAAwB,UAAU,CAAC;;AAGrC,SAAgB,2BAA2B,SAAe;CACxD,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,2BAA2B,CAAC,CAAC;;AAGrG,SAAgB,0BAA0B,SAAe;CACvD,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,0BAA0B,CAAC,CAAC;;AAGpG,SAAgB,mBAAmB,SAAe;CAChD,MAAM,gBAAiB,OAAO,aAAa,cACtC,SAAuD,gBACxD;CACJ,IAAI,iBAAiB,OAAO,cAAc,SAAS,YACjD,cAAc,MAAM;CAEtB,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,mBAAmB,CAAC,CAAC;;AAG7F,SAAgB,qBAAqB,SAAe;CAElD,IAAI,CADS,sBAAsB,QAC1B,EAAE;EACT,MAAM,UAAU,4BAA4B,SAAS,mCAAmC;EACxF,OAAO,QAAQ,OAAO,QAAQ;;CAEhC,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,qBAAqB,CAAC,CAAC;;AAG/F,SAAgB,wBAAwB,SAAe;CAErD,IAAI,CADS,sBAAsB,QAC1B,EAAE;EACT,MAAM,UAAU,4BAA4B,SAAS,sCAAsC;EAC3F,OAAO,QAAQ,OAAO,QAAQ;;CAEhC,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,wBAAwB,CAAC,CAAC;;AAGlG,SAAgB,mBAAmB,SAAe;CAChD,MAAM,YAAY,iBAAiB,SAAS,UAAU;CACtD,MAAM,WAAW,kBAAkB,SAAS,UAAU,IAAI;CAC1D,MAAM,YAAY,mBAAmB,UAAU;CAE/C,IAAI,YAAY,GAAG;EACjB,KAAK;EACL,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,mBAAmB,CAAC,CAAC;;CAG7F,OAAO,IAAI,SAAS,YAAY;EAC9B,iBAAiB;GACf,KAAK;GACL,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,mBAAmB,CAAC,CAAC;KAC3E,SAAS;GACZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectorQuery.mjs","names":[],"sources":["../../../src/runtime/polyfill/selectorQuery.ts"],"sourcesContent":["import type {\n SelectorQuery,\n SelectorQueryNodeCallback,\n SelectorQueryNodeFields,\n SelectorQueryNodesRef,\n SelectorQueryTask,\n SelectorTargetDescriptor,\n} from './selectorQueryTypes'\n\nfunction isQueryRoot(value: unknown): value is ParentNode {\n if (!value || typeof value !== 'object') {\n return false\n }\n const target = value as {\n querySelector?: (selector: string) => unknown\n querySelectorAll?: (selector: string) => ArrayLike<unknown>\n }\n return typeof target.querySelector === 'function' && typeof target.querySelectorAll === 'function'\n}\n\nfunction resolveQueryRoot(scope: unknown): ParentNode | undefined {\n const scoped = scope as {\n renderRoot?: unknown\n shadowRoot?: unknown\n $el?: unknown\n } | undefined\n if (isQueryRoot(scoped?.renderRoot)) {\n return scoped?.renderRoot\n }\n if (isQueryRoot(scoped?.shadowRoot)) {\n return scoped?.shadowRoot\n }\n if (isQueryRoot(scoped?.$el)) {\n return scoped?.$el\n }\n if (isQueryRoot(scope)) {\n return scope\n }\n if (typeof document !== 'undefined' && isQueryRoot(document)) {\n return document\n }\n return undefined\n}\n\nfunction resolveViewportTarget() {\n if (typeof window !== 'undefined') {\n return window\n }\n return undefined\n}\n\nfunction resolveQueryTargets(scope: unknown, target: SelectorTargetDescriptor): unknown[] {\n if (target.type === 'viewport') {\n const viewport = resolveViewportTarget()\n return viewport ? [viewport] : []\n }\n const root = resolveQueryRoot(scope)\n if (!root || !target.selector) {\n return []\n }\n if (target.multiple) {\n return Array.from(root.querySelectorAll(target.selector))\n }\n const node = root.querySelector(target.selector)\n return node ? [node] : []\n}\n\nfunction normalizeRectValue(value: unknown) {\n if (typeof value !== 'number' || Number.isNaN(value)) {\n return 0\n }\n return value\n}\n\nfunction getViewportRect() {\n const runtimeWindow = typeof window !== 'undefined' ? window : undefined\n const width = normalizeRectValue(runtimeWindow?.innerWidth)\n const height = normalizeRectValue(runtimeWindow?.innerHeight)\n return {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height,\n }\n}\n\nfunction readNodeRect(node: unknown) {\n if (!node) {\n return null\n }\n if ((typeof window !== 'undefined' && node === window) || node === globalThis) {\n return getViewportRect()\n }\n const target = node as {\n getBoundingClientRect?: () => {\n left?: number\n top?: number\n right?: number\n bottom?: number\n width?: number\n height?: number\n }\n }\n if (typeof target.getBoundingClientRect !== 'function') {\n return null\n }\n const rect = target.getBoundingClientRect()\n const left = normalizeRectValue(rect.left)\n const top = normalizeRectValue(rect.top)\n const width = normalizeRectValue(rect.width)\n const height = normalizeRectValue(rect.height)\n const right = rect.right == null ? left + width : normalizeRectValue(rect.right)\n const bottom = rect.bottom == null ? top + height : normalizeRectValue(rect.bottom)\n return { left, top, right, bottom, width, height }\n}\n\nfunction readNodeScrollOffset(node: unknown) {\n if ((typeof window !== 'undefined' && node === window) || node === globalThis) {\n const runtimeWindow = (typeof window !== 'undefined'\n ? (window as unknown as Record<string, unknown>)\n : (globalThis as Record<string, unknown>))\n return {\n scrollLeft: normalizeRectValue(\n (runtimeWindow.pageXOffset as number | undefined) ?? (runtimeWindow.scrollX as number | undefined),\n ),\n scrollTop: normalizeRectValue(\n (runtimeWindow.pageYOffset as number | undefined) ?? (runtimeWindow.scrollY as number | undefined),\n ),\n }\n }\n const target = node as {\n scrollLeft?: number\n scrollTop?: number\n }\n return {\n scrollLeft: normalizeRectValue(target?.scrollLeft),\n scrollTop: normalizeRectValue(target?.scrollTop),\n }\n}\n\nfunction readNodeFields(node: unknown, fields: SelectorQueryNodeFields) {\n if (!node) {\n return null\n }\n const result: Record<string, any> = {}\n const element = node as HTMLElement\n\n if (fields.id) {\n const elementWithId = element as { id?: string, getAttribute?: (name: string) => string | null }\n result.id = elementWithId.id ?? elementWithId.getAttribute?.('id') ?? ''\n }\n if (fields.dataset) {\n result.dataset = { ...(element.dataset ?? {}) }\n }\n if (fields.rect || fields.size) {\n const rect = readNodeRect(node)\n if (rect) {\n if (fields.rect) {\n result.left = rect.left\n result.top = rect.top\n result.right = rect.right\n result.bottom = rect.bottom\n }\n if (fields.size) {\n result.width = rect.width\n result.height = rect.height\n }\n }\n }\n if (fields.scrollOffset) {\n Object.assign(result, readNodeScrollOffset(node))\n }\n if (fields.properties?.length) {\n for (const key of fields.properties) {\n result[key] = (node as Record<string, unknown>)[key]\n }\n }\n if (fields.computedStyle?.length && typeof getComputedStyle === 'function' && node instanceof HTMLElement) {\n const style = getComputedStyle(node)\n for (const key of fields.computedStyle) {\n result[key] = style.getPropertyValue(key)\n }\n }\n if (fields.node) {\n result.node = node\n }\n if (fields.context) {\n result.context = node\n }\n return result\n}\n\nfunction mapQueryResult(target: SelectorTargetDescriptor, items: unknown[], mapper: (node: unknown) => any) {\n if (target.type === 'node' && target.multiple) {\n return items.map(item => mapper(item))\n }\n const first = items[0]\n if (!first) {\n return null\n }\n return mapper(first)\n}\n\nfunction runQueryTask(scope: unknown, task: SelectorQueryTask) {\n const targets = resolveQueryTargets(scope, task.target)\n if (task.type === 'boundingClientRect') {\n return mapQueryResult(task.target, targets, node => readNodeRect(node))\n }\n if (task.type === 'scrollOffset') {\n return mapQueryResult(task.target, targets, node => readNodeScrollOffset(node))\n }\n if (task.type === 'fields') {\n return mapQueryResult(task.target, targets, node => readNodeFields(node, task.fields))\n }\n return mapQueryResult(task.target, targets, node => ({ node }))\n}\n\nfunction createNodesRef(\n tasks: SelectorQueryTask[],\n queryApi: SelectorQuery,\n target: SelectorTargetDescriptor,\n): SelectorQueryNodesRef {\n return {\n boundingClientRect(callback?: SelectorQueryNodeCallback) {\n tasks.push({ type: 'boundingClientRect', target, callback })\n return queryApi\n },\n scrollOffset(callback?: SelectorQueryNodeCallback) {\n tasks.push({ type: 'scrollOffset', target, callback })\n return queryApi\n },\n fields(fields: SelectorQueryNodeFields, callback?: SelectorQueryNodeCallback) {\n tasks.push({ type: 'fields', target, fields, callback })\n return queryApi\n },\n node(callback?: SelectorQueryNodeCallback) {\n tasks.push({ type: 'node', target, callback })\n return queryApi\n },\n }\n}\n\nexport function createSelectorQueryBridge() {\n let scope: unknown\n const tasks: SelectorQueryTask[] = []\n\n const queryApi: SelectorQuery = {\n in(context?: unknown) {\n scope = context\n return queryApi\n },\n select(selector: string) {\n return createNodesRef(tasks, queryApi, { type: 'node', selector, multiple: false })\n },\n selectAll(selector: string) {\n return createNodesRef(tasks, queryApi, { type: 'node', selector, multiple: true })\n },\n selectViewport() {\n return createNodesRef(tasks, queryApi, { type: 'viewport' })\n },\n exec(callback?: (result: any[]) => void) {\n const result = tasks.map((task) => {\n const value = runQueryTask(scope, task)\n task.callback?.(value)\n return value\n })\n callback?.(result)\n tasks.length = 0\n return queryApi\n },\n }\n\n return queryApi\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"selectorQuery.mjs","names":[],"sources":["../../../src/runtime/polyfill/selectorQuery.ts"],"sourcesContent":["import type {\n SelectorQuery,\n SelectorQueryNodeCallback,\n SelectorQueryNodeFields,\n SelectorQueryNodesRef,\n SelectorQueryTask,\n SelectorTargetDescriptor,\n} from './selectorQueryTypes'\n\nfunction isQueryRoot(value: unknown): value is ParentNode {\n if (!value || typeof value !== 'object') {\n return false\n }\n const target = value as {\n querySelector?: (selector: string) => unknown\n querySelectorAll?: (selector: string) => ArrayLike<unknown>\n }\n return typeof target.querySelector === 'function' && typeof target.querySelectorAll === 'function'\n}\n\nfunction resolveQueryRoot(scope: unknown): ParentNode | undefined {\n const scoped = scope as {\n renderRoot?: unknown\n shadowRoot?: unknown\n $el?: unknown\n } | undefined\n if (isQueryRoot(scoped?.renderRoot)) {\n return scoped?.renderRoot\n }\n if (isQueryRoot(scoped?.shadowRoot)) {\n return scoped?.shadowRoot\n }\n if (isQueryRoot(scoped?.$el)) {\n return scoped?.$el\n }\n if (isQueryRoot(scope)) {\n return scope\n }\n if (typeof document !== 'undefined' && isQueryRoot(document)) {\n return document\n }\n return undefined\n}\n\nfunction resolveViewportTarget() {\n if (typeof window !== 'undefined') {\n return window\n }\n return undefined\n}\n\nfunction resolveQueryTargets(scope: unknown, target: SelectorTargetDescriptor): unknown[] {\n if (target.type === 'viewport') {\n const viewport = resolveViewportTarget()\n return viewport ? [viewport] : []\n }\n const root = resolveQueryRoot(scope)\n if (!root || !target.selector) {\n return []\n }\n if (target.multiple) {\n return Array.from(root.querySelectorAll(target.selector))\n }\n const node = root.querySelector(target.selector)\n return node ? [node] : []\n}\n\nfunction normalizeRectValue(value: unknown) {\n if (typeof value !== 'number' || Number.isNaN(value)) {\n return 0\n }\n return value\n}\n\nfunction getViewportRect() {\n const runtimeWindow = typeof window !== 'undefined' ? window : undefined\n const width = normalizeRectValue(runtimeWindow?.innerWidth)\n const height = normalizeRectValue(runtimeWindow?.innerHeight)\n return {\n left: 0,\n top: 0,\n right: width,\n bottom: height,\n width,\n height,\n }\n}\n\nfunction readNodeRect(node: unknown) {\n if (!node) {\n return null\n }\n if ((typeof window !== 'undefined' && node === window) || node === globalThis) {\n return getViewportRect()\n }\n const target = node as {\n getBoundingClientRect?: () => {\n left?: number\n top?: number\n right?: number\n bottom?: number\n width?: number\n height?: number\n }\n }\n if (typeof target.getBoundingClientRect !== 'function') {\n return null\n }\n const rect = target.getBoundingClientRect()\n const left = normalizeRectValue(rect.left)\n const top = normalizeRectValue(rect.top)\n const width = normalizeRectValue(rect.width)\n const height = normalizeRectValue(rect.height)\n const right = rect.right == null ? left + width : normalizeRectValue(rect.right)\n const bottom = rect.bottom == null ? top + height : normalizeRectValue(rect.bottom)\n return { left, top, right, bottom, width, height }\n}\n\nfunction readNodeScrollOffset(node: unknown) {\n if ((typeof window !== 'undefined' && node === window) || node === globalThis) {\n const runtimeWindow = (typeof window !== 'undefined'\n ? (window as unknown as Record<string, unknown>)\n : (globalThis as Record<string, unknown>))\n return {\n scrollLeft: normalizeRectValue(\n (runtimeWindow.pageXOffset as number | undefined) ?? (runtimeWindow.scrollX as number | undefined),\n ),\n scrollTop: normalizeRectValue(\n (runtimeWindow.pageYOffset as number | undefined) ?? (runtimeWindow.scrollY as number | undefined),\n ),\n }\n }\n const target = node as {\n scrollLeft?: number\n scrollTop?: number\n }\n return {\n scrollLeft: normalizeRectValue(target?.scrollLeft),\n scrollTop: normalizeRectValue(target?.scrollTop),\n }\n}\n\nfunction readNodeFields(node: unknown, fields: SelectorQueryNodeFields) {\n if (!node) {\n return null\n }\n const result: Record<string, any> = {}\n const element = node as HTMLElement\n\n if (fields.id) {\n const elementWithId = element as { id?: string, getAttribute?: (name: string) => string | null }\n result.id = elementWithId.id ?? elementWithId.getAttribute?.('id') ?? ''\n }\n if (fields.dataset) {\n result.dataset = { ...(element.dataset ?? {}) }\n }\n if (fields.rect || fields.size) {\n const rect = readNodeRect(node)\n if (rect) {\n if (fields.rect) {\n result.left = rect.left\n result.top = rect.top\n result.right = rect.right\n result.bottom = rect.bottom\n }\n if (fields.size) {\n result.width = rect.width\n result.height = rect.height\n }\n }\n }\n if (fields.scrollOffset) {\n Object.assign(result, readNodeScrollOffset(node))\n }\n if (fields.properties?.length) {\n for (const key of fields.properties) {\n result[key] = (node as Record<string, unknown>)[key]\n }\n }\n if (fields.computedStyle?.length && typeof getComputedStyle === 'function' && node instanceof HTMLElement) {\n const style = getComputedStyle(node)\n for (const key of fields.computedStyle) {\n result[key] = style.getPropertyValue(key)\n }\n }\n if (fields.node) {\n result.node = node\n }\n if (fields.context) {\n result.context = node\n }\n return result\n}\n\nfunction mapQueryResult(target: SelectorTargetDescriptor, items: unknown[], mapper: (node: unknown) => any) {\n if (target.type === 'node' && target.multiple) {\n return items.map(item => mapper(item))\n }\n const first = items[0]\n if (!first) {\n return null\n }\n return mapper(first)\n}\n\nfunction runQueryTask(scope: unknown, task: SelectorQueryTask) {\n const targets = resolveQueryTargets(scope, task.target)\n if (task.type === 'boundingClientRect') {\n return mapQueryResult(task.target, targets, node => readNodeRect(node))\n }\n if (task.type === 'scrollOffset') {\n return mapQueryResult(task.target, targets, node => readNodeScrollOffset(node))\n }\n if (task.type === 'fields') {\n return mapQueryResult(task.target, targets, node => readNodeFields(node, task.fields))\n }\n return mapQueryResult(task.target, targets, node => ({ node }))\n}\n\nfunction createNodesRef(\n tasks: SelectorQueryTask[],\n queryApi: SelectorQuery,\n target: SelectorTargetDescriptor,\n): SelectorQueryNodesRef {\n return {\n boundingClientRect(callback?: SelectorQueryNodeCallback) {\n tasks.push({ type: 'boundingClientRect', target, callback })\n return queryApi\n },\n scrollOffset(callback?: SelectorQueryNodeCallback) {\n tasks.push({ type: 'scrollOffset', target, callback })\n return queryApi\n },\n fields(fields: SelectorQueryNodeFields, callback?: SelectorQueryNodeCallback) {\n tasks.push({ type: 'fields', target, fields, callback })\n return queryApi\n },\n node(callback?: SelectorQueryNodeCallback) {\n tasks.push({ type: 'node', target, callback })\n return queryApi\n },\n }\n}\n\nexport function createSelectorQueryBridge() {\n let scope: unknown\n const tasks: SelectorQueryTask[] = []\n\n const queryApi: SelectorQuery = {\n in(context?: unknown) {\n scope = context\n return queryApi\n },\n select(selector: string) {\n return createNodesRef(tasks, queryApi, { type: 'node', selector, multiple: false })\n },\n selectAll(selector: string) {\n return createNodesRef(tasks, queryApi, { type: 'node', selector, multiple: true })\n },\n selectViewport() {\n return createNodesRef(tasks, queryApi, { type: 'viewport' })\n },\n exec(callback?: (result: any[]) => void) {\n const result = tasks.map((task) => {\n const value = runQueryTask(scope, task)\n task.callback?.(value)\n return value\n })\n callback?.(result)\n tasks.length = 0\n return queryApi\n },\n }\n\n return queryApi\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.mjs","names":[],"sources":["../../../src/runtime/polyfill/storage.ts"],"sourcesContent":["const WEB_STORAGE_PREFIX = '__weapp_vite_web_storage__:'\nconst WEB_STORAGE_LIMIT_SIZE_KB = 10240\nconst memoryStorage = new Map<string, any>()\n\nfunction isRuntimeStorageLike(value: unknown): value is Storage {\n return !!value\n && typeof value === 'object'\n && typeof (value as Storage).getItem === 'function'\n && typeof (value as Storage).setItem === 'function'\n && typeof (value as Storage).removeItem === 'function'\n && typeof (value as Storage).key === 'function'\n}\n\nfunction getRuntimeStorage() {\n if (typeof localStorage === 'undefined' || !isRuntimeStorageLike(localStorage)) {\n return undefined\n }\n return localStorage\n}\n\nfunction storageKeyWithPrefix(key: string) {\n return `${WEB_STORAGE_PREFIX}${key}`\n}\n\nfunction encodeStorageValue(value: any) {\n if (value === undefined) {\n return JSON.stringify({ type: 'undefined' })\n }\n return JSON.stringify({ type: 'json', value })\n}\n\nfunction decodeStorageValue(value: string) {\n try {\n const parsed = JSON.parse(value) as { type?: string, value?: any }\n if (parsed?.type === 'undefined') {\n return undefined\n }\n if (parsed?.type === 'json') {\n return parsed.value\n }\n return parsed\n }\n catch {\n return value\n }\n}\n\nexport function normalizeStorageKey(key: unknown) {\n if (typeof key !== 'string') {\n return ''\n }\n return key.trim()\n}\n\nexport function hasStorageKey(key: string) {\n if (memoryStorage.has(key)) {\n return true\n }\n const storage = getRuntimeStorage()\n if (!storage) {\n return false\n }\n return storage.getItem(storageKeyWithPrefix(key)) !== null\n}\n\nfunction listStorageKeys() {\n const keySet = new Set<string>(memoryStorage.keys())\n const storage = getRuntimeStorage()\n if (!storage) {\n return Array.from(keySet)\n }\n for (let index = 0; index < storage.length; index += 1) {\n const key = storage.key(index)\n if (key?.startsWith(WEB_STORAGE_PREFIX)) {\n keySet.add(key.slice(WEB_STORAGE_PREFIX.length))\n }\n }\n return Array.from(keySet)\n}\n\nexport function setStorageSyncInternal(key: string, data: any) {\n memoryStorage.set(key, data)\n const storage = getRuntimeStorage()\n if (storage) {\n storage.setItem(storageKeyWithPrefix(key), encodeStorageValue(data))\n }\n}\n\nexport function getStorageSyncInternal(key: string) {\n if (memoryStorage.has(key)) {\n return memoryStorage.get(key)\n }\n const storage = getRuntimeStorage()\n if (!storage) {\n return ''\n }\n const raw = storage.getItem(storageKeyWithPrefix(key))\n if (raw == null) {\n return ''\n }\n const decoded = decodeStorageValue(raw)\n memoryStorage.set(key, decoded)\n return decoded\n}\n\nexport function removeStorageSyncInternal(key: string) {\n memoryStorage.delete(key)\n const storage = getRuntimeStorage()\n if (storage) {\n storage.removeItem(storageKeyWithPrefix(key))\n }\n}\n\nexport function clearStorageSyncInternal() {\n memoryStorage.clear()\n const storage = getRuntimeStorage()\n if (!storage) {\n return\n }\n const removeKeys: string[] = []\n for (let index = 0; index < storage.length; index += 1) {\n const key = storage.key(index)\n if (key?.startsWith(WEB_STORAGE_PREFIX)) {\n removeKeys.push(key)\n }\n }\n for (const key of removeKeys) {\n storage.removeItem(key)\n }\n}\n\nfunction calculateStorageCurrentSize(keys: string[]) {\n let bytes = 0\n for (const key of keys) {\n const value = getStorageSyncInternal(key)\n const encoded = encodeStorageValue(value)\n bytes += encoded.length\n }\n return Math.ceil(bytes / 1024)\n}\n\nexport function getStorageInfoSyncInternal() {\n const keys = listStorageKeys()\n return {\n errMsg: 'getStorageInfoSync:ok',\n keys,\n currentSize: calculateStorageCurrentSize(keys),\n limitSize: WEB_STORAGE_LIMIT_SIZE_KB,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"storage.mjs","names":[],"sources":["../../../src/runtime/polyfill/storage.ts"],"sourcesContent":["const WEB_STORAGE_PREFIX = '__weapp_vite_web_storage__:'\nconst WEB_STORAGE_LIMIT_SIZE_KB = 10240\nconst memoryStorage = new Map<string, any>()\n\nfunction isRuntimeStorageLike(value: unknown): value is Storage {\n return !!value\n && typeof value === 'object'\n && typeof (value as Storage).getItem === 'function'\n && typeof (value as Storage).setItem === 'function'\n && typeof (value as Storage).removeItem === 'function'\n && typeof (value as Storage).key === 'function'\n}\n\nfunction getRuntimeStorage() {\n if (typeof localStorage === 'undefined' || !isRuntimeStorageLike(localStorage)) {\n return undefined\n }\n return localStorage\n}\n\nfunction storageKeyWithPrefix(key: string) {\n return `${WEB_STORAGE_PREFIX}${key}`\n}\n\nfunction encodeStorageValue(value: any) {\n if (value === undefined) {\n return JSON.stringify({ type: 'undefined' })\n }\n return JSON.stringify({ type: 'json', value })\n}\n\nfunction decodeStorageValue(value: string) {\n try {\n const parsed = JSON.parse(value) as { type?: string, value?: any }\n if (parsed?.type === 'undefined') {\n return undefined\n }\n if (parsed?.type === 'json') {\n return parsed.value\n }\n return parsed\n }\n catch {\n return value\n }\n}\n\nexport function normalizeStorageKey(key: unknown) {\n if (typeof key !== 'string') {\n return ''\n }\n return key.trim()\n}\n\nexport function hasStorageKey(key: string) {\n if (memoryStorage.has(key)) {\n return true\n }\n const storage = getRuntimeStorage()\n if (!storage) {\n return false\n }\n return storage.getItem(storageKeyWithPrefix(key)) !== null\n}\n\nfunction listStorageKeys() {\n const keySet = new Set<string>(memoryStorage.keys())\n const storage = getRuntimeStorage()\n if (!storage) {\n return Array.from(keySet)\n }\n for (let index = 0; index < storage.length; index += 1) {\n const key = storage.key(index)\n if (key?.startsWith(WEB_STORAGE_PREFIX)) {\n keySet.add(key.slice(WEB_STORAGE_PREFIX.length))\n }\n }\n return Array.from(keySet)\n}\n\nexport function setStorageSyncInternal(key: string, data: any) {\n memoryStorage.set(key, data)\n const storage = getRuntimeStorage()\n if (storage) {\n storage.setItem(storageKeyWithPrefix(key), encodeStorageValue(data))\n }\n}\n\nexport function getStorageSyncInternal(key: string) {\n if (memoryStorage.has(key)) {\n return memoryStorage.get(key)\n }\n const storage = getRuntimeStorage()\n if (!storage) {\n return ''\n }\n const raw = storage.getItem(storageKeyWithPrefix(key))\n if (raw == null) {\n return ''\n }\n const decoded = decodeStorageValue(raw)\n memoryStorage.set(key, decoded)\n return decoded\n}\n\nexport function removeStorageSyncInternal(key: string) {\n memoryStorage.delete(key)\n const storage = getRuntimeStorage()\n if (storage) {\n storage.removeItem(storageKeyWithPrefix(key))\n }\n}\n\nexport function clearStorageSyncInternal() {\n memoryStorage.clear()\n const storage = getRuntimeStorage()\n if (!storage) {\n return\n }\n const removeKeys: string[] = []\n for (let index = 0; index < storage.length; index += 1) {\n const key = storage.key(index)\n if (key?.startsWith(WEB_STORAGE_PREFIX)) {\n removeKeys.push(key)\n }\n }\n for (const key of removeKeys) {\n storage.removeItem(key)\n }\n}\n\nfunction calculateStorageCurrentSize(keys: string[]) {\n let bytes = 0\n for (const key of keys) {\n const value = getStorageSyncInternal(key)\n const encoded = encodeStorageValue(value)\n bytes += encoded.length\n }\n return Math.ceil(bytes / 1024)\n}\n\nexport function getStorageInfoSyncInternal() {\n const keys = listStorageKeys()\n return {\n errMsg: 'getStorageInfoSync:ok',\n keys,\n currentSize: calculateStorageCurrentSize(keys),\n limitSize: WEB_STORAGE_LIMIT_SIZE_KB,\n }\n}\n"],"mappings":"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"}