Property("open",r,globalThis,!0),defineStrictProperty("open",((e,o,n)=>e?r(e,o,n):t.call(document,e,o,n)),document,!0)},o=document.createElement,n=(t,r)=>{const n=o.call(document,t,r),c=Element.prototype.setAttribute,i=Element.prototype.setAttributeNS;if("iframe"===e(t)){globalThis.defineStrictProperty("srcdoc",{get:()=>{},set:()=>{console.error("`srcdoc` is not allowed in iframe elements.")}},n,!1);const e=function(e,t){"srcdoc"!==e.toLowerCase()?c.call(n,e,t):console.error("`srcdoc` attribute is not allowed to be set.")},t=function(e,t,r){"srcdoc"!==t.toLowerCase()?i.call(n,e,t,r):console.error("`srcdoc` attribute is not allowed to be set.")};n.setAttribute=e,n.setAttributeNS=t}return n},c="client-binding",i="security_overrideGlobals",s=["/_api/v1/access-tokens","/_api/v2/dynamicmodel"],a=e=>(e instanceof Headers?e.forEach(((t,r)=>{decodeURIComponent(r).toLowerCase()===c&&e.delete(r)})):Object.keys(e).forEach((t=>{decodeURIComponent(t).toLowerCase()===c&&delete e[t]})),e),l=t=>{let r=!0;const o=(e=>{let t,r;if(globalThis.Request&&e instanceof Request)t=e.url;else{if("function"!=typeof e?.toString)throw new Error("Unsupported type for url");t=e.toString()}try{return new URL(t).pathname}catch(e){return r=t.replace(/#.+/gi,"").split("?").shift(),r.startsWith("/")?r:`/${r}`}})(t),n=e(o);return s.some((e=>n.includes(e)))&&(r=!1),r},d=(e=globalThis)=>{const t=fetch;e.defineStrictProperty("fetch",(function(){const r=(o=arguments,globalThis.Request&&o[0]instanceof Request&&o[0]?.headers?a(o[0].headers):o[1]?.headers&&a(o[1].headers),o);var o;return l(arguments[0])?t.apply(e,Array.from(r)):new Promise(((e,t)=>{const r=new Error("TB002");window.fedops?.reportError(r,i),t(r)}))}))},p=(e,t)=>{const r=e.map((e=>t[e]?.prototype)).filter(Boolean),o=Object.defineProperty;Object.defineProperty=function(e,t,n){if(r.includes(e))throw new TypeError(`Cannot modify ${e.name}.prototype: it is frozen`);return o.call(this,e,t,n)}},{ownKeys:u}=Reflect,b=(e,t,r,o)=>{if("value"in r&&r.configurable){const{value:n,enumerable:c}=r;Object.defineProperty(e,t,{get:()=>n,set(r){e===this&&console.warn(`Cannot assign to read-only property '${String(t)}' of '${o}.prototype'`),Object.defineProperty(this,t,{value:r,writable:!0,enumerable:!0,configurable:!0})},enumerable:c,configurable:!1})}},f=(e,t,r=[])=>{const o=t[e],{enumerable:n}=Object.getOwnPropertyDescriptor(t,e)||{enumerable:!1};globalThis.defineStrictProperty(e,o,t,n);const c=o?.prototype;if(c){const t=Object.getOwnPropertyDescriptors(c);Object.keys(t).forEach((r=>{const o=t[r];o&&b(c,r,o,e)}))}u(o).forEach((e=>{const t=Object.getOwnPropertyDescriptor(o,e);t&&!r.includes(e)&&(t.writable||t.configurable)&&globalThis.defineStrictProperty(e.toString(),o[e],o,t.enumerable)}))};performance.mark("overrideGlobals started");const{isExcludedFromSecurityExperiments:h,experiments:g}=window.viewerModel;try{((e=globalThis)=>{Object.defineProperty(e,"defineStrictProperty",{value:t,writable:!1,enumerable:!1,configurable:!1})})(),r(),g["specs.thunderbolt.hardenIFrames"]&&!h&&globalThis.defineStrictProperty("createElement",n,document,!0),g["specs.thunderbolt.hardenFetchAndXHR"]&&!h&&(d(),((e=globalThis)=>{const t=XMLHttpRequest;e.defineStrictProperty("XMLHttpRequest",(function(){const e=new t,r=e.open,o=e.setRequestHeader;return e.open=function(){if(arguments.length<2||l(arguments[1]))return r.apply(e,Array.from(arguments));{const e=new Error("TB002");throw window.fedops?.reportError(e,i),e}},e.setRequestHeader=function(t,r){decodeURIComponent(t).toLowerCase()!==c&&o.call(e,t,r)},e}))})()),(e=>{let t=[],r=[],o=[];const{experiments:n}=window.viewerModel;n["specs.thunderbolt.softFreeze_TextDecoder_TextEncoder"]?o=o.concat(["TextEncoder","TextDecoder"]):t=t.concat(["TextEncoder","TextDecoder"]),n["specs.thunderbolt.hardenClientGlobals_EventTarget"]&&!e&&(o=o.concat(["XMLHttpRequestEventTarget","EventTarget"])),n["specs.thunderbolt.softFreeze_Array_URL_JSON"]?o=o.concat(["Array","URL","JSON"]):t=t.concat(["Array","URL","JSON"]),n["specs.thunderbolt.hardenClientGlobals_EventListener"]&&!e&&(r=r.concat(["addEventListener","removeEventListener"])),n["specs.thunderbolt.hardenEncodingDecoding"]&&(r=r.concat(["encodeURI","encodeURIComponent","decodeURI","decodeURIComponent"])),n["specs.thunderbolt.hardenStringAndNumber"]&&(o=o.concat(["String","Number"])),n["specs.thunderbolt.hardenObject"]&&o.push("Object"),t.forEach((e=>{const t=Object.freeze(globalThis[e]);t.hasOwnProperty("prototype")&&"Array"!==e&&Object.freeze(t.prototype),globalThis.defineStrictProperty(e,globalThis[e],globalThis,!0)})),r.forEach((e=>{Object.freeze(globalThis[e]),["addEventListener","removeEventListener"].includes(e)&&globalThis.defineStrictProperty(e,document[e],document,!0),globalThis.defineStrictProperty(e,globalThis[e],globalThis,!0)})),o.forEach((e=>{f(e,globalThis,["defineProperty"])})),p(o,globalThis)})(h),g["specs.thunderbolt.hardenTimeout"]&&!h&&(defineStrictProperty("preventStringArgument",((e,t,r)=>{const o=r||globalThis,n=o[e];defineStrictProperty(e,(function(){const r=Array.from(arguments);if("string"!=typeof r[t])return n.apply(o,r);console.warn(`Calling ${e} with a String Argument at index ${t} is not allowed`)}),o)})),preventStringArgument("setTimeout",0),preventStringArgument("setInterval",0))}catch(e){window?.viewerModel?.mode.debug&&console.error(e);const t=new Error("TB006");window.fedops?.reportError(t,"security_overrideGlobals"),window.Sentry?window.Sentry.captureException(t):globalThis.defineStrictProperty("sentryBuffer",[t],window,!1)}performance.mark("overrideGlobals ended")})(); //# sourceMappingURL=https://static.parastorage.com/services/wix-thunderbolt/dist/overrideGlobals.inline.c89b4b9b.bundle.min.js.map
top of page
Work: Work
Work: Pro Gallery
bottom of page