@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 +3 -1
- package/{CookieManager-b6f805c7.js → CookieManager-e50dc144.js} +3 -3
- package/CookieManager-e50dc144.js.map +1 -0
- package/{FronteggClientProviderNext13-6ae2672b.js → FronteggClientProviderNext13-6f27dcd0.js} +65 -6
- package/FronteggClientProviderNext13-6f27dcd0.js.map +1 -0
- package/client/index.js +4 -3
- package/common/FronteggProxy.d.ts +4 -0
- package/common/index.js +3 -3
- package/{createGetSession-ec910389.js → createGetSession-2e1e4506.js} +2 -2
- package/createGetSession-2e1e4506.js.map +1 -0
- package/edge/index.js +2 -2
- package/{helpers-b3f731cb.js → helpers-26190cc3.js} +2 -2
- package/helpers-26190cc3.js.map +1 -0
- package/index.js +109 -29
- package/package.json +1 -1
- package/sdkVersion.d.ts +4 -0
- package/server/index.js +5 -4
- package/CookieManager-b6f805c7.js.map +0 -1
- package/FronteggClientProviderNext13-6ae2672b.js.map +0 -1
- package/createGetSession-ec910389.js.map +0 -1
- package/helpers-b3f731cb.js.map +0 -1
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-
|
|
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
|
|
101
|
+
publicKey = data.keys[0];
|
|
102
102
|
_a = this;
|
|
103
|
-
return [4 /*yield*/, importJWK(publicKey,
|
|
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-
|
|
322
|
+
//# sourceMappingURL=CookieManager-e50dc144.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieManager-e50dc144.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/{FronteggClientProviderNext13-6ae2672b.js → FronteggClientProviderNext13-6f27dcd0.js}
RENAMED
|
@@ -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), {
|
|
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
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
11
|
-
export { F as FronteggClientProviderNext13 } from '../FronteggClientProviderNext13-
|
|
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-
|
|
2
|
-
export { c as createSessionFromAccessToken, a as getAllUserData, g as getTokensFromCookie } from '../helpers-
|
|
3
|
-
export { c as createGetSession } from '../createGetSession-
|
|
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-
|
|
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-
|
|
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-
|
|
4
|
-
import { c as createGetSession } from '../createGetSession-
|
|
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-
|
|
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-
|
|
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), {
|
|
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
|
|
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
|
|
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
|
|
384
|
+
publicKey = data.keys[0];
|
|
325
385
|
_a = this;
|
|
326
|
-
return [4 /*yield*/, jose.importJWK(publicKey,
|
|
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,
|
|
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,
|
|
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 <
|
|
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*/,
|
|
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,
|
|
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
|
-
|
|
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*/,
|
|
1153
|
-
case
|
|
1154
|
-
|
|
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 =
|
|
1157
|
-
case
|
|
1158
|
-
case
|
|
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*/,
|
|
1163
|
-
case
|
|
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:
|
|
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
|
-
|
|
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
package/sdkVersion.d.ts
ADDED
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-
|
|
5
|
-
import { g as getTokensFromCookie, a as getAllUserData } from '../helpers-
|
|
6
|
-
import { c as createGetSession } from '../createGetSession-
|
|
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-
|
|
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":""}
|
package/helpers-b3f731cb.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers-b3f731cb.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|