@tern-secure/nextjs 3.1.63 → 3.1.65

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 (41) hide show
  1. package/dist/cjs/app-router/client/TernSecureProvider.cjs +9 -9
  2. package/dist/cjs/app-router/client/TernSecureProvider.cjs.map +1 -1
  3. package/dist/cjs/app-router/server/TernSecureServerProvider.cjs +79 -112
  4. package/dist/cjs/app-router/server/TernSecureServerProvider.cjs.map +1 -1
  5. package/dist/cjs/boundary/TernSecureCtx.cjs +1 -1
  6. package/dist/cjs/boundary/TernSecureCtx.cjs.map +1 -1
  7. package/dist/cjs/boundary/hooks/useAuth.cjs +95 -0
  8. package/dist/cjs/boundary/hooks/useAuth.cjs.map +1 -0
  9. package/dist/cjs/index.cjs +105 -143
  10. package/dist/cjs/index.cjs.map +1 -1
  11. package/dist/esm/app-router/client/TernSecureProvider.d.ts +4 -2
  12. package/dist/esm/app-router/client/TernSecureProvider.js +3 -38
  13. package/dist/esm/app-router/client/TernSecureProvider.js.map +1 -1
  14. package/dist/esm/app-router/server/TernSecureServerProvider.d.ts +19 -3
  15. package/dist/esm/app-router/server/TernSecureServerProvider.js +5 -1
  16. package/dist/esm/boundary/TernSecureCtx.js +1 -1
  17. package/dist/esm/boundary/hooks/useAuth.d.ts +7 -0
  18. package/dist/esm/boundary/hooks/useAuth.js +7 -0
  19. package/dist/esm/boundary/hooks/useAuth.js.map +1 -0
  20. package/dist/esm/chunk-JS7GJYXQ.js +29 -0
  21. package/dist/esm/chunk-JS7GJYXQ.js.map +1 -0
  22. package/dist/esm/{chunk-RAZTKM22.js → chunk-LSHP5OGU.js} +3 -3
  23. package/dist/esm/chunk-LSHP5OGU.js.map +1 -0
  24. package/dist/esm/chunk-Q74X6X6Y.js +21 -0
  25. package/dist/esm/chunk-Q74X6X6Y.js.map +1 -0
  26. package/dist/esm/chunk-V34MPPYI.js +39 -0
  27. package/dist/esm/chunk-V34MPPYI.js.map +1 -0
  28. package/dist/esm/index.d.ts +2 -2
  29. package/dist/esm/index.js +4 -3
  30. package/dist/esm/index.js.map +1 -1
  31. package/package.json +1 -1
  32. package/dist/cjs/boundary/hooks/use-auth.cjs +0 -39
  33. package/dist/cjs/boundary/hooks/use-auth.cjs.map +0 -1
  34. package/dist/esm/boundary/hooks/use-auth.d.ts +0 -24
  35. package/dist/esm/boundary/hooks/use-auth.js +0 -4
  36. package/dist/esm/boundary/hooks/use-auth.js.map +0 -1
  37. package/dist/esm/chunk-F3ZEM7GT.js +0 -23
  38. package/dist/esm/chunk-F3ZEM7GT.js.map +0 -1
  39. package/dist/esm/chunk-JK7KVGFJ.js +0 -20
  40. package/dist/esm/chunk-JK7KVGFJ.js.map +0 -1
  41. package/dist/esm/chunk-RAZTKM22.js.map +0 -1
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
 
4
4
  // src/boundary/TernSecureCtx.tsx
5
- var TernSecureContext = React.createContext(null);
5
+ var TernSecureContext = React.createContext(void 0);
6
6
  TernSecureContext.displayName = "TernSecureContext";
7
7
  var useInternalContext = (hookname = "useInternalContext") => {
8
8
  const context = React.useContext(TernSecureContext);
@@ -20,5 +20,5 @@ var TernSecureCtxProvider = ({
20
20
  };
21
21
 
22
22
  export { TernSecureCtxProvider, useInternalContext };
23
- //# sourceMappingURL=chunk-RAZTKM22.js.map
24
- //# sourceMappingURL=chunk-RAZTKM22.js.map
23
+ //# sourceMappingURL=chunk-LSHP5OGU.js.map
24
+ //# sourceMappingURL=chunk-LSHP5OGU.js.map
@@ -0,0 +1 @@
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}"]}
@@ -0,0 +1,21 @@
1
+ import { AuthStateContext } from './chunk-V34MPPYI.js';
2
+ import { useInternalContext } from './chunk-LSHP5OGU.js';
3
+ import { useContext } from 'react';
4
+
5
+ function useAuth() {
6
+ useInternalContext("useAuth");
7
+ const authState = useContext(AuthStateContext);
8
+ if (!authState) {
9
+ throw new Error("Auth state not found");
10
+ }
11
+ return {
12
+ userId: authState.userId,
13
+ loading: authState.loading,
14
+ error: authState.error,
15
+ isSignedIn: authState.isSignedIn
16
+ };
17
+ }
18
+
19
+ export { useAuth };
20
+ //# sourceMappingURL=chunk-Q74X6X6Y.js.map
21
+ //# sourceMappingURL=chunk-Q74X6X6Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/boundary/hooks/useAuth.ts"],"names":[],"mappings":";;;;AAMO,SAAS,OAA2B,GAAA;AAEzC,EAAA,kBAAA,CAAmB,SAAS,CAAA;AAG5B,EAAM,MAAA,SAAA,GAAY,WAAW,gBAAgB,CAAA;AAC7C,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAM,MAAA,IAAI,MAAM,sBAAsB,CAAA;AAAA;AAGxC,EAAO,OAAA;AAAA,IACL,QAAQ,SAAU,CAAA,MAAA;AAAA,IAClB,SAAS,SAAU,CAAA,OAAA;AAAA,IACnB,OAAO,SAAU,CAAA,KAAA;AAAA,IACjB,YAAY,SAAU,CAAA;AAAA,GACxB;AACF","file":"chunk-Q74X6X6Y.js","sourcesContent":["'use client'\r\n\r\nimport { useContext } from 'react'\r\nimport { useInternalContext } from '../../boundary/TernSecureCtx'\r\nimport { AuthStateContext, type TernSecureState } from '../../app-router/client/TernSecureProvider'\r\n\r\nexport function useAuth(): TernSecureState {\r\n // Verify we're within the provider boundary\r\n useInternalContext('useAuth')\r\n \r\n // Get the auth state from the AuthStateContext\r\n const authState = useContext(AuthStateContext)\r\n if (!authState) {\r\n throw new Error('Auth state not found')\r\n }\r\n\r\n return {\r\n userId: authState.userId,\r\n loading: authState.loading,\r\n error: authState.error,\r\n isSignedIn: authState.isSignedIn\r\n }\r\n}"]}
@@ -0,0 +1,39 @@
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
@@ -0,0 +1 @@
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 }"]}
@@ -1,9 +1,9 @@
1
1
  import { TernSecureServerProvider } from './app-router/server/TernSecureServerProvider.js';
2
+ export { TernSecureState } from './app-router/client/TernSecureProvider.js';
2
3
  export { TernSecureAuth, TernSecureFirestore, TernSecureStorage } from './utils/client-init.js';
3
4
  export { loadFireConfig, validateConfig } from './utils/config.js';
4
5
  export { signInWithEmail } from './app-router/server/auth.js';
5
- export { TernSecureState } from './app-router/client/TernSecureProvider.js';
6
- export { useAuth } from './boundary/hooks/use-auth.js';
6
+ export { useAuth } from './boundary/hooks/useAuth.js';
7
7
  export { SignIn } from './components/sign-in.js';
8
8
  import 'react/jsx-runtime';
9
9
  import 'react';
package/dist/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
- import { TernSecureServerProvider } from './chunk-F3ZEM7GT.js';
2
- export { useAuth } from './chunk-JK7KVGFJ.js';
3
- import './chunk-RAZTKM22.js';
1
+ export { useAuth } from './chunk-Q74X6X6Y.js';
2
+ import { TernSecureServerProvider } from './chunk-JS7GJYXQ.js';
3
+ import './chunk-V34MPPYI.js';
4
+ import './chunk-LSHP5OGU.js';
4
5
  export { SignIn } from './chunk-EIOZNLP2.js';
5
6
  export { signInWithEmail } from './chunk-4XFIX4FL.js';
6
7
  export { TernSecureAuth, TernSecureFirestore, TernSecureStorage } from './chunk-FVV74XVR.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;AAUO,IAAM,kBAAqB,GAAA","file":"index.js","sourcesContent":["import { TernSecureServerProvider } from './app-router/server/TernSecureServerProvider'\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\nexport type { TernSecureState } 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"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAWO,IAAM,kBAAqB,GAAA","file":"index.js","sourcesContent":["import { TernSecureServerProvider } from './app-router/server/TernSecureServerProvider'\r\nimport type { TernSecureState } from './app-router/client/TernSecureProvider'\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/useAuth' \r\nexport { SignIn } from './components/sign-in'\r\n\r\nexport const TernSecureProvider = TernSecureServerProvider\r\nexport type { TernSecureState }"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tern-secure/nextjs",
3
- "version": "3.1.63",
3
+ "version": "3.1.65",
4
4
  "packageManager": "npm@10.9.0",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -1,39 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- require('react/jsx-runtime');
5
-
6
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
-
8
- var React__default = /*#__PURE__*/_interopDefault(React);
9
-
10
- var TernSecureContext = React__default.default.createContext(null);
11
- TernSecureContext.displayName = "TernSecureContext";
12
- var useInternalContext = (hookname = "useInternalContext") => {
13
- const context = React__default.default.useContext(TernSecureContext);
14
- if (!context) {
15
- throw new Error(
16
- `${hookname} must be used within TernSecureClientProvider`
17
- );
18
- }
19
- return context;
20
- };
21
-
22
- // src/boundary/hooks/use-auth.ts
23
- function useAuth() {
24
- const context = useInternalContext("useAuth");
25
- if (!context.dynamic) {
26
- throw new Error("Authentication context not properly initialized");
27
- }
28
- const defaultState = {
29
- loading: true,
30
- isSignedIn: false,
31
- userId: null,
32
- error: null
33
- };
34
- return defaultState;
35
- }
36
-
37
- exports.useAuth = useAuth;
38
- //# sourceMappingURL=use-auth.cjs.map
39
- //# sourceMappingURL=use-auth.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/boundary/TernSecureCtx.tsx","../../../../src/boundary/hooks/use-auth.ts"],"names":["React"],"mappings":";;;;;;;;;AAcA,IAAM,iBAAA,GAAoBA,sBAAM,CAAA,aAAA,CAAyC,IAAI,CAAA;AAG7E,iBAAA,CAAkB,WAAc,GAAA,mBAAA;AAEhC,IAAM,kBAAA,GAAqB,CAAC,QAAA,GAAmB,oBAAyB,KAAA;AAEtE,EAAM,MAAA,OAAA,GAAUA,sBAAM,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,CAAA;;;ACRO,SAAS,OAA2B,GAAA;AAEzC,EAAM,MAAA,OAAA,GAAU,mBAAmB,SAAS,CAAA;AAG5C,EAAI,IAAA,CAAC,QAAQ,OAAS,EAAA;AACpB,IAAM,MAAA,IAAI,MAAM,iDAAiD,CAAA;AAAA;AAInE,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":"use-auth.cjs","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 | null>(null)\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}","'use client'\r\n\r\nimport { useInternalContext } 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 * \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 Error('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 }"]}
@@ -1,24 +0,0 @@
1
- import { TernSecureState } from '../../app-router/client/TernSecureProvider.js';
2
- import 'react/jsx-runtime';
3
- import 'react';
4
-
5
- /**
6
- * Hook to access TernSecure authentication state
7
- * Must be used within TernSecureClientProvider and in client components
8
- *
9
- *
10
- * @returns {TernSecureState} Current authentication state
11
- *
12
- * @example
13
- * function AuthenticatedComponent() {
14
- * const { isSignedIn, loading, userId, error } = useAuth()
15
- *
16
- * if (loading) return <div>Loading...</div>
17
- * if (error) return <div>Error: {error}</div>
18
- *
19
- * return isSignedIn ? <div>Welcome user: {userId}</div> : <div>Please sign in</div>
20
- * }
21
- */
22
- declare function useAuth(): TernSecureState;
23
-
24
- export { TernSecureState, useAuth };
@@ -1,4 +0,0 @@
1
- export { useAuth } from '../../chunk-JK7KVGFJ.js';
2
- import '../../chunk-RAZTKM22.js';
3
- //# sourceMappingURL=use-auth.js.map
4
- //# sourceMappingURL=use-auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"use-auth.js"}
@@ -1,23 +0,0 @@
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
- var TernSecureClientProvider = dynamic(
7
- () => import('./app-router/client/TernSecureProvider.js').then((mod) => mod.TernSecureClientProvider),
8
- {
9
- loading: () => /* @__PURE__ */ jsx(TernSecureLoadingFallback, {})
10
- }
11
- );
12
- function TernSecureLoadingFallback() {
13
- return /* @__PURE__ */ jsx("div", { "aria-label": "Loading authentication", role: "status", children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading authentication..." }) });
14
- }
15
- function TernSecureServerProvider({
16
- children
17
- }) {
18
- return /* @__PURE__ */ jsx(React.Suspense, { fallback: /* @__PURE__ */ jsx(TernSecureLoadingFallback, {}), children: /* @__PURE__ */ jsx(TernSecureClientProvider, { children }) });
19
- }
20
-
21
- export { TernSecureServerProvider };
22
- //# sourceMappingURL=chunk-F3ZEM7GT.js.map
23
- //# sourceMappingURL=chunk-F3ZEM7GT.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/app-router/server/TernSecureServerProvider.tsx"],"names":[],"mappings":";;;;;AAKA,IAAM,wBAA2B,GAAA,OAAA;AAAA,EAC/B,MAAM,OAAO,2CAA8B,EAAE,IAAK,CAAA,CAAA,GAAA,KAAO,IAAI,wBAAwB,CAAA;AAAA,EACrF;AAAA,IACE,OAAA,EAAS,sBAAM,GAAA,CAAC,yBAA0B,EAAA,EAAA;AAAA;AAE9C,CAAA;AAGA,SAAS,yBAA4B,GAAA;AACnC,EACE,uBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,YAAA,EAAW,wBAAyB,EAAA,IAAA,EAAK,QAC5C,EAAA,QAAA,kBAAA,GAAA,CAAC,MAAK,EAAA,EAAA,SAAA,EAAU,SAAU,EAAA,QAAA,EAAA,2BAAA,EAAyB,CACrD,EAAA,CAAA;AAEJ;AAWO,SAAS,wBAAyB,CAAA;AAAA,EACvC;AACF,CAAkC,EAAA;AAChC,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-F3ZEM7GT.js","sourcesContent":["import React from \"react\"\r\nimport dynamic from 'next/dynamic'\r\nimport type { TernSecureClientProps } from '../client/TernSecureProvider'\r\n\r\n// Dynamically import the client provider with no SSR\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// Loading fallback component\r\nfunction TernSecureLoadingFallback() {\r\n return (\r\n <div aria-label=\"Loading authentication\" role=\"status\">\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 * Server Provider for TernSecure\r\n * Safe to use in server components\r\n * Automatically handles client/server boundary\r\n */\r\nexport function TernSecureServerProvider({ \r\n children \r\n}: TernSecureServerProviderProps) {\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}\r\n\r\n// Export types for package users\r\nexport type { TernSecureServerProviderProps }"]}
@@ -1,20 +0,0 @@
1
- import { useInternalContext } from './chunk-RAZTKM22.js';
2
-
3
- // src/boundary/hooks/use-auth.ts
4
- function useAuth() {
5
- const context = useInternalContext("useAuth");
6
- if (!context.dynamic) {
7
- throw new Error("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-JK7KVGFJ.js.map
20
- //# sourceMappingURL=chunk-JK7KVGFJ.js.map
@@ -1 +0,0 @@
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,MAAM,iDAAiD,CAAA;AAAA;AAInE,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-JK7KVGFJ.js","sourcesContent":["'use client'\r\n\r\nimport { useInternalContext } 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 * \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 Error('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 }"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/boundary/TernSecureCtx.tsx"],"names":[],"mappings":";;;;AAcA,IAAM,iBAAA,GAAoB,KAAM,CAAA,aAAA,CAAyC,IAAI,CAAA;AAG7E,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-RAZTKM22.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 | null>(null)\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}"]}