@tern-secure/nextjs 3.1.56 → 3.1.57
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 +69 -22
- package/dist/cjs/app-router/client/TernSecureProvider.cjs.map +1 -1
- package/dist/cjs/app-router/server/TernSecureServerProvider.cjs +89 -27
- package/dist/cjs/app-router/server/TernSecureServerProvider.cjs.map +1 -1
- package/dist/cjs/boundary/TernSecureCtx.cjs +32 -5
- package/dist/cjs/boundary/TernSecureCtx.cjs.map +1 -1
- package/dist/cjs/boundary/hooks/use-auth.cjs +26 -11
- package/dist/cjs/boundary/hooks/use-auth.cjs.map +1 -1
- package/dist/cjs/index.cjs +113 -45
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/app-router/client/TernSecureProvider.d.ts +12 -1
- package/dist/esm/app-router/client/TernSecureProvider.js +67 -3
- package/dist/esm/app-router/client/TernSecureProvider.js.map +1 -1
- package/dist/esm/app-router/server/TernSecureServerProvider.d.ts +9 -6
- package/dist/esm/app-router/server/TernSecureServerProvider.js +1 -1
- package/dist/esm/boundary/TernSecureCtx.d.ts +19 -12
- package/dist/esm/boundary/TernSecureCtx.js +1 -1
- package/dist/esm/boundary/hooks/use-auth.d.ts +23 -8
- package/dist/esm/boundary/hooks/use-auth.js +2 -2
- package/dist/esm/chunk-32DZLLHE.js +43 -0
- package/dist/esm/chunk-32DZLLHE.js.map +1 -0
- package/dist/esm/chunk-FMHBRXHR.js +20 -0
- package/dist/esm/chunk-FMHBRXHR.js.map +1 -0
- package/dist/esm/chunk-S2ODB3YJ.js +31 -0
- package/dist/esm/chunk-S2ODB3YJ.js.map +1 -0
- package/dist/esm/index.d.ts +8 -5
- package/dist/esm/index.js +8 -4
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/esm/chunk-5JJ6CT72.js +0 -20
- package/dist/esm/chunk-5JJ6CT72.js.map +0 -1
- package/dist/esm/chunk-6NBIYUE5.js +0 -16
- package/dist/esm/chunk-6NBIYUE5.js.map +0 -1
- package/dist/esm/chunk-I2PGODCQ.js +0 -17
- package/dist/esm/chunk-I2PGODCQ.js.map +0 -1
- package/dist/esm/chunk-QYWR3ALC.js +0 -40
- package/dist/esm/chunk-QYWR3ALC.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/boundary/TernSecureCtx.tsx"],"names":[],"mappings":";;;;AAKa,IAAA,eAAA,GAAN,cAA8B,KAAM,CAAA;AAAA,EACzC,YAAY,OAAiB,EAAA;AAC3B,IAAM,KAAA,CAAA,CAAA,aAAA,EAAgB,OAAO,CAAE,CAAA,CAAA;AAC/B,IAAA,IAAA,CAAK,IAAO,GAAA,iBAAA;AAAA;AAEhB;AAYA,IAAM,iBAAA,GAAoB,KAAM,CAAA,aAAA,CAAyC,IAAI,CAAA;AAG7E,iBAAA,CAAkB,WAAc,GAAA,mBAAA;AAM1B,IAAA,kBAAA,GAAqB,CAAC,QAAA,GAAmB,oBAAyB,KAAA;AAEtE,EAAI,IAAA,OAAO,WAAW,WAAa,EAAA;AACjC,IAAA,MAAM,IAAI,eAAA,CAAgB,CAAG,EAAA,QAAQ,CAAoC,kCAAA,CAAA,CAAA;AAAA;AAG3E,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,UAAA,CAAW,iBAAiB,CAAA;AAElD,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAA,MAAM,IAAI,eAAA;AAAA,MACR,GAAG,QAAQ,CAAA,6CAAA;AAAA,KACb;AAAA;AAGF,EAAO,OAAA,OAAA;AACT;AAMA,IAAM,wBAA2D,CAAC;AAAA,EAChE;AACF,CAAM,KAAA;AAEJ,EAAI,IAAA,OAAO,WAAW,WAAa,EAAA;AACjC,IAAA,MAAM,IAAI,eAAA;AAAA,MACR;AAAA,KACF;AAAA;AAIF,EAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,YAAc,EAAA;AACzC,IAAA,KAAA,CAAM,UAAU,MAAM;AACpB,MAAA,OAAA,CAAQ,IAAI,uDAAuD,CAAA;AAAA,KACrE,EAAG,EAAE,CAAA;AAAA;AAGP,EACE,uBAAA,GAAA,CAAC,kBAAkB,QAAlB,EAAA,EAA2B,OAAO,EAAE,OAAA,EAAS,IAAK,EAAA,EAChD,QACH,EAAA,CAAA;AAEJ","file":"chunk-32DZLLHE.js","sourcesContent":["'use client'\r\n\r\nimport React from 'react'\r\n\r\n// Custom error for package\r\nexport class TernSecureError extends Error {\r\n constructor(message: string) {\r\n super(`[TernSecure] ${message}`)\r\n this.name = 'TernSecureError'\r\n }\r\n}\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 | null>(null)\r\n\r\n// Set display name for better debugging\r\nTernSecureContext.displayName = 'TernSecureContext'\r\n\r\n/**\r\n * Internal hook for context consumption\r\n * @throws {TernSecureError} When used outside client components or provider\r\n */\r\nconst useInternalContext = (hookname: string = 'useInternalContext') => {\r\n // Early check for client-side\r\n if (typeof window === 'undefined') {\r\n throw new TernSecureError(`${hookname} must be used in client components`)\r\n }\r\n\r\n const context = React.useContext(TernSecureContext)\r\n \r\n if (!context) {\r\n throw new TernSecureError(\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 // Check for client-side rendering\r\n if (typeof window === 'undefined') {\r\n throw new TernSecureError(\r\n 'TernSecureCtxProvider must be used in client components'\r\n )\r\n }\r\n\r\n // Development checks\r\n if (process.env.NODE_ENV !== 'production') {\r\n React.useEffect(() => {\r\n console.log('[TernSecure] Provider initialized in client component')\r\n }, [])\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}"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useInternalContext, TernSecureError } from './chunk-32DZLLHE.js';
|
|
2
|
+
|
|
3
|
+
// src/boundary/hooks/use-auth.ts
|
|
4
|
+
function useAuth() {
|
|
5
|
+
const context = useInternalContext("useAuth");
|
|
6
|
+
if (!context.dynamic) {
|
|
7
|
+
throw new TernSecureError("Authentication context not properly initialized");
|
|
8
|
+
}
|
|
9
|
+
const defaultState = {
|
|
10
|
+
loading: true,
|
|
11
|
+
isSignedIn: false,
|
|
12
|
+
userId: null,
|
|
13
|
+
error: null
|
|
14
|
+
};
|
|
15
|
+
return defaultState;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { useAuth };
|
|
19
|
+
//# sourceMappingURL=chunk-FMHBRXHR.js.map
|
|
20
|
+
//# sourceMappingURL=chunk-FMHBRXHR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/boundary/hooks/use-auth.ts"],"names":[],"mappings":";;;AAsBO,SAAS,OAA2B,GAAA;AAEzC,EAAM,MAAA,OAAA,GAAU,mBAAmB,SAAS,CAAA;AAG5C,EAAI,IAAA,CAAC,QAAQ,OAAS,EAAA;AACpB,IAAM,MAAA,IAAI,gBAAgB,iDAAiD,CAAA;AAAA;AAI7E,EAAA,MAAM,YAAgC,GAAA;AAAA,IACpC,OAAS,EAAA,IAAA;AAAA,IACT,UAAY,EAAA,KAAA;AAAA,IACZ,MAAQ,EAAA,IAAA;AAAA,IACR,KAAO,EAAA;AAAA,GACT;AAEA,EAAO,OAAA,YAAA;AACT","file":"chunk-FMHBRXHR.js","sourcesContent":["'use client'\r\n\r\nimport { useInternalContext, TernSecureError } from '../TernSecureCtx'\r\nimport type { TernSecureState } from '../../app-router/client/TernSecureProvider'\r\n\r\n/**\r\n * Hook to access TernSecure authentication state\r\n * Must be used within TernSecureClientProvider and in client components\r\n * \r\n * @throws {TernSecureError} When used outside client components or provider\r\n * @returns {TernSecureState} Current authentication state\r\n * \r\n * @example\r\n * function AuthenticatedComponent() {\r\n * const { isSignedIn, loading, userId, error } = useAuth()\r\n * \r\n * if (loading) return <div>Loading...</div>\r\n * if (error) return <div>Error: {error}</div>\r\n * \r\n * return isSignedIn ? <div>Welcome user: {userId}</div> : <div>Please sign in</div>\r\n * }\r\n */\r\nexport function useAuth(): TernSecureState {\r\n // useInternalContext already handles client-side and provider checks\r\n const context = useInternalContext('useAuth')\r\n\r\n // Since our context only has dynamic flag, we need to access the parent provider\r\n if (!context.dynamic) {\r\n throw new TernSecureError('Authentication context not properly initialized')\r\n }\r\n\r\n // Get auth state from the nearest TernSecureClientProvider\r\n const defaultState: TernSecureState = {\r\n loading: true,\r\n isSignedIn: false,\r\n userId: null,\r\n error: null\r\n }\r\n\r\n return defaultState\r\n}\r\n\r\n// Re-export the state type for consumers\r\nexport type { TernSecureState }"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import dynamic from 'next/dynamic';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
// src/app-router/server/TernSecureServerProvider.tsx
|
|
6
|
+
function TernSecureLoadingFallback() {
|
|
7
|
+
return /* @__PURE__ */ jsx(
|
|
8
|
+
"div",
|
|
9
|
+
{
|
|
10
|
+
"aria-label": "Loading authentication",
|
|
11
|
+
role: "status",
|
|
12
|
+
className: "tern-secure-loading",
|
|
13
|
+
children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading authentication..." })
|
|
14
|
+
}
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
var TernSecureClientProvider = dynamic(
|
|
18
|
+
() => import('./app-router/client/TernSecureProvider.js').then((mod) => mod.TernSecureClientProvider),
|
|
19
|
+
{
|
|
20
|
+
loading: TernSecureLoadingFallback
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
function TernSecureServerProvider({
|
|
24
|
+
children
|
|
25
|
+
}) {
|
|
26
|
+
return /* @__PURE__ */ jsx(React.Suspense, { fallback: /* @__PURE__ */ jsx(TernSecureLoadingFallback, {}), children: /* @__PURE__ */ jsx(TernSecureClientProvider, { children }) });
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { TernSecureServerProvider };
|
|
30
|
+
//# sourceMappingURL=chunk-S2ODB3YJ.js.map
|
|
31
|
+
//# sourceMappingURL=chunk-S2ODB3YJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/app-router/server/TernSecureServerProvider.tsx"],"names":[],"mappings":";;;;;AAKA,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;AAGA,IAAM,wBAA2B,GAAA,OAAA;AAAA,EAC/B,MAAM,OAAO,2CAA8B,EAAE,IAAK,CAAA,CAAA,GAAA,KAAO,IAAI,wBAAwB,CAAA;AAAA,EACrF;AAAA,IACE,OAAS,EAAA;AAAA;AAEb,CAAA;AAMO,SAAS,wBAAyB,CAAA;AAAA,EACvC;AACF,CAEG,EAAA;AACD,EACE,uBAAA,GAAA,CAAC,KAAM,CAAA,QAAA,EAAN,EAAe,QAAA,kBAAW,GAAA,CAAA,yBAAA,EAAA,EAA0B,CACnD,EAAA,QAAA,kBAAA,GAAA,CAAC,wBACE,EAAA,EAAA,QAAA,EACH,CACF,EAAA,CAAA;AAEJ","file":"chunk-S2ODB3YJ.js","sourcesContent":["import React from \"react\"\r\nimport dynamic from 'next/dynamic'\r\nimport type { TernSecureClientProps } from '../client/TernSecureProvider'\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\n// Dynamically import the client provider\r\nconst TernSecureClientProvider = dynamic<TernSecureClientProps>(\r\n () => import('../client/TernSecureProvider').then(mod => mod.TernSecureClientProvider),\r\n { \r\n loading: TernSecureLoadingFallback\r\n }\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 */\r\nexport function TernSecureServerProvider({ \r\n children \r\n}: { \r\n children: React.ReactNode \r\n}) {\r\n return (\r\n <React.Suspense fallback={<TernSecureLoadingFallback />}>\r\n <TernSecureClientProvider>\r\n {children}\r\n </TernSecureClientProvider>\r\n </React.Suspense>\r\n )\r\n}"]}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
|
+
import { TernSecureServerProvider } from './app-router/server/TernSecureServerProvider.js';
|
|
2
|
+
export { TernSecureState } from './app-router/client/TernSecureProvider.js';
|
|
1
3
|
export { TernSecureAuth, TernSecureFirestore, TernSecureStorage } from './utils/client-init.js';
|
|
2
4
|
export { loadFireConfig, validateConfig } from './utils/config.js';
|
|
3
5
|
export { signInWithEmail } from './app-router/server/auth.js';
|
|
4
|
-
export { useInternalContext } from './boundary/TernSecureCtx.js';
|
|
5
|
-
export { TernSecureClientProvider } from './app-router/client/TernSecureProvider.js';
|
|
6
|
-
export { TernSecureProvider } from './app-router/server/TernSecureServerProvider.js';
|
|
7
6
|
export { useAuth } from './boundary/hooks/use-auth.js';
|
|
8
7
|
export { SignIn } from './components/sign-in.js';
|
|
8
|
+
import 'react/jsx-runtime';
|
|
9
|
+
import 'react';
|
|
9
10
|
import '@firebase/storage';
|
|
10
11
|
import '@firebase/firestore';
|
|
11
12
|
import '@firebase/auth';
|
|
12
13
|
import './types.js';
|
|
13
14
|
import 'firebase/app';
|
|
14
15
|
import 'firebase/auth';
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
|
|
17
|
+
declare const TernSecureProvider: typeof TernSecureServerProvider;
|
|
18
|
+
|
|
19
|
+
export { TernSecureProvider };
|
package/dist/esm/index.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
3
|
-
|
|
4
|
-
export { useInternalContext } from './chunk-I2PGODCQ.js';
|
|
1
|
+
import { TernSecureServerProvider } from './chunk-S2ODB3YJ.js';
|
|
2
|
+
export { useAuth } from './chunk-FMHBRXHR.js';
|
|
3
|
+
import './chunk-32DZLLHE.js';
|
|
5
4
|
export { SignIn } from './chunk-EIOZNLP2.js';
|
|
6
5
|
export { signInWithEmail } from './chunk-4XFIX4FL.js';
|
|
7
6
|
export { TernSecureAuth, TernSecureFirestore, TernSecureStorage } from './chunk-FVV74XVR.js';
|
|
8
7
|
export { loadFireConfig, validateConfig } from './chunk-UHGBSUM6.js';
|
|
9
8
|
import './chunk-EI37GOD7.js';
|
|
9
|
+
|
|
10
|
+
// src/index.ts
|
|
11
|
+
var TernSecureProvider = TernSecureServerProvider;
|
|
12
|
+
|
|
13
|
+
export { TernSecureProvider };
|
|
10
14
|
//# sourceMappingURL=index.js.map
|
|
11
15
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAYO,IAAM,kBAAqB,GAAA","file":"index.js","sourcesContent":["import { TernSecureServerProvider } from './app-router/server/TernSecureServerProvider'\r\nimport type { TernSecureState } from './app-router/client/TernSecureProvider'\r\n\r\nexport { TernSecureAuth, TernSecureFirestore, TernSecureStorage } from './utils/client-init'\r\nexport { loadFireConfig, validateConfig } from './utils/config'\r\nexport { signInWithEmail } from './app-router/server/auth'\r\n//export { useInternalContext } from './boundary/TernSecureCtx'\r\n//export { TernSecureClientProvider } from './app-router/client/TernSecureProvider'\r\n//export { TernSecureProvider } from './app-router/server/TernSecureServerProvider'\r\nexport { useAuth } from './boundary/hooks/use-auth' \r\nexport { SignIn } from './components/sign-in'\r\n\r\nexport const TernSecureProvider = TernSecureServerProvider\r\nexport type { TernSecureState }"]}
|
package/package.json
CHANGED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { useInternalContext } from './chunk-I2PGODCQ.js';
|
|
2
|
-
|
|
3
|
-
// src/boundary/hooks/use-auth.ts
|
|
4
|
-
function useAuth() {
|
|
5
|
-
const context = useInternalContext("useAuth");
|
|
6
|
-
if (!context || !context.value) {
|
|
7
|
-
throw new Error("useAuth must be used within a TernSecureClientProvider");
|
|
8
|
-
}
|
|
9
|
-
const { userId, loading, error, isSignedIn } = context.value;
|
|
10
|
-
return {
|
|
11
|
-
userId,
|
|
12
|
-
loading,
|
|
13
|
-
error,
|
|
14
|
-
isSignedIn
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export { useAuth };
|
|
19
|
-
//# sourceMappingURL=chunk-5JJ6CT72.js.map
|
|
20
|
-
//# sourceMappingURL=chunk-5JJ6CT72.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/boundary/hooks/use-auth.ts"],"names":[],"mappings":";;;AAWO,SAAS,OAAqB,GAAA;AACnC,EAAM,MAAA,OAAA,GAAU,mBAAmB,SAAS,CAAA;AAE5C,EAAA,IAAI,CAAC,OAAA,IAAW,CAAC,OAAA,CAAQ,KAAO,EAAA;AAC9B,IAAM,MAAA,IAAI,MAAM,wDAAwD,CAAA;AAAA;AAG1E,EAAA,MAAM,EAAE,MAAQ,EAAA,OAAA,EAAS,KAAO,EAAA,UAAA,KAAe,OAAQ,CAAA,KAAA;AAEvD,EAAO,OAAA;AAAA,IACL,MAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACF;AACF","file":"chunk-5JJ6CT72.js","sourcesContent":["'use client'\r\n\r\nimport { useInternalContext } from '../TernSecureCtx'\r\n\r\nexport interface AuthState {\r\n userId: string | null\r\n loading: boolean\r\n error: string | null\r\n isSignedIn: boolean\r\n}\r\n\r\nexport function useAuth(): AuthState {\r\n const context = useInternalContext('useAuth')\r\n \r\n if (!context || !context.value) {\r\n throw new Error('useAuth must be used within a TernSecureClientProvider')\r\n }\r\n\r\n const { userId, loading, error, isSignedIn } = context.value\r\n\r\n return {\r\n userId,\r\n loading,\r\n error,\r\n isSignedIn\r\n }\r\n}"]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import dynamic from 'next/dynamic';
|
|
2
|
-
import { Suspense } from 'react';
|
|
3
|
-
import { jsx } from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
// src/app-router/server/TernSecureServerProvider.tsx
|
|
6
|
-
var TernSecureClientProvider = dynamic(
|
|
7
|
-
() => import('./app-router/client/TernSecureProvider.js').then((mod) => mod.TernSecureClientProvider),
|
|
8
|
-
{ ssr: true }
|
|
9
|
-
);
|
|
10
|
-
function TernSecureProvider({ children }) {
|
|
11
|
-
return /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx("div", { children: "Loading..." }), children: /* @__PURE__ */ jsx(TernSecureClientProvider, { children }) });
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export { TernSecureProvider };
|
|
15
|
-
//# sourceMappingURL=chunk-6NBIYUE5.js.map
|
|
16
|
-
//# sourceMappingURL=chunk-6NBIYUE5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/app-router/server/TernSecureServerProvider.tsx"],"names":[],"mappings":";;;;;AAGA,IAAM,wBAA2B,GAAA,OAAA;AAAA,EAC/B,MAAM,OAAO,2CAA8B,EAAE,IAAK,CAAA,CAAA,GAAA,KAAO,IAAI,wBAAwB,CAAA;AAAA,EACrF,EAAE,KAAK,IAAK;AACd,CAAA;AAMO,SAAS,kBAAA,CAAmB,EAAE,QAAA,EAAqC,EAAA;AACxE,EACE,uBAAA,GAAA,CAAC,QAAS,EAAA,EAAA,QAAA,kBAAW,GAAA,CAAA,KAAA,EAAA,EAAI,wBAAU,CACjC,EAAA,QAAA,kBAAA,GAAA,CAAC,wBACE,EAAA,EAAA,QAAA,EACH,CACF,EAAA,CAAA;AAEJ","file":"chunk-6NBIYUE5.js","sourcesContent":["import dynamic from 'next/dynamic'\r\nimport React, { ReactNode, Suspense } from \"react\"\r\n\r\nconst TernSecureClientProvider = dynamic(\r\n () => import(\"../client/TernSecureProvider\").then(mod => mod.TernSecureClientProvider),\r\n { ssr: true }\r\n)\r\n\r\ninterface TernSecureProviderProps {\r\n children: ReactNode\r\n}\r\n\r\nexport function TernSecureProvider({ children }: TernSecureProviderProps) {\r\n return (\r\n <Suspense fallback={<div>Loading...</div>}>\r\n <TernSecureClientProvider>\r\n {children}\r\n </TernSecureClientProvider>\r\n </Suspense>\r\n )\r\n}"]}
|
|
@@ -1,17 +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
|
-
var useInternalContext = (hookname) => {
|
|
7
|
-
const context = React.useContext(TernSecureContext);
|
|
8
|
-
return context;
|
|
9
|
-
};
|
|
10
|
-
var TernSecureCtxProvider = (props) => {
|
|
11
|
-
const { children, options } = props;
|
|
12
|
-
return /* @__PURE__ */ jsx(TernSecureContext.Provider, { value: { value: options }, children });
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export { TernSecureCtxProvider, useInternalContext };
|
|
16
|
-
//# sourceMappingURL=chunk-I2PGODCQ.js.map
|
|
17
|
-
//# sourceMappingURL=chunk-I2PGODCQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/boundary/TernSecureCtx.tsx"],"names":[],"mappings":";;;;AAaA,IAAM,iBAAA,GAAoB,KAAM,CAAA,aAAA,CAAoD,KAAS,CAAA,CAAA;AAEvF,IAAA,kBAAA,GAAqB,CAAC,QAAsB,KAAA;AAChD,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,UAAA,CAAW,iBAAiB,CAAA;AAClD,EAAO,OAAA,OAAA;AACT;AAEM,IAAA,qBAAA,GAAwB,CAC5B,KACsB,KAAA;AACtB,EAAM,MAAA,EAAE,QAAU,EAAA,OAAA,EAAY,GAAA,KAAA;AAC9B,EAAO,uBAAA,GAAA,CAAC,kBAAkB,QAAlB,EAAA,EAA2B,OAAO,EAAE,KAAA,EAAO,OAAQ,EAAA,EAAI,QAAS,EAAA,CAAA;AAC1E","file":"chunk-I2PGODCQ.js","sourcesContent":["'use client'\r\n\r\nimport React from 'react'\r\n\r\ntype TernSecureState = {\r\n userId: string | null\r\n loading: boolean\r\n error: string | null\r\n isSignedIn: boolean\r\n}\r\n\r\n\r\n// Create context instance only when imported on client\r\nconst TernSecureContext = React.createContext<{value: TernSecureState} | undefined>(undefined);\r\n\r\nconst useInternalContext = (hookname?: string) => {\r\n const context = React.useContext(TernSecureContext)\r\n return context\r\n}\r\n\r\nconst TernSecureCtxProvider = (\r\n props: React.PropsWithChildren<{ options: TernSecureState }>,\r\n): React.JSX.Element => {\r\n const { children, options } = props;\r\n return <TernSecureContext.Provider value={{ value: options }}>{children}</TernSecureContext.Provider>;\r\n};\r\n\r\n\r\nexport {\r\n useInternalContext,\r\n TernSecureCtxProvider\r\n}"]}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { TernSecureCtxProvider } from './chunk-I2PGODCQ.js';
|
|
2
|
-
import { TernSecureAuth } from './chunk-FVV74XVR.js';
|
|
3
|
-
import React, { useState } from 'react';
|
|
4
|
-
import { onAuthStateChanged } from 'firebase/auth';
|
|
5
|
-
import { jsx } from 'react/jsx-runtime';
|
|
6
|
-
|
|
7
|
-
var auth = TernSecureAuth();
|
|
8
|
-
function TernSecureClientProvider({ children }) {
|
|
9
|
-
const [authState, setAuthState] = useState({
|
|
10
|
-
loading: true,
|
|
11
|
-
isSignedIn: false,
|
|
12
|
-
userId: null,
|
|
13
|
-
error: null
|
|
14
|
-
});
|
|
15
|
-
React.useEffect(() => {
|
|
16
|
-
const unsubscribe = onAuthStateChanged(auth, (user) => {
|
|
17
|
-
if (user) {
|
|
18
|
-
setAuthState({
|
|
19
|
-
loading: false,
|
|
20
|
-
isSignedIn: true,
|
|
21
|
-
userId: user.uid,
|
|
22
|
-
error: null
|
|
23
|
-
});
|
|
24
|
-
} else {
|
|
25
|
-
setAuthState({
|
|
26
|
-
loading: false,
|
|
27
|
-
isSignedIn: false,
|
|
28
|
-
userId: null,
|
|
29
|
-
error: null
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
return () => unsubscribe();
|
|
34
|
-
}, []);
|
|
35
|
-
return /* @__PURE__ */ jsx(TernSecureCtxProvider, { options: authState, children });
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export { TernSecureClientProvider };
|
|
39
|
-
//# sourceMappingURL=chunk-QYWR3ALC.js.map
|
|
40
|
-
//# sourceMappingURL=chunk-QYWR3ALC.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/app-router/client/TernSecureProvider.tsx"],"names":[],"mappings":";;;;;;AAkBA,IAAM,OAAO,cAAe,EAAA;AAErB,SAAS,wBAAA,CAAyB,EAAE,QAAA,EAAmC,EAAA;AAC5E,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,QAA0B,CAAA;AAAA,IAC1D,OAAS,EAAA,IAAA;AAAA,IACT,UAAY,EAAA,KAAA;AAAA,IACZ,MAAQ,EAAA,IAAA;AAAA,IACR,KAAO,EAAA;AAAA,GACR,CAAA;AACH,EAAA,KAAA,CAAM,UAAU,MAAM;AAClB,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,EAAA,uBACG,GAAA,CAAA,qBAAA,EAAA,EAAsB,OAAS,EAAA,SAAA,EAC7B,QACH,EAAA,CAAA;AAEJ","file":"chunk-QYWR3ALC.js","sourcesContent":["'use client'\r\n\r\nimport React, { useState } 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\ntype TernSecureState = {\r\n userId: string | null\r\n loading: boolean\r\n error: string | null\r\n isSignedIn: boolean\r\n}\r\n\r\ninterface TernSecureClientProps {\r\n children: React.ReactNode\r\n}\r\n\r\nconst auth = TernSecureAuth()\r\n\r\nexport function TernSecureClientProvider({ children }: TernSecureClientProps) {\r\n const [authState, setAuthState] = useState<TernSecureState>({\r\n loading: true,\r\n isSignedIn: false,\r\n userId: null,\r\n error: null\r\n })\r\nReact.useEffect(() => {\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 options={authState}>\r\n {children}\r\n </TernSecureCtxProvider>\r\n )\r\n}"]}
|