@frontegg/nextjs 9.2.2 → 9.2.3-alpha.14369211767
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/README.md +1 -0
- package/app/FronteggAppProvider.d.ts +4 -2
- package/app/FronteggAppProvider.js.map +1 -1
- package/common/FronteggBaseProvider.js +1 -1
- package/common/FronteggBaseProvider.js.map +1 -1
- package/config/constants.d.ts +8 -0
- package/config/constants.js +1 -0
- package/config/constants.js.map +1 -1
- package/config/index.d.ts +1 -0
- package/config/index.js +30 -14
- package/config/index.js.map +1 -1
- package/index.js +1 -1
- package/no-ssr/FronteggProviderNoSSR.js +37 -18
- package/no-ssr/FronteggProviderNoSSR.js.map +1 -1
- package/package.json +1 -1
- package/sdkVersion.js +1 -1
- package/sdkVersion.js.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.js.map +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { PropsWithChildren } from 'react';
|
|
1
|
+
import { PropsWithChildren, ReactNode } from 'react';
|
|
2
2
|
import { ClientFronteggProviderProps } from '../types';
|
|
3
|
-
export type FronteggAppProviderProps = PropsWithChildren<Omit<ClientFronteggProviderProps, 'contextOptions' | 'envAppUrl' | 'envBaseUrl' | 'envClientId'
|
|
3
|
+
export type FronteggAppProviderProps = PropsWithChildren<Omit<ClientFronteggProviderProps, 'contextOptions' | 'envAppUrl' | 'envBaseUrl' | 'envClientId'>> & {
|
|
4
|
+
alwaysVisibleChildren?: ReactNode;
|
|
5
|
+
};
|
|
4
6
|
export declare const FronteggAppProvider: (options: FronteggAppProviderProps) => Promise<JSX.Element>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FronteggAppProvider.js","names":["_react","_interopRequireDefault","require","_ClientFronteggProvider","_helpers","_config","_fetchUserData","_getAppUrlForCustomLoginWithSubdomain","_helpers2","_fronteggLogger","_consts","_jsxRuntime","_excluded","FronteggAppProvider","options","_options$customLoginO","_options$secureJwtEna","_ref","_appEnvConfig$envHost","_config$appEnvConfig","config","appEnvConfig","envAppUrl","_objectWithoutPropertiesLoose2","default","userData","fetchUserData","getSession","getAppSession","getHeaders","getAppHeaders","subDomainAppUrl","getAppUrlForCustomLoginWithSubdomain","customLoginOptions","subDomainIndex","logger","fronteggLogger","child","tag","process","env","_userData","removeJwtSignatureFrom","session","Object","hasOwn","warn","FRONTEGG_HOSTED_LOGIN_MIGRATION_WARNING","providerProps","_extends2","shouldRequestAuthorize","secureJwtEnabled","hostedLoginBox","envHostedLoginBox","jsx","ClientFronteggProvider","exports"],"sources":["../../../../packages/nextjs/src/app/FronteggAppProvider.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { ClientFronteggProvider } from './ClientFronteggProvider';\nimport { getAppHeaders, getAppSession } from './helpers';\nimport config from '../config';\nimport fetchUserData from '../utils/fetchUserData';\nimport { ClientFronteggProviderProps } from '../types';\nimport { getAppUrlForCustomLoginWithSubdomain } from './getAppUrlForCustomLoginWithSubdomain';\nimport { removeJwtSignatureFrom } from '../middleware/helpers';\nimport fronteggLogger from '../utils/fronteggLogger';\nimport { FRONTEGG_HOSTED_LOGIN_MIGRATION_WARNING } from './consts';\n\nexport type FronteggAppProviderProps = PropsWithChildren<\n Omit<ClientFronteggProviderProps, 'contextOptions' | 'envAppUrl' | 'envBaseUrl' | 'envClientId'>\n
|
|
1
|
+
{"version":3,"file":"FronteggAppProvider.js","names":["_react","_interopRequireDefault","require","_ClientFronteggProvider","_helpers","_config","_fetchUserData","_getAppUrlForCustomLoginWithSubdomain","_helpers2","_fronteggLogger","_consts","_jsxRuntime","_excluded","FronteggAppProvider","options","_options$customLoginO","_options$secureJwtEna","_ref","_appEnvConfig$envHost","_config$appEnvConfig","config","appEnvConfig","envAppUrl","_objectWithoutPropertiesLoose2","default","userData","fetchUserData","getSession","getAppSession","getHeaders","getAppHeaders","subDomainAppUrl","getAppUrlForCustomLoginWithSubdomain","customLoginOptions","subDomainIndex","logger","fronteggLogger","child","tag","process","env","_userData","removeJwtSignatureFrom","session","Object","hasOwn","warn","FRONTEGG_HOSTED_LOGIN_MIGRATION_WARNING","providerProps","_extends2","shouldRequestAuthorize","secureJwtEnabled","hostedLoginBox","envHostedLoginBox","jsx","ClientFronteggProvider","exports"],"sources":["../../../../packages/nextjs/src/app/FronteggAppProvider.tsx"],"sourcesContent":["import React, { PropsWithChildren, ReactNode } from 'react';\nimport { ClientFronteggProvider } from './ClientFronteggProvider';\nimport { getAppHeaders, getAppSession } from './helpers';\nimport config from '../config';\nimport fetchUserData from '../utils/fetchUserData';\nimport { ClientFronteggProviderProps } from '../types';\nimport { getAppUrlForCustomLoginWithSubdomain } from './getAppUrlForCustomLoginWithSubdomain';\nimport { removeJwtSignatureFrom } from '../middleware/helpers';\nimport fronteggLogger from '../utils/fronteggLogger';\nimport { FRONTEGG_HOSTED_LOGIN_MIGRATION_WARNING } from './consts';\n\nexport type FronteggAppProviderProps = PropsWithChildren<\n Omit<ClientFronteggProviderProps, 'contextOptions' | 'envAppUrl' | 'envBaseUrl' | 'envClientId'>\n> & {\n alwaysVisibleChildren?: ReactNode;\n};\n\nexport const FronteggAppProvider = async (options: FronteggAppProviderProps) => {\n const { envAppUrl, ...appEnvConfig } = config.appEnvConfig;\n let userData = await fetchUserData({ getSession: getAppSession, getHeaders: getAppHeaders });\n const subDomainAppUrl = await getAppUrlForCustomLoginWithSubdomain(options.customLoginOptions?.subDomainIndex);\n const logger = fronteggLogger.child({ tag: 'FronteggAppProvider' });\n\n if (process.env['FRONTEGG_SECURE_JWT_ENABLED'] === 'true' && userData) {\n userData = removeJwtSignatureFrom(userData);\n userData.session = removeJwtSignatureFrom(userData?.session);\n }\n if (Object.hasOwn(options, 'hostedLoginBox')) {\n logger.warn(FRONTEGG_HOSTED_LOGIN_MIGRATION_WARNING);\n }\n\n const providerProps = {\n ...appEnvConfig,\n ...userData,\n ...options,\n shouldRequestAuthorize: true,\n envAppUrl: subDomainAppUrl ?? envAppUrl,\n secureJwtEnabled: options.secureJwtEnabled ?? false,\n hostedLoginBox: appEnvConfig.envHostedLoginBox ?? options.hostedLoginBox ?? false,\n };\n\n return <ClientFronteggProvider {...providerProps} />;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,cAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,IAAAK,qCAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AAAmE,IAAAS,WAAA,GAAAT,OAAA;AAAA,MAAAU,SAAA;AAQ5D,MAAMC,mBAAmB,GAAG,MAAOC,OAAiC,IAAK;EAAA,IAAAC,qBAAA,EAAAC,qBAAA,EAAAC,IAAA,EAAAC,qBAAA;EAC9E,MAAAC,oBAAA,GAAuCC,eAAM,CAACC,YAAY;IAApD;MAAEC;IAA2B,CAAC,GAAAH,oBAAA;IAAdE,YAAY,OAAAE,8BAAA,CAAAC,OAAA,EAAAL,oBAAA,EAAAP,SAAA;EAClC,IAAIa,QAAQ,GAAG,MAAM,IAAAC,sBAAa,EAAC;IAAEC,UAAU,EAAEC,sBAAa;IAAEC,UAAU,EAAEC;EAAc,CAAC,CAAC;EAC5F,MAAMC,eAAe,GAAG,MAAM,IAAAC,0EAAoC,GAAAjB,qBAAA,GAACD,OAAO,CAACmB,kBAAkB,qBAA1BlB,qBAAA,CAA4BmB,cAAc,CAAC;EAC9G,MAAMC,MAAM,GAAGC,uBAAc,CAACC,KAAK,CAAC;IAAEC,GAAG,EAAE;EAAsB,CAAC,CAAC;EAEnE,IAAIC,OAAO,CAACC,GAAG,CAAC,6BAA6B,CAAC,KAAK,MAAM,IAAIf,QAAQ,EAAE;IAAA,IAAAgB,SAAA;IACrEhB,QAAQ,GAAG,IAAAiB,gCAAsB,EAACjB,QAAQ,CAAC;IAC3CA,QAAQ,CAACkB,OAAO,GAAG,IAAAD,gCAAsB,GAAAD,SAAA,GAAChB,QAAQ,qBAARgB,SAAA,CAAUE,OAAO,CAAC;EAC9D;EACA,IAAIC,MAAM,CAACC,MAAM,CAAC/B,OAAO,EAAE,gBAAgB,CAAC,EAAE;IAC5CqB,MAAM,CAACW,IAAI,CAACC,+CAAuC,CAAC;EACtD;EAEA,MAAMC,aAAa,OAAAC,SAAA,CAAAzB,OAAA,MACdH,YAAY,EACZI,QAAQ,EACRX,OAAO;IACVoC,sBAAsB,EAAE,IAAI;IAC5B5B,SAAS,EAAES,eAAe,WAAfA,eAAe,GAAIT,SAAS;IACvC6B,gBAAgB,GAAAnC,qBAAA,GAAEF,OAAO,CAACqC,gBAAgB,YAAAnC,qBAAA,GAAI,KAAK;IACnDoC,cAAc,GAAAnC,IAAA,IAAAC,qBAAA,GAAEG,YAAY,CAACgC,iBAAiB,YAAAnC,qBAAA,GAAIJ,OAAO,CAACsC,cAAc,YAAAnC,IAAA,GAAI;EAAK,EAClF;EAED,oBAAO,IAAAN,WAAA,CAAA2C,GAAA,EAACnD,uBAAA,CAAAoD,sBAAsB,MAAAN,SAAA,CAAAzB,OAAA,MAAKwB,aAAa,CAAG,CAAC;AACtD,CAAC;AAACQ,OAAA,CAAA3C,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -103,7 +103,7 @@ const Connector = _ref => {
|
|
|
103
103
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHooks.CustomComponentRegister, {
|
|
104
104
|
app: app,
|
|
105
105
|
themeOptions: props.themeOptions
|
|
106
|
-
})]
|
|
106
|
+
}), props.alwaysVisibleChildren]
|
|
107
107
|
});
|
|
108
108
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_AppContext.default.Provider, {
|
|
109
109
|
value: app,
|
|
@@ -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","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","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","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 <CustomComponentRegister app={app} themeOptions={props.themeOptions} />\n </>\n );\n return (\n <AppContext.Provider value={app}>\n <FronteggStoreProvider {...({ ...props, app } as any)} alwaysVisibleChildren={alwaysVisibleChildren}>\n {props.children}\n </FronteggStoreProvider>\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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
|
|
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","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","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","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 <CustomComponentRegister app={app} themeOptions={props.themeOptions} />\n {props.alwaysVisibleChildren}\n </>\n );\n return (\n <AppContext.Provider value={app}>\n <FronteggStoreProvider {...({ ...props, app } as any)} alwaysVisibleChildren={alwaysVisibleChildren}>\n {props.children}\n </FronteggStoreProvider>\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":[]}
|
package/config/constants.d.ts
CHANGED
|
@@ -98,6 +98,14 @@ export declare enum EnvVariables {
|
|
|
98
98
|
* In order to enable this feature, you need to provide {@link EnvVariables.FRONTEGG_SHARED_SECRET}
|
|
99
99
|
*/
|
|
100
100
|
FRONTEGG_FORWARD_IP = "FRONTEGG_FORWARD_IP",
|
|
101
|
+
/**
|
|
102
|
+
* Where the Nextjs build output will be stored as static files
|
|
103
|
+
* for SSG and ISR pages, this env variable will disable environment variables
|
|
104
|
+
* checking and will not throw an error if the env variables are for SSR
|
|
105
|
+
*
|
|
106
|
+
* NOTE: you cannot use this env with SSR.
|
|
107
|
+
*/
|
|
108
|
+
FRONTEGG_SSG_EXPORT = "FRONTEGG_SSG_EXPORT",
|
|
101
109
|
/**
|
|
102
110
|
* This Env variable assign automatically when deploying you Next.js application
|
|
103
111
|
* to Vercel deployments service, and will be used to detect to dynamically configure
|
package/config/constants.js
CHANGED
|
@@ -22,6 +22,7 @@ let EnvVariables = exports.EnvVariables = /*#__PURE__*/function (EnvVariables) {
|
|
|
22
22
|
EnvVariables["FRONTEGG_SECURE_JWT_ENABLED"] = "FRONTEGG_SECURE_JWT_ENABLED";
|
|
23
23
|
EnvVariables["FRONTEGG_HOSTED_LOGIN"] = "FRONTEGG_HOSTED_LOGIN";
|
|
24
24
|
EnvVariables["FRONTEGG_FORWARD_IP"] = "FRONTEGG_FORWARD_IP";
|
|
25
|
+
EnvVariables["FRONTEGG_SSG_EXPORT"] = "FRONTEGG_SSG_EXPORT";
|
|
25
26
|
EnvVariables["VERCEL"] = "VERCEL";
|
|
26
27
|
EnvVariables["VERCEL_URL"] = "VERCEL_URL";
|
|
27
28
|
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 * 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;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
|
|
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;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
|
package/config/index.d.ts
CHANGED
package/config/index.js
CHANGED
|
@@ -29,6 +29,7 @@ const setupEnvVariables = {
|
|
|
29
29
|
FRONTEGG_JWT_PUBLIC_KEY: process.env.FRONTEGG_JWT_PUBLIC_KEY,
|
|
30
30
|
FRONTEGG_SECURE_JWT_ENABLED: process.env.FRONTEGG_SECURE_JWT_ENABLED,
|
|
31
31
|
FRONTEGG_FORWARD_IP: process.env.FRONTEGG_FORWARD_IP,
|
|
32
|
+
FRONTEGG_SSG_EXPORT: process.env.FRONTEGG_SSG_EXPORT,
|
|
32
33
|
DISABLE_INITIAL_PROPS_REFRESH_TOKEN: process.env.DISABLE_INITIAL_PROPS_REFRESH_TOKEN,
|
|
33
34
|
VERCEL: process.env.VERCEL,
|
|
34
35
|
VERCEL_URL: process.env.VERCEL_URL
|
|
@@ -36,10 +37,17 @@ const setupEnvVariables = {
|
|
|
36
37
|
class Config {
|
|
37
38
|
constructor() {
|
|
38
39
|
this.fronteggAppOptions = {};
|
|
39
|
-
if (
|
|
40
|
-
|
|
40
|
+
if (!this.isSSGExport) {
|
|
41
|
+
if (typeof window === 'undefined') {
|
|
42
|
+
this.validatePassword();
|
|
43
|
+
}
|
|
41
44
|
}
|
|
42
45
|
}
|
|
46
|
+
get isSSGExport() {
|
|
47
|
+
var _getEnvOrDefault;
|
|
48
|
+
const isSSGExport = (_getEnvOrDefault = (0, _helpers.getEnvOrDefault)(_constants.EnvVariables.FRONTEGG_SSG_EXPORT, setupEnvVariables.FRONTEGG_SSG_EXPORT)) != null ? _getEnvOrDefault : 'false';
|
|
49
|
+
return isSSGExport === 'true';
|
|
50
|
+
}
|
|
43
51
|
get appUrl() {
|
|
44
52
|
return (0, _helpers.generateAppUrl)();
|
|
45
53
|
}
|
|
@@ -47,8 +55,10 @@ class Config {
|
|
|
47
55
|
return (0, _helpers.getEnvOrDefault)(_constants.EnvVariables.FRONTEGG_TEST_URL, setupEnvVariables.FRONTEGG_TEST_URL);
|
|
48
56
|
}
|
|
49
57
|
get baseUrl() {
|
|
50
|
-
|
|
51
|
-
|
|
58
|
+
const baseUrl = (0, _helpers.getEnvOrDefault)(_constants.EnvVariables.FRONTEGG_BASE_URL, setupEnvVariables.FRONTEGG_BASE_URL);
|
|
59
|
+
if (!baseUrl) {
|
|
60
|
+
throw new _errors.FronteggEnvNotFound(_constants.EnvVariables.FRONTEGG_BASE_URL);
|
|
61
|
+
}
|
|
52
62
|
if (baseUrl.endsWith('/')) {
|
|
53
63
|
return baseUrl.slice(0, -1);
|
|
54
64
|
}
|
|
@@ -58,8 +68,12 @@ class Config {
|
|
|
58
68
|
return new URL(this.baseUrl).hostname;
|
|
59
69
|
}
|
|
60
70
|
get clientId() {
|
|
61
|
-
var
|
|
62
|
-
|
|
71
|
+
var _EnvVariables$FRONTEG;
|
|
72
|
+
const clientId = (0, _helpers.getEnv)((_EnvVariables$FRONTEG = _constants.EnvVariables.FRONTEGG_CLIENT_ID) != null ? _EnvVariables$FRONTEG : setupEnvVariables.FRONTEGG_CLIENT_ID);
|
|
73
|
+
if (!clientId) {
|
|
74
|
+
throw new _errors.FronteggEnvNotFound(_constants.EnvVariables.FRONTEGG_CLIENT_ID);
|
|
75
|
+
}
|
|
76
|
+
return clientId;
|
|
63
77
|
}
|
|
64
78
|
get appId() {
|
|
65
79
|
return (0, _helpers.getEnvOrDefault)(_constants.EnvVariables.FRONTEGG_APP_ID, setupEnvVariables.FRONTEGG_APP_ID);
|
|
@@ -71,8 +85,8 @@ class Config {
|
|
|
71
85
|
get clientSecret() {
|
|
72
86
|
let clientSecret;
|
|
73
87
|
try {
|
|
74
|
-
var
|
|
75
|
-
clientSecret = (
|
|
88
|
+
var _getEnv;
|
|
89
|
+
clientSecret = (_getEnv = (0, _helpers.getEnv)(_constants.EnvVariables.FRONTEGG_CLIENT_SECRET)) != null ? _getEnv : setupEnvVariables.FRONTEGG_CLIENT_SECRET;
|
|
76
90
|
} catch (e) {
|
|
77
91
|
clientSecret = setupEnvVariables.FRONTEGG_CLIENT_SECRET;
|
|
78
92
|
}
|
|
@@ -84,8 +98,8 @@ class Config {
|
|
|
84
98
|
get sharedSecret() {
|
|
85
99
|
let sharedSecret;
|
|
86
100
|
try {
|
|
87
|
-
var
|
|
88
|
-
sharedSecret = (
|
|
101
|
+
var _getEnv2;
|
|
102
|
+
sharedSecret = (_getEnv2 = (0, _helpers.getEnv)(_constants.EnvVariables.FRONTEGG_SHARED_SECRET)) != null ? _getEnv2 : setupEnvVariables.FRONTEGG_SHARED_SECRET;
|
|
89
103
|
} catch (e) {
|
|
90
104
|
sharedSecret = setupEnvVariables.FRONTEGG_SHARED_SECRET;
|
|
91
105
|
}
|
|
@@ -96,8 +110,8 @@ class Config {
|
|
|
96
110
|
return (0, _helpers.getEnvOrDefault)(_constants.EnvVariables.FRONTEGG_FORWARD_IP, (_setupEnvVariables$FR2 = setupEnvVariables.FRONTEGG_FORWARD_IP) != null ? _setupEnvVariables$FR2 : 'false') === 'true';
|
|
97
111
|
}
|
|
98
112
|
get jwtPublicKeyJson() {
|
|
99
|
-
var
|
|
100
|
-
return (
|
|
113
|
+
var _getEnv3;
|
|
114
|
+
return (_getEnv3 = (0, _helpers.getEnv)(_constants.EnvVariables.FRONTEGG_JWT_PUBLIC_KEY)) != null ? _getEnv3 : setupEnvVariables.FRONTEGG_JWT_PUBLIC_KEY;
|
|
101
115
|
}
|
|
102
116
|
get secureJwtEnabled() {
|
|
103
117
|
var _setupEnvVariables$FR3;
|
|
@@ -146,8 +160,10 @@ class Config {
|
|
|
146
160
|
}
|
|
147
161
|
}
|
|
148
162
|
get password() {
|
|
149
|
-
|
|
150
|
-
|
|
163
|
+
const encryptionPasswordEnv = (0, _helpers.getEnvOrDefault)(_constants.EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD, setupEnvVariables.FRONTEGG_ENCRYPTION_PASSWORD);
|
|
164
|
+
if (!encryptionPasswordEnv) {
|
|
165
|
+
throw new _errors.InvalidFronteggEnv(_constants.EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD, `Hex string.\n\nFor quick password generation use the following command:\nnode -e "console.log(crypto.randomBytes(32).toString('hex'))"`);
|
|
166
|
+
}
|
|
151
167
|
return (0, _helpers.normalizeStringPasswordToMap)(encryptionPasswordEnv);
|
|
152
168
|
}
|
|
153
169
|
get isSSL() {
|
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","DISABLE_INITIAL_PROPS_REFRESH_TOKEN","VERCEL","VERCEL_URL","Config","constructor","fronteggAppOptions","window","validatePassword","appUrl","generateAppUrl","testUrl","getEnvOrDefault","EnvVariables","baseUrl","_getEnv","getEnv","endsWith","slice","baseUrlHost","URL","hostname","clientId","_getEnv2","appId","rewriteCookieByAppId","_setupEnvVariables$FR","clientSecret","_getEnv3","e","secureJwtEnabled","InvalidFronteggEnv","sharedSecret","_getEnv4","shouldForwardIp","_setupEnvVariables$FR2","jwtPublicKeyJson","_getEnv5","_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","_getEnv6","encryptionPasswordEnv","normalizeStringPasswordToMap","isSSL","protocol","isHostedLogin","_this$fronteggAppOpti3","hostedLoginBox","FRONTEGG_HOSTED_LOGIN","disableInitialPropsRefreshToken","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 { generateAppUrl, generateCookieDomain, getEnv, getEnvOrDefault, normalizeStringPasswordToMap } from './helpers';\nimport { EnvVariables } from './constants';\nimport { 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 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\n constructor() {\n if (typeof window === 'undefined') {\n this.validatePassword();\n }\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 = getEnv(EnvVariables.FRONTEGG_BASE_URL) ?? setupEnvVariables.FRONTEGG_BASE_URL;\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 return getEnv(EnvVariables.FRONTEGG_CLIENT_ID) ?? setupEnvVariables.FRONTEGG_CLIENT_ID;\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 =\n getEnv(EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD) ?? setupEnvVariables.FRONTEGG_ENCRYPTION_PASSWORD;\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 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 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","disableInitialPropsRefreshToken","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 { 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\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 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 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":[]}
|
package/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
16
16
|
var _AppContext = _interopRequireDefault(require("../common/AppContext"));
|
|
17
17
|
var _useOnRedirectTo = _interopRequireDefault(require("../utils/useOnRedirectTo"));
|
|
18
18
|
var _ExpireInListener2 = _interopRequireDefault(require("./ExpireInListener"));
|
|
19
|
+
var _reduxStore = require("@frontegg/redux-store");
|
|
19
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
21
|
var _ExpireInListener;
|
|
21
22
|
const _excluded = ["router", "appName", "hostedLoginBox", "customLoginBox"];
|
|
@@ -30,27 +31,45 @@ const Connector = _props => {
|
|
|
30
31
|
} = _props,
|
|
31
32
|
props = (0, _objectWithoutPropertiesLoose2.default)(_props, _excluded);
|
|
32
33
|
const baseName = (_props$basename = props.basename) != null ? _props$basename : router.basePath;
|
|
34
|
+
const storeHolderRef = (0, _react.useRef)({});
|
|
33
35
|
const onRedirectTo = (0, _useOnRedirectTo.default)(baseName, router, (_props$authOptions = props.authOptions) == null ? void 0 : _props$authOptions.routes);
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
36
|
+
const contextOptions = (0, _extends2.default)({
|
|
37
|
+
requestCredentials: 'include'
|
|
38
|
+
}, props.contextOptions);
|
|
39
|
+
const storeHolder = storeHolderRef.current;
|
|
40
|
+
let sharedStore = storeHolder.store;
|
|
41
|
+
if (!sharedStore) {
|
|
42
|
+
sharedStore = (0, _reduxStore.createStore)({
|
|
43
|
+
context: contextOptions,
|
|
44
|
+
storeHolder,
|
|
45
|
+
previewMode: props.previewMode,
|
|
46
|
+
name: appName != null ? appName : 'default',
|
|
47
|
+
urlStrategy: props.urlStrategy,
|
|
48
|
+
builderMode: false,
|
|
49
|
+
initialState: {
|
|
50
|
+
auth: (0, _extends2.default)({}, props.authOptions, {
|
|
44
51
|
onRedirectTo
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
52
|
+
})
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
storeHolder.store = sharedStore;
|
|
56
|
+
}
|
|
57
|
+
let app;
|
|
58
|
+
try {
|
|
59
|
+
app = _js.AppHolder.getInstance(appName != null ? appName : 'default');
|
|
60
|
+
app.store = sharedStore;
|
|
61
|
+
} catch (e) {
|
|
62
|
+
var _props$basename2;
|
|
63
|
+
app = (0, _js.initialize)((0, _extends2.default)({}, props, {
|
|
64
|
+
hostedLoginBox: hostedLoginBox != null ? hostedLoginBox : false,
|
|
65
|
+
basename: (_props$basename2 = props.basename) != null ? _props$basename2 : baseName,
|
|
66
|
+
authOptions: (0, _extends2.default)({}, props.authOptions, {
|
|
49
67
|
onRedirectTo
|
|
50
|
-
}),
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
68
|
+
}),
|
|
69
|
+
contextOptions,
|
|
70
|
+
onRedirectTo
|
|
71
|
+
}), appName != null ? appName : 'default');
|
|
72
|
+
}
|
|
54
73
|
_restApi.ContextHolder.for(appName != null ? appName : 'default').setOnRedirectTo(onRedirectTo);
|
|
55
74
|
(0, _react.useEffect)(() => {
|
|
56
75
|
app.store.dispatch({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FronteggProviderNoSSR.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","FronteggProviderNoSSR","_extends2","_objectWithoutPropertiesLoose2","_js","_reactHooks","_restApi","_router","_react","_interopRequireWildcard","_AppContext","_useOnRedirectTo","_ExpireInListener2","_jsxRuntime","_ExpireInListener","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Connector","_props","_props$basename","_props$authOptions","router","appName","hostedLoginBox","props","baseName","basename","basePath","onRedirectTo","useOnRedirectTo","authOptions","routes","
|
|
1
|
+
{"version":3,"file":"FronteggProviderNoSSR.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","FronteggProviderNoSSR","_extends2","_objectWithoutPropertiesLoose2","_js","_reactHooks","_restApi","_router","_react","_interopRequireWildcard","_AppContext","_useOnRedirectTo","_ExpireInListener2","_reduxStore","_jsxRuntime","_ExpireInListener","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Connector","_props","_props$basename","_props$authOptions","router","appName","hostedLoginBox","props","baseName","basename","basePath","storeHolderRef","useRef","onRedirectTo","useOnRedirectTo","authOptions","routes","contextOptions","requestCredentials","storeHolder","current","sharedStore","store","createStore","context","previewMode","name","urlStrategy","builderMode","initialState","auth","app","AppHolder","getInstance","_props$basename2","initialize","ContextHolder","for","setOnRedirectTo","useEffect","dispatch","type","payload","jsx","Provider","children","FronteggStoreProvider","FronteggNextJSProvider","useRouter","jsxs","framework"],"sources":["../../../../packages/nextjs/src/no-ssr/FronteggProviderNoSSR.tsx"],"sourcesContent":["'use client';\n\nimport { AppHolder, FronteggApp, initialize } from '@frontegg/js';\nimport { FronteggStoreProvider } from '@frontegg/react-hooks';\nimport { ContextHolder, ContextOptions } from '@frontegg/rest-api';\nimport { FronteggAppOptions } from '@frontegg/types';\nimport { NextRouter, useRouter } from 'next/router';\nimport React, { FC, PropsWithChildren, ReactNode, useEffect, useRef } from 'react';\nimport AppContext from '../common/AppContext';\nimport useOnRedirectTo from '../utils/useOnRedirectTo';\nimport ExpireInListener from './ExpireInListener';\nimport { createStore, FronteggStore } from '@frontegg/redux-store';\n\nexport type FronteggProviderNoSSRProps = PropsWithChildren<FronteggAppOptions>;\n\ntype ConnectorProps = PropsWithChildren<FronteggAppOptions> & {\n alwaysVisibleChildren?: ReactNode;\n router: NextRouter;\n appName?: string;\n};\n\nconst Connector: FC<ConnectorProps> = (_props) => {\n const { router, appName, hostedLoginBox, customLoginBox, ...props } = _props;\n const baseName = props.basename ?? router.basePath;\n const storeHolderRef = useRef<{ store?: FronteggStore }>({});\n\n const onRedirectTo = useOnRedirectTo(baseName, router, props.authOptions?.routes);\n\n const contextOptions: ContextOptions = {\n requestCredentials: 'include',\n ...props.contextOptions,\n };\n\n const storeHolder = storeHolderRef.current;\n let sharedStore = storeHolder.store;\n if (!sharedStore) {\n sharedStore = createStore({\n context: contextOptions,\n storeHolder,\n previewMode: props.previewMode,\n name: appName ?? 'default',\n urlStrategy: props.urlStrategy,\n builderMode: false,\n initialState: {\n auth: {\n ...props.authOptions,\n onRedirectTo,\n },\n },\n });\n storeHolder.store = sharedStore;\n }\n\n let app: FronteggApp;\n try {\n app = AppHolder.getInstance(appName ?? 'default');\n app.store = sharedStore;\n } catch (e) {\n app = initialize(\n {\n ...props,\n hostedLoginBox: hostedLoginBox ?? false,\n basename: props.basename ?? baseName,\n authOptions: {\n ...props.authOptions,\n onRedirectTo,\n },\n contextOptions,\n onRedirectTo,\n },\n appName ?? 'default'\n );\n }\n\n ContextHolder.for(appName ?? 'default').setOnRedirectTo(onRedirectTo);\n\n useEffect(() => {\n app.store.dispatch({ type: 'auth/requestAuthorize', payload: true });\n }, [app]);\n\n return (\n <AppContext.Provider value={app}>\n <FronteggStoreProvider {...({ ...props, app } as any)}>{props.children}</FronteggStoreProvider>\n </AppContext.Provider>\n );\n};\n\nconst FronteggNextJSProvider: FC<FronteggProviderNoSSRProps> = (props) => {\n const router = useRouter();\n\n return (\n <Connector {...props} router={router}>\n <ExpireInListener />\n {props.children}\n </Connector>\n );\n};\n\nexport const FronteggProviderNoSSR: FC<FronteggProviderNoSSRProps> = (props) => {\n return (\n <FronteggNextJSProvider {...props} framework={'nextjs'}>\n {props.children}\n </FronteggNextJSProvider>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
package/sdkVersion.js
CHANGED
package/sdkVersion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdkVersion.js","names":["version"],"sources":["../../../packages/nextjs/src/sdkVersion.ts"],"sourcesContent":["export default { version: '9.2.
|
|
1
|
+
{"version":3,"file":"sdkVersion.js","names":["version"],"sources":["../../../packages/nextjs/src/sdkVersion.ts"],"sourcesContent":["export default { version: '9.2.3-alpha.14369211767' };\n"],"mappings":";;;;;;iCAAe;EAAEA,OAAO,EAAE;AAA0B,CAAC","ignoreList":[]}
|
package/types/index.d.ts
CHANGED
|
@@ -65,6 +65,7 @@ export interface FronteggProviderOptions extends Omit<FronteggAppOptions, 'conte
|
|
|
65
65
|
}
|
|
66
66
|
export interface FronteggProviderProps extends FronteggProviderOptions {
|
|
67
67
|
children?: ReactNode;
|
|
68
|
+
alwaysVisibleChildren?: ReactNode;
|
|
68
69
|
router: AppRouterInstance | NextRouter;
|
|
69
70
|
appName?: string;
|
|
70
71
|
}
|
package/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/types/index.ts"],"sourcesContent":["import type { FronteggAppOptions } from '@frontegg/types';\nimport type { ILoginResponse, ITenantsResponse } from '@frontegg/rest-api';\nimport type { IncomingMessage } from 'http';\nimport type { ReactNode } from 'react';\nimport type { AppRouterInstance } from 'next/dist/shared/lib/app-router-context';\nimport type { NextRouter } from 'next/router';\n\nexport interface EncryptionUtils {\n unsealTokens(data: string): Promise<FronteggUserTokens | undefined>;\n\n sealTokens(tokens: FronteggUserTokens, ttl: number): Promise<string>;\n}\n\nexport interface FronteggUserTokens {\n accessToken: string;\n refreshToken?: string;\n}\n\nexport interface FronteggNextJSSession extends FronteggUserTokens {\n user: FronteggUserSession;\n}\n\nexport interface FronteggEdgeSession {\n session?: FronteggNextJSSession;\n headers?: Record<string, string>;\n forwardedHeaders?: Headers;\n}\n\nexport type RequestType = IncomingMessage | Request;\n\nexport interface AccountEnvironment {\n id: string;\n createdAt: string;\n environment: 'production' | 'development';\n}\n\nexport interface CustomClaims {\n accountEnvironments: AccountEnvironment[];\n}\n\nexport interface AllUserData {\n user?: ILoginResponse | null;\n tenants?: ITenantsResponse[] | null;\n activeTenant?: ITenantsResponse;\n session?: FronteggNextJSSession | null;\n}\n\nexport interface FronteggUserSession {\n sub: string;\n name: string;\n email: string;\n email_verified: boolean;\n metadata: any;\n roles: string[];\n permissions: string[];\n tenantId: string;\n tenantIds: string[];\n profilePictureUrl: string;\n type: string; // \"userToken\"\n customClaims: CustomClaims;\n iat: number;\n exp: number;\n aud: string;\n iss: string;\n}\n\nexport interface FronteggProviderOptions extends Omit<FronteggAppOptions, 'contextOptions'>, AllUserData {\n envAppUrl: string;\n envBaseUrl: string;\n envClientId: string;\n shouldRequestAuthorize?: boolean;\n isSSG?: boolean;\n envAppId?: string;\n secureJwtEnabled?: boolean;\n contextOptions?: Omit<FronteggAppOptions['contextOptions'], 'baseUrl'>;\n}\n\nexport interface FronteggProviderProps extends FronteggProviderOptions {\n children?: ReactNode;\n router: AppRouterInstance | NextRouter;\n appName?: string;\n}\n\ntype CustomLoginOptionsWithParamKeyType = {\n /**\n *The param key from your tenant login url, for 'frontegg.com?organization=[tenant]' would be 'organization'\n */\n paramKey: string;\n subDomainIndex?: never;\n};\n\ntype CustomLoginOptionsWithSubDomainType = {\n /**\n *The index of sub domain from your tenant login url, for 'https://[tenant].frontegg.com' would be 0\n */\n subDomainIndex: number;\n paramKey?: never;\n};\n\nexport type CustomLoginOptionsType = CustomLoginOptionsWithParamKeyType | CustomLoginOptionsWithSubDomainType;\n\ntype PagesDirectoryProviderProps = {\n customLoginOptions?: CustomLoginOptionsType;\n};\n\nexport type ClientFronteggProviderProps = Omit<FronteggProviderProps, 'router'> & PagesDirectoryProviderProps;\n\ndeclare module 'iron-session' {\n interface IronSessionData {\n accessToken: FronteggNextJSSession['accessToken'];\n user: FronteggNextJSSession['user'];\n }\n}\n\ndeclare global {\n var customLoginAppUrl: string | undefined;\n\n interface ProcessEnv {\n FRONTEGG_BASE_URL: string;\n PORT?: string;\n PWD: string;\n }\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/types/index.ts"],"sourcesContent":["import type { FronteggAppOptions } from '@frontegg/types';\nimport type { ILoginResponse, ITenantsResponse } from '@frontegg/rest-api';\nimport type { IncomingMessage } from 'http';\nimport type { ReactNode } from 'react';\nimport type { AppRouterInstance } from 'next/dist/shared/lib/app-router-context';\nimport type { NextRouter } from 'next/router';\n\nexport interface EncryptionUtils {\n unsealTokens(data: string): Promise<FronteggUserTokens | undefined>;\n\n sealTokens(tokens: FronteggUserTokens, ttl: number): Promise<string>;\n}\n\nexport interface FronteggUserTokens {\n accessToken: string;\n refreshToken?: string;\n}\n\nexport interface FronteggNextJSSession extends FronteggUserTokens {\n user: FronteggUserSession;\n}\n\nexport interface FronteggEdgeSession {\n session?: FronteggNextJSSession;\n headers?: Record<string, string>;\n forwardedHeaders?: Headers;\n}\n\nexport type RequestType = IncomingMessage | Request;\n\nexport interface AccountEnvironment {\n id: string;\n createdAt: string;\n environment: 'production' | 'development';\n}\n\nexport interface CustomClaims {\n accountEnvironments: AccountEnvironment[];\n}\n\nexport interface AllUserData {\n user?: ILoginResponse | null;\n tenants?: ITenantsResponse[] | null;\n activeTenant?: ITenantsResponse;\n session?: FronteggNextJSSession | null;\n}\n\nexport interface FronteggUserSession {\n sub: string;\n name: string;\n email: string;\n email_verified: boolean;\n metadata: any;\n roles: string[];\n permissions: string[];\n tenantId: string;\n tenantIds: string[];\n profilePictureUrl: string;\n type: string; // \"userToken\"\n customClaims: CustomClaims;\n iat: number;\n exp: number;\n aud: string;\n iss: string;\n}\n\nexport interface FronteggProviderOptions extends Omit<FronteggAppOptions, 'contextOptions'>, AllUserData {\n envAppUrl: string;\n envBaseUrl: string;\n envClientId: string;\n shouldRequestAuthorize?: boolean;\n isSSG?: boolean;\n envAppId?: string;\n secureJwtEnabled?: boolean;\n contextOptions?: Omit<FronteggAppOptions['contextOptions'], 'baseUrl'>;\n}\n\nexport interface FronteggProviderProps extends FronteggProviderOptions {\n children?: ReactNode;\n alwaysVisibleChildren?: ReactNode;\n router: AppRouterInstance | NextRouter;\n appName?: string;\n}\n\ntype CustomLoginOptionsWithParamKeyType = {\n /**\n *The param key from your tenant login url, for 'frontegg.com?organization=[tenant]' would be 'organization'\n */\n paramKey: string;\n subDomainIndex?: never;\n};\n\ntype CustomLoginOptionsWithSubDomainType = {\n /**\n *The index of sub domain from your tenant login url, for 'https://[tenant].frontegg.com' would be 0\n */\n subDomainIndex: number;\n paramKey?: never;\n};\n\nexport type CustomLoginOptionsType = CustomLoginOptionsWithParamKeyType | CustomLoginOptionsWithSubDomainType;\n\ntype PagesDirectoryProviderProps = {\n customLoginOptions?: CustomLoginOptionsType;\n};\n\nexport type ClientFronteggProviderProps = Omit<FronteggProviderProps, 'router'> & PagesDirectoryProviderProps;\n\ndeclare module 'iron-session' {\n interface IronSessionData {\n accessToken: FronteggNextJSSession['accessToken'];\n user: FronteggNextJSSession['user'];\n }\n}\n\ndeclare global {\n var customLoginAppUrl: string | undefined;\n\n interface ProcessEnv {\n FRONTEGG_BASE_URL: string;\n PORT?: string;\n PWD: string;\n }\n}\n"],"mappings":"","ignoreList":[]}
|