@tern-secure/nextjs 3.1.65 → 3.1.67
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/cjs/app-router/client/TernSecureProvider.cjs +32 -69
- package/dist/cjs/app-router/client/TernSecureProvider.cjs.map +1 -1
- package/dist/cjs/app-router/server/TernSecureServerProvider.cjs +32 -65
- package/dist/cjs/app-router/server/TernSecureServerProvider.cjs.map +1 -1
- package/dist/cjs/app-router/server/auth.cjs +13 -54
- package/dist/cjs/app-router/server/auth.cjs.map +1 -1
- package/dist/cjs/boundary/TernSecureCtx.cjs +11 -14
- package/dist/cjs/boundary/TernSecureCtx.cjs.map +1 -1
- package/dist/cjs/boundary/hooks/useAuth.cjs +8 -66
- package/dist/cjs/boundary/hooks/useAuth.cjs.map +1 -1
- package/dist/cjs/components/sign-in.cjs +13 -54
- package/dist/cjs/components/sign-in.cjs.map +1 -1
- package/dist/cjs/index.cjs +72 -77
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/utils/client-init.cjs +16 -59
- package/dist/cjs/utils/client-init.cjs.map +1 -1
- package/dist/esm/app-router/client/TernSecureProvider.d.ts +4 -4
- package/dist/esm/app-router/client/TernSecureProvider.js +3 -4
- package/dist/esm/app-router/server/TernSecureServerProvider.js +4 -5
- package/dist/esm/app-router/server/auth.js +2 -3
- package/dist/esm/boundary/TernSecureCtx.d.ts +7 -8
- package/dist/esm/boundary/TernSecureCtx.js +1 -1
- package/dist/esm/boundary/hooks/useAuth.js +4 -5
- package/dist/esm/{chunk-Q74X6X6Y.js → chunk-74V7CN2Z.js} +4 -4
- package/dist/esm/{chunk-Q74X6X6Y.js.map → chunk-74V7CN2Z.js.map} +1 -1
- package/dist/esm/chunk-BH4POM5U.js +44 -0
- package/dist/esm/chunk-BH4POM5U.js.map +1 -0
- package/dist/esm/chunk-DNODBZEQ.js +22 -0
- package/dist/esm/chunk-DNODBZEQ.js.map +1 -0
- package/dist/esm/chunk-DWSWDYJZ.js +13 -0
- package/dist/esm/chunk-DWSWDYJZ.js.map +1 -0
- package/dist/esm/{chunk-EIOZNLP2.js → chunk-EVC2XQG4.js} +3 -3
- package/dist/esm/{chunk-EIOZNLP2.js.map → chunk-EVC2XQG4.js.map} +1 -1
- package/dist/esm/{chunk-JS7GJYXQ.js → chunk-QBGIG346.js} +6 -5
- package/dist/esm/chunk-QBGIG346.js.map +1 -0
- package/dist/esm/chunk-YOHK2WGW.js +25 -0
- package/dist/esm/chunk-YOHK2WGW.js.map +1 -0
- package/dist/esm/components/sign-in.js +3 -4
- package/dist/esm/index.d.ts +1 -2
- package/dist/esm/index.js +7 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/client-init.d.ts +3 -5
- package/dist/esm/utils/client-init.js +1 -2
- package/package.json +4 -30
- package/dist/esm/chunk-4XFIX4FL.js +0 -14
- package/dist/esm/chunk-4XFIX4FL.js.map +0 -1
- package/dist/esm/chunk-FVV74XVR.js +0 -19
- package/dist/esm/chunk-FVV74XVR.js.map +0 -1
- package/dist/esm/chunk-JS7GJYXQ.js.map +0 -1
- package/dist/esm/chunk-LSHP5OGU.js +0 -24
- package/dist/esm/chunk-LSHP5OGU.js.map +0 -1
- package/dist/esm/chunk-V34MPPYI.js +0 -39
- package/dist/esm/chunk-V34MPPYI.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/app-router/server/auth.ts"],"names":[],"mappings":";;;AAQA,eAAsB,eAAgB,CAAA;AAAA,EACpC,KAAA;AAAA,EACA;AACF,CAA+C,EAAA;AAC7C,EAAA,MAAM,OAAO,cAAe,EAAA;AAC5B,EAAO,OAAA,0BAAA,CAA2B,IAAM,EAAA,KAAA,EAAO,QAAQ,CAAA;AACzD","file":"chunk-4XFIX4FL.js","sourcesContent":["import { TernSecureAuth } from '../../utils/client-init'\r\nimport { signInWithEmailAndPassword, type UserCredential } from 'firebase/auth'\r\n\r\nexport interface SignInCredentials {\r\n email: string\r\n password: string\r\n}\r\n\r\nexport async function signInWithEmail({ \r\n email, \r\n password \r\n}: SignInCredentials): Promise<UserCredential> {\r\n const auth = TernSecureAuth()\r\n return signInWithEmailAndPassword(auth, email, password)\r\n} "]}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { initializeConfig } from './chunk-UHGBSUM6.js';
|
|
2
|
-
import { initializeApp } from 'firebase/app';
|
|
3
|
-
import { getAuth, setPersistence, browserSessionPersistence } from 'firebase/auth';
|
|
4
|
-
import { getFirestore } from 'firebase/firestore';
|
|
5
|
-
import { getStorage } from 'firebase/storage';
|
|
6
|
-
|
|
7
|
-
var config = initializeConfig();
|
|
8
|
-
var clientApp = initializeApp(config);
|
|
9
|
-
var auth = getAuth(clientApp);
|
|
10
|
-
setPersistence(auth, browserSessionPersistence);
|
|
11
|
-
var firestore = getFirestore(clientApp);
|
|
12
|
-
var storage = getStorage(clientApp);
|
|
13
|
-
var TernSecureAuth = () => auth;
|
|
14
|
-
var TernSecureFirestore = () => firestore;
|
|
15
|
-
var TernSecureStorage = () => storage;
|
|
16
|
-
|
|
17
|
-
export { TernSecureAuth, TernSecureFirestore, TernSecureStorage };
|
|
18
|
-
//# sourceMappingURL=chunk-FVV74XVR.js.map
|
|
19
|
-
//# sourceMappingURL=chunk-FVV74XVR.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/client-init.ts"],"names":[],"mappings":";;;;;;AAOA,IAAM,SAAS,gBAAiB,EAAA;AAChC,IAAM,SAAA,GAAY,cAAc,MAAM,CAAA;AACtC,IAAM,IAAA,GAAO,QAAQ,SAAS,CAAA;AAC9B,cAAA,CAAe,MAAM,yBAAyB,CAAA;AAC9C,IAAM,SAAA,GAAY,aAAa,SAAS,CAAA;AACxC,IAAM,OAAA,GAAU,WAAW,SAAS,CAAA;AAE7B,IAAM,iBAAiB,MAAM;AAC7B,IAAM,sBAAsB,MAAM;AAClC,IAAM,oBAAoB,MAAM","file":"chunk-FVV74XVR.js","sourcesContent":["import { initializeApp } from 'firebase/app';\r\nimport { getAuth, setPersistence, browserSessionPersistence } from 'firebase/auth';\r\nimport { getFirestore } from 'firebase/firestore';\r\nimport { getStorage } from 'firebase/storage';\r\nimport { initializeConfig} from './config';\r\n\r\n// Initialize immediately\r\nconst config = initializeConfig();\r\nconst clientApp = initializeApp(config)\r\nconst auth = getAuth(clientApp);\r\nsetPersistence(auth, browserSessionPersistence); //to change later user should be able to choose persistance\r\nconst firestore = getFirestore(clientApp);\r\nconst storage = getStorage(clientApp);\r\n\r\nexport const TernSecureAuth = () => auth;\r\nexport const TernSecureFirestore = () => firestore;\r\nexport const TernSecureStorage = () => storage;"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/app-router/server/TernSecureServerProvider.tsx"],"names":[],"mappings":";;;;AAMA,SAAS,yBAA4B,GAAA;AACnC,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAW,EAAA,wBAAA;AAAA,MACX,IAAK,EAAA,QAAA;AAAA,MACL,SAAU,EAAA,qBAAA;AAAA,MAEV,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA,EAAK,SAAU,EAAA,SAAA,EAAU,QAAyB,EAAA,2BAAA,EAAA;AAAA;AAAA,GACrD;AAEJ;AA2BO,SAAS,wBAAyB,CAAA;AAAA,EACvC;AACF,CAAkC,EAAA;AAChC,EACE,uBAAA,GAAA,CAAC,KAAM,CAAA,QAAA,EAAN,EAAe,QAAA,sBAAW,yBAA0B,EAAA,EAAA,CAAA,EACnD,QAAC,kBAAA,GAAA,CAAA,wBAAA,EAAA,EAAyB,YAAc,EAAA;AAAA,IACtC,OAAS,EAAA,IAAA;AAAA,IACT,UAAY,EAAA,KAAA;AAAA,IACZ,MAAQ,EAAA,IAAA;AAAA,IACR,KAAO,EAAA;AAAA,GACT,EACG,UACH,CACF,EAAA,CAAA;AAEJ","file":"chunk-JS7GJYXQ.js","sourcesContent":["import React from \"react\"\r\nimport { TernSecureClientProvider } from \"../client/TernSecureProvider\"\r\n\r\n\r\n\r\n// Loading fallback component\r\nfunction TernSecureLoadingFallback() {\r\n return (\r\n <div \r\n aria-label=\"Loading authentication\" \r\n role=\"status\"\r\n className=\"tern-secure-loading\"\r\n >\r\n <span className=\"sr-only\">Loading authentication...</span>\r\n </div>\r\n )\r\n}\r\n\r\ninterface TernSecureServerProviderProps {\r\n children: React.ReactNode\r\n}\r\n\r\n/**\r\n * Root Provider for TernSecure\r\n * Use this in your Next.js App Router root layout\r\n * Automatically handles client/server boundary and authentication state\r\n * \r\n * @example\r\n * // app/layout.tsx\r\n * import { TernSecureProvider } from '@tern/secure'\r\n * \r\n * export default function RootLayout({ children }) {\r\n * return (\r\n * <html>\r\n * <body>\r\n * <TernSecureProvider>\r\n * {children}\r\n * </TernSecureProvider>\r\n * </body>\r\n * </html>\r\n * )\r\n * }\r\n */\r\nexport function TernSecureServerProvider({ \r\n children \r\n}: TernSecureServerProviderProps) {\r\n return (\r\n <React.Suspense fallback={<TernSecureLoadingFallback />}>\r\n <TernSecureClientProvider initialState={{\r\n loading: true,\r\n isSignedIn: false,\r\n userId: null,\r\n error: null\r\n }}>\r\n {children}\r\n </TernSecureClientProvider>\r\n </React.Suspense>\r\n )\r\n}\r\n\r\n// Export types for internal use\r\nexport type { TernSecureServerProviderProps }"]}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
|
|
4
|
-
// src/boundary/TernSecureCtx.tsx
|
|
5
|
-
var TernSecureContext = React.createContext(void 0);
|
|
6
|
-
TernSecureContext.displayName = "TernSecureContext";
|
|
7
|
-
var useInternalContext = (hookname = "useInternalContext") => {
|
|
8
|
-
const context = React.useContext(TernSecureContext);
|
|
9
|
-
if (!context) {
|
|
10
|
-
throw new Error(
|
|
11
|
-
`${hookname} must be used within TernSecureClientProvider`
|
|
12
|
-
);
|
|
13
|
-
}
|
|
14
|
-
return context;
|
|
15
|
-
};
|
|
16
|
-
var TernSecureCtxProvider = ({
|
|
17
|
-
children
|
|
18
|
-
}) => {
|
|
19
|
-
return /* @__PURE__ */ jsx(TernSecureContext.Provider, { value: { dynamic: true }, children });
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export { TernSecureCtxProvider, useInternalContext };
|
|
23
|
-
//# sourceMappingURL=chunk-LSHP5OGU.js.map
|
|
24
|
-
//# sourceMappingURL=chunk-LSHP5OGU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/boundary/TernSecureCtx.tsx"],"names":[],"mappings":";;;;AAcA,IAAM,iBAAA,GAAoB,KAAM,CAAA,aAAA,CAA8C,KAAS,CAAA,CAAA;AAGvF,iBAAA,CAAkB,WAAc,GAAA,mBAAA;AAE1B,IAAA,kBAAA,GAAqB,CAAC,QAAA,GAAmB,oBAAyB,KAAA;AAEtE,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,UAAA,CAAW,iBAAiB,CAAA;AAElD,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,GAAG,QAAQ,CAAA,6CAAA;AAAA,KACb;AAAA;AAGF,EAAO,OAAA,OAAA;AACT;AAMA,IAAM,wBAA2D,CAAC;AAAA,EAChE;AACF,CAAM,KAAA;AAEJ,EACE,uBAAA,GAAA,CAAC,kBAAkB,QAAlB,EAAA,EAA2B,OAAO,EAAE,OAAA,EAAS,IAAK,EAAA,EAChD,QACH,EAAA,CAAA;AAEJ","file":"chunk-LSHP5OGU.js","sourcesContent":["'use client'\r\n\r\nimport React from 'react'\r\n\r\n// Core types\r\nexport type TernSecureCtxValue = {\r\n dynamic: boolean\r\n}\r\n\r\nexport type TernSecureProviderProps = React.PropsWithChildren<{\r\n options?: unknown // Made optional since we're not using it\r\n}>\r\n\r\n// Context with proper null handling\r\nconst TernSecureContext = React.createContext<TernSecureCtxValue | undefined>(undefined)\r\n\r\n// Set display name for better debugging\r\nTernSecureContext.displayName = 'TernSecureContext'\r\n\r\nconst useInternalContext = (hookname: string = 'useInternalContext') => {\r\n\r\n const context = React.useContext(TernSecureContext)\r\n \r\n if (!context) {\r\n throw new Error(\r\n `${hookname} must be used within TernSecureClientProvider`\r\n )\r\n }\r\n\r\n return context\r\n}\r\n\r\n/**\r\n * Provider component for TernSecure\r\n * Must be used in client components only\r\n */\r\nconst TernSecureCtxProvider: React.FC<TernSecureProviderProps> = ({ \r\n children \r\n}) => {\r\n\r\n return (\r\n <TernSecureContext.Provider value={{ dynamic: true }}>\r\n {children}\r\n </TernSecureContext.Provider>\r\n )\r\n}\r\n\r\nexport {\r\n useInternalContext,\r\n TernSecureCtxProvider\r\n}"]}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { TernSecureCtxProvider } from './chunk-LSHP5OGU.js';
|
|
2
|
-
import { TernSecureAuth } from './chunk-FVV74XVR.js';
|
|
3
|
-
import React, { useState, useEffect } from 'react';
|
|
4
|
-
import { onAuthStateChanged } from 'firebase/auth';
|
|
5
|
-
import { jsx } from 'react/jsx-runtime';
|
|
6
|
-
|
|
7
|
-
var AuthStateContext = React.createContext(null);
|
|
8
|
-
var auth = TernSecureAuth();
|
|
9
|
-
function TernSecureClientProvider({
|
|
10
|
-
children,
|
|
11
|
-
initialState
|
|
12
|
-
}) {
|
|
13
|
-
const [authState, setAuthState] = useState(initialState);
|
|
14
|
-
useEffect(() => {
|
|
15
|
-
const unsubscribe = onAuthStateChanged(auth, (user) => {
|
|
16
|
-
if (user) {
|
|
17
|
-
setAuthState({
|
|
18
|
-
loading: false,
|
|
19
|
-
isSignedIn: true,
|
|
20
|
-
userId: user.uid,
|
|
21
|
-
error: null
|
|
22
|
-
});
|
|
23
|
-
} else {
|
|
24
|
-
setAuthState({
|
|
25
|
-
loading: false,
|
|
26
|
-
isSignedIn: false,
|
|
27
|
-
userId: null,
|
|
28
|
-
error: null
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
return () => unsubscribe();
|
|
33
|
-
}, []);
|
|
34
|
-
return /* @__PURE__ */ jsx(TernSecureCtxProvider, { children: /* @__PURE__ */ jsx(AuthStateContext.Provider, { value: authState, children }) });
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export { AuthStateContext, TernSecureClientProvider };
|
|
38
|
-
//# sourceMappingURL=chunk-V34MPPYI.js.map
|
|
39
|
-
//# sourceMappingURL=chunk-V34MPPYI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/app-router/client/TernSecureProvider.tsx"],"names":[],"mappings":";;;;;;AAca,IAAA,gBAAA,GAAmB,KAAM,CAAA,aAAA,CAAsC,IAAI;AAOhF,IAAM,OAAO,cAAe,EAAA;AAErB,SAAS,wBAAyB,CAAA;AAAA,EACvC,QAAA;AAAA,EACA;AACD,CAA0B,EAAA;AACzB,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAA0B,YAAY,CAAA;AAC1E,EAAA,SAAA,CAAU,MAAM;AACZ,IAAA,MAAM,WAAc,GAAA,kBAAA,CAAmB,IAAM,EAAA,CAAC,IAAS,KAAA;AACrD,MAAA,IAAI,IAAM,EAAA;AACR,QAAa,YAAA,CAAA;AAAA,UACX,OAAS,EAAA,KAAA;AAAA,UACT,UAAY,EAAA,IAAA;AAAA,UACZ,QAAQ,IAAK,CAAA,GAAA;AAAA,UACb,KAAO,EAAA;AAAA,SACR,CAAA;AAAA,OACI,MAAA;AACL,QAAa,YAAA,CAAA;AAAA,UACX,OAAS,EAAA,KAAA;AAAA,UACT,UAAY,EAAA,KAAA;AAAA,UACZ,MAAQ,EAAA,IAAA;AAAA,UACR,KAAO,EAAA;AAAA,SACR,CAAA;AAAA;AACH,KACD,CAAA;AAED,IAAA,OAAO,MAAM,WAAY,EAAA;AAAA,GAC3B,EAAG,EAAE,CAAA;AAGL,EACE,uBAAA,GAAA,CAAC,yBACC,QAAC,kBAAA,GAAA,CAAA,gBAAA,CAAiB,UAAjB,EAA0B,KAAA,EAAO,SACjC,EAAA,QAAA,EACD,CACF,EAAA,CAAA;AAEJ","file":"chunk-V34MPPYI.js","sourcesContent":["'use client'\r\n\r\nimport React, { useState, useEffect } from 'react'\r\nimport { TernSecureAuth } from '../../utils/client-init'\r\nimport { onAuthStateChanged } from \"firebase/auth\"\r\nimport { useInternalContext, TernSecureCtxProvider } from '../../boundary/TernSecureCtx'\r\n\r\nexport type TernSecureState = {\r\n userId: string | null\r\n loading: boolean\r\n error: string | null\r\n isSignedIn: boolean\r\n}\r\n\r\nexport const AuthStateContext = React.createContext<TernSecureState | null>(null)\r\n\r\ninterface TernSecureClientProps {\r\n children: React.ReactNode\r\n initialState: TernSecureState\r\n}\r\n\r\nconst auth = TernSecureAuth();\r\n\r\nexport function TernSecureClientProvider({ \r\n children,\r\n initialState\r\n }: TernSecureClientProps) {\r\n const [authState, setAuthState] = useState<TernSecureState>(initialState)\r\nuseEffect(() => {\r\n const unsubscribe = onAuthStateChanged(auth, (user) => {\r\n if (user) {\r\n setAuthState({\r\n loading: false,\r\n isSignedIn: true,\r\n userId: user.uid,\r\n error: null\r\n })\r\n } else {\r\n setAuthState({\r\n loading: false,\r\n isSignedIn: false,\r\n userId: null,\r\n error: null\r\n })\r\n }\r\n })\r\n \r\n return () => unsubscribe()\r\n }, [])\r\n\r\n\r\n return (\r\n <TernSecureCtxProvider>\r\n <AuthStateContext.Provider value={authState}>\r\n {children}\r\n </AuthStateContext.Provider>\r\n </TernSecureCtxProvider>\r\n )\r\n}\r\n\r\nexport type { TernSecureClientProps }"]}
|