New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@saasquatch/microsite-router

Package Overview
Dependencies
Maintainers
8
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@saasquatch/microsite-router - npm Package Compare versions

Comparing version

to
1.0.0-1

2

dist/bundle.js

@@ -1,1 +0,1 @@

function e(e){this.message=e}e.prototype=new Error,e.prototype.name="InvalidCharacterError";var t="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var n=String(t).replace(/=+$/,"");if(n.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for(var o,r,a=0,i=0,s="";r=n.charAt(i++);~r&&(o=a%4?64*o+r:r,a++%4)?s+=String.fromCharCode(255&o>>(-2*a&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return s};function n(e){var n=e.replace(/-/g,"+").replace(/_/g,"/");switch(n.length%4){case 0:break;case 2:n+="==";break;case 3:n+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(t(e).replace(/(.)/g,(function(e,t){var n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n="0"+n),"%"+n})))}(n)}catch(e){return t(n)}}function o(e){this.message=e}o.prototype=new Error,o.prototype.name="InvalidTokenError";function r(e){if(e)try{const t=function(e,t){if("string"!=typeof e)throw new o("Invalid token specified");var r=!0===(t=t||{}).header?0:1;try{return JSON.parse(n(e.split(".")[r]))}catch(e){throw new o("Invalid token specified: "+e.message)}}(e),r=t.exp;let a,i;if(function(e){return e.user&&e.user.id&&e.user.accountId}(t)&&(i=t.user.accountId,a=t.user.id),!a||!i)return;if(r&&Date.now()>=1e3*r)return;return{id:a,accountId:i,jwt:e}}catch(e){return}}const a=localStorage.getItem("debug");function i(e,...t){a&&console.debug(`sq:microsite:${e}`,...t)}const s={};let c=[];async function d(e){var t;const n=await async function(e,t){if(s[e])return i("fetchPage",`avoiding GraphQL call in lieu of cache for [${e}]`),s[e];try{const n=await fetch(`${window.SquatchPortal.appDomain}/api/v1/${window.SquatchPortal.tenantAlias}/graphql`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({operationName:"RenderMicrositePage",query:"\n query RenderMicrositePage($urlPath: String!, $locale: RSLocale) {\n renderMicrositePage(urlPath: $urlPath, locale: $locale) {\n micrositePageConfig {\n urlPath\n values\n allowedUsers\n disallowedUrlPath\n }\n micrositeLayoutConfigs {\n key\n values\n }\n }\n }\n",variables:{urlPath:e,locale:t}})});if(!n.ok)throw new Error("something bad happened");const o=await n.json();if(o.errors)throw new Error(JSON.stringify(o.errors,null,2));const r=o.data,a={page:r.renderMicrositePage.micrositePageConfig,layouts:r.renderMicrositePage.micrositeLayoutConfigs};return s[e]=a,a}catch(e){throw document.body.innerHTML=`\n <div style="padding: 12px;">\n <h3>Sorry, something went wrong</h3>\n <p>Please contact <a href="mailto:success@saasquatch.com">success@saasquatch.com</a>.</p>\n <p style="background-color: pink; padding: 12px; font-family: monospace; font-size: 12px;">${e.message}</p>\n </div>\n `,e}}(e),o=function(){const e=localStorage.getItem("sq:user-identity");if(e)try{const t=JSON.parse(e),n=r(t.jwt);return n?Object.assign(Object.assign({},t),n):void 0}catch(e){return}}();i("router",`routing to ${e}"`);const a=n.page.allowedUsers,d=n.page.disallowedUrlPath,l=o?(null===(t=o.managedIdentity)||void 0===t?void 0:t.emailVerified)?"VERIFIED":"UNVERIFIED":"PUBLIC";i("router",`pathname[${e}] userType[${l}] allowedUsers[${a}] disallowedUrlPath:[${d}]`),l!=a&&d?(i("router",`pathname[${e}] user is ${l}, but expected ${a}, redirecting to ${d}`),window.history.pushState(void 0,"",d)):function(e){const t=[];let n=document.body;c.length>0&&(c[c.length-1].element.innerHTML=""),[...e.layouts].reverse().forEach(((e,o)=>{var r;if((null===(r=c[o])||void 0===r?void 0:r.key)===e.key)i("render",`reusing element for layout [${e.key}]`),n=c[o].element,t.push({key:e.key,element:n});else{c.splice(o).forEach((e=>{i("render",`removing element for layout [${e.key}]`),e.element.remove()}));const r=document.createElement("div");r.style.display="contents",r.id=e.key,r.attachShadow({mode:"open"}),r.shadowRoot.innerHTML=e.values.html,n.appendChild(r),n=r,t.push({key:e.key,element:r}),i("render",`created element for layout [${e.key}]`)}})),n.innerHTML=e.page.values.html,document.title=e.page.values.title,c=t}(n)}window.addEventListener("load",(function(){function e(e){const t=window.history[e];return function(...n){const o=t.apply(window.history,n),r=new Event(e);return window.dispatchEvent(r),o}}history.pushState=e("pushState"),history.replaceState=e("replaceState"),window.addEventListener("popstate",(()=>d(window.location.pathname))),window.addEventListener("pushState",(()=>d(window.location.pathname))),window.addEventListener("replaceState",(()=>d(window.location.pathname))),window.history.replaceState(void 0,"","")}));
const t=localStorage.getItem("debug");function e(e,...n){t&&console.debug(`sq:microsite:${e}`,...n)}const n={};let o,i,r=[];async function s(){var t;let s=window.location.pathname;const a=await async function(t,o){if(n[t])return e("fetchPage",`avoiding GraphQL call in lieu of cache for [${t}]`),n[t];try{const e=await fetch(`${window.SquatchPortal.appDomain}/api/v1/${window.SquatchPortal.tenantAlias}/graphql`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({operationName:"RenderMicrositePage",query:"\n query RenderMicrositePage($urlPath: String!, $locale: RSLocale) {\n renderMicrositePage(urlPath: $urlPath, locale: $locale) {\n micrositePageConfig {\n urlPath\n values\n allowedUsers\n disallowedUrlPath\n }\n micrositeLayoutConfigs {\n key\n values\n }\n }\n }\n",variables:{urlPath:t,locale:o}})});if(!e.ok)throw new Error("something bad happened");const i=await e.json();if(i.errors)throw new Error(JSON.stringify(i.errors,null,2));const r=i.data,s={page:r.renderMicrositePage.micrositePageConfig,layouts:r.renderMicrositePage.micrositeLayoutConfigs};return n[t]=s,s}catch(t){throw document.body.innerHTML=`\n <div style="padding: 12px;">\n <h3>Sorry, something went wrong</h3>\n <p>Please contact <a href="mailto:success@saasquatch.com">success@saasquatch.com</a>.</p>\n <p style="background-color: pink; padding: 12px; font-family: monospace; font-size: 12px;">${t.message}</p>\n </div>\n `,t}}(s,i);e("router",`routing to ${s}"`);const c=a.page.allowedUsers,l=a.page.disallowedUrlPath,u=o?(null===(t=o.managedIdentity)||void 0===t?void 0:t.emailVerified)?"VERIFIED":"UNVERIFIED":"PUBLIC";e("router",`pathname[${s}] userType[${u}] allowedUsers[${c}] disallowedUrlPath:[${l}]`),u!=c&&l?(e("router",`pathname[${s}] user is ${u}, but expected ${c}, redirecting to ${l}`),window.history.pushState(void 0,"",l)):function(t){const n=[];let o=document.body;r.length>0&&(r[r.length-1].element.innerHTML=""),[...t.layouts].reverse().forEach(((t,i)=>{var s;if((null===(s=r[i])||void 0===s?void 0:s.key)===t.key)e("render",`reusing element for layout [${t.key}]`),o=r[i].element,n.push({key:t.key,element:o});else{r.splice(i).forEach((t=>{e("render",`removing element for layout [${t.key}]`),t.element.remove()}));const s=document.createElement("div");s.style.display="contents",s.id=t.key,s.attachShadow({mode:"open"}),s.shadowRoot.innerHTML=t.values.html,o.appendChild(s),o=s,n.push({key:t.key,element:s}),e("render",`created element for layout [${t.key}]`)}})),o.innerHTML=t.page.values.html,document.title=t.page.values.title,r=n}(a)}function a(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function c(t,e,n){return e&&a(t.prototype,e),n&&a(t,n),t}var l=function(){function t(t){var e=this,n=this;this._status="Initial",this.onChange=function(t){n.options.onChange&&n.options.onChange(t)},this.onConnect=function(t){try{return e.status="Connected",e.options.onChange&&e.options.onChange(t),Promise.resolve(new Promise((function(t){e.resolvePromise=t})))}catch(t){return Promise.reject(t)}},this.onDisconnect=function(){n.status="Connecting",n.start()},this.options=t}var e=t.prototype;return e.start=function(){var t=this,e=0;this.status="Connecting";var n=function(){return t.status},o=u(this.options.attempts)||10,i=function(){if("Connected"!==n()){var i=new CustomEvent(t.options.contextName,{bubbles:!0,cancelable:!0,composed:!0,detail:{onConnect:t.onConnect,onChange:t.onChange,onDisconnect:t.onDisconnect}});u(t.options.element).dispatchEvent(i),"Connected"!==n()?++e>=o&&(t._interval&&clearInterval(t._interval),t.status="Timeout"):"Connected"===n()&&t._interval&&clearInterval(t._interval)}};return(u(this.options.pollingMs)||100)>0&&o>1&&(this._interval=setInterval(i,u(this.options.pollingMs)||100)),i(),this},e.stop=function(){return this._interval&&clearInterval(this._interval),this.resolvePromise&&this.resolvePromise(),this.status="Initial",this},c(t,[{key:"status",set:function(t){this._status=t,this.options.onStatus&&this.options.onStatus(t)},get:function(){return this._status}}]),t}();function u(t){return"function"==typeof typeof t?t():t}!function(){function t(t){var e=this;this.__listeners=[],this.connectListener=function(t){try{t.stopPropagation(),e.__listeners=[].concat(e.__listeners,[t.detail]);var n=function(n,o){try{var i=Promise.resolve(t.detail.onConnect(e.__current)).then((function(){}))}catch(t){return o(!0,t)}return i&&i.then?i.then(o.bind(null,!1),o.bind(null,!0)):o(!1,i)}(0,(function(n,o){var i,r;if(e.__listeners=(r=(i=e.__listeners).indexOf(t.detail),i.slice(0,r).concat(i.slice(r+1,i.length))),n)throw o;return o}));return Promise.resolve(n&&n.then?n.then((function(){})):void 0)}catch(t){return Promise.reject(t)}},this.options=t,this.__current=u(t.initialState)}var e=t.prototype;e.start=function(){return u(this.options.element).addEventListener(this.options.contextName,this.connectListener),this},e.stop=function(){return u(this.options.element).removeEventListener(this.options.contextName,this.connectListener),this.__listeners.map((function(t){t.onDisconnect()})),this.__listeners=[],this},c(t,[{key:"context",set:function(t){this.__current=t,this.__listeners.forEach((function(e){return e.onChange(t)}))},get:function(){return u(this.__current)}},{key:"listeners",get:function(){return Object.freeze([].concat(this.__listeners))}}])}();const h=(()=>{const t="__context_listener";let e=document.getElementById(t);return e||(e=document.createElement("div"),e.id=t,document.documentElement.appendChild(e)),e})(),d=new l({contextName:"sq:user-identity",element:h,attempts:1/0,onChange:t=>{e("user-context",`old[${o}] new[${t}]`),function(t){o=t}(t)},onStatus:t=>{e("user-context",t)}}),p=new l({contextName:"sq:locale",element:h,attempts:1/0,onChange:t=>{(t&&!i||t&&i&&i!==t)&&(e("locale-context",`old[${i}] new[${t}]`),function(t){i=t}(t),s())},onStatus:t=>{e("locale-context",t)}});window.addEventListener("load",(function(){function t(t){const e=window.history[t];return function(...n){const o=e.apply(window.history,n),i=new Event(t);return window.dispatchEvent(i),o}}history.pushState=t("pushState"),history.replaceState=t("replaceState"),window.addEventListener("popstate",(()=>s())),window.addEventListener("pushState",(()=>s())),window.addEventListener("replaceState",(()=>s())),window.history.replaceState(void 0,"",""),d.start(),p.start()}));
{
"name": "@saasquatch/microsite-router",
"version": "1.0.0-0",
"version": "1.0.0-1",
"description": "SaaSquatch microsite client-side router and hierarchical layout renderer.",

@@ -19,2 +19,3 @@ "main": "dist/bundle.js",

"dependencies": {
"dom-context": "^1.2.0",
"jwt-decode": "^3.1.2",

@@ -21,0 +22,0 @@ "typescript": "^4.7.2"