@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
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../packages/nextjs/src/index.ts"],"sourcesContent":["export * from './common';\nexport * from './config';\nexport * from './middleware';\nexport * from './types';\n\nexport { AdminPortal, AppHolder, HostedLogin } from '@frontegg/js';\nexport * from '@frontegg/react-hooks';\nexport * from '@frontegg/types';\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;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAEA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NextApiRequest, NextApiResponse } from 'next';
|
|
2
|
+
/**
|
|
3
|
+
* Next.js HTTP Proxy Middleware
|
|
4
|
+
* @see https://nextjs.org/docs/api-routes/api-middlewares
|
|
5
|
+
* @param {NextApiRequest} req - NextJS api request passed from api routing
|
|
6
|
+
* @param {NextApiResponse} res - NextJS api response passed from api routing
|
|
7
|
+
*/
|
|
8
|
+
export declare function FronteggApiMiddleware(req: NextApiRequest, res: NextApiResponse): Promise<void>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FronteggApiMiddleware = FronteggApiMiddleware;
|
|
7
|
+
var _FronteggProxy = require("./FronteggProxy");
|
|
8
|
+
var _constants = require("./constants");
|
|
9
|
+
var _helpers = require("./helpers");
|
|
10
|
+
const middlewarePromise = (req, res) => new Promise(resolve => {
|
|
11
|
+
var _req$url;
|
|
12
|
+
const fronteggUrlPath = (0, _helpers.rewritePath)((_req$url = req.url) != null ? _req$url : '/', _constants.fronteggPathRewrite);
|
|
13
|
+
const rewriteUrl = (0, _helpers.rewritePath)(fronteggUrlPath != null ? fronteggUrlPath : '/', _constants.fronteggSSOPathRewrite);
|
|
14
|
+
req.url = rewriteUrl;
|
|
15
|
+
res.on('close', () => resolve());
|
|
16
|
+
const options = {
|
|
17
|
+
target: process.env['FRONTEGG_BASE_URL']
|
|
18
|
+
};
|
|
19
|
+
if (process.env['FRONTEGG_TEST_URL'] && req.url == '/frontegg/middleware-test') {
|
|
20
|
+
options.target = process.env['FRONTEGG_TEST_URL'];
|
|
21
|
+
}
|
|
22
|
+
_FronteggProxy.FronteggProxy.web(req, res, options);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Next.js HTTP Proxy Middleware
|
|
27
|
+
* @see https://nextjs.org/docs/api-routes/api-middlewares
|
|
28
|
+
* @param {NextApiRequest} req - NextJS api request passed from api routing
|
|
29
|
+
* @param {NextApiResponse} res - NextJS api response passed from api routing
|
|
30
|
+
*/
|
|
31
|
+
async function FronteggApiMiddleware(req, res) {
|
|
32
|
+
return await middlewarePromise(req, res);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=FronteggApiMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FronteggApiMiddleware.js","names":["middlewarePromise","req","res","Promise","resolve","fronteggUrlPath","rewritePath","url","fronteggPathRewrite","rewriteUrl","fronteggSSOPathRewrite","on","options","target","process","env","FronteggProxy","web","FronteggApiMiddleware"],"sources":["../../../../packages/nextjs/src/middleware/FronteggApiMiddleware.ts"],"sourcesContent":["import type { NextApiRequest, NextApiResponse } from 'next';\nimport { FronteggProxy } from './FronteggProxy';\nimport { fronteggSSOPathRewrite, fronteggPathRewrite } from './constants';\nimport { rewritePath } from './helpers';\n\nconst middlewarePromise = (req: NextApiRequest, res: NextApiResponse) =>\n new Promise<void>((resolve) => {\n const fronteggUrlPath = rewritePath(req.url ?? '/', fronteggPathRewrite);\n const rewriteUrl = rewritePath(fronteggUrlPath ?? '/', fronteggSSOPathRewrite);\n req.url = rewriteUrl;\n res.on('close', () => resolve());\n const options = {\n target: process.env['FRONTEGG_BASE_URL'],\n };\n if (process.env['FRONTEGG_TEST_URL'] && req.url == '/frontegg/middleware-test') {\n options.target = process.env['FRONTEGG_TEST_URL'];\n }\n\n FronteggProxy.web(req, res, options);\n });\n\n/**\n * Next.js HTTP Proxy Middleware\n * @see https://nextjs.org/docs/api-routes/api-middlewares\n * @param {NextApiRequest} req - NextJS api request passed from api routing\n * @param {NextApiResponse} res - NextJS api response passed from api routing\n */\nexport async function FronteggApiMiddleware(req: NextApiRequest, res: NextApiResponse) {\n return await middlewarePromise(req, res);\n}\n"],"mappings":";;;;;;AACA;AACA;AACA;AAEA,MAAMA,iBAAiB,GAAG,CAACC,GAAmB,EAAEC,GAAoB,KAClE,IAAIC,OAAO,CAAQC,OAAO,IAAK;EAAA;EAC7B,MAAMC,eAAe,GAAG,IAAAC,oBAAW,cAACL,GAAG,CAACM,GAAG,uBAAI,GAAG,EAAEC,8BAAmB,CAAC;EACxE,MAAMC,UAAU,GAAG,IAAAH,oBAAW,EAACD,eAAe,WAAfA,eAAe,GAAI,GAAG,EAAEK,iCAAsB,CAAC;EAC9ET,GAAG,CAACM,GAAG,GAAGE,UAAU;EACpBP,GAAG,CAACS,EAAE,CAAC,OAAO,EAAE,MAAMP,OAAO,EAAE,CAAC;EAChC,MAAMQ,OAAO,GAAG;IACdC,MAAM,EAAEC,OAAO,CAACC,GAAG,CAAC,mBAAmB;EACzC,CAAC;EACD,IAAID,OAAO,CAACC,GAAG,CAAC,mBAAmB,CAAC,IAAId,GAAG,CAACM,GAAG,IAAI,2BAA2B,EAAE;IAC9EK,OAAO,CAACC,MAAM,GAAGC,OAAO,CAACC,GAAG,CAAC,mBAAmB,CAAC;EACnD;EAEAC,4BAAa,CAACC,GAAG,CAAChB,GAAG,EAAEC,GAAG,EAAEU,OAAO,CAAC;AACtC,CAAC,CAAC;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACO,eAAeM,qBAAqB,CAACjB,GAAmB,EAAEC,GAAoB,EAAE;EACrF,OAAO,MAAMF,iBAAiB,CAACC,GAAG,EAAEC,GAAG,CAAC;AAC1C"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FronteggProxy = void 0;
|
|
8
|
+
var _httpProxy = require("http-proxy");
|
|
9
|
+
var _ProxyRequestCallback = _interopRequireDefault(require("./ProxyRequestCallback"));
|
|
10
|
+
var _ProxyResponseCallback = _interopRequireDefault(require("./ProxyResponseCallback"));
|
|
11
|
+
/**
|
|
12
|
+
* @see https://www.npmjs.com/package/http-proxy
|
|
13
|
+
*/
|
|
14
|
+
const FronteggProxy = (0, _httpProxy.createProxyServer)({
|
|
15
|
+
target: process.env['FRONTEGG_BASE_URL'],
|
|
16
|
+
changeOrigin: true,
|
|
17
|
+
selfHandleResponse: true
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Set proxy request callback handler
|
|
22
|
+
*/
|
|
23
|
+
// @ts-ignore
|
|
24
|
+
exports.FronteggProxy = FronteggProxy;
|
|
25
|
+
FronteggProxy.on('proxyReq', _ProxyRequestCallback.default);
|
|
26
|
+
/**
|
|
27
|
+
* Set proxy response callback handler
|
|
28
|
+
*/
|
|
29
|
+
// @ts-ignore
|
|
30
|
+
FronteggProxy.on('proxyRes', _ProxyResponseCallback.default);
|
|
31
|
+
//# sourceMappingURL=FronteggProxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FronteggProxy.js","names":["FronteggProxy","createProxyServer","target","process","env","changeOrigin","selfHandleResponse","on","ProxyRequestCallback","ProxyResponseCallback"],"sources":["../../../../packages/nextjs/src/middleware/FronteggProxy.ts"],"sourcesContent":["import { createProxyServer } from 'http-proxy';\nimport ProxyRequestCallback from './ProxyRequestCallback';\nimport ProxyResponseCallback from './ProxyResponseCallback';\n\n/**\n * @see https://www.npmjs.com/package/http-proxy\n */\nexport const FronteggProxy = createProxyServer({\n target: process.env['FRONTEGG_BASE_URL'],\n changeOrigin: true,\n selfHandleResponse: true,\n});\n\n/**\n * Set proxy request callback handler\n */\n// @ts-ignore\nFronteggProxy.on('proxyReq', ProxyRequestCallback);\n/**\n * Set proxy response callback handler\n */\n// @ts-ignore\nFronteggProxy.on('proxyRes', ProxyResponseCallback);\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEA;AACA;AACA;AACO,MAAMA,aAAa,GAAG,IAAAC,4BAAiB,EAAC;EAC7CC,MAAM,EAAEC,OAAO,CAACC,GAAG,CAAC,mBAAmB,CAAC;EACxCC,YAAY,EAAE,IAAI;EAClBC,kBAAkB,EAAE;AACtB,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AAAA;AACAN,aAAa,CAACO,EAAE,CAAC,UAAU,EAAEC,6BAAoB,CAAC;AAClD;AACA;AACA;AACA;AACAR,aAAa,CAACO,EAAE,CAAC,UAAU,EAAEE,8BAAqB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ProxyReqCallback } from 'http-proxy';
|
|
3
|
+
import { ClientRequest } from 'http';
|
|
4
|
+
import { NextApiRequest } from 'next';
|
|
5
|
+
/**
|
|
6
|
+
* Proxy request callback fired on before each request to Frontegg services,
|
|
7
|
+
* to transport frontegg cookies.
|
|
8
|
+
*
|
|
9
|
+
* @param {ClientRequest} proxyReq - Proxy request to be sent
|
|
10
|
+
* @param {NextApiRequest} req - Next.js incoming request
|
|
11
|
+
*/
|
|
12
|
+
declare const ProxyRequestCallback: ProxyReqCallback<ClientRequest, NextApiRequest>;
|
|
13
|
+
export default ProxyRequestCallback;
|
|
@@ -0,0 +1,56 @@
|
|
|
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 _package = _interopRequireDefault(require("next/package.json"));
|
|
9
|
+
var _sdkVersion = _interopRequireDefault(require("../sdkVersion"));
|
|
10
|
+
var _config = _interopRequireDefault(require("../config"));
|
|
11
|
+
var _cookies = _interopRequireDefault(require("../utils/cookies"));
|
|
12
|
+
var _fronteggLogger = _interopRequireDefault(require("../utils/fronteggLogger"));
|
|
13
|
+
const logger = _fronteggLogger.default.child({
|
|
14
|
+
tag: 'FronteggApiMiddleware.ProxyRequestCallback'
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* Proxy request callback fired on before each request to Frontegg services,
|
|
18
|
+
* to transport frontegg cookies.
|
|
19
|
+
*
|
|
20
|
+
* @param {ClientRequest} proxyReq - Proxy request to be sent
|
|
21
|
+
* @param {NextApiRequest} req - Next.js incoming request
|
|
22
|
+
*/
|
|
23
|
+
const ProxyRequestCallback = (proxyReq, req) => {
|
|
24
|
+
try {
|
|
25
|
+
var _req$headers$xFronte, _req$headers$xFronte2;
|
|
26
|
+
logger.info(`${req.url} | Going to proxy request`);
|
|
27
|
+
logger.debug(`${req.url} | parsing request cookies`);
|
|
28
|
+
const allCookies = _cookies.default.parseCookieHeader(req);
|
|
29
|
+
logger.debug(`${req.url} | found ${allCookies} cookies`);
|
|
30
|
+
const fronteggCookiesNames = Object.keys(allCookies).filter(cookieName => {
|
|
31
|
+
return cookieName.startsWith('fe_') && !cookieName.startsWith(_config.default.cookieName);
|
|
32
|
+
});
|
|
33
|
+
logger.debug(`${req.url} | proxy FronteggCookies (${fronteggCookiesNames.join(', ')})`);
|
|
34
|
+
fronteggCookiesNames.forEach(cookieName => {
|
|
35
|
+
proxyReq.setHeader(cookieName, allCookies[cookieName]);
|
|
36
|
+
});
|
|
37
|
+
proxyReq.setHeader('x-frontegg-middleware', 'true');
|
|
38
|
+
proxyReq.setHeader('x-frontegg-framework', (_req$headers$xFronte = req.headers['x-frontegg-framework']) != null ? _req$headers$xFronte : `next@${_package.default.version}`);
|
|
39
|
+
proxyReq.setHeader('x-frontegg-sdk', (_req$headers$xFronte2 = req.headers['x-frontegg-sdk']) != null ? _req$headers$xFronte2 : `@frontegg/nextjs@${_sdkVersion.default.version}`);
|
|
40
|
+
logger.debug(`${req.url} | check if request has body`);
|
|
41
|
+
if (req.body) {
|
|
42
|
+
logger.debug(`${req.url} | writing request body to proxyReq`);
|
|
43
|
+
const bodyData = JSON.stringify(req.body);
|
|
44
|
+
// in case if content-type is application/x-www-form-urlencoded -> we need to change to application/json
|
|
45
|
+
proxyReq.setHeader('Content-Type', 'application/json');
|
|
46
|
+
proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData));
|
|
47
|
+
// stream the content
|
|
48
|
+
proxyReq.write(bodyData);
|
|
49
|
+
}
|
|
50
|
+
} catch (e) {
|
|
51
|
+
logger.error(`${req.url} | Failed to proxy request`, e);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
var _default = ProxyRequestCallback;
|
|
55
|
+
exports.default = _default;
|
|
56
|
+
//# sourceMappingURL=ProxyRequestCallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProxyRequestCallback.js","names":["logger","fronteggLogger","child","tag","ProxyRequestCallback","proxyReq","req","info","url","debug","allCookies","CookieManager","parseCookieHeader","fronteggCookiesNames","Object","keys","filter","cookieName","startsWith","config","join","forEach","setHeader","headers","NextJsPkg","version","sdkVersion","body","bodyData","JSON","stringify","Buffer","byteLength","write","e","error"],"sources":["../../../../packages/nextjs/src/middleware/ProxyRequestCallback.ts"],"sourcesContent":["import NextJsPkg from 'next/package.json';\nimport { ProxyReqCallback } from 'http-proxy';\nimport { ClientRequest } from 'http';\nimport { NextApiRequest } from 'next';\nimport sdkVersion from '../sdkVersion';\nimport config from '../config';\nimport CookieManager from '../utils/cookies';\nimport fronteggLogger from '../utils/fronteggLogger';\n\nconst logger = fronteggLogger.child({ tag: 'FronteggApiMiddleware.ProxyRequestCallback' });\n/**\n * Proxy request callback fired on before each request to Frontegg services,\n * to transport frontegg cookies.\n *\n * @param {ClientRequest} proxyReq - Proxy request to be sent\n * @param {NextApiRequest} req - Next.js incoming request\n */\nconst ProxyRequestCallback: ProxyReqCallback<ClientRequest, NextApiRequest> = (proxyReq, req) => {\n try {\n logger.info(`${req.url} | Going to proxy request`);\n logger.debug(`${req.url} | parsing request cookies`);\n const allCookies = CookieManager.parseCookieHeader(req);\n logger.debug(`${req.url} | found ${allCookies} cookies`);\n const fronteggCookiesNames = Object.keys(allCookies).filter((cookieName) => {\n return cookieName.startsWith('fe_') && !cookieName.startsWith(config.cookieName);\n });\n\n logger.debug(`${req.url} | proxy FronteggCookies (${fronteggCookiesNames.join(', ')})`);\n fronteggCookiesNames.forEach((cookieName: string) => {\n proxyReq.setHeader(cookieName, allCookies[cookieName]);\n });\n\n proxyReq.setHeader('x-frontegg-middleware', 'true');\n proxyReq.setHeader('x-frontegg-framework', req.headers['x-frontegg-framework'] ?? `next@${NextJsPkg.version}`);\n proxyReq.setHeader('x-frontegg-sdk', req.headers['x-frontegg-sdk'] ?? `@frontegg/nextjs@${sdkVersion.version}`);\n logger.debug(`${req.url} | check if request has body`);\n if (req.body) {\n logger.debug(`${req.url} | writing request body to proxyReq`);\n const bodyData = JSON.stringify(req.body);\n // in case if content-type is application/x-www-form-urlencoded -> we need to change to application/json\n proxyReq.setHeader('Content-Type', 'application/json');\n proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData));\n // stream the content\n proxyReq.write(bodyData);\n }\n } catch (e) {\n logger.error(`${req.url} | Failed to proxy request`, e);\n }\n};\n\nexport default ProxyRequestCallback;\n"],"mappings":";;;;;;;AAAA;AAIA;AACA;AACA;AACA;AAEA,MAAMA,MAAM,GAAGC,uBAAc,CAACC,KAAK,CAAC;EAAEC,GAAG,EAAE;AAA6C,CAAC,CAAC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,oBAAqE,GAAG,CAACC,QAAQ,EAAEC,GAAG,KAAK;EAC/F,IAAI;IAAA;IACFN,MAAM,CAACO,IAAI,CAAE,GAAED,GAAG,CAACE,GAAI,2BAA0B,CAAC;IAClDR,MAAM,CAACS,KAAK,CAAE,GAAEH,GAAG,CAACE,GAAI,4BAA2B,CAAC;IACpD,MAAME,UAAU,GAAGC,gBAAa,CAACC,iBAAiB,CAACN,GAAG,CAAC;IACvDN,MAAM,CAACS,KAAK,CAAE,GAAEH,GAAG,CAACE,GAAI,YAAWE,UAAW,UAAS,CAAC;IACxD,MAAMG,oBAAoB,GAAGC,MAAM,CAACC,IAAI,CAACL,UAAU,CAAC,CAACM,MAAM,CAAEC,UAAU,IAAK;MAC1E,OAAOA,UAAU,CAACC,UAAU,CAAC,KAAK,CAAC,IAAI,CAACD,UAAU,CAACC,UAAU,CAACC,eAAM,CAACF,UAAU,CAAC;IAClF,CAAC,CAAC;IAEFjB,MAAM,CAACS,KAAK,CAAE,GAAEH,GAAG,CAACE,GAAI,6BAA4BK,oBAAoB,CAACO,IAAI,CAAC,IAAI,CAAE,GAAE,CAAC;IACvFP,oBAAoB,CAACQ,OAAO,CAAEJ,UAAkB,IAAK;MACnDZ,QAAQ,CAACiB,SAAS,CAACL,UAAU,EAAEP,UAAU,CAACO,UAAU,CAAC,CAAC;IACxD,CAAC,CAAC;IAEFZ,QAAQ,CAACiB,SAAS,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACnDjB,QAAQ,CAACiB,SAAS,CAAC,sBAAsB,0BAAEhB,GAAG,CAACiB,OAAO,CAAC,sBAAsB,CAAC,mCAAK,QAAOC,gBAAS,CAACC,OAAQ,EAAC,CAAC;IAC9GpB,QAAQ,CAACiB,SAAS,CAAC,gBAAgB,2BAAEhB,GAAG,CAACiB,OAAO,CAAC,gBAAgB,CAAC,oCAAK,oBAAmBG,mBAAU,CAACD,OAAQ,EAAC,CAAC;IAC/GzB,MAAM,CAACS,KAAK,CAAE,GAAEH,GAAG,CAACE,GAAI,8BAA6B,CAAC;IACtD,IAAIF,GAAG,CAACqB,IAAI,EAAE;MACZ3B,MAAM,CAACS,KAAK,CAAE,GAAEH,GAAG,CAACE,GAAI,qCAAoC,CAAC;MAC7D,MAAMoB,QAAQ,GAAGC,IAAI,CAACC,SAAS,CAACxB,GAAG,CAACqB,IAAI,CAAC;MACzC;MACAtB,QAAQ,CAACiB,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC;MACtDjB,QAAQ,CAACiB,SAAS,CAAC,gBAAgB,EAAES,MAAM,CAACC,UAAU,CAACJ,QAAQ,CAAC,CAAC;MACjE;MACAvB,QAAQ,CAAC4B,KAAK,CAACL,QAAQ,CAAC;IAC1B;EACF,CAAC,CAAC,OAAOM,CAAC,EAAE;IACVlC,MAAM,CAACmC,KAAK,CAAE,GAAE7B,GAAG,CAACE,GAAI,4BAA2B,EAAE0B,CAAC,CAAC;EACzD;AACF,CAAC;AAAC,eAEa9B,oBAAoB;AAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ProxyResCallback } from 'http-proxy';
|
|
2
|
+
import { IncomingMessage } from 'http';
|
|
3
|
+
import { NextApiResponse } from 'next';
|
|
4
|
+
/**
|
|
5
|
+
* Proxy response callback fired on after each response from Frontegg services,
|
|
6
|
+
* to transport frontegg modify cookies and generating encrypted JWT session cookie.
|
|
7
|
+
*
|
|
8
|
+
* @param {IncomingMessage} proxyRes - Proxy response from Frontegg services
|
|
9
|
+
* @param {NextApiRequest} req - Next.js request sent from client-side
|
|
10
|
+
* @param {NextApiResponse} res - Next.js response to send to client-side
|
|
11
|
+
*/
|
|
12
|
+
declare const ProxyResponseCallback: ProxyResCallback<IncomingMessage, NextApiResponse>;
|
|
13
|
+
export default ProxyResponseCallback;
|
|
@@ -0,0 +1,111 @@
|
|
|
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 _config = _interopRequireDefault(require("../config"));
|
|
9
|
+
var _cookies = _interopRequireDefault(require("../utils/cookies"));
|
|
10
|
+
var _common = require("../common");
|
|
11
|
+
var _helpers = require("./helpers");
|
|
12
|
+
var _fronteggLogger = _interopRequireDefault(require("../utils/fronteggLogger"));
|
|
13
|
+
const logger = _fronteggLogger.default.child({
|
|
14
|
+
tag: 'FronteggApiMiddleware.ProxyResponseCallback'
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* Proxy response callback fired on after each response from Frontegg services,
|
|
18
|
+
* to transport frontegg modify cookies and generating encrypted JWT session cookie.
|
|
19
|
+
*
|
|
20
|
+
* @param {IncomingMessage} proxyRes - Proxy response from Frontegg services
|
|
21
|
+
* @param {NextApiRequest} req - Next.js request sent from client-side
|
|
22
|
+
* @param {NextApiResponse} res - Next.js response to send to client-side
|
|
23
|
+
*/
|
|
24
|
+
const ProxyResponseCallback = (proxyRes, req, res) => {
|
|
25
|
+
let buffer = new Buffer('');
|
|
26
|
+
let totalLength = 0;
|
|
27
|
+
const isSecured = new URL(_config.default.appUrl).protocol === 'https:';
|
|
28
|
+
proxyRes.on('data', chunk => {
|
|
29
|
+
totalLength += chunk.length;
|
|
30
|
+
buffer = Buffer.concat([buffer, chunk], totalLength);
|
|
31
|
+
});
|
|
32
|
+
proxyRes.on('end', async () => {
|
|
33
|
+
try {
|
|
34
|
+
var _proxyRes$statusCode;
|
|
35
|
+
const url = req.url;
|
|
36
|
+
const statusCode = (_proxyRes$statusCode = proxyRes.statusCode) != null ? _proxyRes$statusCode : 500;
|
|
37
|
+
const isSuccess = statusCode >= 200 && statusCode < 400;
|
|
38
|
+
const bodyStr = buffer.toString('utf-8');
|
|
39
|
+
const isLogout = (0, _helpers.isFronteggLogoutUrl)(url);
|
|
40
|
+
if (isLogout) {
|
|
41
|
+
_cookies.default.removeCookies({
|
|
42
|
+
isSecured,
|
|
43
|
+
cookieDomain: _config.default.cookieDomain,
|
|
44
|
+
res,
|
|
45
|
+
req
|
|
46
|
+
});
|
|
47
|
+
if (isSuccess) {
|
|
48
|
+
var _process$env$FRONTEGG;
|
|
49
|
+
res.redirect(`${process.env['FRONTEGG_BASE_URL']}/oauth/logout?post_logout_redirect_uri=${encodeURIComponent((_process$env$FRONTEGG = process.env['FRONTEGG_APP_URL']) != null ? _process$env$FRONTEGG : '')}`);
|
|
50
|
+
} else {
|
|
51
|
+
res.status(statusCode).end(bodyStr);
|
|
52
|
+
}
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (isSuccess) {
|
|
56
|
+
var _CookieManager$modify;
|
|
57
|
+
const cookies = (_CookieManager$modify = _cookies.default.modifySetCookie(proxyRes.headers['set-cookie'], isSecured)) != null ? _CookieManager$modify : [];
|
|
58
|
+
try {
|
|
59
|
+
if (bodyStr && bodyStr.length > 0) {
|
|
60
|
+
const body = JSON.parse(bodyStr);
|
|
61
|
+
if (body.accessToken || body.access_token) {
|
|
62
|
+
const [session, decodedJwt] = await (0, _common.createSessionFromAccessToken)(body);
|
|
63
|
+
if (session) {
|
|
64
|
+
const sessionCookie = _cookies.default.create({
|
|
65
|
+
value: session,
|
|
66
|
+
expires: new Date(decodedJwt.exp * 1000),
|
|
67
|
+
secure: isSecured
|
|
68
|
+
});
|
|
69
|
+
cookies.push(...sessionCookie);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
} catch (e) {
|
|
74
|
+
/** ignore api call if:
|
|
75
|
+
* - Does not have accessToken / access_token
|
|
76
|
+
* - Not json response
|
|
77
|
+
*/
|
|
78
|
+
if (statusCode === 302 && url === '/auth/saml/callback') {
|
|
79
|
+
/**
|
|
80
|
+
* Ignore saml postLogin response with redirect
|
|
81
|
+
*/
|
|
82
|
+
} else {
|
|
83
|
+
logger.error('failed to create session', e, {
|
|
84
|
+
url,
|
|
85
|
+
statusCode
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
Object.keys(proxyRes.headers).filter(header => header !== 'cookie').forEach(header => {
|
|
90
|
+
res.setHeader(header, `${proxyRes.headers[header]}`);
|
|
91
|
+
});
|
|
92
|
+
res.setHeader('set-cookie', cookies);
|
|
93
|
+
res.status(statusCode).end(bodyStr);
|
|
94
|
+
} else {
|
|
95
|
+
if (statusCode >= 400 && statusCode !== 404) {
|
|
96
|
+
logger.error(`Middleware request failed statusCode: ${statusCode} for url: ${url}`);
|
|
97
|
+
}
|
|
98
|
+
Object.keys(proxyRes.headers).filter(header => header !== 'cookie').forEach(header => {
|
|
99
|
+
res.setHeader(header, `${proxyRes.headers[header]}`);
|
|
100
|
+
});
|
|
101
|
+
res.status(statusCode).end(bodyStr);
|
|
102
|
+
}
|
|
103
|
+
} catch (e) {
|
|
104
|
+
logger.error('proxy failed to send request', e);
|
|
105
|
+
res.status(500).end('Internal Server Error');
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
var _default = ProxyResponseCallback;
|
|
110
|
+
exports.default = _default;
|
|
111
|
+
//# sourceMappingURL=ProxyResponseCallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProxyResponseCallback.js","names":["logger","fronteggLogger","child","tag","ProxyResponseCallback","proxyRes","req","res","buffer","Buffer","totalLength","isSecured","URL","config","appUrl","protocol","on","chunk","length","concat","url","statusCode","isSuccess","bodyStr","toString","isLogout","isFronteggLogoutUrl","CookieManager","removeCookies","cookieDomain","redirect","process","env","encodeURIComponent","status","end","cookies","modifySetCookie","headers","body","JSON","parse","accessToken","access_token","session","decodedJwt","createSessionFromAccessToken","sessionCookie","create","value","expires","Date","exp","secure","push","e","error","Object","keys","filter","header","forEach","setHeader"],"sources":["../../../../packages/nextjs/src/middleware/ProxyResponseCallback.ts"],"sourcesContent":["import { ProxyResCallback } from 'http-proxy';\nimport { IncomingMessage } from 'http';\nimport { NextApiResponse, NextApiRequest } from 'next';\nimport config from '../config';\nimport CookieManager from '../utils/cookies';\nimport { createSessionFromAccessToken } from '../common';\nimport { isFronteggLogoutUrl } from './helpers';\nimport fronteggLogger from '../utils/fronteggLogger';\n\nconst logger = fronteggLogger.child({ tag: 'FronteggApiMiddleware.ProxyResponseCallback' });\n/**\n * Proxy response callback fired on after each response from Frontegg services,\n * to transport frontegg modify cookies and generating encrypted JWT session cookie.\n *\n * @param {IncomingMessage} proxyRes - Proxy response from Frontegg services\n * @param {NextApiRequest} req - Next.js request sent from client-side\n * @param {NextApiResponse} res - Next.js response to send to client-side\n */\nconst ProxyResponseCallback: ProxyResCallback<IncomingMessage, NextApiResponse> = (proxyRes, req, res) => {\n let buffer = new Buffer('');\n let totalLength: number = 0;\n const isSecured = new URL(config.appUrl).protocol === 'https:';\n\n proxyRes.on('data', (chunk: Buffer) => {\n totalLength += chunk.length;\n buffer = Buffer.concat([buffer, chunk], totalLength);\n });\n proxyRes.on('end', async () => {\n try {\n const url = req.url!;\n const statusCode = proxyRes.statusCode ?? 500;\n const isSuccess = statusCode >= 200 && statusCode < 400;\n const bodyStr = buffer.toString('utf-8');\n const isLogout = isFronteggLogoutUrl(url);\n\n if (isLogout) {\n CookieManager.removeCookies({\n isSecured,\n cookieDomain: config.cookieDomain,\n res,\n req,\n });\n if (isSuccess) {\n res.redirect(\n `${process.env['FRONTEGG_BASE_URL']}/oauth/logout?post_logout_redirect_uri=${encodeURIComponent(\n process.env['FRONTEGG_APP_URL'] ?? ''\n )}`\n );\n } else {\n res.status(statusCode).end(bodyStr);\n }\n return;\n }\n\n if (isSuccess) {\n const cookies = CookieManager.modifySetCookie(proxyRes.headers['set-cookie'], isSecured) ?? [];\n\n try {\n if (bodyStr && bodyStr.length > 0) {\n const body = JSON.parse(bodyStr);\n if (body.accessToken || body.access_token) {\n const [session, decodedJwt] = await createSessionFromAccessToken(body);\n if (session) {\n const sessionCookie = CookieManager.create({\n value: session,\n expires: new Date(decodedJwt.exp * 1000),\n secure: isSecured,\n });\n cookies.push(...sessionCookie);\n }\n }\n }\n } catch (e) {\n /** ignore api call if:\n * - Does not have accessToken / access_token\n * - Not json response\n */\n if (statusCode === 302 && url === '/auth/saml/callback') {\n /**\n * Ignore saml postLogin response with redirect\n */\n } else {\n logger.error('failed to create session', e, {\n url,\n statusCode,\n });\n }\n }\n Object.keys(proxyRes.headers)\n .filter((header) => header !== 'cookie')\n .forEach((header) => {\n res.setHeader(header, `${proxyRes.headers[header]}`);\n });\n res.setHeader('set-cookie', cookies);\n res.status(statusCode).end(bodyStr);\n } else {\n if (statusCode >= 400 && statusCode !== 404) {\n logger.error(`Middleware request failed statusCode: ${statusCode} for url: ${url}`);\n }\n Object.keys(proxyRes.headers)\n .filter((header) => header !== 'cookie')\n .forEach((header) => {\n res.setHeader(header, `${proxyRes.headers[header]}`);\n });\n res.status(statusCode).end(bodyStr);\n }\n } catch (e: any) {\n logger.error('proxy failed to send request', e);\n res.status(500).end('Internal Server Error');\n }\n });\n};\n\nexport default ProxyResponseCallback;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.fronteggSSOPathRewrite = exports.fronteggPathRewrite = void 0;
|
|
7
|
+
const fronteggPathRewrite = [{
|
|
8
|
+
patternStr: '^/api/',
|
|
9
|
+
replaceStr: '/'
|
|
10
|
+
}];
|
|
11
|
+
exports.fronteggPathRewrite = fronteggPathRewrite;
|
|
12
|
+
const fronteggSSOPathRewrite = [{
|
|
13
|
+
patternStr: '/frontegg/saml/callback$',
|
|
14
|
+
replaceStr: '/auth/saml/callback'
|
|
15
|
+
}];
|
|
16
|
+
exports.fronteggSSOPathRewrite = fronteggSSOPathRewrite;
|
|
17
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["fronteggPathRewrite","patternStr","replaceStr","fronteggSSOPathRewrite"],"sources":["../../../../packages/nextjs/src/middleware/constants.ts"],"sourcesContent":["export const fronteggPathRewrite = [\n {\n patternStr: '^/api/',\n replaceStr: '/',\n },\n];\nexport const fronteggSSOPathRewrite = [\n {\n patternStr: '/frontegg/saml/callback$',\n replaceStr: '/auth/saml/callback',\n },\n];\n"],"mappings":";;;;;;AAAO,MAAMA,mBAAmB,GAAG,CACjC;EACEC,UAAU,EAAE,QAAQ;EACpBC,UAAU,EAAE;AACd,CAAC,CACF;AAAC;AACK,MAAMC,sBAAsB,GAAG,CACpC;EACEF,UAAU,EAAE,0BAA0B;EACtCC,UAAU,EAAE;AACd,CAAC,CACF;AAAC"}
|
|
@@ -1,26 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
} | {
|
|
15
|
-
patternStr: string;
|
|
16
|
-
replaceStr: string;
|
|
17
|
-
}[]) => string;
|
|
18
|
-
export declare const fronteggPathRewrite: {
|
|
19
|
-
patternStr: string;
|
|
20
|
-
replaceStr: string;
|
|
21
|
-
}[];
|
|
22
|
-
export declare const fronteggSSOPathRewrite: {
|
|
23
|
-
patternStr: string;
|
|
24
|
-
replaceStr: string;
|
|
25
|
-
}[];
|
|
26
|
-
export declare const isFronteggLogoutUrl: (url: string) => boolean;
|
|
1
|
+
/**
|
|
2
|
+
* If pattern information matching the input url information is found in the `pathRewrite` array,
|
|
3
|
+
* the url value is partially replaced with the `pathRewrite.replaceStr` value.
|
|
4
|
+
* @param url
|
|
5
|
+
* @param pathRewrite
|
|
6
|
+
*/
|
|
7
|
+
export declare const rewritePath: (url: string, pathRewrite: {
|
|
8
|
+
[key: string]: string;
|
|
9
|
+
} | {
|
|
10
|
+
patternStr: string;
|
|
11
|
+
replaceStr: string;
|
|
12
|
+
}[]) => string;
|
|
13
|
+
export declare const isFronteggLogoutUrl: (url: string) => boolean;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.rewritePath = exports.isFronteggLogoutUrl = void 0;
|
|
7
|
+
var _restApi = require("@frontegg/rest-api");
|
|
8
|
+
/**
|
|
9
|
+
* If pattern information matching the input url information is found in the `pathRewrite` array,
|
|
10
|
+
* the url value is partially replaced with the `pathRewrite.replaceStr` value.
|
|
11
|
+
* @param url
|
|
12
|
+
* @param pathRewrite
|
|
13
|
+
*/
|
|
14
|
+
const rewritePath = (url, pathRewrite) => {
|
|
15
|
+
if (Array.isArray(pathRewrite)) {
|
|
16
|
+
for (const item of pathRewrite) {
|
|
17
|
+
const {
|
|
18
|
+
patternStr,
|
|
19
|
+
replaceStr
|
|
20
|
+
} = item;
|
|
21
|
+
const pattern = RegExp(patternStr);
|
|
22
|
+
if (pattern.test(url)) {
|
|
23
|
+
return url.replace(pattern, replaceStr);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
for (const patternStr in pathRewrite) {
|
|
28
|
+
const pattern = RegExp(patternStr);
|
|
29
|
+
const path = pathRewrite[patternStr];
|
|
30
|
+
if (pattern.test(url)) {
|
|
31
|
+
return url.replace(pattern, path);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return url;
|
|
36
|
+
};
|
|
37
|
+
exports.rewritePath = rewritePath;
|
|
38
|
+
const isFronteggLogoutUrl = url => {
|
|
39
|
+
return _restApi.fronteggAuthApiRoutes.filter(path => path.endsWith('/logout')).findIndex(route => url.endsWith(route)) >= 0;
|
|
40
|
+
};
|
|
41
|
+
exports.isFronteggLogoutUrl = isFronteggLogoutUrl;
|
|
42
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["rewritePath","url","pathRewrite","Array","isArray","item","patternStr","replaceStr","pattern","RegExp","test","replace","path","isFronteggLogoutUrl","fronteggAuthApiRoutes","filter","endsWith","findIndex","route"],"sources":["../../../../packages/nextjs/src/middleware/helpers.ts"],"sourcesContent":["import { fronteggAuthApiRoutes } from '@frontegg/rest-api';\n\n/**\n * If pattern information matching the input url information is found in the `pathRewrite` array,\n * the url value is partially replaced with the `pathRewrite.replaceStr` value.\n * @param url\n * @param pathRewrite\n */\nexport const rewritePath = (\n url: string,\n pathRewrite: { [key: string]: string } | { patternStr: string; replaceStr: string }[]\n) => {\n if (Array.isArray(pathRewrite)) {\n for (const item of pathRewrite) {\n const { patternStr, replaceStr } = item;\n const pattern = RegExp(patternStr);\n if (pattern.test(url as string)) {\n return url.replace(pattern, replaceStr);\n }\n }\n } else {\n for (const patternStr in pathRewrite) {\n const pattern = RegExp(patternStr);\n const path = pathRewrite[patternStr];\n if (pattern.test(url as string)) {\n return url.replace(pattern, path);\n }\n }\n }\n return url;\n};\n\nexport const isFronteggLogoutUrl = (url: string) => {\n return (\n fronteggAuthApiRoutes.filter((path) => path.endsWith('/logout')).findIndex((route) => url.endsWith(route)) >= 0\n );\n};\n"],"mappings":";;;;;;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,WAAW,GAAG,CACzBC,GAAW,EACXC,WAAqF,KAClF;EACH,IAAIC,KAAK,CAACC,OAAO,CAACF,WAAW,CAAC,EAAE;IAC9B,KAAK,MAAMG,IAAI,IAAIH,WAAW,EAAE;MAC9B,MAAM;QAAEI,UAAU;QAAEC;MAAW,CAAC,GAAGF,IAAI;MACvC,MAAMG,OAAO,GAAGC,MAAM,CAACH,UAAU,CAAC;MAClC,IAAIE,OAAO,CAACE,IAAI,CAACT,GAAG,CAAW,EAAE;QAC/B,OAAOA,GAAG,CAACU,OAAO,CAACH,OAAO,EAAED,UAAU,CAAC;MACzC;IACF;EACF,CAAC,MAAM;IACL,KAAK,MAAMD,UAAU,IAAIJ,WAAW,EAAE;MACpC,MAAMM,OAAO,GAAGC,MAAM,CAACH,UAAU,CAAC;MAClC,MAAMM,IAAI,GAAGV,WAAW,CAACI,UAAU,CAAC;MACpC,IAAIE,OAAO,CAACE,IAAI,CAACT,GAAG,CAAW,EAAE;QAC/B,OAAOA,GAAG,CAACU,OAAO,CAACH,OAAO,EAAEI,IAAI,CAAC;MACnC;IACF;EACF;EACA,OAAOX,GAAG;AACZ,CAAC;AAAC;AAEK,MAAMY,mBAAmB,GAAIZ,GAAW,IAAK;EAClD,OACEa,8BAAqB,CAACC,MAAM,CAAEH,IAAI,IAAKA,IAAI,CAACI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAACC,SAAS,CAAEC,KAAK,IAAKjB,GAAG,CAACe,QAAQ,CAACE,KAAK,CAAC,CAAC,IAAI,CAAC;AAEnH,CAAC;AAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* {@link FronteggApiMiddleware} is a proxy between the Client-Side to Frontegg gateway.
|
|
3
|
+
* The purpose of this middleware is to handle auth response before arrived to the Client-Side
|
|
4
|
+
* for extracting JWT and fe_* headers to create NextJS session cookie.
|
|
5
|
+
*
|
|
6
|
+
* NextJS session cookies used for getServerSideProps in client-components and ServerComponents.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
*
|
|
10
|
+
* Create new file under `./pages/api/frontegg/[...frontegg-middleware].ts` and paste the snippet below:
|
|
11
|
+
*
|
|
12
|
+
* ```typescript
|
|
13
|
+
* export { FronteggApiMiddleware as default } from '@frontegg/nextjs/middleware';
|
|
14
|
+
*
|
|
15
|
+
* export const config = {
|
|
16
|
+
* api: {
|
|
17
|
+
* externalResolver: true,
|
|
18
|
+
* responseLimit: true,
|
|
19
|
+
* },
|
|
20
|
+
* };
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export { FronteggApiMiddleware } from './FronteggApiMiddleware';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "FronteggApiMiddleware", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _FronteggApiMiddleware.FronteggApiMiddleware;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _FronteggApiMiddleware = require("./FronteggApiMiddleware");
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/middleware/index.ts"],"sourcesContent":["/**\n * {@link FronteggApiMiddleware} is a proxy between the Client-Side to Frontegg gateway.\n * The purpose of this middleware is to handle auth response before arrived to the Client-Side\n * for extracting JWT and fe_* headers to create NextJS session cookie.\n *\n * NextJS session cookies used for getServerSideProps in client-components and ServerComponents.\n *\n * Usage:\n *\n * Create new file under `./pages/api/frontegg/[...frontegg-middleware].ts` and paste the snippet below:\n *\n * ```typescript\n * export { FronteggApiMiddleware as default } from '@frontegg/nextjs/middleware';\n *\n * export const config = {\n * api: {\n * externalResolver: true,\n * responseLimit: true,\n * },\n * };\n * ```\n */\nexport { FronteggApiMiddleware } from './FronteggApiMiddleware';\n"],"mappings":";;;;;;;;;;;AAsBA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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 = ExpireInListener;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _reactHooks = require("@frontegg/react-hooks");
|
|
12
|
+
var _common = require("../utils/common");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
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); }
|
|
15
|
+
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; }
|
|
16
|
+
function ExpireInListener() {
|
|
17
|
+
const user = (0, _reactHooks.useAuthUserOrNull)();
|
|
18
|
+
const actions = (0, _reactHooks.useAuthActions)();
|
|
19
|
+
(0, _react.useEffect)(() => {
|
|
20
|
+
if (user && (user == null ? void 0 : user.expiresIn) == null) {
|
|
21
|
+
actions.setUser((0, _extends2.default)({}, user, {
|
|
22
|
+
expiresIn: (0, _common.calculateExpiresInFromExp)(user['exp'])
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
}, [actions, user]);
|
|
26
|
+
// eslint-disable-next-line react/jsx-no-useless-fragment
|
|
27
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=ExpireInListener.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpireInListener.js","names":["ExpireInListener","user","useAuthUserOrNull","actions","useAuthActions","useEffect","expiresIn","setUser","calculateExpiresInFromExp"],"sources":["../../../../packages/nextjs/src/no-ssr/ExpireInListener.tsx"],"sourcesContent":["'use client';\n\nimport React, { useEffect } from 'react';\nimport { useAuthActions, useAuthUserOrNull } from '@frontegg/react-hooks';\nimport { calculateExpiresInFromExp } from '../utils/common';\n\nexport default function ExpireInListener() {\n const user = useAuthUserOrNull();\n const actions = useAuthActions();\n useEffect(() => {\n if (user && user?.expiresIn == null) {\n actions.setUser({\n ...user,\n expiresIn: calculateExpiresInFromExp((user as any)['exp']),\n });\n }\n }, [actions, user]);\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <></>;\n}\n"],"mappings":";AAAA,YAAY;;AAAC;AAAA;EAAA;AAAA;AAAA;AAAA;AAEb;AACA;AACA;AAA4D;AAAA;AAAA;AAE7C,SAASA,gBAAgB,GAAG;EACzC,MAAMC,IAAI,GAAG,IAAAC,6BAAiB,GAAE;EAChC,MAAMC,OAAO,GAAG,IAAAC,0BAAc,GAAE;EAChC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIJ,IAAI,IAAI,CAAAA,IAAI,oBAAJA,IAAI,CAAEK,SAAS,KAAI,IAAI,EAAE;MACnCH,OAAO,CAACI,OAAO,4BACVN,IAAI;QACPK,SAAS,EAAE,IAAAE,iCAAyB,EAAEP,IAAI,CAAS,KAAK,CAAC;MAAC,GAC1D;IACJ;EACF,CAAC,EAAE,CAACE,OAAO,EAAEF,IAAI,CAAC,CAAC;EACnB;EACA,oBAAO,8CAAK;AACd"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FronteggAppOptions } from '@frontegg/types';
|
|
2
|
-
import { FC, PropsWithChildren } from 'react';
|
|
3
|
-
export type FronteggProviderNoSSRProps = PropsWithChildren<FronteggAppOptions>;
|
|
4
|
-
export declare const FronteggProviderNoSSR: FC<FronteggProviderNoSSRProps>;
|
|
1
|
+
import { FronteggAppOptions } from '@frontegg/types';
|
|
2
|
+
import { FC, PropsWithChildren } from 'react';
|
|
3
|
+
export type FronteggProviderNoSSRProps = PropsWithChildren<FronteggAppOptions>;
|
|
4
|
+
export declare const FronteggProviderNoSSR: FC<FronteggProviderNoSSRProps>;
|