@tern-secure/nextjs 3.1.18 → 3.1.20

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 (73) hide show
  1. package/dist/app-router/client/client-init.cjs +21 -0
  2. package/dist/app-router/client/client-init.cjs.map +1 -0
  3. package/dist/app-router/client/client-init.d.cts +9 -0
  4. package/dist/app-router/client/client-init.d.ts +9 -0
  5. package/dist/app-router/client/client-init.js +4 -0
  6. package/dist/app-router/client/client-init.js.map +1 -0
  7. package/dist/app-router/client/config.cjs +16 -0
  8. package/dist/app-router/client/config.cjs.map +1 -0
  9. package/dist/app-router/client/config.d.cts +2 -0
  10. package/dist/app-router/client/config.d.ts +2 -0
  11. package/dist/app-router/client/config.js +3 -0
  12. package/dist/app-router/client/config.js.map +1 -0
  13. package/dist/app-router/client/index.cjs +47 -0
  14. package/dist/app-router/client/index.cjs.map +1 -0
  15. package/dist/app-router/client/index.d.cts +24 -0
  16. package/dist/app-router/client/index.d.ts +24 -0
  17. package/dist/app-router/client/index.js +6 -0
  18. package/dist/app-router/client/index.js.map +1 -0
  19. package/dist/app-router/server/index.cjs +12 -0
  20. package/dist/app-router/server/index.cjs.map +1 -0
  21. package/dist/app-router/server/index.d.cts +9 -0
  22. package/dist/app-router/server/index.d.ts +9 -0
  23. package/dist/app-router/server/index.js +3 -0
  24. package/dist/app-router/server/index.js.map +1 -0
  25. package/dist/{esm/chunk-TBRV2VGR.js → chunk-2RTGO3FB.js} +5 -7
  26. package/dist/chunk-2RTGO3FB.js.map +1 -0
  27. package/dist/{esm/index.js → chunk-567EYYS7.js} +6 -141
  28. package/dist/chunk-567EYYS7.js.map +1 -0
  29. package/dist/chunk-6XOKZ6YG.cjs +17 -0
  30. package/dist/chunk-6XOKZ6YG.cjs.map +1 -0
  31. package/dist/chunk-7TODKHXS.cjs +229 -0
  32. package/dist/chunk-7TODKHXS.cjs.map +1 -0
  33. package/dist/chunk-ANTUVB2P.cjs +26 -0
  34. package/dist/chunk-ANTUVB2P.cjs.map +1 -0
  35. package/dist/chunk-PLJ3DA5F.js +45 -0
  36. package/dist/chunk-PLJ3DA5F.js.map +1 -0
  37. package/dist/chunk-R3PDNT2L.js +22 -0
  38. package/dist/chunk-R3PDNT2L.js.map +1 -0
  39. package/dist/chunk-V2REFIUV.js +24 -0
  40. package/dist/chunk-V2REFIUV.js.map +1 -0
  41. package/dist/chunk-VNNJ5ANT.cjs +27 -0
  42. package/dist/chunk-VNNJ5ANT.cjs.map +1 -0
  43. package/dist/chunk-WR6O4YMW.cjs +44 -0
  44. package/dist/chunk-WR6O4YMW.cjs.map +1 -0
  45. package/dist/chunk-YMR72FHE.cjs +52 -0
  46. package/dist/chunk-YMR72FHE.cjs.map +1 -0
  47. package/dist/chunk-YSFNR6DO.js +15 -0
  48. package/dist/chunk-YSFNR6DO.js.map +1 -0
  49. package/dist/components/index.cjs +16 -0
  50. package/dist/components/index.cjs.map +1 -0
  51. package/dist/components/index.d.cts +25 -0
  52. package/dist/components/index.d.ts +25 -0
  53. package/dist/components/index.js +7 -0
  54. package/dist/components/index.js.map +1 -0
  55. package/dist/config-CYswigMN.d.cts +30 -0
  56. package/dist/config-CYswigMN.d.ts +30 -0
  57. package/dist/index.cjs +114 -0
  58. package/dist/index.cjs.map +1 -0
  59. package/dist/index.d.cts +16 -0
  60. package/dist/index.d.ts +16 -0
  61. package/dist/index.js +70 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/ternSecureClientProvider-DXLMGG2U.cjs +12 -0
  64. package/dist/ternSecureClientProvider-DXLMGG2U.cjs.map +1 -0
  65. package/dist/ternSecureClientProvider-OJMAWZZ2.js +3 -0
  66. package/dist/{esm/ternSecureClientProvider-TNPPV4DR.js.map → ternSecureClientProvider-OJMAWZZ2.js.map} +1 -1
  67. package/package.json +1 -1
  68. package/dist/cjs/index.cjs +0 -491
  69. package/dist/cjs/index.cjs.map +0 -1
  70. package/dist/esm/chunk-TBRV2VGR.js.map +0 -1
  71. package/dist/esm/index.d.ts +0 -81
  72. package/dist/esm/index.js.map +0 -1
  73. package/dist/esm/ternSecureClientProvider-TNPPV4DR.js +0 -3
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var chunkANTUVB2P_cjs = require('../../chunk-ANTUVB2P.cjs');
4
+ require('../../chunk-VNNJ5ANT.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "TernSecureAuth", {
9
+ enumerable: true,
10
+ get: function () { return chunkANTUVB2P_cjs.TernSecureAuth; }
11
+ });
12
+ Object.defineProperty(exports, "TernSecureFirestore", {
13
+ enumerable: true,
14
+ get: function () { return chunkANTUVB2P_cjs.TernSecureFirestore; }
15
+ });
16
+ Object.defineProperty(exports, "TernSecureStorage", {
17
+ enumerable: true,
18
+ get: function () { return chunkANTUVB2P_cjs.TernSecureStorage; }
19
+ });
20
+ //# sourceMappingURL=client-init.cjs.map
21
+ //# sourceMappingURL=client-init.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"client-init.cjs"}
@@ -0,0 +1,9 @@
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
+
5
+ declare const TernSecureAuth: () => _firebase_auth.Auth;
6
+ declare const TernSecureFirestore: () => _firebase_firestore.Firestore;
7
+ declare const TernSecureStorage: () => _firebase_storage.FirebaseStorage;
8
+
9
+ export { TernSecureAuth, TernSecureFirestore, TernSecureStorage };
@@ -0,0 +1,9 @@
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
+
5
+ declare const TernSecureAuth: () => _firebase_auth.Auth;
6
+ declare const TernSecureFirestore: () => _firebase_firestore.Firestore;
7
+ declare const TernSecureStorage: () => _firebase_storage.FirebaseStorage;
8
+
9
+ export { TernSecureAuth, TernSecureFirestore, TernSecureStorage };
@@ -0,0 +1,4 @@
1
+ export { TernSecureAuth, TernSecureFirestore, TernSecureStorage } from '../../chunk-R3PDNT2L.js';
2
+ import '../../chunk-V2REFIUV.js';
3
+ //# sourceMappingURL=client-init.js.map
4
+ //# sourceMappingURL=client-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"client-init.js"}
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var chunkVNNJ5ANT_cjs = require('../../chunk-VNNJ5ANT.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "loadFireConfig", {
8
+ enumerable: true,
9
+ get: function () { return chunkVNNJ5ANT_cjs.loadFireConfig; }
10
+ });
11
+ Object.defineProperty(exports, "validateConfig", {
12
+ enumerable: true,
13
+ get: function () { return chunkVNNJ5ANT_cjs.validateConfig; }
14
+ });
15
+ //# sourceMappingURL=config.cjs.map
16
+ //# sourceMappingURL=config.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"config.cjs"}
@@ -0,0 +1,2 @@
1
+ export { l as loadFireConfig, v as validateConfig } from '../../config-CYswigMN.cjs';
2
+ import 'firebase/auth';
@@ -0,0 +1,2 @@
1
+ export { l as loadFireConfig, v as validateConfig } from '../../config-CYswigMN.js';
2
+ import 'firebase/auth';
@@ -0,0 +1,3 @@
1
+ export { loadFireConfig, validateConfig } from '../../chunk-V2REFIUV.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,47 @@
1
+ 'use strict';
2
+
3
+ var chunk6XOKZ6YG_cjs = require('../../chunk-6XOKZ6YG.cjs');
4
+ var chunkANTUVB2P_cjs = require('../../chunk-ANTUVB2P.cjs');
5
+ var chunkVNNJ5ANT_cjs = require('../../chunk-VNNJ5ANT.cjs');
6
+ var chunkWR6O4YMW_cjs = require('../../chunk-WR6O4YMW.cjs');
7
+
8
+
9
+
10
+ Object.defineProperty(exports, "signInWithEmail", {
11
+ enumerable: true,
12
+ get: function () { return chunk6XOKZ6YG_cjs.signInWithEmail; }
13
+ });
14
+ Object.defineProperty(exports, "TernSecureAuth", {
15
+ enumerable: true,
16
+ get: function () { return chunkANTUVB2P_cjs.TernSecureAuth; }
17
+ });
18
+ Object.defineProperty(exports, "TernSecureFirestore", {
19
+ enumerable: true,
20
+ get: function () { return chunkANTUVB2P_cjs.TernSecureFirestore; }
21
+ });
22
+ Object.defineProperty(exports, "TernSecureStorage", {
23
+ enumerable: true,
24
+ get: function () { return chunkANTUVB2P_cjs.TernSecureStorage; }
25
+ });
26
+ Object.defineProperty(exports, "loadFireConfig", {
27
+ enumerable: true,
28
+ get: function () { return chunkVNNJ5ANT_cjs.loadFireConfig; }
29
+ });
30
+ Object.defineProperty(exports, "validateConfig", {
31
+ enumerable: true,
32
+ get: function () { return chunkVNNJ5ANT_cjs.validateConfig; }
33
+ });
34
+ Object.defineProperty(exports, "TernSecureClientProvider", {
35
+ enumerable: true,
36
+ get: function () { return chunkWR6O4YMW_cjs.TernSecureClientProvider; }
37
+ });
38
+ Object.defineProperty(exports, "TernSecureContext", {
39
+ enumerable: true,
40
+ get: function () { return chunkWR6O4YMW_cjs.TernSecureContext; }
41
+ });
42
+ Object.defineProperty(exports, "useTernSecure", {
43
+ enumerable: true,
44
+ get: function () { return chunkWR6O4YMW_cjs.useTernSecure; }
45
+ });
46
+ //# sourceMappingURL=index.cjs.map
47
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
@@ -0,0 +1,24 @@
1
+ export { TernSecureAuth, TernSecureFirestore, TernSecureStorage } from './client-init.cjs';
2
+ import { UserCredential } from 'firebase/auth';
3
+ import { T as TernSecureState } from '../../config-CYswigMN.cjs';
4
+ export { l as loadFireConfig, v as validateConfig } from '../../config-CYswigMN.cjs';
5
+ import React__default from 'react';
6
+ import * as react_jsx_runtime from 'react/jsx-runtime';
7
+ import '@firebase/storage';
8
+ import '@firebase/firestore';
9
+ import '@firebase/auth';
10
+
11
+ interface SignInCredentials {
12
+ email: string;
13
+ password: string;
14
+ }
15
+ declare function signInWithEmail({ email, password }: SignInCredentials): Promise<UserCredential>;
16
+
17
+ declare const TernSecureContext: React__default.Context<[TernSecureState, React__default.Dispatch<React__default.SetStateAction<TernSecureState>>]>;
18
+ declare const useTernSecure: (hookname?: string) => [TernSecureState, React__default.Dispatch<React__default.SetStateAction<TernSecureState>>];
19
+
20
+ declare function TernSecureClientProvider({ children }: {
21
+ children: React__default.ReactNode;
22
+ }): react_jsx_runtime.JSX.Element;
23
+
24
+ export { type SignInCredentials, TernSecureClientProvider, TernSecureContext, signInWithEmail, useTernSecure };
@@ -0,0 +1,24 @@
1
+ export { TernSecureAuth, TernSecureFirestore, TernSecureStorage } from './client-init.js';
2
+ import { UserCredential } from 'firebase/auth';
3
+ import { T as TernSecureState } from '../../config-CYswigMN.js';
4
+ export { l as loadFireConfig, v as validateConfig } from '../../config-CYswigMN.js';
5
+ import React__default from 'react';
6
+ import * as react_jsx_runtime from 'react/jsx-runtime';
7
+ import '@firebase/storage';
8
+ import '@firebase/firestore';
9
+ import '@firebase/auth';
10
+
11
+ interface SignInCredentials {
12
+ email: string;
13
+ password: string;
14
+ }
15
+ declare function signInWithEmail({ email, password }: SignInCredentials): Promise<UserCredential>;
16
+
17
+ declare const TernSecureContext: React__default.Context<[TernSecureState, React__default.Dispatch<React__default.SetStateAction<TernSecureState>>]>;
18
+ declare const useTernSecure: (hookname?: string) => [TernSecureState, React__default.Dispatch<React__default.SetStateAction<TernSecureState>>];
19
+
20
+ declare function TernSecureClientProvider({ children }: {
21
+ children: React__default.ReactNode;
22
+ }): react_jsx_runtime.JSX.Element;
23
+
24
+ export { type SignInCredentials, TernSecureClientProvider, TernSecureContext, signInWithEmail, useTernSecure };
@@ -0,0 +1,6 @@
1
+ export { signInWithEmail } from '../../chunk-YSFNR6DO.js';
2
+ export { TernSecureAuth, TernSecureFirestore, TernSecureStorage } from '../../chunk-R3PDNT2L.js';
3
+ export { loadFireConfig, validateConfig } from '../../chunk-V2REFIUV.js';
4
+ export { TernSecureClientProvider, TernSecureContext, useTernSecure } from '../../chunk-2RTGO3FB.js';
5
+ //# sourceMappingURL=index.js.map
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ var chunkYMR72FHE_cjs = require('../../chunk-YMR72FHE.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "TernSecureProvider", {
8
+ enumerable: true,
9
+ get: function () { return chunkYMR72FHE_cjs.TernSecureProvider; }
10
+ });
11
+ //# sourceMappingURL=index.cjs.map
12
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
@@ -0,0 +1,9 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React__default, { ReactNode } from 'react';
3
+
4
+ interface TernSecureProviderProps {
5
+ children: ReactNode;
6
+ }
7
+ declare function TernSecureProvider({ children }: TernSecureProviderProps): react_jsx_runtime.JSX.Element | (string | number | React__default.ReactElement<any, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode>)[] | null | undefined;
8
+
9
+ export { TernSecureProvider };
@@ -0,0 +1,9 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React__default, { ReactNode } from 'react';
3
+
4
+ interface TernSecureProviderProps {
5
+ children: ReactNode;
6
+ }
7
+ declare function TernSecureProvider({ children }: TernSecureProviderProps): react_jsx_runtime.JSX.Element | (string | number | React__default.ReactElement<any, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode>)[] | null | undefined;
8
+
9
+ export { TernSecureProvider };
@@ -0,0 +1,3 @@
1
+ export { TernSecureProvider } from '../../chunk-PLJ3DA5F.js';
2
+ //# sourceMappingURL=index.js.map
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -1,10 +1,8 @@
1
- import * as React2 from 'react';
2
- import React2__default, { useState } from 'react';
1
+ import React, { useState } from 'react';
3
2
  import { jsx } from 'react/jsx-runtime';
4
3
 
5
4
  /* eslint-disable */
6
5
 
7
- globalThis.React = React2;
8
6
  var initialState = {
9
7
  firebase: {
10
8
  initialized: false,
@@ -17,10 +15,10 @@ var initialState = {
17
15
  isSignedIn: false
18
16
  }
19
17
  };
20
- var TernSecureContext = React2__default.createContext([initialState, () => {
18
+ var TernSecureContext = React.createContext([initialState, () => {
21
19
  }]);
22
20
  var useTernSecure = (hookname) => {
23
- const context = React2__default.useContext(TernSecureContext);
21
+ const context = React.useContext(TernSecureContext);
24
22
  if (!context) {
25
23
  throw new Error(
26
24
  `${hookname} must be used within TernSecureProvider`
@@ -34,5 +32,5 @@ function TernSecureClientProvider({ children }) {
34
32
  }
35
33
 
36
34
  export { TernSecureClientProvider, TernSecureContext, useTernSecure };
37
- //# sourceMappingURL=chunk-TBRV2VGR.js.map
38
- //# sourceMappingURL=chunk-TBRV2VGR.js.map
35
+ //# sourceMappingURL=chunk-2RTGO3FB.js.map
36
+ //# sourceMappingURL=chunk-2RTGO3FB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/app-router/client/providers/ternSecureContext.tsx","../src/app-router/client/providers/ternSecureClientProvider.tsx"],"names":[],"mappings":";;;;;AAKA,IAAM,YAAgC,GAAA;AAAA,EACpC,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,KAAA;AAAA,IACb,KAAO,EAAA;AAAA,GACT;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,IAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,IACT,KAAO,EAAA,IAAA;AAAA,IACP,UAAY,EAAA;AAAA;AAEhB,CAAA;AAEA,IAAM,iBAAoB,GAAA,KAAA,CAAM,aAAwF,CAAA,CAAC,cAAc,MAAM;AAAC,CAAC,CAAC;AAE1I,IAAA,aAAA,GAAgB,CAAC,QAAsB,KAAA;AAC3C,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,UAAA,CAAW,iBAAiB,CAAA;AAClD,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,GAAG,QAAQ,CAAA,uCAAA;AAAA,KAAyC;AAAA;AAExD,EAAO,OAAA,OAAA;AACT;ACtBO,SAAS,wBAAA,CAAyB,EAAE,QAAA,EAA2C,EAAA;AACpF,EAAM,MAAA,eAAA,GAAkB,SAAS,YAAY,CAAA;AAE7C,EAAA,2BACG,iBAAkB,CAAA,QAAA,EAAlB,EAA2B,KAAA,EAAO,iBAChC,QACH,EAAA,CAAA;AAEJ","file":"chunk-2RTGO3FB.js","sourcesContent":["'use client'\r\n\r\nimport React from 'react'\r\nimport { TernSecureState } from '../../../types'\r\n\r\nconst initialState: TernSecureState = {\r\n firebase: {\r\n initialized: false,\r\n error: null\r\n },\r\n auth: {\r\n user: null,\r\n loading: true,\r\n error: null,\r\n isSignedIn: false\r\n }\r\n}\r\n\r\nconst TernSecureContext = React.createContext<[TernSecureState, React.Dispatch<React.SetStateAction<TernSecureState>>]>([initialState, () => {}])\r\n\r\nconst useTernSecure = (hookname?: string) => {\r\n const context = React.useContext(TernSecureContext)\r\n if (!context) {\r\n throw new Error(\r\n `${hookname} must be used within TernSecureProvider`)\r\n }\r\n return context\r\n}\r\n\r\nexport {\r\n TernSecureContext,\r\n useTernSecure,\r\n initialState\r\n}","'use client'\r\n\r\nimport React, { useState } from 'react'\r\nimport { TernSecureContext, initialState } from './ternSecureContext'\r\n\r\nexport function TernSecureClientProvider({ children }: { children: React.ReactNode }) {\r\n const stateAndUpdater = useState(initialState)\r\n\r\n return (\r\n <TernSecureContext.Provider value={stateAndUpdater}>\r\n {children}\r\n </TernSecureContext.Provider>\r\n )\r\n}"]}
@@ -1,144 +1,9 @@
1
- import { useTernSecure } from './chunk-TBRV2VGR.js';
2
- export { TernSecureClientProvider, TernSecureContext, useTernSecure } from './chunk-TBRV2VGR.js';
3
- import { getApps, initializeApp } from 'firebase/app';
4
- import { getAuth, setPersistence, browserSessionPersistence, signInWithEmailAndPassword } from 'firebase/auth';
5
- import { getFirestore } from 'firebase/firestore';
6
- import { getStorage } from 'firebase/storage';
7
- import React, { useEffect, useState } from 'react';
8
- import dynamic from 'next/dynamic';
9
- import { jsx, jsxs } from 'react/jsx-runtime';
1
+ import { signInWithEmail } from './chunk-YSFNR6DO.js';
2
+ import { useState } from 'react';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
10
4
 
11
5
  /* eslint-disable */
12
6
 
13
- // src/app-router/client/config.ts
14
- var loadFireConfig = () => ({
15
- apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
16
- authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
17
- projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
18
- storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET,
19
- messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
20
- appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID,
21
- measurementId: process.env.NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID
22
- });
23
- var validateConfig = (config) => {
24
- Object.entries(config).forEach(([key, value]) => {
25
- if (!value) {
26
- throw new Error(`Missing environment variable: NEXT_PUBLIC_FIREBASE_${key.toUpperCase()}`);
27
- }
28
- });
29
- return config;
30
- };
31
-
32
- // src/app-router/client/client-init.ts
33
- var app = (() => {
34
- const config = validateConfig(loadFireConfig());
35
- return getApps().length ? getApps()[0] : initializeApp(config);
36
- })();
37
- var auth = getAuth(app);
38
- setPersistence(auth, browserSessionPersistence);
39
- var firestore = getFirestore(app);
40
- var storage = getStorage(app);
41
- var TernSecureAuth = () => auth;
42
- var TernSecureFirestore = () => firestore;
43
- var TernSecureStorage = () => storage;
44
- async function signInWithEmail({
45
- email,
46
- password
47
- }) {
48
- const auth2 = TernSecureAuth();
49
- return signInWithEmailAndPassword(auth2, email, password);
50
- }
51
- var TernSecureClientProvider2 = dynamic(
52
- () => import('./ternSecureClientProvider-TNPPV4DR.js').then((mod) => mod.TernSecureClientProvider),
53
- {
54
- ssr: false
55
- //loading: () => null // Return null or a loading indicator
56
- }
57
- );
58
- function TernSecureProvider({ children }) {
59
- const isRootLayout = React.Children.toArray(children).some(
60
- (child) => React.isValidElement(child) && child.type === "html"
61
- );
62
- if (isRootLayout) {
63
- return React.Children.map(children, (child) => {
64
- if (React.isValidElement(child) && child.type === "html") {
65
- return React.cloneElement(
66
- child,
67
- {},
68
- React.Children.map(child.props.children, (bodyChild) => {
69
- if (React.isValidElement(bodyChild) && bodyChild.type === "body") {
70
- const bodyProps = bodyChild.props;
71
- return React.cloneElement(
72
- bodyChild,
73
- {},
74
- /* @__PURE__ */ jsx(TernSecureClientProvider2, { children: bodyProps.children })
75
- );
76
- }
77
- return bodyChild;
78
- })
79
- );
80
- }
81
- return child;
82
- });
83
- }
84
- return /* @__PURE__ */ jsx(TernSecureClientProvider2, { children });
85
- }
86
- function useAuth() {
87
- const [state, setState] = useTernSecure("useAuth");
88
- useEffect(() => {
89
- try {
90
- const auth2 = TernSecureAuth();
91
- setState((prev) => ({
92
- ...prev,
93
- firebase: {
94
- initialized: true,
95
- error: null
96
- }
97
- }));
98
- const unsubscribe = auth2.onAuthStateChanged(
99
- (user) => {
100
- setState((prev) => ({
101
- ...prev,
102
- auth: {
103
- user,
104
- loading: false,
105
- error: null,
106
- isSignedIn: !!user
107
- }
108
- }));
109
- },
110
- (error) => {
111
- setState((prev) => ({
112
- ...prev,
113
- auth: {
114
- user: null,
115
- loading: false,
116
- error,
117
- isSignedIn: false
118
- }
119
- }));
120
- }
121
- );
122
- return () => unsubscribe();
123
- } catch (error) {
124
- setState((prev) => ({
125
- ...prev,
126
- firebase: {
127
- initialized: false,
128
- error
129
- },
130
- auth: {
131
- user: null,
132
- loading: false,
133
- error,
134
- isSignedIn: false
135
- }
136
- }));
137
- }
138
- }, []);
139
- return state.auth;
140
- }
141
-
142
7
  // src/utils/create-styles.ts
143
8
  var PREFIX = "tern";
144
9
  var styleInjection = {
@@ -357,6 +222,6 @@ function SignIn({
357
222
  ] });
358
223
  }
359
224
 
360
- export { SignIn, TernSecureAuth, TernSecureFirestore, TernSecureProvider, TernSecureStorage, loadFireConfig, signInWithEmail, useAuth, validateConfig };
361
- //# sourceMappingURL=index.js.map
362
- //# sourceMappingURL=index.js.map
225
+ export { SignIn };
226
+ //# sourceMappingURL=chunk-567EYYS7.js.map
227
+ //# sourceMappingURL=chunk-567EYYS7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/create-styles.ts","../src/components/sign-in.tsx"],"names":["styles"],"mappings":"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","file":"chunk-567EYYS7.js","sourcesContent":["'use client'\r\n\r\nconst PREFIX = 'tern'\r\n\r\n// Singleton to track style injection\r\nconst styleInjection = {\r\n isInjected: false,\r\n styleElement: null as HTMLStyleElement | null\r\n}\r\n\r\nexport const defaultClassNames = {\r\n container: `${PREFIX}-container`,\r\n header: `${PREFIX}-header`,\r\n title: `${PREFIX}-title`,\r\n formWrapper: `${PREFIX}-formWrapper`,\r\n formContainer: `${PREFIX}-formContainer`,\r\n form: `${PREFIX}-form`,\r\n label: `${PREFIX}-label`,\r\n input: `${PREFIX}-input`,\r\n button: `${PREFIX}-button`,\r\n error: `${PREFIX}-error`\r\n} as const\r\n\r\n// Create styles once and cache them\r\nfunction createStyleSheet(styles: Record<string, React.CSSProperties>) {\r\n if (typeof window === 'undefined') return defaultClassNames\r\n\r\n // Return early if styles are already injected\r\n if (styleInjection.isInjected) {\r\n return defaultClassNames\r\n }\r\n\r\n // Find existing style element or create new one\r\n let styleElement = document.querySelector<HTMLStyleElement>('[data-tern-secure]')\r\n \r\n if (!styleElement) {\r\n styleElement = document.createElement('style')\r\n styleElement.setAttribute('data-tern-secure', '')\r\n document.head.appendChild(styleElement)\r\n styleInjection.styleElement = styleElement\r\n }\r\n\r\n // Create CSS rules\r\n const cssRules = Object.entries(styles).map(([key, rules]) => {\r\n const className = defaultClassNames[key as keyof typeof defaultClassNames]\r\n const cssProperties = Object.entries(rules).map(([prop, value]) => {\r\n const cssProperty = prop.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n return `${cssProperty}: ${value};`\r\n }).join(' ')\r\n\r\n return `.${className} { ${cssProperties} }`\r\n }).join('\\n')\r\n\r\n // Insert styles only once\r\n styleElement.textContent = cssRules\r\n styleInjection.isInjected = true\r\n\r\n return defaultClassNames\r\n}\r\n\r\n// Style configuration\r\nexport const styleConfig = {\r\n container: {\r\n display: 'flex',\r\n minHeight: '100%',\r\n flex: '1',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n padding: '3rem 1.5rem'\r\n },\r\n header: {\r\n margin: '0 auto',\r\n width: '100%',\r\n maxWidth: '28rem'\r\n },\r\n title: {\r\n marginTop: '1.5rem',\r\n textAlign: 'center',\r\n fontSize: '1.875rem',\r\n fontWeight: '700',\r\n lineHeight: '2.25rem',\r\n letterSpacing: '-0.025em',\r\n color: 'var(--tern-text-primary, #111827)'\r\n },\r\n formWrapper: {\r\n marginTop: '2.5rem',\r\n margin: '0 auto',\r\n width: '100%',\r\n maxWidth: '30rem'\r\n },\r\n formContainer: {\r\n padding: '3rem 1.5rem',\r\n boxShadow: '0 1px 3px 0 rgb(0 0 0 / 0.1)',\r\n borderRadius: '0.5rem',\r\n backgroundColor: 'var(--tern-background, white)'\r\n },\r\n form: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '1rem'\r\n },\r\n label: {\r\n display: 'block',\r\n fontSize: '0.875rem',\r\n fontWeight: '500',\r\n color: 'var(--tern-text-secondary, #374151)'\r\n },\r\n input: {\r\n marginTop: '0.25rem',\r\n display: 'block',\r\n width: '100%',\r\n padding: '0.5rem 0.75rem',\r\n borderRadius: '0.375rem',\r\n border: '1px solid var(--tern-border, #D1D5DB)',\r\n backgroundColor: 'var(--tern-input-background, white)',\r\n color: 'var(--tern-text-primary, #111827)'\r\n },\r\n button: {\r\n display: 'flex',\r\n width: '100%',\r\n justifyContent: 'center',\r\n padding: '0.5rem 1rem',\r\n fontSize: '0.875rem',\r\n fontWeight: '500',\r\n color: 'white',\r\n backgroundColor: 'var(--tern-primary, #2563EB)',\r\n border: 'none',\r\n borderRadius: '0.375rem',\r\n cursor: 'pointer'\r\n },\r\n error: {\r\n color: 'var(--tern-error, #DC2626)',\r\n fontSize: '0.875rem'\r\n }\r\n} as const\r\n\r\n// Export pre-created styles\r\nexport const styles = createStyleSheet(styleConfig)\r\n\r\n","import * as React from 'react'\r\nimport { useState } from 'react'\r\nimport { signInWithEmail } from '../app-router/client'\r\nimport { styles } from '../utils/create-styles'\r\n\r\nexport interface SignInProps {\r\n onSuccess?: () => void\r\n onError?: (error: Error) => void\r\n redirectUrl?: string\r\n className?: string\r\n style?: React.CSSProperties\r\n customStyles?: {\r\n container?: string\r\n header?: string\r\n title?: string\r\n formWrapper?: string\r\n formContainer?: string\r\n form?: string\r\n input?: string\r\n button?: string\r\n errorText?: string\r\n label?: string\r\n }\r\n}\r\n\r\nexport function SignIn({ \r\n onSuccess, \r\n onError, \r\n redirectUrl,\r\n className = '',\r\n style,\r\n customStyles = {}\r\n}: SignInProps) {\r\n const [email, setEmail] = useState('')\r\n const [password, setPassword] = useState('')\r\n const [loading, setLoading] = useState(false)\r\n const [error, setError] = useState('')\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault()\r\n setLoading(true)\r\n setError('')\r\n\r\n try {\r\n await signInWithEmail({ email, password })\r\n onSuccess?.()\r\n \r\n if (redirectUrl) {\r\n window.location.href = redirectUrl\r\n }\r\n } catch (err) {\r\n const errorMessage = err instanceof Error ? err.message : 'Failed to sign in'\r\n setError(errorMessage)\r\n onError?.(err instanceof Error ? err : new Error('Failed to sign in'))\r\n } finally {\r\n setLoading(false)\r\n }\r\n }\r\n\r\n return (\r\n <div className={`${styles.container} ${customStyles.container || ''}`} style={style}>\r\n <div className={`${styles.header} ${customStyles.header || ''}`}>\r\n <h2 className={`${styles.title} ${customStyles.title || ''}`}>\r\n Sign in to your account\r\n </h2>\r\n </div>\r\n \r\n <div className={`${styles.formWrapper} ${customStyles.formWrapper || ''}`}>\r\n <div className={`${styles.formContainer} ${customStyles.formContainer || ''}`}>\r\n <form \r\n onSubmit={handleSubmit} \r\n className={`${styles.form} ${customStyles.form || ''} ${className}`}\r\n role=\"form\"\r\n aria-label=\"Sign in form\"\r\n >\r\n {error && (\r\n <div \r\n className={`${styles.error} ${customStyles.errorText || ''}`}\r\n role=\"alert\"\r\n aria-live=\"polite\"\r\n >\r\n {error}\r\n </div>\r\n )}\r\n <div>\r\n <label htmlFor=\"email\" className={`${styles.label} ${customStyles.label || ''}`}>\r\n Email\r\n </label>\r\n <input\r\n id=\"email\"\r\n type=\"email\"\r\n value={email}\r\n onChange={(e) => setEmail(e.target.value)}\r\n placeholder=\"Enter your email\"\r\n required\r\n className={`${styles.input} ${customStyles.input || ''}`}\r\n disabled={loading}\r\n aria-required=\"true\"\r\n aria-invalid={!!error}\r\n />\r\n </div>\r\n <div>\r\n <label htmlFor=\"password\" className={`${styles.label} ${customStyles.label || ''}`}>\r\n Password\r\n </label>\r\n <input\r\n id=\"password\"\r\n type=\"password\"\r\n value={password}\r\n onChange={(e) => setPassword(e.target.value)}\r\n placeholder=\"Enter your password\"\r\n required\r\n className={`${styles.input} ${customStyles.input || ''}`}\r\n disabled={loading}\r\n aria-required=\"true\"\r\n aria-invalid={!!error}\r\n />\r\n </div>\r\n <button \r\n type=\"submit\" \r\n disabled={loading}\r\n className={`${styles.button} ${customStyles.button || ''}`}\r\n data-testid=\"sign-in-submit\"\r\n >\r\n {loading ? 'Signing in...' : 'Sign in'}\r\n </button>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n"]}
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var chunkANTUVB2P_cjs = require('./chunk-ANTUVB2P.cjs');
4
+ var auth = require('firebase/auth');
5
+
6
+ /* eslint-disable */
7
+ async function signInWithEmail({
8
+ email,
9
+ password
10
+ }) {
11
+ const auth$1 = chunkANTUVB2P_cjs.TernSecureAuth();
12
+ return auth.signInWithEmailAndPassword(auth$1, email, password);
13
+ }
14
+
15
+ exports.signInWithEmail = signInWithEmail;
16
+ //# sourceMappingURL=chunk-6XOKZ6YG.cjs.map
17
+ //# sourceMappingURL=chunk-6XOKZ6YG.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/app-router/client/auth.ts"],"names":["auth","TernSecureAuth","signInWithEmailAndPassword"],"mappings":";;;;;;AAQA,eAAsB,eAAgB,CAAA;AAAA,EACpC,KAAA;AAAA,EACA;AACF,CAA+C,EAAA;AAC7C,EAAA,MAAMA,SAAOC,gCAAe,EAAA;AAC5B,EAAO,OAAAC,+BAAA,CAA2BF,MAAM,EAAA,KAAA,EAAO,QAAQ,CAAA;AACzD","file":"chunk-6XOKZ6YG.cjs","sourcesContent":["import { TernSecureAuth } from './index'\r\nimport { signInWithEmailAndPassword, type UserCredential } from 'firebase/auth'\r\n\r\nexport interface SignInCredentials {\r\n email: string\r\n password: string\r\n}\r\n\r\nexport async function signInWithEmail({ \r\n email, \r\n password \r\n}: SignInCredentials): Promise<UserCredential> {\r\n const auth = TernSecureAuth()\r\n return signInWithEmailAndPassword(auth, email, password)\r\n} "]}