@tern-secure/nextjs 1.3.4 → 1.3.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.
- package/dist/app-router/client/index.d.ts +1 -0
- package/dist/app-router/client/providers/ternSecureClientProvider.d.ts +2 -3
- package/dist/app-router/client/providers/ternSecureContext.d.ts +1 -9
- package/dist/app-router/server/providers/TernSecureServerProvider.d.ts +1 -5
- package/dist/hooks/useAuth.d.ts +10 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +98 -25
- package/dist/index.js.map +1 -1
- package/dist/types/ternsecure.d.ts +2 -1
- package/package.json +1 -1
- package/dist/app-router/client/__tests__/TernSecureProvider.test.d.ts +0 -1
- package/dist/app-router/client/__tests__/client-init.test.d.ts +0 -1
- package/dist/app-router/client/__tests__/config.test.d.ts +0 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { AuthState } from '
|
|
3
|
-
export declare const
|
|
4
|
-
children: React.ReactNode;
|
|
2
|
+
import { AuthState, TernSecureProviderProps } from '../../../types/ternsecure';
|
|
3
|
+
export declare const TernSecureClientProvider: React.FC<TernSecureProviderProps & {
|
|
5
4
|
initialState: AuthState;
|
|
6
5
|
}>;
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export interface AuthState {
|
|
3
|
-
user: User | null;
|
|
4
|
-
loading: boolean;
|
|
5
|
-
error: Error | null;
|
|
6
|
-
}
|
|
7
|
-
export interface TernSecureContextType {
|
|
8
|
-
authState: AuthState;
|
|
9
|
-
}
|
|
1
|
+
import { TernSecureContextType } from '../../../types/ternsecure';
|
|
10
2
|
export declare const TernSecureContext: import("react").Context<TernSecureContextType | null>;
|
|
11
3
|
export declare const useTernSecure: () => TernSecureContextType;
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
interface TernSecureProviderProps {
|
|
3
|
-
children: ReactNode;
|
|
4
|
-
}
|
|
1
|
+
import { TernSecureProviderProps } from '../../../types/ternsecure';
|
|
5
2
|
export declare function TernSecureProvider({ children }: TernSecureProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { User } from 'firebase/auth';
|
|
2
|
+
export interface UseAuthReturn {
|
|
3
|
+
user: User | null;
|
|
4
|
+
loading: boolean;
|
|
5
|
+
error: Error | null;
|
|
6
|
+
signIn: (email: string, password: string) => Promise<User>;
|
|
7
|
+
signUp: (email: string, password: string) => Promise<User>;
|
|
8
|
+
signOut: () => Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export declare function useAuth(): UseAuthReturn;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { initializeTernSecure, getTernSecureAuth, getTernSecureFirestore, getTernSecureStorage, loadFireConfig } from "./app-router/client";
|
|
2
2
|
import { TernSecureProvider } from "./app-router/server";
|
|
3
|
-
|
|
3
|
+
import { useAuth } from "./hooks/useAuth";
|
|
4
|
+
export { TernSecureProvider, useAuth, loadFireConfig, initializeTernSecure, getTernSecureAuth, getTernSecureFirestore, getTernSecureStorage };
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
'';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var dynamic = require('next/dynamic');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var auth$1 = require('firebase/auth');
|
|
7
|
+
var app$1 = require('firebase/app');
|
|
8
|
+
var firestore$1 = require('firebase/firestore');
|
|
9
|
+
var storage$1 = require('firebase/storage');
|
|
7
10
|
|
|
8
11
|
function getEnvVariable(name) {
|
|
9
12
|
const value = process.env[`NEXT_PUBLIC_FIREBASE_${name}`];
|
|
@@ -42,10 +45,10 @@ function initializeTernSecure() {
|
|
|
42
45
|
throw new TernSecureError(ERRORS.SERVER_SIDE_INITIALIZATION);
|
|
43
46
|
}
|
|
44
47
|
if (!app) {
|
|
45
|
-
app = getApps().length ? getApps()[0] : initializeApp(loadFireConfig);
|
|
46
|
-
auth = getAuth(app);
|
|
47
|
-
firestore = getFirestore(app);
|
|
48
|
-
storage = getStorage(app);
|
|
48
|
+
app = app$1.getApps().length ? app$1.getApps()[0] : app$1.initializeApp(loadFireConfig);
|
|
49
|
+
auth = auth$1.getAuth(app);
|
|
50
|
+
firestore = firestore$1.getFirestore(app);
|
|
51
|
+
storage = storage$1.getStorage(app);
|
|
49
52
|
}
|
|
50
53
|
return app;
|
|
51
54
|
}
|
|
@@ -65,22 +68,92 @@ const getTernSecureStorage = () => {
|
|
|
65
68
|
return storage;
|
|
66
69
|
};
|
|
67
70
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
try {
|
|
74
|
-
// Client-side rendering
|
|
75
|
-
const { TernSecureClientProvider } = require('../../../client/providers/TernSecureClientProvider');
|
|
76
|
-
return jsx(TernSecureClientProvider, { children: children });
|
|
77
|
-
}
|
|
78
|
-
catch (error) {
|
|
79
|
-
console.error('Failed to load TernSecureClientProvider:', error);
|
|
80
|
-
// Fallback to prevent app crash
|
|
81
|
-
return jsx(Fragment, { children: children });
|
|
71
|
+
const TernSecureContext = react.createContext(null);
|
|
72
|
+
const useTernSecure = () => {
|
|
73
|
+
const context = react.useContext(TernSecureContext);
|
|
74
|
+
if (!context) {
|
|
75
|
+
throw new Error('useTernSecure must be used within a TernSecureProvider');
|
|
82
76
|
}
|
|
77
|
+
return context;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const TernSecureClientProvider$1 = dynamic(() => Promise.resolve().then(function () { return ternSecureClientProvider; }).then((mod) => mod.TernSecureClientProvider), { ssr: false });
|
|
81
|
+
function TernSecureProvider({ children }) {
|
|
82
|
+
const initialState = {
|
|
83
|
+
user: null,
|
|
84
|
+
loading: true,
|
|
85
|
+
error: null,
|
|
86
|
+
initialized: false
|
|
87
|
+
};
|
|
88
|
+
return jsxRuntime.jsx(TernSecureClientProvider$1, { initialState: initialState, children: children });
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function useAuth() {
|
|
92
|
+
const { authState } = useTernSecure();
|
|
93
|
+
const auth = getTernSecureAuth();
|
|
94
|
+
const signIn = react.useCallback(async (email, password) => {
|
|
95
|
+
try {
|
|
96
|
+
const userCredential = await auth$1.signInWithEmailAndPassword(auth, email, password);
|
|
97
|
+
return userCredential.user;
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
console.error('Sign in error:', error);
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
}, [auth]);
|
|
104
|
+
const signUp = react.useCallback(async (email, password) => {
|
|
105
|
+
try {
|
|
106
|
+
const userCredential = await auth$1.createUserWithEmailAndPassword(auth, email, password);
|
|
107
|
+
return userCredential.user;
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.error('Sign up error:', error);
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
}, [auth]);
|
|
114
|
+
const signOut = react.useCallback(async () => {
|
|
115
|
+
try {
|
|
116
|
+
await auth$1.signOut(auth);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
console.error('Sign out error:', error);
|
|
120
|
+
throw error;
|
|
121
|
+
}
|
|
122
|
+
}, [auth]);
|
|
123
|
+
return {
|
|
124
|
+
user: authState.user,
|
|
125
|
+
loading: authState.loading,
|
|
126
|
+
error: authState.error,
|
|
127
|
+
signIn,
|
|
128
|
+
signUp,
|
|
129
|
+
signOut
|
|
130
|
+
};
|
|
83
131
|
}
|
|
84
132
|
|
|
85
|
-
|
|
133
|
+
const TernSecureClientProvider = ({ children, initialState }) => {
|
|
134
|
+
const [authState, setAuthState] = react.useState(initialState);
|
|
135
|
+
react.useEffect(() => {
|
|
136
|
+
const auth = getTernSecureAuth();
|
|
137
|
+
const unsubscribe = auth.onAuthStateChanged((user) => {
|
|
138
|
+
setAuthState({ user, loading: false, error: null, initialized: true });
|
|
139
|
+
}, (error) => {
|
|
140
|
+
setAuthState({ user: null, loading: false, error, initialized: true });
|
|
141
|
+
});
|
|
142
|
+
return () => unsubscribe();
|
|
143
|
+
}, []);
|
|
144
|
+
return (jsxRuntime.jsx(TernSecureContext.Provider, { value: { authState }, children: children }));
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
var ternSecureClientProvider = /*#__PURE__*/Object.freeze({
|
|
148
|
+
__proto__: null,
|
|
149
|
+
TernSecureClientProvider: TernSecureClientProvider
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
exports.TernSecureProvider = TernSecureProvider;
|
|
153
|
+
exports.getTernSecureAuth = getTernSecureAuth;
|
|
154
|
+
exports.getTernSecureFirestore = getTernSecureFirestore;
|
|
155
|
+
exports.getTernSecureStorage = getTernSecureStorage;
|
|
156
|
+
exports.initializeTernSecure = initializeTernSecure;
|
|
157
|
+
exports.loadFireConfig = loadFireConfig;
|
|
158
|
+
exports.useAuth = useAuth;
|
|
86
159
|
//# 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/server/providers/TernSecureServerProvider.tsx"],"sourcesContent":[null,null,null,null],"names":["
|
|
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/hooks/useAuth.ts","../src/app-router/client/providers/ternSecureClientProvider.tsx"],"sourcesContent":[null,null,null,null,null,null,null],"names":["getApps","initializeApp","getAuth","getFirestore","getStorage","createContext","useContext","TernSecureClientProvider","_jsx","useCallback","signInWithEmailAndPassword","createUserWithEmailAndPassword","firebaseSignOut","useState","useEffect"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
+
import { User } from 'firebase/auth';
|
|
2
3
|
export interface TernSecureConfig {
|
|
3
4
|
apiKey: string;
|
|
4
5
|
authDomain: string;
|
|
@@ -13,7 +14,7 @@ export interface TernSecureOptions {
|
|
|
13
14
|
region?: string;
|
|
14
15
|
}
|
|
15
16
|
export interface AuthState {
|
|
16
|
-
user:
|
|
17
|
+
user: User | null;
|
|
17
18
|
loading: boolean;
|
|
18
19
|
error: Error | null;
|
|
19
20
|
initialized: boolean;
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import '@testing-library/jest-dom';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|