PageSourceSearch

https://www.baopals.com/_next/static/chunks/261k92t4gu0uk.js?dpl=dpl_3qa7ZnDoVBzyyN5yCeNqh1i1vdq6

js baopals.com collected 2026-10-01 23:43:25 UTC 30,122 bytes, 4 lines download raw bytes

1;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="fe644d1a-9e7b-d2a2-a313-8c676595ba45")}catch(e){}}();
2(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,788751,e=>{"use strict";let t="pingxx_return_started_at",r=new Set(["native_cancelled","payment_canceled","payment_cancelled","payment_declined","payment_expired","payment_failed"]);function o(e,t,r){try{return e?.getItem(t)??null}catch(e){if(!r)throw e;return r(e,t),null}}function n(e){let t=e?.trim();return t?.startsWith("ch_")?t:null}function i(e,t){return e?.split(";").map(e=>e.trim()).find(e=>e.startsWith(`${t}=`))?.slice(t.length+1)??null}function a(e,t){let r=Number(e?.trim());return Number.isFinite(r)&&r>0&&t-r>=0&&t-r<=36e5}e.s(["PINGXX_RETURN_STARTED_AT_KEY",0,t,"getPingxxCheckoutRecoveryUrl",0,function({storage:e,cookie:s,search:l,now:u=Date.now(),onStorageReadError:c}){let d=new URLSearchParams(l??""),p=d.get("error")?.trim()??null;if(p&&r.has(p))return null;let g=i(s,t),h=o(e,t,c);if(!a(g,u)&&!a(h,u))return null;let m=n(o(e,"pingxx_pending_charge_id",c)),_=n(o(e,"pending_payment_id",c)),f=n(i(s,"pingxx_charge_id")),b=m??_??f,v=o(e,"pingxx_order_no",c)?.trim()||null,w=o(e,"pending_order_id",c)?.trim()||null,y=o(e,"pending_order_number",c)?.trim()||null,x=v??y;if(!b&&!(w&&v))return null;let P=new URLSearchParams;return b&&P.set("chargeId",b),w&&P.set("orderId",w),x&&P.set("orderNo",x),`/checkout/processing?${P.toString()}`}])},746798,e=>{"use strict";let t;var r=e.i(843476),o=e.i(271645),n=e.i(981140),i=e.i(820783),a=e.i(30030),s=e.i(726330),l=e.i(610772),u=e.i(853660),c=e.i(774606),d=e.i(296626),p=e.i(248425),g=Symbol("radix.slottable"),h=e.i(369340),m=e.i(959411),[_,f]=(0,a.createContextScope)("Tooltip",[u.createPopperScope]),b=(0,u.createPopperScope)(),v="TooltipProvider",w="tooltip.open",[y,x]=_(v),P=e=>{let{__scopeTooltip:t,delayDuration:n=700,skipDelayDuration:i=300,disableHoverableContent:a=!1,children:s}=e,l=o.useRef(!0),u=o.useRef(!1),c=o.useRef(0);return o.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,r.jsx)(y,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:o.useCallback(()=>{window.clearTimeout(c.current),l.current=!1},[]),onClose:o.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>l.current=!0,i)},[i]),isPointerInTransitRef:u,onPointerInTransitChange:o.useCallback(e=>{u.current=e},[]),disableHoverableContent:a,children:s})};P.displayName=v;var S="Tooltip",[C,E]=_(S),L=e=>{let{__scopeTooltip:t,children:n,open:i,defaultOpen:a,onOpenChange:s,disableHoverableContent:c,delayDuration:d}=e,p=x(S,e.__scopeTooltip),g=b(t),[m,_]=o.useState(null),f=(0,l.useId)(),v=o.useRef(0),y=c??p.disableHoverableContent,P=d??p.delayDuration,E=o.useRef(!1),[L,T]=(0,h.useControllableState)({prop:i,defaultProp:a??!1,onChange:e=>{e?(p.onOpen(),document.dispatchEvent(new CustomEvent(w))):p.onClose(),s?.(e)},caller:S}),I=o.useMemo(()=>L?E.current?"delayed-open":"instant-open":"closed",[L]),k=o.useCallback(()=>{window.clearTimeout(v.current),v.current=0,E.current=!1,T(!0)},[T]),D=o.useCallback(()=>{window.clearTimeout(v.current),v.current=0,T(!1)},[T]),R=o.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{E.current=!0,T(!0),v.current=0},P)},[P,T]);return o.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),(0,r.jsx)(u.Root,{...g,children:(0,r.jsx)(C,{scope:t,contentId:f,open:L,stateAttribute:I,trigger:m,onTriggerChange:_,onTriggerEnter:o.useCallback(()=>{p.isOpenDelayedRef.current?R():k()},[p.isOpenDelayedRef,R,k]),onTriggerLeave:o.useCallback(()=>{y?D():(window.clearTimeout(v.current),v.current=0)},[D,y]),onOpen:k,onClose:D,disableHoverableContent:y,children:n})})};L.displayName=S;var T="TooltipTrigger",I=o.forwardRef((e,t)=>{let{__scopeTooltip:a,...s}=e,l=E(T,a),c=x(T,a),d=b(a),g=o.useRef(null),h=(0,i.useComposedRefs)(t,g,l.onTriggerChange),m=o.useRef(!1),_=o.useRef(!1),f=o.useCallback(()=>m.current=!1,[]);return o.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),(0,r.jsx)(u.Anchor,{asChild:!0,...d,children:(0,r.jsx)(p.Primitive.button,{"aria-describedby":l.open?l.contentId:void 0,"data-state":l.stateAttribute,...s,ref:h,onPointerMove:(0,n.composeEventHandlers)(e.onPointerMove,e=>{"touch"!==e.pointerType&&(_.current||c.isPointerInTransitRef.current||(l.onTriggerEnter(),_.current=!0))}),onPointerLeave:(0,n.composeEventHandlers)(e.onPointerLeave,()=>{l.onTriggerLeave(),_.current=!1}),onPointerDown:(0,n.composeEventHandlers)(e.onPointerDown,()=>{l.open&&l.onClose(),m.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:(0,n.composeEventHandlers)(e.onFocus,()=>{m.current||l.onOpen()}
2),onBlur:(0,n.composeEventHandlers)(e.onBlur,l.onClose),onClick:(0,n.composeEventHandlers)(e.onClick,l.onClose)})})});I.displayName=T;var k="TooltipPortal",[D,R]=_(k,{forceMount:void 0}),N=e=>{let{__scopeTooltip:t,forceMount:o,children:n,container:i}=e,a=E(k,t);return(0,r.jsx)(D,{scope:t,forceMount:o,children:(0,r.jsx)(d.Presence,{present:o||a.open,children:(0,r.jsx)(c.Portal,{asChild:!0,container:i,children:n})})})};N.displayName=k;var O="TooltipContent",A=o.forwardRef((e,t)=>{let o=R(O,e.__scopeTooltip),{forceMount:n=o.forceMount,side:i="top",...a}=e,s=E(O,e.__scopeTooltip);return(0,r.jsx)(d.Presence,{present:n||s.open,children:s.disableHoverableContent?(0,r.jsx)(F,{side:i,...a,ref:t}):(0,r.jsx)(M,{side:i,...a,ref:t})})}),M=o.forwardRef((e,t)=>{let n=E(O,e.__scopeTooltip),a=x(O,e.__scopeTooltip),s=o.useRef(null),l=(0,i.useComposedRefs)(t,s),[u,c]=o.useState(null),{trigger:d,onClose:p}=n,g=s.current,{onPointerInTransitChange:h}=a,m=o.useCallback(()=>{c(null),h(!1)},[h]),_=o.useCallback((e,t)=>{let r,o=e.currentTarget,n={x:e.clientX,y:e.clientY},i=function(e,t){let r=Math.abs(t.top-e.y),o=Math.abs(t.bottom-e.y),n=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(r,o,n,i)){case i:return"left";case n:return"right";case r:return"top";case o:return"bottom";default:throw Error("unreachable")}}(n,o.getBoundingClientRect());c(((r=[...function(e,t,r=5){let o=[];switch(t){case"top":o.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case"bottom":o.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case"left":o.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case"right":o.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r})}return o}(n,i),...function(e){let{top:t,right:r,bottom:o,left:n}=e;return[{x:n,y:t},{x:r,y:t},{x:r,y:o},{x:n,y:o}]}(t.getBoundingClientRect())].slice()).sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:1*!!(e.y>t.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let r=0;r<e.length;r++){let o=e[r];for(;t.length>=2;){let e=t[t.length-1],r=t[t.length-2];if((e.x-r.x)*(o.y-r.y)>=(e.y-r.y)*(o.x-r.x))t.pop();else break}t.push(o)}t.pop();let r=[];for(let t=e.length-1;t>=0;t--){let o=e[t];for(;r.length>=2;){let e=r[r.length-1],t=r[r.length-2];if((e.x-t.x)*(o.y-t.y)>=(e.y-t.y)*(o.x-t.x))r.pop();else break}r.push(o)}return(r.pop(),1===t.length&&1===r.length&&t[0].x===r[0].x&&t[0].y===r[0].y)?t:t.concat(r)}(r))),h(!0)},[h]);return o.useEffect(()=>()=>m(),[m]),o.useEffect(()=>{if(d&&g){let e=e=>_(e,g),t=e=>_(e,d);return d.addEventListener("pointerleave",e),g.addEventListener("pointerleave",t),()=>{d.removeEventListener("pointerleave",e),g.removeEventListener("pointerleave",t)}}},[d,g,_,m]),o.useEffect(()=>{if(u){let e=e=>{let t=e.target,r={x:e.clientX,y:e.clientY},o=d?.contains(t)||g?.contains(t),n=!function(e,t){let{x:r,y:o}=e,n=!1;for(let e=0,i=t.length-1;e<t.length;i=e++){let a=t[e],s=t[i],l=a.x,u=a.y,c=s.x,d=s.y;u>o!=d>o&&r<(c-l)*(o-u)/(d-u)+l&&(n=!n)}return n}(r,u);o?m():n&&(m(),p())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[d,g,u,p,m]),(0,r.jsx)(F,{...e,ref:l})}),[j,$]=_(S,{isInside:!1}),U=((t=({children:e})=>(0,r.jsx)(r.Fragment,{children:e})).displayName="TooltipContent.Slottable",t.__radixId=g,t),F=o.forwardRef((e,t)=>{let{__scopeTooltip:n,children:i,"aria-label":a,onEscapeKeyDown:l,onPointerDownOutside:c,...d}=e,p=E(O,n),g=b(n),{onClose:h}=p;return o.useEffect(()=>(document.addEventListener(w,h),()=>document.removeEventListener(w,h)),[h]),o.useEffect(()=>{if(p.trigger){let e=e=>{let t=e.target;t?.contains(p.trigger)&&h()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[p.trigger,h]),(0,r.jsx)(s.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:h,children:(0,r.jsxs)(u.Content,{"data-state":p.stateAttribute,...g,...d,ref:t,style:{...d.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,r.jsx)(U,{children:i}),(0,r.jsx)(j,{scope:n,isInside:!0,children:(0,r.jsx)(m.Root,{id:p.contentId,role:"tooltip",children:a||i})})]})})});A.displayName=O;var W="TooltipArrow",B=o.forwardRef((e,t)=>
2{let{__scopeTooltip:o,...n}=e,i=b(o);return $(W,o).isInside?null:(0,r.jsx)(u.Arrow,{...i,...n,ref:t})});B.displayName=W,e.s(["Arrow",0,B,"Content",0,A,"Portal",0,N,"Provider",0,P,"Root",0,L,"Tooltip",0,L,"TooltipArrow",0,B,"TooltipContent",0,A,"TooltipPortal",0,N,"TooltipProvider",0,P,"TooltipTrigger",0,I,"Trigger",0,I,"createTooltipScope",0,f],186336);var H=e.i(186336),H=H,G=e.i(975157);function Y({delayDuration:e=0,...t}){return(0,r.jsx)(H.Provider,{"data-slot":"tooltip-provider",delayDuration:e,...t})}e.s(["Tooltip",0,function({...e}){return(0,r.jsx)(Y,{children:(0,r.jsx)(H.Root,{"data-slot":"tooltip",...e})})},"TooltipContent",0,function({className:e,sideOffset:t=0,children:o,...n}){return(0,r.jsx)(H.Portal,{children:(0,r.jsxs)(H.Content,{"data-slot":"tooltip-content",sideOffset:t,className:(0,G.cn)("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",e),...n,children:[o,(0,r.jsx)(H.Arrow,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})},"TooltipProvider",0,Y,"TooltipTrigger",0,function({...e}){return(0,r.jsx)(H.Trigger,{"data-slot":"tooltip-trigger",...e})}],746798)},879664,e=>{"use strict";let t=(0,e.i(475254).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["default",0,t])},952571,e=>{"use strict";var t=e.i(879664);e.s(["Info",()=>t.default])},453872,e=>{"use strict";e.s(["getCartItemImage",0,function(e){return(console.log("[cart-image-utils] getCartItemImage called:",{productId:e.product.id,productTitle:e.product.title,selectedImage:e.selectedImage,selectedSku:e.selectedSku,thumbnailUrl:e.product.thumbnailUrl}),e.selectedImage)?(console.log("[cart-image-utils] ✅ Using selectedImage:",e.selectedImage),e.selectedImage):(console.log("[cart-image-utils] ⚠️ Falling back to thumbnail:",e.product.thumbnailUrl),e.product.thumbnailUrl)}])},169434,e=>{"use strict";let t=new class{logs=[];maxLogs=50;listeners=[];addLog(e){this.logs.push(e),this.logs.length>this.maxLogs&&(this.logs=this.logs.slice(-this.maxLogs)),this.notifyListeners()}getLogs(){return[...this.logs]}clearLogs(){this.logs=[],this.notifyListeners()}subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}notifyListeners(){this.listeners.forEach(e=>e(this.getLogs()))}},r={addLog:e=>t.addLog(e),getLogs:()=>t.getLogs(),clearLogs:()=>t.clearLogs(),subscribe:e=>t.subscribe(e)};function o(e,t,n="info"){let i=new Date().toISOString(),a={event:e,...t,timestamp:i};switch(n){case"error":console.error(`[Debug] ${e}`,a);break;case"warning":console.warn(`[Debug] ${e}`,a);break;default:console.log(`[Debug] ${e}`,a)}r.addLog({id:`${Date.now()}-${Math.random().toString(36).substr(2,9)}`,event:e,data:t,level:n,timestamp:i})}e.s(["debugError",0,(e,t)=>o(e,t,"error"),"debugLog",0,o,"debugState",0,r])},938010,e=>{"use strict";var t=e.i(169434);let r=/android|iphone|ipad|ipod|mobile|blackberry|iemobile|opera mini/i,o=/micromessenger/i;function n(e){let r="string"==typeof e?e:"u">typeof navigator?navigator.userAgent:"",n=o.test(r);return(0,t.debugLog)("device_wechat_detection",{userAgent:r,result:n}),n}function i(e){let t="string"==typeof e?e:"u">typeof navigator?navigator.userAgent:"";return r.test(t)}function a(){if((0,t.debugLog)("device_miniprogram_check_start"),void 0!==window.__IS_MINI_PROGRAM__)return(0,t.debugLog)("device_miniprogram_cached",{isMiniProgram:window.__IS_MINI_PROGRAM__}),window.__IS_MINI_PROGRAM__;void 0!==window.wx&&window.wx.miniProgram?((0,t.debugLog)("device_miniprogram_jssdk_detected"),window.wx.miniProgram.getEnv(e=>{window.__IS_MINI_PROGRAM__=e.miniprogram,(0,t.debugLog)("device_miniprogram_detection_complete",{isMiniProgram:e.miniprogram})})):(0,t.debugLog)("device_miniprogram_no_jssdk");let e=window.__IS_MINI_PROGRAM__??!1;return(0,t.debugLog)("device_miniprogram_final_result",{isMiniProgram:e}),e}e.s(["getDeviceContext",0,function(e){return{isMobile:i(e),isWeChat:n(e),isMiniProgram:a(),isNativeApp:!1,nativeAppPlatform:null}},"isMiniProgram",0,a,"isMobile",0,i,"isWeChat",0,n])},540259,911860,e=>{"use strict";var t,r="basil",o="https://js.stripe.com",n="".concat(o,"/").concat(r,"/stripe.js"),i=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,a=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,s=function(){for(var e=document.querySelectorAll('script[src^="'.concat(o,'"]')),t=0;t<e.length;t++){var r,n=e[t];if(r=n.src,i.test(r)||a.test(r))return n}return null},l=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",r=document.createElement("script");r.src="".concat(n).concat(t);var o=document.head||document.body;if(!o)throw Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return o.appendChild(r),r},u=function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"7.0.0",startTime:t})},c=null,d=null,p=null,g=function(e,t,o){if(null===e)return null;var n,i=t[0].match(/^pk_test/),a=3===(n=e.version)?"v3":n;i&&a!==r&&console.warn("Stripe.js@".concat(a," was loaded on the page, but @stripe/stripe-js@").concat("7.0.0"," expected Stripe.js@").concat(r,". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));var s=e.apply(void 0,t);return u(s,o),s},h=!1,m=function(){return t||(t=(null!==c?c:(c=new Promise(function(e,t){if("u"<typeof window||"u"<typeof document)return void e(null);if(window.Stripe,window.Stripe)return void e(window.Stripe);try{var r,o=s();o?o&&null!==p&&null!==d&&(o.removeEventListener("load",p),o.removeEventListener("error",d),null==(r=o.parentNode)||r.removeChild(o),o=l(null)):o=l(null),p=function(){window.Stripe?e(window.Stripe):t(Error("Stripe.js not available"))},d=function(e){t(Error("Failed to load Stripe.js",{cause:e}))},o.addEventListener("load",p),o.addEventListener("error",d)}catch(e){t(e);return}})).catch(function(e){return c=null,Promise.reject(e)})).catch(function(e){return t=null,Promise.reject(e)}))};Promise.resolve().then(function(){return m()}).catch(function(e){h||console.warn(e)}),e.s(["loadStripe",0,function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];h=!0;var o=Date.now();return m().then(function(e){return g(e,t,o)})}],911860),e.s([],540259)},717875,192827,e=>{"use strict";function t(e,t){return Math.max(0,(Number.isFinite(e)?e:0)-(Number.isFinite(t)?t:0))}e.s(["calculateMaxPointsForDisplayAmount",0,function(e,t){return!Number.isFinite(e)||e<=0||!Number.isFinite(t)||t<=0?0:Math.ceil(Number((e/t*10).toFixed(6)))},"calculateMaxRedeemablePoints",0,function({orderTotal:e,promoDiscount:t=0,pointsBalance:r}){return Math.max(0,Math.min(Math.ceil(10*Math.max(0,(Number.isFinite(e)?e:0)-(Number.isFinite(t)?t:0))),Number.isFinite(r)?r:0))},"calculateOrderPointsEligibleDisplayTotal",0,function({displayCurrencyTotal:e,items:r}){return t(e,r.reduce((e,t)=>
2{var r;return"object"==typeof(r=t.productSnapshot)&&null!==r&&!Array.isArray(r)&&"source"in r&&"local"===r.source?e+t.displayCurrencyTotalPrice:e},0))},"calculatePointsDisplayDiscount",0,function(e,t,r,o){let n=e/10;return"CNY"===t?n:Number(Math.min(n*r,o).toFixed(2))},"calculatePointsEligibleTotal",0,t,"calculatePointsRedemptionPercent",0,function({pointsToRedeem:e,pointsEligibleTotal:t,domesticShippingCNY:r=0,importTaxCNY:o=0,promoDiscount:n=0}){let i=Number.isFinite(e)?e:0,a=Math.max(0,(Number.isFinite(t)?t:0)+(Number.isFinite(r)?r:0)+(Number.isFinite(o)?o:0)-(Number.isFinite(n)?n:0));return a<=0?0:Math.min(100,i/10/a*100)},"getCnyToDisplayRate",0,function(e,t,r){return"CNY"===e.toUpperCase()?1:"number"!=typeof t||"number"!=typeof r||!Number.isFinite(t)||!Number.isFinite(r)||t<=0||r<=0?null:t*r},"isPointsDiscountUpdatedError",0,function(e){return"object"==typeof e&&null!==e&&"error"in e&&"POINTS_DISCOUNT_UPDATED"===e.error},"parsePointsExceededError",0,function(e){if("object"!=typeof e||null===e||"POINTS_EXCEEDS_ELIGIBLE"!==e.error)return null;let t=e.maxEligiblePoints;return"number"!=typeof t||!Number.isFinite(t)||t<0?null:Math.floor(t)}],717875);var r=e.i(839980),o=e.i(169434);let n="wechat_openid",i="wechat_oauth_state",a="wechat_oauth_failed";function s(){let e=localStorage.getItem(n);return(0,o.debugLog)("openid_storage_retrieve",{exists:!!e,openidPreview:e?`${e.substring(0,8)}...`:null}),e}function l(e){(0,o.debugLog)("openid_storage_store",{openidPreview:`${e.substring(0,8)}...`}),localStorage.setItem(n,e);let t=localStorage.getItem(n);(0,o.debugLog)("openid_storage_verify",{success:t===e,storedPreview:t?`${t.substring(0,8)}...`:null})}function u(){try{localStorage.setItem(a,JSON.stringify({ts:Date.now()}))}catch(e){(0,o.debugLog)("oauth_failure_flag_storage_error",{error:e instanceof Error?e.message:String(e)},"warning")}}async function c(){try{let e=await fetch("/api/wechat/openid",{method:"GET",headers:{"Content-Type":"application/json"}});if(!e.ok){if(404===e.status)return(0,o.debugLog)("server_openid_not_found",{status:e.status}),null;throw Error(`Server openid fetch failed: ${e.status} ${e.statusText}`)}let t=await e.json();if(!t||"object"!=typeof t||!("data"in t)||"string"!=typeof t.data?.openid)throw Error("Invalid server openid response shape");let r=t.data.openid;return l(r),(0,o.debugLog)("server_openid_fetch_success",{openidPreview:`${r.substring(0,8)}...`,source:"database_v2_import"}),r}catch(e){throw(0,o.debugError)("server_openid_fetch_exception",{error:e instanceof Error?e.message:String(e)}),e instanceof Error?e:Error(String(e))}}async function d(e,t="public_account"){let r=await fetch("/api/wechat/openid",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:e,appType:t})});if(!r.ok)throw Error((await r.json()).message??"Failed to exchange code for openid");let o=await r.json();if(!o.data?.openid)throw Error("No openid returned from server");return o.data.openid}async function p(e){let t;(0,o.debugLog)("oauth_callback_start",{url:e,urlLength:e.length,timestamp:new Date().toISOString()});try{t=new URL(e),(0,o.debugLog)("oauth_callback_url_parse_success",{protocol:t.protocol,hostname:t.hostname,pathname:t.pathname,searchParamsCount:Array.from(t.searchParams.entries()).length,allParams:Array.from(t.searchParams.entries()).map(([e,t])=>({key:e,valuePreview:t.length>20?`${t.substring(0,20)}...`:t}))})}catch(t){return(0,o.debugError)("oauth_callback_url_parse_error",{url:e,error:t instanceof Error?t.message:String(t)}),null}let r=t.searchParams.get("code"),n=t.searchParams.get("state");if((0,o.debugLog)("oauth_callback_params",{hasCode:!!r,hasState:!!n,codePreview:r?`${r.substring(0,8)}...`:null,codeLength:r?.length??0,statePreview:n?`${n.substring(0,8)}...`:null,stateLength:n?.length??0,allSearchParams:Object.fromEntries(t.searchParams.entries())}),!r||!n)return(0,o.debugLog)("oauth_callback_not_detected",{reason:"missing_code_or_state",missingCode:!r,missingState:!n,availableParams:Array.from(t.searchParams.keys())}),null;let a=()=>{(0,o.debugLog)("oauth_url_cleanup_start",{beforeCleanup:t.toString(),paramsToRemove:["code","state"]}),t.searchParams.delete("code"),t.searchParams.delete("state"),(0,o.debugLog)("oauth_url_cleanup_params_removed",{afterCleanup:t.toString(),remainingParams:Array.from(t.searchParams.keys())});try{let e=window.location.href;window.history.replaceState({},document.title,t.toString()),(0,o.debugLog)("oauth_url_cleanup_history_updated",{oldUrl:e,newUrl:t.toString(),historyStateUpdated:!0})}catch(e){(0,o.debugError)("oauth_url_cleanup_history_error",{error:e instanceof Error?e.message:String(e),stack:e instanceof Error?e.stack:void 0})}};if((0,o.debugLog)("oauth_state_verify_start",{receivedStatePreview:`${n.substring(0,8)}...`,timestamp:new Date().toISOString()}),!function(e){(0,o.debugLog)("oauth_state_verify_function_start",{receivedStatePreview:`${e.substring(0,8)}...`,receivedStateLength:e.length,windowExists:!0});let t=document.cookie.split("; ").find(e=>e.startsWith("wechat_oauth_state=")),r=t?t.split("=")[1]??null:null;(0,o.debugLog)("oauth_state_verify_stored_state_retrieved",{hasStoredState:!!r,storedStatePreview:r?`${r.substring(0,8)}...`:null,storedStateLength:r?.length??0,storageKey:i});let n=r===e;(0,o.debugLog)("oauth_state_verify_comparison",{matches:n,receivedPreview:`${e.substring(0,8)}...`,storedPreview:r?`${r.substring(0,8)}...`:null,bothExist:!!e&&!!r});try{document.cookie="wechat_oauth_state=; path=/; max-age=0";let e=document.cookie.split("; ").find(e=>e.startsWith("wechat_oauth_state="));(0,o.debugLog)("oauth_state_verify_cleared",{key:i,stillExists:!!(e?e.split("=")[1]??null:null)})}catch(e){(0,o.debugError)("oauth_state_verify_clear_error",{error:e instanceof Error?e.message:String(e)})}return(0,o.debugLog)("oauth_state_verify_function_complete",{result:n,verified:n}),n}(n))return(0,o.debugError)("oauth_state_verify_failed",{reason:"state_mismatch_or_csrf",receivedStatePreview:`${n.substring(0,8)}...`,storedStateExists:"stored_state_already_cleared_by_verify_function"}),u(),a(),null;(0,o.debugLog)("oauth_state_verify_success",{stateMatched:!0,csrfProtectionPassed:!0});try{(0,o.debugLog)("oauth_code_exchange_start",{codePreview:`${r.substring(0,8)}...`,codeLength:r.length,endpoint:"/api/wechat/openid",appType:"public_account"});let e=await d(r);return(0,o.debugLog)("oauth_code_exchange_success",{openidPreview:`${e.substring(0,8)}...`,openidLength:e.length,timestamp:new Date().toISOString()}),(0,o.debugLog)("oauth_openid_storage_start",{openidPreview:`${e.substring(0,8)}...`}),l(e),(0,o.debugLog)("oauth_openid_stored",{success:!0,canRetrieve:!!s(),retrievedMatches:s()===e}),a(),(0,o.debugLog)("oauth_url_cleanup_complete",{finalUrl:window.location.href}),e}catch(e){return(0,o.debugError)("oauth_code_exchange_failed",{error:e instanceof Error?e.message:String(e),errorStack:e instanceof Error?e.stack:void 0,errorName:e instanceof Error?e.name:void 0,timestamp:new Date().toISOString()}),u(),a(),null}}e.s(["clearWeChatOAuthFailure",0,function(){localStorage.removeItem(a),sessionStorage.removeItem(a)},"fetchOpenIdFromServer",0,c,"getStoredOpenId",0,s,"getWeChatOAuthUrl",0,function(e,t){(0,o.debugLog)("oauth_url_generation_start",{redirectUri:e,hasStateParam:!!t,stateParamPreview:t?`${t.substring(0,8)}...`:null,timestamp:new Date().toISOString()});let n=r.env.NEXT_PUBLIC_WECHAT_PUBLIC_ACCOUNT_APP_ID;
2if((0,o.debugLog)("oauth_url_appid_check",{hasAppId:!!n,appIdPreview:n?`${n.substring(0,8)}...`:null}),!n)throw(0,o.debugError)("oauth_url_appid_missing",{error:"WeChat Public Account App ID is not configured",envVarName:"NEXT_PUBLIC_WECHAT_PUBLIC_ACCOUNT_APP_ID"}),Error("WeChat Public Account App ID is not configured");let a=t,s="provided";if(!a){(0,o.debugLog)("oauth_state_generation_start",{reason:"no_state_provided",windowExists:!0,isSecureContext:window.isSecureContext,hasCryptoRandomUUID:!!window.crypto?.randomUUID});try{window.isSecureContext&&window.crypto?.randomUUID?(a=window.crypto.randomUUID(),s="window.crypto.randomUUID",(0,o.debugLog)("oauth_state_generation_success",{method:s,statePreview:`${a.substring(0,8)}...`})):"u">typeof crypto&&crypto.randomUUID?(a=crypto.randomUUID(),s="crypto.randomUUID",(0,o.debugLog)("oauth_state_generation_success",{method:s,statePreview:`${a.substring(0,8)}...`})):(a=`fallback_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,s="fallback_timestamp_random",(0,o.debugLog)("oauth_state_generation_fallback",{method:s,reason:"crypto_unavailable",statePreview:`${a.substring(0,8)}...`}))}catch(e){a=`fallback_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,s="fallback_error_recovery",(0,o.debugError)("oauth_state_generation_error",{error:e instanceof Error?e.message:String(e),fallbackMethod:s,statePreview:`${a.substring(0,8)}...`})}}if((0,o.debugLog)("oauth_state_storage_start",{windowExists:!0,hasState:!!a,statePreview:a?`${a.substring(0,8)}...`:null}),a)try{document.cookie=`wechat_oauth_state=${a}; path=/; max-age=300; SameSite=Lax${"https:"===window.location.protocol?"; Secure":""}`;let e=document.cookie.split("; ").find(e=>e.startsWith("wechat_oauth_state=")),t=e?e.split("=")[1]??null:null,r=t===a;(0,o.debugLog)("oauth_state_storage_complete",{success:r,key:i,storedPreview:t?`${t.substring(0,8)}...`:null,matchesOriginal:r}),r||(0,o.debugError)("oauth_state_storage_mismatch",{expectedPreview:`${a.substring(0,8)}...`,actualPreview:t?`${t.substring(0,8)}...`:null})}catch(e){(0,o.debugError)("oauth_state_storage_error",{error:e instanceof Error?e.message:String(e),stack:e instanceof Error?e.stack:void 0})}let l={appid:n,redirect_uri:e,response_type:"code",scope:"snsapi_base",state:a};(0,o.debugLog)("oauth_url_params",{appid:`${n.substring(0,8)}...`,redirect_uri:e,response_type:l.response_type,scope:l.scope,state:`${a.substring(0,8)}...`,stateGenerationMethod:s});let u=new URLSearchParams(l),c=`https://open.weixin.qq.com/connect/oauth2/authorize?${u.toString()}#wechat_redirect`;return(0,o.debugLog)("oauth_url_generation_complete",{finalUrl:c,urlLength:c.length,hasAllParams:c.includes("appid=")&&c.includes("redirect_uri=")&&c.includes("state=")}),c},"handleWeChatOAuthCallback",0,p,"needsWeChatOAuth",0,function(e,t,r){if((0,o.debugLog)("oauth_needs_check_start",{isWeChat:e,isMobile:t,selectedPaymentMethod:r??"not_provided",timestamp:new Date().toISOString()}),function(){try{let e=localStorage.getItem(a);if(!e)return!1;let t=JSON.parse(e);if("object"!=typeof t||null===t||!("ts"in t)||"number"!=typeof t.ts||Date.now()-t.ts>6e5)return localStorage.removeItem(a),!1;return!0}catch{return localStorage.removeItem(a),!1}}())return(0,o.debugLog)("oauth_needs_check_skipped_after_failure",{reason:"oauth_failed_previously_in_session",selectedPaymentMethod:r??"not_provided",willRetryOAuth:!1}),!1;try{let e=new URL(window.location.href);if(e.searchParams.has("code")&&e.searchParams.has("state"))return(0,o.debugLog)("oauth_needs_check_skipped_callback_in_progress",{reason:"oauth_callback_params_present_in_url",selectedPaymentMethod:r??"not_provided",willRetryOAuth:!1}),!1}catch{}let n=s(),i=e&&t&&!n,l={isWeChat:{value:e,passes:e,reason:e?"In WeChat browser":"NOT in WeChat browser"},isMobile:{value:t,passes:t,reason:t?"On mobile device":"NOT on mobile device"},hasOpenId:{value:!!n,passes:!n,reason:n?`Has stored openid: ${n.substring(0,8)}...`:"No stored openid"},finalDecision:i};return(0,o.debugLog)("oauth_needs_check_complete",{needsOAuth:i,reasoning:l,allConditionsMet:i,selectedPaymentMethod:r??"not_provided",openidPreview:n?`${n.substring(0,8)}...`:null}),i?(0,o.debugLog)("oauth_needs_check_result_YES",{reason:"All conditions met: WeChat browser + Mobile + No openid",willRedirect:!0}):(0,o.debugLog)("oauth_needs_check_result_NO",{reason:"One or more conditions not met",failedConditions:[!e&&"not_wechat_browser",!t&&"not_mobile_device",!!n&&"openid_already_exists"].filter(
2Boolean)}),i}],192827)},786612,e=>{"use strict";let t="FIRSTORDER10";function r(e){return Number.isFinite(e)?Number(e.toFixed(2)):0}function o(e,t,o){return!Number.isFinite(e)||e<=0||!Number.isFinite(t)||t<=0?0:Math.min(r(e*t/100),o??1/0,r(e))}e.s(["FIRST_ORDER_DISCOUNT_CAP_CNY",0,100,"FIRST_ORDER_DISCOUNT_RATE",0,.1,"FIRST_ORDER_PROMO_CODE",0,t,"calculateCappedPercentageDiscountCny",0,o,"calculateExistingOrderDiscount",0,function({hasPromoCode:e,itemsSubtotal:t,shippingTotal:o=0,importTaxTotal:n=0,orderTotal:i}){if(!e)return 0;let a=r(t+o+n),s=r(a-i);return s<=0?0:Math.min(s,a)},"formatAutoDiscountTerms",0,function(e,t){let o=`${r(e.percent)}%`,n="CNY"===t&&null!=e.maxDiscountCny?`up to \xa5${r(e.maxDiscountCny)}`:null;return{percentLabel:o,capLabel:n,termsLabel:n?`${o} off, ${n}`:`${o} off`}},"isAutoDiscountCapReached",0,function(e,t){return null!=e.maxDiscountCny&&!!Number.isFinite(t)&&r(t*e.percent/100)>e.maxDiscountCny},"pickBestAutoDiscount",0,function(e,t){let r=null;for(let n of e){let e=o("function"==typeof t?t(n):t,n.percent,n.maxDiscountCny);e>0&&(null===r||e>r.discountCny)&&(r={candidate:n,discountCny:e})}return r},"withRecalculatedAutoDiscount",0,function(e,r,n,i=[],a=n){if(r?.valid!==!0)return r;let s=e===t?null:i.find(t=>t.code===e);if(e!==t&&!s)return r;let l=s?o(a,s.percent,s.maxDiscountCny):o(n,10,100);return r.discount===l?r:{...r,discount:l}}])}]);
3
4//# debugId=fe644d1a-9e7b-d2a2-a313-8c676595ba45

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.