@tern-secure/react 1.1.5 → 1.1.6

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.
Files changed (235) hide show
  1. package/dist/ctx/AuthProvider.d.mts +13 -3
  2. package/dist/ctx/AuthProvider.d.ts +13 -3
  3. package/dist/ctx/AuthProvider.js +1 -1
  4. package/dist/ctx/AuthProvider.js.map +1 -1
  5. package/dist/ctx/AuthProvider.mjs +1 -1
  6. package/dist/ctx/AuthProvider.mjs.map +1 -1
  7. package/dist/ctx/IsomorphicTernSecureCtx.d.mts +5 -5
  8. package/dist/ctx/IsomorphicTernSecureCtx.d.ts +5 -5
  9. package/dist/ctx/IsomorphicTernSecureCtx.js +1 -1
  10. package/dist/ctx/IsomorphicTernSecureCtx.js.map +1 -1
  11. package/dist/ctx/IsomorphicTernSecureCtx.mjs +1 -1
  12. package/dist/ctx/IsomorphicTernSecureCtx.mjs.map +1 -1
  13. package/dist/ctx/TernSecureAuthResourcesCtx.d.mts +6 -0
  14. package/dist/ctx/TernSecureAuthResourcesCtx.d.ts +6 -0
  15. package/dist/ctx/TernSecureAuthResourcesCtx.js +2 -0
  16. package/dist/ctx/TernSecureAuthResourcesCtx.js.map +1 -0
  17. package/dist/ctx/TernSecureAuthResourcesCtx.mjs +2 -0
  18. package/dist/ctx/TernSecureAuthResourcesCtx.mjs.map +1 -0
  19. package/dist/ctx/TernSecureCtxProvider.d.mts +6 -8
  20. package/dist/ctx/TernSecureCtxProvider.d.ts +6 -8
  21. package/dist/ctx/TernSecureCtxProvider.js +1 -1
  22. package/dist/ctx/TernSecureCtxProvider.js.map +1 -1
  23. package/dist/ctx/TernSecureCtxProvider.mjs +1 -1
  24. package/dist/ctx/TernSecureCtxProvider.mjs.map +1 -1
  25. package/dist/ctx/TernSecureProvider.js +1 -1
  26. package/dist/ctx/TernSecureProvider.js.map +1 -1
  27. package/dist/ctx/TernSecureProvider.mjs +1 -1
  28. package/dist/ctx/TernSecureProvider.mjs.map +1 -1
  29. package/dist/hooks/useAssertWrappedTernSecureProvider.d.mts +2 -2
  30. package/dist/hooks/useAssertWrappedTernSecureProvider.d.ts +2 -2
  31. package/dist/hooks/useAssertWrappedTernSecureProvider.js +2 -2
  32. package/dist/hooks/useAssertWrappedTernSecureProvider.js.map +1 -1
  33. package/dist/hooks/useAssertWrappedTernSecureProvider.mjs +2 -2
  34. package/dist/hooks/useAssertWrappedTernSecureProvider.mjs.map +1 -1
  35. package/dist/hooks/useAuth.d.mts +2 -2
  36. package/dist/hooks/useAuth.d.ts +2 -2
  37. package/dist/hooks/useAuth.js +1 -1
  38. package/dist/hooks/useAuth.js.map +1 -1
  39. package/dist/hooks/useAuth.mjs +1 -1
  40. package/dist/hooks/useAuth.mjs.map +1 -1
  41. package/dist/hooks/useIdToken.js +1 -1
  42. package/dist/hooks/useIdToken.js.map +1 -1
  43. package/dist/hooks/useIdToken.mjs +1 -1
  44. package/dist/hooks/useIdToken.mjs.map +1 -1
  45. package/dist/hooks/useSession.js +1 -1
  46. package/dist/hooks/useSession.js.map +1 -1
  47. package/dist/hooks/useSession.mjs +1 -1
  48. package/dist/hooks/useSession.mjs.map +1 -1
  49. package/dist/hooks/useSignIn.d.mts +17 -0
  50. package/dist/hooks/useSignIn.d.ts +17 -0
  51. package/dist/hooks/useSignIn.js +2 -0
  52. package/dist/hooks/useSignIn.js.map +1 -0
  53. package/dist/hooks/useSignIn.mjs +2 -0
  54. package/dist/hooks/useSignIn.mjs.map +1 -0
  55. package/dist/index.d.mts +2 -7
  56. package/dist/index.d.ts +2 -7
  57. package/dist/index.js +1 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/index.mjs +1 -1
  60. package/dist/index.mjs.map +1 -1
  61. package/dist/lib/isoTernSecureAuth.d.mts +46 -0
  62. package/dist/lib/isoTernSecureAuth.d.ts +46 -0
  63. package/dist/lib/isoTernSecureAuth.js +2 -0
  64. package/dist/lib/isoTernSecureAuth.js.map +1 -0
  65. package/dist/lib/isoTernSecureAuth.mjs +2 -0
  66. package/dist/lib/isoTernSecureAuth.mjs.map +1 -0
  67. package/dist/lib/utils.js.map +1 -1
  68. package/dist/lib/utils.mjs.map +1 -1
  69. package/dist/types.d.mts +16 -6
  70. package/dist/types.d.ts +16 -6
  71. package/dist/types.js +1 -1
  72. package/dist/types.js.map +1 -1
  73. package/dist/types.mjs.map +1 -1
  74. package/dist/utils/config.js +2 -2
  75. package/dist/utils/config.js.map +1 -1
  76. package/dist/utils/config.mjs +3 -3
  77. package/dist/utils/config.mjs.map +1 -1
  78. package/dist/utils/construct.js.map +1 -1
  79. package/dist/utils/construct.mjs +1 -1
  80. package/dist/utils/construct.mjs.map +1 -1
  81. package/dist/utils/debug.js +1 -1
  82. package/dist/utils/debug.js.map +1 -1
  83. package/dist/utils/debug.mjs +1 -1
  84. package/dist/utils/debug.mjs.map +1 -1
  85. package/package.json +6 -5
  86. package/dist/client/actions.d.mts +0 -2
  87. package/dist/client/actions.d.ts +0 -2
  88. package/dist/client/actions.js +0 -2
  89. package/dist/client/actions.js.map +0 -1
  90. package/dist/client/actions.mjs +0 -1
  91. package/dist/client/actions.mjs.map +0 -1
  92. package/dist/client/session.d.mts +0 -9
  93. package/dist/client/session.d.ts +0 -9
  94. package/dist/client/session.js +0 -2
  95. package/dist/client/session.js.map +0 -1
  96. package/dist/client/session.mjs +0 -2
  97. package/dist/client/session.mjs.map +0 -1
  98. package/dist/components/TernSecureHostRenderer.d.mts +0 -32
  99. package/dist/components/TernSecureHostRenderer.d.ts +0 -32
  100. package/dist/components/TernSecureHostRenderer.js +0 -2
  101. package/dist/components/TernSecureHostRenderer.js.map +0 -1
  102. package/dist/components/TernSecureHostRenderer.mjs +0 -2
  103. package/dist/components/TernSecureHostRenderer.mjs.map +0 -1
  104. package/dist/components/background.d.mts +0 -5
  105. package/dist/components/background.d.ts +0 -5
  106. package/dist/components/background.js +0 -2
  107. package/dist/components/background.js.map +0 -1
  108. package/dist/components/background.mjs +0 -2
  109. package/dist/components/background.mjs.map +0 -1
  110. package/dist/components/old.d.mts +0 -2
  111. package/dist/components/old.d.ts +0 -2
  112. package/dist/components/old.js +0 -2
  113. package/dist/components/old.js.map +0 -1
  114. package/dist/components/old.mjs +0 -1
  115. package/dist/components/old.mjs.map +0 -1
  116. package/dist/components/uiComponent.d.mts +0 -30
  117. package/dist/components/uiComponent.d.ts +0 -30
  118. package/dist/components/uiComponent.js +0 -2
  119. package/dist/components/uiComponent.js.map +0 -1
  120. package/dist/components/uiComponent.mjs +0 -2
  121. package/dist/components/uiComponent.mjs.map +0 -1
  122. package/dist/components/withTernSecure.d.mts +0 -19
  123. package/dist/components/withTernSecure.d.ts +0 -19
  124. package/dist/components/withTernSecure.js +0 -2
  125. package/dist/components/withTernSecure.js.map +0 -1
  126. package/dist/components/withTernSecure.mjs +0 -2
  127. package/dist/components/withTernSecure.mjs.map +0 -1
  128. package/dist/hooks/useAuthState.d.mts +0 -17
  129. package/dist/hooks/useAuthState.d.ts +0 -17
  130. package/dist/hooks/useAuthState.js +0 -2
  131. package/dist/hooks/useAuthState.js.map +0 -1
  132. package/dist/hooks/useAuthState.mjs +0 -2
  133. package/dist/hooks/useAuthState.mjs.map +0 -1
  134. package/dist/hooks/useMaxAllowedInstances.d.mts +0 -6
  135. package/dist/hooks/useMaxAllowedInstances.d.ts +0 -6
  136. package/dist/hooks/useMaxAllowedInstances.js +0 -2
  137. package/dist/hooks/useMaxAllowedInstances.js.map +0 -1
  138. package/dist/hooks/useMaxAllowedInstances.mjs +0 -2
  139. package/dist/hooks/useMaxAllowedInstances.mjs.map +0 -1
  140. package/dist/hooks/useSignUp.d.mts +0 -13
  141. package/dist/hooks/useSignUp.d.ts +0 -13
  142. package/dist/hooks/useSignUp.js +0 -2
  143. package/dist/hooks/useSignUp.js.map +0 -1
  144. package/dist/hooks/useSignUp.mjs +0 -2
  145. package/dist/hooks/useSignUp.mjs.map +0 -1
  146. package/dist/hooks/useWaitForComponentMount.d.mts +0 -8
  147. package/dist/hooks/useWaitForComponentMount.d.ts +0 -8
  148. package/dist/hooks/useWaitForComponentMount.js +0 -2
  149. package/dist/hooks/useWaitForComponentMount.js.map +0 -1
  150. package/dist/hooks/useWaitForComponentMount.mjs +0 -2
  151. package/dist/hooks/useWaitForComponentMount.mjs.map +0 -1
  152. package/dist/lib/isomorphicTernSecure.d.mts +0 -73
  153. package/dist/lib/isomorphicTernSecure.d.ts +0 -73
  154. package/dist/lib/isomorphicTernSecure.js +0 -2
  155. package/dist/lib/isomorphicTernSecure.js.map +0 -1
  156. package/dist/lib/isomorphicTernSecure.mjs +0 -2
  157. package/dist/lib/isomorphicTernSecure.mjs.map +0 -1
  158. package/dist/types/auth.d.mts +0 -2
  159. package/dist/types/auth.d.ts +0 -2
  160. package/dist/types/auth.js +0 -2
  161. package/dist/types/auth.js.map +0 -1
  162. package/dist/types/auth.mjs +0 -1
  163. package/dist/types/auth.mjs.map +0 -1
  164. package/dist/types/client/actions.d.ts +0 -2
  165. package/dist/types/client/actions.d.ts.map +0 -1
  166. package/dist/types/client/session.d.ts +0 -7
  167. package/dist/types/client/session.d.ts.map +0 -1
  168. package/dist/types/components/TernSecureHostRenderer.d.ts +0 -30
  169. package/dist/types/components/TernSecureHostRenderer.d.ts.map +0 -1
  170. package/dist/types/components/background.d.ts +0 -2
  171. package/dist/types/components/background.d.ts.map +0 -1
  172. package/dist/types/components/old.d.ts +0 -2
  173. package/dist/types/components/old.d.ts.map +0 -1
  174. package/dist/types/components/uiComponent.d.ts +0 -27
  175. package/dist/types/components/uiComponent.d.ts.map +0 -1
  176. package/dist/types/components/withTernSecure.d.ts +0 -16
  177. package/dist/types/components/withTernSecure.d.ts.map +0 -1
  178. package/dist/types/ctx/AuthProvider.d.ts +0 -3
  179. package/dist/types/ctx/AuthProvider.d.ts.map +0 -1
  180. package/dist/types/ctx/IsomorphicTernSecureCtx.d.ts +0 -6
  181. package/dist/types/ctx/IsomorphicTernSecureCtx.d.ts.map +0 -1
  182. package/dist/types/ctx/SessionCtx.d.ts +0 -2
  183. package/dist/types/ctx/SessionCtx.d.ts.map +0 -1
  184. package/dist/types/ctx/TernSecureCtxProvider.d.ts +0 -14
  185. package/dist/types/ctx/TernSecureCtxProvider.d.ts.map +0 -1
  186. package/dist/types/ctx/TernSecureProvider.d.ts +0 -6
  187. package/dist/types/ctx/TernSecureProvider.d.ts.map +0 -1
  188. package/dist/types/ctx/UserCtx.d.ts +0 -2
  189. package/dist/types/ctx/UserCtx.d.ts.map +0 -1
  190. package/dist/types/hooks/useAssertWrappedTernSecureProvider.d.ts +0 -2
  191. package/dist/types/hooks/useAssertWrappedTernSecureProvider.d.ts.map +0 -1
  192. package/dist/types/hooks/useAuth.d.ts +0 -3
  193. package/dist/types/hooks/useAuth.d.ts.map +0 -1
  194. package/dist/types/hooks/useAuthState.d.ts +0 -14
  195. package/dist/types/hooks/useAuthState.d.ts.map +0 -1
  196. package/dist/types/hooks/useIdToken.d.ts +0 -19
  197. package/dist/types/hooks/useIdToken.d.ts.map +0 -1
  198. package/dist/types/hooks/useMaxAllowedInstances.d.ts +0 -4
  199. package/dist/types/hooks/useMaxAllowedInstances.d.ts.map +0 -1
  200. package/dist/types/hooks/useSession.d.ts +0 -12
  201. package/dist/types/hooks/useSession.d.ts.map +0 -1
  202. package/dist/types/hooks/useSignUp.d.ts +0 -11
  203. package/dist/types/hooks/useSignUp.d.ts.map +0 -1
  204. package/dist/types/hooks/useWaitForComponentMount.d.ts +0 -8
  205. package/dist/types/hooks/useWaitForComponentMount.d.ts.map +0 -1
  206. package/dist/types/index.d.ts +0 -14
  207. package/dist/types/index.d.ts.map +0 -1
  208. package/dist/types/lib/isomorphicTernSecure.d.ts +0 -70
  209. package/dist/types/lib/isomorphicTernSecure.d.ts.map +0 -1
  210. package/dist/types/lib/utils.d.ts +0 -3
  211. package/dist/types/lib/utils.d.ts.map +0 -1
  212. package/dist/types/route-handler/internal-route.d.ts +0 -13
  213. package/dist/types/route-handler/internal-route.d.ts.map +0 -1
  214. package/dist/types/types/auth.d.ts +0 -2
  215. package/dist/types/types/auth.d.ts.map +0 -1
  216. package/dist/types/types.d.ts +0 -94
  217. package/dist/types/types.d.ts.map +0 -1
  218. package/dist/types/utils/client-init.d.ts +0 -2
  219. package/dist/types/utils/client-init.d.ts.map +0 -1
  220. package/dist/types/utils/config.d.ts +0 -35
  221. package/dist/types/utils/config.d.ts.map +0 -1
  222. package/dist/types/utils/construct.d.ts +0 -38
  223. package/dist/types/utils/construct.d.ts.map +0 -1
  224. package/dist/types/utils/create-styles.d.ts +0 -99
  225. package/dist/types/utils/create-styles.d.ts.map +0 -1
  226. package/dist/types/utils/debug.d.ts +0 -13
  227. package/dist/types/utils/debug.d.ts.map +0 -1
  228. package/dist/types/utils/redirect.d.ts +0 -9
  229. package/dist/types/utils/redirect.d.ts.map +0 -1
  230. package/dist/utils/client-init.d.mts +0 -2
  231. package/dist/utils/client-init.d.ts +0 -2
  232. package/dist/utils/client-init.js +0 -2
  233. package/dist/utils/client-init.js.map +0 -1
  234. package/dist/utils/client-init.mjs +0 -1
  235. package/dist/utils/client-init.mjs.map +0 -1
@@ -1,2 +0,0 @@
1
- "use strict";var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var g=(i,e)=>{for(var t in e)s(i,t,{get:e[t],enumerable:!0})},T=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of S(e))!p.call(i,n)&&n!==t&&s(i,n,{get:()=>e[n],enumerable:!(r=l(e,n))||r.enumerable});return i};var m=i=>T(s({},"__esModule",{value:!0}),i);var I={};g(I,{IsomorphicTernSecure:()=>u,inBrowser:()=>o,isConstructor:()=>d});module.exports=m(I);var h=require("@tern-secure/shared/eventBus"),c=require("@tern-secure/shared/loadTernUIScript");const f={name:"@tern-secure/react",version:"1.1.5",environment:process.env.NODE_ENV};function o(){return typeof window<"u"}class u{_mode;options;TernSecure;ternui=null;_authProvider;#n="loading";#t;premountState={signInNodes:new Map,signUpNodes:new Map,userButttonNodes:new Map,verifyNodes:new Set,methodCalls:new Map,authStateListeners:new Set,errorListeners:new Set};static#r;#e=new h.EventEmitter;get isReady(){return this.ternui?.isReady||!1}get status(){return this.ternui?this.ternui?.status||(this.ternui.isReady?"ready":"loading"):this.#n}get isLoading(){return this.ternui?.isLoading||!1}get error(){return this.ternui?.error||null}get requiresVerification(){return this.ternui?.requiresVerification||!0}static getOrCreateInstance(e){return(!o()||!this.#r||e.TernSecure&&this.#r.TernSecure!==e.TernSecure)&&(this.#r=new u(e)),this.#r}static clearInstance(){this.#r=null}get customDomain(){if(typeof this.#t=="function")throw new Error("Unsported customDomain type: function");return this.#t||""}get proxyUrl(){return this.ternui?.proxyUrl||this.options.proxyUrl}get apiKey(){return this.ternui?.apiKey||this.options.apiKey}get projectId(){return this.ternui?.projectId}get sdkMetadata(){return this.ternui?.sdkMetadata||this.options.sdkMetadata||void 0}get version(){return this.ternui?.version}get mode(){return this._mode}constructor(e){const{TernSecure:t=null,customDomain:r}=e||{};this.#t=r,this.options=e,this.TernSecure=t,this._mode=o()?"browser":"server",this.#e.emit("statusChange",this.status),this.options.sdkMetadata||(this.options.sdkMetadata=f),this.#t&&this.loadTernUI()}get auth(){return this.ternui?.auth||{user:null,session:null}}get isVisible(){return this.ternui?.isVisible||!1}get currentView(){return this.ternui?.currentView||null}get ternAuth(){if(this.ternui)return this.ternui.ternAuth}async loadTernUI(){if(this._mode!=="browser"||this.isReady){console.warn("[IsomorphicTernSecure] loadTernUI called in non-browser mode");return}typeof window<"u"&&(window.customDomain=this.#t);try{if(this.TernSecure){let e;d(this.TernSecure)?(e=new this.TernSecure(this.#t),this.beforeLoad(e),await e.load(this.options)):(e=this.TernSecure,e.isReady||(this.beforeLoad(e),await e.load(this.options))),global.TernSecure=e}else{if(global.TernSecure||await(0,c.loadTernUIScript)({...this.options,customDomain:this.#t}),!global.TernSecure)throw new Error("TernSecure instance is not available globally");this.beforeLoad(global.TernSecure),await global.TernSecure.load(this.options)}return global.TernSecure?.isReady?(console.log("[IsomorphicTernSecure] global.TernSecure.ready: Injecting TernUI..."),this.injectTernUI(global.TernSecure)):void 0}catch(e){const t=e;this.#e.emit("error",t),console.error(t.stack||t.message||t);return}}beforeLoad=e=>{if(!e)throw new Error("Failed to inject TernUI")};injectTernUI=e=>{if(!e)throw new Error("TernUI instance is not initialized");return this.ternui=e,this.subscribeToTernUIEvents(),this.premountState.signInNodes.forEach((t,r)=>{console.log("[IsomorphicTernSecure] Processing premounted SignIn node",{node:r,config:t}),e.showSignIn(r,t)}),this.premountState.signUpNodes.forEach((t,r)=>{console.log("[IsomorphicTernSecure] Processing premounted SignUp node",{node:r,config:t}),e.showSignUp(r,t)}),this.#e.emit("statusChange","ready"),typeof this.ternui.status>"u"&&(this.#n="ready",this.#e.emit("statusChange","ready"),console.log("[IsomorphicTernSecure] Set internal status to ready (ternui has no status)")),this.ternui};subscribeToTernUIEvents=()=>{if(!this.ternui?.events){console.warn("[IsomorphicTernSecure] TernUI instance has no events system");return}const{events:e}=this.ternui;e.onStatusChanged(t=>{console.log("[IsomorphicTernSecure] Received status change from ternui:",{newStatus:t,previousInternalStatus:this.#n,ternuiStatus:this.ternui?.status}),this.#n=t,this.#e.emit("statusChange",t)}),e.onAuthStateChanged(t=>{console.log("[IsomorphicTernSecure] Received auth state from ternui:",t),this.premountState.authStateListeners.forEach(r=>{try{r(t)}catch(n){console.error("[IsomorphicTernSecure] Error in premounted auth state listener:",n)}}),this.#e.emit("authStateChange",t)}),e.onError?.(t=>{console.log("[IsomorphicTernSecure] Received error from ternui:",t),this.#e.emit("error",t)}),console.log("[IsomorphicTernSecure] Subscribed to TernUI events")};#i(){return new Promise(e=>{e(this.ternui)})}initialize=async e=>{try{await this.#i()}catch(t){throw console.error("[IsomorphicTernSecure] Failed to initialize TernUI:",t),t}};showSignIn=(e,t)=>{this.ternui&&this.isReady?this.ternui.showSignIn(e,t):this.premountState.signInNodes.set(e,t)};hideSignIn=e=>{this.ternui&&this.isReady?this.ternui.hideSignIn(e):this.premountState.signInNodes.delete(e)};showSignUp=(e,t)=>{this.ternui&&this.isReady?this.ternui.showSignUp(e,t):this.premountState.signUpNodes.set(e,t)};hideSignUp=e=>{this.ternui&&this.isReady?this.ternui.hideSignUp(e):this.premountState.signUpNodes.delete(e)};showUserButton=e=>{this.ternui&&this.isReady?this.ternui.showUserButton(e):this.premountState.userButttonNodes.set(e,void 0)};hideUserButton=e=>{this.ternui&&this.isReady?this.ternui.hideUserButton(e):this.premountState.userButttonNodes.delete(e)};clearError=()=>{this.ternui?.clearError&&this.ternui.clearError()};setLoading=e=>{this.ternui?.setLoading&&this.ternui.setLoading(e)};getRedirectResult=async()=>{if(!this.ternui?.getRedirectResult)throw new Error("TernSecure instance not initialized");return this.ternui.getRedirectResult()};shouldRedirect=e=>this.ternui?.shouldRedirect?this.ternui.shouldRedirect(e):!1;constructUrlWithAuthRedirect=e=>this.ternui?.constructUrlWithAuthRedirect?this.ternui.constructUrlWithAuthRedirect(e):e;redirectToSignIn=async e=>{this.ternui?.redirectToSignIn&&this.ternui.redirectToSignIn()};redirectToSignUp=async e=>{this.ternui?.redirectToSignUp&&this.ternui.redirectToSignUp()};redirectAfterSignIn=e=>{this.ternui?.redirectAfterSignIn&&this.ternui.redirectAfterSignIn()};redirectAfterSignUp=e=>{this.ternui?.redirectAfterSignUp&&this.ternui.redirectAfterSignUp()};get events(){return{onAuthStateChanged:e=>(console.log("[IsomorphicTernSecure] Setting up onAuthStateChanged listener"),this.ternui?.events?(console.log("[IsomorphicTernSecure] Delegating onAuthStateChanged to ternui.events"),this.ternui.events.onAuthStateChanged(e)):(this.premountState.authStateListeners.add(e),()=>{this.premountState.authStateListeners.delete(e)})),onError:e=>this.ternui?.events?this.ternui.events.onError(e):(this.premountState.errorListeners.add(e),()=>{this.premountState.errorListeners.delete(e)}),onStatusChanged:e=>this.ternui?.events?.onStatusChanged?this.ternui.events.onStatusChanged(e):(this.#e.on("statusChange",e),()=>{this.#e.off("statusChange",e)})}}queueMethodCall(e,t){const r=async()=>await t(),n=this.premountState.methodCalls.get(e)||[];n.push(r),this.premountState.methodCalls.set(e,n)}setAuthProvider(e){if(!e)throw new Error("TernSecureAuthProvider instance is required");this._authProvider=e,this.ternui&&typeof this.ternui.setTernAuth=="function"&&(this.ternui.setTernAuth(e),console.log("[IsomorphicTernSecure] Auth provider set on core instance"))}__internal_updateInstance(e){this.premountState.signInNodes.forEach((t,r)=>{this.showSignIn(r,t)}),this.premountState.signUpNodes.forEach((t,r)=>{this.showSignUp(r,t)}),this.premountState.userButttonNodes.forEach((t,r)=>{this.showUserButton(r)}),this.premountState.methodCalls.forEach((t,r)=>{t.forEach(async n=>{try{await n()}catch(a){console.error(`Error processing queued ${String(r)} operation:`,a)}})}),this.premountState.authStateListeners.forEach(t=>{this.ternui?.events&&this.ternui.events.onAuthStateChanged(t)}),this.premountState.errorListeners.forEach(t=>{this.ternui?.events&&this.ternui.events.onError(t)}),this.premountState={signInNodes:new Map,signUpNodes:new Map,userButttonNodes:new Map,verifyNodes:new Set,methodCalls:new Map,authStateListeners:new Set,errorListeners:new Set}}}function d(i){return typeof i=="function"}0&&(module.exports={IsomorphicTernSecure,inBrowser,isConstructor});
2
- //# sourceMappingURL=isomorphicTernSecure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/isomorphicTernSecure.ts"],"sourcesContent":["import type { \n TernSecureInstanceTree, \n AuthErrorTree,\n TernSecureInstanceTreeStatus,\n TernSecureAuthProvider,\n SignInPropsTree,\n TernSecureState,\n SignUpPropsTree,\n SignInRedirectOptions,\n SignUpRedirectOptions,\n RedirectOptions,\n} from '@tern-secure/types';\nimport type { \n Browser, \n BrowserConstructor,\n TernSecureProps, \n IsomorphicTernSecureOptions, \n HeadlessUIBrowser,\n HeadlessUIBrowserConstructor\n} from '../types'\nimport { EventEmitter } from '@tern-secure/shared/eventBus'\nimport { loadTernUIScript } from '@tern-secure/shared/loadTernUIScript';\n\nconst SDK_METADATA = {\n name: __PACKAGE_NAME__,\n version: __PACKAGE_VERSION__,\n environment: process.env.NODE_ENV,\n}\n\n\nexport interface Global {\n TernSecure?: HeadlessUIBrowser | Browser;\n}\n\ndeclare const global: Global;\n\nexport function inBrowser(): boolean {\n return typeof window !== 'undefined';\n}\n\n\ninterface PreMountState {\n signInNodes: Map<HTMLDivElement, SignInPropsTree | undefined>;\n signUpNodes: Map<HTMLDivElement, SignUpPropsTree| undefined>;\n userButttonNodes: Map<HTMLDivElement, SignInPropsTree | undefined>;\n verifyNodes: Set<HTMLDivElement>;\n methodCalls: Map<keyof TernSecureInstanceTree, Array<() => Promise<unknown>>>;\n authStateListeners: Set<(authState: TernSecureState) => void>;\n errorListeners: Set<(error: AuthErrorTree) => void>;\n}\n\n\n/**\n * IsomorphicTernSecure class manages the auth state and UI rendering\n * in both browser and server environments\n */\nexport class IsomorphicTernSecure implements TernSecureInstanceTree {\n private readonly _mode: 'browser' | 'server';\n private readonly options: IsomorphicTernSecureOptions;\n private readonly TernSecure: TernSecureProps;\n private ternui: Browser | HeadlessUIBrowser | null = null;\n private _authProvider?: TernSecureAuthProvider;\n #status: TernSecureInstanceTreeStatus = 'loading';\n #customDomain?: string;\n private premountState: PreMountState = {\n signInNodes: new Map(),\n signUpNodes: new Map(),\n userButttonNodes: new Map(),\n verifyNodes: new Set(),\n methodCalls: new Map(),\n authStateListeners: new Set(),\n errorListeners: new Set(),\n };\n\n static #instance: IsomorphicTernSecure | null | undefined;\n #eventBus = new EventEmitter();\n\n get isReady(): boolean {\n return this.ternui?.isReady || false;\n }\n\n get status(): TernSecureInstanceTreeStatus {\n if (!this.ternui) {\n return this.#status;\n }\n return (\n this.ternui?.status || \n (this.ternui.isReady ? 'ready' : 'loading')\n )\n }\n\n get isLoading(): boolean {\n return this.ternui?.isLoading || false;\n }\n\n get error(): Error | null {\n return this.ternui?.error || null;\n }\n\n get requiresVerification(): boolean {\n return this.ternui?.requiresVerification || true;\n }\n\n static getOrCreateInstance(options: IsomorphicTernSecureOptions) {\n if (\n !inBrowser() || \n !this.#instance || \n (options.TernSecure && this.#instance.TernSecure !== options.TernSecure)) {\n this.#instance = new IsomorphicTernSecure(options);\n }\n\n return this.#instance;\n }\n \n static clearInstance() {\n this.#instance = null;\n }\n\n // Configuration properties delegated to core instance\n get customDomain(): string {\n if (typeof this.#customDomain === 'function') {\n throw new Error('Unsported customDomain type: function');\n }\n return this.#customDomain || '';\n }\n\n get proxyUrl(): string | undefined {\n return this.ternui?.proxyUrl || this.options.proxyUrl;\n }\n\n get apiKey(): string | undefined {\n return this.ternui?.apiKey || this.options.apiKey;\n }\n\n get projectId(): string | undefined {\n return this.ternui?.projectId;\n }\n\n get sdkMetadata() {\n return this.ternui?.sdkMetadata || this.options.sdkMetadata || undefined;\n }\n \n get version() {\n return this.ternui?.version;\n }\n\n get mode(): 'browser' | 'server' | undefined {\n return this._mode;\n }\n\n constructor(options: IsomorphicTernSecureOptions) {\n const { TernSecure = null, customDomain } = options || {};\n this.#customDomain = customDomain;\n this.options = options;\n this.TernSecure = TernSecure;\n this._mode = inBrowser() ? 'browser' : 'server';\n this.#eventBus.emit('statusChange', this.status);\n\n if(!this.options.sdkMetadata) {\n this.options.sdkMetadata = SDK_METADATA;\n }\n\n if (this.#customDomain) {\n this.loadTernUI();\n }\n }\n\n // Core auth state - delegate to core instance\n get auth(): TernSecureInstanceTree['auth'] {\n return this.ternui?.auth || {\n user: null,\n session: null\n };\n }\n\n // UI state properties - delegate to core instance\n get isVisible(): boolean {\n return this.ternui?.isVisible || false;\n }\n\n get currentView(): 'signIn' | 'signUp' | 'verify' | null {\n return this.ternui?.currentView || null;\n }\n\n // Core authentication methods - delegate to core instance\n get ternAuth(): TernSecureAuthProvider | undefined {\n if (this.ternui) {\n return this.ternui.ternAuth;\n }\n return undefined;\n }\n\n async loadTernUI(): Promise<HeadlessUIBrowser | Browser | undefined> {\n if (this._mode !== 'browser' || this.isReady) {\n console.warn('[IsomorphicTernSecure] loadTernUI called in non-browser mode');\n return;\n }\n\n if (typeof window !== 'undefined') {\n window.customDomain = this.#customDomain;\n }\n\n try {\n if(this.TernSecure) {\n let coreInstance: TernSecureProps;\n //console.log('[IsomorphicTernSecure] this.TernSecure: defined, checking readiness...');\n //const TernSecureHasLoadMethod = typeof this.TernSecure.load === 'function';\n if (isConstructor<BrowserConstructor | HeadlessUIBrowserConstructor>(this.TernSecure)) {\n coreInstance = new this.TernSecure(this.#customDomain);\n this.beforeLoad(coreInstance);\n await coreInstance.load(this.options);\n } else {\n //console.log('[IsomorphicTernSecure] this.TernSecure: does not have load method.');\n coreInstance = this.TernSecure;\n if (!coreInstance.isReady) {\n this.beforeLoad(coreInstance);\n await coreInstance.load(this.options);\n }\n }\n global.TernSecure = coreInstance;\n } else {\n //console.log('[IsomorphicTernSecure] Loading TernSecure from script is called...');\n if(!global.TernSecure) {\n //console.log('[IsomorphicTernSecure] Loading TernSecure from script...');\n await loadTernUIScript({\n ...this.options,\n customDomain: this.#customDomain,\n })\n }\n\n if(!global.TernSecure) {\n throw new Error('TernSecure instance is not available globally');\n }\n\n this.beforeLoad(global.TernSecure);\n await global.TernSecure.load(this.options);\n }\n\n if(global.TernSecure?.isReady) {\n console.log('[IsomorphicTernSecure] global.TernSecure.ready: Injecting TernUI...');\n return this.injectTernUI(global.TernSecure);\n }\n return;\n } catch (err) {\n const error = err as Error;\n this.#eventBus.emit('error', error);\n console.error(error.stack || error.message || error);\n return;\n }\n }\n\n private beforeLoad = (ternui: Browser | HeadlessUIBrowser | undefined) => {\n if (!ternui) {\n throw new Error('Failed to inject TernUI');\n }\n };\n\n private injectTernUI = (ternui: Browser | HeadlessUIBrowser | undefined) => {\n if (!ternui) {\n throw new Error('TernUI instance is not initialized');\n }\n\n this.ternui = ternui;\n\n this.subscribeToTernUIEvents();\n\n //ternui.setTernAuth(this._authProvider);\n\n this.premountState.signInNodes.forEach((config, node) => {\n console.log('[IsomorphicTernSecure] Processing premounted SignIn node', { node, config });\n ternui.showSignIn(node, config);\n });\n\n this.premountState.signUpNodes.forEach((config, node) => {\n console.log('[IsomorphicTernSecure] Processing premounted SignUp node', { node, config });\n ternui.showSignUp(node, config);\n });\n\n //this.#status = 'ready';\n this.#eventBus.emit('statusChange', 'ready');\n\n if (typeof this.ternui.status === 'undefined') {\n this.#status = 'ready';\n this.#eventBus.emit('statusChange', 'ready');\n console.log('[IsomorphicTernSecure] Set internal status to ready (ternui has no status)');\n }\n\n return this.ternui;\n \n };\n \n /**\n * Subscribe to TernUI events and delegate status changes\n */\n private subscribeToTernUIEvents = () => {\n if (!this.ternui?.events) {\n console.warn('[IsomorphicTernSecure] TernUI instance has no events system');\n return;\n }\n\n const { events } = this.ternui;\n\n // Subscribe to status changes from the core TernSecure instance\n events.onStatusChanged((newStatus: TernSecureInstanceTreeStatus) => {\n console.log('[IsomorphicTernSecure] Received status change from ternui:', {\n newStatus,\n previousInternalStatus: this.#status,\n ternuiStatus: this.ternui?.status\n });\n\n this.#status = newStatus;\n this.#eventBus.emit('statusChange', newStatus);\n });\n\n events.onAuthStateChanged((authState: TernSecureState) => {\n console.log('[IsomorphicTernSecure] Received auth state from ternui:', authState);\n this.premountState.authStateListeners.forEach(callback => {\n try {\n callback(authState);\n } catch (error) {\n console.error('[IsomorphicTernSecure] Error in premounted auth state listener:', error);\n }\n });\n\n this.#eventBus.emit('authStateChange', authState);\n });\n\n events.onError?.((error) => {\n console.log('[IsomorphicTernSecure] Received error from ternui:', error);\n this.#eventBus.emit('error', error);\n });\n\n console.log('[IsomorphicTernSecure] Subscribed to TernUI events');\n };\n\n #awaitForTernUI(): Promise<HeadlessUIBrowser | Browser>{\n return new Promise<HeadlessUIBrowser | Browser>(resolve => {\n //console.log('[IsomorphicTernSecure] Awaiting TernUI initialization...');\n resolve(this.ternui!);\n });\n }\n\n initialize = async (props: any): Promise<void> => {\n try {\n //console.log('[IsomorphicTernSecure] Initializing TernUI...');\n await this.#awaitForTernUI();\n //console.log('[IsomorphicTernSecure] TernUI initialized successfully');\n } catch (error) {\n console.error('[IsomorphicTernSecure] Failed to initialize TernUI:', error);\n throw error;\n }\n }\n\n\n // UI control methods\n showSignIn = (node: HTMLDivElement, config?: SignInPropsTree): void => {\n if (this.ternui && this.isReady) {\n this.ternui.showSignIn(node, config);\n } else {\n this.premountState.signInNodes.set(node, config);\n }\n };\n\n hideSignIn = (node: HTMLDivElement): void => {\n if (this.ternui && this.isReady) {\n this.ternui.hideSignIn(node);\n } else {\n this.premountState.signInNodes.delete(node);\n }\n };\n\n showSignUp = (node: HTMLDivElement, config?: SignUpPropsTree): void => {\n if (this.ternui && this.isReady) {\n this.ternui.showSignUp(node, config);\n } else {\n this.premountState.signUpNodes.set(node, config);\n }\n };\n\n hideSignUp = (node: HTMLDivElement): void => {\n if (this.ternui && this.isReady) {\n this.ternui.hideSignUp(node);\n } else {\n this.premountState.signUpNodes.delete(node);\n }\n };\n\n showUserButton = (node: HTMLDivElement): void => {\n if (this.ternui && this.isReady) {\n this.ternui.showUserButton(node);\n } else {\n this.premountState.userButttonNodes.set(node, undefined);\n }\n }\n\n hideUserButton = (node: HTMLDivElement): void => {\n if (this.ternui && this.isReady) {\n this.ternui.hideUserButton(node);\n } else {\n this.premountState.userButttonNodes.delete(node);\n }\n };\n\n clearError = (): void => {\n if (this.ternui?.clearError) {\n this.ternui.clearError();\n }\n };\n\n setLoading = (isLoading: boolean): void => {\n if (this.ternui?.setLoading) {\n this.ternui.setLoading(isLoading);\n }\n };\n\n // Platform methods - delegate to core instance\n getRedirectResult = async (): Promise<any> => {\n if (!this.ternui?.getRedirectResult) {\n throw new Error('TernSecure instance not initialized');\n }\n return this.ternui.getRedirectResult();\n };\n\n shouldRedirect = (currentPath: string): boolean | string => {\n if (!this.ternui?.shouldRedirect) {\n return false;\n }\n return this.ternui.shouldRedirect(currentPath);\n };\n\n constructUrlWithAuthRedirect = (baseUrl: string): string => {\n if (!this.ternui?.constructUrlWithAuthRedirect) {\n return baseUrl;\n }\n return this.ternui.constructUrlWithAuthRedirect(baseUrl);\n };\n\n redirectToSignIn = async (options?: SignInRedirectOptions) => {\n if (this.ternui?.redirectToSignIn) {\n this.ternui.redirectToSignIn();\n }\n };\n\n redirectToSignUp = async (options?: SignUpRedirectOptions) => {\n if (this.ternui?.redirectToSignUp) {\n this.ternui.redirectToSignUp();\n }\n };\n\n redirectAfterSignIn = (redirectUrl?: string): void => {\n if (this.ternui?.redirectAfterSignIn) {\n this.ternui.redirectAfterSignIn();\n }\n }\n\n redirectAfterSignUp = (redirectUrl?: string): void => {\n if (this.ternui?.redirectAfterSignUp) {\n this.ternui.redirectAfterSignUp();\n }\n };\n\n // Event handling - delegate to core instance with fallback to premount state\n get events(): TernSecureInstanceTree['events'] {\n return {\n onAuthStateChanged: (callback: (authState: TernSecureState) => void) => {\n console.log('[IsomorphicTernSecure] Setting up onAuthStateChanged listener');\n if (this.ternui?.events) {\n console.log('[IsomorphicTernSecure] Delegating onAuthStateChanged to ternui.events');\n return this.ternui.events.onAuthStateChanged(callback);\n }\n this.premountState.authStateListeners.add(callback);\n return () => {\n this.premountState.authStateListeners.delete(callback);\n };\n },\n onError: (callback: (error: AuthErrorTree) => void) => {\n if (this.ternui?.events) {\n return this.ternui.events.onError(callback);\n }\n this.premountState.errorListeners.add(callback);\n return () => {\n this.premountState.errorListeners.delete(callback);\n };\n },\n onStatusChanged: (callback: (status: TernSecureInstanceTreeStatus) => void) => {\n if (this.ternui?.events?.onStatusChanged) {\n return this.ternui.events.onStatusChanged(callback);\n }\n this.#eventBus.on('statusChange', callback);\n return () => {\n this.#eventBus.off('statusChange', callback);\n };\n }\n };\n }\n\n\n private queueMethodCall<T>(\n section: keyof TernSecureInstanceTree,\n promise: () => Promise<T> | undefined\n ) {\n const wrappedPromise = async () => {\n const result = await promise();\n return result as unknown;\n };\n const calls = this.premountState.methodCalls.get(section) || [];\n calls.push(wrappedPromise);\n this.premountState.methodCalls.set(section, calls);\n }\n\n public setAuthProvider(ternAuth: TernSecureAuthProvider): void {\n if (!ternAuth) {\n throw new Error('TernSecureAuthProvider instance is required');\n }\n this._authProvider = ternAuth;\n if (this.ternui && typeof this.ternui.setTernAuth === 'function') {\n this.ternui.setTernAuth(ternAuth);\n console.log('[IsomorphicTernSecure] Auth provider set on core instance');\n } \n }\n\n\n /**\n * Update the instance and process any queued operations\n */\n __internal_updateInstance(instance: TernSecureInstanceTree) {\n // Sync the core instance if needed\n //Object.assign(this.TernSecure, instance);\n\n // Process pre-mounted nodes\n this.premountState.signInNodes.forEach((config, node) => {\n this.showSignIn(node, config);\n });\n this.premountState.signUpNodes.forEach((config, node) => {\n this.showSignUp(node, config);\n });\n this.premountState.userButttonNodes.forEach((config, node) => {\n this.showUserButton(node);\n });\n\n // Process queued method calls\n this.premountState.methodCalls.forEach((calls, section) => {\n calls.forEach(async promise => {\n try {\n await promise();\n } catch (error) {\n console.error(`Error processing queued ${String(section)} operation:`, error);\n }\n });\n });\n\n // Process event listeners\n this.premountState.authStateListeners.forEach(callback => {\n if (this.ternui?.events) this.ternui.events.onAuthStateChanged(callback);\n });\n this.premountState.errorListeners.forEach(callback => {\n if (this.ternui?.events) this.ternui.events.onError(callback);\n });\n \n\n // Clear premount state\n this.premountState = {\n signInNodes: new Map(),\n signUpNodes: new Map(),\n userButttonNodes: new Map(),\n verifyNodes: new Set(),\n methodCalls: new Map(),\n authStateListeners: new Set(),\n errorListeners: new Set(),\n };\n }\n\n}\n\n\nexport function isConstructor<T>(f: any): f is T {\n return typeof f === 'function';\n}\n\n"],"mappings":"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","names":["isomorphicTernSecure_exports","__export","IsomorphicTernSecure","inBrowser","isConstructor","__toCommonJS","import_eventBus","import_loadTernUIScript","SDK_METADATA","#status","#customDomain","#instance","#eventBus","options","TernSecure","customDomain","coreInstance","err","error","ternui","config","node","events","newStatus","authState","callback","#awaitForTernUI","resolve","props","isLoading","currentPath","baseUrl","redirectUrl","section","promise","wrappedPromise","calls","ternAuth","instance","f"]}
@@ -1,2 +0,0 @@
1
- import{EventEmitter as a}from"@tern-secure/shared/eventBus";import{loadTernUIScript as h}from"@tern-secure/shared/loadTernUIScript";const c={name:"@tern-secure/react",version:"1.1.5",environment:process.env.NODE_ENV};function s(){return typeof window<"u"}class o{_mode;options;TernSecure;ternui=null;_authProvider;#n="loading";#t;premountState={signInNodes:new Map,signUpNodes:new Map,userButttonNodes:new Map,verifyNodes:new Set,methodCalls:new Map,authStateListeners:new Set,errorListeners:new Set};static#r;#e=new a;get isReady(){return this.ternui?.isReady||!1}get status(){return this.ternui?this.ternui?.status||(this.ternui.isReady?"ready":"loading"):this.#n}get isLoading(){return this.ternui?.isLoading||!1}get error(){return this.ternui?.error||null}get requiresVerification(){return this.ternui?.requiresVerification||!0}static getOrCreateInstance(e){return(!s()||!this.#r||e.TernSecure&&this.#r.TernSecure!==e.TernSecure)&&(this.#r=new o(e)),this.#r}static clearInstance(){this.#r=null}get customDomain(){if(typeof this.#t=="function")throw new Error("Unsported customDomain type: function");return this.#t||""}get proxyUrl(){return this.ternui?.proxyUrl||this.options.proxyUrl}get apiKey(){return this.ternui?.apiKey||this.options.apiKey}get projectId(){return this.ternui?.projectId}get sdkMetadata(){return this.ternui?.sdkMetadata||this.options.sdkMetadata||void 0}get version(){return this.ternui?.version}get mode(){return this._mode}constructor(e){const{TernSecure:t=null,customDomain:r}=e||{};this.#t=r,this.options=e,this.TernSecure=t,this._mode=s()?"browser":"server",this.#e.emit("statusChange",this.status),this.options.sdkMetadata||(this.options.sdkMetadata=c),this.#t&&this.loadTernUI()}get auth(){return this.ternui?.auth||{user:null,session:null}}get isVisible(){return this.ternui?.isVisible||!1}get currentView(){return this.ternui?.currentView||null}get ternAuth(){if(this.ternui)return this.ternui.ternAuth}async loadTernUI(){if(this._mode!=="browser"||this.isReady){console.warn("[IsomorphicTernSecure] loadTernUI called in non-browser mode");return}typeof window<"u"&&(window.customDomain=this.#t);try{if(this.TernSecure){let e;d(this.TernSecure)?(e=new this.TernSecure(this.#t),this.beforeLoad(e),await e.load(this.options)):(e=this.TernSecure,e.isReady||(this.beforeLoad(e),await e.load(this.options))),global.TernSecure=e}else{if(global.TernSecure||await h({...this.options,customDomain:this.#t}),!global.TernSecure)throw new Error("TernSecure instance is not available globally");this.beforeLoad(global.TernSecure),await global.TernSecure.load(this.options)}return global.TernSecure?.isReady?(console.log("[IsomorphicTernSecure] global.TernSecure.ready: Injecting TernUI..."),this.injectTernUI(global.TernSecure)):void 0}catch(e){const t=e;this.#e.emit("error",t),console.error(t.stack||t.message||t);return}}beforeLoad=e=>{if(!e)throw new Error("Failed to inject TernUI")};injectTernUI=e=>{if(!e)throw new Error("TernUI instance is not initialized");return this.ternui=e,this.subscribeToTernUIEvents(),this.premountState.signInNodes.forEach((t,r)=>{console.log("[IsomorphicTernSecure] Processing premounted SignIn node",{node:r,config:t}),e.showSignIn(r,t)}),this.premountState.signUpNodes.forEach((t,r)=>{console.log("[IsomorphicTernSecure] Processing premounted SignUp node",{node:r,config:t}),e.showSignUp(r,t)}),this.#e.emit("statusChange","ready"),typeof this.ternui.status>"u"&&(this.#n="ready",this.#e.emit("statusChange","ready"),console.log("[IsomorphicTernSecure] Set internal status to ready (ternui has no status)")),this.ternui};subscribeToTernUIEvents=()=>{if(!this.ternui?.events){console.warn("[IsomorphicTernSecure] TernUI instance has no events system");return}const{events:e}=this.ternui;e.onStatusChanged(t=>{console.log("[IsomorphicTernSecure] Received status change from ternui:",{newStatus:t,previousInternalStatus:this.#n,ternuiStatus:this.ternui?.status}),this.#n=t,this.#e.emit("statusChange",t)}),e.onAuthStateChanged(t=>{console.log("[IsomorphicTernSecure] Received auth state from ternui:",t),this.premountState.authStateListeners.forEach(r=>{try{r(t)}catch(n){console.error("[IsomorphicTernSecure] Error in premounted auth state listener:",n)}}),this.#e.emit("authStateChange",t)}),e.onError?.(t=>{console.log("[IsomorphicTernSecure] Received error from ternui:",t),this.#e.emit("error",t)}),console.log("[IsomorphicTernSecure] Subscribed to TernUI events")};#i(){return new Promise(e=>{e(this.ternui)})}initialize=async e=>{try{await this.#i()}catch(t){throw console.error("[IsomorphicTernSecure] Failed to initialize TernUI:",t),t}};showSignIn=(e,t)=>{this.ternui&&this.isReady?this.ternui.showSignIn(e,t):this.premountState.signInNodes.set(e,t)};hideSignIn=e=>{this.ternui&&this.isReady?this.ternui.hideSignIn(e):this.premountState.signInNodes.delete(e)};showSignUp=(e,t)=>{this.ternui&&this.isReady?this.ternui.showSignUp(e,t):this.premountState.signUpNodes.set(e,t)};hideSignUp=e=>{this.ternui&&this.isReady?this.ternui.hideSignUp(e):this.premountState.signUpNodes.delete(e)};showUserButton=e=>{this.ternui&&this.isReady?this.ternui.showUserButton(e):this.premountState.userButttonNodes.set(e,void 0)};hideUserButton=e=>{this.ternui&&this.isReady?this.ternui.hideUserButton(e):this.premountState.userButttonNodes.delete(e)};clearError=()=>{this.ternui?.clearError&&this.ternui.clearError()};setLoading=e=>{this.ternui?.setLoading&&this.ternui.setLoading(e)};getRedirectResult=async()=>{if(!this.ternui?.getRedirectResult)throw new Error("TernSecure instance not initialized");return this.ternui.getRedirectResult()};shouldRedirect=e=>this.ternui?.shouldRedirect?this.ternui.shouldRedirect(e):!1;constructUrlWithAuthRedirect=e=>this.ternui?.constructUrlWithAuthRedirect?this.ternui.constructUrlWithAuthRedirect(e):e;redirectToSignIn=async e=>{this.ternui?.redirectToSignIn&&this.ternui.redirectToSignIn()};redirectToSignUp=async e=>{this.ternui?.redirectToSignUp&&this.ternui.redirectToSignUp()};redirectAfterSignIn=e=>{this.ternui?.redirectAfterSignIn&&this.ternui.redirectAfterSignIn()};redirectAfterSignUp=e=>{this.ternui?.redirectAfterSignUp&&this.ternui.redirectAfterSignUp()};get events(){return{onAuthStateChanged:e=>(console.log("[IsomorphicTernSecure] Setting up onAuthStateChanged listener"),this.ternui?.events?(console.log("[IsomorphicTernSecure] Delegating onAuthStateChanged to ternui.events"),this.ternui.events.onAuthStateChanged(e)):(this.premountState.authStateListeners.add(e),()=>{this.premountState.authStateListeners.delete(e)})),onError:e=>this.ternui?.events?this.ternui.events.onError(e):(this.premountState.errorListeners.add(e),()=>{this.premountState.errorListeners.delete(e)}),onStatusChanged:e=>this.ternui?.events?.onStatusChanged?this.ternui.events.onStatusChanged(e):(this.#e.on("statusChange",e),()=>{this.#e.off("statusChange",e)})}}queueMethodCall(e,t){const r=async()=>await t(),n=this.premountState.methodCalls.get(e)||[];n.push(r),this.premountState.methodCalls.set(e,n)}setAuthProvider(e){if(!e)throw new Error("TernSecureAuthProvider instance is required");this._authProvider=e,this.ternui&&typeof this.ternui.setTernAuth=="function"&&(this.ternui.setTernAuth(e),console.log("[IsomorphicTernSecure] Auth provider set on core instance"))}__internal_updateInstance(e){this.premountState.signInNodes.forEach((t,r)=>{this.showSignIn(r,t)}),this.premountState.signUpNodes.forEach((t,r)=>{this.showSignUp(r,t)}),this.premountState.userButttonNodes.forEach((t,r)=>{this.showUserButton(r)}),this.premountState.methodCalls.forEach((t,r)=>{t.forEach(async n=>{try{await n()}catch(i){console.error(`Error processing queued ${String(r)} operation:`,i)}})}),this.premountState.authStateListeners.forEach(t=>{this.ternui?.events&&this.ternui.events.onAuthStateChanged(t)}),this.premountState.errorListeners.forEach(t=>{this.ternui?.events&&this.ternui.events.onError(t)}),this.premountState={signInNodes:new Map,signUpNodes:new Map,userButttonNodes:new Map,verifyNodes:new Set,methodCalls:new Map,authStateListeners:new Set,errorListeners:new Set}}}function d(u){return typeof u=="function"}export{o as IsomorphicTernSecure,s as inBrowser,d as isConstructor};
2
- //# sourceMappingURL=isomorphicTernSecure.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/isomorphicTernSecure.ts"],"sourcesContent":["import type { \n TernSecureInstanceTree, \n AuthErrorTree,\n TernSecureInstanceTreeStatus,\n TernSecureAuthProvider,\n SignInPropsTree,\n TernSecureState,\n SignUpPropsTree,\n SignInRedirectOptions,\n SignUpRedirectOptions,\n RedirectOptions,\n} from '@tern-secure/types';\nimport type { \n Browser, \n BrowserConstructor,\n TernSecureProps, \n IsomorphicTernSecureOptions, \n HeadlessUIBrowser,\n HeadlessUIBrowserConstructor\n} from '../types'\nimport { EventEmitter } from '@tern-secure/shared/eventBus'\nimport { loadTernUIScript } from '@tern-secure/shared/loadTernUIScript';\n\nconst SDK_METADATA = {\n name: __PACKAGE_NAME__,\n version: __PACKAGE_VERSION__,\n environment: process.env.NODE_ENV,\n}\n\n\nexport interface Global {\n TernSecure?: HeadlessUIBrowser | Browser;\n}\n\ndeclare const global: Global;\n\nexport function inBrowser(): boolean {\n return typeof window !== 'undefined';\n}\n\n\ninterface PreMountState {\n signInNodes: Map<HTMLDivElement, SignInPropsTree | undefined>;\n signUpNodes: Map<HTMLDivElement, SignUpPropsTree| undefined>;\n userButttonNodes: Map<HTMLDivElement, SignInPropsTree | undefined>;\n verifyNodes: Set<HTMLDivElement>;\n methodCalls: Map<keyof TernSecureInstanceTree, Array<() => Promise<unknown>>>;\n authStateListeners: Set<(authState: TernSecureState) => void>;\n errorListeners: Set<(error: AuthErrorTree) => void>;\n}\n\n\n/**\n * IsomorphicTernSecure class manages the auth state and UI rendering\n * in both browser and server environments\n */\nexport class IsomorphicTernSecure implements TernSecureInstanceTree {\n private readonly _mode: 'browser' | 'server';\n private readonly options: IsomorphicTernSecureOptions;\n private readonly TernSecure: TernSecureProps;\n private ternui: Browser | HeadlessUIBrowser | null = null;\n private _authProvider?: TernSecureAuthProvider;\n #status: TernSecureInstanceTreeStatus = 'loading';\n #customDomain?: string;\n private premountState: PreMountState = {\n signInNodes: new Map(),\n signUpNodes: new Map(),\n userButttonNodes: new Map(),\n verifyNodes: new Set(),\n methodCalls: new Map(),\n authStateListeners: new Set(),\n errorListeners: new Set(),\n };\n\n static #instance: IsomorphicTernSecure | null | undefined;\n #eventBus = new EventEmitter();\n\n get isReady(): boolean {\n return this.ternui?.isReady || false;\n }\n\n get status(): TernSecureInstanceTreeStatus {\n if (!this.ternui) {\n return this.#status;\n }\n return (\n this.ternui?.status || \n (this.ternui.isReady ? 'ready' : 'loading')\n )\n }\n\n get isLoading(): boolean {\n return this.ternui?.isLoading || false;\n }\n\n get error(): Error | null {\n return this.ternui?.error || null;\n }\n\n get requiresVerification(): boolean {\n return this.ternui?.requiresVerification || true;\n }\n\n static getOrCreateInstance(options: IsomorphicTernSecureOptions) {\n if (\n !inBrowser() || \n !this.#instance || \n (options.TernSecure && this.#instance.TernSecure !== options.TernSecure)) {\n this.#instance = new IsomorphicTernSecure(options);\n }\n\n return this.#instance;\n }\n \n static clearInstance() {\n this.#instance = null;\n }\n\n // Configuration properties delegated to core instance\n get customDomain(): string {\n if (typeof this.#customDomain === 'function') {\n throw new Error('Unsported customDomain type: function');\n }\n return this.#customDomain || '';\n }\n\n get proxyUrl(): string | undefined {\n return this.ternui?.proxyUrl || this.options.proxyUrl;\n }\n\n get apiKey(): string | undefined {\n return this.ternui?.apiKey || this.options.apiKey;\n }\n\n get projectId(): string | undefined {\n return this.ternui?.projectId;\n }\n\n get sdkMetadata() {\n return this.ternui?.sdkMetadata || this.options.sdkMetadata || undefined;\n }\n \n get version() {\n return this.ternui?.version;\n }\n\n get mode(): 'browser' | 'server' | undefined {\n return this._mode;\n }\n\n constructor(options: IsomorphicTernSecureOptions) {\n const { TernSecure = null, customDomain } = options || {};\n this.#customDomain = customDomain;\n this.options = options;\n this.TernSecure = TernSecure;\n this._mode = inBrowser() ? 'browser' : 'server';\n this.#eventBus.emit('statusChange', this.status);\n\n if(!this.options.sdkMetadata) {\n this.options.sdkMetadata = SDK_METADATA;\n }\n\n if (this.#customDomain) {\n this.loadTernUI();\n }\n }\n\n // Core auth state - delegate to core instance\n get auth(): TernSecureInstanceTree['auth'] {\n return this.ternui?.auth || {\n user: null,\n session: null\n };\n }\n\n // UI state properties - delegate to core instance\n get isVisible(): boolean {\n return this.ternui?.isVisible || false;\n }\n\n get currentView(): 'signIn' | 'signUp' | 'verify' | null {\n return this.ternui?.currentView || null;\n }\n\n // Core authentication methods - delegate to core instance\n get ternAuth(): TernSecureAuthProvider | undefined {\n if (this.ternui) {\n return this.ternui.ternAuth;\n }\n return undefined;\n }\n\n async loadTernUI(): Promise<HeadlessUIBrowser | Browser | undefined> {\n if (this._mode !== 'browser' || this.isReady) {\n console.warn('[IsomorphicTernSecure] loadTernUI called in non-browser mode');\n return;\n }\n\n if (typeof window !== 'undefined') {\n window.customDomain = this.#customDomain;\n }\n\n try {\n if(this.TernSecure) {\n let coreInstance: TernSecureProps;\n //console.log('[IsomorphicTernSecure] this.TernSecure: defined, checking readiness...');\n //const TernSecureHasLoadMethod = typeof this.TernSecure.load === 'function';\n if (isConstructor<BrowserConstructor | HeadlessUIBrowserConstructor>(this.TernSecure)) {\n coreInstance = new this.TernSecure(this.#customDomain);\n this.beforeLoad(coreInstance);\n await coreInstance.load(this.options);\n } else {\n //console.log('[IsomorphicTernSecure] this.TernSecure: does not have load method.');\n coreInstance = this.TernSecure;\n if (!coreInstance.isReady) {\n this.beforeLoad(coreInstance);\n await coreInstance.load(this.options);\n }\n }\n global.TernSecure = coreInstance;\n } else {\n //console.log('[IsomorphicTernSecure] Loading TernSecure from script is called...');\n if(!global.TernSecure) {\n //console.log('[IsomorphicTernSecure] Loading TernSecure from script...');\n await loadTernUIScript({\n ...this.options,\n customDomain: this.#customDomain,\n })\n }\n\n if(!global.TernSecure) {\n throw new Error('TernSecure instance is not available globally');\n }\n\n this.beforeLoad(global.TernSecure);\n await global.TernSecure.load(this.options);\n }\n\n if(global.TernSecure?.isReady) {\n console.log('[IsomorphicTernSecure] global.TernSecure.ready: Injecting TernUI...');\n return this.injectTernUI(global.TernSecure);\n }\n return;\n } catch (err) {\n const error = err as Error;\n this.#eventBus.emit('error', error);\n console.error(error.stack || error.message || error);\n return;\n }\n }\n\n private beforeLoad = (ternui: Browser | HeadlessUIBrowser | undefined) => {\n if (!ternui) {\n throw new Error('Failed to inject TernUI');\n }\n };\n\n private injectTernUI = (ternui: Browser | HeadlessUIBrowser | undefined) => {\n if (!ternui) {\n throw new Error('TernUI instance is not initialized');\n }\n\n this.ternui = ternui;\n\n this.subscribeToTernUIEvents();\n\n //ternui.setTernAuth(this._authProvider);\n\n this.premountState.signInNodes.forEach((config, node) => {\n console.log('[IsomorphicTernSecure] Processing premounted SignIn node', { node, config });\n ternui.showSignIn(node, config);\n });\n\n this.premountState.signUpNodes.forEach((config, node) => {\n console.log('[IsomorphicTernSecure] Processing premounted SignUp node', { node, config });\n ternui.showSignUp(node, config);\n });\n\n //this.#status = 'ready';\n this.#eventBus.emit('statusChange', 'ready');\n\n if (typeof this.ternui.status === 'undefined') {\n this.#status = 'ready';\n this.#eventBus.emit('statusChange', 'ready');\n console.log('[IsomorphicTernSecure] Set internal status to ready (ternui has no status)');\n }\n\n return this.ternui;\n \n };\n \n /**\n * Subscribe to TernUI events and delegate status changes\n */\n private subscribeToTernUIEvents = () => {\n if (!this.ternui?.events) {\n console.warn('[IsomorphicTernSecure] TernUI instance has no events system');\n return;\n }\n\n const { events } = this.ternui;\n\n // Subscribe to status changes from the core TernSecure instance\n events.onStatusChanged((newStatus: TernSecureInstanceTreeStatus) => {\n console.log('[IsomorphicTernSecure] Received status change from ternui:', {\n newStatus,\n previousInternalStatus: this.#status,\n ternuiStatus: this.ternui?.status\n });\n\n this.#status = newStatus;\n this.#eventBus.emit('statusChange', newStatus);\n });\n\n events.onAuthStateChanged((authState: TernSecureState) => {\n console.log('[IsomorphicTernSecure] Received auth state from ternui:', authState);\n this.premountState.authStateListeners.forEach(callback => {\n try {\n callback(authState);\n } catch (error) {\n console.error('[IsomorphicTernSecure] Error in premounted auth state listener:', error);\n }\n });\n\n this.#eventBus.emit('authStateChange', authState);\n });\n\n events.onError?.((error) => {\n console.log('[IsomorphicTernSecure] Received error from ternui:', error);\n this.#eventBus.emit('error', error);\n });\n\n console.log('[IsomorphicTernSecure] Subscribed to TernUI events');\n };\n\n #awaitForTernUI(): Promise<HeadlessUIBrowser | Browser>{\n return new Promise<HeadlessUIBrowser | Browser>(resolve => {\n //console.log('[IsomorphicTernSecure] Awaiting TernUI initialization...');\n resolve(this.ternui!);\n });\n }\n\n initialize = async (props: any): Promise<void> => {\n try {\n //console.log('[IsomorphicTernSecure] Initializing TernUI...');\n await this.#awaitForTernUI();\n //console.log('[IsomorphicTernSecure] TernUI initialized successfully');\n } catch (error) {\n console.error('[IsomorphicTernSecure] Failed to initialize TernUI:', error);\n throw error;\n }\n }\n\n\n // UI control methods\n showSignIn = (node: HTMLDivElement, config?: SignInPropsTree): void => {\n if (this.ternui && this.isReady) {\n this.ternui.showSignIn(node, config);\n } else {\n this.premountState.signInNodes.set(node, config);\n }\n };\n\n hideSignIn = (node: HTMLDivElement): void => {\n if (this.ternui && this.isReady) {\n this.ternui.hideSignIn(node);\n } else {\n this.premountState.signInNodes.delete(node);\n }\n };\n\n showSignUp = (node: HTMLDivElement, config?: SignUpPropsTree): void => {\n if (this.ternui && this.isReady) {\n this.ternui.showSignUp(node, config);\n } else {\n this.premountState.signUpNodes.set(node, config);\n }\n };\n\n hideSignUp = (node: HTMLDivElement): void => {\n if (this.ternui && this.isReady) {\n this.ternui.hideSignUp(node);\n } else {\n this.premountState.signUpNodes.delete(node);\n }\n };\n\n showUserButton = (node: HTMLDivElement): void => {\n if (this.ternui && this.isReady) {\n this.ternui.showUserButton(node);\n } else {\n this.premountState.userButttonNodes.set(node, undefined);\n }\n }\n\n hideUserButton = (node: HTMLDivElement): void => {\n if (this.ternui && this.isReady) {\n this.ternui.hideUserButton(node);\n } else {\n this.premountState.userButttonNodes.delete(node);\n }\n };\n\n clearError = (): void => {\n if (this.ternui?.clearError) {\n this.ternui.clearError();\n }\n };\n\n setLoading = (isLoading: boolean): void => {\n if (this.ternui?.setLoading) {\n this.ternui.setLoading(isLoading);\n }\n };\n\n // Platform methods - delegate to core instance\n getRedirectResult = async (): Promise<any> => {\n if (!this.ternui?.getRedirectResult) {\n throw new Error('TernSecure instance not initialized');\n }\n return this.ternui.getRedirectResult();\n };\n\n shouldRedirect = (currentPath: string): boolean | string => {\n if (!this.ternui?.shouldRedirect) {\n return false;\n }\n return this.ternui.shouldRedirect(currentPath);\n };\n\n constructUrlWithAuthRedirect = (baseUrl: string): string => {\n if (!this.ternui?.constructUrlWithAuthRedirect) {\n return baseUrl;\n }\n return this.ternui.constructUrlWithAuthRedirect(baseUrl);\n };\n\n redirectToSignIn = async (options?: SignInRedirectOptions) => {\n if (this.ternui?.redirectToSignIn) {\n this.ternui.redirectToSignIn();\n }\n };\n\n redirectToSignUp = async (options?: SignUpRedirectOptions) => {\n if (this.ternui?.redirectToSignUp) {\n this.ternui.redirectToSignUp();\n }\n };\n\n redirectAfterSignIn = (redirectUrl?: string): void => {\n if (this.ternui?.redirectAfterSignIn) {\n this.ternui.redirectAfterSignIn();\n }\n }\n\n redirectAfterSignUp = (redirectUrl?: string): void => {\n if (this.ternui?.redirectAfterSignUp) {\n this.ternui.redirectAfterSignUp();\n }\n };\n\n // Event handling - delegate to core instance with fallback to premount state\n get events(): TernSecureInstanceTree['events'] {\n return {\n onAuthStateChanged: (callback: (authState: TernSecureState) => void) => {\n console.log('[IsomorphicTernSecure] Setting up onAuthStateChanged listener');\n if (this.ternui?.events) {\n console.log('[IsomorphicTernSecure] Delegating onAuthStateChanged to ternui.events');\n return this.ternui.events.onAuthStateChanged(callback);\n }\n this.premountState.authStateListeners.add(callback);\n return () => {\n this.premountState.authStateListeners.delete(callback);\n };\n },\n onError: (callback: (error: AuthErrorTree) => void) => {\n if (this.ternui?.events) {\n return this.ternui.events.onError(callback);\n }\n this.premountState.errorListeners.add(callback);\n return () => {\n this.premountState.errorListeners.delete(callback);\n };\n },\n onStatusChanged: (callback: (status: TernSecureInstanceTreeStatus) => void) => {\n if (this.ternui?.events?.onStatusChanged) {\n return this.ternui.events.onStatusChanged(callback);\n }\n this.#eventBus.on('statusChange', callback);\n return () => {\n this.#eventBus.off('statusChange', callback);\n };\n }\n };\n }\n\n\n private queueMethodCall<T>(\n section: keyof TernSecureInstanceTree,\n promise: () => Promise<T> | undefined\n ) {\n const wrappedPromise = async () => {\n const result = await promise();\n return result as unknown;\n };\n const calls = this.premountState.methodCalls.get(section) || [];\n calls.push(wrappedPromise);\n this.premountState.methodCalls.set(section, calls);\n }\n\n public setAuthProvider(ternAuth: TernSecureAuthProvider): void {\n if (!ternAuth) {\n throw new Error('TernSecureAuthProvider instance is required');\n }\n this._authProvider = ternAuth;\n if (this.ternui && typeof this.ternui.setTernAuth === 'function') {\n this.ternui.setTernAuth(ternAuth);\n console.log('[IsomorphicTernSecure] Auth provider set on core instance');\n } \n }\n\n\n /**\n * Update the instance and process any queued operations\n */\n __internal_updateInstance(instance: TernSecureInstanceTree) {\n // Sync the core instance if needed\n //Object.assign(this.TernSecure, instance);\n\n // Process pre-mounted nodes\n this.premountState.signInNodes.forEach((config, node) => {\n this.showSignIn(node, config);\n });\n this.premountState.signUpNodes.forEach((config, node) => {\n this.showSignUp(node, config);\n });\n this.premountState.userButttonNodes.forEach((config, node) => {\n this.showUserButton(node);\n });\n\n // Process queued method calls\n this.premountState.methodCalls.forEach((calls, section) => {\n calls.forEach(async promise => {\n try {\n await promise();\n } catch (error) {\n console.error(`Error processing queued ${String(section)} operation:`, error);\n }\n });\n });\n\n // Process event listeners\n this.premountState.authStateListeners.forEach(callback => {\n if (this.ternui?.events) this.ternui.events.onAuthStateChanged(callback);\n });\n this.premountState.errorListeners.forEach(callback => {\n if (this.ternui?.events) this.ternui.events.onError(callback);\n });\n \n\n // Clear premount state\n this.premountState = {\n signInNodes: new Map(),\n signUpNodes: new Map(),\n userButttonNodes: new Map(),\n verifyNodes: new Set(),\n methodCalls: new Map(),\n authStateListeners: new Set(),\n errorListeners: new Set(),\n };\n }\n\n}\n\n\nexport function isConstructor<T>(f: any): f is T {\n return typeof f === 'function';\n}\n\n"],"mappings":"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","names":["EventEmitter","loadTernUIScript","SDK_METADATA","inBrowser","IsomorphicTernSecure","#status","#customDomain","#instance","#eventBus","options","TernSecure","customDomain","coreInstance","isConstructor","err","error","ternui","config","node","events","newStatus","authState","callback","#awaitForTernUI","resolve","props","isLoading","currentPath","baseUrl","redirectUrl","section","promise","wrappedPromise","calls","ternAuth","instance","f"]}
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=auth.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=actions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/client/actions.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- import { SessionResult } from '@tern-secure/types';
2
- export declare function createSessionCookie(idToken: string): Promise<SessionResult>;
3
- export declare function clearSessionCookie(): Promise<{
4
- success: boolean;
5
- message: string;
6
- }>;
7
- //# sourceMappingURL=session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/client/session.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAEjF;AAED,wBAAsB,kBAAkB;;;GAEvC"}
@@ -1,30 +0,0 @@
1
- import React, { PropsWithChildren } from 'react';
2
- interface MountProps {
3
- mount: (node: HTMLDivElement, props: any) => void;
4
- unmount: (node: HTMLDivElement) => void;
5
- updateProps?: (params: {
6
- node: HTMLDivElement;
7
- props: any;
8
- }) => void;
9
- props: any;
10
- }
11
- type HostRendererProps = PropsWithChildren<MountProps & {
12
- component?: string;
13
- hideRootHtmlElement?: boolean;
14
- rootProps?: React.JSX.IntrinsicElements['div'];
15
- }>;
16
- /**
17
- * TernSecureHostRenderer is responsible for the actual mounting/unmounting of UI components
18
- * from the @tern-secure/ui package. It handles the lifecycle of the mounted component
19
- * and ensures proper cleanup.
20
- */
21
- export declare class TernSecureHostRenderer extends React.PureComponent<HostRendererProps> {
22
- private rootRef;
23
- componentDidUpdate(prevProps: Readonly<HostRendererProps>): void;
24
- componentDidMount(): void;
25
- componentWillUnmount(): void;
26
- render(): import("react/jsx-runtime").JSX.Element;
27
- }
28
- export declare const isMountProps: (props: any) => props is MountProps;
29
- export {};
30
- //# sourceMappingURL=TernSecureHostRenderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TernSecureHostRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/TernSecureHostRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAUjD,UAAU,UAAU;IAClB,KAAK,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAClD,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IACrE,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,KAAK,iBAAiB,GAAG,iBAAiB,CACxC,UAAU,GAAG;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;CAChD,CACF,CAAC;AAEF;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC;IAChF,OAAO,CAAC,OAAO,CAAqC;IAEpD,kBAAkB,CAAC,SAAS,EAAE,QAAQ,CAAC,iBAAiB,CAAC;IAoBzD,iBAAiB;IAOjB,oBAAoB;IAOpB,MAAM;CAqBP;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,UAElD,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function AuthBackground(): import("react/jsx-runtime").JSX.Element;
2
- //# sourceMappingURL=background.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../../src/components/background.tsx"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,4CAgC3B"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=old.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"old.d.ts","sourceRoot":"","sources":["../../../src/components/old.ts"],"names":[],"mappings":""}
@@ -1,27 +0,0 @@
1
- import type { SignInPropsTree, TernSecureInstanceTree, SignUpPropsTree } from '@tern-secure/types';
2
- import { FallbackProp } from './withTernSecure';
3
- type SignInComponentProps = SignInPropsTree & FallbackProp & {
4
- component?: string;
5
- instance: TernSecureInstanceTree;
6
- };
7
- type SignUpComponentProps = SignUpPropsTree & FallbackProp & {
8
- component?: string;
9
- instance: TernSecureInstanceTree;
10
- };
11
- export declare const SignIn: {
12
- (props: Omit<SignInComponentProps, "instance"> & FallbackProp): import("react/jsx-runtime").JSX.Element | null;
13
- displayName: string;
14
- };
15
- export declare const SignUp: {
16
- (props: Omit<SignUpComponentProps, "instance"> & FallbackProp): import("react/jsx-runtime").JSX.Element | null;
17
- displayName: string;
18
- };
19
- export declare const UserButton: {
20
- (props: Omit<{
21
- instance: TernSecureInstanceTree;
22
- component?: string;
23
- }, "instance"> & FallbackProp): import("react/jsx-runtime").JSX.Element | null;
24
- displayName: string;
25
- };
26
- export {};
27
- //# sourceMappingURL=uiComponent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uiComponent.d.ts","sourceRoot":"","sources":["../../../src/components/uiComponent.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EAGtB,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAShE,KAAK,oBAAoB,GAAG,eAAe,GAAG,YAAY,GAAG;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,sBAAsB,CAAC;CAClC,CAAC;AAGF,KAAK,oBAAoB,GAAG,eAAe,GAAG,YAAY,GAAG;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,sBAAsB,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,MAAM;;;CAiClB,CAAC;AAGF,eAAO,MAAM,MAAM;;;CAwDlB,CAAC;AAGF,eAAO,MAAM,UAAU;;;;;;CAuBtB,CAAC"}
@@ -1,16 +0,0 @@
1
- import React from 'react';
2
- import type { TernSecureInstanceTree } from '@tern-secure/types';
3
- export interface FallbackProp {
4
- fallback?: React.ReactNode;
5
- }
6
- export declare const withTernSecure: <P extends {
7
- instance: TernSecureInstanceTree;
8
- component?: string;
9
- }>(Component: React.ComponentType<P>, options?: {
10
- component: string;
11
- renderWhileLoading?: boolean;
12
- }) => {
13
- (props: Omit<P, "instance"> & FallbackProp): import("react/jsx-runtime").JSX.Element | null;
14
- displayName: string;
15
- };
16
- //# sourceMappingURL=withTernSecure.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withTernSecure.d.ts","sourceRoot":"","sources":["../../../src/components/withTernSecure.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAUjE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS;IAAE,QAAQ,EAAE,sBAAsB,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/F,WAAW,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EACjC,UAAU;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE;YAIzC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,YAAY;;CA+BvD,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { TernSecureState } from "@tern-secure/types";
2
- export declare function useAuthProviderCtx(): TernSecureState;
3
- //# sourceMappingURL=AuthProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../../src/ctx/AuthProvider.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACR,eAAe,EAClB,MAAM,oBAAoB,CAAA;AAG3B,wBAAgB,kBAAkB,IAAI,eAAe,CAIpD"}
@@ -1,6 +0,0 @@
1
- import { IsomorphicTernSecure } from '../lib/isomorphicTernSecure';
2
- export declare const IsomorphicTernSecureCtx: import("react").Context<{
3
- value: import("@tern-secure/types").TernSecureInstanceTree;
4
- } | undefined>;
5
- export declare const useIsomorphicTernSecureCtx: () => IsomorphicTernSecure;
6
- //# sourceMappingURL=IsomorphicTernSecureCtx.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IsomorphicTernSecureCtx.d.ts","sourceRoot":"","sources":["../../../src/ctx/IsomorphicTernSecureCtx.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,eAAO,MAAM,uBAAuB;;cAA4B,CAAC;AACjE,eAAO,MAAM,0BAA0B,EAA8C,MAAK,oBAAoB,CAAC"}
@@ -1,2 +0,0 @@
1
- export { SessionContext, useSessionContext } from '@tern-secure/shared/react';
2
- //# sourceMappingURL=SessionCtx.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionCtx.d.ts","sourceRoot":"","sources":["../../../src/ctx/SessionCtx.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,iBAAiB,EAAC,MAAM,2BAA2B,CAAC"}
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- import type { IsomorphicTernSecureOptions } from '../types';
3
- import { type TernSecureState } from '@tern-secure/types';
4
- type TernSecureCtxProviderProps = {
5
- children: React.ReactNode;
6
- instanceOptions: IsomorphicTernSecureOptions;
7
- initialState: TernSecureState | undefined;
8
- };
9
- export type AuthStateProps = {
10
- authState: TernSecureState;
11
- };
12
- export declare function TernSecureCtxProvider(props: TernSecureCtxProviderProps): import("react/jsx-runtime").JSX.Element;
13
- export {};
14
- //# sourceMappingURL=TernSecureCtxProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TernSecureCtxProvider.d.ts","sourceRoot":"","sources":["../../../src/ctx/TernSecureCtxProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAG3D,OAAO,KAAK,EACV,2BAA2B,EAC5B,MAAM,UAAU,CAAA;AACjB,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAA;AAM3B,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,eAAe,EAAE,2BAA2B,CAAA;IAC5C,YAAY,EAAE,eAAe,GAAG,SAAS,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,eAAe,CAAA;CAC3B,CAAA;AAID,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,2CA6CtE"}
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import type { TernSecureProviderProps } from '../types';
3
- declare function TernSecureProviderBase(props: TernSecureProviderProps): import("react/jsx-runtime").JSX.Element;
4
- declare const TernSecureProvider: React.MemoExoticComponent<typeof TernSecureProviderBase>;
5
- export { TernSecureProvider };
6
- //# sourceMappingURL=TernSecureProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TernSecureProvider.d.ts","sourceRoot":"","sources":["../../../src/ctx/TernSecureProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAEvD,iBAAS,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,2CAwB7D;AAGD,QAAA,MAAM,kBAAkB,0DAAqC,CAAA;AAI7D,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
@@ -1,2 +0,0 @@
1
- export { UserContext, useUserContext } from '@tern-secure/shared/react';
2
- //# sourceMappingURL=UserCtx.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserCtx.d.ts","sourceRoot":"","sources":["../../../src/ctx/UserCtx.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,cAAc,EAAC,MAAM,2BAA2B,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const useAssertWrappedByTernSecureProvider: (source: string) => void;
2
- //# sourceMappingURL=useAssertWrappedTernSecureProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAssertWrappedTernSecureProvider.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAssertWrappedTernSecureProvider.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,oCAAoC,GAAI,QAAQ,MAAM,KAAG,IAUrE,CAAA"}
@@ -1,3 +0,0 @@
1
- import { TernSecureState } from '@tern-secure/types';
2
- export declare const useAuth: () => TernSecureState;
3
- //# sourceMappingURL=useAuth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuth.ts"],"names":[],"mappings":"AAGA,OAAO,EAA6B,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAI/E,eAAO,MAAM,OAAO,QAAO,eAyB1B,CAAA"}
@@ -1,14 +0,0 @@
1
- import type { IsomorphicTernSecure } from '../lib/isomorphicTernSecure';
2
- import type { TernSecureState } from '@tern-secure/types';
3
- import type React from 'react';
4
- /**
5
- * Custom hook that manages auth state and provides subscription callback.
6
- * @param instance The IsomorphicTernSecure instance
7
- * @returns Tuple containing [authState, setAuthState, subscribeToAuthState]
8
- */
9
- export declare function useAuthState(instance: IsomorphicTernSecure | null): [
10
- TernSecureState | null,
11
- React.Dispatch<React.SetStateAction<TernSecureState | null>>,
12
- () => () => void
13
- ];
14
- //# sourceMappingURL=useAuthState.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAuthState.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuthState.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAA6B,MAAM,oBAAoB,CAAC;AACrF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GACpC;IACD,eAAe,GAAG,IAAI;IACtB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAC5D,MAAM,MAAM,IAAI;CACjB,CA0BA"}
@@ -1,19 +0,0 @@
1
- interface IdTokenResult {
2
- token: string | null;
3
- claims: {
4
- [key: string]: any;
5
- } | null;
6
- issuedAtTime: string | null;
7
- expirationTime: string | null;
8
- authTime: string | null;
9
- signInProvider: string | null;
10
- }
11
- export declare function useIdTokenInternal(): {
12
- refreshToken: () => Promise<void>;
13
- tokenResult: IdTokenResult | null;
14
- loading: boolean;
15
- error: Error | null;
16
- };
17
- export declare const useIdToken: typeof useIdTokenInternal;
18
- export {};
19
- //# sourceMappingURL=useIdToken.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIdToken.d.ts","sourceRoot":"","sources":["../../../src/hooks/useIdToken.ts"],"names":[],"mappings":"AAUA,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAA;IACrC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAQD,wBAAgB,kBAAkB;;iBALnB,aAAa,GAAG,IAAI;aACxB,OAAO;WACT,KAAK,GAAG,IAAI;EAqEpB;AAED,eAAO,MAAM,UAAU,2BAAqB,CAAA"}
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- export declare function useMaxAllowedInstancesGuard(name: string, error: string, maxCount?: number): void;
3
- export declare function withMaxAllowedInstancesGuard<P>(WrappedComponent: React.ComponentType<P>, name: string, error: string): React.ComponentType<P>;
4
- //# sourceMappingURL=useMaxAllowedInstances.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMaxAllowedInstances.d.ts","sourceRoot":"","sources":["../../../src/hooks/useMaxAllowedInstances.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,IAAI,CAc3F;AAED,wBAAgB,4BAA4B,CAAC,CAAC,EAC5C,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EACxC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAQxB"}
@@ -1,12 +0,0 @@
1
- type SessionStatus = 'active' | 'expired' | 'refreshing' | 'inactive';
2
- export declare function useSession(): {
3
- accessToken: string | null;
4
- expirationTime: string | null;
5
- error: Error | null;
6
- isLoading: boolean;
7
- status: SessionStatus;
8
- user: import("@tern-secure/types").TernSecureUser | null | undefined;
9
- refresh: () => Promise<void>;
10
- };
11
- export {};
12
- //# sourceMappingURL=useSession.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSession.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSession.ts"],"names":[],"mappings":"AAkBA,KAAK,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,CAAA;AAErE,wBAAgB,UAAU;;;;;;;;EA+EzB"}
@@ -1,11 +0,0 @@
1
- import type { SignInResponse } from '@tern-secure/types';
2
- export interface UseSignUpReturn {
3
- email: string | null;
4
- isLoading: boolean;
5
- error: Error | null;
6
- setEmail: (email: string) => void;
7
- signUp: (email: string, password: string) => Promise<SignInResponse>;
8
- resetState: () => void;
9
- }
10
- export declare function useSignUp(): UseSignUpReturn;
11
- //# sourceMappingURL=useSignUp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSignUp.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSignUp.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;IACpE,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,wBAAgB,SAAS,IAAI,eAAe,CAuC3C"}
@@ -1,8 +0,0 @@
1
- type MountingStatus = 'rendering' | 'rendered' | 'error';
2
- /**
3
- * Detect when a TernSecure component has mounted by watching DOM updates
4
- * to an element with a `data-ternsecure-component="${component}"` property.
5
- */
6
- export declare const useWaitForComponentMount: (component?: string) => MountingStatus;
7
- export {};
8
- //# sourceMappingURL=useWaitForComponentMount.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useWaitForComponentMount.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWaitForComponentMount.ts"],"names":[],"mappings":"AA6DA,KAAK,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,YAAY,MAAM,KAAG,cA2B7D,CAAC"}
@@ -1,14 +0,0 @@
1
- export { useAuth } from "./hooks/useAuth";
2
- export { useSignUp } from "./hooks/useSignUp";
3
- export { useIdToken } from "./hooks/useIdToken";
4
- export { useSession } from "./hooks/useSession";
5
- export { TernSecureCtxProvider } from './ctx/TernSecureCtxProvider';
6
- export { TernSecureProvider } from './ctx/TernSecureProvider';
7
- export { isAuthRoute, isBaseAuthRoute, isInternalRoute, handleInternalRoute } from './route-handler/internal-route';
8
- export { SignIn, SignUp, UserButton } from './components/uiComponent';
9
- export { AuthBackground } from './components/background';
10
- export { cn } from './lib/utils';
11
- export type { IsomorphicTernSecureOptions, Browser, TernSecureProviderProps, initialState } from './types';
12
- export { loadTernUIScript, ternUIgetScriptUrl, constructScriptAttributes } from '@tern-secure/shared/loadTernUIScript';
13
- export { createSessionCookie, clearSessionCookie } from './client/session';
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EACH,qBAAqB,EACxB,MAAM,6BAA6B,CAAA;AACpC,OAAQ,EACJ,kBAAkB,EACrB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACH,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACtB,MAAM,gCAAgC,CAAA;AAQvC,OAAO,EACH,MAAM,EACN,MAAM,EACN,UAAU,EACb,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACH,cAAc,EACjB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACH,EAAE,EACL,MAAM,aAAa,CAAA;AAEpB,YAAY,EACR,2BAA2B,EAC3B,OAAO,EACP,uBAAuB,EACvB,YAAY,EACf,MAAM,SAAS,CAAA;AAEhB,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EAC5B,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EACrB,MAAM,kBAAkB,CAAA"}