@frontegg/nextjs 8.0.26 → 8.0.27-alpha.10042638343
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/app/FronteggAppRouter.d.ts +1 -1
- package/app/FronteggAppRouter.js +7 -6
- package/app/FronteggAppRouter.js.map +1 -1
- package/common/FronteggBaseProvider.js +2 -3
- package/common/FronteggBaseProvider.js.map +1 -1
- package/common/FronteggRouterBase.js +2 -2
- package/common/FronteggRouterBase.js.map +1 -1
- package/edge/shouldBypassMiddleware.js +2 -2
- package/edge/shouldBypassMiddleware.js.map +1 -1
- package/index.js +1 -1
- package/middleware/helpers.js +2 -2
- package/middleware/helpers.js.map +1 -1
- package/package.json +3 -3
- package/pages/FronteggRouter/FronteggRouter.js +4 -3
- package/pages/FronteggRouter/FronteggRouter.js.map +1 -1
- package/pages/helpers.js +2 -2
- package/pages/helpers.js.map +1 -1
- package/sdkVersion.js +1 -1
- package/sdkVersion.js.map +1 -1
- package/utils/initializeFronteggApp/index.js +13 -9
- package/utils/initializeFronteggApp/index.js.map +1 -1
- package/utils/routing/index.d.ts +19 -0
- package/utils/routing/index.js +23 -3
- package/utils/routing/index.js.map +1 -1
- package/utils/useOnRedirectTo/index.js +4 -2
- package/utils/useOnRedirectTo/index.js.map +1 -1
|
@@ -6,5 +6,5 @@ interface FronteggRouterProps {
|
|
|
6
6
|
};
|
|
7
7
|
searchParams?: ParsedUrlQuery;
|
|
8
8
|
}
|
|
9
|
-
export declare function FronteggAppRouter(
|
|
9
|
+
export declare function FronteggAppRouter(props: FronteggRouterProps): JSX.Element | null;
|
|
10
10
|
export {};
|
package/app/FronteggAppRouter.js
CHANGED
|
@@ -10,12 +10,13 @@ var _routing = require("../utils/routing");
|
|
|
10
10
|
var _FronteggRouterBase = require("../common/FronteggRouterBase");
|
|
11
11
|
var _react = _interopRequireDefault(require("react"));
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
function FronteggAppRouter({
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
function FronteggAppRouter(props) {
|
|
14
|
+
const {
|
|
15
|
+
params: {
|
|
16
|
+
'frontegg-router': pathArr = []
|
|
17
|
+
},
|
|
18
|
+
searchParams
|
|
19
|
+
} = props;
|
|
19
20
|
let pathname = `/${pathArr.join('/')}`;
|
|
20
21
|
if (!pathname || pathname.startsWith('/_next/data')) {
|
|
21
22
|
if (searchParams) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FronteggAppRouter.js","names":["_navigation","require","_routing","_FronteggRouterBase","_react","_interopRequireDefault","_jsxRuntime","FronteggAppRouter","params","pathArr","searchParams","pathname","join","startsWith","query","Object","keys","Array","isArray","notFound","isAuthRoute","jsx","FronteggRouterBase","queryParams","isAppDirEnabled"],"sources":["../../../../packages/nextjs/src/app/FronteggAppRouter.tsx"],"sourcesContent":["import { notFound } from 'next/navigation';\nimport { ParsedUrlQuery } from 'querystring';\nimport { isAuthRoute } from '../utils/routing';\nimport { FronteggRouterBase } from '../common/FronteggRouterBase';\nimport React from 'react';\n\ninterface FronteggRouterProps {\n params: ParsedUrlQuery & { 'frontegg-router'?: string[] };\n searchParams?: ParsedUrlQuery;\n}\n\nexport function FronteggAppRouter({ params: { 'frontegg-router': pathArr = [] }
|
|
1
|
+
{"version":3,"file":"FronteggAppRouter.js","names":["_navigation","require","_routing","_FronteggRouterBase","_react","_interopRequireDefault","_jsxRuntime","FronteggAppRouter","props","params","pathArr","searchParams","pathname","join","startsWith","query","Object","keys","Array","isArray","notFound","isAuthRoute","jsx","FronteggRouterBase","queryParams","isAppDirEnabled"],"sources":["../../../../packages/nextjs/src/app/FronteggAppRouter.tsx"],"sourcesContent":["import { notFound } from 'next/navigation';\nimport { ParsedUrlQuery } from 'querystring';\nimport { isAuthRoute } from '../utils/routing';\nimport { FronteggRouterBase } from '../common/FronteggRouterBase';\nimport React from 'react';\n\ninterface FronteggRouterProps {\n params: ParsedUrlQuery & { 'frontegg-router'?: string[] };\n searchParams?: ParsedUrlQuery;\n}\n\nexport function FronteggAppRouter(props: FronteggRouterProps) {\n const {\n params: { 'frontegg-router': pathArr = [] },\n searchParams,\n } = props;\n\n let pathname = `/${pathArr.join('/')}`;\n if (!pathname || pathname.startsWith('/_next/data')) {\n if (searchParams) {\n const query = searchParams[Object.keys(searchParams)[0]];\n pathname = `/${Array.isArray(query) ? query.join('/') : query}`;\n } else {\n notFound();\n return null;\n }\n }\n\n if (!isAuthRoute(pathname)) {\n notFound();\n return null;\n }\n\n return <FronteggRouterBase pathArr={pathArr} queryParams={searchParams} isAppDirEnabled />;\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAA0B,IAAAK,WAAA,GAAAL,OAAA;AAOnB,SAASM,iBAAiBA,CAACC,KAA0B,EAAE;EAC5D,MAAM;IACJC,MAAM,EAAE;MAAE,iBAAiB,EAAEC,OAAO,GAAG;IAAG,CAAC;IAC3CC;EACF,CAAC,GAAGH,KAAK;EAET,IAAII,QAAQ,GAAI,IAAGF,OAAO,CAACG,IAAI,CAAC,GAAG,CAAE,EAAC;EACtC,IAAI,CAACD,QAAQ,IAAIA,QAAQ,CAACE,UAAU,CAAC,aAAa,CAAC,EAAE;IACnD,IAAIH,YAAY,EAAE;MAChB,MAAMI,KAAK,GAAGJ,YAAY,CAACK,MAAM,CAACC,IAAI,CAACN,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;MACxDC,QAAQ,GAAI,IAAGM,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,GAAGA,KAAK,CAACF,IAAI,CAAC,GAAG,CAAC,GAAGE,KAAM,EAAC;IACjE,CAAC,MAAM;MACL,IAAAK,oBAAQ,GAAE;MACV,OAAO,IAAI;IACb;EACF;EAEA,IAAI,CAAC,IAAAC,oBAAW,EAACT,QAAQ,CAAC,EAAE;IAC1B,IAAAQ,oBAAQ,GAAE;IACV,OAAO,IAAI;EACb;EAEA,oBAAO,IAAAd,WAAA,CAAAgB,GAAA,EAACnB,mBAAA,CAAAoB,kBAAkB;IAACb,OAAO,EAAEA,OAAQ;IAACc,WAAW,EAAEb,YAAa;IAACc,eAAe;EAAA,EAAG;AAC5F"}
|
|
@@ -35,8 +35,7 @@ const Connector = _ref => {
|
|
|
35
35
|
activeTenant
|
|
36
36
|
} = props;
|
|
37
37
|
const baseName = (_props$basename = props.basename) != null ? _props$basename : '';
|
|
38
|
-
const
|
|
39
|
-
const storeHolder = isSSR ? ssrStoreHolder.current : undefined;
|
|
38
|
+
const storeHolder = (0, _react.useRef)({});
|
|
40
39
|
const onRedirectTo = (0, _useOnRedirectTo.default)(baseName, router, (_props$authOptions = props.authOptions) == null ? void 0 : _props$authOptions.routes);
|
|
41
40
|
const app = (0, _react.useMemo)(() => (0, _initializeFronteggApp.default)({
|
|
42
41
|
options: (0, _extends2.default)({}, props, {
|
|
@@ -44,7 +43,7 @@ const Connector = _ref => {
|
|
|
44
43
|
}),
|
|
45
44
|
onRedirectTo,
|
|
46
45
|
appName,
|
|
47
|
-
storeHolder
|
|
46
|
+
storeHolder: storeHolder.current
|
|
48
47
|
}), [props]);
|
|
49
48
|
_restApi.ContextHolder.setOnRedirectTo(onRedirectTo);
|
|
50
49
|
(0, _useRequestAuthorizeSSR.default)({
|
|
@@ -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","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Connector","_ref","_props$basename","_props$authOptions","router","appName","props","isSSR","window","user","session","tenants","activeTenant","baseName","basename","
|
|
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","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","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","setOnRedirectTo","useRequestAuthorizeSSR","jsx","Provider","children","FronteggStoreProvider","alwaysVisibleChildren","CustomComponentRegister","themeOptions","config","fronteggAppOptions","framework"],"sources":["../../../../packages/nextjs/src/common/FronteggBaseProvider.tsx"],"sourcesContent":["'use client';\n\nimport React, { FC, useMemo, useRef } from 'react';\nimport { FronteggStoreProvider, CustomComponentRegister } 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 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.setOnRedirectTo(onRedirectTo);\n\n useRequestAuthorizeSSR({ app, user, tenants, activeTenant, session });\n return (\n <AppContext.Provider value={app}>\n <FronteggStoreProvider\n {...({ ...props, app } as any)}\n alwaysVisibleChildren={!isSSR && <CustomComponentRegister app={app} themeOptions={props.themeOptions} />}\n >\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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"}
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.FronteggRouterBase = FronteggRouterBase;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _config = _interopRequireDefault(require("../config"));
|
|
11
|
-
var
|
|
11
|
+
var _routing = require("../utils/routing");
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _reactHooks = require("@frontegg/react-hooks");
|
|
14
14
|
var _constants = require("../utils/common/constants");
|
|
@@ -33,7 +33,7 @@ function FronteggRouterBase(props) {
|
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
35
|
const pathname = `/${pathArr.join('/')}`;
|
|
36
|
-
const routesObj = (0, _extends2.default)({},
|
|
36
|
+
const routesObj = (0, _extends2.default)({}, _routing.defaultFronteggRoutes, _config.default.authRoutes);
|
|
37
37
|
if (app.options.hostedLoginBox) {
|
|
38
38
|
if (pathname === routesObj.loginUrl) {
|
|
39
39
|
if (queryParams.redirectUrl) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FronteggRouterBase.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","FronteggRouterBase","_extends2","_config","
|
|
1
|
+
{"version":3,"file":"FronteggRouterBase.js","names":["_interopRequireDefault","require","Object","defineProperty","exports","value","FronteggRouterBase","_extends2","_config","_routing","_react","_interopRequireWildcard","_reactHooks","_constants","_AppContext","_jsxRuntime","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","props","queryParams","pathArr","isAppDirEnabled","app","useContext","AppContext","loginWithRedirect","useLoginWithRedirect","requestAuthorize","logout","useLoginActions","useEffect","pathname","join","routesObj","defaultFronteggRoutes","config","authRoutes","options","hostedLoginBox","loginUrl","redirectUrl","localStorage","setItem","FRONTEGG_AFTER_AUTH_REDIRECT_URL","window","location","origin","logoutUrl","_routesObj$hostedLogi","startsWith","hostedLoginRedirectUrl","href","authenticatedUrl","isSamlCallback","samlCallbackUrl","isLoginPage","jsx","Fragment"],"sources":["../../../../packages/nextjs/src/common/FronteggRouterBase.tsx"],"sourcesContent":["'use client';\n\nimport config from '../config';\nimport { defaultFronteggRoutes } from '../utils/routing';\nimport { useContext, useEffect } from 'react';\nimport { useLoginActions, useLoginWithRedirect } from '@frontegg/react-hooks';\nimport { FRONTEGG_AFTER_AUTH_REDIRECT_URL } from '../utils/common/constants';\nimport AppContext from './AppContext';\nimport React from 'react';\nimport { ParsedUrlQuery } from 'querystring';\n\ninterface FronteggRouterBaseProps {\n queryParams?: ParsedUrlQuery;\n pathArr: string[];\n isAppDirEnabled?: boolean;\n}\n\nexport function FronteggRouterBase(props: FronteggRouterBaseProps) {\n const { queryParams = {}, pathArr, isAppDirEnabled } = props;\n const app = useContext(AppContext);\n const loginWithRedirect = useLoginWithRedirect();\n const { requestAuthorize, logout } = useLoginActions();\n\n useEffect(() => {\n if (!app) {\n return;\n }\n\n const pathname = `/${pathArr.join('/')}`;\n const routesObj = {\n ...defaultFronteggRoutes,\n ...config.authRoutes,\n };\n\n if (app.options.hostedLoginBox) {\n if (pathname === routesObj.loginUrl) {\n if (queryParams.redirectUrl) {\n localStorage.setItem(FRONTEGG_AFTER_AUTH_REDIRECT_URL, `${window.location.origin}${queryParams.redirectUrl}`);\n }\n loginWithRedirect();\n } else if (pathname === routesObj.logoutUrl) {\n logout();\n }\n } else {\n if (pathname.startsWith(routesObj.hostedLoginRedirectUrl ?? '/oauth/callback')) {\n // if not hosted login, redirect the user to the authenticated url\n window.location.href = routesObj.authenticatedUrl;\n } else {\n const isSamlCallback = pathname === routesObj.samlCallbackUrl;\n const isLoginPage = pathname.startsWith(routesObj.loginUrl);\n if ((isAppDirEnabled && isLoginPage) || isSamlCallback) {\n requestAuthorize(true);\n }\n }\n }\n }, [app, queryParams, pathArr, loginWithRedirect, logout]);\n return <></>;\n}\n"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.shouldByPassMiddleware = void 0;
|
|
8
8
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var
|
|
10
|
+
var _routing = require("../utils/routing");
|
|
11
11
|
const _excluded = ["authenticatedUrl"];
|
|
12
12
|
const staticFilesRegex = new RegExp('^/(_next/static).*');
|
|
13
13
|
const imageOptimizationRegex = new RegExp('^/(_next/image).*');
|
|
@@ -41,7 +41,7 @@ const shouldByPassMiddleware = (pathname, options) => {
|
|
|
41
41
|
const isImageOptimization = imageOptimizationRegex.test(pathname);
|
|
42
42
|
const isHeaderRequests = headerRequestsRegex.test(pathname);
|
|
43
43
|
const isFronteggMiddleware = fronteggMiddlewareRegex.test(pathname);
|
|
44
|
-
const authRoutes = (0, _objectWithoutPropertiesLoose2.default)(
|
|
44
|
+
const authRoutes = (0, _objectWithoutPropertiesLoose2.default)(_routing.defaultFronteggRoutes, _excluded);
|
|
45
45
|
const isFronteggRoutes = Object.values(authRoutes).find(path => pathname.startsWith(path)) != null;
|
|
46
46
|
if (isStaticFiles) return _options.bypassStaticFiles;
|
|
47
47
|
if (isImageOptimization) return _options.bypassImageOptimization;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shouldBypassMiddleware.js","names":["
|
|
1
|
+
{"version":3,"file":"shouldBypassMiddleware.js","names":["_routing","require","_excluded","staticFilesRegex","RegExp","imageOptimizationRegex","headerRequestsRegex","fronteggMiddlewareRegex","shouldByPassMiddleware","pathname","options","_options","_extends2","default","bypassStaticFiles","bypassImageOptimization","bypassHeaderRequests","bypassFronteggMiddleware","bypassFronteggRoutes","bypassAuthSamlCallback","isStaticFiles","test","isImageOptimization","isHeaderRequests","isFronteggMiddleware","authRoutes","_objectWithoutPropertiesLoose2","defaultFronteggRoutes","isFronteggRoutes","Object","values","find","path","startsWith","exports"],"sources":["../../../../packages/nextjs/src/edge/shouldBypassMiddleware.ts"],"sourcesContent":["import { defaultFronteggRoutes } from '../utils/routing';\n\nconst staticFilesRegex = new RegExp('^/(_next/static).*');\nconst imageOptimizationRegex = new RegExp('^/(_next/image).*');\nconst headerRequestsRegex = new RegExp('^/(favicon.ico).*');\nconst fronteggMiddlewareRegex = new RegExp('^/(api/frontegg).*');\n\ninterface ByPassOptions {\n bypassStaticFiles?: boolean; // default: true\n bypassImageOptimization?: boolean; // default: true\n bypassHeaderRequests?: boolean; // default: true\n}\n\n/**\n * Use `shouldByPassMiddleware` in the middleware.ts file\n * to protect all application's routes.\n * You can override whitelist by passing options parameter\n * NOTE: this will slow down your application due to session check on each\n * static files and image request\n *\n * The default whitelist:\n * - _next/static (static files)\n * - _next/image (image optimization files)\n * - favicon.ico (favicon file)\n * - api/frontegg (API frontegg middleware)\n * - account/[login|logout|saml/callback|...] (frontegg authentication routes)\n */\nexport const shouldByPassMiddleware = (pathname: string, options?: ByPassOptions): boolean => {\n const _options = {\n bypassStaticFiles: true,\n bypassImageOptimization: true,\n bypassHeaderRequests: true,\n ...options,\n bypassFronteggMiddleware: true,\n bypassFronteggRoutes: true,\n bypassAuthSamlCallback: true,\n };\n\n const isStaticFiles = staticFilesRegex.test(pathname);\n const isImageOptimization = imageOptimizationRegex.test(pathname);\n const isHeaderRequests = headerRequestsRegex.test(pathname);\n const isFronteggMiddleware = fronteggMiddlewareRegex.test(pathname);\n\n const { authenticatedUrl, ...authRoutes } = defaultFronteggRoutes;\n const isFronteggRoutes = Object.values(authRoutes).find((path) => pathname.startsWith(path)) != null;\n\n if (isStaticFiles) return _options.bypassStaticFiles;\n if (isImageOptimization) return _options.bypassImageOptimization;\n if (isHeaderRequests) return _options.bypassHeaderRequests;\n if (isFronteggMiddleware) return _options.bypassFronteggMiddleware;\n if (isFronteggRoutes) return _options.bypassFronteggRoutes;\n\n return false;\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAAyD,MAAAC,SAAA;AAEzD,MAAMC,gBAAgB,GAAG,IAAIC,MAAM,CAAC,oBAAoB,CAAC;AACzD,MAAMC,sBAAsB,GAAG,IAAID,MAAM,CAAC,mBAAmB,CAAC;AAC9D,MAAME,mBAAmB,GAAG,IAAIF,MAAM,CAAC,mBAAmB,CAAC;AAC3D,MAAMG,uBAAuB,GAAG,IAAIH,MAAM,CAAC,oBAAoB,CAAC;AAQhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,sBAAsB,GAAGA,CAACC,QAAgB,EAAEC,OAAuB,KAAc;EAC5F,MAAMC,QAAQ,OAAAC,SAAA,CAAAC,OAAA;IACZC,iBAAiB,EAAE,IAAI;IACvBC,uBAAuB,EAAE,IAAI;IAC7BC,oBAAoB,EAAE;EAAI,GACvBN,OAAO;IACVO,wBAAwB,EAAE,IAAI;IAC9BC,oBAAoB,EAAE,IAAI;IAC1BC,sBAAsB,EAAE;EAAI,EAC7B;EAED,MAAMC,aAAa,GAAGjB,gBAAgB,CAACkB,IAAI,CAACZ,QAAQ,CAAC;EACrD,MAAMa,mBAAmB,GAAGjB,sBAAsB,CAACgB,IAAI,CAACZ,QAAQ,CAAC;EACjE,MAAMc,gBAAgB,GAAGjB,mBAAmB,CAACe,IAAI,CAACZ,QAAQ,CAAC;EAC3D,MAAMe,oBAAoB,GAAGjB,uBAAuB,CAACc,IAAI,CAACZ,QAAQ,CAAC;EAEnE,MAA6BgB,UAAU,OAAAC,8BAAA,CAAAb,OAAA,EAAKc,8BAAqB,EAAAzB,SAAA;EACjE,MAAM0B,gBAAgB,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAAC,CAACM,IAAI,CAAEC,IAAI,IAAKvB,QAAQ,CAACwB,UAAU,CAACD,IAAI,CAAC,CAAC,IAAI,IAAI;EAEpG,IAAIZ,aAAa,EAAE,OAAOT,QAAQ,CAACG,iBAAiB;EACpD,IAAIQ,mBAAmB,EAAE,OAAOX,QAAQ,CAACI,uBAAuB;EAChE,IAAIQ,gBAAgB,EAAE,OAAOZ,QAAQ,CAACK,oBAAoB;EAC1D,IAAIQ,oBAAoB,EAAE,OAAOb,QAAQ,CAACM,wBAAwB;EAClE,IAAIW,gBAAgB,EAAE,OAAOjB,QAAQ,CAACO,oBAAoB;EAE1D,OAAO,KAAK;AACd,CAAC;AAACgB,OAAA,CAAA1B,sBAAA,GAAAA,sBAAA"}
|
package/index.js
CHANGED
package/middleware/helpers.js
CHANGED
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.rewritePath = exports.removeJwtSignatureFrom = exports.isFronteggOauthLogoutUrl = exports.isFronteggLogoutUrl = exports.getHostedLogoutUrl = exports.extractAccessToken = void 0;
|
|
8
8
|
var _urls = require("../api/urls");
|
|
9
9
|
var _config = _interopRequireDefault(require("../config"));
|
|
10
|
-
var
|
|
10
|
+
var _routing = require("../utils/routing");
|
|
11
11
|
/**
|
|
12
12
|
* If pattern information matching the input url information is found in the `pathRewrite` array,
|
|
13
13
|
* the url value is partially replaced with the `pathRewrite.replaceStr` value.
|
|
@@ -59,7 +59,7 @@ const isFronteggOauthLogoutUrl = url => url.endsWith('/oauth/logout');
|
|
|
59
59
|
exports.isFronteggOauthLogoutUrl = isFronteggOauthLogoutUrl;
|
|
60
60
|
const getHostedLogoutUrl = (referer = _config.default.appUrl) => {
|
|
61
61
|
var _config$authRoutes$lo, _config$authRoutes;
|
|
62
|
-
const logoutPath = (_config$authRoutes$lo = (_config$authRoutes = _config.default.authRoutes) == null ? void 0 : _config$authRoutes.logoutUrl) != null ? _config$authRoutes$lo :
|
|
62
|
+
const logoutPath = (_config$authRoutes$lo = (_config$authRoutes = _config.default.authRoutes) == null ? void 0 : _config$authRoutes.logoutUrl) != null ? _config$authRoutes$lo : _routing.defaultFronteggRoutes.logoutUrl;
|
|
63
63
|
const refererUrl = new URL(referer);
|
|
64
64
|
const isLogoutRoute = refererUrl.toString().includes(logoutPath);
|
|
65
65
|
const redirectUrl = isLogoutRoute ? refererUrl.origin + refererUrl.search : refererUrl.toString();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["_urls","require","_config","_interopRequireDefault","
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["_urls","require","_config","_interopRequireDefault","_routing","rewritePath","url","pathRewrite","Array","isArray","item","patternStr","replaceStr","pattern","RegExp","test","replace","path","exports","isFronteggLogoutUrl","endsWith","isFronteggOauthLogoutUrl","getHostedLogoutUrl","referer","config","appUrl","_config$authRoutes$lo","_config$authRoutes","logoutPath","authRoutes","logoutUrl","defaultFronteggRoutes","refererUrl","URL","isLogoutRoute","toString","includes","redirectUrl","origin","search","buildLogoutRoute","baseUrl","extractAccessToken","bodyStr","body","JSON","parse","authResponse","Object","assign","accessToken","access_token","refreshToken","refresh_token","jwtKeys","refreshTokenKeys","removeJwtSignatureFrom","forEach","key","split"],"sources":["../../../../packages/nextjs/src/middleware/helpers.ts"],"sourcesContent":["import { BuildRouteResult, buildLogoutRoute } from '../api/urls';\nimport config from '../config';\nimport { defaultFronteggRoutes } from '../utils/routing';\n\n/**\n * If pattern information matching the input url information is found in the `pathRewrite` array,\n * the url value is partially replaced with the `pathRewrite.replaceStr` value.\n * @param url\n * @param pathRewrite\n */\nexport const rewritePath = (\n url: string,\n pathRewrite: { [key: string]: string } | { patternStr: string; replaceStr: string }[]\n) => {\n if (Array.isArray(pathRewrite)) {\n for (const item of pathRewrite) {\n const { patternStr, replaceStr } = item;\n const pattern = RegExp(patternStr);\n if (pattern.test(url as string)) {\n return url.replace(pattern, replaceStr);\n }\n }\n } else {\n for (const patternStr in pathRewrite) {\n const pattern = RegExp(patternStr);\n const path = pathRewrite[patternStr];\n if (pattern.test(url as string)) {\n return url.replace(pattern, path);\n }\n }\n }\n return url;\n};\n\n/**\n * Checks If route is a logout route\n * @param url\n */\nexport const isFronteggLogoutUrl = (url: string) => url.endsWith('/logout');\n\n/**\n * Checks If route is a hosted logout route\n * @param url\n */\nexport const isFronteggOauthLogoutUrl = (url: string) => url.endsWith('/oauth/logout');\n\n/**\n * Returns url to be redirected for hosted logout\n * @param referer the route to redirect to after logout\n */\nexport const getHostedLogoutUrl = (referer = config.appUrl): BuildRouteResult => {\n const logoutPath = config.authRoutes?.logoutUrl ?? defaultFronteggRoutes.logoutUrl;\n const refererUrl = new URL(referer);\n const isLogoutRoute = refererUrl.toString().includes(logoutPath);\n\n const redirectUrl = isLogoutRoute ? refererUrl.origin + refererUrl.search : refererUrl.toString();\n\n return buildLogoutRoute(redirectUrl, config.baseUrl);\n};\n\nexport type Tokens = {\n accessToken: string;\n refreshToken: string;\n};\n\n/**\n * Extracts the access token from the response body\n * @param bodyStr\n */\nexport const extractAccessToken = (bodyStr: string): Tokens => {\n const body = JSON.parse(bodyStr);\n\n if (body.authResponse) {\n Object.assign(body, body.authResponse);\n }\n return {\n accessToken: body.accessToken || body.access_token,\n refreshToken: body.refreshToken || body.refresh_token,\n };\n};\n\nconst jwtKeys = ['accessToken', 'access_token', 'idToken', 'id_token'];\nconst refreshTokenKeys = ['refreshToken', 'refresh_token'];\n/**\n * Removes the signature from the JWT token\n * @param body\n */\nexport const removeJwtSignatureFrom = <T extends any>(body: any): T => {\n if (!body) {\n return body;\n }\n\n if (body.authResponse) {\n jwtKeys.forEach((key) => {\n if (body.authResponse[key]) {\n // body.authResponse[key] = \"REDACTED_FOR_SECURITY\";\n // body.authResponse[key] = body.authResponse[key].split('.')[0] + '.' + body.authResponse[key].split('.')[1];\n body.authResponse[key] = `REDACTED_FOR_SECURITY.${body.authResponse[key].split('.')[1]}.REDACTED_FOR_SECURITY`;\n }\n });\n refreshTokenKeys.forEach((key) => {\n if (body.authResponse[key]) {\n delete body.authResponse[key];\n }\n });\n }\n\n jwtKeys.forEach((key) => {\n if (body[key]) {\n // body[key] = \"REDACTED_FOR_SECURITY\";\n // body[key] = body[key].split('.')[0] + '.' + body[key].split('.')[1];\n body[key] = `REDACTED_FOR_SECURITY.${body[key].split('.')[1]}.REDACTED_FOR_SECURITY`;\n }\n });\n refreshTokenKeys.forEach((key) => {\n if (body[key]) {\n delete body[key];\n }\n });\n return body;\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frontegg/nextjs",
|
|
3
3
|
"libName": "FronteggNextJs",
|
|
4
|
-
"version": "8.0.
|
|
4
|
+
"version": "8.0.27-alpha.10042638343",
|
|
5
5
|
"author": "Frontegg LTD",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"lint-json": "eslint -c .eslintrc.json -o ./lint-report.json --format json --no-color ./src/**/*.{ts,tsx}"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@frontegg/js": "
|
|
31
|
-
"@frontegg/react-hooks": "
|
|
30
|
+
"@frontegg/js": "7.0.0-alpha.9",
|
|
31
|
+
"@frontegg/react-hooks": "7.0.0-alpha.9",
|
|
32
32
|
"http-proxy": "^1.18.1",
|
|
33
33
|
"iron-session": "^6.3.1",
|
|
34
34
|
"jose": "^4.12.2"
|
|
@@ -16,15 +16,16 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
16
16
|
const _excluded = ["frontegg-router"];
|
|
17
17
|
function FronteggRouter() {
|
|
18
18
|
const {
|
|
19
|
-
query
|
|
19
|
+
query,
|
|
20
|
+
route
|
|
20
21
|
} = (0, _router.useRouter)();
|
|
21
22
|
const _ref = query,
|
|
22
23
|
{
|
|
23
|
-
'frontegg-router': pathArr
|
|
24
|
+
'frontegg-router': pathArr = []
|
|
24
25
|
} = _ref,
|
|
25
26
|
queryParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
26
27
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FronteggRouterBase.FronteggRouterBase, {
|
|
27
|
-
pathArr: pathArr,
|
|
28
|
+
pathArr: pathArr != null ? pathArr : [route.substring(1)],
|
|
28
29
|
queryParams: queryParams
|
|
29
30
|
});
|
|
30
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FronteggRouter.js","names":["_react","_interopRequireDefault","require","_url","_router","_routing","_FronteggRouterBase","_jsxRuntime","_excluded","FronteggRouter","query","useRouter","_ref","pathArr","queryParams","_objectWithoutPropertiesLoose2","default","jsx","FronteggRouterBase","FronteggRouterProps","context","_context$resolvedUrl","pathname","URL","parse","resolvedUrl","req","url","startsWith","Object","keys","Array","isArray","join","notFound","isAuthRoute","props"],"sources":["../../../../../packages/nextjs/src/pages/FronteggRouter/FronteggRouter.tsx"],"sourcesContent":["import React from 'react';\nimport URL from 'url';\nimport { useRouter } from 'next/router';\nimport { isAuthRoute } from '../../utils/routing';\nimport { FronteggRouterBase } from '../../common/FronteggRouterBase';\n\nexport function FronteggRouter() {\n const { query } = useRouter();\n const { 'frontegg-router': pathArr, ...queryParams } = query as any;\n\n return <FronteggRouterBase pathArr={pathArr} queryParams={queryParams} />;\n}\n\nexport function FronteggRouterProps(context: any) {\n let { pathname } = URL.parse(context.resolvedUrl ?? context.req.url, true);\n if (!pathname || pathname.startsWith('/_next/data')) {\n const query = context.req.query[Object.keys(context.req.query)[0]];\n pathname = `/${Array.isArray(query) ? query.join('/') : query}`;\n }\n\n const notFound = !isAuthRoute(pathname);\n\n return {\n notFound,\n props: {},\n };\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAAqE,IAAAK,WAAA,GAAAL,OAAA;AAAA,MAAAM,SAAA;AAE9D,SAASC,cAAcA,CAAA,EAAG;EAC/B,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,iBAAS,GAAE;
|
|
1
|
+
{"version":3,"file":"FronteggRouter.js","names":["_react","_interopRequireDefault","require","_url","_router","_routing","_FronteggRouterBase","_jsxRuntime","_excluded","FronteggRouter","query","route","useRouter","_ref","pathArr","queryParams","_objectWithoutPropertiesLoose2","default","jsx","FronteggRouterBase","substring","FronteggRouterProps","context","_context$resolvedUrl","pathname","URL","parse","resolvedUrl","req","url","startsWith","Object","keys","Array","isArray","join","notFound","isAuthRoute","props"],"sources":["../../../../../packages/nextjs/src/pages/FronteggRouter/FronteggRouter.tsx"],"sourcesContent":["import React from 'react';\nimport URL from 'url';\nimport { useRouter } from 'next/router';\nimport { isAuthRoute } from '../../utils/routing';\nimport { FronteggRouterBase } from '../../common/FronteggRouterBase';\n\nexport function FronteggRouter() {\n const { query, route } = useRouter();\n const { 'frontegg-router': pathArr = [], ...queryParams } = query as any;\n\n return <FronteggRouterBase pathArr={pathArr ?? [route.substring(1)]} queryParams={queryParams} />;\n}\n\nexport function FronteggRouterProps(context: any) {\n let { pathname } = URL.parse(context.resolvedUrl ?? context.req.url, true);\n if (!pathname || pathname.startsWith('/_next/data')) {\n const query = context.req.query[Object.keys(context.req.query)[0]];\n pathname = `/${Array.isArray(query) ? query.join('/') : query}`;\n }\n\n const notFound = !isAuthRoute(pathname);\n\n return {\n notFound,\n props: {},\n };\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAAqE,IAAAK,WAAA,GAAAL,OAAA;AAAA,MAAAM,SAAA;AAE9D,SAASC,cAAcA,CAAA,EAAG;EAC/B,MAAM;IAAEC,KAAK;IAAEC;EAAM,CAAC,GAAG,IAAAC,iBAAS,GAAE;EACpC,MAAAC,IAAA,GAA4DH,KAAK;IAA3D;MAAE,iBAAiB,EAAEI,OAAO,GAAG;IAAmB,CAAC,GAAAD,IAAA;IAAbE,WAAW,OAAAC,8BAAA,CAAAC,OAAA,EAAAJ,IAAA,EAAAL,SAAA;EAEvD,oBAAO,IAAAD,WAAA,CAAAW,GAAA,EAACZ,mBAAA,CAAAa,kBAAkB;IAACL,OAAO,EAAEA,OAAO,WAAPA,OAAO,GAAI,CAACH,KAAK,CAACS,SAAS,CAAC,CAAC,CAAC,CAAE;IAACL,WAAW,EAAEA;EAAY,EAAG;AACnG;AAEO,SAASM,mBAAmBA,CAACC,OAAY,EAAE;EAAA,IAAAC,oBAAA;EAChD,IAAI;IAAEC;EAAS,CAAC,GAAGC,YAAG,CAACC,KAAK,EAAAH,oBAAA,GAACD,OAAO,CAACK,WAAW,YAAAJ,oBAAA,GAAID,OAAO,CAACM,GAAG,CAACC,GAAG,EAAE,IAAI,CAAC;EAC1E,IAAI,CAACL,QAAQ,IAAIA,QAAQ,CAACM,UAAU,CAAC,aAAa,CAAC,EAAE;IACnD,MAAMpB,KAAK,GAAGY,OAAO,CAACM,GAAG,CAAClB,KAAK,CAACqB,MAAM,CAACC,IAAI,CAACV,OAAO,CAACM,GAAG,CAAClB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClEc,QAAQ,GAAI,IAAGS,KAAK,CAACC,OAAO,CAACxB,KAAK,CAAC,GAAGA,KAAK,CAACyB,IAAI,CAAC,GAAG,CAAC,GAAGzB,KAAM,EAAC;EACjE;EAEA,MAAM0B,QAAQ,GAAG,CAAC,IAAAC,oBAAW,EAACb,QAAQ,CAAC;EAEvC,OAAO;IACLY,QAAQ;IACRE,KAAK,EAAE,CAAC;EACV,CAAC;AACH"}
|
package/pages/helpers.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.getSession = void 0;
|
|
8
8
|
exports.withSSRSession = withSSRSession;
|
|
9
|
-
var
|
|
9
|
+
var _routing = require("../utils/routing");
|
|
10
10
|
var _config = _interopRequireDefault(require("../config"));
|
|
11
11
|
var _cookies = _interopRequireDefault(require("../utils/cookies"));
|
|
12
12
|
var _createSession = _interopRequireDefault(require("../utils/createSession"));
|
|
@@ -23,7 +23,7 @@ function withSSRSession(handler) {
|
|
|
23
23
|
return handler(context, session);
|
|
24
24
|
} else {
|
|
25
25
|
var _config$authRoutes$lo, _context$resolvedUrl;
|
|
26
|
-
let loginUrl = (_config$authRoutes$lo = _config.default.authRoutes.loginUrl) != null ? _config$authRoutes$lo :
|
|
26
|
+
let loginUrl = (_config$authRoutes$lo = _config.default.authRoutes.loginUrl) != null ? _config$authRoutes$lo : _routing.defaultFronteggRoutes.logoutUrl;
|
|
27
27
|
if (!loginUrl.startsWith('/')) {
|
|
28
28
|
loginUrl = `/${loginUrl}`;
|
|
29
29
|
}
|
package/pages/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["_routing","require","_config","_interopRequireDefault","_cookies","_createSession","_encryption","getSession","req","cookies","CookieManager","getSessionCookieFromRequest","createSession","encryption","exports","withSSRSession","handler","context","session","_config$authRoutes$lo","_context$resolvedUrl","loginUrl","config","authRoutes","defaultFronteggRoutes","logoutUrl","startsWith","fullUrl","URL","appUrl","resolvedUrl","urlSearchParams","searchParams","set","url","redirect","permanent","destination","toString","props"],"sources":["../../../../packages/nextjs/src/pages/helpers.ts"],"sourcesContent":["import { defaultFronteggRoutes } from '../utils/routing';\nimport type { GetServerSidePropsContext, GetServerSidePropsResult } from 'next';\nimport type { ParsedUrlQuery } from 'querystring';\nimport type { FronteggNextJSSession, RequestType } from '../types';\nimport config from '../config';\nimport CookieManager from '../utils/cookies';\nimport createSession from '../utils/createSession';\nimport encryption from '../utils/encryption';\n\nexport const getSession = (req: RequestType) => {\n const cookies = CookieManager.getSessionCookieFromRequest(req);\n return createSession(cookies, encryption);\n};\n\nexport function withSSRSession<\n P extends { [key: string]: any } = { [key: string]: any },\n Q extends ParsedUrlQuery = ParsedUrlQuery\n>(\n handler: (\n context: GetServerSidePropsContext<Q>,\n session: FronteggNextJSSession\n ) => GetServerSidePropsResult<P> | Promise<GetServerSidePropsResult<P>>\n) {\n return async (context: GetServerSidePropsContext<Q>): Promise<GetServerSidePropsResult<P>> => {\n const session = await getSession(context.req);\n if (session) {\n return handler(context, session);\n } else {\n let loginUrl = config.authRoutes.loginUrl ?? defaultFronteggRoutes.logoutUrl;\n\n if (!loginUrl.startsWith('/')) {\n loginUrl = `/${loginUrl}`;\n }\n\n const fullUrl = new URL(config.appUrl + context.resolvedUrl);\n const urlSearchParams = fullUrl.searchParams;\n urlSearchParams.set('redirectUrl', context.resolvedUrl ?? context.req.url);\n\n return {\n redirect: {\n permanent: false,\n destination: `${loginUrl}?${urlSearchParams.toString()}`,\n },\n props: {},\n } as GetServerSidePropsResult<P>;\n }\n };\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAIA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,cAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,WAAA,GAAAH,sBAAA,CAAAF,OAAA;AAEO,MAAMM,UAAU,GAAIC,GAAgB,IAAK;EAC9C,MAAMC,OAAO,GAAGC,gBAAa,CAACC,2BAA2B,CAACH,GAAG,CAAC;EAC9D,OAAO,IAAAI,sBAAa,EAACH,OAAO,EAAEI,mBAAU,CAAC;AAC3C,CAAC;AAACC,OAAA,CAAAP,UAAA,GAAAA,UAAA;AAEK,SAASQ,cAAcA,CAI5BC,OAGuE,EACvE;EACA,OAAO,MAAOC,OAAqC,IAA2C;IAC5F,MAAMC,OAAO,GAAG,MAAMX,UAAU,CAACU,OAAO,CAACT,GAAG,CAAC;IAC7C,IAAIU,OAAO,EAAE;MACX,OAAOF,OAAO,CAACC,OAAO,EAAEC,OAAO,CAAC;IAClC,CAAC,MAAM;MAAA,IAAAC,qBAAA,EAAAC,oBAAA;MACL,IAAIC,QAAQ,IAAAF,qBAAA,GAAGG,eAAM,CAACC,UAAU,CAACF,QAAQ,YAAAF,qBAAA,GAAIK,8BAAqB,CAACC,SAAS;MAE5E,IAAI,CAACJ,QAAQ,CAACK,UAAU,CAAC,GAAG,CAAC,EAAE;QAC7BL,QAAQ,GAAI,IAAGA,QAAS,EAAC;MAC3B;MAEA,MAAMM,OAAO,GAAG,IAAIC,GAAG,CAACN,eAAM,CAACO,MAAM,GAAGZ,OAAO,CAACa,WAAW,CAAC;MAC5D,MAAMC,eAAe,GAAGJ,OAAO,CAACK,YAAY;MAC5CD,eAAe,CAACE,GAAG,CAAC,aAAa,GAAAb,oBAAA,GAAEH,OAAO,CAACa,WAAW,YAAAV,oBAAA,GAAIH,OAAO,CAACT,GAAG,CAAC0B,GAAG,CAAC;MAE1E,OAAO;QACLC,QAAQ,EAAE;UACRC,SAAS,EAAE,KAAK;UAChBC,WAAW,EAAG,GAAEhB,QAAS,IAAGU,eAAe,CAACO,QAAQ,EAAG;QACzD,CAAC;QACDC,KAAK,EAAE,CAAC;MACV,CAAC;IACH;EACF,CAAC;AACH"}
|
package/sdkVersion.js
CHANGED
package/sdkVersion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdkVersion.js","names":["version","exports","default","_default"],"sources":["../../../packages/nextjs/src/sdkVersion.ts"],"sourcesContent":["export default { version: '8.0.
|
|
1
|
+
{"version":3,"file":"sdkVersion.js","names":["version","exports","default","_default"],"sources":["../../../packages/nextjs/src/sdkVersion.ts"],"sourcesContent":["export default { version: '8.0.27-alpha.10042638343' };\n"],"mappings":";;;;;;eAAe;EAAEA,OAAO,EAAE;AAA2B,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAC,QAAA"}
|
|
@@ -17,7 +17,7 @@ const initializeFronteggApp = ({
|
|
|
17
17
|
appName,
|
|
18
18
|
storeHolder
|
|
19
19
|
}) => {
|
|
20
|
-
var _options$authOptions, _options$authOptions2, _options$hostedLoginB, _options$authOptions$, _options$authOptions3
|
|
20
|
+
var _options$authOptions, _options$authOptions2, _options$hostedLoginB, _options$authOptions$, _options$authOptions3;
|
|
21
21
|
const {
|
|
22
22
|
session,
|
|
23
23
|
user,
|
|
@@ -64,7 +64,7 @@ const initializeFronteggApp = ({
|
|
|
64
64
|
},
|
|
65
65
|
clientId: options.envClientId
|
|
66
66
|
});
|
|
67
|
-
const tenantsState = (0, _extends2.default)({
|
|
67
|
+
const tenantsState = (0, _extends2.default)({
|
|
68
68
|
tenants: tenants || [],
|
|
69
69
|
activeTenant
|
|
70
70
|
}, (_options$authOptions = options.authOptions) == null ? void 0 : _options$authOptions.tenantsState);
|
|
@@ -79,15 +79,19 @@ const initializeFronteggApp = ({
|
|
|
79
79
|
hostedLoginBox: (_options$hostedLoginB = options.hostedLoginBox) != null ? _options$hostedLoginB : false,
|
|
80
80
|
disableSilentRefresh: (_options$authOptions$ = (_options$authOptions3 = options.authOptions) == null ? void 0 : _options$authOptions3.disableSilentRefresh) != null ? _options$authOptions$ : true,
|
|
81
81
|
user: userData,
|
|
82
|
-
tenantsState
|
|
82
|
+
tenantsState: tenantsState
|
|
83
83
|
});
|
|
84
|
-
const sharedStore = (0, _reduxStore.
|
|
84
|
+
const sharedStore = (0, _reduxStore.createStore)({
|
|
85
85
|
context: contextOptions,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
storeHolder,
|
|
87
|
+
previewMode: options.previewMode,
|
|
88
|
+
name: appName != null ? appName : 'default',
|
|
89
|
+
urlStrategy: options.urlStrategy,
|
|
90
|
+
builderMode: false,
|
|
91
|
+
initialState: {
|
|
92
|
+
auth: authOptions
|
|
93
|
+
}
|
|
94
|
+
});
|
|
91
95
|
let createdApp;
|
|
92
96
|
try {
|
|
93
97
|
createdApp = _js.AppHolder.getInstance(appName != null ? appName : 'default');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_js","require","_reduxStore","_sdkVersion","_interopRequireDefault","_package","_utils","initializeFronteggApp","options","onRedirectTo","appName","storeHolder","_options$authOptions","_options$authOptions2","_options$hostedLoginB","_options$authOptions$","_options$authOptions3","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_js","require","_reduxStore","_sdkVersion","_interopRequireDefault","_package","_utils","initializeFronteggApp","options","onRedirectTo","appName","storeHolder","_options$authOptions","_options$authOptions2","_options$hostedLoginB","_options$authOptions$","_options$authOptions3","session","user","tenants","activeTenant","accessToken","refreshToken","contextOptions","_extends2","default","requestCredentials","additionalHeadersResolver","_options$contextOptio","additionalHeaders","originalAdditionalHeadersResolver","push","e","Array","isArray","key","value","nextjsPkg","version","sdkVersion","tokenResolver","secureJwtEnabled","undefined","baseUrl","path","isMiddlewarePath","envAppUrl","envBaseUrl","clientId","envClientId","tenantsState","authOptions","userData","isLoading","isAuthenticated","hostedLoginBox","disableSilentRefresh","sharedStore","createStore","context","previewMode","name","urlStrategy","builderMode","initialState","auth","createdApp","AppHolder","getInstance","store","_options$hostedLoginB2","_options$customLoginB","initialize","customLoginBox","basename","_default","exports"],"sources":["../../../../../packages/nextjs/src/utils/initializeFronteggApp/index.ts"],"sourcesContent":["import { AppHolder, FronteggApp, initialize } from '@frontegg/js';\nimport { createStore, AuthState } from '@frontegg/redux-store';\nimport { KeyValuePair } from '@frontegg/rest-api';\nimport { FronteggAppOptions } from '@frontegg/types';\nimport sdkVersion from '../../sdkVersion';\nimport type { FronteggProviderOptions } from '../../types';\nimport nextjsPkg from 'next/package.json';\nimport { isMiddlewarePath } from '../../api/utils';\n\ntype CreateOrGetFronteggAppParams = {\n options: FronteggProviderOptions;\n onRedirectTo: AuthState['onRedirectTo'];\n appName?: string;\n storeHolder: any;\n};\n\nconst initializeFronteggApp = ({\n options,\n onRedirectTo,\n appName,\n storeHolder,\n}: CreateOrGetFronteggAppParams): FronteggApp => {\n const { session, user, tenants, activeTenant } = options;\n const { accessToken, refreshToken } = session ?? {};\n\n const contextOptions: FronteggAppOptions['contextOptions'] = {\n requestCredentials: 'include' as RequestCredentials,\n ...options.contextOptions,\n additionalHeadersResolver: async () => {\n const additionalHeaders: KeyValuePair[] = [];\n const originalAdditionalHeadersResolver = options.contextOptions?.additionalHeadersResolver;\n if (typeof originalAdditionalHeadersResolver === 'function') {\n try {\n additionalHeaders.push(...(await originalAdditionalHeadersResolver()));\n } catch (e) {\n /** ignore failed additionalHeadersResolver */\n }\n } else if (Array.isArray(originalAdditionalHeadersResolver)) {\n additionalHeaders.push(...(originalAdditionalHeadersResolver as KeyValuePair[]));\n }\n additionalHeaders.push({\n key: 'x-frontegg-framework',\n value: `next@${nextjsPkg.version}`,\n });\n additionalHeaders.push({\n key: 'x-frontegg-sdk',\n value: `@frontegg/nextjs@${sdkVersion.version}`,\n });\n return additionalHeaders;\n },\n tokenResolver: options.secureJwtEnabled ? () => '' : undefined,\n baseUrl: (path: string) => {\n if (isMiddlewarePath(path) || options.secureJwtEnabled) {\n return `${options.envAppUrl}/api`;\n } else {\n return options.envBaseUrl;\n }\n },\n clientId: options.envClientId,\n };\n\n const tenantsState = {\n tenants: tenants || [],\n activeTenant,\n ...options.authOptions?.tenantsState,\n };\n const userData = user\n ? {\n ...user,\n accessToken: accessToken ?? '',\n refreshToken: refreshToken ?? undefined,\n ...options.authOptions?.user,\n }\n : null;\n\n const authOptions: FronteggAppOptions['authOptions'] = {\n ...options.authOptions,\n onRedirectTo,\n isLoading: false,\n isAuthenticated: !!options.session,\n hostedLoginBox: options.hostedLoginBox ?? false,\n disableSilentRefresh: options.authOptions?.disableSilentRefresh ?? true,\n user: userData,\n tenantsState: tenantsState as AuthState['tenantsState'],\n };\n\n const sharedStore = createStore({\n context: contextOptions,\n storeHolder,\n previewMode: options.previewMode,\n name: appName ?? 'default',\n urlStrategy: options.urlStrategy,\n builderMode: false,\n initialState: {\n auth: authOptions,\n },\n });\n\n let createdApp;\n try {\n createdApp = AppHolder.getInstance(appName ?? 'default');\n createdApp.store = sharedStore;\n } catch (e) {\n createdApp = initialize(\n {\n ...options,\n store: sharedStore,\n hostedLoginBox: options.hostedLoginBox ?? false,\n customLoginBox: options.customLoginBox ?? false,\n basename: options.basename,\n authOptions,\n contextOptions,\n onRedirectTo,\n },\n appName ?? 'default'\n );\n }\n return createdApp;\n};\nexport default initializeFronteggApp;\n"],"mappings":"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"}
|
package/utils/routing/index.d.ts
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
export declare const defaultFronteggRoutes: {
|
|
2
|
+
authenticatedUrl: string;
|
|
3
|
+
loginUrl: string;
|
|
4
|
+
stepUpUrl: string;
|
|
5
|
+
logoutUrl: string;
|
|
6
|
+
activateUrl: string;
|
|
7
|
+
impersonationUrl: string;
|
|
8
|
+
acceptInvitationUrl: string;
|
|
9
|
+
forgetPasswordUrl: string;
|
|
10
|
+
resetPhoneNumberUrl: string;
|
|
11
|
+
resetPasswordUrl: string;
|
|
12
|
+
socialLoginCallbackUrl: string;
|
|
13
|
+
signUpUrl: string;
|
|
14
|
+
oidcRedirectUrl: string;
|
|
15
|
+
samlCallbackUrl: string;
|
|
16
|
+
magicLinkCallbackUrl: string;
|
|
17
|
+
hostedLoginRedirectUrl: string;
|
|
18
|
+
openAppUrl: string;
|
|
19
|
+
};
|
|
1
20
|
export declare function getAuthRoutes(): {
|
|
2
21
|
routesArr: string[];
|
|
3
22
|
routesObj: Record<string, string>;
|
package/utils/routing/index.js
CHANGED
|
@@ -4,13 +4,33 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
+
exports.defaultFronteggRoutes = void 0;
|
|
7
8
|
exports.getAuthRoutes = getAuthRoutes;
|
|
8
9
|
exports.isAuthRoute = isAuthRoute;
|
|
9
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var _reduxStore = require("@frontegg/redux-store");
|
|
11
11
|
var _config = _interopRequireDefault(require("../../config"));
|
|
12
|
+
const defaultFronteggRoutes = {
|
|
13
|
+
authenticatedUrl: '/',
|
|
14
|
+
loginUrl: '/account/login',
|
|
15
|
+
stepUpUrl: '/account/step-up',
|
|
16
|
+
logoutUrl: '/account/logout',
|
|
17
|
+
activateUrl: '/account/activate',
|
|
18
|
+
impersonationUrl: '/account/impersonate',
|
|
19
|
+
acceptInvitationUrl: '/account/invitation/accept',
|
|
20
|
+
forgetPasswordUrl: '/account/forget-password',
|
|
21
|
+
resetPhoneNumberUrl: '/account/reset-phone-number',
|
|
22
|
+
resetPasswordUrl: '/account/reset-password',
|
|
23
|
+
socialLoginCallbackUrl: '/account/social/success',
|
|
24
|
+
signUpUrl: '/account/sign-up',
|
|
25
|
+
oidcRedirectUrl: '/account/oidc/callback',
|
|
26
|
+
samlCallbackUrl: '/account/saml/callback',
|
|
27
|
+
magicLinkCallbackUrl: '/account/login/magic-link',
|
|
28
|
+
hostedLoginRedirectUrl: '/oauth/callback',
|
|
29
|
+
openAppUrl: '/account/redirect'
|
|
30
|
+
};
|
|
31
|
+
exports.defaultFronteggRoutes = defaultFronteggRoutes;
|
|
12
32
|
function getAuthRoutes() {
|
|
13
|
-
const routesObj = (0, _extends2.default)({},
|
|
33
|
+
const routesObj = (0, _extends2.default)({}, defaultFronteggRoutes, _config.default.authRoutes);
|
|
14
34
|
const routesArr = Object.keys(routesObj).reduce((p, key) => [...p, routesObj[key]], []);
|
|
15
35
|
return {
|
|
16
36
|
routesArr,
|
|
@@ -25,7 +45,7 @@ function isAuthRoute(pathname) {
|
|
|
25
45
|
if (_config.default.isHostedLogin) {
|
|
26
46
|
return routesObj.loginUrl === pathname || routesObj.logoutUrl === pathname || routesObj.hostedLoginRedirectUrl === pathname;
|
|
27
47
|
} else {
|
|
28
|
-
return routesArr.indexOf(pathname) !== -1;
|
|
48
|
+
return pathname !== routesObj.authenticatedUrl && routesArr.indexOf(pathname) !== -1;
|
|
29
49
|
}
|
|
30
50
|
}
|
|
31
51
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_config","_interopRequireDefault","require","defaultFronteggRoutes","authenticatedUrl","loginUrl","stepUpUrl","logoutUrl","activateUrl","impersonationUrl","acceptInvitationUrl","forgetPasswordUrl","resetPhoneNumberUrl","resetPasswordUrl","socialLoginCallbackUrl","signUpUrl","oidcRedirectUrl","samlCallbackUrl","magicLinkCallbackUrl","hostedLoginRedirectUrl","openAppUrl","exports","getAuthRoutes","routesObj","_extends2","default","config","authRoutes","routesArr","Object","keys","reduce","p","key","isAuthRoute","pathname","isHostedLogin","indexOf"],"sources":["../../../../../packages/nextjs/src/utils/routing/index.ts"],"sourcesContent":["import config from '../../config';\n\nexport const defaultFronteggRoutes = {\n authenticatedUrl: '/',\n loginUrl: '/account/login',\n stepUpUrl: '/account/step-up',\n logoutUrl: '/account/logout',\n activateUrl: '/account/activate',\n impersonationUrl: '/account/impersonate',\n acceptInvitationUrl: '/account/invitation/accept',\n forgetPasswordUrl: '/account/forget-password',\n resetPhoneNumberUrl: '/account/reset-phone-number',\n resetPasswordUrl: '/account/reset-password',\n socialLoginCallbackUrl: '/account/social/success',\n signUpUrl: '/account/sign-up',\n oidcRedirectUrl: '/account/oidc/callback',\n samlCallbackUrl: '/account/saml/callback',\n magicLinkCallbackUrl: '/account/login/magic-link',\n hostedLoginRedirectUrl: '/oauth/callback',\n openAppUrl: '/account/redirect',\n};\n\nexport function getAuthRoutes(): { routesArr: string[]; routesObj: Record<string, string> } {\n const routesObj = {\n ...defaultFronteggRoutes,\n ...config.authRoutes,\n };\n const routesArr: string[] = Object.keys(routesObj).reduce(\n (p: string[], key: string) => [...p, (routesObj as any)[key]],\n []\n );\n return { routesArr, routesObj };\n}\n\nexport function isAuthRoute(pathname: string): boolean {\n const { routesArr, routesObj } = getAuthRoutes();\n\n if (config.isHostedLogin) {\n return (\n routesObj.loginUrl === pathname ||\n routesObj.logoutUrl === pathname ||\n routesObj.hostedLoginRedirectUrl === pathname\n );\n } else {\n return pathname !== routesObj.authenticatedUrl && routesArr.indexOf(pathname) !== -1;\n }\n}\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEO,MAAMC,qBAAqB,GAAG;EACnCC,gBAAgB,EAAE,GAAG;EACrBC,QAAQ,EAAE,gBAAgB;EAC1BC,SAAS,EAAE,kBAAkB;EAC7BC,SAAS,EAAE,iBAAiB;EAC5BC,WAAW,EAAE,mBAAmB;EAChCC,gBAAgB,EAAE,sBAAsB;EACxCC,mBAAmB,EAAE,4BAA4B;EACjDC,iBAAiB,EAAE,0BAA0B;EAC7CC,mBAAmB,EAAE,6BAA6B;EAClDC,gBAAgB,EAAE,yBAAyB;EAC3CC,sBAAsB,EAAE,yBAAyB;EACjDC,SAAS,EAAE,kBAAkB;EAC7BC,eAAe,EAAE,wBAAwB;EACzCC,eAAe,EAAE,wBAAwB;EACzCC,oBAAoB,EAAE,2BAA2B;EACjDC,sBAAsB,EAAE,iBAAiB;EACzCC,UAAU,EAAE;AACd,CAAC;AAACC,OAAA,CAAAlB,qBAAA,GAAAA,qBAAA;AAEK,SAASmB,aAAaA,CAAA,EAA+D;EAC1F,MAAMC,SAAS,OAAAC,SAAA,CAAAC,OAAA,MACVtB,qBAAqB,EACrBuB,eAAM,CAACC,UAAU,CACrB;EACD,MAAMC,SAAmB,GAAGC,MAAM,CAACC,IAAI,CAACP,SAAS,CAAC,CAACQ,MAAM,CACvD,CAACC,CAAW,EAAEC,GAAW,KAAK,CAAC,GAAGD,CAAC,EAAGT,SAAS,CAASU,GAAG,CAAC,CAAC,EAC7D,EAAE,CACH;EACD,OAAO;IAAEL,SAAS;IAAEL;EAAU,CAAC;AACjC;AAEO,SAASW,WAAWA,CAACC,QAAgB,EAAW;EACrD,MAAM;IAAEP,SAAS;IAAEL;EAAU,CAAC,GAAGD,aAAa,EAAE;EAEhD,IAAII,eAAM,CAACU,aAAa,EAAE;IACxB,OACEb,SAAS,CAAClB,QAAQ,KAAK8B,QAAQ,IAC/BZ,SAAS,CAAChB,SAAS,KAAK4B,QAAQ,IAChCZ,SAAS,CAACJ,sBAAsB,KAAKgB,QAAQ;EAEjD,CAAC,MAAM;IACL,OAAOA,QAAQ,KAAKZ,SAAS,CAACnB,gBAAgB,IAAIwB,SAAS,CAACS,OAAO,CAACF,QAAQ,CAAC,KAAK,CAAC,CAAC;EACtF;AACF"}
|
|
@@ -8,10 +8,11 @@ var _react = require("react");
|
|
|
8
8
|
var _reduxStore = require("@frontegg/redux-store");
|
|
9
9
|
const useOnRedirectTo = (baseName, router, routes) => {
|
|
10
10
|
const isAuthRouteRef = (0, _react.useRef)(() => false);
|
|
11
|
+
const onRedirectTo = (0, _react.useRef)((_path, opts) => {});
|
|
11
12
|
(0, _react.useMemo)(() => {
|
|
12
13
|
isAuthRouteRef.current = path => (0, _reduxStore.isAuthRoute)(path, routes);
|
|
13
14
|
}, [routes]);
|
|
14
|
-
|
|
15
|
+
onRedirectTo.current = (_path, opts) => {
|
|
15
16
|
const isSSR = typeof window == undefined;
|
|
16
17
|
let path = _path;
|
|
17
18
|
if (path.startsWith(baseName)) {
|
|
@@ -26,7 +27,8 @@ const useOnRedirectTo = (baseName, router, routes) => {
|
|
|
26
27
|
} else {
|
|
27
28
|
opts != null && opts.replace ? router.replace(path) : router.push(path);
|
|
28
29
|
}
|
|
29
|
-
}
|
|
30
|
+
};
|
|
31
|
+
return onRedirectTo.current;
|
|
30
32
|
};
|
|
31
33
|
var _default = useOnRedirectTo;
|
|
32
34
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","require","_reduxStore","useOnRedirectTo","baseName","router","routes","isAuthRouteRef","useRef","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","require","_reduxStore","useOnRedirectTo","baseName","router","routes","isAuthRouteRef","useRef","onRedirectTo","_path","opts","useMemo","current","path","isAuthRoute","isSSR","window","undefined","startsWith","substring","length","preserveQueryParams","location","search","refresh","Cypress","push","href","replace","_default","exports","default"],"sources":["../../../../../packages/nextjs/src/utils/useOnRedirectTo/index.ts"],"sourcesContent":["import { useCallback, useMemo, useRef } from 'react';\nimport { RedirectOptions } from '@frontegg/rest-api';\nimport type { NextRouter } from 'next/router';\nimport type { AppRouterInstance } from 'next/dist/shared/lib/app-router-context';\nimport { isAuthRoute, AuthPageRoutes } from '@frontegg/redux-store';\n\nconst useOnRedirectTo = (\n baseName: string,\n router: AppRouterInstance | NextRouter,\n routes?: Partial<AuthPageRoutes>\n) => {\n const isAuthRouteRef = useRef<(path: string) => boolean>(() => false);\n const onRedirectTo = useRef((_path: string, opts?: RedirectOptions) => {});\n\n useMemo(() => {\n isAuthRouteRef.current = (path) => isAuthRoute(path, routes);\n }, [routes]);\n\n onRedirectTo.current = (_path: string, opts?: RedirectOptions) => {\n const isSSR = typeof window == undefined;\n let path = _path;\n if (path.startsWith(baseName)) {\n path = path.substring(baseName.length);\n }\n if (opts?.preserveQueryParams || isAuthRouteRef.current(path)) {\n path = `${path}${window.location.search}`;\n }\n if (opts?.refresh && !isSSR) {\n // @ts-ignore\n window.Cypress ? router.push(path) : (window.location.href = path);\n } else {\n opts?.replace ? router.replace(path) : router.push(path);\n }\n };\n\n return onRedirectTo.current;\n};\n\nexport default useOnRedirectTo;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,WAAA,GAAAD,OAAA;AAEA,MAAME,eAAe,GAAGA,CACtBC,QAAgB,EAChBC,MAAsC,EACtCC,MAAgC,KAC7B;EACH,MAAMC,cAAc,GAAG,IAAAC,aAAM,EAA4B,MAAM,KAAK,CAAC;EACrE,MAAMC,YAAY,GAAG,IAAAD,aAAM,EAAC,CAACE,KAAa,EAAEC,IAAsB,KAAK,CAAC,CAAC,CAAC;EAE1E,IAAAC,cAAO,EAAC,MAAM;IACZL,cAAc,CAACM,OAAO,GAAIC,IAAI,IAAK,IAAAC,uBAAW,EAACD,IAAI,EAAER,MAAM,CAAC;EAC9D,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZG,YAAY,CAACI,OAAO,GAAG,CAACH,KAAa,EAAEC,IAAsB,KAAK;IAChE,MAAMK,KAAK,GAAG,OAAOC,MAAM,IAAIC,SAAS;IACxC,IAAIJ,IAAI,GAAGJ,KAAK;IAChB,IAAII,IAAI,CAACK,UAAU,CAACf,QAAQ,CAAC,EAAE;MAC7BU,IAAI,GAAGA,IAAI,CAACM,SAAS,CAAChB,QAAQ,CAACiB,MAAM,CAAC;IACxC;IACA,IAAIV,IAAI,YAAJA,IAAI,CAAEW,mBAAmB,IAAIf,cAAc,CAACM,OAAO,CAACC,IAAI,CAAC,EAAE;MAC7DA,IAAI,GAAI,GAAEA,IAAK,GAAEG,MAAM,CAACM,QAAQ,CAACC,MAAO,EAAC;IAC3C;IACA,IAAIb,IAAI,YAAJA,IAAI,CAAEc,OAAO,IAAI,CAACT,KAAK,EAAE;MAC3B;MACAC,MAAM,CAACS,OAAO,GAAGrB,MAAM,CAACsB,IAAI,CAACb,IAAI,CAAC,GAAIG,MAAM,CAACM,QAAQ,CAACK,IAAI,GAAGd,IAAK;IACpE,CAAC,MAAM;MACLH,IAAI,YAAJA,IAAI,CAAEkB,OAAO,GAAGxB,MAAM,CAACwB,OAAO,CAACf,IAAI,CAAC,GAAGT,MAAM,CAACsB,IAAI,CAACb,IAAI,CAAC;IAC1D;EACF,CAAC;EAED,OAAOL,YAAY,CAACI,OAAO;AAC7B,CAAC;AAAC,IAAAiB,QAAA,GAEa3B,eAAe;AAAA4B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|