@tern-secure/nextjs 1.5.1 → 1.5.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.
@@ -1 +1,3 @@
1
- export default function ClientProvider(): import("react/jsx-runtime").JSX.Element | null;
1
+ import { AuthState } from '../../types/ternsecure';
2
+ export declare function subscribeToAuthState(listener: (state: AuthState) => void): () => void;
3
+ export default function ClientProvider(): null;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { AuthState, TernSecureProviderProps } from '../../../types/ternsecure';
3
+ export declare const TernSecureClientProvider: React.FC<TernSecureProviderProps & {
4
+ initialState: AuthState;
5
+ }>;
@@ -1,9 +1,11 @@
1
- import { AuthState } from '../../../types/ternsecure';
2
- import { Auth } from 'firebase/auth';
3
- interface TernSecureContextType {
1
+ import { User } from 'firebase/auth';
2
+ export interface AuthState {
3
+ user: User | null;
4
+ loading: boolean;
5
+ error: Error | null;
6
+ }
7
+ export interface TernSecureContextType {
4
8
  authState: AuthState;
5
- auth: Auth;
6
9
  }
7
10
  export declare const TernSecureContext: import("react").Context<TernSecureContextType | null>;
8
11
  export declare const useTernSecure: () => TernSecureContextType;
9
- export {};
@@ -0,0 +1,2 @@
1
+ import { UseAuthReturn } from '../types/ternsecure';
2
+ export declare function useAuth(): UseAuthReturn;
package/dist/index.js CHANGED
@@ -1,10 +1,9 @@
1
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import dynamic from 'next/dynamic';
3
- import React, { createContext, useEffect } from 'react';
4
1
  import { getApps, initializeApp } from 'firebase/app';
5
2
  import { getAuth } from 'firebase/auth';
6
3
  import { getFirestore } from 'firebase/firestore';
7
4
  import { getStorage } from 'firebase/storage';
5
+ import { createContext, useEffect } from 'react';
6
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
8
7
 
9
8
  function getEnvVariable(name) {
10
9
  const value = process.env[`NEXT_PUBLIC_FIREBASE_${name}`];
@@ -66,44 +65,35 @@ const getTernSecureStorage = () => {
66
65
  return storage;
67
66
  };
68
67
 
69
- const TernSecureContext = createContext(null);
70
-
71
- const ClientProvider$2 = dynamic(() => Promise.resolve().then(function () { return ClientProvider$1; }), { ssr: false });
72
- function TernSecureProvider({ children }) {
73
- return (jsxs(Fragment, { children: [children, jsx(ClientProvider$2, {})] }));
74
- }
68
+ createContext(null);
75
69
 
76
- const TernSecureClientProvider = ({ authState }) => {
77
- const auth = getTernSecureAuth();
78
- return (jsx(TernSecureContext.Provider, { value: { authState, auth } }));
70
+ let globalAuthState = {
71
+ user: null,
72
+ loading: true,
73
+ error: null,
74
+ initialized: false
79
75
  };
80
-
76
+ let listeners = [];
77
+ function setGlobalAuthState(newState) {
78
+ globalAuthState = { ...globalAuthState, ...newState };
79
+ listeners.forEach(listener => listener(globalAuthState));
80
+ }
81
81
  function ClientProvider() {
82
- const [authState, setAuthState] = React.useState({
83
- user: null,
84
- loading: true,
85
- error: null,
86
- initialized: false
87
- });
88
82
  useEffect(() => {
89
83
  const auth = getTernSecureAuth();
90
84
  const unsubscribe = auth.onAuthStateChanged((user) => {
91
- setAuthState({ user, loading: false, error: null, initialized: true });
85
+ setGlobalAuthState({ user, loading: false, error: null, initialized: true });
92
86
  }, (error) => {
93
- setAuthState({ user: null, loading: false, error, initialized: true });
87
+ setGlobalAuthState({ user: null, loading: false, error, initialized: true });
94
88
  });
95
89
  return () => unsubscribe();
96
90
  }, []);
97
- if (!authState.initialized) {
98
- return null;
99
- }
100
- return (jsx(TernSecureClientProvider, { authState: authState }));
91
+ return null; // This component doesn't render anything
101
92
  }
102
93
 
103
- var ClientProvider$1 = /*#__PURE__*/Object.freeze({
104
- __proto__: null,
105
- default: ClientProvider
106
- });
94
+ function TernSecureProvider({ children }) {
95
+ return (jsxs(Fragment, { children: [children, jsx(ClientProvider, {})] }));
96
+ }
107
97
 
108
98
  export { TernSecureProvider, getTernSecureAuth, getTernSecureFirestore, getTernSecureStorage, initializeTernSecure, loadFireConfig };
109
99
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/app-router/client/config.ts","../src/errors/index.ts","../src/app-router/client/client-init.ts","../src/app-router/client/providers/ternSecureContext.ts","../src/app-router/server/providers/TernSecureServerProvider.tsx","../src/app-router/client/providers/TernSecureClientProvider.tsx","../src/app-router/client/ClientProvider.tsx"],"sourcesContent":[null,null,null,null,null,null,null],"names":["ClientProvider","_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/app-router/client/config.ts","../src/errors/index.ts","../src/app-router/client/client-init.ts","../src/app-router/client/providers/ternSecureContext.ts","../src/app-router/client/ClientProvider.tsx","../src/app-router/server/providers/TernSecureServerProvider.tsx"],"sourcesContent":[null,null,null,null,null,null],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -30,3 +30,10 @@ export interface TernSecureContextType {
30
30
  export interface TernSecureProviderProps {
31
31
  children: ReactNode;
32
32
  }
33
+ export interface UseAuthReturn {
34
+ user: User | null;
35
+ loading: boolean;
36
+ error: Error | null;
37
+ signIn: (email: string, password: string) => Promise<User>;
38
+ signOut: () => Promise<void>;
39
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tern-secure/nextjs",
3
- "version": "1.5.1",
3
+ "version": "1.5.2",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org/"
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import { AuthState } from '../../../types/ternsecure';
3
- interface TernSecureClientProviderProps {
4
- authState: AuthState;
5
- }
6
- export declare const TernSecureClientProvider: React.FC<TernSecureClientProviderProps>;
7
- export {};