@tern-secure/nextjs 1.9.0 → 1.9.1

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.
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { AuthState } from '../../../types/ternsecure';
3
+ export declare const useTernSecure: () => AuthState;
3
4
  interface TernSecureClientProps {
4
5
  children: React.ReactNode;
5
- initialState: AuthState;
6
6
  }
7
- export declare function TernSecureClientProvider({ children, initialState }: TernSecureClientProps): React.ReactNode;
7
+ export declare function TernSecureClientProvider({ children }: TernSecureClientProps): React.JSX.Element;
8
8
  export {};
@@ -1,17 +1,64 @@
1
1
  'use client';
2
- import { useEffect, useState } from 'react';
2
+ import React, { createContext, useContext, useEffect, useState } from 'react';
3
3
  import { getTernSecureAuth } from '../client-init';
4
- export function TernSecureClientProvider({ children, initialState }) {
5
- const [authState, setAuthState] = useState(initialState);
4
+ // Move context creation inside the client component
5
+ const createTernSecureContext = () => {
6
+ const initialAuthState = {
7
+ user: null,
8
+ loading: true,
9
+ error: null,
10
+ initialized: false
11
+ };
12
+ return createContext(initialAuthState);
13
+ };
14
+ // Create context lazily only on client side
15
+ const TernSecureContext = createTernSecureContext();
16
+ export const useTernSecure = () => {
17
+ if (typeof window === 'undefined') {
18
+ throw new Error('useTernSecure can only be used in client components');
19
+ }
20
+ const context = useContext(TernSecureContext);
21
+ if (!context) {
22
+ throw new Error('useTernSecure must be used within TernSecureClientProvider');
23
+ }
24
+ return context;
25
+ };
26
+ export function TernSecureClientProvider({ children }) {
27
+ const [authState, setAuthState] = useState({
28
+ user: null,
29
+ loading: true,
30
+ error: null,
31
+ initialized: false
32
+ });
6
33
  useEffect(() => {
7
- const auth = getTernSecureAuth();
8
- const unsubscribe = auth.onAuthStateChanged((user) => {
9
- setAuthState({ user, loading: false, error: null, initialized: true });
10
- }, (error) => {
11
- setAuthState({ user: null, loading: false, error, initialized: true });
12
- });
13
- return () => unsubscribe();
34
+ try {
35
+ const auth = getTernSecureAuth();
36
+ const unsubscribe = auth.onAuthStateChanged((user) => {
37
+ setAuthState({
38
+ user,
39
+ loading: false,
40
+ error: null,
41
+ initialized: true
42
+ });
43
+ }, (error) => {
44
+ setAuthState({
45
+ user: null,
46
+ loading: false,
47
+ error,
48
+ initialized: true
49
+ });
50
+ });
51
+ return () => unsubscribe();
52
+ }
53
+ catch (error) {
54
+ setAuthState({
55
+ user: null,
56
+ loading: false,
57
+ error: error,
58
+ initialized: true
59
+ });
60
+ }
14
61
  }, []);
15
- return children;
62
+ return (React.createElement(TernSecureContext.Provider, { value: authState }, children));
16
63
  }
17
64
  //# sourceMappingURL=ternSecureClientProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ternSecureClientProvider.js","sourceRoot":"","sources":["../../../../src/app-router/client/providers/ternSecureClientProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAQlD,MAAM,UAAU,wBAAwB,CAAC,EACvC,QAAQ,EACR,YAAY,EACU;IACtB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAY,YAAY,CAAC,CAAA;IAEnE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAA;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CACzC,CAAC,IAAI,EAAE,EAAE;YACP,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;QACxE,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;QACxE,CAAC,CACF,CAAA;QAED,OAAO,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,QAAQ,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"ternSecureClientProvider.js","sourceRoot":"","sources":["../../../../src/app-router/client/providers/ternSecureClientProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAGlD,oDAAoD;AACpD,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,MAAM,gBAAgB,GAAc;QAClC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,KAAK;KACnB,CAAA;IAED,OAAO,aAAa,CAAY,gBAAgB,CAAC,CAAA;AACnD,CAAC,CAAA;AAED,4CAA4C;AAC5C,MAAM,iBAAiB,GAAG,uBAAuB,EAAE,CAAA;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;IAC/E,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAMD,MAAM,UAAU,wBAAwB,CAAC,EAAE,QAAQ,EAAyB;IAC1E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAY;QACpD,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,KAAK;KACnB,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAA;YAChC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CACzC,CAAC,IAAI,EAAE,EAAE;gBACP,YAAY,CAAC;oBACX,IAAI;oBACJ,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAA;YACJ,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,YAAY,CAAC;oBACX,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,KAAK;oBACd,KAAK;oBACL,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAA;YACJ,CAAC,CACF,CAAA;YAED,OAAO,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAc;gBACrB,WAAW,EAAE,IAAI;aAClB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL,oBAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,IACzC,QAAQ,CACkB,CAC9B,CAAA;AACH,CAAC"}
@@ -1,18 +1,8 @@
1
1
  import React from 'react';
2
+ import dynamic from 'next/dynamic';
3
+ // Dynamically import the client provider with no SSR
4
+ const TernSecureClientProvider = dynamic(() => import('../../client/providers/ternSecureClientProvider').then(mod => mod.TernSecureClientProvider), { ssr: false });
2
5
  export function TernSecureProvider({ children }) {
3
- if (typeof window === 'undefined') {
4
- // Server-side rendering
5
- return React.createElement(React.Fragment, null, children);
6
- }
7
- try {
8
- // Client-side rendering
9
- const { TernSecureClientProvider } = require('../../client/providers/ternSecureClientProvider');
10
- return React.createElement(TernSecureClientProvider, null, children);
11
- }
12
- catch (error) {
13
- console.error('Failed to load TernSecureClientProvider:', error);
14
- // Fallback to prevent app crash
15
- return React.createElement(React.Fragment, null, children);
16
- }
6
+ return React.createElement(TernSecureClientProvider, null, children);
17
7
  }
18
8
  //# sourceMappingURL=TernSecureServerProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TernSecureServerProvider.js","sourceRoot":"","sources":["../../../../src/app-router/server/providers/TernSecureServerProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAMzC,MAAM,UAAU,kBAAkB,CAAC,EAAE,QAAQ,EAA2B;IACtE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,wBAAwB;QACxB,OAAO,0CAAG,QAAQ,CAAI,CAAC;IACzB,CAAC;IAED,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,iDAAiD,CAAC,CAAA;QAC/F,OAAO,oBAAC,wBAAwB,QAAE,QAAQ,CAA4B,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;QACjE,gCAAgC;QAChC,OAAO,0CAAG,QAAQ,CAAI,CAAC;IACzB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"TernSecureServerProvider.js","sourceRoot":"","sources":["../../../../src/app-router/server/providers/TernSecureServerProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,OAAO,MAAM,cAAc,CAAA;AAMlC,qDAAqD;AACrD,MAAM,wBAAwB,GAAG,OAAO,CACtC,GAAG,EAAE,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,EACzG,EAAE,GAAG,EAAE,KAAK,EAAE,CACf,CAAA;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAE,QAAQ,EAA2B;IACtE,OAAO,oBAAC,wBAAwB,QAAE,QAAQ,CAA4B,CAAA;AACxE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tern-secure/nextjs",
3
- "version": "1.9.0",
3
+ "version": "1.9.1",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org/"