@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
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
/// <reference types="
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export {};
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { ParsedUrlQuery } from 'querystring';
|
|
4
|
+
interface FronteggRouterProps {
|
|
5
|
+
params: ParsedUrlQuery & {
|
|
6
|
+
'frontegg-router'?: string[];
|
|
7
|
+
};
|
|
8
|
+
searchParams?: ParsedUrlQuery;
|
|
9
|
+
}
|
|
10
|
+
export declare function FronteggAppRouter({ params: { 'frontegg-router': pathArr }, searchParams }: FronteggRouterProps): JSX.Element | null;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FronteggAppRouter = FronteggAppRouter;
|
|
8
|
+
var _navigation = require("next/navigation");
|
|
9
|
+
var _routing = require("../utils/routing");
|
|
10
|
+
var _FronteggRouterBase = require("../common/FronteggRouterBase");
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
function FronteggAppRouter({
|
|
14
|
+
params: {
|
|
15
|
+
'frontegg-router': pathArr = []
|
|
16
|
+
},
|
|
17
|
+
searchParams
|
|
18
|
+
}) {
|
|
19
|
+
let pathname = `/${pathArr.join('/')}`;
|
|
20
|
+
if (!pathname || pathname.startsWith('/_next/data')) {
|
|
21
|
+
if (searchParams) {
|
|
22
|
+
const query = searchParams[Object.keys(searchParams)[0]];
|
|
23
|
+
pathname = `/${Array.isArray(query) ? query.join('/') : query}`;
|
|
24
|
+
} else {
|
|
25
|
+
(0, _navigation.notFound)();
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (!(0, _routing.isAuthRoute)(pathname)) {
|
|
30
|
+
(0, _navigation.notFound)();
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FronteggRouterBase.FronteggRouterBase, {
|
|
34
|
+
pathArr: pathArr,
|
|
35
|
+
queryParams: searchParams
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=FronteggAppRouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FronteggAppRouter.js","names":["FronteggAppRouter","params","pathArr","searchParams","pathname","join","startsWith","query","Object","keys","Array","isArray","notFound","isAuthRoute"],"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 = [] }, searchParams }: FronteggRouterProps) {\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} />;\n}\n"],"mappings":";;;;;;;AAAA;AAEA;AACA;AACA;AAA0B;AAOnB,SAASA,iBAAiB,CAAC;EAAEC,MAAM,EAAE;IAAE,iBAAiB,EAAEC,OAAO,GAAG;EAAG,CAAC;EAAEC;AAAkC,CAAC,EAAE;EACpH,IAAIC,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,qBAAC,sCAAkB;IAAC,OAAO,EAAEV,OAAQ;IAAC,WAAW,EAAEC;EAAa,EAAG;AAC5E"}
|
package/app/helpers.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { FronteggUserSession, FronteggUserTokens } from '../types';
|
|
2
|
+
export declare const getAppSession: () => Promise<import("../types").FronteggNextJSSession | undefined>;
|
|
3
|
+
export declare const getAppHeaders: () => Promise<Record<string, string>>;
|
|
4
|
+
export declare function getAppUserSession(): Promise<FronteggUserSession | undefined>;
|
|
5
|
+
export declare function getAppUserTokens(): Promise<FronteggUserTokens | undefined>;
|
package/app/helpers.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getAppSession = exports.getAppHeaders = void 0;
|
|
8
|
+
exports.getAppUserSession = getAppUserSession;
|
|
9
|
+
exports.getAppUserTokens = getAppUserTokens;
|
|
10
|
+
var _headers = require("next/headers");
|
|
11
|
+
var _cookies = _interopRequireDefault(require("../utils/cookies"));
|
|
12
|
+
var _createSession = _interopRequireDefault(require("../utils/createSession"));
|
|
13
|
+
var _encryption = _interopRequireDefault(require("../utils/encryption"));
|
|
14
|
+
const getCookie = () => {
|
|
15
|
+
const allCookies = (0, _headers.cookies)().getAll();
|
|
16
|
+
return _cookies.default.parseCookieFromArray(allCookies);
|
|
17
|
+
};
|
|
18
|
+
const getAppSession = () => {
|
|
19
|
+
const cookies = getCookie();
|
|
20
|
+
return (0, _createSession.default)(cookies, _encryption.default);
|
|
21
|
+
};
|
|
22
|
+
exports.getAppSession = getAppSession;
|
|
23
|
+
const getAppHeaders = async () => {
|
|
24
|
+
const reqHeaders = {};
|
|
25
|
+
(0, _headers.headers)().forEach((value, key) => reqHeaders[key] = value);
|
|
26
|
+
return reqHeaders;
|
|
27
|
+
};
|
|
28
|
+
exports.getAppHeaders = getAppHeaders;
|
|
29
|
+
async function getAppUserSession() {
|
|
30
|
+
const session = await getAppSession();
|
|
31
|
+
return session == null ? void 0 : session.user;
|
|
32
|
+
}
|
|
33
|
+
async function getAppUserTokens() {
|
|
34
|
+
const session = await getAppSession();
|
|
35
|
+
if (!session) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
accessToken: session.accessToken,
|
|
40
|
+
refreshToken: session.refreshToken
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["getCookie","allCookies","cookies","getAll","CookieManager","parseCookieFromArray","getAppSession","createSession","encryption","getAppHeaders","reqHeaders","headers","forEach","value","key","getAppUserSession","session","user","getAppUserTokens","undefined","accessToken","refreshToken"],"sources":["../../../../packages/nextjs/src/app/helpers.ts"],"sourcesContent":["import { cookies, headers } from 'next/headers';\nimport CookieManager from '../utils/cookies';\nimport createSession from '../utils/createSession';\nimport encryption from '../utils/encryption';\nimport { FronteggUserSession, FronteggUserTokens } from '../types';\n\nconst getCookie = () => {\n const allCookies = cookies().getAll();\n return CookieManager.parseCookieFromArray(allCookies);\n};\n\nexport const getAppSession = () => {\n const cookies = getCookie();\n return createSession(cookies, encryption);\n};\n\nexport const getAppHeaders = async (): Promise<Record<string, string>> => {\n const reqHeaders: Record<string, string> = {};\n headers().forEach((value, key) => (reqHeaders[key] = value));\n return reqHeaders;\n};\n\nexport async function getAppUserSession(): Promise<FronteggUserSession | undefined> {\n const session = await getAppSession();\n return session?.user;\n}\n\nexport async function getAppUserTokens(): Promise<FronteggUserTokens | undefined> {\n const session = await getAppSession();\n if (!session) {\n return undefined;\n }\n return {\n accessToken: session.accessToken,\n refreshToken: session.refreshToken,\n };\n}\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AAGA,MAAMA,SAAS,GAAG,MAAM;EACtB,MAAMC,UAAU,GAAG,IAAAC,gBAAO,GAAE,CAACC,MAAM,EAAE;EACrC,OAAOC,gBAAa,CAACC,oBAAoB,CAACJ,UAAU,CAAC;AACvD,CAAC;AAEM,MAAMK,aAAa,GAAG,MAAM;EACjC,MAAMJ,OAAO,GAAGF,SAAS,EAAE;EAC3B,OAAO,IAAAO,sBAAa,EAACL,OAAO,EAAEM,mBAAU,CAAC;AAC3C,CAAC;AAAC;AAEK,MAAMC,aAAa,GAAG,YAA6C;EACxE,MAAMC,UAAkC,GAAG,CAAC,CAAC;EAC7C,IAAAC,gBAAO,GAAE,CAACC,OAAO,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAMJ,UAAU,CAACI,GAAG,CAAC,GAAGD,KAAM,CAAC;EAC5D,OAAOH,UAAU;AACnB,CAAC;AAAC;AAEK,eAAeK,iBAAiB,GAA6C;EAClF,MAAMC,OAAO,GAAG,MAAMV,aAAa,EAAE;EACrC,OAAOU,OAAO,oBAAPA,OAAO,CAAEC,IAAI;AACtB;AAEO,eAAeC,gBAAgB,GAA4C;EAChF,MAAMF,OAAO,GAAG,MAAMV,aAAa,EAAE;EACrC,IAAI,CAACU,OAAO,EAAE;IACZ,OAAOG,SAAS;EAClB;EACA,OAAO;IACLC,WAAW,EAAEJ,OAAO,CAACI,WAAW;IAChCC,YAAY,EAAEL,OAAO,CAACK;EACxB,CAAC;AACH"}
|
package/app/index.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { FronteggAppProvider } from './FronteggAppProvider';
|
|
2
|
+
export type { FronteggAppProviderProps } from './FronteggAppProvider';
|
|
3
|
+
export { FronteggAppRouter } from './FronteggAppRouter';
|
|
4
|
+
export { getAppSession, getAppUserSession, getAppUserTokens } from './helpers';
|
package/app/index.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "FronteggAppProvider", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _FronteggAppProvider.FronteggAppProvider;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "FronteggAppRouter", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _FronteggAppRouter.FronteggAppRouter;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "getAppSession", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _helpers.getAppSession;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "getAppUserSession", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _helpers.getAppUserSession;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "getAppUserTokens", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _helpers.getAppUserTokens;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
var _FronteggAppProvider = require("./FronteggAppProvider");
|
|
37
|
+
var _FronteggAppRouter = require("./FronteggAppRouter");
|
|
38
|
+
var _helpers = require("./helpers");
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
package/app/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/app/index.ts"],"sourcesContent":["export { FronteggAppProvider } from './FronteggAppProvider';\nexport type { FronteggAppProviderProps } from './FronteggAppProvider';\nexport { FronteggAppRouter } from './FronteggAppRouter';\n\nexport { getAppSession, getAppUserSession, getAppUserTokens } from './helpers';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAEA;AAEA"}
|
package/app/package.json
ADDED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type { FronteggApp } from '@frontegg/js';
|
|
3
|
-
declare const AppContext: import("react").Context<FronteggApp | null>;
|
|
4
|
-
export default AppContext;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { FronteggApp } from '@frontegg/js';
|
|
3
|
+
declare const AppContext: import("react").Context<FronteggApp | null>;
|
|
4
|
+
export default AppContext;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
const AppContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
10
|
+
var _default = AppContext;
|
|
11
|
+
exports.default = _default;
|
|
12
|
+
//# sourceMappingURL=AppContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppContext.js","names":["AppContext","createContext"],"sources":["../../../../packages/nextjs/src/common/AppContext.ts"],"sourcesContent":["'use client';\n\nimport { createContext } from 'react';\nimport type { FronteggApp } from '@frontegg/js';\n\nconst AppContext = createContext<FronteggApp | null>(null);\n\nexport default AppContext;\n"],"mappings":";AAAA,YAAY;;AAAC;EAAA;AAAA;AAAA;AAEb;AAGA,MAAMA,UAAU,gBAAG,IAAAC,oBAAa,EAAqB,IAAI,CAAC;AAAC,eAE5CD,UAAU;AAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import React, { FC, ReactNode } from 'react';
|
|
2
|
-
export interface AuthorizationProps {
|
|
3
|
-
requiredRoles?: string[];
|
|
4
|
-
requiredPermissions?: string[];
|
|
5
|
-
render?: (isAuthorized: boolean) => React.ReactNode | null;
|
|
6
|
-
children?: ReactNode;
|
|
7
|
-
}
|
|
8
|
-
|
|
1
|
+
import React, { FC, ReactNode } from 'react';
|
|
2
|
+
export interface AuthorizationProps {
|
|
3
|
+
requiredRoles?: string[];
|
|
4
|
+
requiredPermissions?: string[];
|
|
5
|
+
render?: (isAuthorized: boolean) => React.ReactNode | null;
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
declare const AuthorizedContent: FC<AuthorizationProps>;
|
|
9
|
+
export default AuthorizedContent;
|
|
@@ -0,0 +1,54 @@
|
|
|
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.default = void 0;
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _reactHooks = require("@frontegg/react-hooks");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
const AuthorizedContent = props => {
|
|
13
|
+
let isAuthorized = true;
|
|
14
|
+
const user = (0, _reactHooks.useAuthUserOrNull)();
|
|
15
|
+
if (!(user != null && user.superUser)) {
|
|
16
|
+
if (props.requiredPermissions) {
|
|
17
|
+
if (!(user != null && user.permissions) || (user == null ? void 0 : user.permissions.length) === 0) {
|
|
18
|
+
isAuthorized = false;
|
|
19
|
+
}
|
|
20
|
+
for (const permission of props.requiredPermissions) {
|
|
21
|
+
var _user$permissions;
|
|
22
|
+
if (!(user != null && (_user$permissions = user.permissions) != null && _user$permissions.find(({
|
|
23
|
+
key
|
|
24
|
+
}) => key === permission))) {
|
|
25
|
+
isAuthorized = false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (props.requiredRoles) {
|
|
30
|
+
if (!(user != null && user.roles) || (user == null ? void 0 : user.roles.length) === 0) {
|
|
31
|
+
isAuthorized = false;
|
|
32
|
+
}
|
|
33
|
+
for (const role of props.requiredRoles) {
|
|
34
|
+
var _user$roles;
|
|
35
|
+
if (!(user != null && (_user$roles = user.roles) != null && _user$roles.find(({
|
|
36
|
+
key
|
|
37
|
+
}) => key === role))) {
|
|
38
|
+
isAuthorized = false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (typeof props.render === 'function') {
|
|
44
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
45
|
+
children: props.render(isAuthorized)
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return isAuthorized ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
49
|
+
children: props.children
|
|
50
|
+
}) : null;
|
|
51
|
+
};
|
|
52
|
+
var _default = AuthorizedContent;
|
|
53
|
+
exports.default = _default;
|
|
54
|
+
//# sourceMappingURL=AuthorizedContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthorizedContent.js","names":["AuthorizedContent","props","isAuthorized","user","useAuthUserOrNull","superUser","requiredPermissions","permissions","length","permission","find","key","requiredRoles","roles","role","render","children"],"sources":["../../../../packages/nextjs/src/common/AuthorizedContent.tsx"],"sourcesContent":["'use client';\n\nimport React, { FC, ReactNode } from 'react';\nimport { useAuthUserOrNull } from '@frontegg/react-hooks';\n\nexport interface AuthorizationProps {\n requiredRoles?: string[];\n requiredPermissions?: string[];\n render?: (isAuthorized: boolean) => React.ReactNode | null;\n children?: ReactNode;\n}\n\nconst AuthorizedContent: FC<AuthorizationProps> = (props) => {\n let isAuthorized = true;\n const user = useAuthUserOrNull();\n if (!user?.superUser) {\n if (props.requiredPermissions) {\n if (!user?.permissions || user?.permissions.length === 0) {\n isAuthorized = false;\n }\n\n for (const permission of props.requiredPermissions) {\n if (!user?.permissions?.find(({ key }) => key === permission)) {\n isAuthorized = false;\n }\n }\n }\n\n if (props.requiredRoles) {\n if (!user?.roles || user?.roles.length === 0) {\n isAuthorized = false;\n }\n\n for (const role of props.requiredRoles) {\n if (!user?.roles?.find(({ key }) => key === role)) {\n isAuthorized = false;\n }\n }\n }\n }\n\n if (typeof props.render === 'function') {\n return <>{props.render(isAuthorized)}</>;\n }\n\n return isAuthorized ? <>{props.children}</> : null;\n};\n\nexport default AuthorizedContent;\n"],"mappings":";AAAA,YAAY;;AAAC;AAAA;EAAA;AAAA;AAAA;AAEb;AACA;AAA0D;AAS1D,MAAMA,iBAAyC,GAAIC,KAAK,IAAK;EAC3D,IAAIC,YAAY,GAAG,IAAI;EACvB,MAAMC,IAAI,GAAG,IAAAC,6BAAiB,GAAE;EAChC,IAAI,EAACD,IAAI,YAAJA,IAAI,CAAEE,SAAS,GAAE;IACpB,IAAIJ,KAAK,CAACK,mBAAmB,EAAE;MAC7B,IAAI,EAACH,IAAI,YAAJA,IAAI,CAAEI,WAAW,KAAI,CAAAJ,IAAI,oBAAJA,IAAI,CAAEI,WAAW,CAACC,MAAM,MAAK,CAAC,EAAE;QACxDN,YAAY,GAAG,KAAK;MACtB;MAEA,KAAK,MAAMO,UAAU,IAAIR,KAAK,CAACK,mBAAmB,EAAE;QAAA;QAClD,IAAI,EAACH,IAAI,iCAAJA,IAAI,CAAEI,WAAW,aAAjB,kBAAmBG,IAAI,CAAC,CAAC;UAAEC;QAAI,CAAC,KAAKA,GAAG,KAAKF,UAAU,CAAC,GAAE;UAC7DP,YAAY,GAAG,KAAK;QACtB;MACF;IACF;IAEA,IAAID,KAAK,CAACW,aAAa,EAAE;MACvB,IAAI,EAACT,IAAI,YAAJA,IAAI,CAAEU,KAAK,KAAI,CAAAV,IAAI,oBAAJA,IAAI,CAAEU,KAAK,CAACL,MAAM,MAAK,CAAC,EAAE;QAC5CN,YAAY,GAAG,KAAK;MACtB;MAEA,KAAK,MAAMY,IAAI,IAAIb,KAAK,CAACW,aAAa,EAAE;QAAA;QACtC,IAAI,EAACT,IAAI,2BAAJA,IAAI,CAAEU,KAAK,aAAX,YAAaH,IAAI,CAAC,CAAC;UAAEC;QAAI,CAAC,KAAKA,GAAG,KAAKG,IAAI,CAAC,GAAE;UACjDZ,YAAY,GAAG,KAAK;QACtB;MACF;IACF;EACF;EAEA,IAAI,OAAOD,KAAK,CAACc,MAAM,KAAK,UAAU,EAAE;IACtC,oBAAO;MAAA,UAAGd,KAAK,CAACc,MAAM,CAACb,YAAY;IAAC,EAAI;EAC1C;EAEA,OAAOA,YAAY,gBAAG;IAAA,UAAGD,KAAK,CAACe;EAAQ,EAAI,GAAG,IAAI;AACpD,CAAC;AAAC,eAEahB,iBAAiB;AAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
2
|
-
import { FronteggProviderProps } from '../types';
|
|
3
|
-
export declare const FronteggBaseProvider: FC<FronteggProviderProps>;
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import type { FronteggProviderProps } from '../types';
|
|
3
|
+
export declare const FronteggBaseProvider: FC<FronteggProviderProps>;
|
|
@@ -0,0 +1,76 @@
|
|
|
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.FronteggBaseProvider = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _reactHooks = require("@frontegg/react-hooks");
|
|
13
|
+
var _restApi = require("@frontegg/rest-api");
|
|
14
|
+
var _AppContext = _interopRequireDefault(require("./AppContext"));
|
|
15
|
+
var _initializeFronteggApp = _interopRequireDefault(require("../utils/initializeFronteggApp"));
|
|
16
|
+
var _useRequestAuthorizeSSR = _interopRequireDefault(require("./useRequestAuthorizeSSR"));
|
|
17
|
+
var _useOnRedirectTo = _interopRequireDefault(require("../utils/useOnRedirectTo"));
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
const _excluded = ["router", "appName"];
|
|
20
|
+
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); }
|
|
21
|
+
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; }
|
|
22
|
+
const Connector = _ref => {
|
|
23
|
+
var _props$basename;
|
|
24
|
+
let {
|
|
25
|
+
router,
|
|
26
|
+
appName = 'default'
|
|
27
|
+
} = _ref,
|
|
28
|
+
props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
29
|
+
const isSSR = typeof window === 'undefined';
|
|
30
|
+
const {
|
|
31
|
+
user,
|
|
32
|
+
session,
|
|
33
|
+
tenants
|
|
34
|
+
} = props;
|
|
35
|
+
const baseName = (_props$basename = props.basename) != null ? _props$basename : '';
|
|
36
|
+
const ssrStoreHolder = (0, _react.useRef)({});
|
|
37
|
+
const storeHolder = isSSR ? ssrStoreHolder.current : undefined;
|
|
38
|
+
const onRedirectTo = (0, _useOnRedirectTo.default)(baseName, router);
|
|
39
|
+
const app = (0, _react.useMemo)(() => (0, _initializeFronteggApp.default)({
|
|
40
|
+
options: (0, _extends2.default)({}, props, {
|
|
41
|
+
basename: baseName
|
|
42
|
+
}),
|
|
43
|
+
onRedirectTo,
|
|
44
|
+
appName,
|
|
45
|
+
storeHolder
|
|
46
|
+
}), [props]);
|
|
47
|
+
_restApi.ContextHolder.setOnRedirectTo(onRedirectTo);
|
|
48
|
+
|
|
49
|
+
// useEffect(() => {
|
|
50
|
+
// if(window.location.pathname == '/account/login') {
|
|
51
|
+
// app.store.dispatch({ type: 'auth/requestAuthorize', payload: true });
|
|
52
|
+
// }
|
|
53
|
+
// }, [app]);
|
|
54
|
+
(0, _useRequestAuthorizeSSR.default)({
|
|
55
|
+
app,
|
|
56
|
+
user,
|
|
57
|
+
tenants,
|
|
58
|
+
session
|
|
59
|
+
});
|
|
60
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_AppContext.default.Provider, {
|
|
61
|
+
value: app,
|
|
62
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHooks.FronteggStoreProvider, (0, _extends2.default)({}, (0, _extends2.default)({}, props, {
|
|
63
|
+
app
|
|
64
|
+
}), {
|
|
65
|
+
children: props.children
|
|
66
|
+
}))
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
const FronteggBaseProvider = props => {
|
|
70
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Connector, (0, _extends2.default)({}, props, {
|
|
71
|
+
framework: 'nextjs',
|
|
72
|
+
children: props.children
|
|
73
|
+
}));
|
|
74
|
+
};
|
|
75
|
+
exports.FronteggBaseProvider = FronteggBaseProvider;
|
|
76
|
+
//# sourceMappingURL=FronteggBaseProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FronteggBaseProvider.js","names":["Connector","router","appName","props","isSSR","window","user","session","tenants","baseName","basename","ssrStoreHolder","useRef","storeHolder","current","undefined","onRedirectTo","useOnRedirectTo","app","useMemo","initializeFronteggApp","options","ContextHolder","setOnRedirectTo","useRequestAuthorizeSSR","children","FronteggBaseProvider"],"sources":["../../../../packages/nextjs/src/common/FronteggBaseProvider.tsx"],"sourcesContent":["'use client';\n\nimport React, { FC, useMemo, useRef } from 'react';\nimport { FronteggStoreProvider } 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';\n\nconst Connector: FC<FronteggProviderProps> = ({ router, appName = 'default', ...props }) => {\n const isSSR = typeof window === 'undefined';\n const { user, session, tenants } = props;\n const baseName = props.basename ?? '';\n const ssrStoreHolder = useRef({});\n const storeHolder = isSSR ? ssrStoreHolder.current : undefined;\n\n const onRedirectTo = useOnRedirectTo(baseName, router);\n\n const app = useMemo(\n () =>\n initializeFronteggApp({\n options: { ...props, basename: baseName },\n onRedirectTo,\n appName,\n storeHolder,\n }),\n [props]\n );\n ContextHolder.setOnRedirectTo(onRedirectTo);\n\n // useEffect(() => {\n // if(window.location.pathname == '/account/login') {\n // app.store.dispatch({ type: 'auth/requestAuthorize', payload: true });\n // }\n // }, [app]);\n useRequestAuthorizeSSR({ app, user, tenants, session });\n return (\n <AppContext.Provider value={app}>\n <FronteggStoreProvider {...({ ...props, app } as any)}>{props.children}</FronteggStoreProvider>\n </AppContext.Provider>\n );\n};\n\nexport const FronteggBaseProvider: FC<FronteggProviderProps> = (props) => {\n return (\n <Connector {...props} framework={'nextjs'}>\n {props.children}\n </Connector>\n );\n};\n"],"mappings":";AAAA,YAAY;;AAAC;AAAA;EAAA;AAAA;AAAA;AAAA;AAAA;AAEb;AACA;AACA;AAEA;AACA;AACA;AACA;AAAuD;AAAA;AAAA;AAAA;AAEvD,MAAMA,SAAoC,GAAG,QAA+C;EAAA;EAAA,IAA9C;MAAEC,MAAM;MAAEC,OAAO,GAAG;IAAoB,CAAC;IAAPC,KAAK;EACnF,MAAMC,KAAK,GAAG,OAAOC,MAAM,KAAK,WAAW;EAC3C,MAAM;IAAEC,IAAI;IAAEC,OAAO;IAAEC;EAAQ,CAAC,GAAGL,KAAK;EACxC,MAAMM,QAAQ,sBAAGN,KAAK,CAACO,QAAQ,8BAAI,EAAE;EACrC,MAAMC,cAAc,GAAG,IAAAC,aAAM,EAAC,CAAC,CAAC,CAAC;EACjC,MAAMC,WAAW,GAAGT,KAAK,GAAGO,cAAc,CAACG,OAAO,GAAGC,SAAS;EAE9D,MAAMC,YAAY,GAAG,IAAAC,wBAAe,EAACR,QAAQ,EAAER,MAAM,CAAC;EAEtD,MAAMiB,GAAG,GAAG,IAAAC,cAAO,EACjB,MACE,IAAAC,8BAAqB,EAAC;IACpBC,OAAO,6BAAOlB,KAAK;MAAEO,QAAQ,EAAED;IAAQ,EAAE;IACzCO,YAAY;IACZd,OAAO;IACPW;EACF,CAAC,CAAC,EACJ,CAACV,KAAK,CAAC,CACR;EACDmB,sBAAa,CAACC,eAAe,CAACP,YAAY,CAAC;;EAE3C;EACA;EACA;EACA;EACA;EACA,IAAAQ,+BAAsB,EAAC;IAAEN,GAAG;IAAEZ,IAAI;IAAEE,OAAO;IAAED;EAAQ,CAAC,CAAC;EACvD,oBACE,qBAAC,mBAAU,CAAC,QAAQ;IAAC,KAAK,EAAEW,GAAI;IAAA,uBAC9B,qBAAC,iCAAqB,wDAAWf,KAAK;MAAEe;IAAG;MAAA,UAAaf,KAAK,CAACsB;IAAQ;EAAyB,EAC3E;AAE1B,CAAC;AAEM,MAAMC,oBAA+C,GAAIvB,KAAK,IAAK;EACxE,oBACE,qBAAC,SAAS,6BAAKA,KAAK;IAAE,SAAS,EAAE,QAAS;IAAA,UACvCA,KAAK,CAACsB;EAAQ,GACL;AAEhB,CAAC;AAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { ParsedUrlQuery } from 'querystring';
|
|
4
|
+
interface FronteggRouterBaseProps {
|
|
5
|
+
queryParams?: ParsedUrlQuery;
|
|
6
|
+
pathArr: string[];
|
|
7
|
+
}
|
|
8
|
+
export declare function FronteggRouterBase(props: FronteggRouterBaseProps): JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
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.FronteggRouterBase = FronteggRouterBase;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _config = _interopRequireDefault(require("../config"));
|
|
11
|
+
var _reduxStore = require("@frontegg/redux-store");
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _reactHooks = require("@frontegg/react-hooks");
|
|
14
|
+
var _constants = require("../utils/common/constants");
|
|
15
|
+
var _AppContext = _interopRequireDefault(require("./AppContext"));
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
+
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); }
|
|
18
|
+
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; }
|
|
19
|
+
function FronteggRouterBase(props) {
|
|
20
|
+
const {
|
|
21
|
+
queryParams = {},
|
|
22
|
+
pathArr
|
|
23
|
+
} = props;
|
|
24
|
+
const app = (0, _react.useContext)(_AppContext.default);
|
|
25
|
+
const loginWithRedirect = (0, _reactHooks.useLoginWithRedirect)();
|
|
26
|
+
const {
|
|
27
|
+
logout
|
|
28
|
+
} = (0, _reactHooks.useLoginActions)();
|
|
29
|
+
(0, _react.useEffect)(() => {
|
|
30
|
+
if (!app) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (app.options.hostedLoginBox) {
|
|
34
|
+
const routesObj = (0, _extends2.default)({}, _reduxStore.authInitialState.routes, _config.default.authRoutes);
|
|
35
|
+
const pathname = `/${pathArr.join('/')}`;
|
|
36
|
+
if (pathname === routesObj.loginUrl) {
|
|
37
|
+
if (queryParams.redirectUrl) {
|
|
38
|
+
localStorage.setItem(_constants.FRONTEGG_AFTER_AUTH_REDIRECT_URL, `${window.location.origin}${queryParams.redirectUrl}`);
|
|
39
|
+
}
|
|
40
|
+
loginWithRedirect();
|
|
41
|
+
} else if (pathname === routesObj.logoutUrl) {
|
|
42
|
+
logout(() => window.location.href = window.location.origin);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}, [app, queryParams, pathArr, loginWithRedirect, logout]);
|
|
46
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=FronteggRouterBase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FronteggRouterBase.js","names":["FronteggRouterBase","props","queryParams","pathArr","app","useContext","AppContext","loginWithRedirect","useLoginWithRedirect","logout","useLoginActions","useEffect","options","hostedLoginBox","routesObj","authInitialState","routes","config","authRoutes","pathname","join","loginUrl","redirectUrl","localStorage","setItem","FRONTEGG_AFTER_AUTH_REDIRECT_URL","window","location","origin","logoutUrl","href"],"sources":["../../../../packages/nextjs/src/common/FronteggRouterBase.tsx"],"sourcesContent":["'use client';\n\nimport config from '../config';\nimport { authInitialState } from '@frontegg/redux-store';\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}\n\nexport function FronteggRouterBase(props: FronteggRouterBaseProps) {\n const { queryParams = {}, pathArr } = props;\n const app = useContext(AppContext);\n const loginWithRedirect = useLoginWithRedirect();\n const { logout } = useLoginActions();\n\n useEffect(() => {\n if (!app) {\n return;\n }\n if (app.options.hostedLoginBox) {\n const routesObj = {\n ...authInitialState.routes,\n ...config.authRoutes,\n };\n\n const pathname = `/${pathArr.join('/')}`;\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(() => (window.location.href = window.location.origin));\n }\n }\n }, [app, queryParams, pathArr, loginWithRedirect, logout]);\n return <></>;\n}\n"],"mappings":";AAAA,YAAY;;AAAC;AAAA;EAAA;AAAA;AAAA;AAAA;AAEb;AACA;AACA;AACA;AACA;AACA;AAAsC;AAAA;AAAA;AAS/B,SAASA,kBAAkB,CAACC,KAA8B,EAAE;EACjE,MAAM;IAAEC,WAAW,GAAG,CAAC,CAAC;IAAEC;EAAQ,CAAC,GAAGF,KAAK;EAC3C,MAAMG,GAAG,GAAG,IAAAC,iBAAU,EAACC,mBAAU,CAAC;EAClC,MAAMC,iBAAiB,GAAG,IAAAC,gCAAoB,GAAE;EAChD,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,2BAAe,GAAE;EAEpC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACP,GAAG,EAAE;MACR;IACF;IACA,IAAIA,GAAG,CAACQ,OAAO,CAACC,cAAc,EAAE;MAC9B,MAAMC,SAAS,8BACVC,4BAAgB,CAACC,MAAM,EACvBC,eAAM,CAACC,UAAU,CACrB;MAED,MAAMC,QAAQ,GAAI,IAAGhB,OAAO,CAACiB,IAAI,CAAC,GAAG,CAAE,EAAC;MACxC,IAAID,QAAQ,KAAKL,SAAS,CAACO,QAAQ,EAAE;QACnC,IAAInB,WAAW,CAACoB,WAAW,EAAE;UAC3BC,YAAY,CAACC,OAAO,CAACC,2CAAgC,EAAG,GAAEC,MAAM,CAACC,QAAQ,CAACC,MAAO,GAAE1B,WAAW,CAACoB,WAAY,EAAC,CAAC;QAC/G;QACAf,iBAAiB,EAAE;MACrB,CAAC,MAAM,IAAIY,QAAQ,KAAKL,SAAS,CAACe,SAAS,EAAE;QAC3CpB,MAAM,CAAC,MAAOiB,MAAM,CAACC,QAAQ,CAACG,IAAI,GAAGJ,MAAM,CAACC,QAAQ,CAACC,MAAO,CAAC;MAC/D;IACF;EACF,CAAC,EAAE,CAACxB,GAAG,EAAEF,WAAW,EAAEC,OAAO,EAAEI,iBAAiB,EAAEE,MAAM,CAAC,CAAC;EAC1D,oBAAO,8CAAK;AACd"}
|
package/common/helpers.d.ts
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function createSessionFromAccessToken(data: any): Promise<[string, any, string] | []>;
|
|
3
|
-
export declare function getTokensFromCookie(cookie?: string): Promise<FronteggUserTokens | undefined>;
|
|
4
|
-
type UserDataArguments = {
|
|
5
|
-
getSession: () => Promise<FronteggNextJSSession | undefined | null>;
|
|
6
|
-
reqHeaders: Record<string, string | string[] | undefined>;
|
|
7
|
-
};
|
|
8
|
-
export declare const getAllUserData: ({ getSession, reqHeaders }: UserDataArguments) => Promise<Partial<AllUserData>>;
|
|
9
|
-
export {};
|
|
1
|
+
import type { FronteggUserTokens } from '../types';
|
|
2
|
+
export declare function createSessionFromAccessToken(data: any): Promise<[string, any, string] | []>;
|
|
3
|
+
export declare function getTokensFromCookie(cookie?: string): Promise<FronteggUserTokens | undefined>;
|
|
@@ -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.createSessionFromAccessToken = createSessionFromAccessToken;
|
|
8
|
+
exports.getTokensFromCookie = getTokensFromCookie;
|
|
9
|
+
var _jwt = _interopRequireDefault(require("../utils/jwt"));
|
|
10
|
+
var _encryption = _interopRequireDefault(require("../utils/encryption"));
|
|
11
|
+
async function createSessionFromAccessToken(data) {
|
|
12
|
+
var _data$accessToken, _data$refreshToken;
|
|
13
|
+
const accessToken = (_data$accessToken = data.accessToken) != null ? _data$accessToken : data.access_token;
|
|
14
|
+
const refreshToken = (_data$refreshToken = data.refreshToken) != null ? _data$refreshToken : data.refresh_token;
|
|
15
|
+
const {
|
|
16
|
+
payload: decodedJwt
|
|
17
|
+
} = await _jwt.default.verify(accessToken);
|
|
18
|
+
decodedJwt.expiresIn = Math.floor((decodedJwt.exp * 1000 - Date.now()) / 1000);
|
|
19
|
+
const tokens = {
|
|
20
|
+
accessToken,
|
|
21
|
+
refreshToken
|
|
22
|
+
};
|
|
23
|
+
const session = await _encryption.default.sealTokens(tokens, decodedJwt.exp);
|
|
24
|
+
return [session, decodedJwt, refreshToken];
|
|
25
|
+
}
|
|
26
|
+
async function getTokensFromCookie(cookie) {
|
|
27
|
+
if (!cookie) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
return await _encryption.default.unsealTokens(cookie);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["createSessionFromAccessToken","data","accessToken","access_token","refreshToken","refresh_token","payload","decodedJwt","JwtManager","verify","expiresIn","Math","floor","exp","Date","now","tokens","session","encryptionUtils","sealTokens","getTokensFromCookie","cookie","undefined","unsealTokens"],"sources":["../../../../packages/nextjs/src/common/helpers.ts"],"sourcesContent":["import type { FronteggUserTokens } from '../types';\nimport JwtManager from '../utils/jwt';\nimport encryptionUtils from '../utils/encryption';\n\nexport async function createSessionFromAccessToken(data: any): Promise<[string, any, string] | []> {\n const accessToken = data.accessToken ?? data.access_token;\n const refreshToken = data.refreshToken ?? data.refresh_token;\n const { payload: decodedJwt }: any = await JwtManager.verify(accessToken);\n decodedJwt.expiresIn = Math.floor((decodedJwt.exp * 1000 - Date.now()) / 1000);\n\n const tokens = { accessToken, refreshToken };\n const session = await encryptionUtils.sealTokens(tokens, decodedJwt.exp);\n return [session, decodedJwt, refreshToken];\n}\n\nexport async function getTokensFromCookie(cookie?: string): Promise<FronteggUserTokens | undefined> {\n if (!cookie) {\n return undefined;\n }\n return await encryptionUtils.unsealTokens(cookie);\n}\n"],"mappings":";;;;;;;;AACA;AACA;AAEO,eAAeA,4BAA4B,CAACC,IAAS,EAAuC;EAAA;EACjG,MAAMC,WAAW,wBAAGD,IAAI,CAACC,WAAW,gCAAID,IAAI,CAACE,YAAY;EACzD,MAAMC,YAAY,yBAAGH,IAAI,CAACG,YAAY,iCAAIH,IAAI,CAACI,aAAa;EAC5D,MAAM;IAAEC,OAAO,EAAEC;EAAgB,CAAC,GAAG,MAAMC,YAAU,CAACC,MAAM,CAACP,WAAW,CAAC;EACzEK,UAAU,CAACG,SAAS,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACL,UAAU,CAACM,GAAG,GAAG,IAAI,GAAGC,IAAI,CAACC,GAAG,EAAE,IAAI,IAAI,CAAC;EAE9E,MAAMC,MAAM,GAAG;IAAEd,WAAW;IAAEE;EAAa,CAAC;EAC5C,MAAMa,OAAO,GAAG,MAAMC,mBAAe,CAACC,UAAU,CAACH,MAAM,EAAET,UAAU,CAACM,GAAG,CAAC;EACxE,OAAO,CAACI,OAAO,EAAEV,UAAU,EAAEH,YAAY,CAAC;AAC5C;AAEO,eAAegB,mBAAmB,CAACC,MAAe,EAA2C;EAClG,IAAI,CAACA,MAAM,EAAE;IACX,OAAOC,SAAS;EAClB;EACA,OAAO,MAAMJ,mBAAe,CAACK,YAAY,CAACF,MAAM,CAAC;AACnD"}
|
package/common/index.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export * from './consts';
|
|
6
|
-
export { default as CookieManager } from './CookieManager';
|
|
1
|
+
export * from './helpers';
|
|
2
|
+
export { default as AppContext } from './AppContext';
|
|
3
|
+
export { FronteggBaseProvider } from './FronteggBaseProvider';
|
|
4
|
+
export { default as AuthorizedContent } from './AuthorizedContent';
|
package/common/index.js
CHANGED
|
@@ -1,10 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
var _exportNames = {
|
|
8
|
+
AppContext: true,
|
|
9
|
+
FronteggBaseProvider: true,
|
|
10
|
+
AuthorizedContent: true
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "AppContext", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _AppContext.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "AuthorizedContent", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _AuthorizedContent.default;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "FronteggBaseProvider", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _FronteggBaseProvider.FronteggBaseProvider;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
var _helpers = require("./helpers");
|
|
31
|
+
Object.keys(_helpers).forEach(function (key) {
|
|
32
|
+
if (key === "default" || key === "__esModule") return;
|
|
33
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
34
|
+
if (key in exports && exports[key] === _helpers[key]) return;
|
|
35
|
+
Object.defineProperty(exports, key, {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function () {
|
|
38
|
+
return _helpers[key];
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
var _AppContext = _interopRequireDefault(require("./AppContext"));
|
|
43
|
+
var _FronteggBaseProvider = require("./FronteggBaseProvider");
|
|
44
|
+
var _AuthorizedContent = _interopRequireDefault(require("./AuthorizedContent"));
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
package/common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/common/index.ts"],"sourcesContent":["export * from './helpers';\nexport { default as AppContext } from './AppContext';\nexport { FronteggBaseProvider } from './FronteggBaseProvider';\nexport { default as AuthorizedContent } from './AuthorizedContent';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AACA;AACA"}
|