@smart-cloud/gatey-core 2.3.1 → 2.3.2

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.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var b=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var Z=Object.prototype.hasOwnProperty;var ee=(e,t)=>{for(var n in t)b(e,n,{get:t[n],enumerable:!0})},te=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Q(t))!Z.call(e,r)&&r!==n&&b(e,r,{get:()=>t[r],enumerable:!(o=$(t,r))||o.enumerable});return e};var ne=e=>te(b({},"__esModule",{value:!0}),e);var fe={};ee(fe,{TEXT_DOMAIN:()=>B,clearMfaPreferences:()=>N,configureAmplify:()=>P,getAmplifyConfig:()=>T,getGateyPlugin:()=>u,getGroups:()=>E,getMfaPreferences:()=>_,getPreferredRole:()=>W,getRoles:()=>M,getScopes:()=>z,getStore:()=>l,getStoreDispatch:()=>d,getStoreSelect:()=>O,getUserAttributes:()=>L,initializeGatey:()=>de,isAuthenticated:()=>k,isInGroup:()=>D,loadAuthSession:()=>f,loadMFAPreferences:()=>G,loadUserAttributes:()=>F,login:()=>Y,logout:()=>w,observeStore:()=>S,sanitizeAuthenticatorConfig:()=>I,store:()=>pe,waitForGateyReady:()=>x});module.exports=ne(fe);var a=require("aws-amplify/api");function u(){return globalThis.WpSuite?.plugins?.gatey}async function x(e=8e3){let t=u();if(t?.status!=="available"){if(t?.status==="error")throw new Error("Gatey failed");await new Promise((n,o)=>{let r=()=>A(n),y=()=>A(()=>o(new Error("Gatey failed"))),A=c=>{window.removeEventListener("wpsuite:gatey:ready",r),window.removeEventListener("wpsuite:gatey:error",y),s&&clearTimeout(s),c()};window.addEventListener("wpsuite:gatey:ready",r,{once:!0}),window.addEventListener("wpsuite:gatey:error",y,{once:!0});let s=e?window.setTimeout(()=>A(()=>o(new Error("Gatey timeout"))),e):0})}}async function l(e=1e4){await x(e);let n=u()?.cognito?.store;if(!n)throw new Error("Gatey store is not available");return n}var v=require("aws-amplify"),i=require("aws-amplify/auth");var V=require("aws-amplify/auth"),R=require("aws-amplify/utils"),g=require("@wordpress/data"),j=require("@smart-cloud/wpsuite-core");var h="gatey_account",B="gatey";var U;typeof WpSuite<"u"?U=WpSuite.siteSettings:U={};var C=e=>{e?.username?window.localStorage.setItem(h,JSON.stringify(e)):window.localStorage.removeItem(h)},m=async e=>{let t=JSON.parse(window.localStorage.getItem(h)??"{}"),n=!1;if(t?.username)try{let o=await(0,V.fetchAuthSession)();o?.tokens?.accessToken?.payload?.exp&&o.tokens.accessToken.payload.exp>new Date().getTime()/1e3&&(n=!0)}catch(o){console.error(o)}else try{t=await X(!1),t?.username&&(C(t),t.loaded=!0,n=!0)}catch(o){console.error(o)}return!n&&t?.username&&(C({}),l().then(async o=>{await w(e?.signOutHook),d(o).clearAccount()})),t},oe=async e=>{let t=window.location.hostname.toLowerCase().split(":")[0],n=u();if(!n)throw new Error("Gatey plugin is not available");let o=n.settings?.secondaryUserPoolDomains&&t.toLowerCase().match(n.settings.secondaryUserPoolDomains.toLowerCase())&&n.settings?.userPoolConfigurations.secondary?.Auth?.Cognito?.userPoolId?n.settings?.userPoolConfigurations.secondary:n.settings?.userPoolConfigurations.default,r={Auth:{Cognito:{userPoolClientId:"",userPoolId:"",identityPoolId:"",...o.Auth?.Cognito,loginWith:{oauth:{domain:"",scopes:[],responseType:"code",...o.Auth?.Cognito?.loginWith?.oauth,redirectSignIn:[window.location.origin+n.settings?.signInPage],redirectSignOut:[window.location.origin+n.settings?.signInPage]}}}},API:{...o.API,REST:{...o.API?.REST,admin:{endpoint:n.restUrl}}}},y=e?.apiConfigurations?.secondary?.domains&&t.toLowerCase().match(e.apiConfigurations.secondary?.domains.toLowerCase())&&e.apiConfigurations?.secondary?.apis?.length?e.apiConfigurations.secondary:e?.apiConfigurations?.default;y?.apis?.forEach(s=>{let c=r.API?.REST;c&&(c[s.name]={endpoint:s.endpoint,region:s.region})}),P(r,{API:{REST:{headers:async s=>{let c=y?.apis?.find(p=>p.name===s.apiName);if(s.apiName==="admin"||c?.authorization==="ID_TOKEN"||c?.authorization==="ACCESS_TOKEN")try{let p=await f();if(p?.tokens?.idToken&&p?.tokens?.accessToken)return{Authorization:`Bearer ${s.apiName==="admin"||c?.authorization==="ID_TOKEN"?p.tokens.idToken.toString():p.tokens.accessToken.toString()}`}}catch(p){console.error(p),l().then(H=>{d(H).clearAccount()})}return{}}}}})},re=async()=>{let e=u();if(!e)throw new Error("Gatey plugin is not available");let t=null;return e.settings.customTranslationsUrl&&(t=await fetch(e.settings.customTranslationsUrl+(e.settings.customTranslationsUrl.includes("?")?"&":"?")+"t="+U.lastUpdate).then(n=>n.ok?n.text():null).then(n=>n?JSON.parse(n):null).catch(()=>null)),t??null},I=e=>{let t=e&&typeof e=="object"?e:{},n={customProviders:Array.isArray(t.customProviders)?t.customProviders:[],formFields:Array.isArray(t.formFields)?t.formFields:[],apiConfigurations:typeof t.apiConfigurations=="object"&&t.apiConfigurations?t.apiConfigurations:{default:{apis:[]}}};return typeof t.subscriptionType=="string"&&(n.subscriptionType=t.subscriptionType),n},ie=async()=>{let e=I(await(0,j.getConfig)("gatey"));oe(e);let t=window.location.hostname.toLowerCase().split(":")[0],n=e?.apiConfigurations?.secondary?.domains&&t.toLowerCase().match(e.apiConfigurations.secondary?.domains.toLowerCase())&&e.apiConfigurations?.secondary?.apis?.length?e.apiConfigurations.secondary:e?.apiConfigurations?.default,o=await m(n),r=await re();return{config:e,amplifyConfig:{},account:o,signedIn:!!o?.username&&!o.loaded,nextUrl:void 0,language:void 0,direction:void 0,customTranslations:r,reloadAuthSession:0,reloadUserAttributes:0,reloadMFAPreferences:0}},se={setAmplifyConfig(e){return{type:"SET_AMPLIFY_CONFIG",amplifyConfig:e}},setAccount(e){return{type:"SET_ACCOUNT",account:e}},clearAccount(){return{type:"CLEAR_ACCOUNT"}},setSignedIn(e){return{type:"SET_SIGNED_IN",signedIn:e}},setNextUrl(e){return{type:"SET_NEXT_URL",nextUrl:e}},setLanguage(e){return!e||e==="system"?R.I18n.setLanguage(""):R.I18n.setLanguage(e),{type:"SET_LANGUAGE",language:e}},setDirection(e){return{type:"SET_DIRECTION",direction:e}},reloadAuthSession(){return{type:"RELOAD_AUTH_SESSION"}},reloadUserAttributes(){return{type:"RELOAD_USER_ATTRIBUTES"}},reloadMFAPreferences(){return{type:"RELOAD_MFA_PREFERENCE"}}},ae={getAmplifyConfig(e){return e.amplifyConfig},getAccount(e){return e.account},getNextUrl(e){return e.nextUrl},isSignedIn(e){return e.signedIn},getConfig(e){return e.config},getCustomTranslations(e){return e.customTranslations},getLanguage(e){return e.language},getDirection(e){return e.direction},getState(e){return e}},ue={},d=e=>(0,g.dispatch)(e),O=e=>(0,g.select)(e),K=async()=>{let e=await ie(),t=(0,g.createReduxStore)("smartcloud/gatey",{reducer(n=e,o){switch(o.type){case"SET_AMPLIFY_CONFIG":return{...n,amplifyConfig:o.amplifyConfig};case"SET_ACCOUNT":return C(o.account),{...n,account:o.account};case"CLEAR_ACCOUNT":return C({}),{...n,account:{}};case"RELOAD_AUTH_SESSION":{let r=Math.random();return{...n,reloadAuthSession:n.reloadAuthSession!==r?r:r+1}}case"RELOAD_USER_ATTRIBUTES":{let r=Math.random();return{...n,reloadUserAttributes:n.reloadUserAttributes!==r?r:r+1}}case"RELOAD_MFA_PREFERENCE":{let r=Math.random();return{...n,reloadMFAPreferences:n.reloadMFAPreferences!==r?r:r+1}}case"SET_SIGNED_IN":return{...n,signedIn:o.signedIn};case"SET_NEXT_URL":return{...n,nextUrl:o.nextUrl};case"SET_LANGUAGE":return{...n,language:o.language};case"SET_DIRECTION":return{...n,direction:o.direction}}return n},actions:se,selectors:ae,resolvers:ue});return(0,g.register)(t),t},S=(e,t,n)=>{let o;function r(){let A=O(e).getState(),s=t(A);if(s!==o){let c=o;o=s,n(o,c)}}let y=(0,g.subscribe)(r,e);return r(),y};var T=()=>v.Amplify.getConfig(),P=(e,t)=>{v.Amplify.configure(e,t)},f=e=>(0,i.fetchAuthSession)(e),F=()=>(0,i.fetchUserAttributes)(),G=()=>(0,i.fetchMFAPreference)(),X=async(e=!0)=>{let t=e?await m():{};if(t?.username)return t;try{if((await(0,i.fetchAuthSession)()).tokens)return{username:(await(0,i.getCurrentUser)()).username,userAttributes:await F(),mfaPreferences:await G()}}catch(n){console.error(n);try{await(0,i.signOut)()}catch{}}return{}},N=async()=>{await(0,i.updateMFAPreference)({totp:"DISABLED"})},J=()=>m().then(e=>e?.username),L=()=>m().then(e=>e?.userAttributes),_=()=>m().then(e=>e?.mfaPreferences),k=()=>m().then(e=>!!e?.username),D=e=>E().then(t=>t?.includes(e)||!1),E=()=>f().then(e=>e.tokens?.idToken?.payload["cognito:groups"]instanceof Array?e.tokens.idToken.payload["cognito:groups"].map(t=>t):[]).catch(e=>{console.error(e)}),M=async()=>f().then(e=>e.tokens?.idToken?.payload["cognito:roles"]instanceof Array?e.tokens.idToken.payload["cognito:roles"].map(t=>t).map(t=>t.substring(t.indexOf("/")+1)):[]).catch(e=>{console.error(e)}),W=async()=>f().then(e=>{if(!e.tokens?.idToken?.payload["cognito:preferred_role"])return;let t=e.tokens.idToken.payload["cognito:preferred_role"];return t.substring(t.indexOf("/")+1)}).catch(e=>{console.error(e)}),z=()=>f().then(e=>e.tokens?.accessToken.payload.scope?.split(" ")??[]).catch(e=>{console.error(e)}),Y=async e=>{let t,n=u();if(!n)throw new Error("Gatey plugin is not available");return n.settings.integrateWpLogin&&n.restUrl?.startsWith("http")&&(t=await n.cognito.post({apiName:"admin",path:"/login"}).response.then(r=>r.body.json()).then(r=>{if(r instanceof Object&&"redirect"in r)return r?.redirect}).catch(r=>{console.error(r)})),e&&await n.cognito.get({apiName:e.apiName,path:e.path,options:e.options}).response.catch(o=>console.error(o)),n.settings.redirectSignIn??t},w=async e=>{let t=u();if(!t)throw new Error("Gatey plugin is not available");let n;t.settings.integrateWpLogin&&(n=await t.cognito.get({apiName:"admin",path:"/logout"}).response.then(o=>o.body.json()).then(o=>{if(o instanceof Object&&"redirect"in o)return o?.redirect}).catch(o=>{console.error(o)})),e&&await t.cognito.get({apiName:e.apiName,path:e.path,options:e.options}).response.catch(o=>console.error(o));try{await(0,i.signOut)()}catch{}return t.settings.redirectSignOut??n??t.settings.signInPage??"/"};var q=require("@smart-cloud/wpsuite-core");var ce=()=>{l().then(e=>{S(e,t=>t.nextUrl,async t=>{t&&window.location.assign(t)}),d(e).clearAccount()}).catch(e=>{console.error("Gatey signOut error:",e)})},ge=e=>{l().then(t=>{d(t).setLanguage(e??"en")}).catch(t=>{console.error("Gatey setLanguage error:",t)})},le=e=>{l().then(t=>{d(t).setDirection(e??"auto")}).catch(t=>{console.error("Gatey setDirection error:",t)})};var pe=async()=>l(),de=()=>{let e=globalThis.WpSuite,t=u();if(!t)throw new Error("Gatey plugin is not available");(0,q.attachDefaultPluginRuntime)(t),t.status=t.status??"initializing";let n=K();return t.cognito={store:n,observeStore:S,setLanguage:ge,setDirection:le,getAmplifyConfig:T,isAuthenticated:k,isInGroup:D,getUsername:J,getUserAttributes:L,getMfaPreferences:_,clearMfaPreferences:N,getGroups:E,getRoles:M,getPreferredRole:W,getScopes:z,signOut:ce,get:a.get,post:a.post,put:a.put,del:a.del,head:a.head,patch:a.patch},n.then(()=>{t.status="available",e?.events?.emit("wpsuite:gatey:ready",{key:t.key,version:t.version})}).catch(o=>{t.status="error",e?.events?.emit("wpsuite:gatey:error",{key:t.key,error:String(o)})}),t};0&&(module.exports={TEXT_DOMAIN,clearMfaPreferences,configureAmplify,getAmplifyConfig,getGateyPlugin,getGroups,getMfaPreferences,getPreferredRole,getRoles,getScopes,getStore,getStoreDispatch,getStoreSelect,getUserAttributes,initializeGatey,isAuthenticated,isInGroup,loadAuthSession,loadMFAPreferences,loadUserAttributes,login,logout,observeStore,sanitizeAuthenticatorConfig,store,waitForGateyReady});
1
+ "use strict";var E=Object.defineProperty;var $=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var Z=Object.prototype.hasOwnProperty;var ee=(e,t)=>{for(var n in t)E(e,n,{get:t[n],enumerable:!0})},te=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Q(t))!Z.call(e,r)&&r!==n&&E(e,r,{get:()=>t[r],enumerable:!(o=$(t,r))||o.enumerable});return e};var ne=e=>te(E({},"__esModule",{value:!0}),e);var fe={};ee(fe,{TEXT_DOMAIN:()=>B,clearMfaPreferences:()=>N,configureAmplify:()=>P,getAmplifyConfig:()=>T,getGateyPlugin:()=>u,getGroups:()=>b,getMfaPreferences:()=>_,getPreferredRole:()=>W,getRoles:()=>M,getScopes:()=>z,getStore:()=>l,getStoreDispatch:()=>d,getStoreSelect:()=>O,getUserAttributes:()=>L,initializeGatey:()=>de,isAuthenticated:()=>k,isInGroup:()=>D,loadAuthSession:()=>f,loadMFAPreferences:()=>G,loadUserAttributes:()=>F,login:()=>Y,logout:()=>w,observeStore:()=>S,sanitizeAuthenticatorConfig:()=>I,store:()=>pe,waitForGateyReady:()=>x});module.exports=ne(fe);var a=require("aws-amplify/api");function u(){return globalThis.WpSuite?.plugins?.gatey}async function x(e=8e3){let t=u();if(t?.status!=="available"){if(t?.status==="error")throw new Error("Gatey failed");await new Promise((n,o)=>{let r=()=>A(n),y=()=>A(()=>o(new Error("Gatey failed"))),A=c=>{window.removeEventListener("wpsuite:gatey:ready",r),window.removeEventListener("wpsuite:gatey:error",y),s&&clearTimeout(s),c()};window.addEventListener("wpsuite:gatey:ready",r,{once:!0}),window.addEventListener("wpsuite:gatey:error",y,{once:!0});let s=e?window.setTimeout(()=>A(()=>o(new Error("Gatey timeout"))),e):0})}}async function l(e=1e4){await x(e);let n=u()?.cognito?.store;if(!n)throw new Error("Gatey store is not available");return n}var v=require("aws-amplify"),i=require("aws-amplify/auth");var V=require("aws-amplify/auth"),R=require("aws-amplify/utils"),g=require("@wordpress/data"),j=require("@smart-cloud/wpsuite-core");var h="gatey_account",B="gatey";var U;typeof WpSuite<"u"?U=WpSuite.siteSettings:U={};var C=e=>{e?.username?window.localStorage.setItem(h,JSON.stringify(e)):window.localStorage.removeItem(h)},m=async e=>{let t=JSON.parse(window.localStorage.getItem(h)??"{}"),n=!1;if(t?.username)try{let o=await(0,V.fetchAuthSession)();o?.tokens?.accessToken?.payload?.exp&&o.tokens.accessToken.payload.exp>new Date().getTime()/1e3&&(n=!0)}catch(o){console.error(o)}else try{t=await X(!1),t?.username&&(C(t),t.loaded=!0,n=!0)}catch(o){console.error(o)}return!n&&t?.username&&(C({}),l().then(async o=>{await w(e?.signOutHook),d(o).clearAccount()})),t},oe=async e=>{let t=window.location.hostname.toLowerCase().split(":")[0],n=u();if(!n)throw new Error("Gatey plugin is not available");let o=n.settings?.secondaryUserPoolDomains&&t.toLowerCase().match(n.settings.secondaryUserPoolDomains.toLowerCase())&&n.settings?.userPoolConfigurations.secondary?.Auth?.Cognito?.userPoolId?n.settings?.userPoolConfigurations.secondary:n.settings?.userPoolConfigurations.default,r={Auth:{Cognito:{userPoolClientId:"",userPoolId:"",identityPoolId:"",...o.Auth?.Cognito,loginWith:{oauth:{domain:"",scopes:[],responseType:"code",...o.Auth?.Cognito?.loginWith?.oauth,redirectSignIn:[window.location.origin+n.settings?.signInPage],redirectSignOut:[window.location.origin+n.settings?.signInPage]}}}},API:{...o.API,REST:{...o.API?.REST,admin:{endpoint:n.restUrl}}}},y=e?.apiConfigurations?.secondary?.domains&&t.toLowerCase().match(e.apiConfigurations.secondary?.domains.toLowerCase())&&e.apiConfigurations?.secondary?.apis?.length?e.apiConfigurations.secondary:e?.apiConfigurations?.default;y?.apis?.forEach(s=>{let c=r.API?.REST;c&&(c[s.name]={endpoint:s.endpoint,region:s.region})}),P(r,{API:{REST:{headers:async s=>{let c=y?.apis?.find(p=>p.name===s.apiName);if(s.apiName==="admin"||c?.authorization==="ID_TOKEN"||c?.authorization==="ACCESS_TOKEN")try{let p=await f();if(p?.tokens?.idToken&&p?.tokens?.accessToken)return{Authorization:`Bearer ${s.apiName==="admin"||c?.authorization==="ID_TOKEN"?p.tokens.idToken.toString():p.tokens.accessToken.toString()}`}}catch(p){console.error(p),l().then(H=>{d(H).clearAccount()})}return{}}}}})},re=async()=>{let e=u();if(!e)throw new Error("Gatey plugin is not available");let t=null;return e.settings.customTranslationsUrl&&(t=await fetch(e.settings.customTranslationsUrl+(e.settings.customTranslationsUrl.includes("?")?"&":"?")+"t="+U.lastUpdate).then(n=>n.ok?n.text():null).then(n=>n?JSON.parse(n):null).catch(()=>null)),t??null},I=e=>{let t=e&&typeof e=="object"?e:{},n={customProviders:Array.isArray(t.customProviders)?t.customProviders:[],formFields:Array.isArray(t.formFields)?t.formFields:[],apiConfigurations:typeof t.apiConfigurations=="object"&&t.apiConfigurations?t.apiConfigurations:{default:{apis:[]}}};return typeof t.subscriptionType=="string"&&(n.subscriptionType=t.subscriptionType),n},ie=async()=>{let e=I(await(0,j.getConfig)("gatey"));oe(e);let t=window.location.hostname.toLowerCase().split(":")[0],n=e?.apiConfigurations?.secondary?.domains&&t.toLowerCase().match(e.apiConfigurations.secondary?.domains.toLowerCase())&&e.apiConfigurations?.secondary?.apis?.length?e.apiConfigurations.secondary:e?.apiConfigurations?.default,o=await m(n),r=await re();return{config:e,amplifyConfig:{},account:o,signedIn:!!o?.username&&!o.loaded,nextUrl:void 0,language:void 0,direction:void 0,customTranslations:r,reloadAuthSession:0,reloadUserAttributes:0,reloadMFAPreferences:0}},se={setAmplifyConfig(e){return{type:"SET_AMPLIFY_CONFIG",amplifyConfig:e}},setAccount(e){return{type:"SET_ACCOUNT",account:e}},clearAccount(){return{type:"CLEAR_ACCOUNT"}},setSignedIn(e){return{type:"SET_SIGNED_IN",signedIn:e}},setNextUrl(e){return{type:"SET_NEXT_URL",nextUrl:e}},setLanguage(e){return!e||e==="system"?R.I18n.setLanguage(""):R.I18n.setLanguage(e),{type:"SET_LANGUAGE",language:e}},setDirection(e){return{type:"SET_DIRECTION",direction:e}},reloadAuthSession(){return{type:"RELOAD_AUTH_SESSION"}},reloadUserAttributes(){return{type:"RELOAD_USER_ATTRIBUTES"}},reloadMFAPreferences(){return{type:"RELOAD_MFA_PREFERENCE"}}},ae={getAmplifyConfig(e){return e.amplifyConfig},getAccount(e){return e.account},getNextUrl(e){return e.nextUrl},isSignedIn(e){return e.signedIn},getConfig(e){return e.config},getCustomTranslations(e){return e.customTranslations},getLanguage(e){return e.language},getDirection(e){return e.direction},getState(e){return e}},ue={},d=e=>(0,g.dispatch)(e),O=e=>(0,g.select)(e),K=async()=>{let e=await ie(),t=(0,g.createReduxStore)("smartcloud/gatey",{reducer(n=e,o){switch(o.type){case"SET_AMPLIFY_CONFIG":return{...n,amplifyConfig:o.amplifyConfig};case"SET_ACCOUNT":return C(o.account),{...n,account:o.account};case"CLEAR_ACCOUNT":return C({}),{...n,account:{}};case"RELOAD_AUTH_SESSION":{let r=Math.random();return{...n,reloadAuthSession:n.reloadAuthSession!==r?r:r+1}}case"RELOAD_USER_ATTRIBUTES":{let r=Math.random();return{...n,reloadUserAttributes:n.reloadUserAttributes!==r?r:r+1}}case"RELOAD_MFA_PREFERENCE":{let r=Math.random();return{...n,reloadMFAPreferences:n.reloadMFAPreferences!==r?r:r+1}}case"SET_SIGNED_IN":return{...n,signedIn:o.signedIn};case"SET_NEXT_URL":return{...n,nextUrl:o.nextUrl};case"SET_LANGUAGE":return{...n,language:o.language};case"SET_DIRECTION":return{...n,direction:o.direction}}return n},actions:se,selectors:ae,resolvers:ue});return(0,g.register)(t),t},S=(e,t,n)=>{let o;function r(){let A=O(e).getState(),s=t(A);if(s!==o){let c=o;o=s,n(o,c)}}let y=(0,g.subscribe)(r,e);return r(),y};var T=()=>v.Amplify.getConfig(),P=(e,t)=>{v.Amplify.configure(e,t)},f=e=>(0,i.fetchAuthSession)(e),F=()=>(0,i.fetchUserAttributes)(),G=()=>(0,i.fetchMFAPreference)(),X=async(e=!0)=>{let t=e?await m():{};if(t?.username)return t;try{if((await(0,i.fetchAuthSession)()).tokens)return{username:(await(0,i.getCurrentUser)()).username,userAttributes:await F(),mfaPreferences:await G()}}catch(n){console.error(n);try{await(0,i.signOut)()}catch{}}return{}},N=async()=>{await(0,i.updateMFAPreference)({totp:"DISABLED"})},J=()=>m().then(e=>e?.username),L=()=>m().then(e=>e?.userAttributes),_=()=>m().then(e=>e?.mfaPreferences),k=()=>m().then(e=>!!e?.username),D=e=>b().then(t=>t?.includes(e)||!1),b=()=>f().then(e=>e.tokens?.idToken?.payload["cognito:groups"]instanceof Array?e.tokens.idToken.payload["cognito:groups"].map(t=>t):[]).catch(e=>{console.error(e)}),M=async()=>f().then(e=>e.tokens?.idToken?.payload["cognito:roles"]instanceof Array?e.tokens.idToken.payload["cognito:roles"].map(t=>t).map(t=>t.substring(t.indexOf("/")+1)):[]).catch(e=>{console.error(e)}),W=async()=>f().then(e=>{if(!e.tokens?.idToken?.payload["cognito:preferred_role"])return;let t=e.tokens.idToken.payload["cognito:preferred_role"];return t.substring(t.indexOf("/")+1)}).catch(e=>{console.error(e)}),z=()=>f().then(e=>e.tokens?.accessToken.payload.scope?.split(" ")??[]).catch(e=>{console.error(e)}),Y=async e=>{let t,n=u();if(!n)throw new Error("Gatey plugin is not available");return n.settings.integrateWpLogin&&n.restUrl?.startsWith("http")&&(t=await n.cognito.post({apiName:"admin",path:"/login"}).response.then(r=>r.body.json()).then(r=>{if(r instanceof Object&&"redirect"in r)return r?.redirect}).catch(r=>{console.error(r)})),e&&await n.cognito.get({apiName:e.apiName,path:e.path,options:e.options}).response.catch(o=>console.error(o)),n.settings.redirectSignIn??t},w=async e=>{let t=u();if(!t)throw new Error("Gatey plugin is not available");let n;t.settings.integrateWpLogin&&(n=await t.cognito.get({apiName:"admin",path:"/logout"}).response.then(o=>o.body.json()).then(o=>{if(o instanceof Object&&"redirect"in o)return o?.redirect}).catch(o=>{console.error(o)})),e&&await t.cognito.get({apiName:e.apiName,path:e.path,options:e.options}).response.catch(o=>console.error(o));try{await(0,i.signOut)()}catch{}return t.settings.redirectSignOut??n??t.settings.signInPage??"/"};var q=require("@smart-cloud/wpsuite-core");var ce=()=>{l().then(e=>{S(e,t=>t.nextUrl,async t=>{t&&window.location.assign(t)}),d(e).clearAccount()}).catch(e=>{console.error("Gatey signOut error:",e)})},ge=e=>{l().then(t=>{d(t).setLanguage(e??"en")}).catch(t=>{console.error("Gatey setLanguage error:",t)})},le=e=>{l().then(t=>{d(t).setDirection(e??"auto")}).catch(t=>{console.error("Gatey setDirection error:",t)})};var pe=async()=>l(),de=()=>{let e=globalThis.WpSuite,t=u();if(!t)throw new Error("Gatey plugin is not available");(0,q.attachDefaultPluginRuntime)(t),t.status=t.status??"initializing";let n=K();return t.cognito={store:n,observeStore:S,setLanguage:ge,setDirection:le,getAmplifyConfig:T,isAuthenticated:k,isInGroup:D,getUsername:J,getUserAttributes:L,getMfaPreferences:_,clearMfaPreferences:N,getGroups:b,getRoles:M,getPreferredRole:W,getScopes:z,signOut:ce,get:a.get,post:a.post,put:a.put,del:a.del,head:a.head,patch:a.patch},n.then(()=>{t.status="available",e?.events?.emit("wpsuite:gatey:ready",{key:t.key,version:t.version})}).catch(o=>{t.status="error",e?.events?.emit("wpsuite:gatey:error",{key:t.key,error:String(o)})}),t};0&&(module.exports={TEXT_DOMAIN,clearMfaPreferences,configureAmplify,getAmplifyConfig,getGateyPlugin,getGroups,getMfaPreferences,getPreferredRole,getRoles,getScopes,getStore,getStoreDispatch,getStoreSelect,getUserAttributes,initializeGatey,isAuthenticated,isInGroup,loadAuthSession,loadMFAPreferences,loadUserAttributes,login,logout,observeStore,sanitizeAuthenticatorConfig,store,waitForGateyReady});
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { PasswordlessSettings, type LoginMechanism, type SignUpAttribute, type SocialProvider } from "@smart-cloud/aws-amplify-ui";
1
+ import { PasswordlessSettings, type InitialRoute, type LoginMechanism, type SignUpAttribute, type SocialProvider } from "@smart-cloud/aws-amplify-ui";
2
2
  import { type ResourcesConfig } from "aws-amplify";
3
3
  import { del, get, head, patch, post, put } from "aws-amplify/api";
4
4
  import { getGateyPlugin, getStore, waitForGateyReady, type GateyErrorEvent, type GateyPlugin, type GateyReadyEvent } from "./runtime";
@@ -8,6 +8,7 @@ export interface RoleMapping {
8
8
  cognitoGroup?: string;
9
9
  wordpressRole?: string;
10
10
  }
11
+ export type AuthenticatorScreen = InitialRoute | "changePassword";
11
12
  export interface Settings {
12
13
  userPoolConfigurations: {
13
14
  default: ResourcesConfig;
@@ -58,6 +59,8 @@ export interface Cognito {
58
59
  toSignIn?: () => void;
59
60
  toSignUp?: () => void;
60
61
  toForgotPassword?: () => void;
62
+ toPasskeySettings?: () => void;
63
+ toRememberedDevices?: () => void;
61
64
  }
62
65
  export interface Gatey {
63
66
  cognito: Cognito;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{del as ce,get as ge,head as le,patch as pe,post as de,put as fe}from"aws-amplify/api";function a(){return globalThis.WpSuite?.plugins?.gatey}async function T(e=8e3){let t=a();if(t?.status!=="available"){if(t?.status==="error")throw new Error("Gatey failed");await new Promise((n,o)=>{let r=()=>f(n),g=()=>f(()=>o(new Error("Gatey failed"))),f=s=>{window.removeEventListener("wpsuite:gatey:ready",r),window.removeEventListener("wpsuite:gatey:error",g),i&&clearTimeout(i),s()};window.addEventListener("wpsuite:gatey:ready",r,{once:!0}),window.addEventListener("wpsuite:gatey:error",g,{once:!0});let i=e?window.setTimeout(()=>f(()=>o(new Error("Gatey timeout"))),e):0})}}async function c(e=1e4){await T(e);let n=a()?.cognito?.store;if(!n)throw new Error("Gatey store is not available");return n}import{Amplify as I}from"aws-amplify";import{fetchAuthSession as O,fetchMFAPreference as re,fetchUserAttributes as ie,getCurrentUser as se,signOut as v,updateMFAPreference as ae}from"aws-amplify/auth";import{fetchAuthSession as K}from"aws-amplify/auth";import{I18n as E}from"aws-amplify/utils";import{createReduxStore as X,dispatch as J,register as Y,select as q,subscribe as H}from"@wordpress/data";import{getConfig as $}from"@smart-cloud/wpsuite-core";var y="gatey_account",j="gatey";var S;typeof WpSuite<"u"?S=WpSuite.siteSettings:S={};var m=e=>{e?.username?window.localStorage.setItem(y,JSON.stringify(e)):window.localStorage.removeItem(y)},l=async e=>{let t=JSON.parse(window.localStorage.getItem(y)??"{}"),n=!1;if(t?.username)try{let o=await K();o?.tokens?.accessToken?.payload?.exp&&o.tokens.accessToken.payload.exp>new Date().getTime()/1e3&&(n=!0)}catch(o){console.error(o)}else try{t=await U(!1),t?.username&&(m(t),t.loaded=!0,n=!0)}catch(o){console.error(o)}return!n&&t?.username&&(m({}),c().then(async o=>{await C(e?.signOutHook),p(o).clearAccount()})),t},Q=async e=>{let t=window.location.hostname.toLowerCase().split(":")[0],n=a();if(!n)throw new Error("Gatey plugin is not available");let o=n.settings?.secondaryUserPoolDomains&&t.toLowerCase().match(n.settings.secondaryUserPoolDomains.toLowerCase())&&n.settings?.userPoolConfigurations.secondary?.Auth?.Cognito?.userPoolId?n.settings?.userPoolConfigurations.secondary:n.settings?.userPoolConfigurations.default,r={Auth:{Cognito:{userPoolClientId:"",userPoolId:"",identityPoolId:"",...o.Auth?.Cognito,loginWith:{oauth:{domain:"",scopes:[],responseType:"code",...o.Auth?.Cognito?.loginWith?.oauth,redirectSignIn:[window.location.origin+n.settings?.signInPage],redirectSignOut:[window.location.origin+n.settings?.signInPage]}}}},API:{...o.API,REST:{...o.API?.REST,admin:{endpoint:n.restUrl}}}},g=e?.apiConfigurations?.secondary?.domains&&t.toLowerCase().match(e.apiConfigurations.secondary?.domains.toLowerCase())&&e.apiConfigurations?.secondary?.apis?.length?e.apiConfigurations.secondary:e?.apiConfigurations?.default;g?.apis?.forEach(i=>{let s=r.API?.REST;s&&(s[i.name]={endpoint:i.endpoint,region:i.region})}),h(r,{API:{REST:{headers:async i=>{let s=g?.apis?.find(u=>u.name===i.apiName);if(i.apiName==="admin"||s?.authorization==="ID_TOKEN"||s?.authorization==="ACCESS_TOKEN")try{let u=await d();if(u?.tokens?.idToken&&u?.tokens?.accessToken)return{Authorization:`Bearer ${i.apiName==="admin"||s?.authorization==="ID_TOKEN"?u.tokens.idToken.toString():u.tokens.accessToken.toString()}`}}catch(u){console.error(u),c().then(V=>{p(V).clearAccount()})}return{}}}}})},Z=async()=>{let e=a();if(!e)throw new Error("Gatey plugin is not available");let t=null;return e.settings.customTranslationsUrl&&(t=await fetch(e.settings.customTranslationsUrl+(e.settings.customTranslationsUrl.includes("?")?"&":"?")+"t="+S.lastUpdate).then(n=>n.ok?n.text():null).then(n=>n?JSON.parse(n):null).catch(()=>null)),t??null},b=e=>{let t=e&&typeof e=="object"?e:{},n={customProviders:Array.isArray(t.customProviders)?t.customProviders:[],formFields:Array.isArray(t.formFields)?t.formFields:[],apiConfigurations:typeof t.apiConfigurations=="object"&&t.apiConfigurations?t.apiConfigurations:{default:{apis:[]}}};return typeof t.subscriptionType=="string"&&(n.subscriptionType=t.subscriptionType),n},ee=async()=>{let e=b(await $("gatey"));Q(e);let t=window.location.hostname.toLowerCase().split(":")[0],n=e?.apiConfigurations?.secondary?.domains&&t.toLowerCase().match(e.apiConfigurations.secondary?.domains.toLowerCase())&&e.apiConfigurations?.secondary?.apis?.length?e.apiConfigurations.secondary:e?.apiConfigurations?.default,o=await l(n),r=await Z();return{config:e,amplifyConfig:{},account:o,signedIn:!!o?.username&&!o.loaded,nextUrl:void 0,language:void 0,direction:void 0,customTranslations:r,reloadAuthSession:0,reloadUserAttributes:0,reloadMFAPreferences:0}},te={setAmplifyConfig(e){return{type:"SET_AMPLIFY_CONFIG",amplifyConfig:e}},setAccount(e){return{type:"SET_ACCOUNT",account:e}},clearAccount(){return{type:"CLEAR_ACCOUNT"}},setSignedIn(e){return{type:"SET_SIGNED_IN",signedIn:e}},setNextUrl(e){return{type:"SET_NEXT_URL",nextUrl:e}},setLanguage(e){return!e||e==="system"?E.setLanguage(""):E.setLanguage(e),{type:"SET_LANGUAGE",language:e}},setDirection(e){return{type:"SET_DIRECTION",direction:e}},reloadAuthSession(){return{type:"RELOAD_AUTH_SESSION"}},reloadUserAttributes(){return{type:"RELOAD_USER_ATTRIBUTES"}},reloadMFAPreferences(){return{type:"RELOAD_MFA_PREFERENCE"}}},ne={getAmplifyConfig(e){return e.amplifyConfig},getAccount(e){return e.account},getNextUrl(e){return e.nextUrl},isSignedIn(e){return e.signedIn},getConfig(e){return e.config},getCustomTranslations(e){return e.customTranslations},getLanguage(e){return e.language},getDirection(e){return e.direction},getState(e){return e}},oe={},p=e=>J(e),x=e=>q(e),R=async()=>{let e=await ee(),t=X("smartcloud/gatey",{reducer(n=e,o){switch(o.type){case"SET_AMPLIFY_CONFIG":return{...n,amplifyConfig:o.amplifyConfig};case"SET_ACCOUNT":return m(o.account),{...n,account:o.account};case"CLEAR_ACCOUNT":return m({}),{...n,account:{}};case"RELOAD_AUTH_SESSION":{let r=Math.random();return{...n,reloadAuthSession:n.reloadAuthSession!==r?r:r+1}}case"RELOAD_USER_ATTRIBUTES":{let r=Math.random();return{...n,reloadUserAttributes:n.reloadUserAttributes!==r?r:r+1}}case"RELOAD_MFA_PREFERENCE":{let r=Math.random();return{...n,reloadMFAPreferences:n.reloadMFAPreferences!==r?r:r+1}}case"SET_SIGNED_IN":return{...n,signedIn:o.signedIn};case"SET_NEXT_URL":return{...n,nextUrl:o.nextUrl};case"SET_LANGUAGE":return{...n,language:o.language};case"SET_DIRECTION":return{...n,direction:o.direction}}return n},actions:te,selectors:ne,resolvers:oe});return Y(t),t},A=(e,t,n)=>{let o;function r(){let f=x(e).getState(),i=t(f);if(i!==o){let s=o;o=i,n(o,s)}}let g=H(r,e);return r(),g};var P=()=>I.getConfig(),h=(e,t)=>{I.configure(e,t)},d=e=>O(e),F=()=>ie(),G=()=>re(),U=async(e=!0)=>{let t=e?await l():{};if(t?.username)return t;try{if((await O()).tokens)return{username:(await se()).username,userAttributes:await F(),mfaPreferences:await G()}}catch(n){console.error(n);try{await v()}catch{}}return{}},N=async()=>{await ae({totp:"DISABLED"})},L=()=>l().then(e=>e?.username),_=()=>l().then(e=>e?.userAttributes),k=()=>l().then(e=>e?.mfaPreferences),D=()=>l().then(e=>!!e?.username),M=e=>w().then(t=>t?.includes(e)||!1),w=()=>d().then(e=>e.tokens?.idToken?.payload["cognito:groups"]instanceof Array?e.tokens.idToken.payload["cognito:groups"].map(t=>t):[]).catch(e=>{console.error(e)}),W=async()=>d().then(e=>e.tokens?.idToken?.payload["cognito:roles"]instanceof Array?e.tokens.idToken.payload["cognito:roles"].map(t=>t).map(t=>t.substring(t.indexOf("/")+1)):[]).catch(e=>{console.error(e)}),z=async()=>d().then(e=>{if(!e.tokens?.idToken?.payload["cognito:preferred_role"])return;let t=e.tokens.idToken.payload["cognito:preferred_role"];return t.substring(t.indexOf("/")+1)}).catch(e=>{console.error(e)}),B=()=>d().then(e=>e.tokens?.accessToken.payload.scope?.split(" ")??[]).catch(e=>{console.error(e)}),ue=async e=>{let t,n=a();if(!n)throw new Error("Gatey plugin is not available");return n.settings.integrateWpLogin&&n.restUrl?.startsWith("http")&&(t=await n.cognito.post({apiName:"admin",path:"/login"}).response.then(r=>r.body.json()).then(r=>{if(r instanceof Object&&"redirect"in r)return r?.redirect}).catch(r=>{console.error(r)})),e&&await n.cognito.get({apiName:e.apiName,path:e.path,options:e.options}).response.catch(o=>console.error(o)),n.settings.redirectSignIn??t},C=async e=>{let t=a();if(!t)throw new Error("Gatey plugin is not available");let n;t.settings.integrateWpLogin&&(n=await t.cognito.get({apiName:"admin",path:"/logout"}).response.then(o=>o.body.json()).then(o=>{if(o instanceof Object&&"redirect"in o)return o?.redirect}).catch(o=>{console.error(o)})),e&&await t.cognito.get({apiName:e.apiName,path:e.path,options:e.options}).response.catch(o=>console.error(o));try{await v()}catch{}return t.settings.redirectSignOut??n??t.settings.signInPage??"/"};import{attachDefaultPluginRuntime as ye}from"@smart-cloud/wpsuite-core";var me=()=>{c().then(e=>{A(e,t=>t.nextUrl,async t=>{t&&window.location.assign(t)}),p(e).clearAccount()}).catch(e=>{console.error("Gatey signOut error:",e)})},Ae=e=>{c().then(t=>{p(t).setLanguage(e??"en")}).catch(t=>{console.error("Gatey setLanguage error:",t)})},Se=e=>{c().then(t=>{p(t).setDirection(e??"auto")}).catch(t=>{console.error("Gatey setDirection error:",t)})};var We=async()=>c(),ze=()=>{let e=globalThis.WpSuite,t=a();if(!t)throw new Error("Gatey plugin is not available");ye(t),t.status=t.status??"initializing";let n=R();return t.cognito={store:n,observeStore:A,setLanguage:Ae,setDirection:Se,getAmplifyConfig:P,isAuthenticated:D,isInGroup:M,getUsername:L,getUserAttributes:_,getMfaPreferences:k,clearMfaPreferences:N,getGroups:w,getRoles:W,getPreferredRole:z,getScopes:B,signOut:me,get:ge,post:de,put:fe,del:ce,head:le,patch:pe},n.then(()=>{t.status="available",e?.events?.emit("wpsuite:gatey:ready",{key:t.key,version:t.version})}).catch(o=>{t.status="error",e?.events?.emit("wpsuite:gatey:error",{key:t.key,error:String(o)})}),t};export{j as TEXT_DOMAIN,N as clearMfaPreferences,h as configureAmplify,P as getAmplifyConfig,a as getGateyPlugin,w as getGroups,k as getMfaPreferences,z as getPreferredRole,W as getRoles,B as getScopes,c as getStore,p as getStoreDispatch,x as getStoreSelect,_ as getUserAttributes,ze as initializeGatey,D as isAuthenticated,M as isInGroup,d as loadAuthSession,G as loadMFAPreferences,F as loadUserAttributes,ue as login,C as logout,A as observeStore,b as sanitizeAuthenticatorConfig,We as store,T as waitForGateyReady};
1
+ import{del as ce,get as ge,head as le,patch as pe,post as de,put as fe}from"aws-amplify/api";function a(){return globalThis.WpSuite?.plugins?.gatey}async function T(e=8e3){let t=a();if(t?.status!=="available"){if(t?.status==="error")throw new Error("Gatey failed");await new Promise((n,o)=>{let r=()=>f(n),g=()=>f(()=>o(new Error("Gatey failed"))),f=s=>{window.removeEventListener("wpsuite:gatey:ready",r),window.removeEventListener("wpsuite:gatey:error",g),i&&clearTimeout(i),s()};window.addEventListener("wpsuite:gatey:ready",r,{once:!0}),window.addEventListener("wpsuite:gatey:error",g,{once:!0});let i=e?window.setTimeout(()=>f(()=>o(new Error("Gatey timeout"))),e):0})}}async function c(e=1e4){await T(e);let n=a()?.cognito?.store;if(!n)throw new Error("Gatey store is not available");return n}import{Amplify as I}from"aws-amplify";import{fetchAuthSession as O,fetchMFAPreference as re,fetchUserAttributes as ie,getCurrentUser as se,signOut as v,updateMFAPreference as ae}from"aws-amplify/auth";import{fetchAuthSession as K}from"aws-amplify/auth";import{I18n as b}from"aws-amplify/utils";import{createReduxStore as X,dispatch as J,register as Y,select as q,subscribe as H}from"@wordpress/data";import{getConfig as $}from"@smart-cloud/wpsuite-core";var y="gatey_account",j="gatey";var S;typeof WpSuite<"u"?S=WpSuite.siteSettings:S={};var m=e=>{e?.username?window.localStorage.setItem(y,JSON.stringify(e)):window.localStorage.removeItem(y)},l=async e=>{let t=JSON.parse(window.localStorage.getItem(y)??"{}"),n=!1;if(t?.username)try{let o=await K();o?.tokens?.accessToken?.payload?.exp&&o.tokens.accessToken.payload.exp>new Date().getTime()/1e3&&(n=!0)}catch(o){console.error(o)}else try{t=await U(!1),t?.username&&(m(t),t.loaded=!0,n=!0)}catch(o){console.error(o)}return!n&&t?.username&&(m({}),c().then(async o=>{await C(e?.signOutHook),p(o).clearAccount()})),t},Q=async e=>{let t=window.location.hostname.toLowerCase().split(":")[0],n=a();if(!n)throw new Error("Gatey plugin is not available");let o=n.settings?.secondaryUserPoolDomains&&t.toLowerCase().match(n.settings.secondaryUserPoolDomains.toLowerCase())&&n.settings?.userPoolConfigurations.secondary?.Auth?.Cognito?.userPoolId?n.settings?.userPoolConfigurations.secondary:n.settings?.userPoolConfigurations.default,r={Auth:{Cognito:{userPoolClientId:"",userPoolId:"",identityPoolId:"",...o.Auth?.Cognito,loginWith:{oauth:{domain:"",scopes:[],responseType:"code",...o.Auth?.Cognito?.loginWith?.oauth,redirectSignIn:[window.location.origin+n.settings?.signInPage],redirectSignOut:[window.location.origin+n.settings?.signInPage]}}}},API:{...o.API,REST:{...o.API?.REST,admin:{endpoint:n.restUrl}}}},g=e?.apiConfigurations?.secondary?.domains&&t.toLowerCase().match(e.apiConfigurations.secondary?.domains.toLowerCase())&&e.apiConfigurations?.secondary?.apis?.length?e.apiConfigurations.secondary:e?.apiConfigurations?.default;g?.apis?.forEach(i=>{let s=r.API?.REST;s&&(s[i.name]={endpoint:i.endpoint,region:i.region})}),h(r,{API:{REST:{headers:async i=>{let s=g?.apis?.find(u=>u.name===i.apiName);if(i.apiName==="admin"||s?.authorization==="ID_TOKEN"||s?.authorization==="ACCESS_TOKEN")try{let u=await d();if(u?.tokens?.idToken&&u?.tokens?.accessToken)return{Authorization:`Bearer ${i.apiName==="admin"||s?.authorization==="ID_TOKEN"?u.tokens.idToken.toString():u.tokens.accessToken.toString()}`}}catch(u){console.error(u),c().then(V=>{p(V).clearAccount()})}return{}}}}})},Z=async()=>{let e=a();if(!e)throw new Error("Gatey plugin is not available");let t=null;return e.settings.customTranslationsUrl&&(t=await fetch(e.settings.customTranslationsUrl+(e.settings.customTranslationsUrl.includes("?")?"&":"?")+"t="+S.lastUpdate).then(n=>n.ok?n.text():null).then(n=>n?JSON.parse(n):null).catch(()=>null)),t??null},E=e=>{let t=e&&typeof e=="object"?e:{},n={customProviders:Array.isArray(t.customProviders)?t.customProviders:[],formFields:Array.isArray(t.formFields)?t.formFields:[],apiConfigurations:typeof t.apiConfigurations=="object"&&t.apiConfigurations?t.apiConfigurations:{default:{apis:[]}}};return typeof t.subscriptionType=="string"&&(n.subscriptionType=t.subscriptionType),n},ee=async()=>{let e=E(await $("gatey"));Q(e);let t=window.location.hostname.toLowerCase().split(":")[0],n=e?.apiConfigurations?.secondary?.domains&&t.toLowerCase().match(e.apiConfigurations.secondary?.domains.toLowerCase())&&e.apiConfigurations?.secondary?.apis?.length?e.apiConfigurations.secondary:e?.apiConfigurations?.default,o=await l(n),r=await Z();return{config:e,amplifyConfig:{},account:o,signedIn:!!o?.username&&!o.loaded,nextUrl:void 0,language:void 0,direction:void 0,customTranslations:r,reloadAuthSession:0,reloadUserAttributes:0,reloadMFAPreferences:0}},te={setAmplifyConfig(e){return{type:"SET_AMPLIFY_CONFIG",amplifyConfig:e}},setAccount(e){return{type:"SET_ACCOUNT",account:e}},clearAccount(){return{type:"CLEAR_ACCOUNT"}},setSignedIn(e){return{type:"SET_SIGNED_IN",signedIn:e}},setNextUrl(e){return{type:"SET_NEXT_URL",nextUrl:e}},setLanguage(e){return!e||e==="system"?b.setLanguage(""):b.setLanguage(e),{type:"SET_LANGUAGE",language:e}},setDirection(e){return{type:"SET_DIRECTION",direction:e}},reloadAuthSession(){return{type:"RELOAD_AUTH_SESSION"}},reloadUserAttributes(){return{type:"RELOAD_USER_ATTRIBUTES"}},reloadMFAPreferences(){return{type:"RELOAD_MFA_PREFERENCE"}}},ne={getAmplifyConfig(e){return e.amplifyConfig},getAccount(e){return e.account},getNextUrl(e){return e.nextUrl},isSignedIn(e){return e.signedIn},getConfig(e){return e.config},getCustomTranslations(e){return e.customTranslations},getLanguage(e){return e.language},getDirection(e){return e.direction},getState(e){return e}},oe={},p=e=>J(e),x=e=>q(e),R=async()=>{let e=await ee(),t=X("smartcloud/gatey",{reducer(n=e,o){switch(o.type){case"SET_AMPLIFY_CONFIG":return{...n,amplifyConfig:o.amplifyConfig};case"SET_ACCOUNT":return m(o.account),{...n,account:o.account};case"CLEAR_ACCOUNT":return m({}),{...n,account:{}};case"RELOAD_AUTH_SESSION":{let r=Math.random();return{...n,reloadAuthSession:n.reloadAuthSession!==r?r:r+1}}case"RELOAD_USER_ATTRIBUTES":{let r=Math.random();return{...n,reloadUserAttributes:n.reloadUserAttributes!==r?r:r+1}}case"RELOAD_MFA_PREFERENCE":{let r=Math.random();return{...n,reloadMFAPreferences:n.reloadMFAPreferences!==r?r:r+1}}case"SET_SIGNED_IN":return{...n,signedIn:o.signedIn};case"SET_NEXT_URL":return{...n,nextUrl:o.nextUrl};case"SET_LANGUAGE":return{...n,language:o.language};case"SET_DIRECTION":return{...n,direction:o.direction}}return n},actions:te,selectors:ne,resolvers:oe});return Y(t),t},A=(e,t,n)=>{let o;function r(){let f=x(e).getState(),i=t(f);if(i!==o){let s=o;o=i,n(o,s)}}let g=H(r,e);return r(),g};var P=()=>I.getConfig(),h=(e,t)=>{I.configure(e,t)},d=e=>O(e),F=()=>ie(),G=()=>re(),U=async(e=!0)=>{let t=e?await l():{};if(t?.username)return t;try{if((await O()).tokens)return{username:(await se()).username,userAttributes:await F(),mfaPreferences:await G()}}catch(n){console.error(n);try{await v()}catch{}}return{}},N=async()=>{await ae({totp:"DISABLED"})},L=()=>l().then(e=>e?.username),_=()=>l().then(e=>e?.userAttributes),k=()=>l().then(e=>e?.mfaPreferences),D=()=>l().then(e=>!!e?.username),M=e=>w().then(t=>t?.includes(e)||!1),w=()=>d().then(e=>e.tokens?.idToken?.payload["cognito:groups"]instanceof Array?e.tokens.idToken.payload["cognito:groups"].map(t=>t):[]).catch(e=>{console.error(e)}),W=async()=>d().then(e=>e.tokens?.idToken?.payload["cognito:roles"]instanceof Array?e.tokens.idToken.payload["cognito:roles"].map(t=>t).map(t=>t.substring(t.indexOf("/")+1)):[]).catch(e=>{console.error(e)}),z=async()=>d().then(e=>{if(!e.tokens?.idToken?.payload["cognito:preferred_role"])return;let t=e.tokens.idToken.payload["cognito:preferred_role"];return t.substring(t.indexOf("/")+1)}).catch(e=>{console.error(e)}),B=()=>d().then(e=>e.tokens?.accessToken.payload.scope?.split(" ")??[]).catch(e=>{console.error(e)}),ue=async e=>{let t,n=a();if(!n)throw new Error("Gatey plugin is not available");return n.settings.integrateWpLogin&&n.restUrl?.startsWith("http")&&(t=await n.cognito.post({apiName:"admin",path:"/login"}).response.then(r=>r.body.json()).then(r=>{if(r instanceof Object&&"redirect"in r)return r?.redirect}).catch(r=>{console.error(r)})),e&&await n.cognito.get({apiName:e.apiName,path:e.path,options:e.options}).response.catch(o=>console.error(o)),n.settings.redirectSignIn??t},C=async e=>{let t=a();if(!t)throw new Error("Gatey plugin is not available");let n;t.settings.integrateWpLogin&&(n=await t.cognito.get({apiName:"admin",path:"/logout"}).response.then(o=>o.body.json()).then(o=>{if(o instanceof Object&&"redirect"in o)return o?.redirect}).catch(o=>{console.error(o)})),e&&await t.cognito.get({apiName:e.apiName,path:e.path,options:e.options}).response.catch(o=>console.error(o));try{await v()}catch{}return t.settings.redirectSignOut??n??t.settings.signInPage??"/"};import{attachDefaultPluginRuntime as ye}from"@smart-cloud/wpsuite-core";var me=()=>{c().then(e=>{A(e,t=>t.nextUrl,async t=>{t&&window.location.assign(t)}),p(e).clearAccount()}).catch(e=>{console.error("Gatey signOut error:",e)})},Ae=e=>{c().then(t=>{p(t).setLanguage(e??"en")}).catch(t=>{console.error("Gatey setLanguage error:",t)})},Se=e=>{c().then(t=>{p(t).setDirection(e??"auto")}).catch(t=>{console.error("Gatey setDirection error:",t)})};var We=async()=>c(),ze=()=>{let e=globalThis.WpSuite,t=a();if(!t)throw new Error("Gatey plugin is not available");ye(t),t.status=t.status??"initializing";let n=R();return t.cognito={store:n,observeStore:A,setLanguage:Ae,setDirection:Se,getAmplifyConfig:P,isAuthenticated:D,isInGroup:M,getUsername:L,getUserAttributes:_,getMfaPreferences:k,clearMfaPreferences:N,getGroups:w,getRoles:W,getPreferredRole:z,getScopes:B,signOut:me,get:ge,post:de,put:fe,del:ce,head:le,patch:pe},n.then(()=>{t.status="available",e?.events?.emit("wpsuite:gatey:ready",{key:t.key,version:t.version})}).catch(o=>{t.status="error",e?.events?.emit("wpsuite:gatey:error",{key:t.key,error:String(o)})}),t};export{j as TEXT_DOMAIN,N as clearMfaPreferences,h as configureAmplify,P as getAmplifyConfig,a as getGateyPlugin,w as getGroups,k as getMfaPreferences,z as getPreferredRole,W as getRoles,B as getScopes,c as getStore,p as getStoreDispatch,x as getStoreSelect,_ as getUserAttributes,ze as initializeGatey,D as isAuthenticated,M as isInGroup,d as loadAuthSession,G as loadMFAPreferences,F as loadUserAttributes,ue as login,C as logout,A as observeStore,E as sanitizeAuthenticatorConfig,We as store,T as waitForGateyReady};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smart-cloud/gatey-core",
3
- "version": "2.3.1",
3
+ "version": "2.3.2",
4
4
  "description": "Login & SSO with Amazon Cognito",
5
5
  "author": "Smart Cloud Solutions Inc.",
6
6
  "license": "MIT",
@@ -24,32 +24,51 @@
24
24
  "build:types": "tsc -p tsconfig.types.json",
25
25
  "lint": "eslint 'src/**/*.ts' --report-unused-disable-directives --max-warnings 0",
26
26
  "test": "echo \"Error: no test specified\" && exit 1",
27
- "release:npm": "WPSUITE_PREMIUM=true yarn build && npm publish --access=public"
27
+ "release:npm": "WPSUITE_PREMIUM=true yarn build && npm publish --access=public --registry=https://registry.npmjs.org/"
28
28
  },
29
29
  "publishConfig": {
30
30
  "registry": "https://registry.npmjs.org/",
31
31
  "access": "public"
32
32
  },
33
+ "resolutions": {
34
+ "brace-expansion": "^5.0.9",
35
+ "esbuild": "^0.28.1",
36
+ "fast-xml-builder": "^1.3.0",
37
+ "fast-xml-parser": "^5.10.1",
38
+ "flatted": "^3.4.4",
39
+ "picomatch": "^4.0.5",
40
+ "rollup": "^4.62.3"
41
+ },
33
42
  "dependencies": {
34
- "@smart-cloud/wpsuite-core": "^2.3.1"
43
+ "@smart-cloud/wpsuite-core": "^2.3.2"
35
44
  },
36
45
  "peerDependencies": {
37
- "@smart-cloud/aws-amplify-ui-react": "^6.15.4",
38
- "@wordpress/data": "^10.47.0",
39
- "aws-amplify": "^6.17.0"
46
+ "@aws-amplify/core": "^6.18.0",
47
+ "@smart-cloud/aws-amplify-ui": "^6.16.0",
48
+ "@smart-cloud/aws-amplify-ui-react": "^6.16.0",
49
+ "@wordpress/data": "^10.52.0",
50
+ "aws-amplify": "^6.20.0",
51
+ "jose": "^6.2.5"
40
52
  },
41
53
  "devDependencies": {
42
- "@smart-cloud/aws-amplify-ui-react": "^6.15.4",
54
+ "@aws-amplify/core": "^6.18.0",
55
+ "@smart-cloud/aws-amplify-ui": "^6.16.0",
56
+ "@smart-cloud/aws-amplify-ui-react": "^6.16.0",
43
57
  "@eslint/js": "^10.0.1",
44
- "@types/node": "^25.9.1",
45
- "@typescript-eslint/eslint-plugin": "^8.60.0",
46
- "@typescript-eslint/parser": "^8.60.0",
47
- "@wordpress/data": "^10.47.0",
48
- "aws-amplify": "^6.17.0",
49
- "eslint": "^10.4.1",
50
- "globals": "^17.6.0",
58
+ "@types/node": "^26.1.2",
59
+ "@types/react": "^18.3.28",
60
+ "@types/react-dom": "^18.3.7",
61
+ "@typescript-eslint/eslint-plugin": "^8.65.0",
62
+ "@typescript-eslint/parser": "^8.65.0",
63
+ "@wordpress/data": "^10.52.0",
64
+ "aws-amplify": "^6.20.0",
65
+ "eslint": "^10.8.0",
66
+ "globals": "^17.8.0",
67
+ "jose": "^6.2.5",
68
+ "react": "^18.3.1",
69
+ "react-dom": "^18.3.1",
51
70
  "tsup": "^8.5.1",
52
71
  "typescript": "^6.0.3",
53
- "typescript-eslint": "^8.60.0"
72
+ "typescript-eslint": "^8.65.0"
54
73
  }
55
74
  }