@tern-secure/nextjs 3.1.96 → 3.1.98

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.
@@ -40,7 +40,9 @@ var import_auth = require("firebase/auth");
40
40
  var import_TernSecureCtx = require("../../boundary/TernSecureCtx");
41
41
  const AuthStateContext = import_react.default.createContext(null);
42
42
  const auth = (0, import_client_init.TernSecureAuth)();
43
- function TernSecureClientProvider({ children }) {
43
+ function TernSecureClientProvider({
44
+ children
45
+ }) {
44
46
  const [authState, setAuthState] = (0, import_react.useState)({
45
47
  userId: null,
46
48
  loading: true,
@@ -67,7 +69,7 @@ function TernSecureClientProvider({ children }) {
67
69
  });
68
70
  return () => unsubscribe();
69
71
  }, []);
70
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_TernSecureCtx.TernSecureCtxProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AuthStateContext.Provider, { value: authState, children }) });
72
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_TernSecureCtx.TernSecureCtxProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AuthStateContext.Provider, { value: authState, children: authState.loading ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: "Loading..." }) : children }) });
71
73
  }
72
74
  // Annotate the CommonJS export names for ESM import in node:
73
75
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"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 { TernSecureCtxProvider } from '../../boundary/TernSecureCtx'\r\n\r\ninterface 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\nconst auth = TernSecureAuth();\r\n\r\nexport function TernSecureClientProvider({ children }: { children: React.ReactNode }) {\r\n const [authState, setAuthState] = useState<TernSecureState>({\r\n userId: null,\r\n loading: true,\r\n error: null,\r\n isSignedIn: false\r\n })\r\n\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}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmDM;AAjDN,mBAA2C;AAC3C,yBAA+B;AAC/B,kBAAmC;AACnC,2BAAsC;AAS/B,MAAM,mBAAmB,aAAAA,QAAM,cAAsC,IAAI;AAEhF,MAAM,WAAO,mCAAe;AAErB,SAAS,yBAAyB,EAAE,SAAS,GAAmC;AACrF,QAAM,CAAC,WAAW,YAAY,QAAI,uBAA0B;AAAA,IAC1D,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,YAAY;AAAA,EACd,CAAC;AAEH,8BAAU,MAAM;AACZ,UAAM,kBAAc,gCAAmB,MAAM,CAAC,SAAS;AACrD,UAAI,MAAM;AACR,qBAAa;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ,KAAK;AAAA,UACb,OAAO;AAAA,QACT,CAAC;AAAA,MACH,OAAO;AACL,qBAAa;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ;AAAA,UACR,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAED,WAAO,MAAM,YAAY;AAAA,EAC3B,GAAG,CAAC,CAAC;AAGL,SACE,4CAAC,8CACC,sDAAC,iBAAiB,UAAjB,EAA0B,OAAO,WACjC,UACD,GACF;AAEJ;","names":["React"]}
1
+ {"version":3,"sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"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 { TernSecureCtxProvider } from '../../boundary/TernSecureCtx'\r\n\r\ninterface 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\nconst auth = TernSecureAuth();\r\n\r\nexport function TernSecureClientProvider({ \r\n children\r\n}: { \r\n children: React.ReactNode\r\n}) {\r\n const [authState, setAuthState] = useState<TernSecureState>({\r\n userId: null,\r\n loading: true,\r\n error: null,\r\n isSignedIn: false\r\n })\r\n\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 {authState.loading ? <div>Loading...</div> : children}\r\n </AuthStateContext.Provider>\r\n </TernSecureCtxProvider>\r\n )\r\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwD2B;AAtD3B,mBAA2C;AAC3C,yBAA+B;AAC/B,kBAAmC;AACnC,2BAAsC;AAS/B,MAAM,mBAAmB,aAAAA,QAAM,cAAsC,IAAI;AAEhF,MAAM,WAAO,mCAAe;AAErB,SAAS,yBAAyB;AAAA,EACvC;AACF,GAEI;AACF,QAAM,CAAC,WAAW,YAAY,QAAI,uBAA0B;AAAA,IAC1D,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,YAAY;AAAA,EACd,CAAC;AAEH,8BAAU,MAAM;AACZ,UAAM,kBAAc,gCAAmB,MAAM,CAAC,SAAS;AACrD,UAAI,MAAM;AACR,qBAAa;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ,KAAK;AAAA,UACb,OAAO;AAAA,QACT,CAAC;AAAA,MACH,OAAO;AACL,qBAAa;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ;AAAA,UACR,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAED,WAAO,MAAM,YAAY;AAAA,EAC3B,GAAG,CAAC,CAAC;AAGL,SACE,4CAAC,8CACC,sDAAC,iBAAiB,UAAjB,EAA0B,OAAO,WACjC,oBAAU,UAAU,4CAAC,SAAI,wBAAU,IAAS,UAC7C,GACF;AAEJ;","names":["React"]}
@@ -18,20 +18,19 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var TernSecureServerProvider_exports = {};
20
20
  __export(TernSecureServerProvider_exports, {
21
- TernSecureServerProvider: () => TernSecureServerProvider
21
+ TernSecureProvider: () => TernSecureProvider
22
22
  });
23
23
  module.exports = __toCommonJS(TernSecureServerProvider_exports);
24
24
  var import_jsx_runtime = require("react/jsx-runtime");
25
- var import_react = require("react");
26
25
  var import_TernSecureProvider = require("../client/TernSecureProvider");
27
26
  function TernSecureLoadingFallback() {
28
27
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "sr-only", children: "Loading authentication..." }) });
29
28
  }
30
- function TernSecureServerProvider({ children }) {
31
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_TernSecureProvider.TernSecureClientProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Suspense, { fallback: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TernSecureLoadingFallback, {}), children }) });
29
+ function TernSecureProvider({ children }) {
30
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_TernSecureProvider.TernSecureClientProvider, { children });
32
31
  }
33
32
  // Annotate the CommonJS export names for ESM import in node:
34
33
  0 && (module.exports = {
35
- TernSecureServerProvider
34
+ TernSecureProvider
36
35
  });
37
36
  //# sourceMappingURL=TernSecureServerProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/app-router/server/TernSecureServerProvider.tsx"],"sourcesContent":["import React, { Suspense } 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 <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({ children }: { children: React.ReactNode }) {\r\n\r\n\r\n return (\r\n <TernSecureClientProvider>\r\n <Suspense fallback={<TernSecureLoadingFallback />}>\r\n {children}\r\n </Suspense>\r\n </TernSecureClientProvider>\r\n )\r\n}\r\n\r\n// Export types for internal use\r\nexport type { TernSecureServerProviderProps }"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASM;AATN,mBAAgC;AAChC,gCAAyC;AAKzC,SAAS,4BAA4B;AACnC,SACE,4CAAC,SACC,sDAAC,UAAK,WAAU,WAAU,uCAAyB,GACrD;AAEJ;AA2BO,SAAS,yBAAyB,EAAE,SAAS,GAAkC;AAGpF,SACI,4CAAC,sDACC,sDAAC,yBAAS,UAAU,4CAAC,6BAA0B,GAC5C,UACH,GACF;AAEN;","names":[]}
1
+ {"version":3,"sources":["../../../../src/app-router/server/TernSecureServerProvider.tsx"],"sourcesContent":["import React, { Suspense } 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 <span className=\"sr-only\">Loading authentication...</span>\r\n </div>\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 TernSecureProvider({ children }: { children: React.ReactNode }) {\r\n return (\r\n <TernSecureClientProvider>\r\n \r\n {children}\r\n \r\n </TernSecureClientProvider>\r\n )\r\n}"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASM;AARN,gCAAyC;AAKzC,SAAS,4BAA4B;AACnC,SACE,4CAAC,SACC,sDAAC,UAAK,WAAU,WAAU,uCAAyB,GACrD;AAEJ;AAsBO,SAAS,mBAAmB,EAAE,SAAS,GAAkC;AAC9E,SACI,4CAAC,sDAEI,UAEL;AAEN;","names":[]}
package/dist/cjs/index.js CHANGED
@@ -21,20 +21,19 @@ __export(src_exports, {
21
21
  SignIn: () => import_sign_in.SignIn,
22
22
  TernSecureAuth: () => import_client_init.TernSecureAuth,
23
23
  TernSecureFirestore: () => import_client_init.TernSecureFirestore,
24
- TernSecureProvider: () => TernSecureProvider,
24
+ TernSecureProvider: () => import_TernSecureServerProvider.TernSecureProvider,
25
25
  loadFireConfig: () => import_config.loadFireConfig,
26
26
  signInWithEmail: () => import_auth.signInWithEmail,
27
27
  useAuth: () => import_useAuth.useAuth,
28
28
  validateConfig: () => import_config.validateConfig
29
29
  });
30
30
  module.exports = __toCommonJS(src_exports);
31
- var import_TernSecureServerProvider = require("./app-router/server/TernSecureServerProvider");
32
31
  var import_client_init = require("./utils/client-init");
33
32
  var import_config = require("./utils/config");
34
33
  var import_auth = require("./app-router/server/auth");
34
+ var import_TernSecureServerProvider = require("./app-router/server/TernSecureServerProvider");
35
35
  var import_useAuth = require("./boundary/hooks/useAuth");
36
36
  var import_sign_in = require("./components/sign-in");
37
- const TernSecureProvider = import_TernSecureServerProvider.TernSecureServerProvider;
38
37
  // Annotate the CommonJS export names for ESM import in node:
39
38
  0 && (module.exports = {
40
39
  SignIn,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { TernSecureServerProvider } from './app-router/server/TernSecureServerProvider'\r\n//import type { TernSecureState } from './app-router/client/TernSecureProvider'\r\nexport { TernSecureAuth, TernSecureFirestore } 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\n//export type { TernSecureState }"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAAyC;AAEzC,yBAAoD;AACpD,oBAA+C;AAC/C,kBAAgC;AAIhC,qBAAwB;AACxB,qBAAuB;AAEhB,MAAM,qBAAqB;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["//import { TernSecureServerProvider } from './app-router/server/TernSecureServerProvider'\r\n//import type { TernSecureState } from './app-router/client/TernSecureProvider'\r\nexport { TernSecureAuth, TernSecureFirestore } 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\nexport { TernSecureProvider } from './app-router/server/TernSecureServerProvider'\r\nexport { useAuth } from './boundary/hooks/useAuth' \r\nexport { SignIn } from './components/sign-in'\r\n\r\n//export const TernSecureProvider = TernSecureServerProvider\r\n//export type { TernSecureState }"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,yBAAoD;AACpD,oBAA+C;AAC/C,kBAAgC;AAGhC,sCAAmC;AACnC,qBAAwB;AACxB,qBAAuB;","names":[]}
@@ -6,7 +6,9 @@ import { onAuthStateChanged } from "firebase/auth";
6
6
  import { TernSecureCtxProvider } from "../../boundary/TernSecureCtx";
7
7
  const AuthStateContext = React.createContext(null);
8
8
  const auth = TernSecureAuth();
9
- function TernSecureClientProvider({ children }) {
9
+ function TernSecureClientProvider({
10
+ children
11
+ }) {
10
12
  const [authState, setAuthState] = useState({
11
13
  userId: null,
12
14
  loading: true,
@@ -33,7 +35,7 @@ function TernSecureClientProvider({ children }) {
33
35
  });
34
36
  return () => unsubscribe();
35
37
  }, []);
36
- return /* @__PURE__ */ jsx(TernSecureCtxProvider, { children: /* @__PURE__ */ jsx(AuthStateContext.Provider, { value: authState, children }) });
38
+ return /* @__PURE__ */ jsx(TernSecureCtxProvider, { children: /* @__PURE__ */ jsx(AuthStateContext.Provider, { value: authState, children: authState.loading ? /* @__PURE__ */ jsx("div", { children: "Loading..." }) : children }) });
37
39
  }
38
40
  export {
39
41
  AuthStateContext,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"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 { TernSecureCtxProvider } from '../../boundary/TernSecureCtx'\r\n\r\ninterface 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\nconst auth = TernSecureAuth();\r\n\r\nexport function TernSecureClientProvider({ children }: { children: React.ReactNode }) {\r\n const [authState, setAuthState] = useState<TernSecureState>({\r\n userId: null,\r\n loading: true,\r\n error: null,\r\n isSignedIn: false\r\n })\r\n\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}"],"mappings":";AAmDM;AAjDN,OAAO,SAAS,UAAU,iBAAiB;AAC3C,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AACnC,SAAS,6BAA6B;AAS/B,MAAM,mBAAmB,MAAM,cAAsC,IAAI;AAEhF,MAAM,OAAO,eAAe;AAErB,SAAS,yBAAyB,EAAE,SAAS,GAAmC;AACrF,QAAM,CAAC,WAAW,YAAY,IAAI,SAA0B;AAAA,IAC1D,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,YAAY;AAAA,EACd,CAAC;AAEH,YAAU,MAAM;AACZ,UAAM,cAAc,mBAAmB,MAAM,CAAC,SAAS;AACrD,UAAI,MAAM;AACR,qBAAa;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ,KAAK;AAAA,UACb,OAAO;AAAA,QACT,CAAC;AAAA,MACH,OAAO;AACL,qBAAa;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ;AAAA,UACR,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAED,WAAO,MAAM,YAAY;AAAA,EAC3B,GAAG,CAAC,CAAC;AAGL,SACE,oBAAC,yBACC,8BAAC,iBAAiB,UAAjB,EAA0B,OAAO,WACjC,UACD,GACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"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 { TernSecureCtxProvider } from '../../boundary/TernSecureCtx'\r\n\r\ninterface 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\nconst auth = TernSecureAuth();\r\n\r\nexport function TernSecureClientProvider({ \r\n children\r\n}: { \r\n children: React.ReactNode\r\n}) {\r\n const [authState, setAuthState] = useState<TernSecureState>({\r\n userId: null,\r\n loading: true,\r\n error: null,\r\n isSignedIn: false\r\n })\r\n\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 {authState.loading ? <div>Loading...</div> : children}\r\n </AuthStateContext.Provider>\r\n </TernSecureCtxProvider>\r\n )\r\n}"],"mappings":";AAwD2B;AAtD3B,OAAO,SAAS,UAAU,iBAAiB;AAC3C,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AACnC,SAAS,6BAA6B;AAS/B,MAAM,mBAAmB,MAAM,cAAsC,IAAI;AAEhF,MAAM,OAAO,eAAe;AAErB,SAAS,yBAAyB;AAAA,EACvC;AACF,GAEI;AACF,QAAM,CAAC,WAAW,YAAY,IAAI,SAA0B;AAAA,IAC1D,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,YAAY;AAAA,EACd,CAAC;AAEH,YAAU,MAAM;AACZ,UAAM,cAAc,mBAAmB,MAAM,CAAC,SAAS;AACrD,UAAI,MAAM;AACR,qBAAa;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ,KAAK;AAAA,UACb,OAAO;AAAA,QACT,CAAC;AAAA,MACH,OAAO;AACL,qBAAa;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ;AAAA,UACR,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAED,WAAO,MAAM,YAAY;AAAA,EAC3B,GAAG,CAAC,CAAC;AAGL,SACE,oBAAC,yBACC,8BAAC,iBAAiB,UAAjB,EAA0B,OAAO,WACjC,oBAAU,UAAU,oBAAC,SAAI,wBAAU,IAAS,UAC7C,GACF;AAEJ;","names":[]}
@@ -1,13 +1,12 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { Suspense } from "react";
3
2
  import { TernSecureClientProvider } from "../client/TernSecureProvider";
4
3
  function TernSecureLoadingFallback() {
5
4
  return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading authentication..." }) });
6
5
  }
7
- function TernSecureServerProvider({ children }) {
8
- return /* @__PURE__ */ jsx(TernSecureClientProvider, { children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(TernSecureLoadingFallback, {}), children }) });
6
+ function TernSecureProvider({ children }) {
7
+ return /* @__PURE__ */ jsx(TernSecureClientProvider, { children });
9
8
  }
10
9
  export {
11
- TernSecureServerProvider
10
+ TernSecureProvider
12
11
  };
13
12
  //# sourceMappingURL=TernSecureServerProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/app-router/server/TernSecureServerProvider.tsx"],"sourcesContent":["import React, { Suspense } 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 <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({ children }: { children: React.ReactNode }) {\r\n\r\n\r\n return (\r\n <TernSecureClientProvider>\r\n <Suspense fallback={<TernSecureLoadingFallback />}>\r\n {children}\r\n </Suspense>\r\n </TernSecureClientProvider>\r\n )\r\n}\r\n\r\n// Export types for internal use\r\nexport type { TernSecureServerProviderProps }"],"mappings":"AASM;AATN,SAAgB,gBAAgB;AAChC,SAAS,gCAAgC;AAKzC,SAAS,4BAA4B;AACnC,SACE,oBAAC,SACC,8BAAC,UAAK,WAAU,WAAU,uCAAyB,GACrD;AAEJ;AA2BO,SAAS,yBAAyB,EAAE,SAAS,GAAkC;AAGpF,SACI,oBAAC,4BACC,8BAAC,YAAS,UAAU,oBAAC,6BAA0B,GAC5C,UACH,GACF;AAEN;","names":[]}
1
+ {"version":3,"sources":["../../../../src/app-router/server/TernSecureServerProvider.tsx"],"sourcesContent":["import React, { Suspense } 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 <span className=\"sr-only\">Loading authentication...</span>\r\n </div>\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 TernSecureProvider({ children }: { children: React.ReactNode }) {\r\n return (\r\n <TernSecureClientProvider>\r\n \r\n {children}\r\n \r\n </TernSecureClientProvider>\r\n )\r\n}"],"mappings":"AASM;AARN,SAAS,gCAAgC;AAKzC,SAAS,4BAA4B;AACnC,SACE,oBAAC,SACC,8BAAC,UAAK,WAAU,WAAU,uCAAyB,GACrD;AAEJ;AAsBO,SAAS,mBAAmB,EAAE,SAAS,GAAkC;AAC9E,SACI,oBAAC,4BAEI,UAEL;AAEN;","names":[]}
package/dist/esm/index.js CHANGED
@@ -1,10 +1,9 @@
1
- import { TernSecureServerProvider } from "./app-router/server/TernSecureServerProvider";
2
1
  import { TernSecureAuth, TernSecureFirestore } from "./utils/client-init";
3
2
  import { loadFireConfig, validateConfig } from "./utils/config";
4
3
  import { signInWithEmail } from "./app-router/server/auth";
4
+ import { TernSecureProvider } from "./app-router/server/TernSecureServerProvider";
5
5
  import { useAuth } from "./boundary/hooks/useAuth";
6
6
  import { SignIn } from "./components/sign-in";
7
- const TernSecureProvider = TernSecureServerProvider;
8
7
  export {
9
8
  SignIn,
10
9
  TernSecureAuth,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { TernSecureServerProvider } from './app-router/server/TernSecureServerProvider'\r\n//import type { TernSecureState } from './app-router/client/TernSecureProvider'\r\nexport { TernSecureAuth, TernSecureFirestore } 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\n//export type { TernSecureState }"],"mappings":"AAAA,SAAS,gCAAgC;AAEzC,SAAS,gBAAgB,2BAA2B;AACpD,SAAS,gBAAgB,sBAAsB;AAC/C,SAAS,uBAAuB;AAIhC,SAAS,eAAe;AACxB,SAAS,cAAc;AAEhB,MAAM,qBAAqB;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["//import { TernSecureServerProvider } from './app-router/server/TernSecureServerProvider'\r\n//import type { TernSecureState } from './app-router/client/TernSecureProvider'\r\nexport { TernSecureAuth, TernSecureFirestore } 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\nexport { TernSecureProvider } from './app-router/server/TernSecureServerProvider'\r\nexport { useAuth } from './boundary/hooks/useAuth' \r\nexport { SignIn } from './components/sign-in'\r\n\r\n//export const TernSecureProvider = TernSecureServerProvider\r\n//export type { TernSecureState }"],"mappings":"AAEA,SAAS,gBAAgB,2BAA2B;AACpD,SAAS,gBAAgB,sBAAsB;AAC/C,SAAS,uBAAuB;AAGhC,SAAS,0BAA0B;AACnC,SAAS,eAAe;AACxB,SAAS,cAAc;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TernSecureProvider.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAKlD,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,gBAAgB,uCAAoD,CAAA;AAIjF,wBAAgB,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAsCnF"}
1
+ {"version":3,"file":"TernSecureProvider.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAKlD,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,gBAAgB,uCAAoD,CAAA;AAIjF,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,2CAsCA"}
@@ -1,7 +1,4 @@
1
1
  import React from "react";
2
- interface TernSecureServerProviderProps {
3
- children: React.ReactNode;
4
- }
5
2
  /**
6
3
  * Root Provider for TernSecure
7
4
  * Use this in your Next.js App Router root layout
@@ -23,8 +20,7 @@ interface TernSecureServerProviderProps {
23
20
  * )
24
21
  * }
25
22
  */
26
- export declare function TernSecureServerProvider({ children }: {
23
+ export declare function TernSecureProvider({ children }: {
27
24
  children: React.ReactNode;
28
25
  }): import("react/jsx-runtime").JSX.Element;
29
- export type { TernSecureServerProviderProps };
30
26
  //# sourceMappingURL=TernSecureServerProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TernSecureServerProvider.d.ts","sourceRoot":"","sources":["../../../../src/app-router/server/TernSecureServerProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAcvC,UAAU,6BAA6B;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAUnF;AAGD,YAAY,EAAE,6BAA6B,EAAE,CAAA"}
1
+ {"version":3,"file":"TernSecureServerProvider.d.ts","sourceRoot":"","sources":["../../../../src/app-router/server/TernSecureServerProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAavC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAQ7E"}
@@ -1,8 +1,7 @@
1
- import { TernSecureServerProvider } from './app-router/server/TernSecureServerProvider';
2
1
  export { TernSecureAuth, TernSecureFirestore } from './utils/client-init';
3
2
  export { loadFireConfig, validateConfig } from './utils/config';
4
3
  export { signInWithEmail } from './app-router/server/auth';
4
+ export { TernSecureProvider } from './app-router/server/TernSecureServerProvider';
5
5
  export { useAuth } from './boundary/hooks/useAuth';
6
6
  export { SignIn } from './components/sign-in';
7
- export declare const TernSecureProvider: typeof TernSecureServerProvider;
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAA;AAEvF,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAI1D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,eAAO,MAAM,kBAAkB,iCAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAG1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAA;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tern-secure/nextjs",
3
- "version": "3.1.96",
3
+ "version": "3.1.98",
4
4
  "packageManager": "npm@10.9.0",
5
5
  "publishConfig": {
6
6
  "access": "public"