@weapp-vite/web 1.3.19 → 1.3.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compiler/wxml/attributes.mjs.map +1 -1
- package/dist/compiler/wxml/compile.mjs.map +1 -1
- package/dist/compiler/wxml/dependency.mjs.map +1 -1
- package/dist/compiler/wxml/interpolation.mjs.map +1 -1
- package/dist/compiler/wxml/navigation.mjs.map +1 -1
- package/dist/compiler/wxml/parser.mjs.map +1 -1
- package/dist/compiler/wxml/renderer.mjs.map +1 -1
- package/dist/compiler/wxml/specialNodes.mjs.map +1 -1
- package/dist/compiler/wxs.mjs.map +1 -1
- package/dist/css/wxss.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/plugin/constants.mjs.map +1 -1
- package/dist/plugin/entry.mjs.map +1 -1
- package/dist/plugin/files.mjs.map +1 -1
- package/dist/plugin/index.mjs.map +1 -1
- package/dist/plugin/navigation.mjs.map +1 -1
- package/dist/plugin/path.mjs.map +1 -1
- package/dist/plugin/register.mjs.map +1 -1
- package/dist/plugin/scan.mjs.map +1 -1
- package/dist/plugin/scanConfig.mjs.map +1 -1
- package/dist/plugin/state.mjs.map +1 -1
- package/dist/runtime/button/helpers.mjs.map +1 -1
- package/dist/runtime/button/index.mjs.map +1 -1
- package/dist/runtime/button/style.mjs.map +1 -1
- package/dist/runtime/component/behavior.mjs.map +1 -1
- package/dist/runtime/component/constants.mjs.map +1 -1
- package/dist/runtime/component/dom.mjs.map +1 -1
- package/dist/runtime/component/element.mjs +3 -2
- package/dist/runtime/component/element.mjs.map +1 -1
- package/dist/runtime/component/events.mjs.map +1 -1
- package/dist/runtime/component/index.mjs.map +1 -1
- package/dist/runtime/component/state.mjs +2 -1
- package/dist/runtime/component/state.mjs.map +1 -1
- package/dist/runtime/component/utils.mjs.map +1 -1
- package/dist/runtime/execution.mjs.map +1 -1
- package/dist/runtime/legacyTemplate/dom.mjs.map +1 -1
- package/dist/runtime/legacyTemplate/expression.mjs.map +1 -1
- package/dist/runtime/legacyTemplate/index.mjs.map +1 -1
- package/dist/runtime/navigationBar/index.mjs.map +1 -1
- package/dist/runtime/polyfill/ad.mjs.map +1 -1
- package/dist/runtime/polyfill/appState.mjs.map +1 -1
- package/dist/runtime/polyfill/async.mjs.map +1 -1
- package/dist/runtime/polyfill/auth.mjs.map +1 -1
- package/dist/runtime/polyfill/authApi.mjs.map +1 -1
- package/dist/runtime/polyfill/background.mjs.map +1 -1
- package/dist/runtime/polyfill/canvasContext.mjs.map +1 -1
- package/dist/runtime/polyfill/capability.mjs.map +1 -1
- package/dist/runtime/polyfill/cloud.mjs.map +1 -1
- package/dist/runtime/polyfill/device.mjs.map +1 -1
- package/dist/runtime/polyfill/deviceApi.mjs.map +1 -1
- package/dist/runtime/polyfill/deviceAuthSystemApi.mjs.map +1 -1
- package/dist/runtime/polyfill/filePicker.mjs.map +1 -1
- package/dist/runtime/polyfill/fileSystemManager.mjs.map +1 -1
- package/dist/runtime/polyfill/files.mjs.map +1 -1
- package/dist/runtime/polyfill/index.mjs.map +1 -1
- package/dist/runtime/polyfill/interaction.mjs.map +1 -1
- package/dist/runtime/polyfill/interactionApi.mjs.map +1 -1
- package/dist/runtime/polyfill/location.mjs.map +1 -1
- package/dist/runtime/polyfill/locationApi.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaActions.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaApi/file.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaApi/info.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaApi/picker.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaApi/preview.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaApi/process.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaInfo.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaPicker.mjs.map +1 -1
- package/dist/runtime/polyfill/mediaProcess.mjs.map +1 -1
- package/dist/runtime/polyfill/menuApi.mjs.map +1 -1
- package/dist/runtime/polyfill/navigationBarRuntime.mjs.map +1 -1
- package/dist/runtime/polyfill/network/request.mjs.map +1 -1
- package/dist/runtime/polyfill/network/requestBridge.mjs.map +1 -1
- package/dist/runtime/polyfill/network/status.mjs.map +1 -1
- package/dist/runtime/polyfill/platformApi.mjs.map +1 -1
- package/dist/runtime/polyfill/platformRuntime.mjs.map +1 -1
- package/dist/runtime/polyfill/routeRuntime/dom.mjs.map +1 -1
- package/dist/runtime/polyfill/routeRuntime/lifecycle.mjs.map +1 -1
- package/dist/runtime/polyfill/routeRuntime/options.mjs.map +1 -1
- package/dist/runtime/polyfill/routeRuntime/url.mjs.map +1 -1
- package/dist/runtime/polyfill/routeRuntime.mjs.map +1 -1
- package/dist/runtime/polyfill/runtimeCapabilityApi.mjs.map +1 -1
- package/dist/runtime/polyfill/runtimeDataApi.mjs.map +1 -1
- package/dist/runtime/polyfill/runtimeInfra.mjs.map +1 -1
- package/dist/runtime/polyfill/runtimeOps.mjs.map +1 -1
- package/dist/runtime/polyfill/selectorQuery.mjs.map +1 -1
- package/dist/runtime/polyfill/storage.mjs.map +1 -1
- package/dist/runtime/polyfill/storageAsync.mjs.map +1 -1
- package/dist/runtime/polyfill/subscribe.mjs.map +1 -1
- package/dist/runtime/polyfill/system.mjs.map +1 -1
- package/dist/runtime/polyfill/systemApi.mjs.map +1 -1
- package/dist/runtime/polyfill/ui.mjs.map +1 -1
- package/dist/runtime/polyfill/uiFeedback.mjs.map +1 -1
- package/dist/runtime/polyfill/uiMediaApi.mjs.map +1 -1
- package/dist/runtime/polyfill/videoContext.mjs.map +1 -1
- package/dist/runtime/polyfill/vkSession.mjs.map +1 -1
- package/dist/runtime/polyfill/windowResize.mjs.map +1 -1
- package/dist/runtime/polyfill/worker.mjs.map +1 -1
- package/dist/runtime/renderContext.mjs.map +1 -1
- package/dist/runtime/rpx.mjs.map +1 -1
- package/dist/runtime/style.mjs.map +1 -1
- package/dist/runtime/utils/object.mjs +8 -0
- package/dist/runtime/utils/object.mjs.map +1 -0
- package/dist/runtime/warning.mjs.map +1 -1
- package/dist/shared/slugify.mjs.map +1 -1
- package/dist/shared/wxml.mjs.map +1 -1
- package/package.json +5 -5
|
@@ -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;
|
|
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,KAAK,GACjD,OAAO;CAET,OAAO,KAAK,IAAI,GAAG,KAAK;AAC1B;AAEA,SAAS,mBAAmB,KAAa;CACvC,IAAI,OAAO,WAAW,aACpB;CAEF,MAAM,gBAAgB;CAGtB,IAAI,OAAO,cAAc,aAAa,YACpC;CAEF,cAAc,SAAS,GAAG,GAAG;AAC/B;AAEA,SAAgB,eAAe,UAAuB;CACpD,IAAI,OAAO,aAAa,YACtB;CAEF,wBAAwB,SAAS,CAAC;AACpC;AAEA,SAAgB,2BAA2B,SAAe;CACxD,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,0BAA0B,CAAC,CAAC;AACpG;AAEA,SAAgB,0BAA0B,SAAe;CACvD,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,yBAAyB,CAAC,CAAC;AACnG;AAEA,SAAgB,mBAAmB,SAAe;CAChD,MAAM,gBAAiB,OAAO,aAAa,cACtC,SAAuD,gBACxD;CACJ,IAAI,iBAAiB,OAAO,cAAc,SAAS,YACjD,cAAc,KAAK;CAErB,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;AAC5F;AAEA,SAAgB,qBAAqB,SAAe;CAElD,IAAI,CADS,sBAAsB,OAC3B,GAAG;EACT,MAAM,UAAU,4BAA4B,SAAS,kCAAkC;EACvF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,oBAAoB,CAAC,CAAC;AAC9F;AAEA,SAAgB,wBAAwB,SAAe;CAErD,IAAI,CADS,sBAAsB,OAC3B,GAAG;EACT,MAAM,UAAU,4BAA4B,SAAS,qCAAqC;EAC1F,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,uBAAuB,CAAC,CAAC;AACjG;AAEA,SAAgB,mBAAmB,SAAe;CAChD,MAAM,YAAY,iBAAiB,SAAS,SAAS;CACrD,MAAM,WAAW,kBAAkB,SAAS,UAAU,GAAG;CACzD,MAAM,YAAY,mBAAmB,SAAS;CAE9C,IAAI,YAAY,GAAG;EACjB,IAAI;EACJ,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;CAC5F;CAEA,OAAO,IAAI,SAAS,YAAY;EAC9B,iBAAiB;GACf,IAAI;GACJ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;EAC7E,GAAG,QAAQ;CACb,CAAC;AACH"}
|
|
@@ -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":";AAAA,MAAM,qBAAqB;AAC3B,MAAM,4BAA4B;AAClC,MAAM,gCAAgB,IAAI,
|
|
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":";AAAA,MAAM,qBAAqB;AAC3B,MAAM,4BAA4B;AAClC,MAAM,gCAAgB,IAAI,IAAiB;AAE3C,SAAS,qBAAqB,OAAkC;CAC9D,OAAO,CAAC,CAAC,SACJ,OAAO,UAAU,YACjB,OAAQ,MAAkB,YAAY,cACtC,OAAQ,MAAkB,YAAY,cACtC,OAAQ,MAAkB,eAAe,cACzC,OAAQ,MAAkB,QAAQ;AACzC;AAEA,SAAS,oBAAoB;CAC3B,IAAI,OAAO,iBAAiB,eAAe,CAAC,qBAAqB,YAAY,GAC3E;CAEF,OAAO;AACT;AAEA,SAAS,qBAAqB,KAAa;CACzC,OAAO,GAAG,qBAAqB;AACjC;AAEA,SAAS,mBAAmB,OAAY;CACtC,IAAI,UAAU,QACZ,OAAO,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;CAE7C,OAAO,KAAK,UAAU;EAAE,MAAM;EAAQ;CAAM,CAAC;AAC/C;AAEA,SAAS,mBAAmB,OAAe;CACzC,IAAI;EACF,MAAM,SAAS,KAAK,MAAM,KAAK;EAC/B,IAAI,QAAQ,SAAS,aACnB;EAEF,IAAI,QAAQ,SAAS,QACnB,OAAO,OAAO;EAEhB,OAAO;CACT,QACM;EACJ,OAAO;CACT;AACF;AAEA,SAAgB,oBAAoB,KAAc;CAChD,IAAI,OAAO,QAAQ,UACjB,OAAO;CAET,OAAO,IAAI,KAAK;AAClB;AAEA,SAAgB,cAAc,KAAa;CACzC,IAAI,cAAc,IAAI,GAAG,GACvB,OAAO;CAET,MAAM,UAAU,kBAAkB;CAClC,IAAI,CAAC,SACH,OAAO;CAET,OAAO,QAAQ,QAAQ,qBAAqB,GAAG,CAAC,MAAM;AACxD;AAEA,SAAS,kBAAkB;CACzB,MAAM,SAAS,IAAI,IAAY,cAAc,KAAK,CAAC;CACnD,MAAM,UAAU,kBAAkB;CAClC,IAAI,CAAC,SACH,OAAO,MAAM,KAAK,MAAM;CAE1B,KAAK,IAAI,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,SAAS,GAAG;EACtD,MAAM,MAAM,QAAQ,IAAI,KAAK;EAC7B,IAAI,KAAK,WAAW,kBAAkB,GACpC,OAAO,IAAI,IAAI,MAAM,EAAyB,CAAC;CAEnD;CACA,OAAO,MAAM,KAAK,MAAM;AAC1B;AAEA,SAAgB,uBAAuB,KAAa,MAAW;CAC7D,cAAc,IAAI,KAAK,IAAI;CAC3B,MAAM,UAAU,kBAAkB;CAClC,IAAI,SACF,QAAQ,QAAQ,qBAAqB,GAAG,GAAG,mBAAmB,IAAI,CAAC;AAEvE;AAEA,SAAgB,uBAAuB,KAAa;CAClD,IAAI,cAAc,IAAI,GAAG,GACvB,OAAO,cAAc,IAAI,GAAG;CAE9B,MAAM,UAAU,kBAAkB;CAClC,IAAI,CAAC,SACH,OAAO;CAET,MAAM,MAAM,QAAQ,QAAQ,qBAAqB,GAAG,CAAC;CACrD,IAAI,OAAO,MACT,OAAO;CAET,MAAM,UAAU,mBAAmB,GAAG;CACtC,cAAc,IAAI,KAAK,OAAO;CAC9B,OAAO;AACT;AAEA,SAAgB,0BAA0B,KAAa;CACrD,cAAc,OAAO,GAAG;CACxB,MAAM,UAAU,kBAAkB;CAClC,IAAI,SACF,QAAQ,WAAW,qBAAqB,GAAG,CAAC;AAEhD;AAEA,SAAgB,2BAA2B;CACzC,cAAc,MAAM;CACpB,MAAM,UAAU,kBAAkB;CAClC,IAAI,CAAC,SACH;CAEF,MAAM,aAAuB,CAAC;CAC9B,KAAK,IAAI,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,SAAS,GAAG;EACtD,MAAM,MAAM,QAAQ,IAAI,KAAK;EAC7B,IAAI,KAAK,WAAW,kBAAkB,GACpC,WAAW,KAAK,GAAG;CAEvB;CACA,KAAK,MAAM,OAAO,YAChB,QAAQ,WAAW,GAAG;AAE1B;AAEA,SAAS,4BAA4B,MAAgB;CACnD,IAAI,QAAQ;CACZ,KAAK,MAAM,OAAO,MAAM;EAEtB,MAAM,UAAU,mBADF,uBAAuB,GACE,CAAC;EACxC,SAAS,QAAQ;CACnB;CACA,OAAO,KAAK,KAAK,QAAQ,IAAI;AAC/B;AAEA,SAAgB,6BAA6B;CAC3C,MAAM,OAAO,gBAAgB;CAC7B,OAAO;EACL,QAAQ;EACR;EACA,aAAa,4BAA4B,IAAI;EAC7C,WAAW;CACb;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storageAsync.mjs","names":[],"sources":["../../../src/runtime/polyfill/storageAsync.ts"],"sourcesContent":["import type { MiniProgramAsyncOptions, MiniProgramBaseResult } from './types/base'\nimport type { GetStorageOptions, RemoveStorageOptions, SetStorageOptions, StorageInfoResult } from './types/common'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n clearStorageSyncInternal,\n getStorageInfoSyncInternal,\n getStorageSyncInternal,\n hasStorageKey,\n normalizeStorageKey,\n removeStorageSyncInternal,\n setStorageSyncInternal,\n} from './storage'\n\nexport function setStorageBridge(options?: SetStorageOptions) {\n const key = normalizeStorageKey(options?.key)\n if (!key) {\n const failure = callMiniProgramAsyncFailure(options, 'setStorage:fail invalid key')\n return Promise.reject(failure)\n }\n try {\n setStorageSyncInternal(key, options?.data)\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `setStorage:fail ${message}`)\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'setStorage:ok' }))\n}\n\nexport function getStorageBridge(options?: GetStorageOptions) {\n const key = normalizeStorageKey(options?.key)\n if (!key) {\n const failure = callMiniProgramAsyncFailure(options, 'getStorage:fail invalid key')\n return Promise.reject(failure)\n }\n if (!hasStorageKey(key)) {\n const failure = callMiniProgramAsyncFailure(options, `getStorage:fail data not found for key ${key}`)\n return Promise.reject(failure)\n }\n const data = getStorageSyncInternal(key)\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'getStorage:ok', data }))\n}\n\nexport function removeStorageBridge(options?: RemoveStorageOptions) {\n const key = normalizeStorageKey(options?.key)\n if (!key) {\n const failure = callMiniProgramAsyncFailure(options, 'removeStorage:fail invalid key')\n return Promise.reject(failure)\n }\n try {\n removeStorageSyncInternal(key)\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `removeStorage:fail ${message}`)\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'removeStorage:ok' }))\n}\n\nexport function clearStorageBridge(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n clearStorageSyncInternal()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'clearStorage:ok' }))\n}\n\nexport function getStorageInfoBridge(options?: MiniProgramAsyncOptions<StorageInfoResult>) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n ...getStorageInfoSyncInternal(),\n errMsg: 'getStorageInfo:ok',\n }))\n}\n"],"mappings":";;;;AAgBA,SAAgB,iBAAiB,SAA6B;CAC5D,MAAM,MAAM,oBAAoB,SAAS,
|
|
1
|
+
{"version":3,"file":"storageAsync.mjs","names":[],"sources":["../../../src/runtime/polyfill/storageAsync.ts"],"sourcesContent":["import type { MiniProgramAsyncOptions, MiniProgramBaseResult } from './types/base'\nimport type { GetStorageOptions, RemoveStorageOptions, SetStorageOptions, StorageInfoResult } from './types/common'\nimport {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n clearStorageSyncInternal,\n getStorageInfoSyncInternal,\n getStorageSyncInternal,\n hasStorageKey,\n normalizeStorageKey,\n removeStorageSyncInternal,\n setStorageSyncInternal,\n} from './storage'\n\nexport function setStorageBridge(options?: SetStorageOptions) {\n const key = normalizeStorageKey(options?.key)\n if (!key) {\n const failure = callMiniProgramAsyncFailure(options, 'setStorage:fail invalid key')\n return Promise.reject(failure)\n }\n try {\n setStorageSyncInternal(key, options?.data)\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `setStorage:fail ${message}`)\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'setStorage:ok' }))\n}\n\nexport function getStorageBridge(options?: GetStorageOptions) {\n const key = normalizeStorageKey(options?.key)\n if (!key) {\n const failure = callMiniProgramAsyncFailure(options, 'getStorage:fail invalid key')\n return Promise.reject(failure)\n }\n if (!hasStorageKey(key)) {\n const failure = callMiniProgramAsyncFailure(options, `getStorage:fail data not found for key ${key}`)\n return Promise.reject(failure)\n }\n const data = getStorageSyncInternal(key)\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'getStorage:ok', data }))\n}\n\nexport function removeStorageBridge(options?: RemoveStorageOptions) {\n const key = normalizeStorageKey(options?.key)\n if (!key) {\n const failure = callMiniProgramAsyncFailure(options, 'removeStorage:fail invalid key')\n return Promise.reject(failure)\n }\n try {\n removeStorageSyncInternal(key)\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `removeStorage:fail ${message}`)\n return Promise.reject(failure)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'removeStorage:ok' }))\n}\n\nexport function clearStorageBridge(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n clearStorageSyncInternal()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'clearStorage:ok' }))\n}\n\nexport function getStorageInfoBridge(options?: MiniProgramAsyncOptions<StorageInfoResult>) {\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n ...getStorageInfoSyncInternal(),\n errMsg: 'getStorageInfo:ok',\n }))\n}\n"],"mappings":";;;;AAgBA,SAAgB,iBAAiB,SAA6B;CAC5D,MAAM,MAAM,oBAAoB,SAAS,GAAG;CAC5C,IAAI,CAAC,KAAK;EACR,MAAM,UAAU,4BAA4B,SAAS,6BAA6B;EAClF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,IAAI;EACF,uBAAuB,KAAK,SAAS,IAAI;CAC3C,SACO,OAAO;EAEZ,MAAM,UAAU,4BAA4B,SAAS,mBADrC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GACY;EACjF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,gBAAgB,CAAC,CAAC;AAC1F;AAEA,SAAgB,iBAAiB,SAA6B;CAC5D,MAAM,MAAM,oBAAoB,SAAS,GAAG;CAC5C,IAAI,CAAC,KAAK;EACR,MAAM,UAAU,4BAA4B,SAAS,6BAA6B;EAClF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,IAAI,CAAC,cAAc,GAAG,GAAG;EACvB,MAAM,UAAU,4BAA4B,SAAS,0CAA0C,KAAK;EACpG,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,MAAM,OAAO,uBAAuB,GAAG;CACvC,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;EAAE,QAAQ;EAAiB;CAAK,CAAC,CAAC;AAChG;AAEA,SAAgB,oBAAoB,SAAgC;CAClE,MAAM,MAAM,oBAAoB,SAAS,GAAG;CAC5C,IAAI,CAAC,KAAK;EACR,MAAM,UAAU,4BAA4B,SAAS,gCAAgC;EACrF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,IAAI;EACF,0BAA0B,GAAG;CAC/B,SACO,OAAO;EAEZ,MAAM,UAAU,4BAA4B,SAAS,sBADrC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GACe;EACpF,OAAO,QAAQ,OAAO,OAAO;CAC/B;CACA,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,mBAAmB,CAAC,CAAC;AAC7F;AAEA,SAAgB,mBAAmB,SAA0D;CAC3F,yBAAyB;CACzB,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,kBAAkB,CAAC,CAAC;AAC5F;AAEA,SAAgB,qBAAqB,SAAsD;CACzF,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;EAC1D,GAAG,2BAA2B;EAC9B,QAAQ;CACV,CAAC,CAAC;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscribe.mjs","names":["runtimeGlobal"],"sources":["../../../src/runtime/polyfill/subscribe.ts"],"sourcesContent":["import { WEAPP_VITE_WEB_REQUEST_SUBSCRIBE_MESSAGE_KEY } from '@weapp-core/constants'\n\nexport type SubscribeMessageDecision = 'accept' | 'reject' | 'ban' | 'filter'\n\nexport function normalizeSubscribeDecision(value: unknown): SubscribeMessageDecision {\n if (value === 'accept' || value === 'reject' || value === 'ban' || value === 'filter') {\n return value\n }\n return 'accept'\n}\n\nexport function normalizeSubscribeTemplateIds(value: unknown) {\n if (!Array.isArray(value)) {\n return []\n }\n return value\n .filter((item): item is string => typeof item === 'string')\n .map(item => item.trim())\n .filter(Boolean)\n}\n\nexport function resolveSubscribeDecisionMap(tmplIds: string[]) {\n const runtimeGlobal = globalThis as Record<string, unknown>\n const preset = runtimeGlobal[WEAPP_VITE_WEB_REQUEST_SUBSCRIBE_MESSAGE_KEY]\n const presetValue = typeof preset === 'function'\n ? (preset as (ids: string[]) => unknown)(tmplIds)\n : preset\n if (presetValue && typeof presetValue === 'object') {\n const output: Record<string, SubscribeMessageDecision> = {}\n const source = presetValue as Record<string, unknown>\n for (const tmplId of tmplIds) {\n output[tmplId] = normalizeSubscribeDecision(source[tmplId])\n }\n return output\n }\n const sharedDecision = normalizeSubscribeDecision(presetValue)\n return tmplIds.reduce<Record<string, SubscribeMessageDecision>>((result, tmplId) => {\n result[tmplId] = sharedDecision\n return result\n }, {})\n}\n"],"mappings":";;;AAIA,SAAgB,2BAA2B,OAA0C;
|
|
1
|
+
{"version":3,"file":"subscribe.mjs","names":["runtimeGlobal"],"sources":["../../../src/runtime/polyfill/subscribe.ts"],"sourcesContent":["import { WEAPP_VITE_WEB_REQUEST_SUBSCRIBE_MESSAGE_KEY } from '@weapp-core/constants'\n\nexport type SubscribeMessageDecision = 'accept' | 'reject' | 'ban' | 'filter'\n\nexport function normalizeSubscribeDecision(value: unknown): SubscribeMessageDecision {\n if (value === 'accept' || value === 'reject' || value === 'ban' || value === 'filter') {\n return value\n }\n return 'accept'\n}\n\nexport function normalizeSubscribeTemplateIds(value: unknown) {\n if (!Array.isArray(value)) {\n return []\n }\n return value\n .filter((item): item is string => typeof item === 'string')\n .map(item => item.trim())\n .filter(Boolean)\n}\n\nexport function resolveSubscribeDecisionMap(tmplIds: string[]) {\n const runtimeGlobal = globalThis as Record<string, unknown>\n const preset = runtimeGlobal[WEAPP_VITE_WEB_REQUEST_SUBSCRIBE_MESSAGE_KEY]\n const presetValue = typeof preset === 'function'\n ? (preset as (ids: string[]) => unknown)(tmplIds)\n : preset\n if (presetValue && typeof presetValue === 'object') {\n const output: Record<string, SubscribeMessageDecision> = {}\n const source = presetValue as Record<string, unknown>\n for (const tmplId of tmplIds) {\n output[tmplId] = normalizeSubscribeDecision(source[tmplId])\n }\n return output\n }\n const sharedDecision = normalizeSubscribeDecision(presetValue)\n return tmplIds.reduce<Record<string, SubscribeMessageDecision>>((result, tmplId) => {\n result[tmplId] = sharedDecision\n return result\n }, {})\n}\n"],"mappings":";;;AAIA,SAAgB,2BAA2B,OAA0C;CACnF,IAAI,UAAU,YAAY,UAAU,YAAY,UAAU,SAAS,UAAU,UAC3E,OAAO;CAET,OAAO;AACT;AAEA,SAAgB,8BAA8B,OAAgB;CAC5D,IAAI,CAAC,MAAM,QAAQ,KAAK,GACtB,OAAO,CAAC;CAEV,OAAO,MACJ,QAAQ,SAAyB,OAAO,SAAS,QAAQ,EACzD,KAAI,SAAQ,KAAK,KAAK,CAAC,EACvB,OAAO,OAAO;AACnB;AAEA,SAAgB,4BAA4B,SAAmB;CAE7D,MAAM,SAASA,WAAc;CAC7B,MAAM,cAAc,OAAO,WAAW,aACjC,OAAsC,OAAO,IAC9C;CACJ,IAAI,eAAe,OAAO,gBAAgB,UAAU;EAClD,MAAM,SAAmD,CAAC;EAC1D,MAAM,SAAS;EACf,KAAK,MAAM,UAAU,SACnB,OAAO,UAAU,2BAA2B,OAAO,OAAO;EAE5D,OAAO;CACT;CACA,MAAM,iBAAiB,2BAA2B,WAAW;CAC7D,OAAO,QAAQ,QAAkD,QAAQ,WAAW;EAClF,OAAO,UAAU;EACjB,OAAO;CACT,GAAG,CAAC,CAAC;AACP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.mjs","names":["navigatorWithUAData"],"sources":["../../../src/runtime/polyfill/system.ts"],"sourcesContent":["export function resolveSystemName(userAgent: string) {\n if (/android/i.test(userAgent)) {\n return 'Android'\n }\n if (/iphone|ipad|ipod/i.test(userAgent)) {\n return 'iOS'\n }\n if (/windows/i.test(userAgent)) {\n return 'Windows'\n }\n if (/mac os x/i.test(userAgent)) {\n return 'macOS'\n }\n if (/linux/i.test(userAgent)) {\n return 'Linux'\n }\n return 'Unknown'\n}\n\nexport function resolvePlatformName(\n userAgent: string,\n runtimeNavigator: Navigator | undefined,\n) {\n const navigatorWithUAData = runtimeNavigator as Navigator & {\n userAgentData?: { platform?: string }\n }\n const raw = navigatorWithUAData?.userAgentData?.platform\n ?? runtimeNavigator?.platform\n ?? resolveSystemName(userAgent)\n const normalized = raw.toLowerCase()\n if (normalized.includes('android')) {\n return 'android'\n }\n if (normalized.includes('iphone') || normalized.includes('ipad') || normalized.includes('ios')) {\n return 'ios'\n }\n if (normalized.includes('win')) {\n return 'windows'\n }\n if (normalized.includes('mac')) {\n return 'mac'\n }\n if (normalized.includes('linux')) {\n return 'linux'\n }\n return normalized || 'web'\n}\n\nexport function normalizePositiveNumber(value: number | undefined, fallback: number) {\n if (typeof value !== 'number' || Number.isNaN(value) || value <= 0) {\n return fallback\n }\n return value\n}\n\nexport function resolveDeviceOrientation(): 'portrait' | 'landscape' {\n const runtimeWindow = (typeof window !== 'undefined'\n ? window\n : globalThis) as {\n innerWidth?: number\n innerHeight?: number\n }\n const width = normalizePositiveNumber(runtimeWindow.innerWidth, 0)\n const height = normalizePositiveNumber(runtimeWindow.innerHeight, 0)\n if (width > 0 && height > 0 && width > height) {\n return 'landscape'\n }\n return 'portrait'\n}\n\nexport function normalizeMemorySize(memory: unknown) {\n if (typeof memory !== 'number' || Number.isNaN(memory) || memory <= 0) {\n return 0\n }\n return Math.round(memory * 1024)\n}\n\nexport function resolveRuntimeTheme(): 'light' | 'dark' {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return 'light'\n }\n try {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n }\n catch {\n return 'light'\n }\n}\n\nexport function readSystemInfoSnapshot() {\n const runtimeWindow = (typeof window !== 'undefined'\n ? window\n : globalThis) as {\n innerWidth?: number\n innerHeight?: number\n devicePixelRatio?: number\n }\n const runtimeScreen = (typeof screen !== 'undefined'\n ? screen\n : globalThis) as {\n width?: number\n height?: number\n }\n const runtimeNavigator = typeof navigator !== 'undefined' ? navigator : undefined\n const userAgent = runtimeNavigator?.userAgent ?? ''\n const windowWidth = normalizePositiveNumber(\n runtimeWindow.innerWidth,\n normalizePositiveNumber(runtimeScreen.width, 0),\n )\n const windowHeight = normalizePositiveNumber(\n runtimeWindow.innerHeight,\n normalizePositiveNumber(runtimeScreen.height, 0),\n )\n const screenWidth = normalizePositiveNumber(runtimeScreen.width, windowWidth)\n const screenHeight = normalizePositiveNumber(runtimeScreen.height, windowHeight)\n\n return {\n brand: 'web',\n model: runtimeNavigator?.platform ?? 'web',\n pixelRatio: normalizePositiveNumber(runtimeWindow.devicePixelRatio, 1),\n screenWidth,\n screenHeight,\n windowWidth,\n windowHeight,\n statusBarHeight: 0,\n language: runtimeNavigator?.language ?? 'en',\n version: runtimeNavigator?.appVersion ?? userAgent,\n system: resolveSystemName(userAgent),\n platform: resolvePlatformName(userAgent, runtimeNavigator),\n }\n}\n\nexport function buildWindowInfoSnapshot(systemInfo: {\n pixelRatio: number\n screenWidth: number\n screenHeight: number\n windowWidth: number\n windowHeight: number\n statusBarHeight: number\n}) {\n const safeArea = {\n left: 0,\n right: systemInfo.windowWidth,\n top: systemInfo.statusBarHeight,\n bottom: systemInfo.windowHeight,\n width: systemInfo.windowWidth,\n height: Math.max(0, systemInfo.windowHeight - systemInfo.statusBarHeight),\n }\n return {\n pixelRatio: systemInfo.pixelRatio,\n screenWidth: systemInfo.screenWidth,\n screenHeight: systemInfo.screenHeight,\n windowWidth: systemInfo.windowWidth,\n windowHeight: systemInfo.windowHeight,\n statusBarHeight: systemInfo.statusBarHeight,\n screenTop: systemInfo.statusBarHeight,\n safeArea,\n }\n}\n\nexport function readDeviceMemorySize() {\n const runtimeNavigator = (typeof navigator !== 'undefined' ? navigator : undefined) as (Navigator & {\n deviceMemory?: number\n }) | undefined\n return normalizeMemorySize(runtimeNavigator?.deviceMemory)\n}\n\nexport function resolveAccountAppId() {\n const runtimeLocation = (typeof location !== 'undefined' ? location : undefined) as {\n hostname?: string\n } | undefined\n const host = runtimeLocation?.hostname?.trim()\n return host ? `web:${host}` : 'web'\n}\n\nexport function buildMenuButtonRect(windowWidth: number, statusBarHeight: number) {\n const width = 88\n const height = 32\n const right = Math.max(width, windowWidth - 8)\n const top = Math.max(0, statusBarHeight + (44 - height) / 2)\n const left = Math.max(0, right - width)\n return {\n width,\n height,\n top,\n right,\n bottom: top + height,\n left,\n }\n}\n"],"mappings":";AAAA,SAAgB,kBAAkB,WAAmB;
|
|
1
|
+
{"version":3,"file":"system.mjs","names":["navigatorWithUAData"],"sources":["../../../src/runtime/polyfill/system.ts"],"sourcesContent":["export function resolveSystemName(userAgent: string) {\n if (/android/i.test(userAgent)) {\n return 'Android'\n }\n if (/iphone|ipad|ipod/i.test(userAgent)) {\n return 'iOS'\n }\n if (/windows/i.test(userAgent)) {\n return 'Windows'\n }\n if (/mac os x/i.test(userAgent)) {\n return 'macOS'\n }\n if (/linux/i.test(userAgent)) {\n return 'Linux'\n }\n return 'Unknown'\n}\n\nexport function resolvePlatformName(\n userAgent: string,\n runtimeNavigator: Navigator | undefined,\n) {\n const navigatorWithUAData = runtimeNavigator as Navigator & {\n userAgentData?: { platform?: string }\n }\n const raw = navigatorWithUAData?.userAgentData?.platform\n ?? runtimeNavigator?.platform\n ?? resolveSystemName(userAgent)\n const normalized = raw.toLowerCase()\n if (normalized.includes('android')) {\n return 'android'\n }\n if (normalized.includes('iphone') || normalized.includes('ipad') || normalized.includes('ios')) {\n return 'ios'\n }\n if (normalized.includes('win')) {\n return 'windows'\n }\n if (normalized.includes('mac')) {\n return 'mac'\n }\n if (normalized.includes('linux')) {\n return 'linux'\n }\n return normalized || 'web'\n}\n\nexport function normalizePositiveNumber(value: number | undefined, fallback: number) {\n if (typeof value !== 'number' || Number.isNaN(value) || value <= 0) {\n return fallback\n }\n return value\n}\n\nexport function resolveDeviceOrientation(): 'portrait' | 'landscape' {\n const runtimeWindow = (typeof window !== 'undefined'\n ? window\n : globalThis) as {\n innerWidth?: number\n innerHeight?: number\n }\n const width = normalizePositiveNumber(runtimeWindow.innerWidth, 0)\n const height = normalizePositiveNumber(runtimeWindow.innerHeight, 0)\n if (width > 0 && height > 0 && width > height) {\n return 'landscape'\n }\n return 'portrait'\n}\n\nexport function normalizeMemorySize(memory: unknown) {\n if (typeof memory !== 'number' || Number.isNaN(memory) || memory <= 0) {\n return 0\n }\n return Math.round(memory * 1024)\n}\n\nexport function resolveRuntimeTheme(): 'light' | 'dark' {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n return 'light'\n }\n try {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n }\n catch {\n return 'light'\n }\n}\n\nexport function readSystemInfoSnapshot() {\n const runtimeWindow = (typeof window !== 'undefined'\n ? window\n : globalThis) as {\n innerWidth?: number\n innerHeight?: number\n devicePixelRatio?: number\n }\n const runtimeScreen = (typeof screen !== 'undefined'\n ? screen\n : globalThis) as {\n width?: number\n height?: number\n }\n const runtimeNavigator = typeof navigator !== 'undefined' ? navigator : undefined\n const userAgent = runtimeNavigator?.userAgent ?? ''\n const windowWidth = normalizePositiveNumber(\n runtimeWindow.innerWidth,\n normalizePositiveNumber(runtimeScreen.width, 0),\n )\n const windowHeight = normalizePositiveNumber(\n runtimeWindow.innerHeight,\n normalizePositiveNumber(runtimeScreen.height, 0),\n )\n const screenWidth = normalizePositiveNumber(runtimeScreen.width, windowWidth)\n const screenHeight = normalizePositiveNumber(runtimeScreen.height, windowHeight)\n\n return {\n brand: 'web',\n model: runtimeNavigator?.platform ?? 'web',\n pixelRatio: normalizePositiveNumber(runtimeWindow.devicePixelRatio, 1),\n screenWidth,\n screenHeight,\n windowWidth,\n windowHeight,\n statusBarHeight: 0,\n language: runtimeNavigator?.language ?? 'en',\n version: runtimeNavigator?.appVersion ?? userAgent,\n system: resolveSystemName(userAgent),\n platform: resolvePlatformName(userAgent, runtimeNavigator),\n }\n}\n\nexport function buildWindowInfoSnapshot(systemInfo: {\n pixelRatio: number\n screenWidth: number\n screenHeight: number\n windowWidth: number\n windowHeight: number\n statusBarHeight: number\n}) {\n const safeArea = {\n left: 0,\n right: systemInfo.windowWidth,\n top: systemInfo.statusBarHeight,\n bottom: systemInfo.windowHeight,\n width: systemInfo.windowWidth,\n height: Math.max(0, systemInfo.windowHeight - systemInfo.statusBarHeight),\n }\n return {\n pixelRatio: systemInfo.pixelRatio,\n screenWidth: systemInfo.screenWidth,\n screenHeight: systemInfo.screenHeight,\n windowWidth: systemInfo.windowWidth,\n windowHeight: systemInfo.windowHeight,\n statusBarHeight: systemInfo.statusBarHeight,\n screenTop: systemInfo.statusBarHeight,\n safeArea,\n }\n}\n\nexport function readDeviceMemorySize() {\n const runtimeNavigator = (typeof navigator !== 'undefined' ? navigator : undefined) as (Navigator & {\n deviceMemory?: number\n }) | undefined\n return normalizeMemorySize(runtimeNavigator?.deviceMemory)\n}\n\nexport function resolveAccountAppId() {\n const runtimeLocation = (typeof location !== 'undefined' ? location : undefined) as {\n hostname?: string\n } | undefined\n const host = runtimeLocation?.hostname?.trim()\n return host ? `web:${host}` : 'web'\n}\n\nexport function buildMenuButtonRect(windowWidth: number, statusBarHeight: number) {\n const width = 88\n const height = 32\n const right = Math.max(width, windowWidth - 8)\n const top = Math.max(0, statusBarHeight + (44 - height) / 2)\n const left = Math.max(0, right - width)\n return {\n width,\n height,\n top,\n right,\n bottom: top + height,\n left,\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/systemApi.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n buildMenuButtonRect,\n buildWindowInfoSnapshot,\n readDeviceMemorySize,\n readSystemInfoSnapshot,\n resolveAccountAppId,\n resolveDeviceOrientation,\n resolveRuntimeTheme,\n} from './system'\n\nexport function getSystemInfoSyncBridge() {\n return readSystemInfoSnapshot()\n}\n\nexport function getSystemInfoBridge(options?: any): Promise<any> {\n try {\n const info = getSystemInfoSyncBridge()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'getSystemInfo:ok',\n ...info,\n }))\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `getSystemInfo:fail ${message}`)\n return Promise.reject(failure)\n }\n}\n\nexport function getWindowInfoBridge() {\n return buildWindowInfoSnapshot(getSystemInfoSyncBridge())\n}\n\nexport function getDeviceInfoBridge() {\n const systemInfo = getSystemInfoSyncBridge()\n return {\n brand: systemInfo.brand,\n model: systemInfo.model,\n system: systemInfo.system,\n platform: systemInfo.platform,\n memorySize: readDeviceMemorySize(),\n benchmarkLevel: -1,\n abi: 'web',\n deviceOrientation: resolveDeviceOrientation(),\n }\n}\n\nexport function getAccountInfoSyncBridge() {\n const appId = resolveAccountAppId()\n return {\n miniProgram: {\n appId,\n envVersion: 'develop',\n version: '0.0.0-web',\n },\n plugin: {},\n }\n}\n\nexport function getAppBaseInfoBridge() {\n const systemInfo = getSystemInfoSyncBridge()\n const runtimeNavigator = typeof navigator !== 'undefined' ? navigator : undefined\n return {\n SDKVersion: 'web',\n language: runtimeNavigator?.language ?? 'en',\n version: runtimeNavigator?.appVersion ?? runtimeNavigator?.userAgent ?? 'web',\n platform: systemInfo.platform,\n enableDebug: false,\n theme: resolveRuntimeTheme(),\n }\n}\n\nexport function getMenuButtonBoundingClientRectBridge() {\n const { windowWidth, statusBarHeight } = getSystemInfoSyncBridge()\n return buildMenuButtonRect(windowWidth, statusBarHeight)\n}\n"],"mappings":";;;;AAcA,SAAgB,0BAA0B;
|
|
1
|
+
{"version":3,"file":"systemApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/systemApi.ts"],"sourcesContent":["import {\n callMiniProgramAsyncFailure,\n callMiniProgramAsyncSuccess,\n} from './async'\nimport {\n buildMenuButtonRect,\n buildWindowInfoSnapshot,\n readDeviceMemorySize,\n readSystemInfoSnapshot,\n resolveAccountAppId,\n resolveDeviceOrientation,\n resolveRuntimeTheme,\n} from './system'\n\nexport function getSystemInfoSyncBridge() {\n return readSystemInfoSnapshot()\n}\n\nexport function getSystemInfoBridge(options?: any): Promise<any> {\n try {\n const info = getSystemInfoSyncBridge()\n return Promise.resolve(callMiniProgramAsyncSuccess(options, {\n errMsg: 'getSystemInfo:ok',\n ...info,\n }))\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n const failure = callMiniProgramAsyncFailure(options, `getSystemInfo:fail ${message}`)\n return Promise.reject(failure)\n }\n}\n\nexport function getWindowInfoBridge() {\n return buildWindowInfoSnapshot(getSystemInfoSyncBridge())\n}\n\nexport function getDeviceInfoBridge() {\n const systemInfo = getSystemInfoSyncBridge()\n return {\n brand: systemInfo.brand,\n model: systemInfo.model,\n system: systemInfo.system,\n platform: systemInfo.platform,\n memorySize: readDeviceMemorySize(),\n benchmarkLevel: -1,\n abi: 'web',\n deviceOrientation: resolveDeviceOrientation(),\n }\n}\n\nexport function getAccountInfoSyncBridge() {\n const appId = resolveAccountAppId()\n return {\n miniProgram: {\n appId,\n envVersion: 'develop',\n version: '0.0.0-web',\n },\n plugin: {},\n }\n}\n\nexport function getAppBaseInfoBridge() {\n const systemInfo = getSystemInfoSyncBridge()\n const runtimeNavigator = typeof navigator !== 'undefined' ? navigator : undefined\n return {\n SDKVersion: 'web',\n language: runtimeNavigator?.language ?? 'en',\n version: runtimeNavigator?.appVersion ?? runtimeNavigator?.userAgent ?? 'web',\n platform: systemInfo.platform,\n enableDebug: false,\n theme: resolveRuntimeTheme(),\n }\n}\n\nexport function getMenuButtonBoundingClientRectBridge() {\n const { windowWidth, statusBarHeight } = getSystemInfoSyncBridge()\n return buildMenuButtonRect(windowWidth, statusBarHeight)\n}\n"],"mappings":";;;;AAcA,SAAgB,0BAA0B;CACxC,OAAO,uBAAuB;AAChC;AAEA,SAAgB,oBAAoB,SAA6B;CAC/D,IAAI;EACF,MAAM,OAAO,wBAAwB;EACrC,OAAO,QAAQ,QAAQ,4BAA4B,SAAS;GAC1D,QAAQ;GACR,GAAG;EACL,CAAC,CAAC;CACJ,SACO,OAAO;EAEZ,MAAM,UAAU,4BAA4B,SAAS,sBADrC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GACe;EACpF,OAAO,QAAQ,OAAO,OAAO;CAC/B;AACF;AAEA,SAAgB,sBAAsB;CACpC,OAAO,wBAAwB,wBAAwB,CAAC;AAC1D;AAEA,SAAgB,sBAAsB;CACpC,MAAM,aAAa,wBAAwB;CAC3C,OAAO;EACL,OAAO,WAAW;EAClB,OAAO,WAAW;EAClB,QAAQ,WAAW;EACnB,UAAU,WAAW;EACrB,YAAY,qBAAqB;EACjC,gBAAgB;EAChB,KAAK;EACL,mBAAmB,yBAAyB;CAC9C;AACF;AAEA,SAAgB,2BAA2B;CAEzC,OAAO;EACL,aAAa;GACX,OAHU,oBAGN;GACJ,YAAY;GACZ,SAAS;EACX;EACA,QAAQ,CAAC;CACX;AACF;AAEA,SAAgB,uBAAuB;CACrC,MAAM,aAAa,wBAAwB;CAC3C,MAAM,mBAAmB,OAAO,cAAc,cAAc,YAAY;CACxE,OAAO;EACL,YAAY;EACZ,UAAU,kBAAkB,YAAY;EACxC,SAAS,kBAAkB,cAAc,kBAAkB,aAAa;EACxE,UAAU,WAAW;EACrB,aAAa;EACb,OAAO,oBAAoB;CAC7B;AACF;AAEA,SAAgB,wCAAwC;CACtD,MAAM,EAAE,aAAa,oBAAoB,wBAAwB;CACjE,OAAO,oBAAoB,aAAa,eAAe;AACzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.mjs","names":["runtimeGlobal"],"sources":["../../../src/runtime/polyfill/ui.ts"],"sourcesContent":["import { WEAPP_VITE_WEB_ACTION_SHEET_SELECT_INDEX_KEY } from '@weapp-core/constants'\n\nconst TOAST_ID = '__weapp_vite_web_toast__'\nconst TOAST_SELECTOR = `#${TOAST_ID}`\nconst LOADING_ID = '__weapp_vite_web_loading__'\nconst LOADING_SELECTOR = `#${LOADING_ID}`\n\nexport function getGlobalDialogHandlers() {\n const runtimeGlobal = globalThis as Record<string, unknown>\n return {\n confirm: runtimeGlobal.confirm as ((message?: string) => boolean) | undefined,\n alert: runtimeGlobal.alert as ((message?: string) => void) | undefined,\n prompt: runtimeGlobal.prompt as ((message?: string, defaultValue?: string) => string | null) | undefined,\n }\n}\n\nexport function getToastElement() {\n if (typeof document === 'undefined') {\n return undefined\n }\n const existing = document.querySelector(TOAST_SELECTOR) as HTMLElement | null\n if (existing) {\n return existing\n }\n const toast = document.createElement('div')\n toast.setAttribute('id', TOAST_ID)\n toast.setAttribute('data-weapp-web-toast', 'true')\n toast.setAttribute('hidden', 'true')\n toast.setAttribute('role', 'status')\n toast.setAttribute('aria-live', 'polite')\n if (!document.body) {\n return undefined\n }\n document.body.append(toast)\n return toast\n}\n\nexport function setToastVisible(toast: HTMLElement, visible: boolean) {\n if (visible) {\n toast.removeAttribute('hidden')\n }\n else {\n toast.setAttribute('hidden', 'true')\n }\n toast.setAttribute('style', [\n 'position: fixed',\n 'left: 50%',\n 'top: 15%',\n 'transform: translate(-50%, 0)',\n 'max-width: min(560px, 90vw)',\n 'padding: 10px 14px',\n 'border-radius: 8px',\n 'background: rgba(17, 24, 39, 0.9)',\n 'color: #ffffff',\n 'font-size: 14px',\n 'line-height: 1.5',\n 'text-align: center',\n 'pointer-events: none',\n 'z-index: 2147483646',\n `opacity: ${visible ? '1' : '0'}`,\n ].join(';'))\n}\n\nexport function hideToastElement() {\n const toast = getToastElement()\n if (!toast) {\n return\n }\n setToastVisible(toast, false)\n}\n\nexport function resolveToastPrefix(icon: 'success' | 'error' | 'none' | undefined) {\n if (icon === 'none') {\n return ''\n }\n if (icon === 'error') {\n return '[error] '\n }\n return '[ok] '\n}\n\nexport function getLoadingElement() {\n if (typeof document === 'undefined') {\n return undefined\n }\n const existing = document.querySelector(LOADING_SELECTOR) as HTMLElement | null\n if (existing) {\n return existing\n }\n if (!document.body) {\n return undefined\n }\n const loading = document.createElement('div')\n loading.setAttribute('id', LOADING_ID)\n loading.setAttribute('data-weapp-web-loading', 'true')\n loading.setAttribute('hidden', 'true')\n loading.setAttribute('role', 'status')\n loading.setAttribute('aria-live', 'polite')\n document.body.append(loading)\n return loading\n}\n\nexport function setLoadingVisible(\n loading: HTMLElement,\n visible: boolean,\n title: string,\n mask: boolean,\n) {\n if (visible) {\n loading.removeAttribute('hidden')\n }\n else {\n loading.setAttribute('hidden', 'true')\n }\n loading.textContent = title\n loading.setAttribute('style', [\n 'position: fixed',\n 'left: 50%',\n 'top: 45%',\n 'transform: translate(-50%, -50%)',\n 'min-width: 120px',\n 'max-width: min(560px, 90vw)',\n 'padding: 14px 18px',\n 'border-radius: 10px',\n 'background: rgba(17, 24, 39, 0.92)',\n 'color: #ffffff',\n 'font-size: 14px',\n 'line-height: 1.5',\n 'text-align: center',\n `pointer-events: ${mask ? 'auto' : 'none'}`,\n 'z-index: 2147483647',\n `opacity: ${visible ? '1' : '0'}`,\n `box-shadow: ${mask ? '0 0 0 99999px rgba(0, 0, 0, 0.28)' : 'none'}`,\n ].join(';'))\n}\n\nexport function resolveActionSheetSelection(itemList: string[]) {\n const runtimeGlobal = globalThis as Record<string, unknown>\n const preset = runtimeGlobal[WEAPP_VITE_WEB_ACTION_SHEET_SELECT_INDEX_KEY]\n if (typeof preset === 'function') {\n const result = preset(itemList)\n if (Number.isInteger(result) && result >= 0 && result < itemList.length) {\n return result\n }\n }\n if (Number.isInteger(preset) && (preset as number) >= 0 && (preset as number) < itemList.length) {\n return preset as number\n }\n const { prompt } = getGlobalDialogHandlers()\n if (typeof prompt === 'function') {\n const lines = itemList.map((item, index) => `[${index}] ${item}`)\n const input = prompt(['请选择操作:', ...lines].join('\\n'), '0')\n if (input === null) {\n return null\n }\n const parsed = Number.parseInt(String(input), 10)\n if (Number.isInteger(parsed) && parsed >= 0 && parsed < itemList.length) {\n return parsed\n }\n }\n return 0\n}\n\nexport function resolveModalSelection(options?: {\n title?: string\n content?: string\n showCancel?: boolean\n}) {\n const title = options?.title?.trim() ?? ''\n const content = options?.content?.trim() ?? ''\n const message = [title, content].filter(Boolean).join('\\n\\n') || ' '\n const showCancel = options?.showCancel !== false\n const { confirm, alert } = getGlobalDialogHandlers()\n\n let confirmed = true\n if (showCancel) {\n if (typeof confirm === 'function') {\n confirmed = confirm(message)\n }\n }\n else if (typeof alert === 'function') {\n alert(message)\n }\n\n return {\n confirm: confirmed,\n cancel: !confirmed,\n }\n}\n\nexport function normalizeActionSheetItems(itemList: unknown) {\n if (!Array.isArray(itemList)) {\n return []\n }\n return itemList.map(item => String(item ?? '').trim()).filter(Boolean)\n}\n"],"mappings":";;;AAEA,MAAM,WAAW;AACjB,MAAM,iBAAiB,IAAI;AAC3B,MAAM,aAAa;AACnB,MAAM,mBAAmB,IAAI;AAE7B,SAAgB,0BAA0B;CACxC,MAAM,gBAAgB;
|
|
1
|
+
{"version":3,"file":"ui.mjs","names":["runtimeGlobal"],"sources":["../../../src/runtime/polyfill/ui.ts"],"sourcesContent":["import { WEAPP_VITE_WEB_ACTION_SHEET_SELECT_INDEX_KEY } from '@weapp-core/constants'\n\nconst TOAST_ID = '__weapp_vite_web_toast__'\nconst TOAST_SELECTOR = `#${TOAST_ID}`\nconst LOADING_ID = '__weapp_vite_web_loading__'\nconst LOADING_SELECTOR = `#${LOADING_ID}`\n\nexport function getGlobalDialogHandlers() {\n const runtimeGlobal = globalThis as Record<string, unknown>\n return {\n confirm: runtimeGlobal.confirm as ((message?: string) => boolean) | undefined,\n alert: runtimeGlobal.alert as ((message?: string) => void) | undefined,\n prompt: runtimeGlobal.prompt as ((message?: string, defaultValue?: string) => string | null) | undefined,\n }\n}\n\nexport function getToastElement() {\n if (typeof document === 'undefined') {\n return undefined\n }\n const existing = document.querySelector(TOAST_SELECTOR) as HTMLElement | null\n if (existing) {\n return existing\n }\n const toast = document.createElement('div')\n toast.setAttribute('id', TOAST_ID)\n toast.setAttribute('data-weapp-web-toast', 'true')\n toast.setAttribute('hidden', 'true')\n toast.setAttribute('role', 'status')\n toast.setAttribute('aria-live', 'polite')\n if (!document.body) {\n return undefined\n }\n document.body.append(toast)\n return toast\n}\n\nexport function setToastVisible(toast: HTMLElement, visible: boolean) {\n if (visible) {\n toast.removeAttribute('hidden')\n }\n else {\n toast.setAttribute('hidden', 'true')\n }\n toast.setAttribute('style', [\n 'position: fixed',\n 'left: 50%',\n 'top: 15%',\n 'transform: translate(-50%, 0)',\n 'max-width: min(560px, 90vw)',\n 'padding: 10px 14px',\n 'border-radius: 8px',\n 'background: rgba(17, 24, 39, 0.9)',\n 'color: #ffffff',\n 'font-size: 14px',\n 'line-height: 1.5',\n 'text-align: center',\n 'pointer-events: none',\n 'z-index: 2147483646',\n `opacity: ${visible ? '1' : '0'}`,\n ].join(';'))\n}\n\nexport function hideToastElement() {\n const toast = getToastElement()\n if (!toast) {\n return\n }\n setToastVisible(toast, false)\n}\n\nexport function resolveToastPrefix(icon: 'success' | 'error' | 'none' | undefined) {\n if (icon === 'none') {\n return ''\n }\n if (icon === 'error') {\n return '[error] '\n }\n return '[ok] '\n}\n\nexport function getLoadingElement() {\n if (typeof document === 'undefined') {\n return undefined\n }\n const existing = document.querySelector(LOADING_SELECTOR) as HTMLElement | null\n if (existing) {\n return existing\n }\n if (!document.body) {\n return undefined\n }\n const loading = document.createElement('div')\n loading.setAttribute('id', LOADING_ID)\n loading.setAttribute('data-weapp-web-loading', 'true')\n loading.setAttribute('hidden', 'true')\n loading.setAttribute('role', 'status')\n loading.setAttribute('aria-live', 'polite')\n document.body.append(loading)\n return loading\n}\n\nexport function setLoadingVisible(\n loading: HTMLElement,\n visible: boolean,\n title: string,\n mask: boolean,\n) {\n if (visible) {\n loading.removeAttribute('hidden')\n }\n else {\n loading.setAttribute('hidden', 'true')\n }\n loading.textContent = title\n loading.setAttribute('style', [\n 'position: fixed',\n 'left: 50%',\n 'top: 45%',\n 'transform: translate(-50%, -50%)',\n 'min-width: 120px',\n 'max-width: min(560px, 90vw)',\n 'padding: 14px 18px',\n 'border-radius: 10px',\n 'background: rgba(17, 24, 39, 0.92)',\n 'color: #ffffff',\n 'font-size: 14px',\n 'line-height: 1.5',\n 'text-align: center',\n `pointer-events: ${mask ? 'auto' : 'none'}`,\n 'z-index: 2147483647',\n `opacity: ${visible ? '1' : '0'}`,\n `box-shadow: ${mask ? '0 0 0 99999px rgba(0, 0, 0, 0.28)' : 'none'}`,\n ].join(';'))\n}\n\nexport function resolveActionSheetSelection(itemList: string[]) {\n const runtimeGlobal = globalThis as Record<string, unknown>\n const preset = runtimeGlobal[WEAPP_VITE_WEB_ACTION_SHEET_SELECT_INDEX_KEY]\n if (typeof preset === 'function') {\n const result = preset(itemList)\n if (Number.isInteger(result) && result >= 0 && result < itemList.length) {\n return result\n }\n }\n if (Number.isInteger(preset) && (preset as number) >= 0 && (preset as number) < itemList.length) {\n return preset as number\n }\n const { prompt } = getGlobalDialogHandlers()\n if (typeof prompt === 'function') {\n const lines = itemList.map((item, index) => `[${index}] ${item}`)\n const input = prompt(['请选择操作:', ...lines].join('\\n'), '0')\n if (input === null) {\n return null\n }\n const parsed = Number.parseInt(String(input), 10)\n if (Number.isInteger(parsed) && parsed >= 0 && parsed < itemList.length) {\n return parsed\n }\n }\n return 0\n}\n\nexport function resolveModalSelection(options?: {\n title?: string\n content?: string\n showCancel?: boolean\n}) {\n const title = options?.title?.trim() ?? ''\n const content = options?.content?.trim() ?? ''\n const message = [title, content].filter(Boolean).join('\\n\\n') || ' '\n const showCancel = options?.showCancel !== false\n const { confirm, alert } = getGlobalDialogHandlers()\n\n let confirmed = true\n if (showCancel) {\n if (typeof confirm === 'function') {\n confirmed = confirm(message)\n }\n }\n else if (typeof alert === 'function') {\n alert(message)\n }\n\n return {\n confirm: confirmed,\n cancel: !confirmed,\n }\n}\n\nexport function normalizeActionSheetItems(itemList: unknown) {\n if (!Array.isArray(itemList)) {\n return []\n }\n return itemList.map(item => String(item ?? '').trim()).filter(Boolean)\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiFeedback.mjs","names":[],"sources":["../../../src/runtime/polyfill/uiFeedback.ts"],"sourcesContent":["import {\n callMiniProgramAsyncSuccess,\n normalizeDuration,\n} from './async'\nimport {\n getLoadingElement,\n getToastElement,\n hideToastElement,\n resolveToastPrefix,\n setLoadingVisible,\n setToastVisible,\n} from './ui'\n\nlet toastHideTimer: ReturnType<typeof setTimeout> | undefined\n\nexport function showToastBridge(options?: any): Promise<any> {\n const toast = getToastElement()\n const content = `${resolveToastPrefix(options?.icon)}${options?.title ?? ''}`.trim()\n if (toast) {\n toast.textContent = content\n setToastVisible(toast, true)\n if (toastHideTimer) {\n clearTimeout(toastHideTimer)\n }\n const duration = normalizeDuration(options?.duration, 1500)\n toastHideTimer = setTimeout(() => {\n hideToastElement()\n toastHideTimer = undefined\n }, duration)\n }\n const result = callMiniProgramAsyncSuccess(options, { errMsg: 'showToast:ok' })\n return Promise.resolve(result)\n}\n\nexport function showLoadingBridge(options?: any): Promise<any> {\n const loading = getLoadingElement()\n if (loading) {\n setLoadingVisible(\n loading,\n true,\n options?.title?.trim() || '加载中',\n Boolean(options?.mask),\n )\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'showLoading:ok' }))\n}\n\nexport function hideLoadingBridge(options?: any): Promise<any> {\n const loading = getLoadingElement()\n if (loading) {\n setLoadingVisible(loading, false, loading.textContent ?? '', false)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'hideLoading:ok' }))\n}\n"],"mappings":";;;;AAaA,IAAI;AAEJ,SAAgB,gBAAgB,SAA6B;CAC3D,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"uiFeedback.mjs","names":[],"sources":["../../../src/runtime/polyfill/uiFeedback.ts"],"sourcesContent":["import {\n callMiniProgramAsyncSuccess,\n normalizeDuration,\n} from './async'\nimport {\n getLoadingElement,\n getToastElement,\n hideToastElement,\n resolveToastPrefix,\n setLoadingVisible,\n setToastVisible,\n} from './ui'\n\nlet toastHideTimer: ReturnType<typeof setTimeout> | undefined\n\nexport function showToastBridge(options?: any): Promise<any> {\n const toast = getToastElement()\n const content = `${resolveToastPrefix(options?.icon)}${options?.title ?? ''}`.trim()\n if (toast) {\n toast.textContent = content\n setToastVisible(toast, true)\n if (toastHideTimer) {\n clearTimeout(toastHideTimer)\n }\n const duration = normalizeDuration(options?.duration, 1500)\n toastHideTimer = setTimeout(() => {\n hideToastElement()\n toastHideTimer = undefined\n }, duration)\n }\n const result = callMiniProgramAsyncSuccess(options, { errMsg: 'showToast:ok' })\n return Promise.resolve(result)\n}\n\nexport function showLoadingBridge(options?: any): Promise<any> {\n const loading = getLoadingElement()\n if (loading) {\n setLoadingVisible(\n loading,\n true,\n options?.title?.trim() || '加载中',\n Boolean(options?.mask),\n )\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'showLoading:ok' }))\n}\n\nexport function hideLoadingBridge(options?: any): Promise<any> {\n const loading = getLoadingElement()\n if (loading) {\n setLoadingVisible(loading, false, loading.textContent ?? '', false)\n }\n return Promise.resolve(callMiniProgramAsyncSuccess(options, { errMsg: 'hideLoading:ok' }))\n}\n"],"mappings":";;;;AAaA,IAAI;AAEJ,SAAgB,gBAAgB,SAA6B;CAC3D,MAAM,QAAQ,gBAAgB;CAC9B,MAAM,UAAU,GAAG,mBAAmB,SAAS,IAAI,IAAI,SAAS,SAAS,KAAK,KAAK;CACnF,IAAI,OAAO;EACT,MAAM,cAAc;EACpB,gBAAgB,OAAO,IAAI;EAC3B,IAAI,gBACF,aAAa,cAAc;EAE7B,MAAM,WAAW,kBAAkB,SAAS,UAAU,IAAI;EAC1D,iBAAiB,iBAAiB;GAChC,iBAAiB;GACjB,iBAAiB;EACnB,GAAG,QAAQ;CACb;CACA,MAAM,SAAS,4BAA4B,SAAS,EAAE,QAAQ,eAAe,CAAC;CAC9E,OAAO,QAAQ,QAAQ,MAAM;AAC/B;AAEA,SAAgB,kBAAkB,SAA6B;CAC7D,MAAM,UAAU,kBAAkB;CAClC,IAAI,SACF,kBACE,SACA,MACA,SAAS,OAAO,KAAK,KAAK,OAC1B,QAAQ,SAAS,IAAI,CACvB;CAEF,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,iBAAiB,CAAC,CAAC;AAC3F;AAEA,SAAgB,kBAAkB,SAA6B;CAC7D,MAAM,UAAU,kBAAkB;CAClC,IAAI,SACF,kBAAkB,SAAS,OAAO,QAAQ,eAAe,IAAI,KAAK;CAEpE,OAAO,QAAQ,QAAQ,4BAA4B,SAAS,EAAE,QAAQ,iBAAiB,CAAC,CAAC;AAC3F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiMediaApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/uiMediaApi.ts"],"sourcesContent":["import type {\n ChooseAddressOptions,\n ChooseFileOptions,\n ChooseImageOptions,\n ChooseLocationOptions,\n ChooseMediaOptions,\n ChooseMessageFileOptions,\n ChooseVideoOptions,\n CompressImageOptions,\n CompressVideoOptions,\n GetClipboardDataOptions,\n GetImageInfoOptions,\n GetVideoInfoOptions,\n MakePhoneCallOptions,\n MiniProgramAsyncOptions,\n MiniProgramBaseResult,\n OpenCustomerServiceChatOptions,\n OpenDocumentOptions,\n OpenLocationOptions,\n OpenVideoEditorOptions,\n PreviewImageOptions,\n PreviewMediaOptions,\n RequestPaymentOptions,\n RequestSubscribeMessageOptions,\n RequestSubscribeMessageSuccessResult,\n SaveFileOptions,\n SaveFileToDiskOptions,\n SaveImageToPhotosAlbumOptions,\n SaveVideoToPhotosAlbumOptions,\n ScanCodeOptions,\n SetClipboardDataOptions,\n ShareMenuOptions,\n ShowActionSheetOptions,\n ShowLoadingOptions,\n ShowModalOptions,\n ShowToastOptions,\n TabBarOptions,\n} from './types'\nimport {\n getClipboardDataBridge,\n openCustomerServiceChatBridge,\n scanCodeBridge,\n setClipboardDataBridge,\n} from './interactionApi'\nimport {\n chooseAddressBridge,\n chooseLocationBridge,\n makePhoneCallBridge,\n openLocationBridge,\n} from './locationApi'\nimport {\n chooseFileBridge,\n chooseImageBridge,\n chooseMediaBridge,\n chooseMessageFileBridge,\n chooseVideoBridge,\n compressImageBridge,\n compressVideoBridge,\n getImageInfoBridge,\n getVideoInfoBridge,\n openDocumentBridge,\n openVideoEditorBridge,\n previewImageBridge,\n previewMediaBridge,\n saveFileBridge,\n saveFileToDiskBridge,\n saveImageToPhotosAlbumBridge,\n saveVideoToPhotosAlbumBridge,\n} from './mediaApi'\nimport {\n hideTabBarBridge,\n requestPaymentBridge,\n requestSubscribeMessageBridge,\n showActionSheetBridge,\n showModalBridge,\n showShareMenuBridge,\n showTabBarBridge,\n updateShareMenuBridge,\n} from './menuApi'\nimport {\n hideLoadingBridge,\n showLoadingBridge,\n showToastBridge,\n} from './uiFeedback'\n\nexport function showToast(options?: ShowToastOptions) {\n return showToastBridge(options)\n}\n\nexport function showLoading(options?: ShowLoadingOptions) {\n return showLoadingBridge(options)\n}\n\nexport function hideLoading(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return hideLoadingBridge(options)\n}\n\nexport function showShareMenu(options?: ShareMenuOptions) {\n return showShareMenuBridge(options)\n}\n\nexport function updateShareMenu(options?: ShareMenuOptions) {\n return updateShareMenuBridge(options)\n}\n\nexport function openCustomerServiceChat(options?: OpenCustomerServiceChatOptions) {\n return openCustomerServiceChatBridge(options)\n}\n\nexport function makePhoneCall(options?: MakePhoneCallOptions) {\n return makePhoneCallBridge(options)\n}\n\nexport function chooseAddress(options?: ChooseAddressOptions) {\n return chooseAddressBridge(options)\n}\n\nexport function chooseLocation(options?: ChooseLocationOptions) {\n return chooseLocationBridge(options)\n}\n\nexport function openLocation(options?: OpenLocationOptions) {\n return openLocationBridge(options)\n}\n\nexport function getImageInfo(options?: GetImageInfoOptions) {\n return getImageInfoBridge(options)\n}\n\nexport function getVideoInfo(options?: GetVideoInfoOptions) {\n return getVideoInfoBridge(options)\n}\n\nexport function showTabBar(options?: TabBarOptions) {\n return showTabBarBridge(options)\n}\n\nexport function hideTabBar(options?: TabBarOptions) {\n return hideTabBarBridge(options)\n}\n\nexport function requestPayment(options?: RequestPaymentOptions) {\n return requestPaymentBridge(options)\n}\n\nexport function requestSubscribeMessage(options?: RequestSubscribeMessageOptions): Promise<RequestSubscribeMessageSuccessResult> {\n return requestSubscribeMessageBridge(options)\n}\n\nexport function showModal(options?: ShowModalOptions) {\n return showModalBridge(options)\n}\n\nexport function showActionSheet(options?: ShowActionSheetOptions) {\n return showActionSheetBridge(options)\n}\n\nexport async function chooseImage(options?: ChooseImageOptions) {\n return chooseImageBridge(options)\n}\n\nexport async function chooseMedia(options?: ChooseMediaOptions) {\n return chooseMediaBridge(options)\n}\n\nexport async function compressImage(options?: CompressImageOptions) {\n return compressImageBridge(options)\n}\n\nexport function compressVideo(options?: CompressVideoOptions) {\n return compressVideoBridge(options)\n}\n\nexport async function chooseVideo(options?: ChooseVideoOptions) {\n return chooseVideoBridge(options)\n}\n\nexport async function chooseMessageFile(options?: ChooseMessageFileOptions) {\n return chooseMessageFileBridge(options)\n}\n\nexport async function chooseFile(options?: ChooseFileOptions) {\n return chooseFileBridge(options)\n}\n\nexport function previewImage(options?: PreviewImageOptions) {\n return previewImageBridge(options)\n}\n\nexport function previewMedia(options?: PreviewMediaOptions) {\n return previewMediaBridge(options)\n}\n\nexport function openVideoEditor(options?: OpenVideoEditorOptions) {\n return openVideoEditorBridge(options)\n}\n\nexport function saveImageToPhotosAlbum(options?: SaveImageToPhotosAlbumOptions) {\n return saveImageToPhotosAlbumBridge(options)\n}\n\nexport function saveVideoToPhotosAlbum(options?: SaveVideoToPhotosAlbumOptions) {\n return saveVideoToPhotosAlbumBridge(options)\n}\n\nexport function saveFile(options?: SaveFileOptions) {\n return saveFileBridge(options)\n}\n\nexport function saveFileToDisk(options?: SaveFileToDiskOptions) {\n return saveFileToDiskBridge(options)\n}\n\nexport function openDocument(options?: OpenDocumentOptions) {\n return openDocumentBridge(options)\n}\n\nexport function scanCode(options?: ScanCodeOptions) {\n return scanCodeBridge(options)\n}\n\nexport async function setClipboardData(options?: SetClipboardDataOptions) {\n return setClipboardDataBridge(options)\n}\n\nexport async function getClipboardData(options?: GetClipboardDataOptions) {\n return getClipboardDataBridge(options)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqFA,SAAgB,UAAU,SAA4B;
|
|
1
|
+
{"version":3,"file":"uiMediaApi.mjs","names":[],"sources":["../../../src/runtime/polyfill/uiMediaApi.ts"],"sourcesContent":["import type {\n ChooseAddressOptions,\n ChooseFileOptions,\n ChooseImageOptions,\n ChooseLocationOptions,\n ChooseMediaOptions,\n ChooseMessageFileOptions,\n ChooseVideoOptions,\n CompressImageOptions,\n CompressVideoOptions,\n GetClipboardDataOptions,\n GetImageInfoOptions,\n GetVideoInfoOptions,\n MakePhoneCallOptions,\n MiniProgramAsyncOptions,\n MiniProgramBaseResult,\n OpenCustomerServiceChatOptions,\n OpenDocumentOptions,\n OpenLocationOptions,\n OpenVideoEditorOptions,\n PreviewImageOptions,\n PreviewMediaOptions,\n RequestPaymentOptions,\n RequestSubscribeMessageOptions,\n RequestSubscribeMessageSuccessResult,\n SaveFileOptions,\n SaveFileToDiskOptions,\n SaveImageToPhotosAlbumOptions,\n SaveVideoToPhotosAlbumOptions,\n ScanCodeOptions,\n SetClipboardDataOptions,\n ShareMenuOptions,\n ShowActionSheetOptions,\n ShowLoadingOptions,\n ShowModalOptions,\n ShowToastOptions,\n TabBarOptions,\n} from './types'\nimport {\n getClipboardDataBridge,\n openCustomerServiceChatBridge,\n scanCodeBridge,\n setClipboardDataBridge,\n} from './interactionApi'\nimport {\n chooseAddressBridge,\n chooseLocationBridge,\n makePhoneCallBridge,\n openLocationBridge,\n} from './locationApi'\nimport {\n chooseFileBridge,\n chooseImageBridge,\n chooseMediaBridge,\n chooseMessageFileBridge,\n chooseVideoBridge,\n compressImageBridge,\n compressVideoBridge,\n getImageInfoBridge,\n getVideoInfoBridge,\n openDocumentBridge,\n openVideoEditorBridge,\n previewImageBridge,\n previewMediaBridge,\n saveFileBridge,\n saveFileToDiskBridge,\n saveImageToPhotosAlbumBridge,\n saveVideoToPhotosAlbumBridge,\n} from './mediaApi'\nimport {\n hideTabBarBridge,\n requestPaymentBridge,\n requestSubscribeMessageBridge,\n showActionSheetBridge,\n showModalBridge,\n showShareMenuBridge,\n showTabBarBridge,\n updateShareMenuBridge,\n} from './menuApi'\nimport {\n hideLoadingBridge,\n showLoadingBridge,\n showToastBridge,\n} from './uiFeedback'\n\nexport function showToast(options?: ShowToastOptions) {\n return showToastBridge(options)\n}\n\nexport function showLoading(options?: ShowLoadingOptions) {\n return showLoadingBridge(options)\n}\n\nexport function hideLoading(options?: MiniProgramAsyncOptions<MiniProgramBaseResult>) {\n return hideLoadingBridge(options)\n}\n\nexport function showShareMenu(options?: ShareMenuOptions) {\n return showShareMenuBridge(options)\n}\n\nexport function updateShareMenu(options?: ShareMenuOptions) {\n return updateShareMenuBridge(options)\n}\n\nexport function openCustomerServiceChat(options?: OpenCustomerServiceChatOptions) {\n return openCustomerServiceChatBridge(options)\n}\n\nexport function makePhoneCall(options?: MakePhoneCallOptions) {\n return makePhoneCallBridge(options)\n}\n\nexport function chooseAddress(options?: ChooseAddressOptions) {\n return chooseAddressBridge(options)\n}\n\nexport function chooseLocation(options?: ChooseLocationOptions) {\n return chooseLocationBridge(options)\n}\n\nexport function openLocation(options?: OpenLocationOptions) {\n return openLocationBridge(options)\n}\n\nexport function getImageInfo(options?: GetImageInfoOptions) {\n return getImageInfoBridge(options)\n}\n\nexport function getVideoInfo(options?: GetVideoInfoOptions) {\n return getVideoInfoBridge(options)\n}\n\nexport function showTabBar(options?: TabBarOptions) {\n return showTabBarBridge(options)\n}\n\nexport function hideTabBar(options?: TabBarOptions) {\n return hideTabBarBridge(options)\n}\n\nexport function requestPayment(options?: RequestPaymentOptions) {\n return requestPaymentBridge(options)\n}\n\nexport function requestSubscribeMessage(options?: RequestSubscribeMessageOptions): Promise<RequestSubscribeMessageSuccessResult> {\n return requestSubscribeMessageBridge(options)\n}\n\nexport function showModal(options?: ShowModalOptions) {\n return showModalBridge(options)\n}\n\nexport function showActionSheet(options?: ShowActionSheetOptions) {\n return showActionSheetBridge(options)\n}\n\nexport async function chooseImage(options?: ChooseImageOptions) {\n return chooseImageBridge(options)\n}\n\nexport async function chooseMedia(options?: ChooseMediaOptions) {\n return chooseMediaBridge(options)\n}\n\nexport async function compressImage(options?: CompressImageOptions) {\n return compressImageBridge(options)\n}\n\nexport function compressVideo(options?: CompressVideoOptions) {\n return compressVideoBridge(options)\n}\n\nexport async function chooseVideo(options?: ChooseVideoOptions) {\n return chooseVideoBridge(options)\n}\n\nexport async function chooseMessageFile(options?: ChooseMessageFileOptions) {\n return chooseMessageFileBridge(options)\n}\n\nexport async function chooseFile(options?: ChooseFileOptions) {\n return chooseFileBridge(options)\n}\n\nexport function previewImage(options?: PreviewImageOptions) {\n return previewImageBridge(options)\n}\n\nexport function previewMedia(options?: PreviewMediaOptions) {\n return previewMediaBridge(options)\n}\n\nexport function openVideoEditor(options?: OpenVideoEditorOptions) {\n return openVideoEditorBridge(options)\n}\n\nexport function saveImageToPhotosAlbum(options?: SaveImageToPhotosAlbumOptions) {\n return saveImageToPhotosAlbumBridge(options)\n}\n\nexport function saveVideoToPhotosAlbum(options?: SaveVideoToPhotosAlbumOptions) {\n return saveVideoToPhotosAlbumBridge(options)\n}\n\nexport function saveFile(options?: SaveFileOptions) {\n return saveFileBridge(options)\n}\n\nexport function saveFileToDisk(options?: SaveFileToDiskOptions) {\n return saveFileToDiskBridge(options)\n}\n\nexport function openDocument(options?: OpenDocumentOptions) {\n return openDocumentBridge(options)\n}\n\nexport function scanCode(options?: ScanCodeOptions) {\n return scanCodeBridge(options)\n}\n\nexport async function setClipboardData(options?: SetClipboardDataOptions) {\n return setClipboardDataBridge(options)\n}\n\nexport async function getClipboardData(options?: GetClipboardDataOptions) {\n return getClipboardDataBridge(options)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqFA,SAAgB,UAAU,SAA4B;CACpD,OAAO,gBAAgB,OAAO;AAChC;AAEA,SAAgB,YAAY,SAA8B;CACxD,OAAO,kBAAkB,OAAO;AAClC;AAEA,SAAgB,YAAY,SAA0D;CACpF,OAAO,kBAAkB,OAAO;AAClC;AAEA,SAAgB,cAAc,SAA4B;CACxD,OAAO,oBAAoB,OAAO;AACpC;AAEA,SAAgB,gBAAgB,SAA4B;CAC1D,OAAO,sBAAsB,OAAO;AACtC;AAEA,SAAgB,wBAAwB,SAA0C;CAChF,OAAO,8BAA8B,OAAO;AAC9C;AAEA,SAAgB,cAAc,SAAgC;CAC5D,OAAO,oBAAoB,OAAO;AACpC;AAEA,SAAgB,cAAc,SAAgC;CAC5D,OAAO,oBAAoB,OAAO;AACpC;AAEA,SAAgB,eAAe,SAAiC;CAC9D,OAAO,qBAAqB,OAAO;AACrC;AAEA,SAAgB,aAAa,SAA+B;CAC1D,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,aAAa,SAA+B;CAC1D,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,aAAa,SAA+B;CAC1D,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,WAAW,SAAyB;CAClD,OAAO,iBAAiB,OAAO;AACjC;AAEA,SAAgB,WAAW,SAAyB;CAClD,OAAO,iBAAiB,OAAO;AACjC;AAEA,SAAgB,eAAe,SAAiC;CAC9D,OAAO,qBAAqB,OAAO;AACrC;AAEA,SAAgB,wBAAwB,SAAyF;CAC/H,OAAO,8BAA8B,OAAO;AAC9C;AAEA,SAAgB,UAAU,SAA4B;CACpD,OAAO,gBAAgB,OAAO;AAChC;AAEA,SAAgB,gBAAgB,SAAkC;CAChE,OAAO,sBAAsB,OAAO;AACtC;AAEA,eAAsB,YAAY,SAA8B;CAC9D,OAAO,kBAAkB,OAAO;AAClC;AAEA,eAAsB,YAAY,SAA8B;CAC9D,OAAO,kBAAkB,OAAO;AAClC;AAEA,eAAsB,cAAc,SAAgC;CAClE,OAAO,oBAAoB,OAAO;AACpC;AAEA,SAAgB,cAAc,SAAgC;CAC5D,OAAO,oBAAoB,OAAO;AACpC;AAEA,eAAsB,YAAY,SAA8B;CAC9D,OAAO,kBAAkB,OAAO;AAClC;AAEA,eAAsB,kBAAkB,SAAoC;CAC1E,OAAO,wBAAwB,OAAO;AACxC;AAEA,eAAsB,WAAW,SAA6B;CAC5D,OAAO,iBAAiB,OAAO;AACjC;AAEA,SAAgB,aAAa,SAA+B;CAC1D,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,aAAa,SAA+B;CAC1D,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,gBAAgB,SAAkC;CAChE,OAAO,sBAAsB,OAAO;AACtC;AAEA,SAAgB,uBAAuB,SAAyC;CAC9E,OAAO,6BAA6B,OAAO;AAC7C;AAEA,SAAgB,uBAAuB,SAAyC;CAC9E,OAAO,6BAA6B,OAAO;AAC7C;AAEA,SAAgB,SAAS,SAA2B;CAClD,OAAO,eAAe,OAAO;AAC/B;AAEA,SAAgB,eAAe,SAAiC;CAC9D,OAAO,qBAAqB,OAAO;AACrC;AAEA,SAAgB,aAAa,SAA+B;CAC1D,OAAO,mBAAmB,OAAO;AACnC;AAEA,SAAgB,SAAS,SAA2B;CAClD,OAAO,eAAe,OAAO;AAC/B;AAEA,eAAsB,iBAAiB,SAAmC;CACxE,OAAO,uBAAuB,OAAO;AACvC;AAEA,eAAsB,iBAAiB,SAAmC;CACxE,OAAO,uBAAuB,OAAO;AACvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videoContext.mjs","names":[],"sources":["../../../src/runtime/polyfill/videoContext.ts"],"sourcesContent":["import type { VideoContext } from './types/platformRuntime'\n\nfunction resolveVideoElementById(videoId: string) {\n if (typeof document === 'undefined') {\n return undefined\n }\n const normalized = String(videoId ?? '').trim()\n if (!normalized) {\n return undefined\n }\n const fromId = document.getElementById(normalized)\n if (fromId && 'play' in fromId && 'pause' in fromId) {\n return fromId as unknown as HTMLVideoElement\n }\n const escaped = typeof CSS !== 'undefined' && typeof CSS.escape === 'function'\n ? CSS.escape(normalized)\n : normalized.replace(/\"/g, '\\\\\"')\n const fromQuery = document.querySelector(`video#${escaped}`)\n if (fromQuery && 'play' in fromQuery && 'pause' in fromQuery) {\n return fromQuery as HTMLVideoElement\n }\n return undefined\n}\n\nexport function createVideoContextBridge(videoId: string): VideoContext {\n const getVideo = () => resolveVideoElementById(videoId)\n return {\n play() {\n getVideo()?.play?.()\n },\n pause() {\n getVideo()?.pause?.()\n },\n stop() {\n const video = getVideo()\n if (!video) {\n return\n }\n video.pause?.()\n try {\n video.currentTime = 0\n }\n catch {\n // ignore browsers that block currentTime mutation\n }\n },\n seek(position: number) {\n if (!Number.isFinite(position)) {\n return\n }\n const video = getVideo()\n if (!video) {\n return\n }\n try {\n video.currentTime = Math.max(0, position)\n }\n catch {\n // ignore browsers that block currentTime mutation\n }\n },\n playbackRate(rate: number) {\n if (!Number.isFinite(rate) || rate <= 0) {\n return\n }\n const video = getVideo()\n if (!video) {\n return\n }\n try {\n video.playbackRate = rate\n }\n catch {\n // ignore unsupported playbackRate mutation\n }\n },\n requestFullScreen() {\n const video = getVideo() as (HTMLVideoElement & { requestFullscreen?: () => Promise<void> | void }) | undefined\n video?.requestFullscreen?.()\n },\n exitFullScreen() {\n const runtimeDocument = document as { exitFullscreen?: () => Promise<void> | void }\n runtimeDocument.exitFullscreen?.()\n },\n }\n}\n"],"mappings":";AAEA,SAAS,wBAAwB,SAAiB;
|
|
1
|
+
{"version":3,"file":"videoContext.mjs","names":[],"sources":["../../../src/runtime/polyfill/videoContext.ts"],"sourcesContent":["import type { VideoContext } from './types/platformRuntime'\n\nfunction resolveVideoElementById(videoId: string) {\n if (typeof document === 'undefined') {\n return undefined\n }\n const normalized = String(videoId ?? '').trim()\n if (!normalized) {\n return undefined\n }\n const fromId = document.getElementById(normalized)\n if (fromId && 'play' in fromId && 'pause' in fromId) {\n return fromId as unknown as HTMLVideoElement\n }\n const escaped = typeof CSS !== 'undefined' && typeof CSS.escape === 'function'\n ? CSS.escape(normalized)\n : normalized.replace(/\"/g, '\\\\\"')\n const fromQuery = document.querySelector(`video#${escaped}`)\n if (fromQuery && 'play' in fromQuery && 'pause' in fromQuery) {\n return fromQuery as HTMLVideoElement\n }\n return undefined\n}\n\nexport function createVideoContextBridge(videoId: string): VideoContext {\n const getVideo = () => resolveVideoElementById(videoId)\n return {\n play() {\n getVideo()?.play?.()\n },\n pause() {\n getVideo()?.pause?.()\n },\n stop() {\n const video = getVideo()\n if (!video) {\n return\n }\n video.pause?.()\n try {\n video.currentTime = 0\n }\n catch {\n // ignore browsers that block currentTime mutation\n }\n },\n seek(position: number) {\n if (!Number.isFinite(position)) {\n return\n }\n const video = getVideo()\n if (!video) {\n return\n }\n try {\n video.currentTime = Math.max(0, position)\n }\n catch {\n // ignore browsers that block currentTime mutation\n }\n },\n playbackRate(rate: number) {\n if (!Number.isFinite(rate) || rate <= 0) {\n return\n }\n const video = getVideo()\n if (!video) {\n return\n }\n try {\n video.playbackRate = rate\n }\n catch {\n // ignore unsupported playbackRate mutation\n }\n },\n requestFullScreen() {\n const video = getVideo() as (HTMLVideoElement & { requestFullscreen?: () => Promise<void> | void }) | undefined\n video?.requestFullscreen?.()\n },\n exitFullScreen() {\n const runtimeDocument = document as { exitFullscreen?: () => Promise<void> | void }\n runtimeDocument.exitFullscreen?.()\n },\n }\n}\n"],"mappings":";AAEA,SAAS,wBAAwB,SAAiB;CAChD,IAAI,OAAO,aAAa,aACtB;CAEF,MAAM,aAAa,OAAO,WAAW,EAAE,EAAE,KAAK;CAC9C,IAAI,CAAC,YACH;CAEF,MAAM,SAAS,SAAS,eAAe,UAAU;CACjD,IAAI,UAAU,UAAU,UAAU,WAAW,QAC3C,OAAO;CAET,MAAM,UAAU,OAAO,QAAQ,eAAe,OAAO,IAAI,WAAW,aAChE,IAAI,OAAO,UAAU,IACrB,WAAW,QAAQ,MAAM,MAAK;CAClC,MAAM,YAAY,SAAS,cAAc,SAAS,SAAS;CAC3D,IAAI,aAAa,UAAU,aAAa,WAAW,WACjD,OAAO;AAGX;AAEA,SAAgB,yBAAyB,SAA+B;CACtE,MAAM,iBAAiB,wBAAwB,OAAO;CACtD,OAAO;EACL,OAAO;GACL,SAAS,GAAG,OAAO;EACrB;EACA,QAAQ;GACN,SAAS,GAAG,QAAQ;EACtB;EACA,OAAO;GACL,MAAM,QAAQ,SAAS;GACvB,IAAI,CAAC,OACH;GAEF,MAAM,QAAQ;GACd,IAAI;IACF,MAAM,cAAc;GACtB,QACM,CAEN;EACF;EACA,KAAK,UAAkB;GACrB,IAAI,CAAC,OAAO,SAAS,QAAQ,GAC3B;GAEF,MAAM,QAAQ,SAAS;GACvB,IAAI,CAAC,OACH;GAEF,IAAI;IACF,MAAM,cAAc,KAAK,IAAI,GAAG,QAAQ;GAC1C,QACM,CAEN;EACF;EACA,aAAa,MAAc;GACzB,IAAI,CAAC,OAAO,SAAS,IAAI,KAAK,QAAQ,GACpC;GAEF,MAAM,QAAQ,SAAS;GACvB,IAAI,CAAC,OACH;GAEF,IAAI;IACF,MAAM,eAAe;GACvB,QACM,CAEN;EACF;EACA,oBAAoB;GAElB,AADc,SACV,GAAG,oBAAoB;EAC7B;EACA,iBAAiB;GAEf,SAAgB,iBAAiB;EACnC;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vkSession.mjs","names":[],"sources":["../../../src/runtime/polyfill/vkSession.ts"],"sourcesContent":["interface VkSession {\n start: () => Promise<{ errMsg: string }>\n stop: () => Promise<{ errMsg: string }>\n destroy: () => void\n on: (eventName: string, callback: (payload: unknown) => void) => void\n off: (eventName?: string, callback?: (payload: unknown) => void) => void\n}\n\nexport function createVkSessionBridge(): VkSession {\n let destroyed = false\n const listeners = new Map<string, Set<(payload: unknown) => void>>()\n\n const ensureAvailable = (action: string) => {\n if (destroyed) {\n throw new TypeError(`createVKSession:fail session is destroyed (${action})`)\n }\n }\n\n return {\n start() {\n try {\n ensureAvailable('start')\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n return Promise.reject(new TypeError(message))\n }\n return Promise.resolve({ errMsg: 'vkSession.start:ok' })\n },\n stop() {\n try {\n ensureAvailable('stop')\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n return Promise.reject(new TypeError(message))\n }\n return Promise.resolve({ errMsg: 'vkSession.stop:ok' })\n },\n destroy() {\n destroyed = true\n listeners.clear()\n },\n on(eventName: string, callback: (payload: unknown) => void) {\n if (typeof eventName !== 'string' || typeof callback !== 'function') {\n return\n }\n const key = eventName.trim()\n if (!key) {\n return\n }\n const list = listeners.get(key) ?? new Set<(payload: unknown) => void>()\n list.add(callback)\n listeners.set(key, list)\n },\n off(eventName?: string, callback?: (payload: unknown) => void) {\n if (typeof eventName !== 'string' || !eventName.trim()) {\n listeners.clear()\n return\n }\n const list = listeners.get(eventName.trim())\n if (!list) {\n return\n }\n if (typeof callback !== 'function') {\n listeners.delete(eventName.trim())\n return\n }\n list.delete(callback)\n if (list.size === 0) {\n listeners.delete(eventName.trim())\n }\n },\n }\n}\n"],"mappings":";AAQA,SAAgB,wBAAmC;CACjD,IAAI,YAAY;CAChB,MAAM,4BAAY,IAAI,
|
|
1
|
+
{"version":3,"file":"vkSession.mjs","names":[],"sources":["../../../src/runtime/polyfill/vkSession.ts"],"sourcesContent":["interface VkSession {\n start: () => Promise<{ errMsg: string }>\n stop: () => Promise<{ errMsg: string }>\n destroy: () => void\n on: (eventName: string, callback: (payload: unknown) => void) => void\n off: (eventName?: string, callback?: (payload: unknown) => void) => void\n}\n\nexport function createVkSessionBridge(): VkSession {\n let destroyed = false\n const listeners = new Map<string, Set<(payload: unknown) => void>>()\n\n const ensureAvailable = (action: string) => {\n if (destroyed) {\n throw new TypeError(`createVKSession:fail session is destroyed (${action})`)\n }\n }\n\n return {\n start() {\n try {\n ensureAvailable('start')\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n return Promise.reject(new TypeError(message))\n }\n return Promise.resolve({ errMsg: 'vkSession.start:ok' })\n },\n stop() {\n try {\n ensureAvailable('stop')\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n return Promise.reject(new TypeError(message))\n }\n return Promise.resolve({ errMsg: 'vkSession.stop:ok' })\n },\n destroy() {\n destroyed = true\n listeners.clear()\n },\n on(eventName: string, callback: (payload: unknown) => void) {\n if (typeof eventName !== 'string' || typeof callback !== 'function') {\n return\n }\n const key = eventName.trim()\n if (!key) {\n return\n }\n const list = listeners.get(key) ?? new Set<(payload: unknown) => void>()\n list.add(callback)\n listeners.set(key, list)\n },\n off(eventName?: string, callback?: (payload: unknown) => void) {\n if (typeof eventName !== 'string' || !eventName.trim()) {\n listeners.clear()\n return\n }\n const list = listeners.get(eventName.trim())\n if (!list) {\n return\n }\n if (typeof callback !== 'function') {\n listeners.delete(eventName.trim())\n return\n }\n list.delete(callback)\n if (list.size === 0) {\n listeners.delete(eventName.trim())\n }\n },\n }\n}\n"],"mappings":";AAQA,SAAgB,wBAAmC;CACjD,IAAI,YAAY;CAChB,MAAM,4BAAY,IAAI,IAA6C;CAEnE,MAAM,mBAAmB,WAAmB;EAC1C,IAAI,WACF,MAAM,IAAI,UAAU,8CAA8C,OAAO,EAAE;CAE/E;CAEA,OAAO;EACL,QAAQ;GACN,IAAI;IACF,gBAAgB,OAAO;GACzB,SACO,OAAO;IACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;IACrE,OAAO,QAAQ,OAAO,IAAI,UAAU,OAAO,CAAC;GAC9C;GACA,OAAO,QAAQ,QAAQ,EAAE,QAAQ,qBAAqB,CAAC;EACzD;EACA,OAAO;GACL,IAAI;IACF,gBAAgB,MAAM;GACxB,SACO,OAAO;IACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;IACrE,OAAO,QAAQ,OAAO,IAAI,UAAU,OAAO,CAAC;GAC9C;GACA,OAAO,QAAQ,QAAQ,EAAE,QAAQ,oBAAoB,CAAC;EACxD;EACA,UAAU;GACR,YAAY;GACZ,UAAU,MAAM;EAClB;EACA,GAAG,WAAmB,UAAsC;GAC1D,IAAI,OAAO,cAAc,YAAY,OAAO,aAAa,YACvD;GAEF,MAAM,MAAM,UAAU,KAAK;GAC3B,IAAI,CAAC,KACH;GAEF,MAAM,OAAO,UAAU,IAAI,GAAG,qBAAK,IAAI,IAAgC;GACvE,KAAK,IAAI,QAAQ;GACjB,UAAU,IAAI,KAAK,IAAI;EACzB;EACA,IAAI,WAAoB,UAAuC;GAC7D,IAAI,OAAO,cAAc,YAAY,CAAC,UAAU,KAAK,GAAG;IACtD,UAAU,MAAM;IAChB;GACF;GACA,MAAM,OAAO,UAAU,IAAI,UAAU,KAAK,CAAC;GAC3C,IAAI,CAAC,MACH;GAEF,IAAI,OAAO,aAAa,YAAY;IAClC,UAAU,OAAO,UAAU,KAAK,CAAC;IACjC;GACF;GACA,KAAK,OAAO,QAAQ;GACpB,IAAI,KAAK,SAAS,GAChB,UAAU,OAAO,UAAU,KAAK,CAAC;EAErC;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windowResize.mjs","names":[],"sources":["../../../src/runtime/polyfill/windowResize.ts"],"sourcesContent":["interface WindowResizeSnapshot {\n size: {\n windowWidth: number\n windowHeight: number\n }\n windowWidth: number\n windowHeight: number\n}\n\nconst windowResizeCallbacks = new Set<(result: WindowResizeSnapshot) => void>()\nlet windowResizeBridgeBound = false\n\nfunction readWindowResizeResult(getWindowInfo: () => { windowWidth: number, windowHeight: number }) {\n const windowInfo = getWindowInfo()\n return {\n size: {\n windowWidth: windowInfo.windowWidth,\n windowHeight: windowInfo.windowHeight,\n },\n windowWidth: windowInfo.windowWidth,\n windowHeight: windowInfo.windowHeight,\n }\n}\n\nfunction notifyWindowResize(getWindowInfo: () => { windowWidth: number, windowHeight: number }) {\n if (windowResizeCallbacks.size === 0) {\n return\n }\n const result = readWindowResizeResult(getWindowInfo)\n for (const callback of windowResizeCallbacks) {\n callback(result)\n }\n}\n\nfunction bindWindowResizeBridge(getWindowInfo: () => { windowWidth: number, windowHeight: number }) {\n if (windowResizeBridgeBound) {\n return\n }\n windowResizeBridgeBound = true\n const runtimeTarget = (typeof window !== 'undefined'\n ? window\n : globalThis) as {\n addEventListener?: (type: string, listener: () => void) => void\n }\n runtimeTarget.addEventListener?.('resize', () => notifyWindowResize(getWindowInfo))\n}\n\nexport function addWindowResizeCallback(\n callback: (result: WindowResizeSnapshot) => void,\n getWindowInfo: () => { windowWidth: number, windowHeight: number },\n) {\n bindWindowResizeBridge(getWindowInfo)\n windowResizeCallbacks.add(callback)\n}\n\nexport function removeWindowResizeCallback(callback?: (result: WindowResizeSnapshot) => void) {\n if (typeof callback !== 'function') {\n windowResizeCallbacks.clear()\n return\n }\n windowResizeCallbacks.delete(callback)\n}\n"],"mappings":";AASA,MAAM,wCAAwB,IAAI,
|
|
1
|
+
{"version":3,"file":"windowResize.mjs","names":[],"sources":["../../../src/runtime/polyfill/windowResize.ts"],"sourcesContent":["interface WindowResizeSnapshot {\n size: {\n windowWidth: number\n windowHeight: number\n }\n windowWidth: number\n windowHeight: number\n}\n\nconst windowResizeCallbacks = new Set<(result: WindowResizeSnapshot) => void>()\nlet windowResizeBridgeBound = false\n\nfunction readWindowResizeResult(getWindowInfo: () => { windowWidth: number, windowHeight: number }) {\n const windowInfo = getWindowInfo()\n return {\n size: {\n windowWidth: windowInfo.windowWidth,\n windowHeight: windowInfo.windowHeight,\n },\n windowWidth: windowInfo.windowWidth,\n windowHeight: windowInfo.windowHeight,\n }\n}\n\nfunction notifyWindowResize(getWindowInfo: () => { windowWidth: number, windowHeight: number }) {\n if (windowResizeCallbacks.size === 0) {\n return\n }\n const result = readWindowResizeResult(getWindowInfo)\n for (const callback of windowResizeCallbacks) {\n callback(result)\n }\n}\n\nfunction bindWindowResizeBridge(getWindowInfo: () => { windowWidth: number, windowHeight: number }) {\n if (windowResizeBridgeBound) {\n return\n }\n windowResizeBridgeBound = true\n const runtimeTarget = (typeof window !== 'undefined'\n ? window\n : globalThis) as {\n addEventListener?: (type: string, listener: () => void) => void\n }\n runtimeTarget.addEventListener?.('resize', () => notifyWindowResize(getWindowInfo))\n}\n\nexport function addWindowResizeCallback(\n callback: (result: WindowResizeSnapshot) => void,\n getWindowInfo: () => { windowWidth: number, windowHeight: number },\n) {\n bindWindowResizeBridge(getWindowInfo)\n windowResizeCallbacks.add(callback)\n}\n\nexport function removeWindowResizeCallback(callback?: (result: WindowResizeSnapshot) => void) {\n if (typeof callback !== 'function') {\n windowResizeCallbacks.clear()\n return\n }\n windowResizeCallbacks.delete(callback)\n}\n"],"mappings":";AASA,MAAM,wCAAwB,IAAI,IAA4C;AAC9E,IAAI,0BAA0B;AAE9B,SAAS,uBAAuB,eAAoE;CAClG,MAAM,aAAa,cAAc;CACjC,OAAO;EACL,MAAM;GACJ,aAAa,WAAW;GACxB,cAAc,WAAW;EAC3B;EACA,aAAa,WAAW;EACxB,cAAc,WAAW;CAC3B;AACF;AAEA,SAAS,mBAAmB,eAAoE;CAC9F,IAAI,sBAAsB,SAAS,GACjC;CAEF,MAAM,SAAS,uBAAuB,aAAa;CACnD,KAAK,MAAM,YAAY,uBACrB,SAAS,MAAM;AAEnB;AAEA,SAAS,uBAAuB,eAAoE;CAClG,IAAI,yBACF;CAEF,0BAA0B;CAM1B,CALuB,OAAO,WAAW,cACrC,SACA,YAGU,mBAAmB,gBAAgB,mBAAmB,aAAa,CAAC;AACpF;AAEA,SAAgB,wBACd,UACA,eACA;CACA,uBAAuB,aAAa;CACpC,sBAAsB,IAAI,QAAQ;AACpC;AAEA,SAAgB,2BAA2B,UAAmD;CAC5F,IAAI,OAAO,aAAa,YAAY;EAClC,sBAAsB,MAAM;EAC5B;CACF;CACA,sBAAsB,OAAO,QAAQ;AACvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.mjs","names":[],"sources":["../../../src/runtime/polyfill/worker.ts"],"sourcesContent":["type WorkerMessageCallback = (result: { data: unknown }) => void\ntype WorkerErrorCallback = (error: {\n message: string\n filename?: string\n lineno?: number\n colno?: number\n}) => void\n\nfunction resolveWorkerPath(path: unknown) {\n const normalized = typeof path === 'string' ? path.trim() : ''\n if (!normalized) {\n throw new TypeError('createWorker:fail invalid scriptPath')\n }\n try {\n const runtimeLocation = (typeof location !== 'undefined' ? location : undefined) as { href?: string } | undefined\n const base = runtimeLocation?.href\n if (base) {\n return new URL(normalized, base).toString()\n }\n }\n catch {\n // fallback to raw path\n }\n return normalized\n}\n\nexport function createWorkerBridge(path: string) {\n const WorkerCtor = (globalThis as { Worker?: typeof Worker }).Worker\n if (typeof WorkerCtor !== 'function') {\n throw new TypeError('createWorker:fail Worker is unavailable')\n }\n const scriptPath = resolveWorkerPath(path)\n\n let nativeWorker: Worker\n try {\n nativeWorker = new WorkerCtor(scriptPath)\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n throw new TypeError(`createWorker:fail ${message}`)\n }\n\n const messageCallbacks = new Set<WorkerMessageCallback>()\n const errorCallbacks = new Set<WorkerErrorCallback>()\n\n const handleMessage = (event: MessageEvent<unknown>) => {\n for (const callback of messageCallbacks) {\n callback({ data: event?.data })\n }\n }\n const handleError = (event: ErrorEvent) => {\n const payload = {\n message: event?.message ?? 'unknown error',\n filename: event?.filename,\n lineno: event?.lineno,\n colno: event?.colno,\n }\n for (const callback of errorCallbacks) {\n callback(payload)\n }\n }\n\n if (typeof nativeWorker.addEventListener === 'function') {\n nativeWorker.addEventListener('message', handleMessage as EventListener)\n nativeWorker.addEventListener('error', handleError as EventListener)\n }\n else {\n nativeWorker.onmessage = handleMessage as ((this: AbstractWorker, ev: MessageEvent) => any)\n nativeWorker.onerror = handleError as ((this: AbstractWorker, ev: ErrorEvent) => any)\n }\n\n return {\n postMessage(data: unknown) {\n nativeWorker.postMessage(data)\n },\n terminate() {\n nativeWorker.terminate()\n messageCallbacks.clear()\n errorCallbacks.clear()\n },\n onMessage(callback: WorkerMessageCallback) {\n if (typeof callback === 'function') {\n messageCallbacks.add(callback)\n }\n },\n offMessage(callback?: WorkerMessageCallback) {\n if (typeof callback !== 'function') {\n messageCallbacks.clear()\n return\n }\n messageCallbacks.delete(callback)\n },\n onError(callback: WorkerErrorCallback) {\n if (typeof callback === 'function') {\n errorCallbacks.add(callback)\n }\n },\n offError(callback?: WorkerErrorCallback) {\n if (typeof callback !== 'function') {\n errorCallbacks.clear()\n return\n }\n errorCallbacks.delete(callback)\n },\n }\n}\n"],"mappings":";AAQA,SAAS,kBAAkB,MAAe;CACxC,MAAM,aAAa,OAAO,SAAS,WAAW,KAAK,
|
|
1
|
+
{"version":3,"file":"worker.mjs","names":[],"sources":["../../../src/runtime/polyfill/worker.ts"],"sourcesContent":["type WorkerMessageCallback = (result: { data: unknown }) => void\ntype WorkerErrorCallback = (error: {\n message: string\n filename?: string\n lineno?: number\n colno?: number\n}) => void\n\nfunction resolveWorkerPath(path: unknown) {\n const normalized = typeof path === 'string' ? path.trim() : ''\n if (!normalized) {\n throw new TypeError('createWorker:fail invalid scriptPath')\n }\n try {\n const runtimeLocation = (typeof location !== 'undefined' ? location : undefined) as { href?: string } | undefined\n const base = runtimeLocation?.href\n if (base) {\n return new URL(normalized, base).toString()\n }\n }\n catch {\n // fallback to raw path\n }\n return normalized\n}\n\nexport function createWorkerBridge(path: string) {\n const WorkerCtor = (globalThis as { Worker?: typeof Worker }).Worker\n if (typeof WorkerCtor !== 'function') {\n throw new TypeError('createWorker:fail Worker is unavailable')\n }\n const scriptPath = resolveWorkerPath(path)\n\n let nativeWorker: Worker\n try {\n nativeWorker = new WorkerCtor(scriptPath)\n }\n catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n throw new TypeError(`createWorker:fail ${message}`)\n }\n\n const messageCallbacks = new Set<WorkerMessageCallback>()\n const errorCallbacks = new Set<WorkerErrorCallback>()\n\n const handleMessage = (event: MessageEvent<unknown>) => {\n for (const callback of messageCallbacks) {\n callback({ data: event?.data })\n }\n }\n const handleError = (event: ErrorEvent) => {\n const payload = {\n message: event?.message ?? 'unknown error',\n filename: event?.filename,\n lineno: event?.lineno,\n colno: event?.colno,\n }\n for (const callback of errorCallbacks) {\n callback(payload)\n }\n }\n\n if (typeof nativeWorker.addEventListener === 'function') {\n nativeWorker.addEventListener('message', handleMessage as EventListener)\n nativeWorker.addEventListener('error', handleError as EventListener)\n }\n else {\n nativeWorker.onmessage = handleMessage as ((this: AbstractWorker, ev: MessageEvent) => any)\n nativeWorker.onerror = handleError as ((this: AbstractWorker, ev: ErrorEvent) => any)\n }\n\n return {\n postMessage(data: unknown) {\n nativeWorker.postMessage(data)\n },\n terminate() {\n nativeWorker.terminate()\n messageCallbacks.clear()\n errorCallbacks.clear()\n },\n onMessage(callback: WorkerMessageCallback) {\n if (typeof callback === 'function') {\n messageCallbacks.add(callback)\n }\n },\n offMessage(callback?: WorkerMessageCallback) {\n if (typeof callback !== 'function') {\n messageCallbacks.clear()\n return\n }\n messageCallbacks.delete(callback)\n },\n onError(callback: WorkerErrorCallback) {\n if (typeof callback === 'function') {\n errorCallbacks.add(callback)\n }\n },\n offError(callback?: WorkerErrorCallback) {\n if (typeof callback !== 'function') {\n errorCallbacks.clear()\n return\n }\n errorCallbacks.delete(callback)\n },\n }\n}\n"],"mappings":";AAQA,SAAS,kBAAkB,MAAe;CACxC,MAAM,aAAa,OAAO,SAAS,WAAW,KAAK,KAAK,IAAI;CAC5D,IAAI,CAAC,YACH,MAAM,IAAI,UAAU,sCAAsC;CAE5D,IAAI;EAEF,MAAM,QADmB,OAAO,aAAa,cAAc,WAAW,SACxC;EAC9B,IAAI,MACF,OAAO,IAAI,IAAI,YAAY,IAAI,EAAE,SAAS;CAE9C,QACM,CAEN;CACA,OAAO;AACT;AAEA,SAAgB,mBAAmB,MAAc;CAC/C,MAAM,aAAc,WAA0C;CAC9D,IAAI,OAAO,eAAe,YACxB,MAAM,IAAI,UAAU,yCAAyC;CAE/D,MAAM,aAAa,kBAAkB,IAAI;CAEzC,IAAI;CACJ,IAAI;EACF,eAAe,IAAI,WAAW,UAAU;CAC1C,SACO,OAAO;EACZ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EACrE,MAAM,IAAI,UAAU,qBAAqB,SAAS;CACpD;CAEA,MAAM,mCAAmB,IAAI,IAA2B;CACxD,MAAM,iCAAiB,IAAI,IAAyB;CAEpD,MAAM,iBAAiB,UAAiC;EACtD,KAAK,MAAM,YAAY,kBACrB,SAAS,EAAE,MAAM,OAAO,KAAK,CAAC;CAElC;CACA,MAAM,eAAe,UAAsB;EACzC,MAAM,UAAU;GACd,SAAS,OAAO,WAAW;GAC3B,UAAU,OAAO;GACjB,QAAQ,OAAO;GACf,OAAO,OAAO;EAChB;EACA,KAAK,MAAM,YAAY,gBACrB,SAAS,OAAO;CAEpB;CAEA,IAAI,OAAO,aAAa,qBAAqB,YAAY;EACvD,aAAa,iBAAiB,WAAW,aAA8B;EACvE,aAAa,iBAAiB,SAAS,WAA4B;CACrE,OACK;EACH,aAAa,YAAY;EACzB,aAAa,UAAU;CACzB;CAEA,OAAO;EACL,YAAY,MAAe;GACzB,aAAa,YAAY,IAAI;EAC/B;EACA,YAAY;GACV,aAAa,UAAU;GACvB,iBAAiB,MAAM;GACvB,eAAe,MAAM;EACvB;EACA,UAAU,UAAiC;GACzC,IAAI,OAAO,aAAa,YACtB,iBAAiB,IAAI,QAAQ;EAEjC;EACA,WAAW,UAAkC;GAC3C,IAAI,OAAO,aAAa,YAAY;IAClC,iBAAiB,MAAM;IACvB;GACF;GACA,iBAAiB,OAAO,QAAQ;EAClC;EACA,QAAQ,UAA+B;GACrC,IAAI,OAAO,aAAa,YACtB,eAAe,IAAI,QAAQ;EAE/B;EACA,SAAS,UAAgC;GACvC,IAAI,OAAO,aAAa,YAAY;IAClC,eAAe,MAAM;IACrB;GACF;GACA,eAAe,OAAO,QAAQ;EAChC;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderContext.mjs","names":[],"sources":["../../src/runtime/renderContext.ts"],"sourcesContent":["import type { ComponentPublicInstance } from './component'\nimport type { TemplateScope } from './template'\nimport { getRuntimeExecutionMode, warnRuntimeExecutionOnce } from './execution'\nimport { emitRuntimeWarning } from './warning'\n\nexport interface RenderContext {\n instance: ComponentPublicInstance\n eval: (expression: string, scope: TemplateScope, wxs?: Record<string, any>) => any\n createScope: (parent: TemplateScope, locals?: Record<string, any>) => TemplateScope\n mergeScope: (parent: TemplateScope, data?: any) => TemplateScope\n normalizeList: (value: any) => any[]\n key: (rawKey: string, item: any, index: number, scope: TemplateScope, wxs?: Record<string, any>) => any\n renderTemplate: (templates: Record<string, any>, name: any, scope: TemplateScope, ctx: RenderContext) => any\n event: (eventName: string, handlerName: any, scope: TemplateScope, wxs?: Record<string, any>, flags?: { catch?: boolean, capture?: boolean }) => (event: Event) => void\n createWxsModule: (code: string, id: string, requireMap?: Record<string, any>) => Record<string, any>\n}\n\nconst expressionCache = new Map<string, (scope: TemplateScope) => any>()\nconst MUSTACHE_PREFIX_RE = /^\\{\\{\\s*/\nconst MUSTACHE_SUFFIX_RE = /\\s*\\}\\}$/\nconst SIMPLE_KEY_PATH_RE = /[.[()]/\n\nfunction createScope(initial?: TemplateScope): TemplateScope {\n return Object.assign(Object.create(null), initial ?? {})\n}\n\nfunction createChildScope(parent: TemplateScope, locals?: Record<string, any>): TemplateScope {\n return Object.assign(Object.create(parent), locals ?? {})\n}\n\nfunction evaluateExpression(expression: string, scope: TemplateScope): any {\n if (!expression) {\n return undefined\n }\n const trimmed = expression.trim()\n if (!trimmed) {\n return undefined\n }\n let evaluator = expressionCache.get(trimmed)\n if (!evaluator) {\n try {\n // eslint-disable-next-line no-new-func -- dynamic expressions are required for template evaluation\n evaluator = new Function('scope', `with(scope){ return (${trimmed}); }`) as (scope: TemplateScope) => any\n }\n catch (error) {\n const reason = error instanceof Error ? error.message : String(error)\n const mode = getRuntimeExecutionMode()\n if (mode === 'safe') {\n warnRuntimeExecutionOnce(\n `safe-expression-parse:${trimmed}`,\n `[@weapp-vite/web] safe 模式下忽略表达式解析错误 \"${trimmed}\": ${reason}`,\n )\n evaluator = () => undefined\n }\n else {\n throw new SyntaxError(`[@weapp-vite/web] 无法解析表达式 \"${trimmed}\": ${reason}`)\n }\n }\n if (evaluator) {\n expressionCache.set(trimmed, evaluator)\n }\n }\n try {\n return evaluator?.(scope)\n }\n catch (error) {\n const mode = getRuntimeExecutionMode()\n if (mode === 'strict') {\n const reason = error instanceof Error ? error.message : String(error)\n throw new Error(`[@weapp-vite/web] strict 模式下表达式执行失败 \"${trimmed}\": ${reason}`)\n }\n if (mode === 'safe') {\n const reason = error instanceof Error ? error.message : String(error)\n warnRuntimeExecutionOnce(\n `safe-expression-runtime:${trimmed}`,\n `[@weapp-vite/web] safe 模式下忽略表达式执行错误 \"${trimmed}\": ${reason}`,\n )\n }\n return undefined\n }\n}\n\nfunction normalizeList(value: any): any[] {\n if (Array.isArray(value)) {\n return value\n }\n if (value == null) {\n return []\n }\n if (typeof value === 'number' && Number.isFinite(value)) {\n const length = Math.max(0, Math.floor(value))\n return Array.from({ length }, (_, index) => index)\n }\n if (typeof value === 'object') {\n return Object.values(value)\n }\n return []\n}\n\nfunction normalizeKey(rawKey: string, item: any, index: number, scope: TemplateScope): any {\n const key = rawKey?.trim()\n if (!key) {\n if (item != null && (typeof item === 'string' || typeof item === 'number' || typeof item === 'boolean')) {\n return item\n }\n return index\n }\n if (key === '*this') {\n return item\n }\n if (key.includes('{{') && key.includes('}}')) {\n const expr = key.replace(MUSTACHE_PREFIX_RE, '').replace(MUSTACHE_SUFFIX_RE, '')\n return evaluateExpression(expr, scope)\n }\n if (!SIMPLE_KEY_PATH_RE.test(key) && item && typeof item === 'object' && key in item) {\n return (item as Record<string, any>)[key]\n }\n return evaluateExpression(key, scope)\n}\n\nfunction createEventHandler(\n instance: ComponentPublicInstance,\n methods: Record<string, (event: any) => any>,\n eventName: string,\n handlerRef: string | ((event: any) => any),\n flags?: { catch?: boolean },\n) {\n const handler = typeof handlerRef === 'function'\n ? handlerRef\n : methods[handlerRef] ?? (instance as Record<string, any>)[handlerRef]\n if (typeof handler !== 'function') {\n return () => {}\n }\n return (nativeEvent: Event) => {\n if (flags?.catch) {\n nativeEvent.stopPropagation()\n }\n const target = nativeEvent.target as HTMLElement | null\n const currentTarget = nativeEvent.currentTarget as HTMLElement | null\n const dataset = currentTarget?.dataset ?? {}\n const syntheticEvent = {\n type: eventName,\n timeStamp: nativeEvent.timeStamp,\n detail: (nativeEvent as CustomEvent).detail ?? (nativeEvent as InputEvent).data ?? undefined,\n target: {\n dataset: target?.dataset ?? dataset,\n },\n currentTarget: {\n dataset,\n },\n originalEvent: nativeEvent,\n }\n handler.call(instance, syntheticEvent)\n }\n}\n\nfunction createWxsModule(code: string, id: string, requireMap?: Record<string, any>) {\n const module = { exports: {} as Record<string, any> }\n const exports = module.exports\n const getRegExp = (pattern: string, flags?: string) => new RegExp(pattern, flags)\n const getDate = (value?: string | number | Date) => (value == null ? new Date() : new Date(value))\n const require = (request: string) => requireMap?.[request]\n try {\n // eslint-disable-next-line no-new-func -- run in isolated module scope\n const runner = new Function('module', 'exports', 'require', 'getRegExp', 'getDate', code)\n runner(module, exports, require, getRegExp, getDate)\n }\n catch (error) {\n const reason = error instanceof Error ? error.message : String(error)\n const mode = getRuntimeExecutionMode()\n if (mode === 'safe') {\n warnRuntimeExecutionOnce(\n `safe-wxs-runtime:${id}`,\n `[@weapp-vite/web] safe 模式下忽略 WXS 执行错误: ${id} ${reason}`,\n )\n return {}\n }\n throw new Error(`[@weapp-vite/web] WXS 执行失败: ${id} ${reason}`)\n }\n return module.exports\n}\n\nexport function createRenderContext(\n instance: ComponentPublicInstance,\n methods: Record<string, (event: any) => any>,\n): RenderContext {\n const warnMissingTemplate = (name: string) => {\n emitRuntimeWarning(`[@weapp-vite/web] 未找到模板: ${name}`, {\n key: `template-missing:${name}`,\n context: 'runtime:template',\n })\n }\n\n return {\n instance,\n eval: (expression, scope, wxs) => {\n const baseScope = scope ?? createScope()\n const renderScope = wxs ? createChildScope(baseScope, wxs) : baseScope\n return evaluateExpression(expression, renderScope)\n },\n createScope: (parent, locals) => createChildScope(parent, locals),\n mergeScope: (parent, data) => {\n const baseScope = parent ?? createScope()\n if (!data || typeof data !== 'object') {\n return baseScope\n }\n return createChildScope(baseScope, data as Record<string, any>)\n },\n normalizeList,\n key: (rawKey, item, index, scope, wxs) => {\n const baseScope = scope ?? createScope()\n const renderScope = wxs ? createChildScope(baseScope, wxs) : baseScope\n return normalizeKey(rawKey, item, index, renderScope)\n },\n renderTemplate: (templates, name, scope, ctx) => {\n const resolvedName = typeof name === 'string' ? name : String(name)\n const template = templates?.[resolvedName]\n if (typeof template !== 'function') {\n warnMissingTemplate(resolvedName)\n return ''\n }\n return template(scope, ctx)\n },\n event: (eventName, handlerName, _scope, _wxs, flags) => {\n if (typeof handlerName === 'function') {\n return createEventHandler(instance, methods, eventName, handlerName, flags)\n }\n const resolvedHandler = String(handlerName ?? '')\n return createEventHandler(instance, methods, eventName, resolvedHandler, flags)\n },\n createWxsModule,\n }\n}\n\nexport { createChildScope, createScope, evaluateExpression }\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderContext.mjs","names":[],"sources":["../../src/runtime/renderContext.ts"],"sourcesContent":["import type { ComponentPublicInstance } from './component'\nimport type { TemplateScope } from './template'\nimport { getRuntimeExecutionMode, warnRuntimeExecutionOnce } from './execution'\nimport { emitRuntimeWarning } from './warning'\n\nexport interface RenderContext {\n instance: ComponentPublicInstance\n eval: (expression: string, scope: TemplateScope, wxs?: Record<string, any>) => any\n createScope: (parent: TemplateScope, locals?: Record<string, any>) => TemplateScope\n mergeScope: (parent: TemplateScope, data?: any) => TemplateScope\n normalizeList: (value: any) => any[]\n key: (rawKey: string, item: any, index: number, scope: TemplateScope, wxs?: Record<string, any>) => any\n renderTemplate: (templates: Record<string, any>, name: any, scope: TemplateScope, ctx: RenderContext) => any\n event: (eventName: string, handlerName: any, scope: TemplateScope, wxs?: Record<string, any>, flags?: { catch?: boolean, capture?: boolean }) => (event: Event) => void\n createWxsModule: (code: string, id: string, requireMap?: Record<string, any>) => Record<string, any>\n}\n\nconst expressionCache = new Map<string, (scope: TemplateScope) => any>()\nconst MUSTACHE_PREFIX_RE = /^\\{\\{\\s*/\nconst MUSTACHE_SUFFIX_RE = /\\s*\\}\\}$/\nconst SIMPLE_KEY_PATH_RE = /[.[()]/\n\nfunction createScope(initial?: TemplateScope): TemplateScope {\n return Object.assign(Object.create(null), initial ?? {})\n}\n\nfunction createChildScope(parent: TemplateScope, locals?: Record<string, any>): TemplateScope {\n return Object.assign(Object.create(parent), locals ?? {})\n}\n\nfunction evaluateExpression(expression: string, scope: TemplateScope): any {\n if (!expression) {\n return undefined\n }\n const trimmed = expression.trim()\n if (!trimmed) {\n return undefined\n }\n let evaluator = expressionCache.get(trimmed)\n if (!evaluator) {\n try {\n // eslint-disable-next-line no-new-func -- dynamic expressions are required for template evaluation\n evaluator = new Function('scope', `with(scope){ return (${trimmed}); }`) as (scope: TemplateScope) => any\n }\n catch (error) {\n const reason = error instanceof Error ? error.message : String(error)\n const mode = getRuntimeExecutionMode()\n if (mode === 'safe') {\n warnRuntimeExecutionOnce(\n `safe-expression-parse:${trimmed}`,\n `[@weapp-vite/web] safe 模式下忽略表达式解析错误 \"${trimmed}\": ${reason}`,\n )\n evaluator = () => undefined\n }\n else {\n throw new SyntaxError(`[@weapp-vite/web] 无法解析表达式 \"${trimmed}\": ${reason}`)\n }\n }\n if (evaluator) {\n expressionCache.set(trimmed, evaluator)\n }\n }\n try {\n return evaluator?.(scope)\n }\n catch (error) {\n const mode = getRuntimeExecutionMode()\n if (mode === 'strict') {\n const reason = error instanceof Error ? error.message : String(error)\n throw new Error(`[@weapp-vite/web] strict 模式下表达式执行失败 \"${trimmed}\": ${reason}`)\n }\n if (mode === 'safe') {\n const reason = error instanceof Error ? error.message : String(error)\n warnRuntimeExecutionOnce(\n `safe-expression-runtime:${trimmed}`,\n `[@weapp-vite/web] safe 模式下忽略表达式执行错误 \"${trimmed}\": ${reason}`,\n )\n }\n return undefined\n }\n}\n\nfunction normalizeList(value: any): any[] {\n if (Array.isArray(value)) {\n return value\n }\n if (value == null) {\n return []\n }\n if (typeof value === 'number' && Number.isFinite(value)) {\n const length = Math.max(0, Math.floor(value))\n return Array.from({ length }, (_, index) => index)\n }\n if (typeof value === 'object') {\n return Object.values(value)\n }\n return []\n}\n\nfunction normalizeKey(rawKey: string, item: any, index: number, scope: TemplateScope): any {\n const key = rawKey?.trim()\n if (!key) {\n if (item != null && (typeof item === 'string' || typeof item === 'number' || typeof item === 'boolean')) {\n return item\n }\n return index\n }\n if (key === '*this') {\n return item\n }\n if (key.includes('{{') && key.includes('}}')) {\n const expr = key.replace(MUSTACHE_PREFIX_RE, '').replace(MUSTACHE_SUFFIX_RE, '')\n return evaluateExpression(expr, scope)\n }\n if (!SIMPLE_KEY_PATH_RE.test(key) && item && typeof item === 'object' && key in item) {\n return (item as Record<string, any>)[key]\n }\n return evaluateExpression(key, scope)\n}\n\nfunction createEventHandler(\n instance: ComponentPublicInstance,\n methods: Record<string, (event: any) => any>,\n eventName: string,\n handlerRef: string | ((event: any) => any),\n flags?: { catch?: boolean },\n) {\n const handler = typeof handlerRef === 'function'\n ? handlerRef\n : methods[handlerRef] ?? (instance as Record<string, any>)[handlerRef]\n if (typeof handler !== 'function') {\n return () => {}\n }\n return (nativeEvent: Event) => {\n if (flags?.catch) {\n nativeEvent.stopPropagation()\n }\n const target = nativeEvent.target as HTMLElement | null\n const currentTarget = nativeEvent.currentTarget as HTMLElement | null\n const dataset = currentTarget?.dataset ?? {}\n const syntheticEvent = {\n type: eventName,\n timeStamp: nativeEvent.timeStamp,\n detail: (nativeEvent as CustomEvent).detail ?? (nativeEvent as InputEvent).data ?? undefined,\n target: {\n dataset: target?.dataset ?? dataset,\n },\n currentTarget: {\n dataset,\n },\n originalEvent: nativeEvent,\n }\n handler.call(instance, syntheticEvent)\n }\n}\n\nfunction createWxsModule(code: string, id: string, requireMap?: Record<string, any>) {\n const module = { exports: {} as Record<string, any> }\n const exports = module.exports\n const getRegExp = (pattern: string, flags?: string) => new RegExp(pattern, flags)\n const getDate = (value?: string | number | Date) => (value == null ? new Date() : new Date(value))\n const require = (request: string) => requireMap?.[request]\n try {\n // eslint-disable-next-line no-new-func -- run in isolated module scope\n const runner = new Function('module', 'exports', 'require', 'getRegExp', 'getDate', code)\n runner(module, exports, require, getRegExp, getDate)\n }\n catch (error) {\n const reason = error instanceof Error ? error.message : String(error)\n const mode = getRuntimeExecutionMode()\n if (mode === 'safe') {\n warnRuntimeExecutionOnce(\n `safe-wxs-runtime:${id}`,\n `[@weapp-vite/web] safe 模式下忽略 WXS 执行错误: ${id} ${reason}`,\n )\n return {}\n }\n throw new Error(`[@weapp-vite/web] WXS 执行失败: ${id} ${reason}`)\n }\n return module.exports\n}\n\nexport function createRenderContext(\n instance: ComponentPublicInstance,\n methods: Record<string, (event: any) => any>,\n): RenderContext {\n const warnMissingTemplate = (name: string) => {\n emitRuntimeWarning(`[@weapp-vite/web] 未找到模板: ${name}`, {\n key: `template-missing:${name}`,\n context: 'runtime:template',\n })\n }\n\n return {\n instance,\n eval: (expression, scope, wxs) => {\n const baseScope = scope ?? createScope()\n const renderScope = wxs ? createChildScope(baseScope, wxs) : baseScope\n return evaluateExpression(expression, renderScope)\n },\n createScope: (parent, locals) => createChildScope(parent, locals),\n mergeScope: (parent, data) => {\n const baseScope = parent ?? createScope()\n if (!data || typeof data !== 'object') {\n return baseScope\n }\n return createChildScope(baseScope, data as Record<string, any>)\n },\n normalizeList,\n key: (rawKey, item, index, scope, wxs) => {\n const baseScope = scope ?? createScope()\n const renderScope = wxs ? createChildScope(baseScope, wxs) : baseScope\n return normalizeKey(rawKey, item, index, renderScope)\n },\n renderTemplate: (templates, name, scope, ctx) => {\n const resolvedName = typeof name === 'string' ? name : String(name)\n const template = templates?.[resolvedName]\n if (typeof template !== 'function') {\n warnMissingTemplate(resolvedName)\n return ''\n }\n return template(scope, ctx)\n },\n event: (eventName, handlerName, _scope, _wxs, flags) => {\n if (typeof handlerName === 'function') {\n return createEventHandler(instance, methods, eventName, handlerName, flags)\n }\n const resolvedHandler = String(handlerName ?? '')\n return createEventHandler(instance, methods, eventName, resolvedHandler, flags)\n },\n createWxsModule,\n }\n}\n\nexport { createChildScope, createScope, evaluateExpression }\n"],"mappings":"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"}
|
package/dist/runtime/rpx.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpx.mjs","names":[],"sources":["../../src/runtime/rpx.ts"],"sourcesContent":["export interface RpxConfig {\n designWidth?: number\n varName?: string\n}\n\nconst DEFAULT_DESIGN_WIDTH = 750\nconst DEFAULT_VAR_NAME = '--rpx'\nlet initialized = false\n\nfunction computeRpx(designWidth: number) {\n if (typeof window === 'undefined') {\n return 0\n }\n const width = document.documentElement?.clientWidth ?? window.innerWidth\n return width / designWidth\n}\n\nexport function setupRpx(config?: RpxConfig) {\n if (typeof document === 'undefined') {\n return\n }\n const designWidth = config?.designWidth ?? DEFAULT_DESIGN_WIDTH\n const varName = config?.varName ?? DEFAULT_VAR_NAME\n const root = document.documentElement\n const apply = () => {\n const value = computeRpx(designWidth)\n root.style.setProperty(varName, `${value}px`)\n }\n apply()\n if (!initialized) {\n initialized = true\n window.addEventListener('resize', apply)\n }\n}\n"],"mappings":";AAKA,MAAM,uBAAuB;AAC7B,MAAM,mBAAmB;AACzB,IAAI,cAAc;AAElB,SAAS,WAAW,aAAqB;
|
|
1
|
+
{"version":3,"file":"rpx.mjs","names":[],"sources":["../../src/runtime/rpx.ts"],"sourcesContent":["export interface RpxConfig {\n designWidth?: number\n varName?: string\n}\n\nconst DEFAULT_DESIGN_WIDTH = 750\nconst DEFAULT_VAR_NAME = '--rpx'\nlet initialized = false\n\nfunction computeRpx(designWidth: number) {\n if (typeof window === 'undefined') {\n return 0\n }\n const width = document.documentElement?.clientWidth ?? window.innerWidth\n return width / designWidth\n}\n\nexport function setupRpx(config?: RpxConfig) {\n if (typeof document === 'undefined') {\n return\n }\n const designWidth = config?.designWidth ?? DEFAULT_DESIGN_WIDTH\n const varName = config?.varName ?? DEFAULT_VAR_NAME\n const root = document.documentElement\n const apply = () => {\n const value = computeRpx(designWidth)\n root.style.setProperty(varName, `${value}px`)\n }\n apply()\n if (!initialized) {\n initialized = true\n window.addEventListener('resize', apply)\n }\n}\n"],"mappings":";AAKA,MAAM,uBAAuB;AAC7B,MAAM,mBAAmB;AACzB,IAAI,cAAc;AAElB,SAAS,WAAW,aAAqB;CACvC,IAAI,OAAO,WAAW,aACpB,OAAO;CAGT,QADc,SAAS,iBAAiB,eAAe,OAAO,cAC/C;AACjB;AAEA,SAAgB,SAAS,QAAoB;CAC3C,IAAI,OAAO,aAAa,aACtB;CAEF,MAAM,cAAc,QAAQ,eAAe;CAC3C,MAAM,UAAU,QAAQ,WAAW;CACnC,MAAM,OAAO,SAAS;CACtB,MAAM,cAAc;EAClB,MAAM,QAAQ,WAAW,WAAW;EACpC,KAAK,MAAM,YAAY,SAAS,GAAG,MAAM,GAAG;CAC9C;CACA,MAAM;CACN,IAAI,CAAC,aAAa;EAChB,cAAc;EACd,OAAO,iBAAiB,UAAU,KAAK;CACzC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.mjs","names":[],"sources":["../../src/runtime/style.ts"],"sourcesContent":["const injected = new Map<string, HTMLStyleElement>()\n\nfunction createStyleId(css: string) {\n let hash = 2166136261\n for (let i = 0; i < css.length; i++) {\n hash ^= css.charCodeAt(i)\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24)\n }\n return `weapp-web-style-${(hash >>> 0).toString(36)}`\n}\n\nexport function removeStyle(id: string) {\n if (typeof document === 'undefined') {\n return\n }\n const style = injected.get(id)\n if (style) {\n style.remove()\n injected.delete(id)\n }\n}\n\nexport function injectStyle(css: string, id?: string) {\n if (typeof document === 'undefined') {\n return () => {}\n }\n const styleId = id ?? createStyleId(css)\n const existing = injected.get(styleId)\n if (existing) {\n existing.textContent = css\n return () => removeStyle(styleId)\n }\n const style = document.createElement('style')\n style.id = styleId\n style.textContent = css\n document.head.append(style)\n injected.set(styleId, style)\n return () => removeStyle(styleId)\n}\n"],"mappings":";AAAA,MAAM,2BAAW,IAAI,
|
|
1
|
+
{"version":3,"file":"style.mjs","names":[],"sources":["../../src/runtime/style.ts"],"sourcesContent":["const injected = new Map<string, HTMLStyleElement>()\n\nfunction createStyleId(css: string) {\n let hash = 2166136261\n for (let i = 0; i < css.length; i++) {\n hash ^= css.charCodeAt(i)\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24)\n }\n return `weapp-web-style-${(hash >>> 0).toString(36)}`\n}\n\nexport function removeStyle(id: string) {\n if (typeof document === 'undefined') {\n return\n }\n const style = injected.get(id)\n if (style) {\n style.remove()\n injected.delete(id)\n }\n}\n\nexport function injectStyle(css: string, id?: string) {\n if (typeof document === 'undefined') {\n return () => {}\n }\n const styleId = id ?? createStyleId(css)\n const existing = injected.get(styleId)\n if (existing) {\n existing.textContent = css\n return () => removeStyle(styleId)\n }\n const style = document.createElement('style')\n style.id = styleId\n style.textContent = css\n document.head.append(style)\n injected.set(styleId, style)\n return () => removeStyle(styleId)\n}\n"],"mappings":";AAAA,MAAM,2BAAW,IAAI,IAA8B;AAEnD,SAAS,cAAc,KAAa;CAClC,IAAI,OAAO;CACX,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;EACnC,QAAQ,IAAI,WAAW,CAAC;EACxB,SAAS,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;CAC3E;CACA,OAAO,oBAAoB,SAAS,GAAG,SAAS,EAAE;AACpD;AAEA,SAAgB,YAAY,IAAY;CACtC,IAAI,OAAO,aAAa,aACtB;CAEF,MAAM,QAAQ,SAAS,IAAI,EAAE;CAC7B,IAAI,OAAO;EACT,MAAM,OAAO;EACb,SAAS,OAAO,EAAE;CACpB;AACF;AAEA,SAAgB,YAAY,KAAa,IAAa;CACpD,IAAI,OAAO,aAAa,aACtB,aAAa,CAAC;CAEhB,MAAM,UAAU,MAAM,cAAc,GAAG;CACvC,MAAM,WAAW,SAAS,IAAI,OAAO;CACrC,IAAI,UAAU;EACZ,SAAS,cAAc;EACvB,aAAa,YAAY,OAAO;CAClC;CACA,MAAM,QAAQ,SAAS,cAAc,OAAO;CAC5C,MAAM,KAAK;CACX,MAAM,cAAc;CACpB,SAAS,KAAK,OAAO,KAAK;CAC1B,SAAS,IAAI,SAAS,KAAK;CAC3B,aAAa,YAAY,OAAO;AAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object.mjs","names":[],"sources":["../../../src/runtime/utils/object.ts"],"sourcesContent":["export function hasOwn(source: object, key: PropertyKey) {\n return Object.prototype.hasOwnProperty.call(source, key)\n}\n"],"mappings":";AAAA,SAAgB,OAAO,QAAgB,KAAkB;CACvD,OAAO,OAAO,UAAU,eAAe,KAAK,QAAQ,GAAG;AACzD"}
|