@tern-secure/nextjs 3.1.50 → 3.1.51

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 (84) hide show
  1. package/dist/cjs/app-router/client/TernSecureProvider.cjs +23 -0
  2. package/dist/cjs/app-router/client/TernSecureProvider.cjs.map +1 -0
  3. package/dist/cjs/app-router/server/TernSecureServerProvider.cjs +28 -0
  4. package/dist/cjs/app-router/server/TernSecureServerProvider.cjs.map +1 -0
  5. package/dist/cjs/app-router/server/auth.cjs +71 -0
  6. package/dist/cjs/app-router/server/auth.cjs.map +1 -0
  7. package/dist/cjs/boundary/TernSecureCtx.cjs +21 -0
  8. package/dist/cjs/boundary/TernSecureCtx.cjs.map +1 -0
  9. package/dist/cjs/boundary/hooks/use-auth.cjs +112 -0
  10. package/dist/cjs/boundary/hooks/use-auth.cjs.map +1 -0
  11. package/dist/{esm/index.cjs → cjs/components/sign-in.cjs} +12 -88
  12. package/dist/cjs/components/sign-in.cjs.map +1 -0
  13. package/dist/cjs/errors.cjs +19 -0
  14. package/dist/cjs/errors.cjs.map +1 -0
  15. package/dist/cjs/index.cjs.map +1 -1
  16. package/dist/cjs/types.cjs +4 -0
  17. package/dist/cjs/types.cjs.map +1 -0
  18. package/dist/cjs/utils/client-init.cjs +68 -0
  19. package/dist/cjs/utils/client-init.cjs.map +1 -0
  20. package/dist/cjs/utils/config.cjs +50 -0
  21. package/dist/cjs/utils/config.cjs.map +1 -0
  22. package/dist/cjs/utils/create-styles.cjs +125 -0
  23. package/dist/cjs/utils/create-styles.cjs.map +1 -0
  24. package/dist/esm/app-router/client/TernSecureProvider.d.ts +30 -0
  25. package/dist/esm/app-router/client/TernSecureProvider.js +4 -0
  26. package/dist/esm/app-router/client/TernSecureProvider.js.map +1 -0
  27. package/dist/esm/app-router/server/TernSecureServerProvider.d.ts +9 -0
  28. package/dist/esm/app-router/server/TernSecureServerProvider.js +5 -0
  29. package/dist/esm/app-router/server/TernSecureServerProvider.js.map +1 -0
  30. package/dist/esm/app-router/server/auth.d.ts +9 -0
  31. package/dist/esm/app-router/server/auth.js +5 -0
  32. package/dist/esm/app-router/server/auth.js.map +1 -0
  33. package/dist/esm/boundary/TernSecureCtx.d.ts +28 -0
  34. package/dist/esm/boundary/TernSecureCtx.js +3 -0
  35. package/dist/esm/boundary/TernSecureCtx.js.map +1 -0
  36. package/dist/esm/boundary/hooks/use-auth.d.ts +14 -0
  37. package/dist/esm/boundary/hooks/use-auth.js +6 -0
  38. package/dist/esm/boundary/hooks/use-auth.js.map +1 -0
  39. package/dist/esm/chunk-4XFIX4FL.js +14 -0
  40. package/dist/esm/chunk-4XFIX4FL.js.map +1 -0
  41. package/dist/esm/chunk-EI37GOD7.js +121 -0
  42. package/dist/esm/chunk-EI37GOD7.js.map +1 -0
  43. package/dist/esm/chunk-EIOZNLP2.js +109 -0
  44. package/dist/esm/chunk-EIOZNLP2.js.map +1 -0
  45. package/dist/esm/chunk-FVV74XVR.js +19 -0
  46. package/dist/esm/chunk-FVV74XVR.js.map +1 -0
  47. package/dist/esm/chunk-I6WQ2J63.js +11 -0
  48. package/dist/esm/chunk-I6WQ2J63.js.map +1 -0
  49. package/dist/esm/chunk-OY5DYTKB.js +16 -0
  50. package/dist/esm/chunk-OY5DYTKB.js.map +1 -0
  51. package/dist/esm/chunk-TFZYAECO.js +18 -0
  52. package/dist/esm/chunk-TFZYAECO.js.map +1 -0
  53. package/dist/esm/chunk-UHGBSUM6.js +46 -0
  54. package/dist/esm/chunk-UHGBSUM6.js.map +1 -0
  55. package/dist/esm/chunk-VEJFSEVF.js +45 -0
  56. package/dist/esm/chunk-VEJFSEVF.js.map +1 -0
  57. package/dist/esm/components/sign-in.d.ts +25 -0
  58. package/dist/esm/components/sign-in.js +7 -0
  59. package/dist/esm/components/sign-in.js.map +1 -0
  60. package/dist/esm/errors.d.ts +10 -0
  61. package/dist/esm/errors.js +16 -0
  62. package/dist/esm/errors.js.map +1 -0
  63. package/dist/esm/index.d.ts +16 -135
  64. package/dist/esm/index.js +9 -348
  65. package/dist/esm/index.js.map +1 -1
  66. package/dist/esm/types.d.ts +49 -0
  67. package/dist/esm/types.js +3 -0
  68. package/dist/esm/types.js.map +1 -0
  69. package/dist/esm/utils/client-init.d.ts +9 -0
  70. package/dist/esm/utils/client-init.js +4 -0
  71. package/dist/esm/utils/client-init.js.map +1 -0
  72. package/dist/esm/utils/config.d.ts +22 -0
  73. package/dist/esm/utils/config.js +3 -0
  74. package/dist/esm/utils/config.js.map +1 -0
  75. package/dist/esm/utils/create-styles.d.ts +100 -0
  76. package/dist/esm/utils/create-styles.js +3 -0
  77. package/dist/esm/utils/create-styles.js.map +1 -0
  78. package/package.json +2 -2
  79. package/dist/cjs/index.d.cts +0 -135
  80. package/dist/cjs/index.d.ts +0 -135
  81. package/dist/cjs/index.js +0 -350
  82. package/dist/cjs/index.js.map +0 -1
  83. package/dist/esm/index.cjs.map +0 -1
  84. package/dist/esm/index.d.cts +0 -135
@@ -0,0 +1,22 @@
1
+ import { TernSecureConfig, ConfigValidationResult } from '../types.js';
2
+ import 'firebase/app';
3
+
4
+ /**
5
+ * Loads Firebase configuration from environment variables
6
+ * @returns {TernSecureConfig} Firebase configuration object
7
+ */
8
+ declare const loadFireConfig: () => TernSecureConfig;
9
+ /**
10
+ * Validates Firebase configuration
11
+ * @param {TernSecureConfig} config - Firebase configuration object
12
+ * @throws {Error} If required configuration values are missing
13
+ * @returns {TernSecureConfig} Validated configuration object
14
+ */
15
+ declare const validateConfig: (config: TernSecureConfig) => ConfigValidationResult;
16
+ /**
17
+ * Initializes configuration with validation
18
+ * @throws {Error} If configuration is invalid
19
+ */
20
+ declare const initializeConfig: () => TernSecureConfig;
21
+
22
+ export { initializeConfig, loadFireConfig, validateConfig };
@@ -0,0 +1,3 @@
1
+ export { initializeConfig, loadFireConfig, validateConfig } from '../chunk-UHGBSUM6.js';
2
+ //# sourceMappingURL=config.js.map
3
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"config.js"}
@@ -0,0 +1,100 @@
1
+ declare const defaultClassNames: {
2
+ readonly container: "tern-container";
3
+ readonly header: "tern-header";
4
+ readonly title: "tern-title";
5
+ readonly formWrapper: "tern-formWrapper";
6
+ readonly formContainer: "tern-formContainer";
7
+ readonly form: "tern-form";
8
+ readonly label: "tern-label";
9
+ readonly input: "tern-input";
10
+ readonly button: "tern-button";
11
+ readonly error: "tern-error";
12
+ };
13
+ declare const styleConfig: {
14
+ readonly container: {
15
+ readonly display: "flex";
16
+ readonly minHeight: "100%";
17
+ readonly flex: "1";
18
+ readonly flexDirection: "column";
19
+ readonly justifyContent: "center";
20
+ readonly padding: "3rem 1.5rem";
21
+ };
22
+ readonly header: {
23
+ readonly margin: "0 auto";
24
+ readonly width: "100%";
25
+ readonly maxWidth: "28rem";
26
+ };
27
+ readonly title: {
28
+ readonly marginTop: "1.5rem";
29
+ readonly textAlign: "center";
30
+ readonly fontSize: "1.875rem";
31
+ readonly fontWeight: "700";
32
+ readonly lineHeight: "2.25rem";
33
+ readonly letterSpacing: "-0.025em";
34
+ readonly color: "var(--tern-text-primary, #111827)";
35
+ };
36
+ readonly formWrapper: {
37
+ readonly marginTop: "2.5rem";
38
+ readonly margin: "0 auto";
39
+ readonly width: "100%";
40
+ readonly maxWidth: "30rem";
41
+ };
42
+ readonly formContainer: {
43
+ readonly padding: "3rem 1.5rem";
44
+ readonly boxShadow: "0 1px 3px 0 rgb(0 0 0 / 0.1)";
45
+ readonly borderRadius: "0.5rem";
46
+ readonly backgroundColor: "var(--tern-background, white)";
47
+ };
48
+ readonly form: {
49
+ readonly display: "flex";
50
+ readonly flexDirection: "column";
51
+ readonly gap: "1rem";
52
+ };
53
+ readonly label: {
54
+ readonly display: "block";
55
+ readonly fontSize: "0.875rem";
56
+ readonly fontWeight: "500";
57
+ readonly color: "var(--tern-text-secondary, #374151)";
58
+ };
59
+ readonly input: {
60
+ readonly marginTop: "0.25rem";
61
+ readonly display: "block";
62
+ readonly width: "100%";
63
+ readonly padding: "0.5rem 0.75rem";
64
+ readonly borderRadius: "0.375rem";
65
+ readonly border: "1px solid var(--tern-border, #D1D5DB)";
66
+ readonly backgroundColor: "var(--tern-input-background, white)";
67
+ readonly color: "var(--tern-text-primary, #111827)";
68
+ };
69
+ readonly button: {
70
+ readonly display: "flex";
71
+ readonly width: "100%";
72
+ readonly justifyContent: "center";
73
+ readonly padding: "0.5rem 1rem";
74
+ readonly fontSize: "0.875rem";
75
+ readonly fontWeight: "500";
76
+ readonly color: "white";
77
+ readonly backgroundColor: "var(--tern-primary, #2563EB)";
78
+ readonly border: "none";
79
+ readonly borderRadius: "0.375rem";
80
+ readonly cursor: "pointer";
81
+ };
82
+ readonly error: {
83
+ readonly color: "var(--tern-error, #DC2626)";
84
+ readonly fontSize: "0.875rem";
85
+ };
86
+ };
87
+ declare const styles: {
88
+ readonly container: "tern-container";
89
+ readonly header: "tern-header";
90
+ readonly title: "tern-title";
91
+ readonly formWrapper: "tern-formWrapper";
92
+ readonly formContainer: "tern-formContainer";
93
+ readonly form: "tern-form";
94
+ readonly label: "tern-label";
95
+ readonly input: "tern-input";
96
+ readonly button: "tern-button";
97
+ readonly error: "tern-error";
98
+ };
99
+
100
+ export { defaultClassNames, styleConfig, styles };
@@ -0,0 +1,3 @@
1
+ export { defaultClassNames, styleConfig, styles } from '../chunk-EI37GOD7.js';
2
+ //# sourceMappingURL=create-styles.js.map
3
+ //# sourceMappingURL=create-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"create-styles.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tern-secure/nextjs",
3
- "version": "3.1.50",
3
+ "version": "3.1.51",
4
4
  "packageManager": "npm@10.9.0",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -18,7 +18,7 @@
18
18
  "main": "./dist/index.cjs.js",
19
19
  "module": "./dist/index.js",
20
20
  "scripts": {
21
- "build": "rimraf dist && tsup src/index.ts --format cjs,esm --dts --treeshake --clean --env.NODE_ENV production",
21
+ "build": "npm run clean && tsup",
22
22
  "build:types": "tsc --emitDeclarationOnly --outDir dist/esm",
23
23
  "build:js": "node build.config.cjs",
24
24
  "clean": "rimraf dist",
@@ -1,135 +0,0 @@
1
- import * as _firebase_storage from '@firebase/storage';
2
- import * as _firebase_firestore from '@firebase/firestore';
3
- import * as _firebase_auth from '@firebase/auth';
4
- import { FirebaseOptions } from 'firebase/app';
5
- import { UserCredential } from 'firebase/auth';
6
- import * as React from 'react';
7
- import React__default, { ReactNode } from 'react';
8
- import * as react_jsx_runtime from 'react/jsx-runtime';
9
-
10
- declare const TernSecureAuth: () => _firebase_auth.Auth;
11
- declare const TernSecureFirestore: () => _firebase_firestore.Firestore;
12
- declare const TernSecureStorage: () => _firebase_storage.FirebaseStorage;
13
-
14
- /**
15
- * TernSecure Firebase configuration interface
16
- * Extends Firebase's base configuration options
17
- */
18
- interface TernSecureConfig extends FirebaseOptions {
19
- apiKey: string;
20
- authDomain: string;
21
- projectId: string;
22
- storageBucket: string;
23
- messagingSenderId: string;
24
- appId: string;
25
- measurementId?: string;
26
- }
27
- /**
28
- * Configuration validation result
29
- */
30
- interface ConfigValidationResult {
31
- isValid: boolean;
32
- errors: string[];
33
- config: TernSecureConfig;
34
- }
35
-
36
- /**
37
- * Loads Firebase configuration from environment variables
38
- * @returns {TernSecureConfig} Firebase configuration object
39
- */
40
- declare const loadFireConfig: () => TernSecureConfig;
41
- /**
42
- * Validates Firebase configuration
43
- * @param {TernSecureConfig} config - Firebase configuration object
44
- * @throws {Error} If required configuration values are missing
45
- * @returns {TernSecureConfig} Validated configuration object
46
- */
47
- declare const validateConfig: (config: TernSecureConfig) => ConfigValidationResult;
48
-
49
- interface SignInCredentials {
50
- email: string;
51
- password: string;
52
- }
53
- declare function signInWithEmail({ email, password }: SignInCredentials): Promise<UserCredential>;
54
-
55
- /**
56
- * Internal context type for TernSecure authentication
57
- * @internal
58
- */
59
- interface TernSecureContextType {
60
- readonly _contextKey: symbol;
61
- }
62
- /**
63
- * Context for TernSecure authentication
64
- * @internal
65
- */
66
- declare const TernSecureContext: React.Context<TernSecureContextType | null>;
67
- /**
68
- * Hook to verify that components are rendered within the TernSecure provider
69
- * @param hookName - Name of the hook being used (for better error messages)
70
- * @throws {Error} When used outside of TernSecureProvider
71
- * @internal
72
- */
73
- declare const useInternalContext: (hookName?: string) => TernSecureContextType;
74
-
75
- /**
76
- * Props for the TernSecureClientProvider component
77
- */
78
- interface TernSecureClientProviderProps {
79
- /** React child elements to be wrapped by the provider */
80
- children: React__default.ReactNode;
81
- }
82
- /**
83
- * Provider component for TernSecure authentication
84
- * Must be used to wrap any components that use TernSecure hooks
85
- *
86
- * @example
87
- * ```tsx
88
- * function App() {
89
- * return (
90
- * <TernSecureClientProvider>
91
- * <YourApp />
92
- * </TernSecureClientProvider>
93
- * )
94
- * }
95
- * ```
96
- */
97
- declare function TernSecureClientProvider({ children }: TernSecureClientProviderProps): JSX.Element;
98
- declare namespace TernSecureClientProvider {
99
- var displayName: string;
100
- }
101
-
102
- interface TernSecureProviderProps {
103
- children: ReactNode;
104
- }
105
- declare function TernSecureProvider({ children }: TernSecureProviderProps): Promise<react_jsx_runtime.JSX.Element>;
106
-
107
- declare function useAuth(): {
108
- loading: boolean;
109
- isSignedIn: boolean;
110
- userId: string | null;
111
- error: Error | null;
112
- };
113
-
114
- interface SignInProps {
115
- onSuccess?: () => void;
116
- onError?: (error: Error) => void;
117
- redirectUrl?: string;
118
- className?: string;
119
- style?: React.CSSProperties;
120
- customStyles?: {
121
- container?: string;
122
- header?: string;
123
- title?: string;
124
- formWrapper?: string;
125
- formContainer?: string;
126
- form?: string;
127
- input?: string;
128
- button?: string;
129
- errorText?: string;
130
- label?: string;
131
- };
132
- }
133
- declare function SignIn({ onSuccess, onError, redirectUrl, className, style, customStyles }: SignInProps): react_jsx_runtime.JSX.Element;
134
-
135
- export { SignIn, TernSecureAuth, TernSecureClientProvider, TernSecureContext, TernSecureFirestore, TernSecureProvider, TernSecureStorage, loadFireConfig, signInWithEmail, useAuth, useInternalContext, validateConfig };
@@ -1,135 +0,0 @@
1
- import * as _firebase_storage from '@firebase/storage';
2
- import * as _firebase_firestore from '@firebase/firestore';
3
- import * as _firebase_auth from '@firebase/auth';
4
- import { FirebaseOptions } from 'firebase/app';
5
- import { UserCredential } from 'firebase/auth';
6
- import * as React from 'react';
7
- import React__default, { ReactNode } from 'react';
8
- import * as react_jsx_runtime from 'react/jsx-runtime';
9
-
10
- declare const TernSecureAuth: () => _firebase_auth.Auth;
11
- declare const TernSecureFirestore: () => _firebase_firestore.Firestore;
12
- declare const TernSecureStorage: () => _firebase_storage.FirebaseStorage;
13
-
14
- /**
15
- * TernSecure Firebase configuration interface
16
- * Extends Firebase's base configuration options
17
- */
18
- interface TernSecureConfig extends FirebaseOptions {
19
- apiKey: string;
20
- authDomain: string;
21
- projectId: string;
22
- storageBucket: string;
23
- messagingSenderId: string;
24
- appId: string;
25
- measurementId?: string;
26
- }
27
- /**
28
- * Configuration validation result
29
- */
30
- interface ConfigValidationResult {
31
- isValid: boolean;
32
- errors: string[];
33
- config: TernSecureConfig;
34
- }
35
-
36
- /**
37
- * Loads Firebase configuration from environment variables
38
- * @returns {TernSecureConfig} Firebase configuration object
39
- */
40
- declare const loadFireConfig: () => TernSecureConfig;
41
- /**
42
- * Validates Firebase configuration
43
- * @param {TernSecureConfig} config - Firebase configuration object
44
- * @throws {Error} If required configuration values are missing
45
- * @returns {TernSecureConfig} Validated configuration object
46
- */
47
- declare const validateConfig: (config: TernSecureConfig) => ConfigValidationResult;
48
-
49
- interface SignInCredentials {
50
- email: string;
51
- password: string;
52
- }
53
- declare function signInWithEmail({ email, password }: SignInCredentials): Promise<UserCredential>;
54
-
55
- /**
56
- * Internal context type for TernSecure authentication
57
- * @internal
58
- */
59
- interface TernSecureContextType {
60
- readonly _contextKey: symbol;
61
- }
62
- /**
63
- * Context for TernSecure authentication
64
- * @internal
65
- */
66
- declare const TernSecureContext: React.Context<TernSecureContextType | null>;
67
- /**
68
- * Hook to verify that components are rendered within the TernSecure provider
69
- * @param hookName - Name of the hook being used (for better error messages)
70
- * @throws {Error} When used outside of TernSecureProvider
71
- * @internal
72
- */
73
- declare const useInternalContext: (hookName?: string) => TernSecureContextType;
74
-
75
- /**
76
- * Props for the TernSecureClientProvider component
77
- */
78
- interface TernSecureClientProviderProps {
79
- /** React child elements to be wrapped by the provider */
80
- children: React__default.ReactNode;
81
- }
82
- /**
83
- * Provider component for TernSecure authentication
84
- * Must be used to wrap any components that use TernSecure hooks
85
- *
86
- * @example
87
- * ```tsx
88
- * function App() {
89
- * return (
90
- * <TernSecureClientProvider>
91
- * <YourApp />
92
- * </TernSecureClientProvider>
93
- * )
94
- * }
95
- * ```
96
- */
97
- declare function TernSecureClientProvider({ children }: TernSecureClientProviderProps): JSX.Element;
98
- declare namespace TernSecureClientProvider {
99
- var displayName: string;
100
- }
101
-
102
- interface TernSecureProviderProps {
103
- children: ReactNode;
104
- }
105
- declare function TernSecureProvider({ children }: TernSecureProviderProps): Promise<react_jsx_runtime.JSX.Element>;
106
-
107
- declare function useAuth(): {
108
- loading: boolean;
109
- isSignedIn: boolean;
110
- userId: string | null;
111
- error: Error | null;
112
- };
113
-
114
- interface SignInProps {
115
- onSuccess?: () => void;
116
- onError?: (error: Error) => void;
117
- redirectUrl?: string;
118
- className?: string;
119
- style?: React.CSSProperties;
120
- customStyles?: {
121
- container?: string;
122
- header?: string;
123
- title?: string;
124
- formWrapper?: string;
125
- formContainer?: string;
126
- form?: string;
127
- input?: string;
128
- button?: string;
129
- errorText?: string;
130
- label?: string;
131
- };
132
- }
133
- declare function SignIn({ onSuccess, onError, redirectUrl, className, style, customStyles }: SignInProps): react_jsx_runtime.JSX.Element;
134
-
135
- export { SignIn, TernSecureAuth, TernSecureClientProvider, TernSecureContext, TernSecureFirestore, TernSecureProvider, TernSecureStorage, loadFireConfig, signInWithEmail, useAuth, useInternalContext, validateConfig };