@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 CHANGED
@@ -29,6 +29,7 @@ and integrate them into their SaaS portals in up to 5 lines of code.
29
29
 
30
30
  To Add Frontegg to your existing Next.JS project, follow below steps:
31
31
 
32
+
32
33
  Use package manager to install Frontegg Next.JS library.
33
34
 
34
35
  ```bash
@@ -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>;\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;AAM5D,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":[]}
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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","ignoreList":[]}
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":[]}
@@ -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
@@ -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;
@@ -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
@@ -4,6 +4,7 @@ import { AppEnvConfig, PasswordsMap } from './types';
4
4
  declare class Config {
5
5
  fronteggAppOptions: Partial<WithFronteggAppOptions>;
6
6
  constructor();
7
+ get isSSGExport(): boolean;
7
8
  get appUrl(): string;
8
9
  get testUrl(): string | undefined;
9
10
  get baseUrl(): string;
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 (typeof window === 'undefined') {
40
- this.validatePassword();
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
- var _getEnv;
51
- const baseUrl = (_getEnv = (0, _helpers.getEnv)(_constants.EnvVariables.FRONTEGG_BASE_URL)) != null ? _getEnv : setupEnvVariables.FRONTEGG_BASE_URL;
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 _getEnv2;
62
- return (_getEnv2 = (0, _helpers.getEnv)(_constants.EnvVariables.FRONTEGG_CLIENT_ID)) != null ? _getEnv2 : setupEnvVariables.FRONTEGG_CLIENT_ID;
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 _getEnv3;
75
- clientSecret = (_getEnv3 = (0, _helpers.getEnv)(_constants.EnvVariables.FRONTEGG_CLIENT_SECRET)) != null ? _getEnv3 : setupEnvVariables.FRONTEGG_CLIENT_SECRET;
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 _getEnv4;
88
- sharedSecret = (_getEnv4 = (0, _helpers.getEnv)(_constants.EnvVariables.FRONTEGG_SHARED_SECRET)) != null ? _getEnv4 : setupEnvVariables.FRONTEGG_SHARED_SECRET;
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 _getEnv5;
100
- return (_getEnv5 = (0, _helpers.getEnv)(_constants.EnvVariables.FRONTEGG_JWT_PUBLIC_KEY)) != null ? _getEnv5 : setupEnvVariables.FRONTEGG_JWT_PUBLIC_KEY;
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
- var _getEnv6;
150
- const encryptionPasswordEnv = (_getEnv6 = (0, _helpers.getEnv)(_constants.EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD)) != null ? _getEnv6 : setupEnvVariables.FRONTEGG_ENCRYPTION_PASSWORD;
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() {
@@ -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":";;;;;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,MAAMG,iBAAiB,GAAG;EACxBC,gBAAgB,EAAEC,OAAO,CAACC,GAAG,CAACF,gBAAgB;EAC9CG,iBAAiB,EAAEF,OAAO,CAACC,GAAG,CAACC,iBAAiB;EAChDC,iBAAiB,EAAEH,OAAO,CAACC,GAAG,CAACE,iBAAiB;EAChDC,kBAAkB,EAAEJ,OAAO,CAACC,GAAG,CAACG,kBAAkB;EAClDC,eAAe,EAAEL,OAAO,CAACC,GAAG,CAACI,eAAe;EAC5CC,iCAAiC,EAAEN,OAAO,CAACC,GAAG,CAACK,iCAAiC;EAChFC,sBAAsB,EAAEP,OAAO,CAACC,GAAG,CAACM,sBAAsB;EAC1DC,sBAAsB,EAAER,OAAO,CAACC,GAAG,CAACO,sBAAsB;EAC1DC,4BAA4B,EAAET,OAAO,CAACC,GAAG,CAACQ,4BAA4B;EACtEC,oBAAoB,EAAEV,OAAO,CAACC,GAAG,CAACS,oBAAoB;EACtDC,sBAAsB,EAAEX,OAAO,CAACC,GAAG,CAACU,sBAAsB;EAC1DC,yBAAyB,EAAEZ,OAAO,CAACC,GAAG,CAACW,yBAAyB;EAChEC,uBAAuB,EAAEb,OAAO,CAACC,GAAG,CAACY,uBAAuB;EAC5DC,2BAA2B,EAAEd,OAAO,CAACC,GAAG,CAACa,2BAA2B;EACpEC,mBAAmB,EAAEf,OAAO,CAACC,GAAG,CAACc,mBAAmB;EACpDC,mCAAmC,EAAEhB,OAAO,CAACC,GAAG,CAACe,mCAAmC;EACpFC,MAAM,EAAEjB,OAAO,CAACC,GAAG,CAACgB,MAAM;EAC1BC,UAAU,EAAElB,OAAO,CAACC,GAAG,CAACiB;AAC1B,CAAC;AAED,MAAMC,MAAM,CAAC;EAGXC,WAAWA,CAAA,EAAG;IAAA,KAFPC,kBAAkB,GAAoC,CAAC,CAAC;IAG7D,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;MACjC,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACzB;EACF;EAEA,IAAIC,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAAC,uBAAc,EAAC,CAAC;EACzB;EAEA,IAAIC,OAAOA,CAAA,EAAuB;IAChC,OAAO,IAAAC,wBAAe,EAACC,uBAAY,CAACzB,iBAAiB,EAAEL,iBAAiB,CAACK,iBAAiB,CAAC;EAC7F;EAEA,IAAI0B,OAAOA,CAAA,EAAW;IAAA,IAAAC,OAAA;IACpB,MAAMD,OAAO,IAAAC,OAAA,GAAG,IAAAC,eAAM,EAACH,uBAAY,CAAC1B,iBAAiB,CAAC,YAAA4B,OAAA,GAAIhC,iBAAiB,CAACI,iBAAiB;IAC7F,IAAI2B,OAAO,CAACG,QAAQ,CAAC,GAAG,CAAC,EAAE;MACzB,OAAOH,OAAO,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B;IACA,OAAOJ,OAAO;EAChB;EAEA,IAAIK,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAIC,GAAG,CAAC,IAAI,CAACN,OAAO,CAAC,CAACO,QAAQ;EACvC;EAEA,IAAIC,QAAQA,CAAA,EAAW;IAAA,IAAAC,QAAA;IACrB,QAAAA,QAAA,GAAO,IAAAP,eAAM,EAACH,uBAAY,CAACxB,kBAAkB,CAAC,YAAAkC,QAAA,GAAIxC,iBAAiB,CAACM,kBAAkB;EACxF;EAEA,IAAImC,KAAKA,CAAA,EAAuB;IAC9B,OAAO,IAAAZ,wBAAe,EAACC,uBAAY,CAACvB,eAAe,EAAEP,iBAAiB,CAACO,eAAe,CAAC;EACzF;EAEA,IAAImC,oBAAoBA,CAAA,EAAY;IAAA,IAAAC,qBAAA;IAClC,OACE,IAAAd,wBAAe,EACbC,uBAAY,CAACtB,iCAAiC,GAAAmC,qBAAA,GAC9C3C,iBAAiB,CAACQ,iCAAiC,YAAAmC,qBAAA,GAAI,OACzD,CAAC,KAAK,MAAM;EAEhB;EAEA,IAAIC,YAAYA,CAAA,EAAuB;IACrC,IAAIA,YAAY;IAChB,IAAI;MAAA,IAAAC,QAAA;MACFD,YAAY,IAAAC,QAAA,GAAG,IAAAZ,eAAM,EAACH,uBAAY,CAACrB,sBAAsB,CAAC,YAAAoC,QAAA,GAAI7C,iBAAiB,CAACS,sBAAsB;IACxG,CAAC,CAAC,OAAOqC,CAAC,EAAE;MACVF,YAAY,GAAG5C,iBAAiB,CAACS,sBAAsB;IACzD;IAEA,IAAI,IAAI,CAACsC,gBAAgB,IAAI,CAACH,YAAY,EAAE;MAC1C,MAAM,IAAII,0BAAkB,CAC1BlB,uBAAY,CAACrB,sBAAsB,EACnC,sDACF,CAAC;IACH;IACA,OAAOmC,YAAY;EACrB;EAEA,IAAIK,YAAYA,CAAA,EAAuB;IACrC,IAAIA,YAAY;IAChB,IAAI;MAAA,IAAAC,QAAA;MACFD,YAAY,IAAAC,QAAA,GAAG,IAAAjB,eAAM,EAACH,uBAAY,CAACpB,sBAAsB,CAAC,YAAAwC,QAAA,GAAIlD,iBAAiB,CAACU,sBAAsB;IACxG,CAAC,CAAC,OAAOoC,CAAC,EAAE;MACVG,YAAY,GAAGjD,iBAAiB,CAACU,sBAAsB;IACzD;IAEA,OAAOuC,YAAY;EACrB;EAEA,IAAIE,eAAeA,CAAA,EAAY;IAAA,IAAAC,sBAAA;IAC7B,OACE,IAAAvB,wBAAe,EAACC,uBAAY,CAACb,mBAAmB,GAAAmC,sBAAA,GAAEpD,iBAAiB,CAACiB,mBAAmB,YAAAmC,sBAAA,GAAI,OAAO,CAAC,KAAK,MAAM;EAElH;EAEA,IAAIC,gBAAgBA,CAAA,EAAuB;IAAA,IAAAC,QAAA;IACzC,QAAAA,QAAA,GAAO,IAAArB,eAAM,EAACH,uBAAY,CAACf,uBAAuB,CAAC,YAAAuC,QAAA,GAAItD,iBAAiB,CAACe,uBAAuB;EAClG;EAEA,IAAIgC,gBAAgBA,CAAA,EAAY;IAAA,IAAAQ,sBAAA;IAC9B,OACE,IAAA1B,wBAAe,EACbC,uBAAY,CAACd,2BAA2B,GAAAuC,sBAAA,GACxCvD,iBAAiB,CAACgB,2BAA2B,YAAAuC,sBAAA,GAAI,OACnD,CAAC,IAAI,MAAM;EAEf;EAEA,IAAIC,UAAUA,CAAA,EAAW;IAAA,IAAAC,sBAAA;IACvB,MAAMC,aAAa,GAAG,IAAA7B,wBAAe,EACnCC,uBAAY,CAAClB,oBAAoB,GAAA6C,sBAAA,GACjCzD,iBAAiB,CAACY,oBAAoB,YAAA6C,sBAAA,GAAI,YAC5C,CAAC;IAED,IAAI,IAAI,CAACf,oBAAoB,IAAI,IAAI,CAACD,KAAK,EAAE;MAC3C,OAAO,GAAGiB,aAAa,IAAI,IAAI,CAACjB,KAAK,CAACkB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;IAC3D,CAAC,MAAM;MACL,OAAO,GAAGD,aAAa,IAAI,IAAI,CAACnB,QAAQ,CAACoB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;IAC9D;EACF;EAEA,IAAIC,YAAYA,CAAA,EAAW;IAAA,IAAAC,sBAAA;IACzB,OAAO,IAAAhC,wBAAe,EACpBC,uBAAY,CAACjB,sBAAsB,GAAAgD,sBAAA,GACnC7D,iBAAiB,CAACa,sBAAsB,YAAAgD,sBAAA,GAAI,IAAAC,6BAAoB,EAAC,IAAI,CAACpC,MAAM,CAC9E,CAAC;EACH;EAEA,IAAIqC,cAAcA,CAAA,EAA8B;IAAA,IAAAC,sBAAA;IAC9C,IAAIC,QAAQ,GAAG,IAAApC,wBAAe,EAC5BC,uBAAY,CAAChB,yBAAyB,GAAAkD,sBAAA,GACtChE,iBAAiB,CAACc,yBAAyB,YAAAkD,sBAAA,GAAI,MACjD,CAAC;IACD,QAAQC,QAAQ;MACd,KAAK,MAAM;QACT,OAAO,QAAQ;MACjB,KAAK,OAAO;QACV,OAAO,MAAM;MACf,KAAK,KAAK;MACV,KAAK,QAAQ;MACb,KAAK,MAAM;QACT,OAAOA,QAAQ;MACjB;QACE,OAAO,MAAM;IACjB;EACF;EAEA,IAAIC,UAAUA,CAAA,EAA4B;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IACxC,QAAAD,qBAAA,IAAAC,sBAAA,GAAO,IAAI,CAAC7C,kBAAkB,cAAA6C,sBAAA,GAAvBA,sBAAA,CAAyBC,WAAW,qBAApCD,sBAAA,CAAsCE,MAAM,YAAAH,qBAAA,GAAI,CAAC,CAAC;EAC3D;EAEQ1C,gBAAgBA,CAAA,EAAG;IACzB,MAAM8C,YAAY,GAAG,IAAI,CAACC,QAAQ;IAClC,KAAK,IAAIC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACJ,YAAY,CAAC,EAAE;MACzC,MAAMC,QAAQ,GAAGD,YAAY,CAACE,GAAG,CAAC;MAClC,IAAI,CAACD,QAAQ,CAACI,KAAK,CAAC,iBAAiB,CAAC,IAAIJ,QAAQ,CAACK,MAAM,KAAK,EAAE,EAAE;QAChE,MAAM,IAAI7B,0BAAkB,CAC1BlB,uBAAY,CAACnB,4BAA4B,EACzC,wIACF,CAAC;MACH;IACF;EACF;EAEA,IAAI6D,QAAQA,CAAA,EAAiB;IAAA,IAAAM,QAAA;IAC3B,MAAMC,qBAAqB,IAAAD,QAAA,GACzB,IAAA7C,eAAM,EAACH,uBAAY,CAACnB,4BAA4B,CAAC,YAAAmE,QAAA,GAAI9E,iBAAiB,CAACW,4BAA4B;IAErG,OAAO,IAAAqE,qCAA4B,EAACD,qBAAqB,CAAC;EAC5D;EAEA,IAAIE,KAAKA,CAAA,EAAY;IACnB,OAAO,IAAI5C,GAAG,CAAC,IAAI,CAACX,MAAM,CAAC,CAACwD,QAAQ,KAAK,QAAQ;EACnD;EAEA,IAAIC,aAAaA,CAAA,EAAY;IAAA,IAAAC,sBAAA;IAC3B,QAAAA,sBAAA,GACE,IAAI,CAAC7D,kBAAkB,CAAC8D,cAAc,YAAAD,sBAAA,GAAI,IAAAvD,wBAAe,EAACC,uBAAY,CAACwD,qBAAqB,EAAE,OAAO,CAAC,KAAK,MAAM;EAErH;EAEA,IAAIC,+BAA+BA,CAAA,EAAY;IAC7C,MAAMA,+BAA+B,GAAG,IAAA1D,wBAAe,EACrDC,uBAAY,CAACZ,mCAAmC,EAChDlB,iBAAiB,CAACkB,mCACpB,CAAC;IACD,OAAOqE,+BAA+B,KAAK,MAAM;EACnD;EAEA,IAAIC,YAAYA,CAAA,EAAiB;IAC/B,MAAMC,MAAM,GAAG;MACbC,SAAS,EAAE,IAAI,CAAChE,MAAM;MACtBiE,UAAU,EAAE,IAAI,CAAC5D,OAAO;MACxB6D,WAAW,EAAE,IAAI,CAACrD,QAAQ;MAC1BsD,QAAQ,EAAE,IAAI,CAACpD,KAAK;MACpBM,gBAAgB,EAAE,IAAI,CAACA,gBAAgB;MACvC+C,iBAAiB,EAAE,IAAI,CAACX;IAC1B,CAAC;IACD,OAAOM,MAAM;EACf;EAEAM,sBAAsBA,CAACC,OAA2C,EAAE;IAClE;IACA,IAAI,CAAAA,OAAO,oBAAPA,OAAO,CAAEX,cAAc,MAAKY,SAAS,EAAE;MACzC;IACF;IACA;IACA,IAAID,OAAO,CAACX,cAAc,IAAI,IAAI,CAACF,aAAa,EAAE;MAChD,MAAM,IAAIe,KAAK,CACb,gGAAgG,GAC9F,2HACJ,CAAC;IACH;EACF;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGc,IAAIhF,MAAM,CAAC,CAAC","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
@@ -1,4 +1,4 @@
1
- /** @license Frontegg v9.2.2
1
+ /** @license Frontegg v9.2.3-alpha.14369211767
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -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 app = (0, _react.useMemo)(() => {
35
- let createdApp;
36
- try {
37
- createdApp = _js.AppHolder.getInstance(appName != null ? appName : 'default');
38
- } catch (e) {
39
- var _props$basename2;
40
- createdApp = (0, _js.initialize)((0, _extends2.default)({}, props, {
41
- hostedLoginBox: hostedLoginBox != null ? hostedLoginBox : false,
42
- basename: (_props$basename2 = props.basename) != null ? _props$basename2 : baseName,
43
- authOptions: (0, _extends2.default)({}, props.authOptions, {
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
- contextOptions: (0, _extends2.default)({
47
- requestCredentials: 'include'
48
- }, props.contextOptions),
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
- }), appName != null ? appName : 'default');
51
- }
52
- return createdApp;
53
- }, [appName, props, hostedLoginBox, baseName, onRedirectTo]);
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","app","useMemo","createdApp","AppHolder","getInstance","_props$basename2","initialize","contextOptions","requestCredentials","ContextHolder","for","setOnRedirectTo","useEffect","store","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, initialize } from '@frontegg/js';\nimport { FronteggStoreProvider } from '@frontegg/react-hooks';\nimport { ContextHolder } from '@frontegg/rest-api';\nimport { FronteggAppOptions } from '@frontegg/types';\nimport { NextRouter, useRouter } from 'next/router';\nimport React, { FC, PropsWithChildren, useEffect, useMemo } from 'react';\nimport AppContext from '../common/AppContext';\nimport useOnRedirectTo from '../utils/useOnRedirectTo';\nimport ExpireInListener from './ExpireInListener';\n\nexport type FronteggProviderNoSSRProps = PropsWithChildren<FronteggAppOptions>;\n\ntype ConnectorProps = PropsWithChildren<FronteggAppOptions> & {\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\n const onRedirectTo = useOnRedirectTo(baseName, router, props.authOptions?.routes);\n\n const app = useMemo(() => {\n let createdApp;\n try {\n createdApp = AppHolder.getInstance(appName ?? 'default');\n } catch (e) {\n createdApp = initialize(\n {\n ...props,\n hostedLoginBox: hostedLoginBox ?? false,\n basename: props.basename ?? baseName,\n authOptions: {\n ...props.authOptions,\n onRedirectTo,\n },\n contextOptions: {\n requestCredentials: 'include',\n ...props.contextOptions,\n },\n onRedirectTo,\n },\n appName ?? 'default'\n );\n }\n return createdApp;\n }, [appName, props, hostedLoginBox, baseName, onRedirectTo]);\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":";AAAA,YAAY;;AAAC,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,qBAAA;AAAA,IAAAC,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AAAA,IAAAO,8BAAA,GAAAR,sBAAA,CAAAC,OAAA;AAEb,IAAAQ,GAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,QAAA,GAAAV,OAAA;AAEA,IAAAW,OAAA,GAAAX,OAAA;AACA,IAAAY,MAAA,GAAAC,uBAAA,CAAAb,OAAA;AACA,IAAAc,WAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,gBAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,kBAAA,GAAAjB,sBAAA,CAAAC,OAAA;AAAkD,IAAAiB,WAAA,GAAAjB,OAAA;AAAA,IAAAkB,iBAAA;AAAA,MAAAC,SAAA;AAAA,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAA9B,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAA+B,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAY,CAAA,SAAAG,CAAA,GAAAL,CAAA,GAAA9B,MAAA,CAAA+B,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAR,GAAA,IAAAQ,CAAA,CAAAC,GAAA,IAAApC,MAAA,CAAAC,cAAA,CAAA2B,CAAA,EAAAI,CAAA,EAAAG,CAAA,IAAAP,CAAA,CAAAI,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAJ,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAhB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AASlD,MAAMS,SAA6B,GAAIC,MAAM,IAAK;EAAA,IAAAC,eAAA,EAAAC,kBAAA;EAChD,MAAM;MAAEC,MAAM;MAAEC,OAAO;MAAEC;IAAyC,CAAC,GAAGL,MAAM;IAAhBM,KAAK,OAAAtC,8BAAA,CAAAmB,OAAA,EAAKa,MAAM,EAAApB,SAAA;EAC5E,MAAM2B,QAAQ,IAAAN,eAAA,GAAGK,KAAK,CAACE,QAAQ,YAAAP,eAAA,GAAIE,MAAM,CAACM,QAAQ;EAElD,MAAMC,YAAY,GAAG,IAAAC,wBAAe,EAACJ,QAAQ,EAAEJ,MAAM,GAAAD,kBAAA,GAAEI,KAAK,CAACM,WAAW,qBAAjBV,kBAAA,CAAmBW,MAAM,CAAC;EAEjF,MAAMC,GAAG,GAAG,IAAAC,cAAO,EAAC,MAAM;IACxB,IAAIC,UAAU;IACd,IAAI;MACFA,UAAU,GAAGC,aAAS,CAACC,WAAW,CAACd,OAAO,WAAPA,OAAO,GAAI,SAAS,CAAC;IAC1D,CAAC,CAAC,OAAOtB,CAAC,EAAE;MAAA,IAAAqC,gBAAA;MACVH,UAAU,GAAG,IAAAI,cAAU,MAAArD,SAAA,CAAAoB,OAAA,MAEhBmB,KAAK;QACRD,cAAc,EAAEA,cAAc,WAAdA,cAAc,GAAI,KAAK;QACvCG,QAAQ,GAAAW,gBAAA,GAAEb,KAAK,CAACE,QAAQ,YAAAW,gBAAA,GAAIZ,QAAQ;QACpCK,WAAW,MAAA7C,SAAA,CAAAoB,OAAA,MACNmB,KAAK,CAACM,WAAW;UACpBF;QAAY,EACb;QACDW,cAAc,MAAAtD,SAAA,CAAAoB,OAAA;UACZmC,kBAAkB,EAAE;QAAS,GAC1BhB,KAAK,CAACe,cAAc,CACxB;QACDX;MAAY,IAEdN,OAAO,WAAPA,OAAO,GAAI,SACb,CAAC;IACH;IACA,OAAOY,UAAU;EACnB,CAAC,EAAE,CAACZ,OAAO,EAAEE,KAAK,EAAED,cAAc,EAAEE,QAAQ,EAAEG,YAAY,CAAC,CAAC;EAC5Da,sBAAa,CAACC,GAAG,CAACpB,OAAO,WAAPA,OAAO,GAAI,SAAS,CAAC,CAACqB,eAAe,CAACf,YAAY,CAAC;EAErE,IAAAgB,gBAAS,EAAC,MAAM;IACdZ,GAAG,CAACa,KAAK,CAACC,QAAQ,CAAC;MAAEC,IAAI,EAAE,uBAAuB;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;EACtE,CAAC,EAAE,CAAChB,GAAG,CAAC,CAAC;EAET,oBACE,IAAApC,WAAA,CAAAqD,GAAA,EAACxD,WAAA,CAAAY,OAAU,CAAC6C,QAAQ;IAACnE,KAAK,EAAEiD,GAAI;IAAAmB,QAAA,eAC9B,IAAAvD,WAAA,CAAAqD,GAAA,EAAC7D,WAAA,CAAAgE,qBAAqB,MAAAnE,SAAA,CAAAoB,OAAA,UAAApB,SAAA,CAAAoB,OAAA,MAAWmB,KAAK;MAAEQ;IAAG;MAAAmB,QAAA,EAAa3B,KAAK,CAAC2B;IAAQ,EAAwB;EAAC,CAC5E,CAAC;AAE1B,CAAC;AAED,MAAME,sBAAsD,GAAI7B,KAAK,IAAK;EACxE,MAAMH,MAAM,GAAG,IAAAiC,iBAAS,EAAC,CAAC;EAE1B,oBACE,IAAA1D,WAAA,CAAA2D,IAAA,EAACtC,SAAS,MAAAhC,SAAA,CAAAoB,OAAA,MAAKmB,KAAK;IAAEH,MAAM,EAAEA,MAAO;IAAA8B,QAAA,GAAAtD,iBAAA,KAAAA,iBAAA,gBACnC,IAAAD,WAAA,CAAAqD,GAAA,EAACtD,kBAAA,CAAAU,OAAgB,IAAE,CAAC,GACnBmB,KAAK,CAAC2B,QAAQ;EAAA,EACN,CAAC;AAEhB,CAAC;AAEM,MAAMnE,qBAAqD,GAAIwC,KAAK,IAAK;EAC9E,oBACE,IAAA5B,WAAA,CAAAqD,GAAA,EAACI,sBAAsB,MAAApE,SAAA,CAAAoB,OAAA,MAAKmB,KAAK;IAAEgC,SAAS,EAAE,QAAS;IAAAL,QAAA,EACpD3B,KAAK,CAAC2B;EAAQ,EACO,CAAC;AAE7B,CAAC;AAACrE,OAAA,CAAAE,qBAAA,GAAAA,qBAAA","ignoreList":[]}
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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@frontegg/nextjs",
3
3
  "libName": "FronteggNextJs",
4
- "version": "9.2.2",
4
+ "version": "9.2.3-alpha.14369211767",
5
5
  "author": "Frontegg LTD",
6
6
  "license": "MIT",
7
7
  "repository": {
package/sdkVersion.js CHANGED
@@ -5,6 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _default = exports.default = {
8
- version: '9.2.2'
8
+ version: '9.2.3-alpha.14369211767'
9
9
  };
10
10
  //# sourceMappingURL=sdkVersion.js.map
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.2' };\n"],"mappings":";;;;;;iCAAe;EAAEA,OAAO,EAAE;AAAQ,CAAC","ignoreList":[]}
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
  }
@@ -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":[]}