@frontegg/nextjs 9.2.12 → 9.2.13-alpha.22623015259
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.
- package/api/index.d.ts +1 -1
- package/app/ClientFronteggProvider.js +1 -2
- package/app/ClientFronteggProvider.js.map +1 -1
- package/app/FronteggAppProvider.d.ts +2 -2
- package/app/FronteggAppRouter.d.ts +2 -1
- package/common/AppContext.d.ts +0 -1
- package/common/FronteggBaseProvider.js +6 -8
- package/common/FronteggBaseProvider.js.map +1 -1
- package/common/FronteggRouterBase.d.ts +2 -2
- package/common/FronteggRouterBase.js +1 -2
- package/common/FronteggRouterBase.js.map +1 -1
- package/common/cmc/base.js +1 -2
- package/common/cmc/base.js.map +1 -1
- package/common/cmc/hooks.js +1 -2
- package/common/cmc/hooks.js.map +1 -1
- package/config/constants.js +96 -0
- package/config/constants.js.map +1 -1
- package/config/index.js +0 -1
- package/config/index.js.map +1 -1
- package/edge/redirectToLogin.d.ts +1 -1
- package/edge/shouldBypassMiddleware.d.ts +1 -1
- package/index.js +1 -1
- package/iron-session-edge.d.ts +6 -0
- package/middleware/FronteggProxy.d.ts +1 -1
- package/middleware/ProxyRequestCallback.d.ts +0 -1
- package/middleware/helpers.d.ts +1 -1
- package/no-ssr/ExpireInListener.d.ts +2 -1
- package/no-ssr/ExpireInListener.js +1 -2
- package/no-ssr/ExpireInListener.js.map +1 -1
- package/no-ssr/FronteggProviderNoSSR.js +3 -5
- package/no-ssr/FronteggProviderNoSSR.js.map +1 -1
- package/no-ssr/NoSSRStoreHolder.js +1 -5
- package/no-ssr/NoSSRStoreHolder.js.map +1 -1
- package/package.json +4 -4
- package/pages/FronteggRouter/FronteggRouter.d.ts +2 -1
- package/pages/helpers.d.ts +0 -1
- package/pages/withFronteggApp/withFronteggApp.js +1 -2
- package/pages/withFronteggApp/withFronteggApp.js.map +1 -1
- package/sdkVersion.js +1 -1
- package/sdkVersion.js.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.js.map +1 -1
- package/utils/cookies/index.d.ts +5 -1
- package/utils/cookies/index.js +2 -0
- package/utils/cookies/index.js.map +1 -1
- package/utils/cookies/types.d.ts +0 -1
- package/utils/fronteggLogger/index.js +0 -2
- package/utils/fronteggLogger/index.js.map +1 -1
- package/utils/jwt/index.js +0 -3
- package/utils/jwt/index.js.map +1 -1
- package/utils/useOnRedirectTo/index.d.ts +1 -1
- package/utils/useOnRedirectTo/index.js.map +1 -1
package/api/index.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export declare const getPublicSettings: (headers: Record<string, string>) => Pro
|
|
|
28
28
|
declare const _default: {
|
|
29
29
|
loadPublicKey: () => Promise<any>;
|
|
30
30
|
refreshTokenEmbedded: (headers: Record<string, string>) => Promise<Response>;
|
|
31
|
-
refreshTokenHostedLogin: (headers: Record<string, string>, refreshToken: string, clientId?: string
|
|
31
|
+
refreshTokenHostedLogin: (headers: Record<string, string>, refreshToken: string, clientId?: string, clientSecret?: string) => Promise<Response>;
|
|
32
32
|
getMe: (headers: Record<string, string>) => Promise<ILoginResponse | undefined>;
|
|
33
33
|
getTenants: (headers: Record<string, string>) => Promise<GetCurrentUserTenantsResponse | undefined>;
|
|
34
34
|
getPublicSettings: (headers: Record<string, string>) => Promise<IPublicSettingsResponse | undefined>;
|
|
@@ -14,8 +14,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
14
14
|
var _createTenantResolverForClientProvider = require("./createTenantResolverForClientProvider");
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
16
|
const _excluded = ["children", "basename", "contextOptions", "customLoginOptions"];
|
|
17
|
-
function
|
|
18
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
19
18
|
const ClientFronteggProvider = _ref => {
|
|
20
19
|
let {
|
|
21
20
|
children,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientFronteggProvider.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","ClientFronteggProvider","_extends2","_objectWithoutPropertiesLoose2","_common","_navigation","_react","_interopRequireWildcard","_createTenantResolverForClientProvider","_jsxRuntime","_excluded","
|
|
1
|
+
{"version":3,"file":"ClientFronteggProvider.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","ClientFronteggProvider","_extends2","_objectWithoutPropertiesLoose2","_common","_navigation","_react","_interopRequireWildcard","_createTenantResolverForClientProvider","_jsxRuntime","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","_ref","children","basename","contextOptions","customLoginOptions","props","router","useRouter","basePath","process","env","__NEXT_ROUTER_BASEPATH","tenantResolver","useMemo","createTenantResolverForClientProvider","jsx","FronteggBaseProvider"],"sources":["../../../../packages/nextjs/src/app/ClientFronteggProvider.tsx"],"sourcesContent":["'use client';\n\nimport type { ContextOptions } from '@frontegg/rest-api';\nimport type { ClientFronteggProviderProps } from '../types';\nimport { FronteggBaseProvider } from '../common';\nimport { useRouter } from 'next/navigation';\nimport React, { FC, useMemo } from 'react';\nimport { createTenantResolverForClientProvider } from './createTenantResolverForClientProvider';\n\nexport const ClientFronteggProvider: FC<ClientFronteggProviderProps> = ({\n children,\n basename,\n contextOptions,\n customLoginOptions,\n ...props\n}) => {\n const router = useRouter();\n const basePath = process.env.__NEXT_ROUTER_BASEPATH || '';\n\n const tenantResolver = useMemo(\n () => createTenantResolverForClientProvider(customLoginOptions),\n [customLoginOptions]\n ) as ContextOptions['tenantResolver'];\n\n return (\n <FronteggBaseProvider\n router={router}\n basename={basename ?? basePath}\n contextOptions={{ ...contextOptions, tenantResolver }}\n {...props}\n >\n {children}\n </FronteggBaseProvider>\n );\n};\n"],"mappings":";AAAA,YAAY;;AAAC,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,sBAAA;AAAA,IAAAC,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AAAA,IAAAO,8BAAA,GAAAR,sBAAA,CAAAC,OAAA;AAIb,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,MAAA,GAAAC,uBAAA,CAAAX,OAAA;AACA,IAAAY,sCAAA,GAAAZ,OAAA;AAAgG,IAAAa,WAAA,GAAAb,OAAA;AAAA,MAAAc,SAAA;AAAA,SAAAH,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAApB,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAA8B,wBAAA,CAAAhB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEzF,MAAMX,sBAAuD,GAAG2B,IAAA,IAMjE;EAAA,IANkE;MACtEC,QAAQ;MACRC,QAAQ;MACRC,cAAc;MACdC;IAEF,CAAC,GAAAJ,IAAA;IADIK,KAAK,OAAA9B,8BAAA,CAAAkB,OAAA,EAAAO,IAAA,EAAAlB,SAAA;EAER,MAAMwB,MAAM,GAAG,IAAAC,qBAAS,EAAC,CAAC;EAC1B,MAAMC,QAAQ,GAAGC,OAAO,CAACC,GAAG,CAACC,sBAAsB,IAAI,EAAE;EAEzD,MAAMC,cAAc,GAAG,IAAAC,cAAO,EAC5B,MAAM,IAAAC,4EAAqC,EAACV,kBAAkB,CAAC,EAC/D,CAACA,kBAAkB,CACrB,CAAqC;EAErC,oBACE,IAAAvB,WAAA,CAAAkC,GAAA,EAACvC,OAAA,CAAAwC,oBAAoB,MAAA1C,SAAA,CAAAmB,OAAA;IACnBa,MAAM,EAAEA,MAAO;IACfJ,QAAQ,EAAEA,QAAQ,WAARA,QAAQ,GAAIM,QAAS;IAC/BL,cAAc,MAAA7B,SAAA,CAAAmB,OAAA,MAAOU,cAAc;MAAES;IAAc;EAAG,GAClDP,KAAK;IAAAJ,QAAA,EAERA;EAAQ,EACW,CAAC;AAE3B,CAAC;AAAC9B,OAAA,CAAAE,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PropsWithChildren, ReactNode } from 'react';
|
|
1
|
+
import React, { PropsWithChildren, ReactNode } from 'react';
|
|
2
2
|
import { ClientFronteggProviderProps } from '../types';
|
|
3
3
|
export type FronteggAppProviderProps = PropsWithChildren<Omit<ClientFronteggProviderProps, 'contextOptions' | 'envAppUrl' | 'envBaseUrl' | 'envClientId'>> & {
|
|
4
4
|
alwaysVisibleChildren?: ReactNode;
|
|
5
5
|
};
|
|
6
|
-
export declare const FronteggAppProvider: (options: FronteggAppProviderProps) => Promise<JSX.Element>;
|
|
6
|
+
export declare const FronteggAppProvider: (options: FronteggAppProviderProps) => Promise<React.JSX.Element>;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare function FronteggAppRouter<T>(routerProps: T): React.JSX.Element | Promise<React.JSX.Element | null> | null;
|
package/common/AppContext.d.ts
CHANGED
|
@@ -19,8 +19,7 @@ var _config = _interopRequireDefault(require("../config"));
|
|
|
19
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
20
|
const _excluded = ["router", "appName"];
|
|
21
21
|
var _Fragment;
|
|
22
|
-
function
|
|
23
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
22
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
24
23
|
const SSGRequestAuthorize = ({
|
|
25
24
|
isSSG,
|
|
26
25
|
shouldRequestAuthorize
|
|
@@ -100,17 +99,16 @@ const Connector = _ref => {
|
|
|
100
99
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(SSGRequestAuthorize, {
|
|
101
100
|
isSSG: props.isSSG,
|
|
102
101
|
shouldRequestAuthorize: props.shouldRequestAuthorize
|
|
103
|
-
}), /*#__PURE__*/
|
|
104
|
-
app
|
|
102
|
+
}), /*#__PURE__*/_react.default.createElement(_reactHooks.CustomComponentRegister, {
|
|
103
|
+
app,
|
|
105
104
|
themeOptions: props.themeOptions
|
|
106
105
|
}), props.alwaysVisibleChildren]
|
|
107
106
|
});
|
|
108
107
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_AppContext.default.Provider, {
|
|
109
108
|
value: app,
|
|
110
|
-
children: /*#__PURE__*/
|
|
111
|
-
app
|
|
112
|
-
|
|
113
|
-
alwaysVisibleChildren: alwaysVisibleChildren,
|
|
109
|
+
children: /*#__PURE__*/_react.default.createElement(_reactHooks.FronteggStoreProvider, (0, _extends2.default)({}, props, {
|
|
110
|
+
app,
|
|
111
|
+
alwaysVisibleChildren,
|
|
114
112
|
children: props.children
|
|
115
113
|
}))
|
|
116
114
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FronteggBaseProvider.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","FronteggBaseProvider","_extends2","_objectWithoutPropertiesLoose2","_react","_interopRequireWildcard","_reactHooks","_restApi","_AppContext","_initializeFronteggApp","_useRequestAuthorizeSSR","_useOnRedirectTo","_config","_jsxRuntime","_excluded","_Fragment","
|
|
1
|
+
{"version":3,"file":"FronteggBaseProvider.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","FronteggBaseProvider","_extends2","_objectWithoutPropertiesLoose2","_react","_interopRequireWildcard","_reactHooks","_restApi","_AppContext","_initializeFronteggApp","_useRequestAuthorizeSSR","_useOnRedirectTo","_config","_jsxRuntime","_excluded","_Fragment","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","SSGRequestAuthorize","isSSG","shouldRequestAuthorize","store","useStore","requestAuthorize","setAuthState","useAuthActions","useEffect","auth","silentRefreshing","finally","jsx","Fragment","Connector","_ref","_props$basename","_props$authOptions","router","appName","props","isSSR","window","user","session","tenants","activeTenant","baseName","basename","storeHolder","useRef","onRedirectTo","useOnRedirectTo","authOptions","routes","app","useMemo","initializeFronteggApp","options","current","ContextHolder","for","setOnRedirectTo","accessToken","_session$accessToken","setAccessToken","setUser","useRequestAuthorizeSSR","alwaysVisibleChildren","undefined","jsxs","children","React","createElement","CustomComponentRegister","themeOptions","Provider","FronteggStoreProvider","config","fronteggAppOptions","framework"],"sources":["../../../../packages/nextjs/src/common/FronteggBaseProvider.tsx"],"sourcesContent":["'use client';\n\nimport React, { FC, useEffect, useMemo, useRef } from 'react';\nimport { FronteggStoreProvider, CustomComponentRegister, useAuthActions, useStore } from '@frontegg/react-hooks';\nimport { ContextHolder } from '@frontegg/rest-api';\nimport type { FronteggProviderProps } from '../types';\nimport AppContext from './AppContext';\nimport initializeFronteggApp from '../utils/initializeFronteggApp';\nimport useRequestAuthorizeSSR from './useRequestAuthorizeSSR';\nimport useOnRedirectTo from '../utils/useOnRedirectTo';\nimport config from '../config';\n\nconst SSGRequestAuthorize: FC<{ isSSG?: boolean; shouldRequestAuthorize?: boolean }> = ({\n isSSG,\n shouldRequestAuthorize,\n}) => {\n const { store } = useStore();\n const { requestAuthorize, setAuthState } = useAuthActions();\n\n useEffect(\n () => {\n if (isSSG && shouldRequestAuthorize && !(store.auth as any).silentRefreshing) {\n setAuthState({ silentRefreshing: true } as any);\n requestAuthorize().finally(() => {\n setAuthState({ silentRefreshing: false } as any);\n });\n } else {\n setAuthState({ silentRefreshing: false } as any);\n }\n },\n [\n /* DON'T add any dependency to make sure this useEffect called once on app mount */\n ]\n );\n\n return <></>;\n};\n\nconst Connector: FC<FronteggProviderProps> = ({ router, appName = 'default', ...props }) => {\n const isSSR = typeof window === 'undefined';\n const { user, session, tenants, activeTenant } = props;\n const baseName = props.basename ?? '';\n const storeHolder = useRef({});\n\n const onRedirectTo = useOnRedirectTo(baseName, router, props.authOptions?.routes);\n\n const app = useMemo(\n () =>\n initializeFronteggApp({\n options: { ...props, basename: baseName },\n onRedirectTo,\n appName,\n storeHolder: storeHolder.current,\n }),\n [props]\n );\n ContextHolder.for(appName).setOnRedirectTo(onRedirectTo);\n\n useEffect(() => {\n if (props.shouldRequestAuthorize && !props.isSSG) {\n if (session?.accessToken) {\n ContextHolder.for(appName).setAccessToken(session?.accessToken ?? null);\n }\n if (user) {\n ContextHolder.for(appName).setUser(user);\n }\n useRequestAuthorizeSSR({ app, user, tenants, activeTenant, session });\n }\n }, []);\n\n const alwaysVisibleChildren = isSSR ? undefined : (\n <>\n <SSGRequestAuthorize isSSG={props.isSSG} shouldRequestAuthorize={props.shouldRequestAuthorize} />\n {React.createElement(CustomComponentRegister as React.ComponentType<{ app: typeof app; themeOptions: any }>, {\n app,\n themeOptions: props.themeOptions,\n })}\n {props.alwaysVisibleChildren}\n </>\n );\n return (\n <AppContext.Provider value={app}>\n {React.createElement(FronteggStoreProvider as React.ComponentType<any>, {\n ...props,\n app,\n alwaysVisibleChildren,\n children: props.children,\n })}\n </AppContext.Provider>\n );\n};\n\nexport const FronteggBaseProvider: FC<FronteggProviderProps> = (props) => {\n config.fronteggAppOptions = props ?? {};\n\n return (\n <Connector {...props} framework={'nextjs'}>\n {props.children}\n </Connector>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { ParsedUrlQuery } from 'querystring';
|
|
3
3
|
interface FronteggRouterBaseProps {
|
|
4
4
|
queryParams?: ParsedUrlQuery;
|
|
5
5
|
pathArr: string[];
|
|
6
6
|
isAppDirEnabled?: boolean;
|
|
7
7
|
}
|
|
8
|
-
export declare function FronteggRouterBase(props: FronteggRouterBaseProps): JSX.Element;
|
|
8
|
+
export declare function FronteggRouterBase(props: FronteggRouterBaseProps): React.JSX.Element;
|
|
9
9
|
export {};
|
|
@@ -16,8 +16,7 @@ var _AppContext = _interopRequireDefault(require("./AppContext"));
|
|
|
16
16
|
var _helpers = require("./helpers");
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
18
|
var _Fragment;
|
|
19
|
-
function
|
|
20
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
19
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
21
20
|
function FronteggRouterBase(props) {
|
|
22
21
|
const {
|
|
23
22
|
queryParams = {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FronteggRouterBase.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","FronteggRouterBase","_extends2","_config","_routing","_react","_interopRequireWildcard","_reactHooks","_constants","_AppContext","_helpers","_jsxRuntime","_Fragment","
|
|
1
|
+
{"version":3,"file":"FronteggRouterBase.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","FronteggRouterBase","_extends2","_config","_routing","_react","_interopRequireWildcard","_reactHooks","_constants","_AppContext","_helpers","_jsxRuntime","_Fragment","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","props","queryParams","pathArr","isAppDirEnabled","app","useContext","AppContext","loginWithRedirect","useLoginWithRedirect","requestAuthorize","logout","useLoginActions","useEffect","pathname","join","routesObj","defaultFronteggRoutes","config","authRoutes","options","hostedLoginBox","loginUrl","redirectUrl","getAfterAuthRedirectUrl","localStorage","setItem","FRONTEGG_AFTER_AUTH_REDIRECT_URL","window","location","origin","logoutUrl","_routesObj$hostedLogi","startsWith","hostedLoginRedirectUrl","href","authenticatedUrl","isSamlCallback","samlCallbackUrl","isLoginPage","jsx","Fragment"],"sources":["../../../../packages/nextjs/src/common/FronteggRouterBase.tsx"],"sourcesContent":["'use client';\n\nimport config from '../config';\nimport { defaultFronteggRoutes } from '../utils/routing';\nimport { useContext, useEffect } from 'react';\nimport { useLoginActions, useLoginWithRedirect } from '@frontegg/react-hooks';\nimport { FRONTEGG_AFTER_AUTH_REDIRECT_URL } from '../utils/common/constants';\nimport AppContext from './AppContext';\nimport React from 'react';\nimport { ParsedUrlQuery } from 'querystring';\nimport { getAfterAuthRedirectUrl } from './helpers';\n\ninterface FronteggRouterBaseProps {\n queryParams?: ParsedUrlQuery;\n pathArr: string[];\n isAppDirEnabled?: boolean;\n}\n\nexport function FronteggRouterBase(props: FronteggRouterBaseProps) {\n const { queryParams = {}, pathArr, isAppDirEnabled } = props;\n const app = useContext(AppContext);\n const loginWithRedirect = useLoginWithRedirect();\n const { requestAuthorize, logout } = useLoginActions();\n\n useEffect(() => {\n if (!app) {\n return;\n }\n\n const pathname = `/${pathArr.join('/')}`;\n const routesObj = {\n ...defaultFronteggRoutes,\n ...config.authRoutes,\n };\n\n if (app.options.hostedLoginBox) {\n if (pathname === routesObj.loginUrl) {\n const redirectUrl = getAfterAuthRedirectUrl(queryParams);\n\n if (queryParams.redirectUrl) {\n localStorage.setItem(FRONTEGG_AFTER_AUTH_REDIRECT_URL, `${window.location.origin}${redirectUrl}`);\n }\n loginWithRedirect();\n } else if (pathname === routesObj.logoutUrl) {\n logout();\n }\n } else {\n if (pathname.startsWith(routesObj.hostedLoginRedirectUrl ?? '/oauth/callback')) {\n // if not hosted login, redirect the user to the authenticated url\n window.location.href = routesObj.authenticatedUrl;\n } else {\n const isSamlCallback = pathname === routesObj.samlCallbackUrl;\n const isLoginPage = pathname.startsWith(routesObj.loginUrl);\n if ((isAppDirEnabled && isLoginPage) || isSamlCallback) {\n requestAuthorize(true);\n }\n }\n }\n }, [app, queryParams, pathArr, loginWithRedirect, logout]);\n return <></>;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/common/cmc/base.js
CHANGED
|
@@ -9,8 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _ = require("../..");
|
|
11
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
-
function
|
|
13
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
13
|
const CMCComponent = exports.CMCComponent = /*#__PURE__*/(0, _react.memo)(({
|
|
15
14
|
themeOptions,
|
|
16
15
|
props,
|
package/common/cmc/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","names":["_react","_interopRequireWildcard","require","_","_jsxRuntime","
|
|
1
|
+
{"version":3,"file":"base.js","names":["_react","_interopRequireWildcard","require","_","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CMCComponent","exports","memo","themeOptions","props","localizations","hostStyle","containerStyle","renderComponent","ref","React","useRef","app","useContext","AppContext","useLayoutEffect","current","rootRendered","unmount","Error","then","root","jsx","style","_extends2"],"sources":["../../../../../packages/nextjs/src/common/cmc/base.tsx"],"sourcesContent":["import { FronteggApp } from '@frontegg/js';\nimport React, { memo } from 'react';\nimport { useContext } from 'react';\nimport { CMCComponentProps } from '@frontegg/types';\nimport { FC } from 'react';\nimport { AppContext } from '../..';\n\nexport type RenderableFronteggComponent = keyof Pick<\n FronteggApp,\n | 'renderChangePasswordForm'\n | 'renderInviteUserDialog'\n | 'renderProfilePage'\n | 'renderUsersTable'\n | 'renderEditEmailForm'\n>;\nexport type FronteggCMCComponentProps<K extends CMCComponentProps> = Pick<\n K,\n 'themeOptions' | 'props' | 'localizations' | 'hostStyle' | 'containerStyle'\n>;\n\nexport const CMCComponent: FC<\n FronteggCMCComponentProps<CMCComponentProps> & { renderComponent: RenderableFronteggComponent }\n> = memo(\n ({ themeOptions, props, localizations, hostStyle, containerStyle, renderComponent }) => {\n const ref = React.useRef<HTMLDivElement>(null);\n const app = useContext(AppContext)!;\n React.useLayoutEffect(() => {\n if (!ref.current) {\n return;\n }\n let rootRendered: { unmount: () => void } = {\n unmount: () => {},\n };\n\n if (!app[renderComponent]) {\n throw new Error(`Component ${renderComponent} is not supported`);\n }\n\n app[renderComponent](ref.current, props, {\n themeOptions,\n localizations,\n containerStyle,\n }).then((root) => (rootRendered = root));\n }, []);\n\n return <div style={{ ...hostStyle }} ref={ref} />;\n },\n () => true\n);\n"],"mappings":";;;;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAIA,IAAAC,CAAA,GAAAD,OAAA;AAAmC,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAe5B,MAAMkB,YAEZ,GAAAC,OAAA,CAAAD,YAAA,gBAAG,IAAAE,WAAI,EACN,CAAC;EAAEC,YAAY;EAAEC,KAAK;EAAEC,aAAa;EAAEC,SAAS;EAAEC,cAAc;EAAEC;AAAgB,CAAC,KAAK;EACtF,MAAMC,GAAG,GAAGC,cAAK,CAACC,MAAM,CAAiB,IAAI,CAAC;EAC9C,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACC,YAAU,CAAE;EACnCJ,cAAK,CAACK,eAAe,CAAC,MAAM;IAC1B,IAAI,CAACN,GAAG,CAACO,OAAO,EAAE;MAChB;IACF;IACA,IAAIC,YAAqC,GAAG;MAC1CC,OAAO,EAAEA,CAAA,KAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAACN,GAAG,CAACJ,eAAe,CAAC,EAAE;MACzB,MAAM,IAAIW,KAAK,CAAC,aAAaX,eAAe,mBAAmB,CAAC;IAClE;IAEAI,GAAG,CAACJ,eAAe,CAAC,CAACC,GAAG,CAACO,OAAO,EAAEZ,KAAK,EAAE;MACvCD,YAAY;MACZE,aAAa;MACbE;IACF,CAAC,CAAC,CAACa,IAAI,CAAEC,IAAI,IAAMJ,YAAY,GAAGI,IAAK,CAAC;EAC1C,CAAC,EAAE,EAAE,CAAC;EAEN,oBAAO,IAAAzC,WAAA,CAAA0C,GAAA;IAAKC,KAAK,MAAAC,SAAA,CAAAjC,OAAA,MAAOe,SAAS,CAAG;IAACG,GAAG,EAAEA;EAAI,CAAE,CAAC;AACnD,CAAC,EACD,MAAM,IACR,CAAC","ignoreList":[]}
|
package/common/cmc/hooks.js
CHANGED
|
@@ -8,8 +8,7 @@ exports.useUsersTable = exports.useInviteUserDialog = void 0;
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _ = require("../..");
|
|
10
10
|
var _reduxStore = require("@frontegg/redux-store");
|
|
11
|
-
function
|
|
12
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
12
|
const useUsersTable = id => {
|
|
14
13
|
const app = (0, _react.useContext)(_.AppContext);
|
|
15
14
|
const [store, setStore] = (0, _react.useState)((0, _reduxStore.createProxy)({
|
package/common/cmc/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","names":["Object","defineProperty","exports","value","useUsersTable","useInviteUserDialog","_react","_interopRequireWildcard","require","_","_reduxStore","
|
|
1
|
+
{"version":3,"file":"hooks.js","names":["Object","defineProperty","exports","value","useUsersTable","useInviteUserDialog","_react","_interopRequireWildcard","require","_","_reduxStore","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","id","app","useContext","AppContext","store","setStore","useState","createProxy","onSearch","searchQuery","searching","React","useLayoutEffect","getUsersTableStore","then","catch","err","console","error","useSnapshot","openDialog","closeDialog","dialogOpen","getInviteUserDialogStore"],"sources":["../../../../../packages/nextjs/src/common/cmc/hooks.tsx"],"sourcesContent":["'use client';\n\nimport { InviteUserDialogContextData, UsersTableContextData } from '@frontegg/types';\nimport React, { useContext, useState } from 'react';\nimport { AppContext, useSnapshot } from '../..';\nimport { createProxy } from '@frontegg/redux-store';\nexport const useUsersTable = (id?: string): UsersTableContextData => {\n const app = useContext(AppContext)!;\n const [store, setStore] = useState<UsersTableContextData>(createProxy({\n onSearch: () => { },\n searchQuery: '',\n searching: false,\n }));\n\n React.useLayoutEffect(() => {\n app\n .getUsersTableStore({ id })\n .then((store) => {\n setStore(store as UsersTableContextData);\n })\n .catch((err) => {\n console.error('Error getting users table store', err);\n });\n }, []);\n\n return useSnapshot(store);\n};\n\nexport const useInviteUserDialog = (id?: string): InviteUserDialogContextData => {\n const app = useContext(AppContext)!;\n const [store, setStore] = useState<InviteUserDialogContextData>(createProxy({\n openDialog: () => { },\n closeDialog: () => { },\n dialogOpen: false,\n }));\n\n React.useLayoutEffect(() => {\n app\n .getInviteUserDialogStore({ id })\n .then((store) => {\n setStore(store as InviteUserDialogContextData);\n })\n .catch((err) => {\n console.error('Error getting invite user dialog store', err);\n });\n }, []);\n\n\n return useSnapshot(store);\n};\n"],"mappings":"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","ignoreList":[]}
|
package/config/constants.js
CHANGED
|
@@ -5,24 +5,120 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.EnvVariables = void 0;
|
|
7
7
|
let EnvVariables = exports.EnvVariables = /*#__PURE__*/function (EnvVariables) {
|
|
8
|
+
/**
|
|
9
|
+
* The AppUrl is to tell Frontegg your application's app url
|
|
10
|
+
* for generating cookies and proxy http requests
|
|
11
|
+
*/
|
|
8
12
|
EnvVariables["FRONTEGG_APP_URL"] = "FRONTEGG_APP_URL";
|
|
13
|
+
/**
|
|
14
|
+
* The Frontegg domain is your unique URL to connect to the Frontegg gateway, get it by visit:
|
|
15
|
+
* - For Dev environment [visit](https://portal.frontegg.com/development/settings/domains)
|
|
16
|
+
* - For Prod environment [visit](https://portal.frontegg.com/production/settings/domains)
|
|
17
|
+
*/
|
|
9
18
|
EnvVariables["FRONTEGG_BASE_URL"] = "FRONTEGG_BASE_URL";
|
|
19
|
+
/**
|
|
20
|
+
* The Frontegg test domain used for testing proxy middleware
|
|
21
|
+
* @private for Frontegg
|
|
22
|
+
*/
|
|
10
23
|
EnvVariables["FRONTEGG_TEST_URL"] = "FRONTEGG_TEST_URL";
|
|
24
|
+
/**
|
|
25
|
+
* Your Frontegg application's Client ID, get it by visit:
|
|
26
|
+
* - For Dev environment [visit](https://portal.frontegg.com/development/settings/general)
|
|
27
|
+
* - For Prod environment [visit](https://portal.frontegg.com/production/settings/general)
|
|
28
|
+
*/
|
|
11
29
|
EnvVariables["FRONTEGG_CLIENT_ID"] = "FRONTEGG_CLIENT_ID";
|
|
30
|
+
/**
|
|
31
|
+
* Your Frontegg application ID, get it by visit:
|
|
32
|
+
* - For Dev environment [visit](https://portal.frontegg.com/development/applications)
|
|
33
|
+
* - For Prod environment [visit](https://portal.frontegg.com/production/applications)
|
|
34
|
+
*/
|
|
12
35
|
EnvVariables["FRONTEGG_APP_ID"] = "FRONTEGG_APP_ID";
|
|
36
|
+
/**
|
|
37
|
+
* Rewrite the cookie name by the Frontegg application ID
|
|
38
|
+
* to support multiple Frontegg applications with same domain
|
|
39
|
+
*/
|
|
13
40
|
EnvVariables["FRONTEGG_REWRITE_COOKIE_BY_APP_ID"] = "FRONTEGG_REWRITE_COOKIE_BY_APP_ID";
|
|
41
|
+
/**
|
|
42
|
+
* Your Frontegg application's Client Secret, get it by visit:
|
|
43
|
+
* - For Dev environment [visit](https://portal.frontegg.com/development/settings/general)
|
|
44
|
+
* - For Prod environment [visit](https://portal.frontegg.com/production/settings/general)
|
|
45
|
+
*/
|
|
14
46
|
EnvVariables["FRONTEGG_CLIENT_SECRET"] = "FRONTEGG_CLIENT_SECRET";
|
|
47
|
+
/**
|
|
48
|
+
* Your Frontegg application's Shared Secret, get it by visit:
|
|
49
|
+
* - For Dev environment [visit](https://portal.frontegg.com/development/applications/[YOUR_APP_ID])
|
|
50
|
+
* - For Prod environment [visit](https://portal.frontegg.com/production/applications/[YOUR_APP_ID])
|
|
51
|
+
*/
|
|
15
52
|
EnvVariables["FRONTEGG_SHARED_SECRET"] = "FRONTEGG_SHARED_SECRET";
|
|
53
|
+
/**
|
|
54
|
+
* The stateless session encryption password, used to encrypt
|
|
55
|
+
* JWT before sending it to the client side.
|
|
56
|
+
*
|
|
57
|
+
* For quick password generation use the following command:
|
|
58
|
+
*
|
|
59
|
+
* ```sh
|
|
60
|
+
* node -e "console.log(crypto.randomBytes(32).toString('hex'))"
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
16
63
|
EnvVariables["FRONTEGG_ENCRYPTION_PASSWORD"] = "FRONTEGG_ENCRYPTION_PASSWORD";
|
|
64
|
+
/**
|
|
65
|
+
* The JWT public key generated by frontegg, to verify JWT before create session,
|
|
66
|
+
* get it by visit: https://[YOUR_FRONTEGG_FOMAIN]/.well-known/jwks.json.
|
|
67
|
+
*
|
|
68
|
+
* Then: Copy and Paste the first key from the response:
|
|
69
|
+
* {keys: [{__KEY__}]}
|
|
70
|
+
*/
|
|
17
71
|
EnvVariables["FRONTEGG_JWT_PUBLIC_KEY"] = "FRONTEGG_JWT_PUBLIC_KEY";
|
|
72
|
+
/**
|
|
73
|
+
* The stateless cookie name for storing the encrypted JWT
|
|
74
|
+
* value as session cookies for supporting getServerSideProps and ServerComponents
|
|
75
|
+
*/
|
|
18
76
|
EnvVariables["FRONTEGG_COOKIE_NAME"] = "FRONTEGG_COOKIE_NAME";
|
|
77
|
+
/**
|
|
78
|
+
* The stateless cookie domain for storing the encrypted JWT
|
|
79
|
+
* value as session cookies for supporting getServerSideProps and ServerComponents
|
|
80
|
+
*/
|
|
19
81
|
EnvVariables["FRONTEGG_COOKIE_DOMAIN"] = "FRONTEGG_COOKIE_DOMAIN";
|
|
82
|
+
/**
|
|
83
|
+
* The stateless cookie same site value for storing the encrypted JWT
|
|
84
|
+
* default is none, you can set it to 'lax' or 'strict' for more security
|
|
85
|
+
*/
|
|
20
86
|
EnvVariables["FRONTEGG_COOKIE_SAME_SITE"] = "FRONTEGG_COOKIE_SAME_SITE";
|
|
87
|
+
/**
|
|
88
|
+
* When `true`, the initial props will not refresh access token if it's valid.
|
|
89
|
+
*/
|
|
21
90
|
EnvVariables["DISABLE_INITIAL_PROPS_REFRESH_TOKEN"] = "DISABLE_INITIAL_PROPS_REFRESH_TOKEN";
|
|
91
|
+
/**
|
|
92
|
+
* Enable secure JWT by removing the signature from the JWT token.
|
|
93
|
+
* In order to enable this feature, you need to provide {@link EnvVariables.FRONTEGG_CLIENT_SECRET}
|
|
94
|
+
*/
|
|
22
95
|
EnvVariables["FRONTEGG_SECURE_JWT_ENABLED"] = "FRONTEGG_SECURE_JWT_ENABLED";
|
|
96
|
+
/**
|
|
97
|
+
* The Frontegg Hosted Login URL, used to redirect the user to the Frontegg login page
|
|
98
|
+
* set to 'true' to enable the hosted login feature
|
|
99
|
+
*/
|
|
23
100
|
EnvVariables["FRONTEGG_HOSTED_LOGIN"] = "FRONTEGG_HOSTED_LOGIN";
|
|
101
|
+
/**
|
|
102
|
+
* Forward client IP address to Frontegg gateway, used to detect the client's IP address
|
|
103
|
+
* when the Next.js application using frontegg middleware proxy service
|
|
104
|
+
* In order to enable this feature, you need to provide {@link EnvVariables.FRONTEGG_SHARED_SECRET}
|
|
105
|
+
*/
|
|
24
106
|
EnvVariables["FRONTEGG_FORWARD_IP"] = "FRONTEGG_FORWARD_IP";
|
|
107
|
+
/**
|
|
108
|
+
* Where the Nextjs build output will be stored as static files
|
|
109
|
+
* for SSG and ISR pages, this env variable will disable environment variables
|
|
110
|
+
* checking and will not throw an error if the env variables are for SSR
|
|
111
|
+
*
|
|
112
|
+
* NOTE: you cannot use this env with SSR.
|
|
113
|
+
*/
|
|
25
114
|
EnvVariables["FRONTEGG_SSG_EXPORT"] = "FRONTEGG_SSG_EXPORT";
|
|
115
|
+
/**
|
|
116
|
+
* This Env variable assign automatically when deploying you Next.js application
|
|
117
|
+
* to Vercel deployments service, and will be used to detect to dynamically configure
|
|
118
|
+
* the {@link EnvVariables.FRONTEGG_APP_URL}
|
|
119
|
+
*
|
|
120
|
+
* @see [Vercel Environment Variables](https://vercel.com/docs/concepts/projects/environment-variables#system-environment-variables)
|
|
121
|
+
*/
|
|
26
122
|
EnvVariables["VERCEL"] = "VERCEL";
|
|
27
123
|
EnvVariables["VERCEL_URL"] = "VERCEL_URL";
|
|
28
124
|
return EnvVariables;
|
package/config/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["EnvVariables","exports"],"sources":["../../../../packages/nextjs/src/config/constants.ts"],"sourcesContent":["export enum EnvVariables {\n /**\n * The AppUrl is to tell Frontegg your application's app url\n * for generating cookies and proxy http requests\n */\n FRONTEGG_APP_URL = 'FRONTEGG_APP_URL',\n /**\n * The Frontegg domain is your unique URL to connect to the Frontegg gateway, get it by visit:\n * - For Dev environment [visit](https://portal.frontegg.com/development/settings/domains)\n * - For Prod environment [visit](https://portal.frontegg.com/production/settings/domains)\n */\n FRONTEGG_BASE_URL = 'FRONTEGG_BASE_URL',\n /**\n * The Frontegg test domain used for testing proxy middleware\n * @private for Frontegg\n */\n FRONTEGG_TEST_URL = 'FRONTEGG_TEST_URL',\n\n /**\n * Your Frontegg application's Client ID, get it by visit:\n * - For Dev environment [visit](https://portal.frontegg.com/development/settings/general)\n * - For Prod environment [visit](https://portal.frontegg.com/production/settings/general)\n */\n FRONTEGG_CLIENT_ID = 'FRONTEGG_CLIENT_ID',\n\n /**\n * Your Frontegg application ID, get it by visit:\n * - For Dev environment [visit](https://portal.frontegg.com/development/applications)\n * - For Prod environment [visit](https://portal.frontegg.com/production/applications)\n */\n FRONTEGG_APP_ID = 'FRONTEGG_APP_ID',\n\n /**\n * Rewrite the cookie name by the Frontegg application ID\n * to support multiple Frontegg applications with same domain\n */\n FRONTEGG_REWRITE_COOKIE_BY_APP_ID = 'FRONTEGG_REWRITE_COOKIE_BY_APP_ID',\n\n /**\n * Your Frontegg application's Client Secret, get it by visit:\n * - For Dev environment [visit](https://portal.frontegg.com/development/settings/general)\n * - For Prod environment [visit](https://portal.frontegg.com/production/settings/general)\n */\n FRONTEGG_CLIENT_SECRET = 'FRONTEGG_CLIENT_SECRET',\n\n /**\n * Your Frontegg application's Shared Secret, get it by visit:\n * - For Dev environment [visit](https://portal.frontegg.com/development/applications/[YOUR_APP_ID])\n * - For Prod environment [visit](https://portal.frontegg.com/production/applications/[YOUR_APP_ID])\n */\n FRONTEGG_SHARED_SECRET = 'FRONTEGG_SHARED_SECRET',\n\n /**\n * The stateless session encryption password, used to encrypt\n * JWT before sending it to the client side.\n *\n * For quick password generation use the following command:\n *\n * ```sh\n * node -e \"console.log(crypto.randomBytes(32).toString('hex'))\"\n * ```\n */\n FRONTEGG_ENCRYPTION_PASSWORD = 'FRONTEGG_ENCRYPTION_PASSWORD',\n\n /**\n * The JWT public key generated by frontegg, to verify JWT before create session,\n * get it by visit: https://[YOUR_FRONTEGG_FOMAIN]/.well-known/jwks.json.\n *\n * Then: Copy and Paste the first key from the response:\n * {keys: [{__KEY__}]}\n */\n FRONTEGG_JWT_PUBLIC_KEY = 'FRONTEGG_JWT_PUBLIC_KEY',\n\n /**\n * The stateless cookie name for storing the encrypted JWT\n * value as session cookies for supporting getServerSideProps and ServerComponents\n */\n FRONTEGG_COOKIE_NAME = 'FRONTEGG_COOKIE_NAME',\n\n /**\n * The stateless cookie domain for storing the encrypted JWT\n * value as session cookies for supporting getServerSideProps and ServerComponents\n */\n FRONTEGG_COOKIE_DOMAIN = 'FRONTEGG_COOKIE_DOMAIN',\n\n /**\n * The stateless cookie same site value for storing the encrypted JWT\n * default is none, you can set it to 'lax' or 'strict' for more security\n */\n FRONTEGG_COOKIE_SAME_SITE = 'FRONTEGG_COOKIE_SAME_SITE',\n\n /**\n * When `true`, the initial props will not refresh access token if it's valid.\n */\n DISABLE_INITIAL_PROPS_REFRESH_TOKEN = 'DISABLE_INITIAL_PROPS_REFRESH_TOKEN',\n\n /**\n * Enable secure JWT by removing the signature from the JWT token.\n * In order to enable this feature, you need to provide {@link EnvVariables.FRONTEGG_CLIENT_SECRET}\n */\n FRONTEGG_SECURE_JWT_ENABLED = 'FRONTEGG_SECURE_JWT_ENABLED',\n\n /**\n * The Frontegg Hosted Login URL, used to redirect the user to the Frontegg login page\n * set to 'true' to enable the hosted login feature\n */\n FRONTEGG_HOSTED_LOGIN = 'FRONTEGG_HOSTED_LOGIN',\n\n /**\n * Forward client IP address to Frontegg gateway, used to detect the client's IP address\n * when the Next.js application using frontegg middleware proxy service\n * In order to enable this feature, you need to provide {@link EnvVariables.FRONTEGG_SHARED_SECRET}\n */\n FRONTEGG_FORWARD_IP = 'FRONTEGG_FORWARD_IP',\n\n /**\n * Where the Nextjs build output will be stored as static files\n * for SSG and ISR pages, this env variable will disable environment variables\n * checking and will not throw an error if the env variables are for SSR\n *\n * NOTE: you cannot use this env with SSR.\n */\n FRONTEGG_SSG_EXPORT = 'FRONTEGG_SSG_EXPORT',\n /**\n * This Env variable assign automatically when deploying you Next.js application\n * to Vercel deployments service, and will be used to detect to dynamically configure\n * the {@link EnvVariables.FRONTEGG_APP_URL}\n *\n * @see [Vercel Environment Variables](https://vercel.com/docs/concepts/projects/environment-variables#system-environment-variables)\n */\n VERCEL = 'VERCEL',\n VERCEL_URL = 'VERCEL_URL',\n}\n"],"mappings":";;;;;;IAAYA,YAAY,GAAAC,OAAA,CAAAD,YAAA,0BAAZA,YAAY;
|
|
1
|
+
{"version":3,"file":"constants.js","names":["EnvVariables","exports"],"sources":["../../../../packages/nextjs/src/config/constants.ts"],"sourcesContent":["export enum EnvVariables {\n /**\n * The AppUrl is to tell Frontegg your application's app url\n * for generating cookies and proxy http requests\n */\n FRONTEGG_APP_URL = 'FRONTEGG_APP_URL',\n /**\n * The Frontegg domain is your unique URL to connect to the Frontegg gateway, get it by visit:\n * - For Dev environment [visit](https://portal.frontegg.com/development/settings/domains)\n * - For Prod environment [visit](https://portal.frontegg.com/production/settings/domains)\n */\n FRONTEGG_BASE_URL = 'FRONTEGG_BASE_URL',\n /**\n * The Frontegg test domain used for testing proxy middleware\n * @private for Frontegg\n */\n FRONTEGG_TEST_URL = 'FRONTEGG_TEST_URL',\n\n /**\n * Your Frontegg application's Client ID, get it by visit:\n * - For Dev environment [visit](https://portal.frontegg.com/development/settings/general)\n * - For Prod environment [visit](https://portal.frontegg.com/production/settings/general)\n */\n FRONTEGG_CLIENT_ID = 'FRONTEGG_CLIENT_ID',\n\n /**\n * Your Frontegg application ID, get it by visit:\n * - For Dev environment [visit](https://portal.frontegg.com/development/applications)\n * - For Prod environment [visit](https://portal.frontegg.com/production/applications)\n */\n FRONTEGG_APP_ID = 'FRONTEGG_APP_ID',\n\n /**\n * Rewrite the cookie name by the Frontegg application ID\n * to support multiple Frontegg applications with same domain\n */\n FRONTEGG_REWRITE_COOKIE_BY_APP_ID = 'FRONTEGG_REWRITE_COOKIE_BY_APP_ID',\n\n /**\n * Your Frontegg application's Client Secret, get it by visit:\n * - For Dev environment [visit](https://portal.frontegg.com/development/settings/general)\n * - For Prod environment [visit](https://portal.frontegg.com/production/settings/general)\n */\n FRONTEGG_CLIENT_SECRET = 'FRONTEGG_CLIENT_SECRET',\n\n /**\n * Your Frontegg application's Shared Secret, get it by visit:\n * - For Dev environment [visit](https://portal.frontegg.com/development/applications/[YOUR_APP_ID])\n * - For Prod environment [visit](https://portal.frontegg.com/production/applications/[YOUR_APP_ID])\n */\n FRONTEGG_SHARED_SECRET = 'FRONTEGG_SHARED_SECRET',\n\n /**\n * The stateless session encryption password, used to encrypt\n * JWT before sending it to the client side.\n *\n * For quick password generation use the following command:\n *\n * ```sh\n * node -e \"console.log(crypto.randomBytes(32).toString('hex'))\"\n * ```\n */\n FRONTEGG_ENCRYPTION_PASSWORD = 'FRONTEGG_ENCRYPTION_PASSWORD',\n\n /**\n * The JWT public key generated by frontegg, to verify JWT before create session,\n * get it by visit: https://[YOUR_FRONTEGG_FOMAIN]/.well-known/jwks.json.\n *\n * Then: Copy and Paste the first key from the response:\n * {keys: [{__KEY__}]}\n */\n FRONTEGG_JWT_PUBLIC_KEY = 'FRONTEGG_JWT_PUBLIC_KEY',\n\n /**\n * The stateless cookie name for storing the encrypted JWT\n * value as session cookies for supporting getServerSideProps and ServerComponents\n */\n FRONTEGG_COOKIE_NAME = 'FRONTEGG_COOKIE_NAME',\n\n /**\n * The stateless cookie domain for storing the encrypted JWT\n * value as session cookies for supporting getServerSideProps and ServerComponents\n */\n FRONTEGG_COOKIE_DOMAIN = 'FRONTEGG_COOKIE_DOMAIN',\n\n /**\n * The stateless cookie same site value for storing the encrypted JWT\n * default is none, you can set it to 'lax' or 'strict' for more security\n */\n FRONTEGG_COOKIE_SAME_SITE = 'FRONTEGG_COOKIE_SAME_SITE',\n\n /**\n * When `true`, the initial props will not refresh access token if it's valid.\n */\n DISABLE_INITIAL_PROPS_REFRESH_TOKEN = 'DISABLE_INITIAL_PROPS_REFRESH_TOKEN',\n\n /**\n * Enable secure JWT by removing the signature from the JWT token.\n * In order to enable this feature, you need to provide {@link EnvVariables.FRONTEGG_CLIENT_SECRET}\n */\n FRONTEGG_SECURE_JWT_ENABLED = 'FRONTEGG_SECURE_JWT_ENABLED',\n\n /**\n * The Frontegg Hosted Login URL, used to redirect the user to the Frontegg login page\n * set to 'true' to enable the hosted login feature\n */\n FRONTEGG_HOSTED_LOGIN = 'FRONTEGG_HOSTED_LOGIN',\n\n /**\n * Forward client IP address to Frontegg gateway, used to detect the client's IP address\n * when the Next.js application using frontegg middleware proxy service\n * In order to enable this feature, you need to provide {@link EnvVariables.FRONTEGG_SHARED_SECRET}\n */\n FRONTEGG_FORWARD_IP = 'FRONTEGG_FORWARD_IP',\n\n /**\n * Where the Nextjs build output will be stored as static files\n * for SSG and ISR pages, this env variable will disable environment variables\n * checking and will not throw an error if the env variables are for SSR\n *\n * NOTE: you cannot use this env with SSR.\n */\n FRONTEGG_SSG_EXPORT = 'FRONTEGG_SSG_EXPORT',\n /**\n * This Env variable assign automatically when deploying you Next.js application\n * to Vercel deployments service, and will be used to detect to dynamically configure\n * the {@link EnvVariables.FRONTEGG_APP_URL}\n *\n * @see [Vercel Environment Variables](https://vercel.com/docs/concepts/projects/environment-variables#system-environment-variables)\n */\n VERCEL = 'VERCEL',\n VERCEL_URL = 'VERCEL_URL',\n}\n"],"mappings":";;;;;;IAAYA,YAAY,GAAAC,OAAA,CAAAD,YAAA,0BAAZA,YAAY;EACtB;AACF;AACA;AACA;EAJYA,YAAY;EAMtB;AACF;AACA;AACA;AACA;EAVYA,YAAY;EAYtB;AACF;AACA;AACA;EAfYA,YAAY;EAkBtB;AACF;AACA;AACA;AACA;EAtBYA,YAAY;EAyBtB;AACF;AACA;AACA;AACA;EA7BYA,YAAY;EAgCtB;AACF;AACA;AACA;EAnCYA,YAAY;EAsCtB;AACF;AACA;AACA;AACA;EA1CYA,YAAY;EA6CtB;AACF;AACA;AACA;AACA;EAjDYA,YAAY;EAoDtB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EA7DYA,YAAY;EAgEtB;AACF;AACA;AACA;AACA;AACA;AACA;EAtEYA,YAAY;EAyEtB;AACF;AACA;AACA;EA5EYA,YAAY;EA+EtB;AACF;AACA;AACA;EAlFYA,YAAY;EAqFtB;AACF;AACA;AACA;EAxFYA,YAAY;EA2FtB;AACF;AACA;EA7FYA,YAAY;EAgGtB;AACF;AACA;AACA;EAnGYA,YAAY;EAsGtB;AACF;AACA;AACA;EAzGYA,YAAY;EA4GtB;AACF;AACA;AACA;AACA;EAhHYA,YAAY;EAmHtB;AACF;AACA;AACA;AACA;AACA;AACA;EAzHYA,YAAY;EA2HtB;AACF;AACA;AACA;AACA;AACA;AACA;EAjIYA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
|
package/config/index.js
CHANGED
package/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_helpers","require","_constants","_errors","setupEnvVariables","FRONTEGG_APP_URL","process","env","FRONTEGG_BASE_URL","FRONTEGG_TEST_URL","FRONTEGG_CLIENT_ID","FRONTEGG_APP_ID","FRONTEGG_REWRITE_COOKIE_BY_APP_ID","FRONTEGG_CLIENT_SECRET","FRONTEGG_SHARED_SECRET","FRONTEGG_ENCRYPTION_PASSWORD","FRONTEGG_COOKIE_NAME","FRONTEGG_COOKIE_DOMAIN","FRONTEGG_COOKIE_SAME_SITE","FRONTEGG_JWT_PUBLIC_KEY","FRONTEGG_SECURE_JWT_ENABLED","FRONTEGG_FORWARD_IP","FRONTEGG_SSG_EXPORT","DISABLE_INITIAL_PROPS_REFRESH_TOKEN","VERCEL","VERCEL_URL","Config","constructor","fronteggAppOptions","_ipResolver","isSSGExport","window","validatePassword","_getEnvOrDefault","getEnvOrDefault","EnvVariables","appUrl","generateAppUrl","testUrl","baseUrl","FronteggEnvNotFound","endsWith","slice","baseUrlHost","URL","hostname","clientId","_EnvVariables$FRONTEG","getEnv","appId","rewriteCookieByAppId","_setupEnvVariables$FR","clientSecret","_getEnv","e","secureJwtEnabled","InvalidFronteggEnv","sharedSecret","_getEnv2","shouldForwardIp","_setupEnvVariables$FR2","jwtPublicKeyJson","_getEnv3","_setupEnvVariables$FR3","cookieName","_setupEnvVariables$FR4","cookieNameEnv","replace","cookieDomain","_setupEnvVariables$FR5","generateCookieDomain","cookieSameSite","_setupEnvVariables$FR6","sameSite","authRoutes","_this$fronteggAppOpti","_this$fronteggAppOpti2","authOptions","routes","passwordMaps","password","key","Object","keys","match","length","encryptionPasswordEnv","normalizeStringPasswordToMap","isSSL","protocol","isHostedLogin","_this$fronteggAppOpti3","hostedLoginBox","FRONTEGG_HOSTED_LOGIN","isVercel","disableInitialPropsRefreshToken","ipResolver","fn","appEnvConfig","config","envAppUrl","envBaseUrl","envClientId","envAppId","envHostedLoginBox","checkHostedLoginConfig","options","undefined","Error","_default","exports","default"],"sources":["../../../../packages/nextjs/src/config/index.ts"],"sourcesContent":["import { AuthPageRoutes } from '@frontegg/redux-store';\nimport { WithFronteggAppOptions } from '../pages';\nimport { AppEnvConfig, PasswordsMap } from './types';\nimport { IpResolverFunction } from '../middleware/types';\nimport { generateAppUrl, generateCookieDomain, getEnv, getEnvOrDefault, normalizeStringPasswordToMap } from './helpers';\nimport { EnvVariables } from './constants';\nimport { FronteggEnvNotFound, InvalidFronteggEnv } from '../utils/errors';\n\nconst setupEnvVariables = {\n FRONTEGG_APP_URL: process.env.FRONTEGG_APP_URL,\n FRONTEGG_BASE_URL: process.env.FRONTEGG_BASE_URL,\n FRONTEGG_TEST_URL: process.env.FRONTEGG_TEST_URL,\n FRONTEGG_CLIENT_ID: process.env.FRONTEGG_CLIENT_ID,\n FRONTEGG_APP_ID: process.env.FRONTEGG_APP_ID,\n FRONTEGG_REWRITE_COOKIE_BY_APP_ID: process.env.FRONTEGG_REWRITE_COOKIE_BY_APP_ID,\n FRONTEGG_CLIENT_SECRET: process.env.FRONTEGG_CLIENT_SECRET,\n FRONTEGG_SHARED_SECRET: process.env.FRONTEGG_SHARED_SECRET,\n FRONTEGG_ENCRYPTION_PASSWORD: process.env.FRONTEGG_ENCRYPTION_PASSWORD,\n FRONTEGG_COOKIE_NAME: process.env.FRONTEGG_COOKIE_NAME,\n FRONTEGG_COOKIE_DOMAIN: process.env.FRONTEGG_COOKIE_DOMAIN,\n FRONTEGG_COOKIE_SAME_SITE: process.env.FRONTEGG_COOKIE_SAME_SITE,\n FRONTEGG_JWT_PUBLIC_KEY: process.env.FRONTEGG_JWT_PUBLIC_KEY,\n FRONTEGG_SECURE_JWT_ENABLED: process.env.FRONTEGG_SECURE_JWT_ENABLED,\n FRONTEGG_FORWARD_IP: process.env.FRONTEGG_FORWARD_IP,\n FRONTEGG_SSG_EXPORT: process.env.FRONTEGG_SSG_EXPORT,\n DISABLE_INITIAL_PROPS_REFRESH_TOKEN: process.env.DISABLE_INITIAL_PROPS_REFRESH_TOKEN,\n VERCEL: process.env.VERCEL,\n VERCEL_URL: process.env.VERCEL_URL,\n};\n\nclass Config {\n public fronteggAppOptions: Partial<WithFronteggAppOptions> = {};\n private _ipResolver?: IpResolverFunction;\n\n constructor() {\n if (!this.isSSGExport) {\n if (typeof window === 'undefined') {\n this.validatePassword();\n }\n }\n }\n\n get isSSGExport(): boolean {\n const isSSGExport =\n getEnvOrDefault(EnvVariables.FRONTEGG_SSG_EXPORT, setupEnvVariables.FRONTEGG_SSG_EXPORT) ?? 'false';\n return isSSGExport === 'true';\n }\n\n get appUrl(): string {\n return generateAppUrl();\n }\n\n get testUrl(): string | undefined {\n return getEnvOrDefault(EnvVariables.FRONTEGG_TEST_URL, setupEnvVariables.FRONTEGG_TEST_URL);\n }\n\n get baseUrl(): string {\n const baseUrl = getEnvOrDefault(EnvVariables.FRONTEGG_BASE_URL, setupEnvVariables.FRONTEGG_BASE_URL);\n if (!baseUrl) {\n throw new FronteggEnvNotFound(EnvVariables.FRONTEGG_BASE_URL);\n }\n if (baseUrl.endsWith('/')) {\n return baseUrl.slice(0, -1);\n }\n return baseUrl;\n }\n\n get baseUrlHost(): string {\n return new URL(this.baseUrl).hostname;\n }\n\n get clientId(): string {\n const clientId = getEnv(EnvVariables.FRONTEGG_CLIENT_ID ?? setupEnvVariables.FRONTEGG_CLIENT_ID);\n if (!clientId) {\n throw new FronteggEnvNotFound(EnvVariables.FRONTEGG_CLIENT_ID);\n }\n return clientId;\n }\n\n get appId(): string | undefined {\n return getEnvOrDefault(EnvVariables.FRONTEGG_APP_ID, setupEnvVariables.FRONTEGG_APP_ID);\n }\n\n get rewriteCookieByAppId(): boolean {\n return (\n getEnvOrDefault(\n EnvVariables.FRONTEGG_REWRITE_COOKIE_BY_APP_ID,\n setupEnvVariables.FRONTEGG_REWRITE_COOKIE_BY_APP_ID ?? 'false'\n ) === 'true'\n );\n }\n\n get clientSecret(): string | undefined {\n let clientSecret;\n try {\n clientSecret = getEnv(EnvVariables.FRONTEGG_CLIENT_SECRET) ?? setupEnvVariables.FRONTEGG_CLIENT_SECRET;\n } catch (e) {\n clientSecret = setupEnvVariables.FRONTEGG_CLIENT_SECRET;\n }\n\n if (this.secureJwtEnabled && !clientSecret) {\n throw new InvalidFronteggEnv(\n EnvVariables.FRONTEGG_CLIENT_SECRET,\n 'Client secret is required when secure JWT is enabled'\n );\n }\n return clientSecret;\n }\n\n get sharedSecret(): string | undefined {\n let sharedSecret;\n try {\n sharedSecret = getEnv(EnvVariables.FRONTEGG_SHARED_SECRET) ?? setupEnvVariables.FRONTEGG_SHARED_SECRET;\n } catch (e) {\n sharedSecret = setupEnvVariables.FRONTEGG_SHARED_SECRET;\n }\n\n return sharedSecret;\n }\n\n get shouldForwardIp(): boolean {\n return (\n getEnvOrDefault(EnvVariables.FRONTEGG_FORWARD_IP, setupEnvVariables.FRONTEGG_FORWARD_IP ?? 'false') === 'true'\n );\n }\n\n get jwtPublicKeyJson(): string | undefined {\n return getEnv(EnvVariables.FRONTEGG_JWT_PUBLIC_KEY) ?? setupEnvVariables.FRONTEGG_JWT_PUBLIC_KEY;\n }\n\n get secureJwtEnabled(): boolean {\n return (\n getEnvOrDefault(\n EnvVariables.FRONTEGG_SECURE_JWT_ENABLED,\n setupEnvVariables.FRONTEGG_SECURE_JWT_ENABLED ?? 'false'\n ) == 'true'\n );\n }\n\n get cookieName(): string {\n const cookieNameEnv = getEnvOrDefault(\n EnvVariables.FRONTEGG_COOKIE_NAME,\n setupEnvVariables.FRONTEGG_COOKIE_NAME ?? 'fe_session'\n );\n\n if (this.rewriteCookieByAppId && this.appId) {\n return `${cookieNameEnv}-${this.appId.replace(/-/g, '')}`;\n } else {\n return `${cookieNameEnv}-${this.clientId.replace(/-/g, '')}`;\n }\n }\n\n get cookieDomain(): string {\n return getEnvOrDefault(\n EnvVariables.FRONTEGG_COOKIE_DOMAIN,\n setupEnvVariables.FRONTEGG_COOKIE_DOMAIN ?? generateCookieDomain(this.appUrl)\n );\n }\n\n get cookieSameSite(): 'lax' | 'strict' | 'none' {\n let sameSite = getEnvOrDefault(\n EnvVariables.FRONTEGG_COOKIE_SAME_SITE,\n setupEnvVariables.FRONTEGG_COOKIE_SAME_SITE ?? 'none'\n );\n switch (sameSite) {\n case 'true':\n return 'strict';\n case 'false':\n return 'none';\n case 'lax':\n case 'strict':\n case 'none':\n return sameSite;\n default:\n return 'none';\n }\n }\n\n get authRoutes(): Partial<AuthPageRoutes> {\n return this.fronteggAppOptions?.authOptions?.routes ?? {};\n }\n\n private validatePassword() {\n const passwordMaps = this.password;\n for (let key of Object.keys(passwordMaps)) {\n const password = passwordMaps[key];\n if (!password.match(/[0-9A-Fa-f]{6}/g) || password.length !== 64) {\n throw new InvalidFronteggEnv(\n EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD,\n `Hex string.\\n\\nFor quick password generation use the following command:\\nnode -e \"console.log(crypto.randomBytes(32).toString('hex'))\"`\n );\n }\n }\n }\n\n get password(): PasswordsMap {\n const encryptionPasswordEnv = getEnvOrDefault(\n EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD,\n setupEnvVariables.FRONTEGG_ENCRYPTION_PASSWORD\n );\n\n if (!encryptionPasswordEnv) {\n throw new InvalidFronteggEnv(\n EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD,\n `Hex string.\\n\\nFor quick password generation use the following command:\\nnode -e \"console.log(crypto.randomBytes(32).toString('hex'))\"`\n );\n }\n return normalizeStringPasswordToMap(encryptionPasswordEnv);\n }\n\n get isSSL(): boolean {\n return new URL(this.appUrl).protocol === 'https:';\n }\n\n get isHostedLogin(): boolean {\n return (\n this.fronteggAppOptions.hostedLoginBox ?? getEnvOrDefault(EnvVariables.FRONTEGG_HOSTED_LOGIN, 'false') === 'true'\n );\n }\n\n get isVercel(): boolean {\n return getEnvOrDefault(EnvVariables.VERCEL, setupEnvVariables.VERCEL) === '1';\n }\n\n get disableInitialPropsRefreshToken(): boolean {\n const disableInitialPropsRefreshToken = getEnvOrDefault(\n EnvVariables.DISABLE_INITIAL_PROPS_REFRESH_TOKEN,\n setupEnvVariables.DISABLE_INITIAL_PROPS_REFRESH_TOKEN\n );\n return disableInitialPropsRefreshToken === 'true';\n }\n\n get ipResolver(): IpResolverFunction | undefined {\n return this._ipResolver;\n }\n\n set ipResolver(fn: IpResolverFunction | undefined) {\n this._ipResolver = fn;\n }\n\n get appEnvConfig(): AppEnvConfig {\n const config = {\n envAppUrl: this.appUrl,\n envBaseUrl: this.baseUrl,\n envClientId: this.clientId,\n envAppId: this.appId,\n secureJwtEnabled: this.secureJwtEnabled,\n envHostedLoginBox: this.isHostedLogin,\n };\n return config;\n }\n\n checkHostedLoginConfig(options: WithFronteggAppOptions | undefined) {\n // noinspection JSDeprecatedSymbols\n if (options?.hostedLoginBox === undefined) {\n return;\n }\n // noinspection JSDeprecatedSymbols\n if (options.hostedLoginBox != this.isHostedLogin) {\n throw new Error(\n 'There is mismatch between FRONTEGG_HOSTED_LOGIN environment variable and withFronteggOptions, ' +\n 'please remove the hostedLoginBox from withFronteggOptions and use the FRONTEGG_HOSTED_LOGIN environment variable instead.'\n );\n }\n }\n}\n\nexport { EnvVariables } from './constants';\nexport default new Config();\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_helpers","require","_constants","_errors","setupEnvVariables","FRONTEGG_APP_URL","process","env","FRONTEGG_BASE_URL","FRONTEGG_TEST_URL","FRONTEGG_CLIENT_ID","FRONTEGG_APP_ID","FRONTEGG_REWRITE_COOKIE_BY_APP_ID","FRONTEGG_CLIENT_SECRET","FRONTEGG_SHARED_SECRET","FRONTEGG_ENCRYPTION_PASSWORD","FRONTEGG_COOKIE_NAME","FRONTEGG_COOKIE_DOMAIN","FRONTEGG_COOKIE_SAME_SITE","FRONTEGG_JWT_PUBLIC_KEY","FRONTEGG_SECURE_JWT_ENABLED","FRONTEGG_FORWARD_IP","FRONTEGG_SSG_EXPORT","DISABLE_INITIAL_PROPS_REFRESH_TOKEN","VERCEL","VERCEL_URL","Config","constructor","fronteggAppOptions","isSSGExport","window","validatePassword","_getEnvOrDefault","getEnvOrDefault","EnvVariables","appUrl","generateAppUrl","testUrl","baseUrl","FronteggEnvNotFound","endsWith","slice","baseUrlHost","URL","hostname","clientId","_EnvVariables$FRONTEG","getEnv","appId","rewriteCookieByAppId","_setupEnvVariables$FR","clientSecret","_getEnv","e","secureJwtEnabled","InvalidFronteggEnv","sharedSecret","_getEnv2","shouldForwardIp","_setupEnvVariables$FR2","jwtPublicKeyJson","_getEnv3","_setupEnvVariables$FR3","cookieName","_setupEnvVariables$FR4","cookieNameEnv","replace","cookieDomain","_setupEnvVariables$FR5","generateCookieDomain","cookieSameSite","_setupEnvVariables$FR6","sameSite","authRoutes","_this$fronteggAppOpti","_this$fronteggAppOpti2","authOptions","routes","passwordMaps","password","key","Object","keys","match","length","encryptionPasswordEnv","normalizeStringPasswordToMap","isSSL","protocol","isHostedLogin","_this$fronteggAppOpti3","hostedLoginBox","FRONTEGG_HOSTED_LOGIN","isVercel","disableInitialPropsRefreshToken","ipResolver","_ipResolver","fn","appEnvConfig","config","envAppUrl","envBaseUrl","envClientId","envAppId","envHostedLoginBox","checkHostedLoginConfig","options","undefined","Error","_default","exports","default"],"sources":["../../../../packages/nextjs/src/config/index.ts"],"sourcesContent":["import { AuthPageRoutes } from '@frontegg/redux-store';\nimport { WithFronteggAppOptions } from '../pages';\nimport { AppEnvConfig, PasswordsMap } from './types';\nimport { IpResolverFunction } from '../middleware/types';\nimport { generateAppUrl, generateCookieDomain, getEnv, getEnvOrDefault, normalizeStringPasswordToMap } from './helpers';\nimport { EnvVariables } from './constants';\nimport { FronteggEnvNotFound, InvalidFronteggEnv } from '../utils/errors';\n\nconst setupEnvVariables = {\n FRONTEGG_APP_URL: process.env.FRONTEGG_APP_URL,\n FRONTEGG_BASE_URL: process.env.FRONTEGG_BASE_URL,\n FRONTEGG_TEST_URL: process.env.FRONTEGG_TEST_URL,\n FRONTEGG_CLIENT_ID: process.env.FRONTEGG_CLIENT_ID,\n FRONTEGG_APP_ID: process.env.FRONTEGG_APP_ID,\n FRONTEGG_REWRITE_COOKIE_BY_APP_ID: process.env.FRONTEGG_REWRITE_COOKIE_BY_APP_ID,\n FRONTEGG_CLIENT_SECRET: process.env.FRONTEGG_CLIENT_SECRET,\n FRONTEGG_SHARED_SECRET: process.env.FRONTEGG_SHARED_SECRET,\n FRONTEGG_ENCRYPTION_PASSWORD: process.env.FRONTEGG_ENCRYPTION_PASSWORD,\n FRONTEGG_COOKIE_NAME: process.env.FRONTEGG_COOKIE_NAME,\n FRONTEGG_COOKIE_DOMAIN: process.env.FRONTEGG_COOKIE_DOMAIN,\n FRONTEGG_COOKIE_SAME_SITE: process.env.FRONTEGG_COOKIE_SAME_SITE,\n FRONTEGG_JWT_PUBLIC_KEY: process.env.FRONTEGG_JWT_PUBLIC_KEY,\n FRONTEGG_SECURE_JWT_ENABLED: process.env.FRONTEGG_SECURE_JWT_ENABLED,\n FRONTEGG_FORWARD_IP: process.env.FRONTEGG_FORWARD_IP,\n FRONTEGG_SSG_EXPORT: process.env.FRONTEGG_SSG_EXPORT,\n DISABLE_INITIAL_PROPS_REFRESH_TOKEN: process.env.DISABLE_INITIAL_PROPS_REFRESH_TOKEN,\n VERCEL: process.env.VERCEL,\n VERCEL_URL: process.env.VERCEL_URL,\n};\n\nclass Config {\n public fronteggAppOptions: Partial<WithFronteggAppOptions> = {};\n private _ipResolver?: IpResolverFunction;\n\n constructor() {\n if (!this.isSSGExport) {\n if (typeof window === 'undefined') {\n this.validatePassword();\n }\n }\n }\n\n get isSSGExport(): boolean {\n const isSSGExport =\n getEnvOrDefault(EnvVariables.FRONTEGG_SSG_EXPORT, setupEnvVariables.FRONTEGG_SSG_EXPORT) ?? 'false';\n return isSSGExport === 'true';\n }\n\n get appUrl(): string {\n return generateAppUrl();\n }\n\n get testUrl(): string | undefined {\n return getEnvOrDefault(EnvVariables.FRONTEGG_TEST_URL, setupEnvVariables.FRONTEGG_TEST_URL);\n }\n\n get baseUrl(): string {\n const baseUrl = getEnvOrDefault(EnvVariables.FRONTEGG_BASE_URL, setupEnvVariables.FRONTEGG_BASE_URL);\n if (!baseUrl) {\n throw new FronteggEnvNotFound(EnvVariables.FRONTEGG_BASE_URL);\n }\n if (baseUrl.endsWith('/')) {\n return baseUrl.slice(0, -1);\n }\n return baseUrl;\n }\n\n get baseUrlHost(): string {\n return new URL(this.baseUrl).hostname;\n }\n\n get clientId(): string {\n const clientId = getEnv(EnvVariables.FRONTEGG_CLIENT_ID ?? setupEnvVariables.FRONTEGG_CLIENT_ID);\n if (!clientId) {\n throw new FronteggEnvNotFound(EnvVariables.FRONTEGG_CLIENT_ID);\n }\n return clientId;\n }\n\n get appId(): string | undefined {\n return getEnvOrDefault(EnvVariables.FRONTEGG_APP_ID, setupEnvVariables.FRONTEGG_APP_ID);\n }\n\n get rewriteCookieByAppId(): boolean {\n return (\n getEnvOrDefault(\n EnvVariables.FRONTEGG_REWRITE_COOKIE_BY_APP_ID,\n setupEnvVariables.FRONTEGG_REWRITE_COOKIE_BY_APP_ID ?? 'false'\n ) === 'true'\n );\n }\n\n get clientSecret(): string | undefined {\n let clientSecret;\n try {\n clientSecret = getEnv(EnvVariables.FRONTEGG_CLIENT_SECRET) ?? setupEnvVariables.FRONTEGG_CLIENT_SECRET;\n } catch (e) {\n clientSecret = setupEnvVariables.FRONTEGG_CLIENT_SECRET;\n }\n\n if (this.secureJwtEnabled && !clientSecret) {\n throw new InvalidFronteggEnv(\n EnvVariables.FRONTEGG_CLIENT_SECRET,\n 'Client secret is required when secure JWT is enabled'\n );\n }\n return clientSecret;\n }\n\n get sharedSecret(): string | undefined {\n let sharedSecret;\n try {\n sharedSecret = getEnv(EnvVariables.FRONTEGG_SHARED_SECRET) ?? setupEnvVariables.FRONTEGG_SHARED_SECRET;\n } catch (e) {\n sharedSecret = setupEnvVariables.FRONTEGG_SHARED_SECRET;\n }\n\n return sharedSecret;\n }\n\n get shouldForwardIp(): boolean {\n return (\n getEnvOrDefault(EnvVariables.FRONTEGG_FORWARD_IP, setupEnvVariables.FRONTEGG_FORWARD_IP ?? 'false') === 'true'\n );\n }\n\n get jwtPublicKeyJson(): string | undefined {\n return getEnv(EnvVariables.FRONTEGG_JWT_PUBLIC_KEY) ?? setupEnvVariables.FRONTEGG_JWT_PUBLIC_KEY;\n }\n\n get secureJwtEnabled(): boolean {\n return (\n getEnvOrDefault(\n EnvVariables.FRONTEGG_SECURE_JWT_ENABLED,\n setupEnvVariables.FRONTEGG_SECURE_JWT_ENABLED ?? 'false'\n ) == 'true'\n );\n }\n\n get cookieName(): string {\n const cookieNameEnv = getEnvOrDefault(\n EnvVariables.FRONTEGG_COOKIE_NAME,\n setupEnvVariables.FRONTEGG_COOKIE_NAME ?? 'fe_session'\n );\n\n if (this.rewriteCookieByAppId && this.appId) {\n return `${cookieNameEnv}-${this.appId.replace(/-/g, '')}`;\n } else {\n return `${cookieNameEnv}-${this.clientId.replace(/-/g, '')}`;\n }\n }\n\n get cookieDomain(): string {\n return getEnvOrDefault(\n EnvVariables.FRONTEGG_COOKIE_DOMAIN,\n setupEnvVariables.FRONTEGG_COOKIE_DOMAIN ?? generateCookieDomain(this.appUrl)\n );\n }\n\n get cookieSameSite(): 'lax' | 'strict' | 'none' {\n let sameSite = getEnvOrDefault(\n EnvVariables.FRONTEGG_COOKIE_SAME_SITE,\n setupEnvVariables.FRONTEGG_COOKIE_SAME_SITE ?? 'none'\n );\n switch (sameSite) {\n case 'true':\n return 'strict';\n case 'false':\n return 'none';\n case 'lax':\n case 'strict':\n case 'none':\n return sameSite;\n default:\n return 'none';\n }\n }\n\n get authRoutes(): Partial<AuthPageRoutes> {\n return this.fronteggAppOptions?.authOptions?.routes ?? {};\n }\n\n private validatePassword() {\n const passwordMaps = this.password;\n for (let key of Object.keys(passwordMaps)) {\n const password = passwordMaps[key];\n if (!password.match(/[0-9A-Fa-f]{6}/g) || password.length !== 64) {\n throw new InvalidFronteggEnv(\n EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD,\n `Hex string.\\n\\nFor quick password generation use the following command:\\nnode -e \"console.log(crypto.randomBytes(32).toString('hex'))\"`\n );\n }\n }\n }\n\n get password(): PasswordsMap {\n const encryptionPasswordEnv = getEnvOrDefault(\n EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD,\n setupEnvVariables.FRONTEGG_ENCRYPTION_PASSWORD\n );\n\n if (!encryptionPasswordEnv) {\n throw new InvalidFronteggEnv(\n EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD,\n `Hex string.\\n\\nFor quick password generation use the following command:\\nnode -e \"console.log(crypto.randomBytes(32).toString('hex'))\"`\n );\n }\n return normalizeStringPasswordToMap(encryptionPasswordEnv);\n }\n\n get isSSL(): boolean {\n return new URL(this.appUrl).protocol === 'https:';\n }\n\n get isHostedLogin(): boolean {\n return (\n this.fronteggAppOptions.hostedLoginBox ?? getEnvOrDefault(EnvVariables.FRONTEGG_HOSTED_LOGIN, 'false') === 'true'\n );\n }\n\n get isVercel(): boolean {\n return getEnvOrDefault(EnvVariables.VERCEL, setupEnvVariables.VERCEL) === '1';\n }\n\n get disableInitialPropsRefreshToken(): boolean {\n const disableInitialPropsRefreshToken = getEnvOrDefault(\n EnvVariables.DISABLE_INITIAL_PROPS_REFRESH_TOKEN,\n setupEnvVariables.DISABLE_INITIAL_PROPS_REFRESH_TOKEN\n );\n return disableInitialPropsRefreshToken === 'true';\n }\n\n get ipResolver(): IpResolverFunction | undefined {\n return this._ipResolver;\n }\n\n set ipResolver(fn: IpResolverFunction | undefined) {\n this._ipResolver = fn;\n }\n\n get appEnvConfig(): AppEnvConfig {\n const config = {\n envAppUrl: this.appUrl,\n envBaseUrl: this.baseUrl,\n envClientId: this.clientId,\n envAppId: this.appId,\n secureJwtEnabled: this.secureJwtEnabled,\n envHostedLoginBox: this.isHostedLogin,\n };\n return config;\n }\n\n checkHostedLoginConfig(options: WithFronteggAppOptions | undefined) {\n // noinspection JSDeprecatedSymbols\n if (options?.hostedLoginBox === undefined) {\n return;\n }\n // noinspection JSDeprecatedSymbols\n if (options.hostedLoginBox != this.isHostedLogin) {\n throw new Error(\n 'There is mismatch between FRONTEGG_HOSTED_LOGIN environment variable and withFronteggOptions, ' +\n 'please remove the hostedLoginBox from withFronteggOptions and use the FRONTEGG_HOSTED_LOGIN environment variable instead.'\n );\n }\n }\n}\n\nexport { EnvVariables } from './constants';\nexport default new Config();\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,4 +9,4 @@ import { NextResponse } from 'next/server';
|
|
|
9
9
|
* @returns {NextResponse} redirects to login page
|
|
10
10
|
*
|
|
11
11
|
*/
|
|
12
|
-
export declare const redirectToLogin: (pathname: string, searchParams?: URLSearchParams, baseUrl?: string) => NextResponse
|
|
12
|
+
export declare const redirectToLogin: (pathname: string, searchParams?: URLSearchParams, baseUrl?: string) => NextResponse<unknown>;
|