@frontegg/nextjs 6.7.15-alpha.4077939957 → 6.7.15-alpha.4096079815

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 CHANGED
@@ -1,9 +1,11 @@
1
1
  # Change Log
2
2
 
3
- ## [6.7.15](https://github.com/frontegg/frontegg-nextjs/compare/v6.7.14...v6.7.15) (2023-2-2)
3
+ ## [6.7.15](https://github.com/frontegg/frontegg-nextjs/compare/v6.7.14...v6.7.15) (2023-2-5)
4
4
 
5
5
 
6
6
  ### NextJS Wrapper 6.7.15:
7
+ - FR-10557 - Fix jose import JWK key
8
+ - FR-10557 - Fix social login embedded mode
7
9
  - FR-10557 - Add playwright tests for FornteggMiddleware
8
10
  - Bump http-cache-semantics from 4.1.0 to 4.1.1
9
11
  - FR-10557 - Add playwright for testing + Fix cookie parsing
@@ -98,9 +98,9 @@ var FronteggConfig = /** @class */ (function () {
98
98
  return [4 /*yield*/, response.json()];
99
99
  case 2:
100
100
  data = _b.sent();
101
- publicKey = data.keys.find(function (key) { return key.kty === 'RSA'; });
101
+ publicKey = data.keys[0];
102
102
  _a = this;
103
- return [4 /*yield*/, importJWK(publicKey, 'PS256')];
103
+ return [4 /*yield*/, importJWK(publicKey, publicKey.alg)];
104
104
  case 3:
105
105
  _a._jwtPublicKey = _b.sent();
106
106
  _b.label = 4;
@@ -319,4 +319,4 @@ var CookieManager = /** @class */ (function () {
319
319
  var CookieManager$1 = new CookieManager();
320
320
 
321
321
  export { CookieManager$1 as C, FronteggConfig$1 as F, COOKIE_MAX_LENGTH as a, fronteggErrors as f };
322
- //# sourceMappingURL=CookieManager-b6f805c7.js.map
322
+ //# sourceMappingURL=CookieManager-e50dc144.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieManager-e50dc144.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,21 +1,79 @@
1
1
  'use client';
2
- import { __assign, __rest } from 'tslib';
2
+ import { __assign, __awaiter, __generator, __rest } from 'tslib';
3
3
  import { FronteggStoreProvider } from '@frontegg/react-hooks';
4
4
  import { fronteggAuthApiRoutes, ContextHolder } from '@frontegg/rest-api';
5
5
  import React, { createContext, useEffect, useRef, useCallback, useMemo } from 'react';
6
6
  import { AppHolder, initialize } from '@frontegg/js';
7
- import { tenantsState, createFronteggStore } from '@frontegg/redux-store';
7
+ import { authInitialState, tenantsState, createFronteggStore } from '@frontegg/redux-store';
8
+ import nextjsPkg from 'next/package.json';
8
9
  import { useRouter } from 'next/navigation';
9
10
 
10
11
  var AppContext = createContext(null);
11
12
 
13
+ var sdkVersion = { version: '6.7.14' };
14
+
12
15
  var createOrGetFronteggApp = function (_a) {
13
16
  var _b, _c, _d, _e, _f, _g, _h, _j;
14
17
  var options = _a.options, onRedirectTo = _a.onRedirectTo, appName = _a.appName, storeHolder = _a.storeHolder;
15
18
  var session = options.session, user = options.user, tenants = options.tenants;
16
19
  var _k = session !== null && session !== void 0 ? session : {}, accessToken = _k.accessToken, refreshToken = _k.refreshToken;
17
- var contextOptions = __assign(__assign({ requestCredentials: 'include' }, options.contextOptions), { baseUrl: function (path) {
20
+ var contextOptions = __assign(__assign({ requestCredentials: 'include' }, options.contextOptions), { additionalHeadersResolver: function () { return __awaiter(void 0, void 0, void 0, function () {
21
+ var additionalHeaders, originalAdditionalHeadersResolver, _a, _b, _c;
22
+ var _d;
23
+ return __generator(this, function (_e) {
24
+ switch (_e.label) {
25
+ case 0:
26
+ additionalHeaders = [];
27
+ originalAdditionalHeadersResolver = (_d = options.contextOptions) === null || _d === void 0 ? void 0 : _d.additionalHeadersResolver;
28
+ if (!(typeof originalAdditionalHeadersResolver === 'function')) return [3 /*break*/, 5];
29
+ _e.label = 1;
30
+ case 1:
31
+ _e.trys.push([1, 3, , 4]);
32
+ _b = (_a = additionalHeaders.push).apply;
33
+ _c = [additionalHeaders];
34
+ return [4 /*yield*/, originalAdditionalHeadersResolver()];
35
+ case 2:
36
+ _b.apply(_a, _c.concat([(_e.sent())]));
37
+ return [3 /*break*/, 4];
38
+ case 3:
39
+ _e.sent();
40
+ return [3 /*break*/, 4];
41
+ case 4: return [3 /*break*/, 6];
42
+ case 5:
43
+ if (Array.isArray(originalAdditionalHeadersResolver)) {
44
+ additionalHeaders.push.apply(additionalHeaders, originalAdditionalHeadersResolver);
45
+ }
46
+ _e.label = 6;
47
+ case 6:
48
+ additionalHeaders.push({
49
+ key: 'x-frontegg-framework',
50
+ value: "next@".concat(nextjsPkg.version),
51
+ });
52
+ additionalHeaders.push({
53
+ key: 'x-frontegg-sdk',
54
+ value: "@frontegg/nextjs@".concat(sdkVersion.version),
55
+ });
56
+ return [2 /*return*/, additionalHeaders];
57
+ }
58
+ });
59
+ }); }, baseUrl: function (path) {
60
+ var _a, _b;
61
+ if (path.endsWith('/oauth/logout') && typeof window !== 'undefined') {
62
+ var logoutPath = ((_b = (_a = options.authOptions) === null || _a === void 0 ? void 0 : _a.routes) === null || _b === void 0 ? void 0 : _b.logoutUrl) || authInitialState.routes.logoutUrl;
63
+ if (window.location.pathname != logoutPath) {
64
+ // clear fe_nextjs session before logout from hosted login
65
+ // @ts-ignore
66
+ window.location.href = logoutPath;
67
+ }
68
+ return options.envBaseUrl;
69
+ }
18
70
  if (fronteggAuthApiRoutes.indexOf(path) !== -1 || path.endsWith('/postlogin') || path.endsWith('/prelogin')) {
71
+ /**
72
+ * Exclude social login redirects from nextjs middleware
73
+ */
74
+ if (RegExp('^/identity/resources/auth/v[0-9]*/user/sso/default/.*/prelogin$').test(path)) {
75
+ return options.envBaseUrl;
76
+ }
19
77
  return "".concat(options.envAppUrl, "/api");
20
78
  }
21
79
  else {
@@ -26,7 +84,7 @@ var createOrGetFronteggApp = function (_a) {
26
84
  var userData = user
27
85
  ? __assign(__assign(__assign({}, user), { accessToken: accessToken !== null && accessToken !== void 0 ? accessToken : '', refreshToken: refreshToken !== null && refreshToken !== void 0 ? refreshToken : undefined }), (_c = options.authOptions) === null || _c === void 0 ? void 0 : _c.user) : null;
28
86
  var authOptions = __assign(__assign({}, options.authOptions), { onRedirectTo: onRedirectTo, isLoading: false, isAuthenticated: !!options.session, hostedLoginBox: (_d = options.hostedLoginBox) !== null && _d !== void 0 ? _d : false, disableSilentRefresh: (_f = (_e = options.authOptions) === null || _e === void 0 ? void 0 : _e.disableSilentRefresh) !== null && _f !== void 0 ? _f : true, user: userData, tenantsState: tenantsState$1 });
29
- var sharedStore = createFronteggStore({ context: contextOptions }, storeHolder.current, options.previewMode, authOptions, {
87
+ var sharedStore = createFronteggStore({ context: contextOptions }, storeHolder, options.previewMode, authOptions, {
30
88
  auth: authOptions !== null && authOptions !== void 0 ? authOptions : {},
31
89
  audits: (_g = options.auditsOptions) !== null && _g !== void 0 ? _g : {},
32
90
  }, false, options.urlStrategy);
@@ -61,7 +119,8 @@ var Connector = function (_a) {
61
119
  var isSSR = typeof window === 'undefined';
62
120
  var user = props.user, session = props.session, tenants = props.tenants;
63
121
  var baseName = (_b = props.basename) !== null && _b !== void 0 ? _b : '';
64
- var storeHolder = useRef({});
122
+ var ssrStoreHolder = useRef({});
123
+ var storeHolder = isSSR ? ssrStoreHolder.current : undefined;
65
124
  var onRedirectTo = useCallback(function (_path, opts) {
66
125
  var path = _path;
67
126
  if (path.startsWith(baseName)) {
@@ -103,4 +162,4 @@ var FronteggClientProviderNext13 = function (_a) {
103
162
  };
104
163
 
105
164
  export { AppContext as A, FronteggClientProviderNext13 as F };
106
- //# sourceMappingURL=FronteggClientProviderNext13-6ae2672b.js.map
165
+ //# sourceMappingURL=FronteggClientProviderNext13-6f27dcd0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FronteggClientProviderNext13-6f27dcd0.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/client/index.js CHANGED
@@ -1,16 +1,17 @@
1
1
  'use client';
2
2
  import { __assign, __spreadArray } from 'tslib';
3
- import { F as FronteggConfig } from '../CookieManager-b6f805c7.js';
3
+ import { F as FronteggConfig } from '../CookieManager-e50dc144.js';
4
4
  import 'iron-session';
5
5
  import 'jose';
6
6
  import '../api-25516652.js';
7
7
  import { useContext, useEffect } from 'react';
8
8
  import { useLoginWithRedirect, useLoginActions } from '@frontegg/react-hooks';
9
9
  import '@frontegg/rest-api';
10
- import { A as AppContext } from '../FronteggClientProviderNext13-6ae2672b.js';
11
- export { F as FronteggClientProviderNext13 } from '../FronteggClientProviderNext13-6ae2672b.js';
10
+ import { A as AppContext } from '../FronteggClientProviderNext13-6f27dcd0.js';
11
+ export { F as FronteggClientProviderNext13 } from '../FronteggClientProviderNext13-6f27dcd0.js';
12
12
  import '@frontegg/js';
13
13
  import { authInitialState } from '@frontegg/redux-store';
14
+ import 'next/package.json';
14
15
  import { useRouter, notFound } from 'next/navigation';
15
16
  import 'cookie';
16
17
 
@@ -19,4 +19,8 @@ export declare const fronteggPathRewrite: {
19
19
  patternStr: string;
20
20
  replaceStr: string;
21
21
  }[];
22
+ export declare const fronteggSSOPathRewrite: {
23
+ patternStr: string;
24
+ replaceStr: string;
25
+ }[];
22
26
  export declare const isFronteggLogoutUrl: (url: string) => boolean;
package/common/index.js CHANGED
@@ -1,6 +1,6 @@
1
- export { a as COOKIE_MAX_LENGTH, C as CookieManager, F as FronteggConfig, f as fronteggErrors } from '../CookieManager-b6f805c7.js';
2
- export { c as createSessionFromAccessToken, a as getAllUserData, g as getTokensFromCookie } from '../helpers-b3f731cb.js';
3
- export { c as createGetSession } from '../createGetSession-ec910389.js';
1
+ export { a as COOKIE_MAX_LENGTH, C as CookieManager, F as FronteggConfig, f as fronteggErrors } from '../CookieManager-e50dc144.js';
2
+ export { c as createSessionFromAccessToken, a as getAllUserData, g as getTokensFromCookie } from '../helpers-26190cc3.js';
3
+ export { c as createGetSession } from '../createGetSession-2e1e4506.js';
4
4
  import 'tslib';
5
5
  import 'cookie';
6
6
  import 'jose';
@@ -1,6 +1,6 @@
1
1
  import { __awaiter, __generator } from 'tslib';
2
2
  import { jwtVerify } from 'jose';
3
- import { F as FronteggConfig } from './CookieManager-b6f805c7.js';
3
+ import { F as FronteggConfig } from './CookieManager-e50dc144.js';
4
4
 
5
5
  var createGetSession = function (_a) {
6
6
  var getCookie = _a.getCookie, cookieResolver = _a.cookieResolver;
@@ -47,4 +47,4 @@ var createGetSession = function (_a) {
47
47
  };
48
48
 
49
49
  export { createGetSession as c };
50
- //# sourceMappingURL=createGetSession-ec910389.js.map
50
+ //# sourceMappingURL=createGetSession-2e1e4506.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createGetSession-2e1e4506.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/edge/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { __awaiter, __generator } from 'tslib';
2
2
  import { unsealData } from 'iron-session/edge';
3
- import { C as CookieManager, F as FronteggConfig } from '../CookieManager-b6f805c7.js';
4
- import { c as createGetSession } from '../createGetSession-ec910389.js';
3
+ import { C as CookieManager, F as FronteggConfig } from '../CookieManager-e50dc144.js';
4
+ import { c as createGetSession } from '../createGetSession-2e1e4506.js';
5
5
  import 'cookie';
6
6
  import 'jose';
7
7
 
@@ -4,7 +4,7 @@ import { jwtVerify } from 'jose';
4
4
  import { g as getUsers, a as getTenants } from './api-25516652.js';
5
5
  import 'react';
6
6
  import '@frontegg/react-hooks';
7
- import { F as FronteggConfig } from './CookieManager-b6f805c7.js';
7
+ import { F as FronteggConfig } from './CookieManager-e50dc144.js';
8
8
 
9
9
  var calculateExpiresInFromExp = function (exp) { return Math.floor((exp * 1000 - Date.now()) / 1000); };
10
10
 
@@ -88,4 +88,4 @@ var getAllUserData = function (_a) {
88
88
  };
89
89
 
90
90
  export { getAllUserData as a, createSessionFromAccessToken as c, getTokensFromCookie as g };
91
- //# sourceMappingURL=helpers-b3f731cb.js.map
91
+ //# sourceMappingURL=helpers-26190cc3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers-26190cc3.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/index.js CHANGED
@@ -9,6 +9,7 @@ var reactHooks = require('@frontegg/react-hooks');
9
9
  var restApi = require('@frontegg/rest-api');
10
10
  var js = require('@frontegg/js');
11
11
  var reduxStore = require('@frontegg/redux-store');
12
+ var nextjsPkg = require('next/package.json');
12
13
  var jose = require('jose');
13
14
  var ironSession = require('iron-session');
14
15
  var cookie = require('cookie');
@@ -19,18 +20,76 @@ var types = require('@frontegg/types');
19
20
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
21
 
21
22
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
23
+ var nextjsPkg__default = /*#__PURE__*/_interopDefaultLegacy(nextjsPkg);
22
24
  var cookie__default = /*#__PURE__*/_interopDefaultLegacy(cookie);
23
25
  var httpProxy__default = /*#__PURE__*/_interopDefaultLegacy(httpProxy);
24
26
 
25
27
  var AppContext = React.createContext(null);
26
28
 
29
+ var sdkVersion = { version: '6.7.14' };
30
+
27
31
  var createOrGetFronteggApp = function (_a) {
28
32
  var _b, _c, _d, _e, _f, _g, _h, _j;
29
33
  var options = _a.options, onRedirectTo = _a.onRedirectTo, appName = _a.appName, storeHolder = _a.storeHolder;
30
34
  var session = options.session, user = options.user, tenants = options.tenants;
31
35
  var _k = session !== null && session !== void 0 ? session : {}, accessToken = _k.accessToken, refreshToken = _k.refreshToken;
32
- var contextOptions = tslib.__assign(tslib.__assign({ requestCredentials: 'include' }, options.contextOptions), { baseUrl: function (path) {
36
+ var contextOptions = tslib.__assign(tslib.__assign({ requestCredentials: 'include' }, options.contextOptions), { additionalHeadersResolver: function () { return tslib.__awaiter(void 0, void 0, void 0, function () {
37
+ var additionalHeaders, originalAdditionalHeadersResolver, _a, _b, _c;
38
+ var _d;
39
+ return tslib.__generator(this, function (_e) {
40
+ switch (_e.label) {
41
+ case 0:
42
+ additionalHeaders = [];
43
+ originalAdditionalHeadersResolver = (_d = options.contextOptions) === null || _d === void 0 ? void 0 : _d.additionalHeadersResolver;
44
+ if (!(typeof originalAdditionalHeadersResolver === 'function')) return [3 /*break*/, 5];
45
+ _e.label = 1;
46
+ case 1:
47
+ _e.trys.push([1, 3, , 4]);
48
+ _b = (_a = additionalHeaders.push).apply;
49
+ _c = [additionalHeaders];
50
+ return [4 /*yield*/, originalAdditionalHeadersResolver()];
51
+ case 2:
52
+ _b.apply(_a, _c.concat([(_e.sent())]));
53
+ return [3 /*break*/, 4];
54
+ case 3:
55
+ _e.sent();
56
+ return [3 /*break*/, 4];
57
+ case 4: return [3 /*break*/, 6];
58
+ case 5:
59
+ if (Array.isArray(originalAdditionalHeadersResolver)) {
60
+ additionalHeaders.push.apply(additionalHeaders, originalAdditionalHeadersResolver);
61
+ }
62
+ _e.label = 6;
63
+ case 6:
64
+ additionalHeaders.push({
65
+ key: 'x-frontegg-framework',
66
+ value: "next@".concat(nextjsPkg__default["default"].version),
67
+ });
68
+ additionalHeaders.push({
69
+ key: 'x-frontegg-sdk',
70
+ value: "@frontegg/nextjs@".concat(sdkVersion.version),
71
+ });
72
+ return [2 /*return*/, additionalHeaders];
73
+ }
74
+ });
75
+ }); }, baseUrl: function (path) {
76
+ var _a, _b;
77
+ if (path.endsWith('/oauth/logout') && typeof window !== 'undefined') {
78
+ var logoutPath = ((_b = (_a = options.authOptions) === null || _a === void 0 ? void 0 : _a.routes) === null || _b === void 0 ? void 0 : _b.logoutUrl) || reduxStore.authInitialState.routes.logoutUrl;
79
+ if (window.location.pathname != logoutPath) {
80
+ // clear fe_nextjs session before logout from hosted login
81
+ // @ts-ignore
82
+ window.location.href = logoutPath;
83
+ }
84
+ return options.envBaseUrl;
85
+ }
33
86
  if (restApi.fronteggAuthApiRoutes.indexOf(path) !== -1 || path.endsWith('/postlogin') || path.endsWith('/prelogin')) {
87
+ /**
88
+ * Exclude social login redirects from nextjs middleware
89
+ */
90
+ if (RegExp('^/identity/resources/auth/v[0-9]*/user/sso/default/.*/prelogin$').test(path)) {
91
+ return options.envBaseUrl;
92
+ }
34
93
  return "".concat(options.envAppUrl, "/api");
35
94
  }
36
95
  else {
@@ -41,7 +100,7 @@ var createOrGetFronteggApp = function (_a) {
41
100
  var userData = user
42
101
  ? tslib.__assign(tslib.__assign(tslib.__assign({}, user), { accessToken: accessToken !== null && accessToken !== void 0 ? accessToken : '', refreshToken: refreshToken !== null && refreshToken !== void 0 ? refreshToken : undefined }), (_c = options.authOptions) === null || _c === void 0 ? void 0 : _c.user) : null;
43
102
  var authOptions = tslib.__assign(tslib.__assign({}, options.authOptions), { onRedirectTo: onRedirectTo, isLoading: false, isAuthenticated: !!options.session, hostedLoginBox: (_d = options.hostedLoginBox) !== null && _d !== void 0 ? _d : false, disableSilentRefresh: (_f = (_e = options.authOptions) === null || _e === void 0 ? void 0 : _e.disableSilentRefresh) !== null && _f !== void 0 ? _f : true, user: userData, tenantsState: tenantsState });
44
- var sharedStore = reduxStore.createFronteggStore({ context: contextOptions }, storeHolder.current, options.previewMode, authOptions, {
103
+ var sharedStore = reduxStore.createFronteggStore({ context: contextOptions }, storeHolder, options.previewMode, authOptions, {
45
104
  auth: authOptions !== null && authOptions !== void 0 ? authOptions : {},
46
105
  audits: (_g = options.auditsOptions) !== null && _g !== void 0 ? _g : {},
47
106
  }, false, options.urlStrategy);
@@ -76,7 +135,8 @@ var Connector$1 = function (_a) {
76
135
  var isSSR = typeof window === 'undefined';
77
136
  var user = props.user, session = props.session, tenants = props.tenants;
78
137
  var baseName = (_b = props.basename) !== null && _b !== void 0 ? _b : '';
79
- var storeHolder = React.useRef({});
138
+ var ssrStoreHolder = React.useRef({});
139
+ var storeHolder = isSSR ? ssrStoreHolder.current : undefined;
80
140
  var onRedirectTo = React.useCallback(function (_path, opts) {
81
141
  var path = _path;
82
142
  if (path.startsWith(baseName)) {
@@ -321,9 +381,9 @@ var FronteggConfig = /** @class */ (function () {
321
381
  return [4 /*yield*/, response.json()];
322
382
  case 2:
323
383
  data = _b.sent();
324
- publicKey = data.keys.find(function (key) { return key.kty === 'RSA'; });
384
+ publicKey = data.keys[0];
325
385
  _a = this;
326
- return [4 /*yield*/, jose.importJWK(publicKey, 'PS256')];
386
+ return [4 /*yield*/, jose.importJWK(publicKey, publicKey.alg)];
327
387
  case 3:
328
388
  _a._jwtPublicKey = _b.sent();
329
389
  _b.label = 4;
@@ -798,6 +858,8 @@ function refreshTokenHostedLogin(ctx, headers) {
798
858
  'user-agent': headers['user-agent'],
799
859
  connection: headers['connection'],
800
860
  'cache-control': headers['cache-control'],
861
+ 'x-frontegg-framework': "next@".concat(nextjsPkg__default["default"].version),
862
+ 'x-frontegg-sdk': "@frontegg/nextjs@".concat(sdkVersion.version),
801
863
  },
802
864
  })];
803
865
  case 2: return [2 /*return*/, _a.sent()];
@@ -834,6 +896,8 @@ function refreshTokenEmbedded(ctx, headers, cookies) {
834
896
  'user-agent': headers['user-agent'],
835
897
  connection: headers['connection'],
836
898
  'cache-control': headers['cache-control'],
899
+ 'x-frontegg-framework': "next@".concat(nextjsPkg__default["default"].version),
900
+ 'x-frontegg-sdk': "@frontegg/nextjs@".concat(sdkVersion.version),
837
901
  },
838
902
  })];
839
903
  case 1: return [2 /*return*/, _a.sent()];
@@ -1056,12 +1120,11 @@ function withSSRSession(handler) {
1056
1120
  */
1057
1121
  var FronteggProxy = httpProxy__default["default"].createProxyServer({
1058
1122
  target: process.env['FRONTEGG_BASE_URL'],
1059
- followRedirects: true,
1060
1123
  changeOrigin: true,
1061
1124
  selfHandleResponse: true,
1062
1125
  });
1063
1126
  var proxyReqCallback = function (proxyReq, req) {
1064
- var _a;
1127
+ var _a, _b, _c;
1065
1128
  try {
1066
1129
  var cookies_1 = cookie__default["default"].parse((_a = req.headers['cookie']) !== null && _a !== void 0 ? _a : '');
1067
1130
  Object.keys(cookies_1)
@@ -1069,6 +1132,9 @@ var proxyReqCallback = function (proxyReq, req) {
1069
1132
  .forEach(function (cookieName) {
1070
1133
  proxyReq.setHeader(cookieName, cookies_1[cookieName]);
1071
1134
  });
1135
+ proxyReq.setHeader('x-frontegg-middleware', 'true');
1136
+ proxyReq.setHeader('x-frontegg-framework', (_b = req.headers['x-frontegg-framework']) !== null && _b !== void 0 ? _b : "next@".concat(nextjsPkg__default["default"].version));
1137
+ proxyReq.setHeader('x-frontegg-sdk', (_c = req.headers['x-frontegg-sdk']) !== null && _c !== void 0 ? _c : "@frontegg/nextjs@".concat(sdkVersion.version));
1072
1138
  if (req.body) {
1073
1139
  var bodyData = JSON.stringify(req.body);
1074
1140
  // in case if content-type is application/x-www-form-urlencoded -> we need to change to application/json
@@ -1096,15 +1162,15 @@ var proxyResCallback = function (proxyRes, req, res) {
1096
1162
  buffer = Buffer.concat([buffer, chunk], totalLength);
1097
1163
  });
1098
1164
  proxyRes.on('end', function () { return tslib.__awaiter(void 0, void 0, void 0, function () {
1099
- var url, statusCode, isSuccess, bodyStr, isLogout, cookies, body, _a, session, decodedJwt, sessionCookie, e_1, e_2;
1165
+ var url, statusCode, isSuccess, bodyStr, isLogout, cookies, body, _a, session, decodedJwt, sessionCookie, e_2;
1100
1166
  var _b, _c;
1101
1167
  return tslib.__generator(this, function (_d) {
1102
1168
  switch (_d.label) {
1103
1169
  case 0:
1104
- _d.trys.push([0, 7, , 8]);
1170
+ _d.trys.push([0, 8, , 9]);
1105
1171
  url = req.url;
1106
1172
  statusCode = (_b = proxyRes.statusCode) !== null && _b !== void 0 ? _b : 500;
1107
- isSuccess = statusCode >= 200 && statusCode < 300;
1173
+ isSuccess = statusCode >= 200 && statusCode < 400;
1108
1174
  bodyStr = buffer.toString('utf-8');
1109
1175
  isLogout = isFronteggLogoutUrl(url);
1110
1176
  if (isLogout) {
@@ -1117,12 +1183,13 @@ var proxyResCallback = function (proxyRes, req, res) {
1117
1183
  res.status(statusCode).end(bodyStr);
1118
1184
  return [2 /*return*/];
1119
1185
  }
1120
- if (!isSuccess) return [3 /*break*/, 5];
1186
+ if (!isSuccess) return [3 /*break*/, 6];
1121
1187
  cookies = (_c = CookieManager$1.modifySetCookie(proxyRes.headers['set-cookie'], isSecured)) !== null && _c !== void 0 ? _c : [];
1122
1188
  _d.label = 1;
1123
1189
  case 1:
1124
- _d.trys.push([1, 3, , 4]);
1190
+ _d.trys.push([1, 4, , 5]);
1125
1191
  body = JSON.parse(bodyStr);
1192
+ if (!(body.accessToken && body.access_token)) return [3 /*break*/, 3];
1126
1193
  return [4 /*yield*/, createSessionFromAccessToken(body)];
1127
1194
  case 2:
1128
1195
  _a = _d.sent(), session = _a[0], decodedJwt = _a[1];
@@ -1134,14 +1201,12 @@ var proxyResCallback = function (proxyRes, req, res) {
1134
1201
  });
1135
1202
  cookies.push.apply(cookies, sessionCookie);
1136
1203
  }
1137
- return [3 /*break*/, 4];
1138
- case 3:
1139
- e_1 = _d.sent();
1140
- if (bodyStr !== '' && !process.env['FRONTEGG_TEST_URL']) {
1141
- console.error('[ERROR] FronteggMiddleware', 'proxy failed to parse response body', bodyStr, e_1);
1142
- }
1143
- return [3 /*break*/, 4];
1204
+ _d.label = 3;
1205
+ case 3: return [3 /*break*/, 5];
1144
1206
  case 4:
1207
+ _d.sent();
1208
+ return [3 /*break*/, 5];
1209
+ case 5:
1145
1210
  Object.keys(proxyRes.headers)
1146
1211
  .filter(function (header) { return header !== 'cookie'; })
1147
1212
  .forEach(function (header) {
@@ -1149,18 +1214,25 @@ var proxyResCallback = function (proxyRes, req, res) {
1149
1214
  });
1150
1215
  res.setHeader('set-cookie', cookies);
1151
1216
  res.status(statusCode).end(bodyStr);
1152
- return [3 /*break*/, 6];
1153
- case 5:
1154
- console.error('[ERROR] FronteggMiddleware', { url: url, statusCode: statusCode, bodyStr: bodyStr });
1217
+ return [3 /*break*/, 7];
1218
+ case 6:
1219
+ if (statusCode >= 400) {
1220
+ console.error('[ERROR] FronteggMiddleware', { url: url, statusCode: statusCode });
1221
+ }
1222
+ Object.keys(proxyRes.headers)
1223
+ .filter(function (header) { return header !== 'cookie'; })
1224
+ .forEach(function (header) {
1225
+ res.setHeader(header, "".concat(proxyRes.headers[header]));
1226
+ });
1155
1227
  res.status(statusCode).end(bodyStr);
1156
- _d.label = 6;
1157
- case 6: return [3 /*break*/, 8];
1158
- case 7:
1228
+ _d.label = 7;
1229
+ case 7: return [3 /*break*/, 9];
1230
+ case 8:
1159
1231
  e_2 = _d.sent();
1160
1232
  console.error('[ERROR] FronteggMiddleware', 'proxy failed to send request', e_2);
1161
1233
  res.status(500).end('Internal Server Error');
1162
- return [3 /*break*/, 8];
1163
- case 8: return [2 /*return*/];
1234
+ return [3 /*break*/, 9];
1235
+ case 9: return [2 /*return*/];
1164
1236
  }
1165
1237
  });
1166
1238
  }); });
@@ -1205,6 +1277,12 @@ var fronteggPathRewrite = [
1205
1277
  replaceStr: '/',
1206
1278
  },
1207
1279
  ];
1280
+ var fronteggSSOPathRewrite = [
1281
+ {
1282
+ patternStr: '/frontegg/saml/callback$',
1283
+ replaceStr: '/auth/saml/callback',
1284
+ },
1285
+ ];
1208
1286
  var isFronteggLogoutUrl = function (url) {
1209
1287
  return (restApi.fronteggAuthApiRoutes.filter(function (path) { return path.endsWith('/logout'); }).findIndex(function (route) { return url.endsWith(route); }) >= 0);
1210
1288
  };
@@ -1212,14 +1290,16 @@ var isFronteggLogoutUrl = function (url) {
1212
1290
  var config = {
1213
1291
  api: {
1214
1292
  externalResolver: true,
1215
- bodyParser: false,
1293
+ bodyParser: true,
1216
1294
  responseLimit: false,
1217
1295
  },
1218
1296
  };
1219
1297
  var middlewarePromise = function (req, res) {
1220
1298
  return new Promise(function (resolve) {
1221
1299
  var _a;
1222
- req.url = rewritePath((_a = req.url) !== null && _a !== void 0 ? _a : '/', fronteggPathRewrite);
1300
+ var fronteggUrlPath = rewritePath((_a = req.url) !== null && _a !== void 0 ? _a : '/', fronteggPathRewrite);
1301
+ var rewriteUrl = rewritePath(fronteggUrlPath !== null && fronteggUrlPath !== void 0 ? fronteggUrlPath : '/', fronteggSSOPathRewrite);
1302
+ req.url = rewriteUrl;
1223
1303
  res.on('close', function () { return resolve(); });
1224
1304
  var options = {
1225
1305
  target: process.env['FRONTEGG_BASE_URL'],
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@frontegg/nextjs",
3
3
  "libName": "FronteggNextJs",
4
- "version": "6.7.15-alpha.4077939957",
4
+ "version": "6.7.15-alpha.4096079815",
5
5
  "author": "Frontegg LTD",
6
6
  "license": "MIT",
7
7
  "types": "dist/index.d.ts",
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ version: string;
3
+ };
4
+ export default _default;
package/server/index.js CHANGED
@@ -1,15 +1,16 @@
1
1
  import { __awaiter, __generator, __rest, __assign } from 'tslib';
2
2
  import React from 'react';
3
3
  import { cookies, headers } from 'next/headers';
4
- import { C as CookieManager } from '../CookieManager-b6f805c7.js';
5
- import { g as getTokensFromCookie, a as getAllUserData } from '../helpers-b3f731cb.js';
6
- import { c as createGetSession } from '../createGetSession-ec910389.js';
4
+ import { C as CookieManager } from '../CookieManager-e50dc144.js';
5
+ import { g as getTokensFromCookie, a as getAllUserData } from '../helpers-26190cc3.js';
6
+ import { c as createGetSession } from '../createGetSession-2e1e4506.js';
7
7
  import 'jose';
8
8
  import '@frontegg/react-hooks';
9
9
  import '@frontegg/rest-api';
10
- import { F as FronteggClientProviderNext13 } from '../FronteggClientProviderNext13-6ae2672b.js';
10
+ import { F as FronteggClientProviderNext13 } from '../FronteggClientProviderNext13-6f27dcd0.js';
11
11
  import '@frontegg/js';
12
12
  import '@frontegg/redux-store';
13
+ import 'next/package.json';
13
14
  import 'next/navigation';
14
15
  import 'cookie';
15
16
  import 'iron-session';
@@ -1 +0,0 @@
1
- {"version":3,"file":"CookieManager-b6f805c7.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FronteggClientProviderNext13-6ae2672b.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createGetSession-ec910389.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers-b3f731cb.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}