@frontegg/nextjs 6.7.20 → 6.7.21-alpha.4441971157
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/CHANGELOG.md +11 -0
- package/README.md +19 -37
- package/api/index.d.ts +19 -0
- package/api/index.js +87 -0
- package/api/index.js.map +1 -0
- package/api/package.json +6 -0
- package/api/urls.d.ts +33 -0
- package/api/urls.js +56 -0
- package/api/urls.js.map +1 -0
- package/api/utils.d.ts +46 -0
- package/api/utils.js +123 -0
- package/api/utils.js.map +1 -0
- package/app/ClientFronteggProvider.d.ts +3 -0
- package/app/ClientFronteggProvider.js +32 -0
- package/app/ClientFronteggProvider.js.map +1 -0
- package/app/FronteggAppProvider.d.ts +4 -0
- package/app/FronteggAppProvider.js +25 -0
- package/app/FronteggAppProvider.js.map +1 -0
- package/{client → app}/FronteggAppRouter.d.ts +11 -10
- package/app/FronteggAppRouter.js +38 -0
- package/app/FronteggAppRouter.js.map +1 -0
- package/app/helpers.d.ts +5 -0
- package/app/helpers.js +43 -0
- package/app/helpers.js.map +1 -0
- package/app/index.d.ts +4 -0
- package/app/index.js +39 -0
- package/app/index.js.map +1 -0
- package/app/package.json +6 -0
- package/common/{client/AppContext.d.ts → AppContext.d.ts} +4 -4
- package/common/AppContext.js +12 -0
- package/common/AppContext.js.map +1 -0
- package/{AuthorizedContent.d.ts → common/AuthorizedContent.d.ts} +9 -8
- package/common/AuthorizedContent.js +54 -0
- package/common/AuthorizedContent.js.map +1 -0
- package/common/{client/FronteggBaseProvider.d.ts → FronteggBaseProvider.d.ts} +3 -3
- package/common/FronteggBaseProvider.js +76 -0
- package/common/FronteggBaseProvider.js.map +1 -0
- package/common/FronteggRouterBase.d.ts +9 -0
- package/common/FronteggRouterBase.js +48 -0
- package/common/FronteggRouterBase.js.map +1 -0
- package/common/helpers.d.ts +3 -9
- package/common/helpers.js +32 -0
- package/common/helpers.js.map +1 -0
- package/common/index.d.ts +4 -6
- package/common/index.js +45 -10
- package/common/index.js.map +1 -1
- package/common/package.json +6 -0
- package/common/useRequestAuthorizeSSR.d.ts +5 -0
- package/common/useRequestAuthorizeSSR.js +30 -0
- package/common/useRequestAuthorizeSSR.js.map +1 -0
- package/config/constants.d.ts +57 -0
- package/config/constants.js +20 -0
- package/config/constants.js.map +1 -0
- package/config/helpers.d.ts +28 -0
- package/config/helpers.js +97 -0
- package/config/helpers.js.map +1 -0
- package/config/index.d.ts +24 -0
- package/config/index.js +94 -0
- package/config/index.js.map +1 -0
- package/config/package.json +6 -0
- package/config/types.d.ts +18 -0
- package/config/types.js +6 -0
- package/config/types.js.map +1 -0
- package/edge/getSessionOnEdge.d.ts +3 -2
- package/edge/getSessionOnEdge.js +16 -0
- package/edge/getSessionOnEdge.js.map +1 -0
- package/edge/index.d.ts +3 -2
- package/edge/index.js +38 -63
- package/edge/index.js.map +1 -1
- package/edge/package.json +6 -0
- package/edge/redirectToLogin.d.ts +2 -0
- package/edge/redirectToLogin.js +16 -0
- package/edge/redirectToLogin.js.map +1 -0
- package/edge/shouldBypassMiddleware.d.ts +21 -7
- package/edge/shouldBypassMiddleware.js +50 -0
- package/edge/shouldBypassMiddleware.js.map +1 -0
- package/index.d.ts +7 -11
- package/index.js +98 -1392
- package/index.js.map +1 -1
- package/middleware/FronteggApiMiddleware.d.ts +8 -0
- package/middleware/FronteggApiMiddleware.js +34 -0
- package/middleware/FronteggApiMiddleware.js.map +1 -0
- package/middleware/FronteggProxy.d.ts +4 -0
- package/middleware/FronteggProxy.js +31 -0
- package/middleware/FronteggProxy.js.map +1 -0
- package/middleware/ProxyRequestCallback.d.ts +13 -0
- package/middleware/ProxyRequestCallback.js +56 -0
- package/middleware/ProxyRequestCallback.js.map +1 -0
- package/middleware/ProxyResponseCallback.d.ts +13 -0
- package/middleware/ProxyResponseCallback.js +111 -0
- package/middleware/ProxyResponseCallback.js.map +1 -0
- package/middleware/constants.d.ts +8 -0
- package/middleware/constants.js +17 -0
- package/middleware/constants.js.map +1 -0
- package/{common/FronteggProxy.d.ts → middleware/helpers.d.ts} +13 -26
- package/middleware/helpers.js +42 -0
- package/middleware/helpers.js.map +1 -0
- package/middleware/index.d.ts +23 -0
- package/middleware/index.js +13 -0
- package/middleware/index.js.map +1 -0
- package/middleware/package.json +6 -0
- package/no-ssr/ExpireInListener.d.ts +2 -0
- package/no-ssr/ExpireInListener.js +29 -0
- package/no-ssr/ExpireInListener.js.map +1 -0
- package/{FronteggProviderNoSSR.d.ts → no-ssr/FronteggProviderNoSSR.d.ts} +4 -4
- package/no-ssr/FronteggProviderNoSSR.js +84 -0
- package/no-ssr/FronteggProviderNoSSR.js.map +1 -0
- package/no-ssr/index.d.ts +2 -0
- package/no-ssr/index.js +13 -0
- package/no-ssr/index.js.map +1 -0
- package/no-ssr/package.json +6 -0
- package/package.json +6 -7
- package/pages/FronteggPagesProvider/index.d.ts +4 -0
- package/pages/FronteggPagesProvider/index.js +32 -0
- package/pages/FronteggPagesProvider/index.js.map +1 -0
- package/pages/FronteggPagesProvider/package.json +6 -0
- package/{FronteggRouter.d.ts → pages/FronteggRouter/FronteggRouter.d.ts} +6 -5
- package/pages/FronteggRouter/FronteggRouter.js +46 -0
- package/pages/FronteggRouter/FronteggRouter.js.map +1 -0
- package/pages/FronteggRouter/index.d.ts +26 -0
- package/pages/FronteggRouter/index.js +19 -0
- package/pages/FronteggRouter/index.js.map +1 -0
- package/pages/FronteggRouter/package.json +6 -0
- package/{session.d.ts → pages/helpers.d.ts} +10 -10
- package/pages/helpers.js +40 -0
- package/pages/helpers.js.map +1 -0
- package/pages/index.d.ts +3 -0
- package/pages/index.js +47 -0
- package/pages/index.js.map +1 -0
- package/pages/package.json +6 -0
- package/pages/withFronteggApp/index.d.ts +2 -0
- package/pages/withFronteggApp/index.js +13 -0
- package/pages/withFronteggApp/index.js.map +1 -0
- package/pages/withFronteggApp/package.json +6 -0
- package/pages/withFronteggApp/types.d.ts +12 -0
- package/pages/withFronteggApp/types.js +6 -0
- package/pages/withFronteggApp/types.js.map +1 -0
- package/pages/withFronteggApp/withFronteggApp.d.ts +2 -0
- package/pages/withFronteggApp/withFronteggApp.js +70 -0
- package/pages/withFronteggApp/withFronteggApp.js.map +1 -0
- package/sdkVersion.d.ts +4 -4
- package/sdkVersion.js +11 -0
- package/sdkVersion.js.map +1 -0
- package/{common/types.d.ts → types/index.d.ts} +80 -74
- package/types/index.js +6 -0
- package/types/index.js.map +1 -0
- package/types/package.json +6 -0
- package/utils/common/constants.d.ts +12 -0
- package/utils/common/constants.js +23 -0
- package/utils/common/constants.js.map +1 -0
- package/utils/common/index.d.ts +15 -0
- package/utils/common/index.js +32 -0
- package/utils/common/index.js.map +1 -0
- package/utils/common/package.json +6 -0
- package/utils/cookies/constants.d.ts +7 -0
- package/utils/cookies/constants.js +15 -0
- package/utils/cookies/constants.js.map +1 -0
- package/utils/cookies/helpers.d.ts +25 -0
- package/utils/cookies/helpers.js +64 -0
- package/utils/cookies/helpers.js.map +1 -0
- package/utils/cookies/index.d.ts +45 -0
- package/utils/cookies/index.js +239 -0
- package/utils/cookies/index.js.map +1 -0
- package/utils/cookies/package.json +6 -0
- package/utils/cookies/serializer.d.ts +22 -0
- package/utils/cookies/serializer.js +161 -0
- package/utils/cookies/serializer.js.map +1 -0
- package/utils/cookies/types.d.ts +31 -0
- package/utils/cookies/types.js +6 -0
- package/utils/cookies/types.js.map +1 -0
- package/utils/createSession/index.d.ts +2 -0
- package/utils/createSession/index.js +51 -0
- package/utils/createSession/index.js.map +1 -0
- package/utils/createSession/package.json +6 -0
- package/utils/encryption/index.d.ts +3 -0
- package/utils/encryption/index.js +37 -0
- package/utils/encryption/index.js.map +1 -0
- package/utils/encryption/package.json +6 -0
- package/utils/encryption-edge/index.d.ts +3 -0
- package/utils/encryption-edge/index.js +37 -0
- package/utils/encryption-edge/index.js.map +1 -0
- package/utils/encryption-edge/package.json +6 -0
- package/utils/errors/FronteggEnvNotFound.d.ts +3 -0
- package/utils/errors/FronteggEnvNotFound.js +15 -0
- package/utils/errors/FronteggEnvNotFound.js.map +1 -0
- package/utils/errors/InvalidFronteggEnv.d.ts +3 -0
- package/utils/errors/InvalidFronteggEnv.js +15 -0
- package/utils/errors/InvalidFronteggEnv.js.map +1 -0
- package/utils/errors/index.d.ts +2 -0
- package/utils/errors/index.js +28 -0
- package/utils/errors/index.js.map +1 -0
- package/utils/errors/package.json +6 -0
- package/utils/fetchUserData/index.d.ts +7 -0
- package/utils/fetchUserData/index.js +56 -0
- package/utils/fetchUserData/index.js.map +1 -0
- package/utils/fetchUserData/package.json +6 -0
- package/utils/fronteggLogger/constants.d.ts +13 -0
- package/utils/fronteggLogger/constants.js +28 -0
- package/utils/fronteggLogger/constants.js.map +1 -0
- package/utils/fronteggLogger/index.d.ts +17 -0
- package/utils/fronteggLogger/index.js +67 -0
- package/utils/fronteggLogger/index.js.map +1 -0
- package/utils/fronteggLogger/package.json +6 -0
- package/{common/client/createOrGetFronteggApp.d.ts → utils/initializeFronteggApp/index.d.ts} +11 -11
- package/utils/initializeFronteggApp/index.js +108 -0
- package/utils/initializeFronteggApp/index.js.map +1 -0
- package/utils/initializeFronteggApp/package.json +6 -0
- package/utils/jwt/index.d.ts +22 -0
- package/utils/jwt/index.js +61 -0
- package/utils/jwt/index.js.map +1 -0
- package/utils/jwt/package.json +6 -0
- package/utils/refreshAccessToken/helpers.d.ts +16 -0
- package/utils/refreshAccessToken/helpers.js +80 -0
- package/utils/refreshAccessToken/helpers.js.map +1 -0
- package/utils/refreshAccessToken/index.d.ts +9 -0
- package/utils/refreshAccessToken/index.js +94 -0
- package/utils/refreshAccessToken/index.js.map +1 -0
- package/utils/refreshAccessToken/package.json +6 -0
- package/utils/routing/index.d.ts +5 -0
- package/utils/routing/index.js +31 -0
- package/utils/routing/index.js.map +1 -0
- package/utils/routing/package.json +6 -0
- package/utils/useOnRedirectTo/index.d.ts +5 -0
- package/utils/useOnRedirectTo/index.js +28 -0
- package/utils/useOnRedirectTo/index.js.map +1 -0
- package/utils/useOnRedirectTo/package.json +6 -0
- package/CookieManager-e50dc144.js +0 -322
- package/CookieManager-e50dc144.js.map +0 -1
- package/FronteggClientProviderNext13-b3c1e7a0.js +0 -158
- package/FronteggClientProviderNext13-b3c1e7a0.js.map +0 -1
- package/FronteggMiddleware.d.ts +0 -15
- package/FronteggProvider.d.ts +0 -3
- package/api-25516652.js +0 -58
- package/api-25516652.js.map +0 -1
- package/client/FronteggClientProviderNext13.d.ts +0 -3
- package/client/index.d.ts +0 -2
- package/client/index.js +0 -64
- package/client/index.js.map +0 -1
- package/common/CookieManager.d.ts +0 -41
- package/common/FronteggConfig.d.ts +0 -31
- package/common/api.d.ts +0 -3
- package/common/client/ExpireInListener.d.ts +0 -2
- package/common/client/hooks/index.d.ts +0 -1
- package/common/client/hooks/useRequestAuthorizeSSR.d.ts +0 -5
- package/common/client/index.d.ts +0 -4
- package/common/consts.d.ts +0 -6
- package/common/createGetSession.d.ts +0 -7
- package/common/utils.d.ts +0 -1
- package/createGetSession-2e1e4506.js +0 -50
- package/createGetSession-2e1e4506.js.map +0 -1
- package/helpers-dac37998.js +0 -88
- package/helpers-dac37998.js.map +0 -1
- package/refreshToken.d.ts +0 -3
- package/server/FronteggProviderNext13.d.ts +0 -3
- package/server/getSessionNext13.d.ts +0 -4
- package/server/index.d.ts +0 -2
- package/server/index.js +0 -84
- package/server/index.js.map +0 -1
- package/withFronteggApp.d.ts +0 -11
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.FronteggProviderNoSSR = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
var _js = require("@frontegg/js");
|
|
12
|
+
var _reactHooks = require("@frontegg/react-hooks");
|
|
13
|
+
var _restApi = require("@frontegg/rest-api");
|
|
14
|
+
var _router = require("next/router");
|
|
15
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
16
|
+
var _AppContext = _interopRequireDefault(require("../common/AppContext"));
|
|
17
|
+
var _useOnRedirectTo = _interopRequireDefault(require("../utils/useOnRedirectTo"));
|
|
18
|
+
var _ExpireInListener2 = _interopRequireDefault(require("./ExpireInListener"));
|
|
19
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
|
+
var _ExpireInListener;
|
|
21
|
+
const _excluded = ["router", "appName", "hostedLoginBox", "customLoginBox"];
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
24
|
+
const Connector = _props => {
|
|
25
|
+
var _props$basename;
|
|
26
|
+
const {
|
|
27
|
+
router,
|
|
28
|
+
appName,
|
|
29
|
+
hostedLoginBox
|
|
30
|
+
} = _props,
|
|
31
|
+
props = (0, _objectWithoutPropertiesLoose2.default)(_props, _excluded);
|
|
32
|
+
const baseName = (_props$basename = props.basename) != null ? _props$basename : router.basePath;
|
|
33
|
+
const onRedirectTo = (0, _useOnRedirectTo.default)(baseName, router);
|
|
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, {
|
|
44
|
+
onRedirectTo
|
|
45
|
+
}),
|
|
46
|
+
contextOptions: (0, _extends2.default)({
|
|
47
|
+
requestCredentials: 'include'
|
|
48
|
+
}, props.contextOptions),
|
|
49
|
+
onRedirectTo
|
|
50
|
+
}), appName != null ? appName : 'default');
|
|
51
|
+
}
|
|
52
|
+
return createdApp;
|
|
53
|
+
}, [appName, props, hostedLoginBox, baseName, onRedirectTo]);
|
|
54
|
+
_restApi.ContextHolder.setOnRedirectTo(onRedirectTo);
|
|
55
|
+
(0, _react.useEffect)(() => {
|
|
56
|
+
app.store.dispatch({
|
|
57
|
+
type: 'auth/requestAuthorize',
|
|
58
|
+
payload: true
|
|
59
|
+
});
|
|
60
|
+
}, [app]);
|
|
61
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_AppContext.default.Provider, {
|
|
62
|
+
value: app,
|
|
63
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHooks.FronteggStoreProvider, (0, _extends2.default)({}, (0, _extends2.default)({}, props, {
|
|
64
|
+
app
|
|
65
|
+
}), {
|
|
66
|
+
children: props.children
|
|
67
|
+
}))
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
const FronteggNextJSProvider = props => {
|
|
71
|
+
const router = (0, _router.useRouter)();
|
|
72
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Connector, (0, _extends2.default)({}, props, {
|
|
73
|
+
router: router,
|
|
74
|
+
children: [_ExpireInListener || (_ExpireInListener = /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpireInListener2.default, {})), props.children]
|
|
75
|
+
}));
|
|
76
|
+
};
|
|
77
|
+
const FronteggProviderNoSSR = props => {
|
|
78
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(FronteggNextJSProvider, (0, _extends2.default)({}, props, {
|
|
79
|
+
framework: 'nextjs',
|
|
80
|
+
children: props.children
|
|
81
|
+
}));
|
|
82
|
+
};
|
|
83
|
+
exports.FronteggProviderNoSSR = FronteggProviderNoSSR;
|
|
84
|
+
//# sourceMappingURL=FronteggProviderNoSSR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FronteggProviderNoSSR.js","names":["Connector","_props","router","appName","hostedLoginBox","props","baseName","basename","basePath","onRedirectTo","useOnRedirectTo","app","useMemo","createdApp","AppHolder","getInstance","e","initialize","authOptions","contextOptions","requestCredentials","ContextHolder","setOnRedirectTo","useEffect","store","dispatch","type","payload","children","FronteggNextJSProvider","useRouter","FronteggProviderNoSSR"],"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);\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.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;AAAA;EAAA;AAAA;AAAA;AAAA;AAAA;AAEb;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAkD;AAAA;AAAA;AAAA;AAAA;AASlD,MAAMA,SAA6B,GAAIC,MAAM,IAAK;EAAA;EAChD,MAAM;MAAEC,MAAM;MAAEC,OAAO;MAAEC;IAAyC,CAAC,GAAGH,MAAM;IAAhBI,KAAK,+CAAKJ,MAAM;EAC5E,MAAMK,QAAQ,sBAAGD,KAAK,CAACE,QAAQ,8BAAIL,MAAM,CAACM,QAAQ;EAElD,MAAMC,YAAY,GAAG,IAAAC,wBAAe,EAACJ,QAAQ,EAAEJ,MAAM,CAAC;EAEtD,MAAMS,GAAG,GAAG,IAAAC,cAAO,EAAC,MAAM;IACxB,IAAIC,UAAU;IACd,IAAI;MACFA,UAAU,GAAGC,aAAS,CAACC,WAAW,CAACZ,OAAO,WAAPA,OAAO,GAAI,SAAS,CAAC;IAC1D,CAAC,CAAC,OAAOa,CAAC,EAAE;MAAA;MACVH,UAAU,GAAG,IAAAI,cAAU,6BAEhBZ,KAAK;QACRD,cAAc,EAAEA,cAAc,WAAdA,cAAc,GAAI,KAAK;QACvCG,QAAQ,sBAAEF,KAAK,CAACE,QAAQ,+BAAID,QAAQ;QACpCY,WAAW,6BACNb,KAAK,CAACa,WAAW;UACpBT;QAAY,EACb;QACDU,cAAc;UACZC,kBAAkB,EAAE;QAAS,GAC1Bf,KAAK,CAACc,cAAc,CACxB;QACDV;MAAY,IAEdN,OAAO,WAAPA,OAAO,GAAI,SAAS,CACrB;IACH;IACA,OAAOU,UAAU;EACnB,CAAC,EAAE,CAACV,OAAO,EAAEE,KAAK,EAAED,cAAc,EAAEE,QAAQ,EAAEG,YAAY,CAAC,CAAC;EAC5DY,sBAAa,CAACC,eAAe,CAACb,YAAY,CAAC;EAE3C,IAAAc,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,qBAAC,mBAAU,CAAC,QAAQ;IAAC,KAAK,EAAEA,GAAI;IAAA,uBAC9B,qBAAC,iCAAqB,wDAAWN,KAAK;MAAEM;IAAG;MAAA,UAAaN,KAAK,CAACuB;IAAQ;EAAyB,EAC3E;AAE1B,CAAC;AAED,MAAMC,sBAAsD,GAAIxB,KAAK,IAAK;EACxE,MAAMH,MAAM,GAAG,IAAA4B,iBAAS,GAAE;EAE1B,oBACE,sBAAC,SAAS,6BAAKzB,KAAK;IAAE,MAAM,EAAEH,MAAO;IAAA,kEACnC,qBAAC,0BAAgB,KAAG,GACnBG,KAAK,CAACuB,QAAQ;EAAA,GACL;AAEhB,CAAC;AAEM,MAAMG,qBAAqD,GAAI1B,KAAK,IAAK;EAC9E,oBACE,qBAAC,sBAAsB,6BAAKA,KAAK;IAAE,SAAS,EAAE,QAAS;IAAA,UACpDA,KAAK,CAACuB;EAAQ,GACQ;AAE7B,CAAC;AAAC"}
|
package/no-ssr/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "FronteggProviderNoSSR", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _FronteggProviderNoSSR.FronteggProviderNoSSR;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _FronteggProviderNoSSR = require("./FronteggProviderNoSSR");
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/no-ssr/index.ts"],"sourcesContent":["export { FronteggProviderNoSSR } from './FronteggProviderNoSSR';\nexport type { FronteggProviderNoSSRProps } from './FronteggProviderNoSSR';\n"],"mappings":";;;;;;;;;;;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frontegg/nextjs",
|
|
3
3
|
"libName": "FronteggNextJs",
|
|
4
|
-
"version": "6.7.
|
|
4
|
+
"version": "6.7.21-alpha.4441971157",
|
|
5
5
|
"author": "Frontegg LTD",
|
|
6
6
|
"license": "MIT",
|
|
7
|
-
"
|
|
7
|
+
"main": "./index.js",
|
|
8
|
+
"types": "./index.d.ts",
|
|
8
9
|
"dependencies": {
|
|
9
10
|
"@frontegg/js": "6.80.0",
|
|
10
11
|
"@frontegg/react-hooks": "6.80.0",
|
|
11
|
-
"@types/http-proxy": "^1.17.9",
|
|
12
|
-
"cookie": "^0.5.0",
|
|
13
12
|
"http-proxy": "^1.18.1",
|
|
14
13
|
"iron-session": "^6.3.1",
|
|
15
|
-
"jose": "^4.
|
|
14
|
+
"jose": "^4.12.2"
|
|
16
15
|
},
|
|
17
16
|
"peerDependencies": {
|
|
18
17
|
"next": ">10.0.0",
|
|
19
18
|
"react": ">16.9.0",
|
|
20
19
|
"react-dom": ">16.9.0"
|
|
21
20
|
},
|
|
22
|
-
"
|
|
23
|
-
"
|
|
21
|
+
"private": false,
|
|
22
|
+
"module": "./index.js"
|
|
24
23
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
+
var _router = require("next/router");
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _common = require("../../common");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
const _excluded = ["children", "basename"];
|
|
15
|
+
const FronteggPagesProvider = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
children,
|
|
18
|
+
basename
|
|
19
|
+
} = _ref,
|
|
20
|
+
props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
21
|
+
const router = (0, _router.useRouter)();
|
|
22
|
+
const baseName = basename != null ? basename : router.basePath;
|
|
23
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.FronteggBaseProvider, (0, _extends2.default)({
|
|
24
|
+
router: router,
|
|
25
|
+
basename: baseName
|
|
26
|
+
}, props, {
|
|
27
|
+
children: children
|
|
28
|
+
}));
|
|
29
|
+
};
|
|
30
|
+
var _default = FronteggPagesProvider;
|
|
31
|
+
exports.default = _default;
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["FronteggPagesProvider","children","basename","props","router","useRouter","baseName","basePath"],"sources":["../../../../../packages/nextjs/src/pages/FronteggPagesProvider/index.tsx"],"sourcesContent":["import { useRouter } from 'next/router';\nimport React, { FC } from 'react';\nimport { FronteggBaseProvider } from '../../common';\nimport { FronteggProviderProps } from '../../types';\n\nconst FronteggPagesProvider: FC<Omit<FronteggProviderProps, 'router'>> = ({ children, basename, ...props }) => {\n const router = useRouter();\n const baseName = basename ?? router.basePath;\n\n return (\n <FronteggBaseProvider router={router} basename={baseName} {...props}>\n {children}\n </FronteggBaseProvider>\n );\n};\n\nexport default FronteggPagesProvider;\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AAAoD;AAAA;AAGpD,MAAMA,qBAAgE,GAAG,QAAsC;EAAA,IAArC;MAAEC,QAAQ;MAAEC;IAAmB,CAAC;IAAPC,KAAK;EACtG,MAAMC,MAAM,GAAG,IAAAC,iBAAS,GAAE;EAC1B,MAAMC,QAAQ,GAAGJ,QAAQ,WAARA,QAAQ,GAAIE,MAAM,CAACG,QAAQ;EAE5C,oBACE,qBAAC,4BAAoB;IAAC,MAAM,EAAEH,MAAO;IAAC,QAAQ,EAAEE;EAAS,GAAKH,KAAK;IAAA,UAChEF;EAAQ,GACY;AAE3B,CAAC;AAAC,eAEaD,qBAAqB;AAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare function FronteggRouter(): JSX.Element;
|
|
3
|
+
export declare function FronteggRouterProps(context: any): {
|
|
4
|
+
notFound: boolean;
|
|
5
|
+
props: {};
|
|
6
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FronteggRouter = FronteggRouter;
|
|
8
|
+
exports.FronteggRouterProps = FronteggRouterProps;
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
var _url = _interopRequireDefault(require("url"));
|
|
12
|
+
var _router = require("next/router");
|
|
13
|
+
var _routing = require("../../utils/routing");
|
|
14
|
+
var _FronteggRouterBase = require("../../common/FronteggRouterBase");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
const _excluded = ["frontegg-router"];
|
|
17
|
+
function FronteggRouter() {
|
|
18
|
+
const {
|
|
19
|
+
query
|
|
20
|
+
} = (0, _router.useRouter)();
|
|
21
|
+
const _ref = query,
|
|
22
|
+
{
|
|
23
|
+
'frontegg-router': pathArr
|
|
24
|
+
} = _ref,
|
|
25
|
+
queryParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
26
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FronteggRouterBase.FronteggRouterBase, {
|
|
27
|
+
pathArr: pathArr,
|
|
28
|
+
queryParams: queryParams
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function FronteggRouterProps(context) {
|
|
32
|
+
var _context$resolvedUrl;
|
|
33
|
+
let {
|
|
34
|
+
pathname
|
|
35
|
+
} = _url.default.parse((_context$resolvedUrl = context.resolvedUrl) != null ? _context$resolvedUrl : context.req.url, true);
|
|
36
|
+
if (!pathname || pathname.startsWith('/_next/data')) {
|
|
37
|
+
const query = context.req.query[Object.keys(context.req.query)[0]];
|
|
38
|
+
pathname = `/${Array.isArray(query) ? query.join('/') : query}`;
|
|
39
|
+
}
|
|
40
|
+
const notFound = !(0, _routing.isAuthRoute)(pathname);
|
|
41
|
+
return {
|
|
42
|
+
notFound,
|
|
43
|
+
props: {}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=FronteggRouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FronteggRouter.js","names":["FronteggRouter","query","useRouter","pathArr","queryParams","FronteggRouterProps","context","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;AACA;AACA;AACA;AACA;AAAqE;AAAA;AAE9D,SAASA,cAAc,GAAG;EAC/B,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,iBAAS,GAAE;EAC7B,aAAuDD,KAAK;IAAtD;MAAE,iBAAiB,EAAEE;IAAwB,CAAC;IAAbC,WAAW;EAElD,oBAAO,qBAAC,sCAAkB;IAAC,OAAO,EAAED,OAAQ;IAAC,WAAW,EAAEC;EAAY,EAAG;AAC3E;AAEO,SAASC,mBAAmB,CAACC,OAAY,EAAE;EAAA;EAChD,IAAI;IAAEC;EAAS,CAAC,GAAGC,YAAG,CAACC,KAAK,yBAACH,OAAO,CAACI,WAAW,mCAAIJ,OAAO,CAACK,GAAG,CAACC,GAAG,EAAE,IAAI,CAAC;EAC1E,IAAI,CAACL,QAAQ,IAAIA,QAAQ,CAACM,UAAU,CAAC,aAAa,CAAC,EAAE;IACnD,MAAMZ,KAAK,GAAGK,OAAO,CAACK,GAAG,CAACV,KAAK,CAACa,MAAM,CAACC,IAAI,CAACT,OAAO,CAACK,GAAG,CAACV,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClEM,QAAQ,GAAI,IAAGS,KAAK,CAACC,OAAO,CAAChB,KAAK,CAAC,GAAGA,KAAK,CAACiB,IAAI,CAAC,GAAG,CAAC,GAAGjB,KAAM,EAAC;EACjE;EAEA,MAAMkB,QAAQ,GAAG,CAAC,IAAAC,oBAAW,EAACb,QAAQ,CAAC;EAEvC,OAAO;IACLY,QAAQ;IACRE,KAAK,EAAE,CAAC;EACV,CAAC;AACH"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* {@link FronteggRouter} is a React functional component that manages Frontegg's application routing logic.
|
|
3
|
+
* It uses the AppContext and useRouter hooks to retrieve the current application context and router instance.
|
|
4
|
+
* When the component is mounted, checks if the pathname is Frontegg's auth routes.
|
|
5
|
+
* If the pathname is the login URL, and hosted login enabled it will redirect the user to the hostedLogin domain.
|
|
6
|
+
* If the pathname is the logout URL, it invokes the logout function and redirects the user to the logout route.
|
|
7
|
+
*
|
|
8
|
+
* Note that this function is intended to be used in conjunction with the Next.js pages architecture,
|
|
9
|
+
* as it relies on the useRouter hook, which is specific to Next.js. So it should only be used in a Next.js environment,
|
|
10
|
+
* and only in cases where the Frontegg hosted login box is being used.
|
|
11
|
+
*
|
|
12
|
+
* Next.js works with pages (Next.js 12).
|
|
13
|
+
* For Next.js 12: create file under ./pages/[...frontegg-router].tsx.
|
|
14
|
+
*
|
|
15
|
+
* For Next.js 13+ with app directories feature, import from `@frontegg/nextjs/client`
|
|
16
|
+
*
|
|
17
|
+
* and paste the snippet below:
|
|
18
|
+
*
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { FronteggRouter, FronteggRouterProps } from '@frontegg/nextjs/pages';
|
|
21
|
+
*
|
|
22
|
+
* export const getServerSideProps = FronteggRouterProps;
|
|
23
|
+
* export default FronteggRouter;
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export { FronteggRouter, FronteggRouterProps } from './FronteggRouter';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "FronteggRouter", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _FronteggRouter.FronteggRouter;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "FronteggRouterProps", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _FronteggRouter.FronteggRouterProps;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var _FronteggRouter = require("./FronteggRouter");
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../packages/nextjs/src/pages/FronteggRouter/index.ts"],"sourcesContent":["/**\n * {@link FronteggRouter} is a React functional component that manages Frontegg's application routing logic.\n * It uses the AppContext and useRouter hooks to retrieve the current application context and router instance.\n * When the component is mounted, checks if the pathname is Frontegg's auth routes.\n * If the pathname is the login URL, and hosted login enabled it will redirect the user to the hostedLogin domain.\n * If the pathname is the logout URL, it invokes the logout function and redirects the user to the logout route.\n *\n * Note that this function is intended to be used in conjunction with the Next.js pages architecture,\n * as it relies on the useRouter hook, which is specific to Next.js. So it should only be used in a Next.js environment,\n * and only in cases where the Frontegg hosted login box is being used.\n *\n * Next.js works with pages (Next.js 12).\n * For Next.js 12: create file under ./pages/[...frontegg-router].tsx.\n *\n * For Next.js 13+ with app directories feature, import from `@frontegg/nextjs/client`\n *\n * and paste the snippet below:\n *\n * ```typescript\n * import { FronteggRouter, FronteggRouterProps } from '@frontegg/nextjs/pages';\n *\n * export const getServerSideProps = FronteggRouterProps;\n * export default FronteggRouter;\n * ```\n */\nexport { FronteggRouter, FronteggRouterProps } from './FronteggRouter';\n"],"mappings":";;;;;;;;;;;;;;;;;AAyBA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { GetServerSidePropsContext, GetServerSidePropsResult } from 'next';
|
|
3
|
-
import { ParsedUrlQuery } from 'querystring';
|
|
4
|
-
import type { FronteggNextJSSession, RequestType } from '
|
|
5
|
-
export declare const getSession: (req: RequestType) => Promise<FronteggNextJSSession | undefined>;
|
|
6
|
-
export declare function withSSRSession<P extends {
|
|
7
|
-
[key: string]: any;
|
|
8
|
-
} = {
|
|
9
|
-
[key: string]: any;
|
|
10
|
-
}, Q extends ParsedUrlQuery = ParsedUrlQuery>(handler: (context: GetServerSidePropsContext<Q>, session: FronteggNextJSSession) => GetServerSidePropsResult<P> | Promise<GetServerSidePropsResult<P>>): (context: GetServerSidePropsContext<Q>) => Promise<GetServerSidePropsResult<P>>;
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { GetServerSidePropsContext, GetServerSidePropsResult } from 'next';
|
|
3
|
+
import type { ParsedUrlQuery } from 'querystring';
|
|
4
|
+
import type { FronteggNextJSSession, RequestType } from '../types';
|
|
5
|
+
export declare const getSession: (req: RequestType) => Promise<FronteggNextJSSession | undefined>;
|
|
6
|
+
export declare function withSSRSession<P extends {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
} = {
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}, Q extends ParsedUrlQuery = ParsedUrlQuery>(handler: (context: GetServerSidePropsContext<Q>, session: FronteggNextJSSession) => GetServerSidePropsResult<P> | Promise<GetServerSidePropsResult<P>>): (context: GetServerSidePropsContext<Q>) => Promise<GetServerSidePropsResult<P>>;
|
package/pages/helpers.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getSession = void 0;
|
|
8
|
+
exports.withSSRSession = withSSRSession;
|
|
9
|
+
var _reduxStore = require("@frontegg/redux-store");
|
|
10
|
+
var _config = _interopRequireDefault(require("../config"));
|
|
11
|
+
var _cookies = _interopRequireDefault(require("../utils/cookies"));
|
|
12
|
+
var _createSession = _interopRequireDefault(require("../utils/createSession"));
|
|
13
|
+
var _encryption = _interopRequireDefault(require("../utils/encryption"));
|
|
14
|
+
const getSession = req => {
|
|
15
|
+
const cookies = _cookies.default.getSessionCookieFromRequest(req);
|
|
16
|
+
return (0, _createSession.default)(cookies, _encryption.default);
|
|
17
|
+
};
|
|
18
|
+
exports.getSession = getSession;
|
|
19
|
+
function withSSRSession(handler) {
|
|
20
|
+
return async context => {
|
|
21
|
+
const session = await getSession(context.req);
|
|
22
|
+
if (session) {
|
|
23
|
+
return handler(context, session);
|
|
24
|
+
} else {
|
|
25
|
+
var _config$authRoutes$lo, _context$resolvedUrl;
|
|
26
|
+
let loginUrl = (_config$authRoutes$lo = _config.default.authRoutes.loginUrl) != null ? _config$authRoutes$lo : _reduxStore.authInitialState.routes.loginUrl;
|
|
27
|
+
if (!loginUrl.startsWith('/')) {
|
|
28
|
+
loginUrl = `/${loginUrl}`;
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
redirect: {
|
|
32
|
+
permanent: false,
|
|
33
|
+
destination: `${loginUrl}?redirectUrl=${encodeURIComponent((_context$resolvedUrl = context.resolvedUrl) != null ? _context$resolvedUrl : context.req.url)}`
|
|
34
|
+
},
|
|
35
|
+
props: {}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["getSession","req","cookies","CookieManager","getSessionCookieFromRequest","createSession","encryption","withSSRSession","handler","context","session","loginUrl","config","authRoutes","authInitialState","routes","startsWith","redirect","permanent","destination","encodeURIComponent","resolvedUrl","url","props"],"sources":["../../../../packages/nextjs/src/pages/helpers.ts"],"sourcesContent":["import { authInitialState } from '@frontegg/redux-store';\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 ?? authInitialState.routes.loginUrl;\n\n if (!loginUrl.startsWith('/')) {\n loginUrl = `/${loginUrl}`;\n }\n return {\n redirect: {\n permanent: false,\n destination: `${loginUrl}?redirectUrl=${encodeURIComponent(context.resolvedUrl ?? context.req.url)}`,\n },\n props: {},\n } as GetServerSidePropsResult<P>;\n }\n };\n}\n"],"mappings":";;;;;;;;AAAA;AAIA;AACA;AACA;AACA;AAEO,MAAMA,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;AAAC;AAEK,SAASC,cAAc,CAI5BC,OAGuE,EACvE;EACA,OAAO,MAAOC,OAAqC,IAA2C;IAC5F,MAAMC,OAAO,GAAG,MAAMV,UAAU,CAACS,OAAO,CAACR,GAAG,CAAC;IAC7C,IAAIS,OAAO,EAAE;MACX,OAAOF,OAAO,CAACC,OAAO,EAAEC,OAAO,CAAC;IAClC,CAAC,MAAM;MAAA;MACL,IAAIC,QAAQ,4BAAGC,eAAM,CAACC,UAAU,CAACF,QAAQ,oCAAIG,4BAAgB,CAACC,MAAM,CAACJ,QAAQ;MAE7E,IAAI,CAACA,QAAQ,CAACK,UAAU,CAAC,GAAG,CAAC,EAAE;QAC7BL,QAAQ,GAAI,IAAGA,QAAS,EAAC;MAC3B;MACA,OAAO;QACLM,QAAQ,EAAE;UACRC,SAAS,EAAE,KAAK;UAChBC,WAAW,EAAG,GAAER,QAAS,gBAAeS,kBAAkB,yBAACX,OAAO,CAACY,WAAW,mCAAIZ,OAAO,CAACR,GAAG,CAACqB,GAAG,CAAE;QACrG,CAAC;QACDC,KAAK,EAAE,CAAC;MACV,CAAC;IACH;EACF,CAAC;AACH"}
|
package/pages/index.d.ts
ADDED
package/pages/index.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
getSession: true,
|
|
8
|
+
withSSRSession: true
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "getSession", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _helpers.getSession;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "withSSRSession", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () {
|
|
19
|
+
return _helpers.withSSRSession;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
var _FronteggRouter = require("./FronteggRouter");
|
|
23
|
+
Object.keys(_FronteggRouter).forEach(function (key) {
|
|
24
|
+
if (key === "default" || key === "__esModule") return;
|
|
25
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
26
|
+
if (key in exports && exports[key] === _FronteggRouter[key]) return;
|
|
27
|
+
Object.defineProperty(exports, key, {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () {
|
|
30
|
+
return _FronteggRouter[key];
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
var _withFronteggApp = require("./withFronteggApp");
|
|
35
|
+
Object.keys(_withFronteggApp).forEach(function (key) {
|
|
36
|
+
if (key === "default" || key === "__esModule") return;
|
|
37
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
38
|
+
if (key in exports && exports[key] === _withFronteggApp[key]) return;
|
|
39
|
+
Object.defineProperty(exports, key, {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () {
|
|
42
|
+
return _withFronteggApp[key];
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
var _helpers = require("./helpers");
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/pages/index.ts"],"sourcesContent":["export * from './FronteggRouter';\nexport * from './withFronteggApp';\nexport { getSession, withSSRSession } from './helpers';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "withFronteggApp", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _withFronteggApp.withFronteggApp;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _withFronteggApp = require("./withFronteggApp");
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../packages/nextjs/src/pages/withFronteggApp/index.ts"],"sourcesContent":["export { withFronteggApp } from './withFronteggApp';\nexport type { FronteggCustomApp, WithFronteggAppOptions, FronteggCustomAppClass } from './types';\n"],"mappings":";;;;;;;;;;;AAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { AppContextType, AppPropsType, NextComponentType } from 'next/dist/shared/lib/utils';
|
|
3
|
+
import { AppInitialProps } from 'next/app';
|
|
4
|
+
import { AllUserData } from '../../types';
|
|
5
|
+
import { FronteggAppOptions } from '@frontegg/types';
|
|
6
|
+
export type FronteggCustomApp = NextComponentType<AppContextType & AllUserData, AppInitialProps, AppPropsType>;
|
|
7
|
+
export type FronteggCustomAppClass = ((props: AppPropsType<any>) => JSX.Element) & {
|
|
8
|
+
getInitialProps?: FronteggCustomApp['getInitialProps'];
|
|
9
|
+
};
|
|
10
|
+
export type WithFronteggAppOptions = Omit<FronteggAppOptions, 'contextOptions'> & {
|
|
11
|
+
contextOptions?: FronteggAppOptions['contextOptions'];
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../../packages/nextjs/src/pages/withFronteggApp/types.ts"],"sourcesContent":["import { AppContextType, AppPropsType, NextComponentType } from 'next/dist/shared/lib/utils';\nimport { AppInitialProps } from 'next/app';\nimport { AllUserData } from '../../types';\nimport { FronteggAppOptions } from '@frontegg/types';\n\nexport type FronteggCustomApp = NextComponentType<AppContextType & AllUserData, AppInitialProps, AppPropsType>;\nexport type FronteggCustomAppClass = ((props: AppPropsType<any>) => JSX.Element) & {\n getInitialProps?: FronteggCustomApp['getInitialProps'];\n};\n\nexport type WithFronteggAppOptions = Omit<FronteggAppOptions, 'contextOptions'> & {\n contextOptions?: FronteggAppOptions['contextOptions'];\n};\n"],"mappings":""}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.withFronteggApp = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _FronteggPagesProvider = _interopRequireDefault(require("../FronteggPagesProvider"));
|
|
11
|
+
var _refreshAccessToken = _interopRequireDefault(require("../../utils/refreshAccessToken"));
|
|
12
|
+
var _fetchUserData = _interopRequireDefault(require("../../utils/fetchUserData"));
|
|
13
|
+
var _config = _interopRequireDefault(require("../../config"));
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
const withFronteggApp = (app, options) => {
|
|
16
|
+
var _options$authOptions$, _options$authOptions;
|
|
17
|
+
const originalGetInitialProps = app.getInitialProps;
|
|
18
|
+
app.getInitialProps = async appContext => {
|
|
19
|
+
const {
|
|
20
|
+
ctx,
|
|
21
|
+
Component
|
|
22
|
+
} = appContext;
|
|
23
|
+
let appEnvConfig = {};
|
|
24
|
+
let appContextSessionData = {
|
|
25
|
+
session: null,
|
|
26
|
+
user: null,
|
|
27
|
+
tenants: null
|
|
28
|
+
};
|
|
29
|
+
if (ctx.req) {
|
|
30
|
+
appEnvConfig = _config.default.appEnvConfig;
|
|
31
|
+
const userData = await (0, _fetchUserData.default)({
|
|
32
|
+
getSession: async () => await (0, _refreshAccessToken.default)(ctx),
|
|
33
|
+
getHeaders: async () => {
|
|
34
|
+
var _ctx$req$headers, _ctx$req;
|
|
35
|
+
return (_ctx$req$headers = (_ctx$req = ctx.req) == null ? void 0 : _ctx$req.headers) != null ? _ctx$req$headers : {};
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
Object.assign(appContextSessionData, userData);
|
|
39
|
+
}
|
|
40
|
+
Object.assign(appContext, appContextSessionData);
|
|
41
|
+
return {
|
|
42
|
+
pageProps: (0, _extends2.default)({}, originalGetInitialProps ? await originalGetInitialProps(appContext) : {}, Component.getInitialProps ? await Component.getInitialProps(ctx) : {}, appContextSessionData.session == null ? {} : appContextSessionData, appEnvConfig)
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
_config.default.authRoutes = (_options$authOptions$ = options == null ? void 0 : (_options$authOptions = options.authOptions) == null ? void 0 : _options$authOptions.routes) != null ? _options$authOptions$ : {};
|
|
46
|
+
_config.default.fronteggAppOptions = options != null ? options : {};
|
|
47
|
+
function CustomFronteggApp(appProps) {
|
|
48
|
+
const {
|
|
49
|
+
user,
|
|
50
|
+
tenants,
|
|
51
|
+
session,
|
|
52
|
+
envAppUrl,
|
|
53
|
+
envBaseUrl,
|
|
54
|
+
envClientId
|
|
55
|
+
} = appProps.pageProps;
|
|
56
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FronteggPagesProvider.default, (0, _extends2.default)({}, options, {
|
|
57
|
+
user,
|
|
58
|
+
tenants,
|
|
59
|
+
session,
|
|
60
|
+
envAppUrl,
|
|
61
|
+
envBaseUrl,
|
|
62
|
+
envClientId,
|
|
63
|
+
children: app(appProps)
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
CustomFronteggApp.getInitialProps = app.getInitialProps;
|
|
67
|
+
return CustomFronteggApp;
|
|
68
|
+
};
|
|
69
|
+
exports.withFronteggApp = withFronteggApp;
|
|
70
|
+
//# sourceMappingURL=withFronteggApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withFronteggApp.js","names":["withFronteggApp","app","options","originalGetInitialProps","getInitialProps","appContext","ctx","Component","appEnvConfig","appContextSessionData","session","user","tenants","req","config","userData","fetchUserData","getSession","refreshAccessToken","getHeaders","headers","Object","assign","pageProps","authRoutes","authOptions","routes","fronteggAppOptions","CustomFronteggApp","appProps","envAppUrl","envBaseUrl","envClientId"],"sources":["../../../../../packages/nextjs/src/pages/withFronteggApp/withFronteggApp.tsx"],"sourcesContent":["import React from 'react';\nimport type { AppContext, AppInitialProps, AppProps } from 'next/app';\nimport type { FronteggCustomAppClass, FronteggCustomApp, WithFronteggAppOptions } from './types';\nimport FronteggProvider from '../FronteggPagesProvider';\nimport refreshAccessToken from '../../utils/refreshAccessToken';\nimport fetchUserData from '../../utils/fetchUserData';\nimport config from '../../config';\nimport { AllUserData } from '../../types';\n\nexport const withFronteggApp = (app: FronteggCustomAppClass, options?: WithFronteggAppOptions): FronteggCustomApp => {\n const originalGetInitialProps = app.getInitialProps;\n\n app.getInitialProps = async (appContext: AppContext & AllUserData): Promise<AppInitialProps> => {\n const { ctx, Component } = appContext;\n\n let appEnvConfig = {};\n let appContextSessionData: AllUserData = {\n session: null,\n user: null,\n tenants: null,\n };\n\n if (ctx.req) {\n appEnvConfig = config.appEnvConfig;\n const userData = await fetchUserData({\n getSession: async () => await refreshAccessToken(ctx),\n getHeaders: async () => ctx.req?.headers ?? {},\n });\n Object.assign(appContextSessionData, userData);\n }\n\n Object.assign(appContext, appContextSessionData);\n\n return {\n pageProps: {\n ...(originalGetInitialProps ? await originalGetInitialProps(appContext) : {}),\n ...(Component.getInitialProps ? await Component.getInitialProps(ctx) : {}),\n ...(appContextSessionData.session == null ? {} : appContextSessionData),\n ...appEnvConfig,\n },\n };\n };\n\n config.authRoutes = options?.authOptions?.routes ?? {};\n config.fronteggAppOptions = options ?? {};\n\n function CustomFronteggApp(appProps: AppProps) {\n const { user, tenants, session, envAppUrl, envBaseUrl, envClientId } = appProps.pageProps;\n return (\n <FronteggProvider {...options} {...{ user, tenants, session, envAppUrl, envBaseUrl, envClientId }}>\n {app(appProps) as any}\n </FronteggProvider>\n );\n }\n\n CustomFronteggApp.getInitialProps = app.getInitialProps;\n\n return CustomFronteggApp as FronteggCustomApp;\n};\n"],"mappings":";;;;;;;;AAAA;AAGA;AACA;AACA;AACA;AAAkC;AAG3B,MAAMA,eAAe,GAAG,CAACC,GAA2B,EAAEC,OAAgC,KAAwB;EAAA;EACnH,MAAMC,uBAAuB,GAAGF,GAAG,CAACG,eAAe;EAEnDH,GAAG,CAACG,eAAe,GAAG,MAAOC,UAAoC,IAA+B;IAC9F,MAAM;MAAEC,GAAG;MAAEC;IAAU,CAAC,GAAGF,UAAU;IAErC,IAAIG,YAAY,GAAG,CAAC,CAAC;IACrB,IAAIC,qBAAkC,GAAG;MACvCC,OAAO,EAAE,IAAI;MACbC,IAAI,EAAE,IAAI;MACVC,OAAO,EAAE;IACX,CAAC;IAED,IAAIN,GAAG,CAACO,GAAG,EAAE;MACXL,YAAY,GAAGM,eAAM,CAACN,YAAY;MAClC,MAAMO,QAAQ,GAAG,MAAM,IAAAC,sBAAa,EAAC;QACnCC,UAAU,EAAE,YAAY,MAAM,IAAAC,2BAAkB,EAACZ,GAAG,CAAC;QACrDa,UAAU,EAAE;UAAA;UAAA,uCAAYb,GAAG,CAACO,GAAG,qBAAP,SAASO,OAAO,+BAAI,CAAC,CAAC;QAAA;MAChD,CAAC,CAAC;MACFC,MAAM,CAACC,MAAM,CAACb,qBAAqB,EAAEM,QAAQ,CAAC;IAChD;IAEAM,MAAM,CAACC,MAAM,CAACjB,UAAU,EAAEI,qBAAqB,CAAC;IAEhD,OAAO;MACLc,SAAS,6BACHpB,uBAAuB,GAAG,MAAMA,uBAAuB,CAACE,UAAU,CAAC,GAAG,CAAC,CAAC,EACxEE,SAAS,CAACH,eAAe,GAAG,MAAMG,SAAS,CAACH,eAAe,CAACE,GAAG,CAAC,GAAG,CAAC,CAAC,EACrEG,qBAAqB,CAACC,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC,GAAGD,qBAAqB,EACnED,YAAY;IAEnB,CAAC;EACH,CAAC;EAEDM,eAAM,CAACU,UAAU,4BAAGtB,OAAO,4CAAPA,OAAO,CAAEuB,WAAW,qBAApB,qBAAsBC,MAAM,oCAAI,CAAC,CAAC;EACtDZ,eAAM,CAACa,kBAAkB,GAAGzB,OAAO,WAAPA,OAAO,GAAI,CAAC,CAAC;EAEzC,SAAS0B,iBAAiB,CAACC,QAAkB,EAAE;IAC7C,MAAM;MAAElB,IAAI;MAAEC,OAAO;MAAEF,OAAO;MAAEoB,SAAS;MAAEC,UAAU;MAAEC;IAAY,CAAC,GAAGH,QAAQ,CAACN,SAAS;IACzF,oBACE,qBAAC,8BAAgB,6BAAKrB,OAAO;MAAQS,IAAI;MAAEC,OAAO;MAAEF,OAAO;MAAEoB,SAAS;MAAEC,UAAU;MAAEC,WAAW;MAAA,UAC5F/B,GAAG,CAAC4B,QAAQ;IAAC,GACG;EAEvB;EAEAD,iBAAiB,CAACxB,eAAe,GAAGH,GAAG,CAACG,eAAe;EAEvD,OAAOwB,iBAAiB;AAC1B,CAAC;AAAC"}
|