@nvwa-app/sdk-web 6.12.0 → 6.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -33,4 +33,4 @@ ${l.stack}`)}else{var f;o=(f=i?.stack)!==null&&f!==void 0?f:""}let w=this.url.to
33
33
  max-width: 400px;
34
34
  word-break: break-all;
35
35
  }
36
- `,document.head.appendChild(t)}createTooltip(){return this.tooltip?this.tooltip:(this.tooltip=document.createElement("div"),this.tooltip.id="__nvwa-inspector-tooltip",document.body.appendChild(this.tooltip),this.tooltip)}createOverlay(t){let e=document.createElement("div");return e.className=`__nvwa-inspector-overlay __nvwa-inspector-overlay-${t}`,document.body.appendChild(e),e}updateOverlayPosition(t,e){if(!e.isConnected)return;let r=e.getBoundingClientRect(),s=window.scrollX||window.pageXOffset,a=window.scrollY||window.pageYOffset;r.width>0&&r.height>0?(t.style.left=`${r.left+s}px`,t.style.top=`${r.top+a}px`,t.style.width=`${r.width}px`,t.style.height=`${r.height}px`,t.style.display="block"):t.style.display="none"}removeOverlay(t){t&&t.parentNode&&t.parentNode.removeChild(t)}highlightElement(t,e){if(!t.isConnected)return;if(this.hoverElement===t&&this.hoverOverlay){this.updateOverlayPosition(this.hoverOverlay,t);let n=this.createTooltip();e?n.textContent=e:n.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,n.style.display="block";let o=t.getBoundingClientRect();n.style.left=`${o.left+window.scrollX}px`,n.style.top=`${o.top+window.scrollY-n.offsetHeight-8}px`,o.top<n.offsetHeight+8&&(n.style.top=`${o.bottom+window.scrollY+8}px`);return}this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null);let r=this.createOverlay("hover");this.updateOverlayPosition(r,t),this.hoverOverlay=r,this.hoverElement=t;let s=()=>{this.hoverOverlay&&this.hoverElement&&this.hoverElement.isConnected&&this.updateOverlayPosition(this.hoverOverlay,this.hoverElement)};this.hoverUpdateHandler&&(window.removeEventListener("scroll",this.hoverUpdateHandler,!0),window.removeEventListener("resize",this.hoverUpdateHandler)),this.hoverUpdateHandler=s,window.addEventListener("scroll",s,!0),window.addEventListener("resize",s);let a=this.createTooltip();e?a.textContent=e:a.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,a.style.display="block";let i=t.getBoundingClientRect();a.style.left=`${i.left+window.scrollX}px`,a.style.top=`${i.top+window.scrollY-a.offsetHeight-8}px`,i.top<a.offsetHeight+8&&(a.style.top=`${i.bottom+window.scrollY+8}px`)}selectElement(t,e){if(!t.isConnected)return;if(this.selectedElement===t&&this.selectedOverlay){this.updateOverlayPosition(this.selectedOverlay,t);return}this.selectedOverlay&&(this.removeOverlay(this.selectedOverlay),this.selectedOverlay=null);let r=this.createOverlay("selected");this.updateOverlayPosition(r,t),this.selectedOverlay=r,this.selectedElement=t;let s=()=>{this.selectedOverlay&&this.selectedElement&&this.selectedElement.isConnected&&this.updateOverlayPosition(this.selectedOverlay,this.selectedElement)};this.selectedUpdateHandler&&(window.removeEventListener("scroll",this.selectedUpdateHandler,!0),window.removeEventListener("resize",this.selectedUpdateHandler)),this.selectedUpdateHandler=s,window.addEventListener("scroll",s,!0),window.addEventListener("resize",s)}removeHighlight(){this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null),this.hoverElement&&(this.hoverElement=null),this.tooltip&&(this.tooltip.style.display="none"),this.hoverUpdateHandler&&(window.removeEventListener("scroll",this.hoverUpdateHandler,!0),window.removeEventListener("resize",this.hoverUpdateHandler),this.hoverUpdateHandler=null)}clearSelection(){this.selectedOverlay&&(this.removeOverlay(this.selectedOverlay),this.selectedOverlay=null),this.selectedElement&&(this.selectedElement=null),this.selectedUpdateHandler&&(window.removeEventListener("scroll",this.selectedUpdateHandler,!0),window.removeEventListener("resize",this.selectedUpdateHandler),this.selectedUpdateHandler=null)}cleanup(){this.removeHighlight(),this.clearSelection(),this.tooltip&&this.tooltip.parentNode&&(this.tooltip.parentNode.removeChild(this.tooltip),this.tooltip=null);let t=document.getElementById("__nvwa-inspector-overlay-style");t&&t.parentNode&&t.parentNode.removeChild(t)}};function J(t="root"){if(typeof document>"u")return null;let e=document.getElementById(t)||document.body;if(!e)return null;let r=e.querySelector("[data-source-location]");if(r){let s=r.getAttribute("data-source-location");if(s)return s}if(e.firstElementChild){let s=e.firstElementChild.getAttribute("data-source-location");if(s)return s}return null}function z(t){let e=t;if(typeof e.kind=="string")return e;if(typeof e.tradeNO=="string")return{kind:"alipay_miniprogram",tradeNO:e.tradeNO};if(typeof e.clientSecret=="string")return{kind:"stripe_client_secret",clientSecret:e.clientSecret};if(typeof e.redirectUrl=="string")return{kind:"redirect_url",redirectUrl:e.redirectUrl};if(typeof e.formHtml=="string")return{kind:"alipay_page",formHtml:e.formHtml};if(typeof e.codeUrl=="string")return{kind:"wechat_native_qr",codeUrl:e.codeUrl};let r=e.jsapiPayParams??e;return typeof r.timeStamp=="string"&&typeof r.nonceStr=="string"&&typeof r.package=="string"&&typeof r.paySign=="string"&&typeof r.appId=="string"?{kind:"wechat_jsapi",mode:"jsapi",jsapiPayParams:{appId:r.appId,timeStamp:r.timeStamp,nonceStr:r.nonceStr,package:r.package,signType:r.signType??"RSA",paySign:r.paySign}}:null}var T=class{constructor(){this.prefix="nvwa_"}getKey(e){return`${this.prefix}${e}`}async get(e){try{let r=this.getKey(e),s=localStorage.getItem(r);if(!s)return null;let a=JSON.parse(s);return a.expires&&Date.now()>a.expires?(await this.remove(e),null):a.value}catch(r){return console.error("WebStorageService get error:",r),null}}async set(e,r,s){try{let a=this.getKey(e),i={value:r,expires:s?Date.now()+s*1e3:null,timestamp:Date.now()};localStorage.setItem(a,JSON.stringify(i))}catch(a){throw console.error("WebStorageService set error:",a),a}}async remove(e){try{let r=this.getKey(e);localStorage.removeItem(r)}catch(r){throw console.error("WebStorageService remove error:",r),r}}async clear(){try{Object.keys(localStorage).filter(s=>s.startsWith(this.prefix)).forEach(s=>{localStorage.removeItem(s)})}catch(e){throw console.error("WebStorageService clear error:",e),e}}};var we=(t,e)=>{let r;if(typeof t=="string")r=t;else if(t&&typeof t.toString=="function")r=t.toString();else if(t?.url)r=t.url;else throw new Error("Invalid input for webFetch");let s;if(e?.headers){let i=e.headers;if(i instanceof y){let n={};i.forEach((o,u)=>{n[u]=o}),s=n}else if(Array.isArray(i)){let n=[];for(let o of i)Array.isArray(o)&&o.length>=2&&n.push([String(o[0]),String(o[1])]);s=n}else typeof i=="object"&&(s=i)}let a={method:e?.method||"GET",headers:s,body:e?.body,credentials:e?.credentials};return e?.signal&&(a.signal=e.signal),globalThis.fetch(r,a).then(async i=>{let n=i.headers.get("content-type")||"",o;if(n.includes("application/json"))o=await i.json();else{let h=await i.text();try{o=JSON.parse(h)}catch{o=h}}let u=new y;return i.headers.forEach((h,l)=>{u.set(l,h)}),new H(o,{status:i.status,statusText:i.statusText,headers:u})})},P=we;function ve(t){return`https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(t)}`}var B={async requestPayment(t,e){let r=z(t);if(r?.kind==="redirect_url"){window.location.href=r.redirectUrl;return}if(r?.kind==="wechat_native_qr"){let a=ve(r.codeUrl);window.open(a,"_blank","noopener,noreferrer");return}if(r?.kind==="alipay_page"){let a=window.open("","_blank");a&&(a.document.write(r.formHtml),a.document.close());return}let s=new Error("requestPayment: unsupported payParams for Desktop-web");throw e?.onFailure?.(s),s}};function be(){if(typeof window>"u"||window===window.parent)return;let t=!1,e=new G;function r(h){if(!h)return!1;let l=h.toLowerCase();return l.includes("/components/")||l.includes("\\components\\")}function s(h){let l=h,c=null;for(;l;){let d=l.getAttribute("data-source-location");if(d)if(r(d)){c||(c=d),l=l.parentElement;continue}else return d;l=l.parentElement}return c}let a=null;function i(h){t&&(a!==null&&cancelAnimationFrame(a),a=requestAnimationFrame(()=>{let l=h.target;if(!l||l===document.body||l===document.documentElement){e.removeHighlight();return}if(l.tagName.toLowerCase()==="img"){let p=s(l);e.highlightElement(l,p);let f={type:"HOVER_INSPECTOR_ELEMENT_HOVER",sourceLocation:p,elementInfo:{tagName:l.tagName.toLowerCase(),className:l.className||"",id:l.id||""}};window.parent.postMessage(f,"*");return}let c=l,d=s(l);if(!d){let p=l.parentElement;for(;p&&p!==document.body&&p!==document.documentElement;){let f=s(p);if(f){c=p,d=f;break}p=p.parentElement}}e.highlightElement(c,d);let m={type:"HOVER_INSPECTOR_ELEMENT_HOVER",sourceLocation:d,elementInfo:{tagName:c.tagName.toLowerCase(),className:c.className||"",id:c.id||""}};window.parent.postMessage(m,"*")}))}function n(){if(!t)return;e.removeHighlight();let h={type:"HOVER_INSPECTOR_ELEMENT_LEAVE"};window.parent.postMessage(h,"*")}function o(h){if(!t)return;h.preventDefault(),h.stopPropagation();let l=h.target;if(!l||l===document.body||l===document.documentElement)return;let c=s(l);e.selectElement(l,c);let d={type:"HOVER_INSPECTOR_ELEMENT_SELECT",sourceLocation:c,elementInfo:{tagName:l.tagName.toLowerCase(),className:l.className||"",id:l.id||""}};window.parent.postMessage(d,"*")}function u(h){h.data?.type==="HOVER_INSPECTOR_ENABLE"?(t=!0,document.addEventListener("mousemove",i),document.addEventListener("mouseleave",n),document.addEventListener("click",o,!0)):h.data?.type==="HOVER_INSPECTOR_DISABLE"&&(t=!1,document.removeEventListener("mousemove",i),document.removeEventListener("mouseleave",n),document.removeEventListener("click",o,!0),e.removeHighlight(),e.clearSelection())}return window.addEventListener("message",u),()=>{window.removeEventListener("message",u),document.removeEventListener("mousemove",i),document.removeEventListener("mouseleave",n),document.removeEventListener("click",o,!0),e.cleanup()}}function Ee(t,e){if(!t||!t.contentWindow)throw new Error("Invalid iframe element");let r={type:"HOVER_INSPECTOR_ENABLE"};t.contentWindow.postMessage(r,e)}function Oe(t,e){if(!t||!t.contentWindow)return;let r={type:"HOVER_INSPECTOR_DISABLE"};t.contentWindow.postMessage(r,e)}function Se(t,e,r=5e3){return new Promise((s,a)=>{if(!t||!t.contentWindow){a(new Error("Invalid iframe element"));return}let i=`source-location-${Date.now()}-${Math.random()}`,n=setTimeout(()=>{window.removeEventListener("message",o),a(new Error("Request timeout"))},r),o=h=>{h.origin===e&&h.data?.type==="GET_SOURCE_LOCATION_RESPONSE"&&h.data?.requestId===i&&(clearTimeout(n),window.removeEventListener("message",o),h.data.error?a(new Error(h.data.error)):s(h.data.sourceLocation||null))};window.addEventListener("message",o);let u={type:"GET_SOURCE_LOCATION_REQUEST",requestId:i};try{t.contentWindow.postMessage(u,e)}catch(h){clearTimeout(n),window.removeEventListener("message",o),a(h)}})}function Pe(){if(typeof window>"u"||window===window.parent)return;let t=e=>{if(e.data?.type==="GET_SOURCE_LOCATION_REQUEST")try{let s={type:"GET_SOURCE_LOCATION_RESPONSE",sourceLocation:Le(),requestId:e.data.requestId};window.parent.postMessage(s,e.origin)}catch(r){let s={type:"GET_SOURCE_LOCATION_RESPONSE",sourceLocation:null,error:r instanceof Error?r.message:"Unknown error",requestId:e.data.requestId};window.parent.postMessage(s,e.origin)}};return window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}}function Le(){return J("root")}var I=new T,$=class{constructor(e,r){this.endpointType="Desktop-web";this.payment=B;this.auth=new M(e,{fetchImpl:P,storage:I}),this.httpClient=new F(I,P,r),this.fileStorage=new W(e,this.httpClient),this.entities=D(e,this.httpClient),this.functions=new j(this.httpClient,e)}};0&&(module.exports={disableIframeHoverInspector,enableIframeHoverInspector,getIframeSourceLocation,localStorage,setupIframeHoverInspector,setupIframeSourceLocationListener,webFetch});
36
+ `,document.head.appendChild(t)}createTooltip(){return this.tooltip?this.tooltip:(this.tooltip=document.createElement("div"),this.tooltip.id="__nvwa-inspector-tooltip",document.body.appendChild(this.tooltip),this.tooltip)}createOverlay(t){let e=document.createElement("div");return e.className=`__nvwa-inspector-overlay __nvwa-inspector-overlay-${t}`,document.body.appendChild(e),e}updateOverlayPosition(t,e){if(!e.isConnected)return;let r=e.getBoundingClientRect(),s=window.scrollX||window.pageXOffset,a=window.scrollY||window.pageYOffset;r.width>0&&r.height>0?(t.style.left=`${r.left+s}px`,t.style.top=`${r.top+a}px`,t.style.width=`${r.width}px`,t.style.height=`${r.height}px`,t.style.display="block"):t.style.display="none"}removeOverlay(t){t&&t.parentNode&&t.parentNode.removeChild(t)}highlightElement(t,e){if(!t.isConnected)return;if(this.hoverElement===t&&this.hoverOverlay){this.updateOverlayPosition(this.hoverOverlay,t);let n=this.createTooltip();e?n.textContent=e:n.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,n.style.display="block";let o=t.getBoundingClientRect();n.style.left=`${o.left+window.scrollX}px`,n.style.top=`${o.top+window.scrollY-n.offsetHeight-8}px`,o.top<n.offsetHeight+8&&(n.style.top=`${o.bottom+window.scrollY+8}px`);return}this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null);let r=this.createOverlay("hover");this.updateOverlayPosition(r,t),this.hoverOverlay=r,this.hoverElement=t;let s=()=>{this.hoverOverlay&&this.hoverElement&&this.hoverElement.isConnected&&this.updateOverlayPosition(this.hoverOverlay,this.hoverElement)};this.hoverUpdateHandler&&(window.removeEventListener("scroll",this.hoverUpdateHandler,!0),window.removeEventListener("resize",this.hoverUpdateHandler)),this.hoverUpdateHandler=s,window.addEventListener("scroll",s,!0),window.addEventListener("resize",s);let a=this.createTooltip();e?a.textContent=e:a.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,a.style.display="block";let i=t.getBoundingClientRect();a.style.left=`${i.left+window.scrollX}px`,a.style.top=`${i.top+window.scrollY-a.offsetHeight-8}px`,i.top<a.offsetHeight+8&&(a.style.top=`${i.bottom+window.scrollY+8}px`)}selectElement(t,e){if(!t.isConnected)return;if(this.selectedElement===t&&this.selectedOverlay){this.updateOverlayPosition(this.selectedOverlay,t);return}this.selectedOverlay&&(this.removeOverlay(this.selectedOverlay),this.selectedOverlay=null);let r=this.createOverlay("selected");this.updateOverlayPosition(r,t),this.selectedOverlay=r,this.selectedElement=t;let s=()=>{this.selectedOverlay&&this.selectedElement&&this.selectedElement.isConnected&&this.updateOverlayPosition(this.selectedOverlay,this.selectedElement)};this.selectedUpdateHandler&&(window.removeEventListener("scroll",this.selectedUpdateHandler,!0),window.removeEventListener("resize",this.selectedUpdateHandler)),this.selectedUpdateHandler=s,window.addEventListener("scroll",s,!0),window.addEventListener("resize",s)}removeHighlight(){this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null),this.hoverElement&&(this.hoverElement=null),this.tooltip&&(this.tooltip.style.display="none"),this.hoverUpdateHandler&&(window.removeEventListener("scroll",this.hoverUpdateHandler,!0),window.removeEventListener("resize",this.hoverUpdateHandler),this.hoverUpdateHandler=null)}clearSelection(){this.selectedOverlay&&(this.removeOverlay(this.selectedOverlay),this.selectedOverlay=null),this.selectedElement&&(this.selectedElement=null),this.selectedUpdateHandler&&(window.removeEventListener("scroll",this.selectedUpdateHandler,!0),window.removeEventListener("resize",this.selectedUpdateHandler),this.selectedUpdateHandler=null)}cleanup(){this.removeHighlight(),this.clearSelection(),this.tooltip&&this.tooltip.parentNode&&(this.tooltip.parentNode.removeChild(this.tooltip),this.tooltip=null);let t=document.getElementById("__nvwa-inspector-overlay-style");t&&t.parentNode&&t.parentNode.removeChild(t)}};function z(t="root"){if(typeof document>"u")return null;let e=document.getElementById(t)||document.body;if(!e)return null;let r=e.querySelector("[data-source-location]");if(r){let s=r.getAttribute("data-source-location");if(s)return s}if(e.firstElementChild){let s=e.firstElementChild.getAttribute("data-source-location");if(s)return s}return null}function J(t){let e=t;if(typeof e.kind=="string")return e;if(typeof e.tradeNO=="string")return{kind:"alipay_miniprogram",tradeNO:e.tradeNO};if(typeof e.clientSecret=="string")return{kind:"stripe_client_secret",clientSecret:e.clientSecret};if(typeof e.redirectUrl=="string")return{kind:"redirect_url",redirectUrl:e.redirectUrl};if(typeof e.formHtml=="string")return{kind:"alipay_page",formHtml:e.formHtml};if(typeof e.codeUrl=="string")return{kind:"wechat_native_qr",codeUrl:e.codeUrl};let r=e.jsapiPayParams??e;return typeof r.timeStamp=="string"&&typeof r.nonceStr=="string"&&typeof r.package=="string"&&typeof r.paySign=="string"&&typeof r.appId=="string"?{kind:"wechat_jsapi",mode:"jsapi",jsapiPayParams:{appId:r.appId,timeStamp:r.timeStamp,nonceStr:r.nonceStr,package:r.package,signType:r.signType??"RSA",paySign:r.paySign}}:null}var T=class{constructor(){this.prefix="nvwa_"}getKey(e){return`${this.prefix}${e}`}async get(e){try{let r=this.getKey(e),s=localStorage.getItem(r);if(!s)return null;let a=JSON.parse(s);return a.expires&&Date.now()>a.expires?(await this.remove(e),null):a.value}catch(r){return console.error("WebStorageService get error:",r),null}}async set(e,r,s){try{let a=this.getKey(e),i={value:r,expires:s?Date.now()+s*1e3:null,timestamp:Date.now()};localStorage.setItem(a,JSON.stringify(i))}catch(a){throw console.error("WebStorageService set error:",a),a}}async remove(e){try{let r=this.getKey(e);localStorage.removeItem(r)}catch(r){throw console.error("WebStorageService remove error:",r),r}}async clear(){try{Object.keys(localStorage).filter(s=>s.startsWith(this.prefix)).forEach(s=>{localStorage.removeItem(s)})}catch(e){throw console.error("WebStorageService clear error:",e),e}}};var we=(t,e)=>{let r;if(typeof t=="string")r=t;else if(t&&typeof t.toString=="function")r=t.toString();else if(t?.url)r=t.url;else throw new Error("Invalid input for webFetch");let s;if(e?.headers){let i=e.headers;if(i instanceof y){let n={};i.forEach((o,u)=>{n[u]=o}),s=n}else if(Array.isArray(i)){let n=[];for(let o of i)Array.isArray(o)&&o.length>=2&&n.push([String(o[0]),String(o[1])]);s=n}else typeof i=="object"&&(s=i)}let a={method:e?.method||"GET",headers:s,body:e?.body,credentials:e?.credentials};return e?.signal&&(a.signal=e.signal),globalThis.fetch(r,a).then(async i=>{let n=i.headers.get("content-type")||"",o;if(n.includes("application/json"))o=await i.json();else{let h=await i.text();try{o=JSON.parse(h)}catch{o=h}}let u=new y;return i.headers.forEach((h,l)=>{u.set(l,h)}),new H(o,{status:i.status,statusText:i.statusText,headers:u})})},P=we;function ve(t){return`https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(t)}`}var B={async requestPayment(t,e){let r=J(t);if(r?.kind==="redirect_url"){window.location.href=r.redirectUrl;return}if(r?.kind==="wechat_native_qr"){let a=ve(r.codeUrl);window.open(a,"_blank","noopener,noreferrer");return}if(r?.kind==="alipay_page"){let a=window.open("","_blank");a&&(a.document.write(r.formHtml),a.document.close());return}let s=new Error("requestPayment: unsupported payParams for Desktop-web");throw e?.onFailure?.(s),s}};function be(){if(typeof window>"u"||window===window.parent)return;let t=!1,e=new G;function r(h){if(!h)return!1;let l=h.toLowerCase();return l.includes("/components/")||l.includes("\\components\\")}function s(h){let l=h,c=null;for(;l;){let d=l.getAttribute("data-source-location");if(d)if(r(d)){c||(c=d),l=l.parentElement;continue}else return d;l=l.parentElement}return c}let a=null;function i(h){t&&(a!==null&&cancelAnimationFrame(a),a=requestAnimationFrame(()=>{let l=h.target;if(!l||l===document.body||l===document.documentElement){e.removeHighlight();return}if(l.tagName.toLowerCase()==="img"){let p=s(l);e.highlightElement(l,p);let f={type:"HOVER_INSPECTOR_ELEMENT_HOVER",sourceLocation:p,elementInfo:{tagName:l.tagName.toLowerCase(),className:l.className||"",id:l.id||""}};window.parent.postMessage(f,"*");return}let c=l,d=s(l);if(!d){let p=l.parentElement;for(;p&&p!==document.body&&p!==document.documentElement;){let f=s(p);if(f){c=p,d=f;break}p=p.parentElement}}e.highlightElement(c,d);let m={type:"HOVER_INSPECTOR_ELEMENT_HOVER",sourceLocation:d,elementInfo:{tagName:c.tagName.toLowerCase(),className:c.className||"",id:c.id||""}};window.parent.postMessage(m,"*")}))}function n(){if(!t)return;e.removeHighlight();let h={type:"HOVER_INSPECTOR_ELEMENT_LEAVE"};window.parent.postMessage(h,"*")}function o(h){if(!t)return;h.preventDefault(),h.stopPropagation();let l=h.target;if(!l||l===document.body||l===document.documentElement)return;let c=s(l);e.selectElement(l,c);let d={type:"HOVER_INSPECTOR_ELEMENT_SELECT",sourceLocation:c,elementInfo:{tagName:l.tagName.toLowerCase(),className:l.className||"",id:l.id||""}};window.parent.postMessage(d,"*")}function u(h){h.data?.type==="HOVER_INSPECTOR_ENABLE"?(t=!0,document.addEventListener("mousemove",i),document.addEventListener("mouseleave",n),document.addEventListener("click",o,!0)):h.data?.type==="HOVER_INSPECTOR_DISABLE"&&(t=!1,document.removeEventListener("mousemove",i),document.removeEventListener("mouseleave",n),document.removeEventListener("click",o,!0),e.removeHighlight(),e.clearSelection())}return window.addEventListener("message",u),()=>{window.removeEventListener("message",u),document.removeEventListener("mousemove",i),document.removeEventListener("mouseleave",n),document.removeEventListener("click",o,!0),e.cleanup()}}function Ee(t,e){if(!t||!t.contentWindow)throw new Error("Invalid iframe element");let r={type:"HOVER_INSPECTOR_ENABLE"};t.contentWindow.postMessage(r,e)}function Oe(t,e){if(!t||!t.contentWindow)return;let r={type:"HOVER_INSPECTOR_DISABLE"};t.contentWindow.postMessage(r,e)}function Se(t,e,r=5e3){return new Promise((s,a)=>{if(!t||!t.contentWindow){a(new Error("Invalid iframe element"));return}let i=`source-location-${Date.now()}-${Math.random()}`,n=setTimeout(()=>{window.removeEventListener("message",o),a(new Error("Request timeout"))},r),o=h=>{h.origin===e&&h.data?.type==="GET_SOURCE_LOCATION_RESPONSE"&&h.data?.requestId===i&&(clearTimeout(n),window.removeEventListener("message",o),h.data.error?a(new Error(h.data.error)):s(h.data.sourceLocation||null))};window.addEventListener("message",o);let u={type:"GET_SOURCE_LOCATION_REQUEST",requestId:i};try{t.contentWindow.postMessage(u,e)}catch(h){clearTimeout(n),window.removeEventListener("message",o),a(h)}})}function Pe(){if(typeof window>"u"||window===window.parent)return;let t=e=>{if(e.data?.type==="GET_SOURCE_LOCATION_REQUEST")try{let s={type:"GET_SOURCE_LOCATION_RESPONSE",sourceLocation:Le(),requestId:e.data.requestId};window.parent.postMessage(s,e.origin)}catch(r){let s={type:"GET_SOURCE_LOCATION_RESPONSE",sourceLocation:null,error:r instanceof Error?r.message:"Unknown error",requestId:e.data.requestId};window.parent.postMessage(s,e.origin)}};return window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}}function Le(){return z("root")}var I=new T,$=class{constructor(e,r){this.endpointType="Desktop-web";this.payment=B;this.auth=new M(e,{fetchImpl:P,storage:I}),this.httpClient=new F(I,P,r),this.fileStorage=new W(e,this.httpClient),this.entities=D(e,this.httpClient),this.functions=new j(this.httpClient,e)}};0&&(module.exports={disableIframeHoverInspector,enableIframeHoverInspector,getIframeSourceLocation,localStorage,setupIframeHoverInspector,setupIframeSourceLocationListener,webFetch});
package/dist/index.mjs CHANGED
@@ -33,4 +33,4 @@ ${l.stack}`)}else{var f;o=(f=i?.stack)!==null&&f!==void 0?f:""}let w=this.url.to
33
33
  max-width: 400px;
34
34
  word-break: break-all;
35
35
  }
36
- `,document.head.appendChild(t)}createTooltip(){return this.tooltip?this.tooltip:(this.tooltip=document.createElement("div"),this.tooltip.id="__nvwa-inspector-tooltip",document.body.appendChild(this.tooltip),this.tooltip)}createOverlay(t){let e=document.createElement("div");return e.className=`__nvwa-inspector-overlay __nvwa-inspector-overlay-${t}`,document.body.appendChild(e),e}updateOverlayPosition(t,e){if(!e.isConnected)return;let r=e.getBoundingClientRect(),s=window.scrollX||window.pageXOffset,a=window.scrollY||window.pageYOffset;r.width>0&&r.height>0?(t.style.left=`${r.left+s}px`,t.style.top=`${r.top+a}px`,t.style.width=`${r.width}px`,t.style.height=`${r.height}px`,t.style.display="block"):t.style.display="none"}removeOverlay(t){t&&t.parentNode&&t.parentNode.removeChild(t)}highlightElement(t,e){if(!t.isConnected)return;if(this.hoverElement===t&&this.hoverOverlay){this.updateOverlayPosition(this.hoverOverlay,t);let n=this.createTooltip();e?n.textContent=e:n.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,n.style.display="block";let o=t.getBoundingClientRect();n.style.left=`${o.left+window.scrollX}px`,n.style.top=`${o.top+window.scrollY-n.offsetHeight-8}px`,o.top<n.offsetHeight+8&&(n.style.top=`${o.bottom+window.scrollY+8}px`);return}this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null);let r=this.createOverlay("hover");this.updateOverlayPosition(r,t),this.hoverOverlay=r,this.hoverElement=t;let s=()=>{this.hoverOverlay&&this.hoverElement&&this.hoverElement.isConnected&&this.updateOverlayPosition(this.hoverOverlay,this.hoverElement)};this.hoverUpdateHandler&&(window.removeEventListener("scroll",this.hoverUpdateHandler,!0),window.removeEventListener("resize",this.hoverUpdateHandler)),this.hoverUpdateHandler=s,window.addEventListener("scroll",s,!0),window.addEventListener("resize",s);let a=this.createTooltip();e?a.textContent=e:a.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,a.style.display="block";let i=t.getBoundingClientRect();a.style.left=`${i.left+window.scrollX}px`,a.style.top=`${i.top+window.scrollY-a.offsetHeight-8}px`,i.top<a.offsetHeight+8&&(a.style.top=`${i.bottom+window.scrollY+8}px`)}selectElement(t,e){if(!t.isConnected)return;if(this.selectedElement===t&&this.selectedOverlay){this.updateOverlayPosition(this.selectedOverlay,t);return}this.selectedOverlay&&(this.removeOverlay(this.selectedOverlay),this.selectedOverlay=null);let r=this.createOverlay("selected");this.updateOverlayPosition(r,t),this.selectedOverlay=r,this.selectedElement=t;let s=()=>{this.selectedOverlay&&this.selectedElement&&this.selectedElement.isConnected&&this.updateOverlayPosition(this.selectedOverlay,this.selectedElement)};this.selectedUpdateHandler&&(window.removeEventListener("scroll",this.selectedUpdateHandler,!0),window.removeEventListener("resize",this.selectedUpdateHandler)),this.selectedUpdateHandler=s,window.addEventListener("scroll",s,!0),window.addEventListener("resize",s)}removeHighlight(){this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null),this.hoverElement&&(this.hoverElement=null),this.tooltip&&(this.tooltip.style.display="none"),this.hoverUpdateHandler&&(window.removeEventListener("scroll",this.hoverUpdateHandler,!0),window.removeEventListener("resize",this.hoverUpdateHandler),this.hoverUpdateHandler=null)}clearSelection(){this.selectedOverlay&&(this.removeOverlay(this.selectedOverlay),this.selectedOverlay=null),this.selectedElement&&(this.selectedElement=null),this.selectedUpdateHandler&&(window.removeEventListener("scroll",this.selectedUpdateHandler,!0),window.removeEventListener("resize",this.selectedUpdateHandler),this.selectedUpdateHandler=null)}cleanup(){this.removeHighlight(),this.clearSelection(),this.tooltip&&this.tooltip.parentNode&&(this.tooltip.parentNode.removeChild(this.tooltip),this.tooltip=null);let t=document.getElementById("__nvwa-inspector-overlay-style");t&&t.parentNode&&t.parentNode.removeChild(t)}};function G(t="root"){if(typeof document>"u")return null;let e=document.getElementById(t)||document.body;if(!e)return null;let r=e.querySelector("[data-source-location]");if(r){let s=r.getAttribute("data-source-location");if(s)return s}if(e.firstElementChild){let s=e.firstElementChild.getAttribute("data-source-location");if(s)return s}return null}function J(t){let e=t;if(typeof e.kind=="string")return e;if(typeof e.tradeNO=="string")return{kind:"alipay_miniprogram",tradeNO:e.tradeNO};if(typeof e.clientSecret=="string")return{kind:"stripe_client_secret",clientSecret:e.clientSecret};if(typeof e.redirectUrl=="string")return{kind:"redirect_url",redirectUrl:e.redirectUrl};if(typeof e.formHtml=="string")return{kind:"alipay_page",formHtml:e.formHtml};if(typeof e.codeUrl=="string")return{kind:"wechat_native_qr",codeUrl:e.codeUrl};let r=e.jsapiPayParams??e;return typeof r.timeStamp=="string"&&typeof r.nonceStr=="string"&&typeof r.package=="string"&&typeof r.paySign=="string"&&typeof r.appId=="string"?{kind:"wechat_jsapi",mode:"jsapi",jsapiPayParams:{appId:r.appId,timeStamp:r.timeStamp,nonceStr:r.nonceStr,package:r.package,signType:r.signType??"RSA",paySign:r.paySign}}:null}var T=class{constructor(){this.prefix="nvwa_"}getKey(e){return`${this.prefix}${e}`}async get(e){try{let r=this.getKey(e),s=localStorage.getItem(r);if(!s)return null;let a=JSON.parse(s);return a.expires&&Date.now()>a.expires?(await this.remove(e),null):a.value}catch(r){return console.error("WebStorageService get error:",r),null}}async set(e,r,s){try{let a=this.getKey(e),i={value:r,expires:s?Date.now()+s*1e3:null,timestamp:Date.now()};localStorage.setItem(a,JSON.stringify(i))}catch(a){throw console.error("WebStorageService set error:",a),a}}async remove(e){try{let r=this.getKey(e);localStorage.removeItem(r)}catch(r){throw console.error("WebStorageService remove error:",r),r}}async clear(){try{Object.keys(localStorage).filter(s=>s.startsWith(this.prefix)).forEach(s=>{localStorage.removeItem(s)})}catch(e){throw console.error("WebStorageService clear error:",e),e}}};var de=(t,e)=>{let r;if(typeof t=="string")r=t;else if(t&&typeof t.toString=="function")r=t.toString();else if(t?.url)r=t.url;else throw new Error("Invalid input for webFetch");let s;if(e?.headers){let i=e.headers;if(i instanceof y){let n={};i.forEach((o,u)=>{n[u]=o}),s=n}else if(Array.isArray(i)){let n=[];for(let o of i)Array.isArray(o)&&o.length>=2&&n.push([String(o[0]),String(o[1])]);s=n}else typeof i=="object"&&(s=i)}let a={method:e?.method||"GET",headers:s,body:e?.body,credentials:e?.credentials};return e?.signal&&(a.signal=e.signal),globalThis.fetch(r,a).then(async i=>{let n=i.headers.get("content-type")||"",o;if(n.includes("application/json"))o=await i.json();else{let h=await i.text();try{o=JSON.parse(h)}catch{o=h}}let u=new y;return i.headers.forEach((h,l)=>{u.set(l,h)}),new R(o,{status:i.status,statusText:i.statusText,headers:u})})},$=de;function pe(t){return`https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(t)}`}var z={async requestPayment(t,e){let r=J(t);if(r?.kind==="redirect_url"){window.location.href=r.redirectUrl;return}if(r?.kind==="wechat_native_qr"){let a=pe(r.codeUrl);window.open(a,"_blank","noopener,noreferrer");return}if(r?.kind==="alipay_page"){let a=window.open("","_blank");a&&(a.document.write(r.formHtml),a.document.close());return}let s=new Error("requestPayment: unsupported payParams for Desktop-web");throw e?.onFailure?.(s),s}};function Ge(){if(typeof window>"u"||window===window.parent)return;let t=!1,e=new D;function r(h){if(!h)return!1;let l=h.toLowerCase();return l.includes("/components/")||l.includes("\\components\\")}function s(h){let l=h,c=null;for(;l;){let d=l.getAttribute("data-source-location");if(d)if(r(d)){c||(c=d),l=l.parentElement;continue}else return d;l=l.parentElement}return c}let a=null;function i(h){t&&(a!==null&&cancelAnimationFrame(a),a=requestAnimationFrame(()=>{let l=h.target;if(!l||l===document.body||l===document.documentElement){e.removeHighlight();return}if(l.tagName.toLowerCase()==="img"){let p=s(l);e.highlightElement(l,p);let f={type:"HOVER_INSPECTOR_ELEMENT_HOVER",sourceLocation:p,elementInfo:{tagName:l.tagName.toLowerCase(),className:l.className||"",id:l.id||""}};window.parent.postMessage(f,"*");return}let c=l,d=s(l);if(!d){let p=l.parentElement;for(;p&&p!==document.body&&p!==document.documentElement;){let f=s(p);if(f){c=p,d=f;break}p=p.parentElement}}e.highlightElement(c,d);let m={type:"HOVER_INSPECTOR_ELEMENT_HOVER",sourceLocation:d,elementInfo:{tagName:c.tagName.toLowerCase(),className:c.className||"",id:c.id||""}};window.parent.postMessage(m,"*")}))}function n(){if(!t)return;e.removeHighlight();let h={type:"HOVER_INSPECTOR_ELEMENT_LEAVE"};window.parent.postMessage(h,"*")}function o(h){if(!t)return;h.preventDefault(),h.stopPropagation();let l=h.target;if(!l||l===document.body||l===document.documentElement)return;let c=s(l);e.selectElement(l,c);let d={type:"HOVER_INSPECTOR_ELEMENT_SELECT",sourceLocation:c,elementInfo:{tagName:l.tagName.toLowerCase(),className:l.className||"",id:l.id||""}};window.parent.postMessage(d,"*")}function u(h){h.data?.type==="HOVER_INSPECTOR_ENABLE"?(t=!0,document.addEventListener("mousemove",i),document.addEventListener("mouseleave",n),document.addEventListener("click",o,!0)):h.data?.type==="HOVER_INSPECTOR_DISABLE"&&(t=!1,document.removeEventListener("mousemove",i),document.removeEventListener("mouseleave",n),document.removeEventListener("click",o,!0),e.removeHighlight(),e.clearSelection())}return window.addEventListener("message",u),()=>{window.removeEventListener("message",u),document.removeEventListener("mousemove",i),document.removeEventListener("mouseleave",n),document.removeEventListener("click",o,!0),e.cleanup()}}function Je(t,e){if(!t||!t.contentWindow)throw new Error("Invalid iframe element");let r={type:"HOVER_INSPECTOR_ENABLE"};t.contentWindow.postMessage(r,e)}function ze(t,e){if(!t||!t.contentWindow)return;let r={type:"HOVER_INSPECTOR_DISABLE"};t.contentWindow.postMessage(r,e)}function Be(t,e,r=5e3){return new Promise((s,a)=>{if(!t||!t.contentWindow){a(new Error("Invalid iframe element"));return}let i=`source-location-${Date.now()}-${Math.random()}`,n=setTimeout(()=>{window.removeEventListener("message",o),a(new Error("Request timeout"))},r),o=h=>{h.origin===e&&h.data?.type==="GET_SOURCE_LOCATION_RESPONSE"&&h.data?.requestId===i&&(clearTimeout(n),window.removeEventListener("message",o),h.data.error?a(new Error(h.data.error)):s(h.data.sourceLocation||null))};window.addEventListener("message",o);let u={type:"GET_SOURCE_LOCATION_REQUEST",requestId:i};try{t.contentWindow.postMessage(u,e)}catch(h){clearTimeout(n),window.removeEventListener("message",o),a(h)}})}function Ke(){if(typeof window>"u"||window===window.parent)return;let t=e=>{if(e.data?.type==="GET_SOURCE_LOCATION_REQUEST")try{let s={type:"GET_SOURCE_LOCATION_RESPONSE",sourceLocation:me(),requestId:e.data.requestId};window.parent.postMessage(s,e.origin)}catch(r){let s={type:"GET_SOURCE_LOCATION_RESPONSE",sourceLocation:null,error:r instanceof Error?r.message:"Unknown error",requestId:e.data.requestId};window.parent.postMessage(s,e.origin)}};return window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}}function me(){return G("root")}var B=new T,C=class{constructor(e,r){this.endpointType="Desktop-web";this.payment=z;this.auth=new j(e,{fetchImpl:$,storage:B}),this.httpClient=new M(B,$,r),this.fileStorage=new F(e,this.httpClient),this.entities=q(e,this.httpClient),this.functions=new H(this.httpClient,e)}};export{C as default,ze as disableIframeHoverInspector,Je as enableIframeHoverInspector,Be as getIframeSourceLocation,B as localStorage,Ge as setupIframeHoverInspector,Ke as setupIframeSourceLocationListener,$ as webFetch};
36
+ `,document.head.appendChild(t)}createTooltip(){return this.tooltip?this.tooltip:(this.tooltip=document.createElement("div"),this.tooltip.id="__nvwa-inspector-tooltip",document.body.appendChild(this.tooltip),this.tooltip)}createOverlay(t){let e=document.createElement("div");return e.className=`__nvwa-inspector-overlay __nvwa-inspector-overlay-${t}`,document.body.appendChild(e),e}updateOverlayPosition(t,e){if(!e.isConnected)return;let r=e.getBoundingClientRect(),s=window.scrollX||window.pageXOffset,a=window.scrollY||window.pageYOffset;r.width>0&&r.height>0?(t.style.left=`${r.left+s}px`,t.style.top=`${r.top+a}px`,t.style.width=`${r.width}px`,t.style.height=`${r.height}px`,t.style.display="block"):t.style.display="none"}removeOverlay(t){t&&t.parentNode&&t.parentNode.removeChild(t)}highlightElement(t,e){if(!t.isConnected)return;if(this.hoverElement===t&&this.hoverOverlay){this.updateOverlayPosition(this.hoverOverlay,t);let n=this.createTooltip();e?n.textContent=e:n.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,n.style.display="block";let o=t.getBoundingClientRect();n.style.left=`${o.left+window.scrollX}px`,n.style.top=`${o.top+window.scrollY-n.offsetHeight-8}px`,o.top<n.offsetHeight+8&&(n.style.top=`${o.bottom+window.scrollY+8}px`);return}this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null);let r=this.createOverlay("hover");this.updateOverlayPosition(r,t),this.hoverOverlay=r,this.hoverElement=t;let s=()=>{this.hoverOverlay&&this.hoverElement&&this.hoverElement.isConnected&&this.updateOverlayPosition(this.hoverOverlay,this.hoverElement)};this.hoverUpdateHandler&&(window.removeEventListener("scroll",this.hoverUpdateHandler,!0),window.removeEventListener("resize",this.hoverUpdateHandler)),this.hoverUpdateHandler=s,window.addEventListener("scroll",s,!0),window.addEventListener("resize",s);let a=this.createTooltip();e?a.textContent=e:a.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,a.style.display="block";let i=t.getBoundingClientRect();a.style.left=`${i.left+window.scrollX}px`,a.style.top=`${i.top+window.scrollY-a.offsetHeight-8}px`,i.top<a.offsetHeight+8&&(a.style.top=`${i.bottom+window.scrollY+8}px`)}selectElement(t,e){if(!t.isConnected)return;if(this.selectedElement===t&&this.selectedOverlay){this.updateOverlayPosition(this.selectedOverlay,t);return}this.selectedOverlay&&(this.removeOverlay(this.selectedOverlay),this.selectedOverlay=null);let r=this.createOverlay("selected");this.updateOverlayPosition(r,t),this.selectedOverlay=r,this.selectedElement=t;let s=()=>{this.selectedOverlay&&this.selectedElement&&this.selectedElement.isConnected&&this.updateOverlayPosition(this.selectedOverlay,this.selectedElement)};this.selectedUpdateHandler&&(window.removeEventListener("scroll",this.selectedUpdateHandler,!0),window.removeEventListener("resize",this.selectedUpdateHandler)),this.selectedUpdateHandler=s,window.addEventListener("scroll",s,!0),window.addEventListener("resize",s)}removeHighlight(){this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null),this.hoverElement&&(this.hoverElement=null),this.tooltip&&(this.tooltip.style.display="none"),this.hoverUpdateHandler&&(window.removeEventListener("scroll",this.hoverUpdateHandler,!0),window.removeEventListener("resize",this.hoverUpdateHandler),this.hoverUpdateHandler=null)}clearSelection(){this.selectedOverlay&&(this.removeOverlay(this.selectedOverlay),this.selectedOverlay=null),this.selectedElement&&(this.selectedElement=null),this.selectedUpdateHandler&&(window.removeEventListener("scroll",this.selectedUpdateHandler,!0),window.removeEventListener("resize",this.selectedUpdateHandler),this.selectedUpdateHandler=null)}cleanup(){this.removeHighlight(),this.clearSelection(),this.tooltip&&this.tooltip.parentNode&&(this.tooltip.parentNode.removeChild(this.tooltip),this.tooltip=null);let t=document.getElementById("__nvwa-inspector-overlay-style");t&&t.parentNode&&t.parentNode.removeChild(t)}};function G(t="root"){if(typeof document>"u")return null;let e=document.getElementById(t)||document.body;if(!e)return null;let r=e.querySelector("[data-source-location]");if(r){let s=r.getAttribute("data-source-location");if(s)return s}if(e.firstElementChild){let s=e.firstElementChild.getAttribute("data-source-location");if(s)return s}return null}function z(t){let e=t;if(typeof e.kind=="string")return e;if(typeof e.tradeNO=="string")return{kind:"alipay_miniprogram",tradeNO:e.tradeNO};if(typeof e.clientSecret=="string")return{kind:"stripe_client_secret",clientSecret:e.clientSecret};if(typeof e.redirectUrl=="string")return{kind:"redirect_url",redirectUrl:e.redirectUrl};if(typeof e.formHtml=="string")return{kind:"alipay_page",formHtml:e.formHtml};if(typeof e.codeUrl=="string")return{kind:"wechat_native_qr",codeUrl:e.codeUrl};let r=e.jsapiPayParams??e;return typeof r.timeStamp=="string"&&typeof r.nonceStr=="string"&&typeof r.package=="string"&&typeof r.paySign=="string"&&typeof r.appId=="string"?{kind:"wechat_jsapi",mode:"jsapi",jsapiPayParams:{appId:r.appId,timeStamp:r.timeStamp,nonceStr:r.nonceStr,package:r.package,signType:r.signType??"RSA",paySign:r.paySign}}:null}var T=class{constructor(){this.prefix="nvwa_"}getKey(e){return`${this.prefix}${e}`}async get(e){try{let r=this.getKey(e),s=localStorage.getItem(r);if(!s)return null;let a=JSON.parse(s);return a.expires&&Date.now()>a.expires?(await this.remove(e),null):a.value}catch(r){return console.error("WebStorageService get error:",r),null}}async set(e,r,s){try{let a=this.getKey(e),i={value:r,expires:s?Date.now()+s*1e3:null,timestamp:Date.now()};localStorage.setItem(a,JSON.stringify(i))}catch(a){throw console.error("WebStorageService set error:",a),a}}async remove(e){try{let r=this.getKey(e);localStorage.removeItem(r)}catch(r){throw console.error("WebStorageService remove error:",r),r}}async clear(){try{Object.keys(localStorage).filter(s=>s.startsWith(this.prefix)).forEach(s=>{localStorage.removeItem(s)})}catch(e){throw console.error("WebStorageService clear error:",e),e}}};var de=(t,e)=>{let r;if(typeof t=="string")r=t;else if(t&&typeof t.toString=="function")r=t.toString();else if(t?.url)r=t.url;else throw new Error("Invalid input for webFetch");let s;if(e?.headers){let i=e.headers;if(i instanceof y){let n={};i.forEach((o,u)=>{n[u]=o}),s=n}else if(Array.isArray(i)){let n=[];for(let o of i)Array.isArray(o)&&o.length>=2&&n.push([String(o[0]),String(o[1])]);s=n}else typeof i=="object"&&(s=i)}let a={method:e?.method||"GET",headers:s,body:e?.body,credentials:e?.credentials};return e?.signal&&(a.signal=e.signal),globalThis.fetch(r,a).then(async i=>{let n=i.headers.get("content-type")||"",o;if(n.includes("application/json"))o=await i.json();else{let h=await i.text();try{o=JSON.parse(h)}catch{o=h}}let u=new y;return i.headers.forEach((h,l)=>{u.set(l,h)}),new R(o,{status:i.status,statusText:i.statusText,headers:u})})},$=de;function pe(t){return`https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(t)}`}var J={async requestPayment(t,e){let r=z(t);if(r?.kind==="redirect_url"){window.location.href=r.redirectUrl;return}if(r?.kind==="wechat_native_qr"){let a=pe(r.codeUrl);window.open(a,"_blank","noopener,noreferrer");return}if(r?.kind==="alipay_page"){let a=window.open("","_blank");a&&(a.document.write(r.formHtml),a.document.close());return}let s=new Error("requestPayment: unsupported payParams for Desktop-web");throw e?.onFailure?.(s),s}};function Ge(){if(typeof window>"u"||window===window.parent)return;let t=!1,e=new D;function r(h){if(!h)return!1;let l=h.toLowerCase();return l.includes("/components/")||l.includes("\\components\\")}function s(h){let l=h,c=null;for(;l;){let d=l.getAttribute("data-source-location");if(d)if(r(d)){c||(c=d),l=l.parentElement;continue}else return d;l=l.parentElement}return c}let a=null;function i(h){t&&(a!==null&&cancelAnimationFrame(a),a=requestAnimationFrame(()=>{let l=h.target;if(!l||l===document.body||l===document.documentElement){e.removeHighlight();return}if(l.tagName.toLowerCase()==="img"){let p=s(l);e.highlightElement(l,p);let f={type:"HOVER_INSPECTOR_ELEMENT_HOVER",sourceLocation:p,elementInfo:{tagName:l.tagName.toLowerCase(),className:l.className||"",id:l.id||""}};window.parent.postMessage(f,"*");return}let c=l,d=s(l);if(!d){let p=l.parentElement;for(;p&&p!==document.body&&p!==document.documentElement;){let f=s(p);if(f){c=p,d=f;break}p=p.parentElement}}e.highlightElement(c,d);let m={type:"HOVER_INSPECTOR_ELEMENT_HOVER",sourceLocation:d,elementInfo:{tagName:c.tagName.toLowerCase(),className:c.className||"",id:c.id||""}};window.parent.postMessage(m,"*")}))}function n(){if(!t)return;e.removeHighlight();let h={type:"HOVER_INSPECTOR_ELEMENT_LEAVE"};window.parent.postMessage(h,"*")}function o(h){if(!t)return;h.preventDefault(),h.stopPropagation();let l=h.target;if(!l||l===document.body||l===document.documentElement)return;let c=s(l);e.selectElement(l,c);let d={type:"HOVER_INSPECTOR_ELEMENT_SELECT",sourceLocation:c,elementInfo:{tagName:l.tagName.toLowerCase(),className:l.className||"",id:l.id||""}};window.parent.postMessage(d,"*")}function u(h){h.data?.type==="HOVER_INSPECTOR_ENABLE"?(t=!0,document.addEventListener("mousemove",i),document.addEventListener("mouseleave",n),document.addEventListener("click",o,!0)):h.data?.type==="HOVER_INSPECTOR_DISABLE"&&(t=!1,document.removeEventListener("mousemove",i),document.removeEventListener("mouseleave",n),document.removeEventListener("click",o,!0),e.removeHighlight(),e.clearSelection())}return window.addEventListener("message",u),()=>{window.removeEventListener("message",u),document.removeEventListener("mousemove",i),document.removeEventListener("mouseleave",n),document.removeEventListener("click",o,!0),e.cleanup()}}function ze(t,e){if(!t||!t.contentWindow)throw new Error("Invalid iframe element");let r={type:"HOVER_INSPECTOR_ENABLE"};t.contentWindow.postMessage(r,e)}function Je(t,e){if(!t||!t.contentWindow)return;let r={type:"HOVER_INSPECTOR_DISABLE"};t.contentWindow.postMessage(r,e)}function Be(t,e,r=5e3){return new Promise((s,a)=>{if(!t||!t.contentWindow){a(new Error("Invalid iframe element"));return}let i=`source-location-${Date.now()}-${Math.random()}`,n=setTimeout(()=>{window.removeEventListener("message",o),a(new Error("Request timeout"))},r),o=h=>{h.origin===e&&h.data?.type==="GET_SOURCE_LOCATION_RESPONSE"&&h.data?.requestId===i&&(clearTimeout(n),window.removeEventListener("message",o),h.data.error?a(new Error(h.data.error)):s(h.data.sourceLocation||null))};window.addEventListener("message",o);let u={type:"GET_SOURCE_LOCATION_REQUEST",requestId:i};try{t.contentWindow.postMessage(u,e)}catch(h){clearTimeout(n),window.removeEventListener("message",o),a(h)}})}function Ke(){if(typeof window>"u"||window===window.parent)return;let t=e=>{if(e.data?.type==="GET_SOURCE_LOCATION_REQUEST")try{let s={type:"GET_SOURCE_LOCATION_RESPONSE",sourceLocation:me(),requestId:e.data.requestId};window.parent.postMessage(s,e.origin)}catch(r){let s={type:"GET_SOURCE_LOCATION_RESPONSE",sourceLocation:null,error:r instanceof Error?r.message:"Unknown error",requestId:e.data.requestId};window.parent.postMessage(s,e.origin)}};return window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}}function me(){return G("root")}var B=new T,C=class{constructor(e,r){this.endpointType="Desktop-web";this.payment=J;this.auth=new j(e,{fetchImpl:$,storage:B}),this.httpClient=new M(B,$,r),this.fileStorage=new F(e,this.httpClient),this.entities=q(e,this.httpClient),this.functions=new H(this.httpClient,e)}};export{C as default,Je as disableIframeHoverInspector,ze as enableIframeHoverInspector,Be as getIframeSourceLocation,B as localStorage,Ge as setupIframeHoverInspector,Ke as setupIframeSourceLocationListener,$ as webFetch};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nvwa-app/sdk-web",
3
- "version": "6.12.0",
3
+ "version": "6.13.0",
4
4
  "description": "NVWA跨端通用工具类Web端实现",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",