@frontegg/nextjs 6.7.9 → 6.7.10-alpha.3866771854
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 +6 -0
- package/{CookieManager-c1d6c5b0.js → CookieManager-27107b90.js} +21 -15
- package/CookieManager-27107b90.js.map +1 -0
- package/{FronteggClientProviderNext13-3259fcd9.js → FronteggClientProviderNext13-d020161d.js} +20 -35
- package/FronteggClientProviderNext13-d020161d.js.map +1 -0
- package/client/index.js +5 -5
- package/common/CookieManager.d.ts +1 -1
- package/common/client/ExpireInListener.d.ts +1 -0
- package/common/client/createOrGetFronteggApp.d.ts +3 -3
- package/common/client/hooks/useRequestAuthorizeSSR.d.ts +3 -7
- package/common/consts.d.ts +1 -0
- package/common/helpers.d.ts +7 -1
- package/common/index.d.ts +0 -1
- package/common/index.js +6 -13
- package/common/types.d.ts +6 -6
- package/{createGetSession-b2281638.js → createGetSession-bee8af0a.js} +2 -2
- package/createGetSession-bee8af0a.js.map +1 -0
- package/edge/index.js +2 -2
- package/{helpers-942ef431.js → helpers-b15628e9.js} +38 -23
- package/helpers-b15628e9.js.map +1 -0
- package/index.js +114 -100
- package/package.json +1 -1
- package/server/index.js +11 -14
- package/withFronteggApp.d.ts +2 -4
- package/CookieManager-c1d6c5b0.js.map +0 -1
- package/FronteggClientProviderNext13-3259fcd9.js.map +0 -1
- package/common/getMeAndTenants.d.ts +0 -2
- package/createGetSession-b2281638.js.map +0 -1
- package/helpers-942ef431.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## [6.7.10](https://github.com/frontegg/frontegg-nextjs/compare/v6.7.9...v6.7.10) (2023-1-8)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### NextJS Wrapper 6.7.10:
|
|
7
|
+
- FR-10153 - Fix app session bug without keepSessionAlive
|
|
8
|
+
|
|
3
9
|
## [6.7.9](https://github.com/frontegg/frontegg-nextjs/compare/v6.7.8...v6.7.9) (2022-12-20)
|
|
4
10
|
|
|
5
11
|
- Added support for next 13 - app directory and server components
|
|
@@ -120,6 +120,14 @@ var FronteggConfig = /** @class */ (function () {
|
|
|
120
120
|
}());
|
|
121
121
|
var FronteggConfig$1 = new FronteggConfig();
|
|
122
122
|
|
|
123
|
+
var envError = function (varName) { return "@frontegg/nextjs: .env.local must contain ".concat(varName); };
|
|
124
|
+
var fronteggErrors = {
|
|
125
|
+
envAppUrl: envError('FRONTEGG_APP_URL'),
|
|
126
|
+
envBaseUrl: envError('FRONTEGG_BASE_URL'),
|
|
127
|
+
envClientId: envError('FRONTEGG_CLIENT_ID'),
|
|
128
|
+
};
|
|
129
|
+
var COOKIE_MAX_LENGTH = 4092;
|
|
130
|
+
|
|
123
131
|
function chunkString(str, chunkSize) {
|
|
124
132
|
var numChunks = Math.ceil(str.length / chunkSize);
|
|
125
133
|
var chunks = [];
|
|
@@ -131,12 +139,12 @@ function chunkString(str, chunkSize) {
|
|
|
131
139
|
return chunks;
|
|
132
140
|
}
|
|
133
141
|
|
|
134
|
-
var COOKIE_MAX_LENGTH = 4096;
|
|
135
142
|
var CookieManager = /** @class */ (function () {
|
|
136
143
|
function CookieManager() {
|
|
137
144
|
var _this = this;
|
|
138
145
|
this.getCookieName = function (cookieNumber, cookieName) {
|
|
139
|
-
|
|
146
|
+
if (cookieName === void 0) { cookieName = FronteggConfig$1.cookieName; }
|
|
147
|
+
return cookieNumber ? "".concat(cookieName, "-").concat(cookieNumber) : cookieName;
|
|
140
148
|
};
|
|
141
149
|
this.mapValueChunksToCookies = function (cookieName, valueChunks, options) {
|
|
142
150
|
return valueChunks.map(function (chunk, index) { return cookie.serialize(_this.getCookieName(index + 1, cookieName), chunk, options); });
|
|
@@ -160,13 +168,13 @@ var CookieManager = /** @class */ (function () {
|
|
|
160
168
|
}
|
|
161
169
|
try {
|
|
162
170
|
var cookieStr = _this.getCookieStringFromRequest(req);
|
|
163
|
-
var
|
|
164
|
-
if (!
|
|
171
|
+
var cookies = cookieStr && cookie.parse(cookieStr);
|
|
172
|
+
if (!cookies) {
|
|
165
173
|
return [];
|
|
166
174
|
}
|
|
167
175
|
var cookieNumber = 1;
|
|
168
176
|
var cookieToRemove = [];
|
|
169
|
-
while (
|
|
177
|
+
while (cookies[_this.getCookieName(cookieNumber)]) {
|
|
170
178
|
cookieToRemove.push(_this.getCookieName(cookieNumber));
|
|
171
179
|
cookieNumber++;
|
|
172
180
|
}
|
|
@@ -233,7 +241,7 @@ var CookieManager = /** @class */ (function () {
|
|
|
233
241
|
secure: isSecured,
|
|
234
242
|
};
|
|
235
243
|
var cookieValue = cookie.serialize(cookieName !== null && cookieName !== void 0 ? cookieName : this.getCookieName(1), value, options);
|
|
236
|
-
if (cookieValue.length
|
|
244
|
+
if (cookieValue.length <= COOKIE_MAX_LENGTH) {
|
|
237
245
|
return [cookieValue];
|
|
238
246
|
}
|
|
239
247
|
var valueChunks = this.splitValueToChunks(cookieName, value, options);
|
|
@@ -252,20 +260,18 @@ var CookieManager = /** @class */ (function () {
|
|
|
252
260
|
return this.parseCookie(cookieStr);
|
|
253
261
|
};
|
|
254
262
|
CookieManager.prototype.parseCookie = function (cookieStr) {
|
|
263
|
+
var cookies = cookie.parse(cookieStr);
|
|
255
264
|
var sealFromCookies = '';
|
|
256
265
|
var i = 1;
|
|
257
|
-
while (
|
|
258
|
-
sealFromCookies +=
|
|
266
|
+
while (cookies[this.getCookieName(i)]) {
|
|
267
|
+
sealFromCookies += cookies[this.getCookieName(i)];
|
|
259
268
|
i++;
|
|
260
269
|
}
|
|
261
270
|
return sealFromCookies !== '' ? sealFromCookies : undefined;
|
|
262
271
|
};
|
|
263
272
|
CookieManager.prototype.parseCookieFromArray = function (cookies) {
|
|
264
|
-
var
|
|
265
|
-
|
|
266
|
-
return userCookie.value;
|
|
267
|
-
}
|
|
268
|
-
var cookieChunks = cookies.filter(function (c) { return c.name.includes(FronteggConfig$1.cookieName); });
|
|
273
|
+
var _this = this;
|
|
274
|
+
var cookieChunks = cookies.filter(function (c) { return c.name.includes(_this.getCookieName()); });
|
|
269
275
|
if (!cookieChunks) {
|
|
270
276
|
return undefined;
|
|
271
277
|
}
|
|
@@ -299,5 +305,5 @@ var CookieManager = /** @class */ (function () {
|
|
|
299
305
|
}());
|
|
300
306
|
var CookieManager$1 = new CookieManager();
|
|
301
307
|
|
|
302
|
-
export { CookieManager$1 as C, FronteggConfig$1 as F };
|
|
303
|
-
//# sourceMappingURL=CookieManager-
|
|
308
|
+
export { CookieManager$1 as C, FronteggConfig$1 as F, COOKIE_MAX_LENGTH as a, fronteggErrors as f };
|
|
309
|
+
//# sourceMappingURL=CookieManager-27107b90.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieManager-27107b90.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/{FronteggClientProviderNext13-3259fcd9.js → FronteggClientProviderNext13-d020161d.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { __assign, __rest } from 'tslib';
|
|
3
|
-
import {
|
|
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';
|
|
@@ -10,9 +10,10 @@ import { useRouter } from 'next/navigation';
|
|
|
10
10
|
var AppContext = createContext(null);
|
|
11
11
|
|
|
12
12
|
var createOrGetFronteggApp = function (_a) {
|
|
13
|
-
var _b, _c, _d, _e, _f, _g, _h, _j
|
|
14
|
-
var options = _a.options, onRedirectTo = _a.onRedirectTo, appName = _a.appName,
|
|
15
|
-
var
|
|
13
|
+
var _b, _c, _d, _e, _f, _g, _h, _j;
|
|
14
|
+
var options = _a.options, onRedirectTo = _a.onRedirectTo, appName = _a.appName, storeHolder = _a.storeHolder;
|
|
15
|
+
var session = options.session, user = options.user, tenants = options.tenants;
|
|
16
|
+
var _k = session !== null && session !== void 0 ? session : {}, accessToken = _k.accessToken, refreshToken = _k.refreshToken;
|
|
16
17
|
var contextOptions = __assign(__assign({ requestCredentials: 'include' }, options.contextOptions), { baseUrl: function (path) {
|
|
17
18
|
if (fronteggAuthApiRoutes.indexOf(path) !== -1 ||
|
|
18
19
|
path.endsWith('/postlogin') ||
|
|
@@ -25,13 +26,13 @@ var createOrGetFronteggApp = function (_a) {
|
|
|
25
26
|
}
|
|
26
27
|
}, clientId: options.envClientId });
|
|
27
28
|
var tenantsState = tenants
|
|
28
|
-
? __assign({ tenantTree: null, subTenants: [], tenants: tenants, loading: false }, (
|
|
29
|
+
? __assign({ tenantTree: null, subTenants: [], tenants: tenants, loading: false }, (_b = options.authOptions) === null || _b === void 0 ? void 0 : _b.tenantsState) : undefined;
|
|
29
30
|
var userData = user
|
|
30
|
-
? __assign(__assign(__assign({}, user), { accessToken: accessToken !== null && accessToken !== void 0 ? accessToken : '', refreshToken: refreshToken !== null && refreshToken !== void 0 ? refreshToken : undefined }), (
|
|
31
|
-
var authOptions = __assign(__assign({}, options.authOptions), { onRedirectTo: onRedirectTo, isLoading: false, isAuthenticated: !!options.session, hostedLoginBox: (
|
|
31
|
+
? __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;
|
|
32
|
+
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 : false, user: userData, tenantsState: tenantsState });
|
|
32
33
|
var sharedStore = createFronteggStore({ context: contextOptions }, storeHolder.current, options.previewMode, authOptions, {
|
|
33
34
|
auth: authOptions !== null && authOptions !== void 0 ? authOptions : {},
|
|
34
|
-
audits: (
|
|
35
|
+
audits: (_g = options.auditsOptions) !== null && _g !== void 0 ? _g : {},
|
|
35
36
|
}, false, options.urlStrategy);
|
|
36
37
|
var createdApp;
|
|
37
38
|
try {
|
|
@@ -39,31 +40,19 @@ var createOrGetFronteggApp = function (_a) {
|
|
|
39
40
|
createdApp.store = sharedStore;
|
|
40
41
|
}
|
|
41
42
|
catch (e) {
|
|
42
|
-
createdApp = initialize(__assign(__assign({}, options), { store: sharedStore, hostedLoginBox: (
|
|
43
|
+
createdApp = initialize(__assign(__assign({}, options), { store: sharedStore, hostedLoginBox: (_h = options.hostedLoginBox) !== null && _h !== void 0 ? _h : false, customLoginBox: (_j = options.customLoginBox) !== null && _j !== void 0 ? _j : false, basename: options.basename, authOptions: authOptions, contextOptions: contextOptions, onRedirectTo: onRedirectTo }), appName !== null && appName !== void 0 ? appName : 'default');
|
|
43
44
|
}
|
|
44
45
|
return createdApp;
|
|
45
46
|
};
|
|
46
47
|
|
|
47
|
-
var ExpireInListener = function () {
|
|
48
|
-
var user = useAuthUserOrNull();
|
|
49
|
-
var actions = useAuthActions();
|
|
50
|
-
useEffect(function () {
|
|
51
|
-
if (user && (user === null || user === void 0 ? void 0 : user.expiresIn) == null) {
|
|
52
|
-
actions.setUser(__assign(__assign({}, user), { expiresIn: Math.floor((user['exp'] * 1000 - Date.now()) / 1000) }));
|
|
53
|
-
}
|
|
54
|
-
}, [actions, user]);
|
|
55
|
-
// eslint-disable-next-line react/jsx-no-useless-fragment
|
|
56
|
-
return React.createElement(React.Fragment, null);
|
|
57
|
-
};
|
|
58
|
-
|
|
59
48
|
var useRequestAuthorizeSSR = function (_a) {
|
|
60
|
-
var app = _a.app,
|
|
49
|
+
var app = _a.app, user = _a.user, tenants = _a.tenants, session = _a.session;
|
|
61
50
|
useEffect(function () {
|
|
62
51
|
app === null || app === void 0 ? void 0 : app.store.dispatch({
|
|
63
52
|
type: 'auth/requestAuthorizeSSR',
|
|
64
53
|
payload: {
|
|
65
|
-
accessToken: accessToken,
|
|
66
|
-
user: user ? __assign(__assign({}, user), { refreshToken: refreshToken }) : null,
|
|
54
|
+
accessToken: session === null || session === void 0 ? void 0 : session.accessToken,
|
|
55
|
+
user: user ? __assign(__assign({}, user), { refreshToken: session === null || session === void 0 ? void 0 : session.refreshToken }) : null,
|
|
67
56
|
tenants: tenants,
|
|
68
57
|
},
|
|
69
58
|
});
|
|
@@ -71,11 +60,11 @@ var useRequestAuthorizeSSR = function (_a) {
|
|
|
71
60
|
};
|
|
72
61
|
|
|
73
62
|
var Connector = function (_a) {
|
|
74
|
-
var _b
|
|
75
|
-
var router = _a.router,
|
|
63
|
+
var _b;
|
|
64
|
+
var router = _a.router, _c = _a.appName, appName = _c === void 0 ? 'default' : _c, props = __rest(_a, ["router", "appName"]);
|
|
76
65
|
var isSSR = typeof window === 'undefined';
|
|
77
|
-
var
|
|
78
|
-
var baseName = (
|
|
66
|
+
var user = props.user, session = props.session, tenants = props.tenants;
|
|
67
|
+
var baseName = (_b = props.basename) !== null && _b !== void 0 ? _b : '';
|
|
79
68
|
var storeHolder = useRef({});
|
|
80
69
|
var onRedirectTo = useCallback(function (_path, opts) {
|
|
81
70
|
var path = _path;
|
|
@@ -96,22 +85,18 @@ var Connector = function (_a) {
|
|
|
96
85
|
var app = useMemo(function () {
|
|
97
86
|
return createOrGetFronteggApp({
|
|
98
87
|
options: __assign(__assign({}, props), { basename: baseName }),
|
|
99
|
-
user: user,
|
|
100
|
-
tenants: tenants,
|
|
101
88
|
onRedirectTo: onRedirectTo,
|
|
102
89
|
appName: appName,
|
|
103
90
|
storeHolder: storeHolder,
|
|
104
91
|
});
|
|
105
92
|
}, [props]);
|
|
106
93
|
ContextHolder.setOnRedirectTo(onRedirectTo);
|
|
107
|
-
useRequestAuthorizeSSR({ app: app,
|
|
94
|
+
useRequestAuthorizeSSR({ app: app, user: user, tenants: tenants, session: session });
|
|
108
95
|
return (React.createElement(AppContext.Provider, { value: app },
|
|
109
96
|
React.createElement(FronteggStoreProvider, __assign({}, __assign(__assign({}, props), { app: app })), props.children)));
|
|
110
97
|
};
|
|
111
98
|
var FronteggBaseProvider = function (props) {
|
|
112
|
-
return (React.createElement(Connector, __assign({}, props, { framework: 'nextjs' }),
|
|
113
|
-
React.createElement(ExpireInListener, null),
|
|
114
|
-
props.children));
|
|
99
|
+
return (React.createElement(Connector, __assign({}, props, { framework: 'nextjs' }), props.children));
|
|
115
100
|
};
|
|
116
101
|
|
|
117
102
|
var FronteggClientProviderNext13 = function (_a) {
|
|
@@ -122,4 +107,4 @@ var FronteggClientProviderNext13 = function (_a) {
|
|
|
122
107
|
};
|
|
123
108
|
|
|
124
109
|
export { AppContext as A, FronteggClientProviderNext13 as F };
|
|
125
|
-
//# sourceMappingURL=FronteggClientProviderNext13-
|
|
110
|
+
//# sourceMappingURL=FronteggClientProviderNext13-d020161d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FronteggClientProviderNext13-d020161d.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/client/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { __assign, __spreadArray } from 'tslib';
|
|
3
|
-
import { F as FronteggConfig } from '../CookieManager-
|
|
4
|
-
import '../api-25516652.js';
|
|
3
|
+
import { F as FronteggConfig } from '../CookieManager-27107b90.js';
|
|
5
4
|
import 'iron-session';
|
|
6
5
|
import 'jose';
|
|
6
|
+
import '../api-25516652.js';
|
|
7
|
+
import { useContext, useEffect } from 'react';
|
|
7
8
|
import { useLoginWithRedirect, useLoginActions } from '@frontegg/react-hooks';
|
|
8
9
|
import '@frontegg/rest-api';
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
export { F as FronteggClientProviderNext13 } from '../FronteggClientProviderNext13-3259fcd9.js';
|
|
10
|
+
import { A as AppContext } from '../FronteggClientProviderNext13-d020161d.js';
|
|
11
|
+
export { F as FronteggClientProviderNext13 } from '../FronteggClientProviderNext13-d020161d.js';
|
|
12
12
|
import '@frontegg/js';
|
|
13
13
|
import { authInitialState } from '@frontegg/redux-store';
|
|
14
14
|
import { useRouter, notFound } from 'next/navigation';
|
|
@@ -21,7 +21,7 @@ type RemoveCookiesArguments = {
|
|
|
21
21
|
};
|
|
22
22
|
declare class CookieManager {
|
|
23
23
|
constructor();
|
|
24
|
-
getCookieName: (cookieNumber
|
|
24
|
+
getCookieName: (cookieNumber?: number, cookieName?: string) => string;
|
|
25
25
|
rewriteCookieProperty(header: string | string[], config: any, property: string): string | string[];
|
|
26
26
|
createCookie({ cookieName, value, expires, isSecured, cookieDomain, httpOnly, path, }: CreateCookieArguments): string[];
|
|
27
27
|
splitValueToChunks(cookieName: string | undefined, value: string, options: CookieSerializeOptions): string[];
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { FronteggApp } from '@frontegg/js';
|
|
2
2
|
import { AuthState } from '@frontegg/redux-store';
|
|
3
|
-
import { FronteggProviderOptions
|
|
3
|
+
import { FronteggProviderOptions } from '../types';
|
|
4
4
|
type CreateOrGetFronteggAppParams = {
|
|
5
5
|
options: FronteggProviderOptions;
|
|
6
6
|
onRedirectTo: AuthState['onRedirectTo'];
|
|
7
7
|
appName?: string;
|
|
8
8
|
storeHolder: any;
|
|
9
|
-
}
|
|
10
|
-
export declare const createOrGetFronteggApp: ({ options, onRedirectTo, appName,
|
|
9
|
+
};
|
|
10
|
+
export declare const createOrGetFronteggApp: ({ options, onRedirectTo, appName, storeHolder, }: CreateOrGetFronteggAppParams) => FronteggApp;
|
|
11
11
|
export {};
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { FronteggApp } from '@frontegg/js';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { AllUserData } from '../../types';
|
|
3
|
+
export declare const useRequestAuthorizeSSR: ({ app, user, tenants, session }: {
|
|
4
4
|
app: FronteggApp;
|
|
5
|
-
|
|
6
|
-
refreshToken?: string;
|
|
7
|
-
} & MeAndTenantsResponse;
|
|
8
|
-
export declare const useRequestAuthorizeSSR: ({ app, accessToken, user, tenants, refreshToken }: useRequestAuthorizeSSR) => void;
|
|
9
|
-
export {};
|
|
5
|
+
} & AllUserData) => void;
|
package/common/consts.d.ts
CHANGED
package/common/helpers.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
import { FronteggUserTokens } from './types';
|
|
1
|
+
import { FronteggNextJSSession, FronteggUserTokens, AllUserData } from './types';
|
|
2
2
|
export declare function createSessionFromAccessToken(output: string): Promise<[string, any, string] | []>;
|
|
3
3
|
export declare function getTokensFromCookie(cookie?: string): Promise<FronteggUserTokens | undefined>;
|
|
4
|
+
type UserDataArguments = {
|
|
5
|
+
getSession: () => Promise<FronteggNextJSSession | undefined | null>;
|
|
6
|
+
reqHeaders: Record<string, string | string[] | undefined>;
|
|
7
|
+
};
|
|
8
|
+
export declare const getAllUserData: ({ getSession, reqHeaders }: UserDataArguments) => Promise<Partial<AllUserData>>;
|
|
9
|
+
export {};
|
package/common/index.d.ts
CHANGED
package/common/index.js
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
export { C as CookieManager, F as FronteggConfig } from '../CookieManager-
|
|
2
|
-
export { c as createSessionFromAccessToken, a as
|
|
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-27107b90.js';
|
|
2
|
+
export { c as createSessionFromAccessToken, a as getAllUserData, g as getTokensFromCookie } from '../helpers-b15628e9.js';
|
|
3
|
+
export { c as createGetSession } from '../createGetSession-bee8af0a.js';
|
|
4
4
|
import 'tslib';
|
|
5
5
|
import 'cookie';
|
|
6
6
|
import 'jose';
|
|
7
|
+
import 'iron-session';
|
|
7
8
|
import '../api-25516652.js';
|
|
8
9
|
import '@frontegg/rest-api';
|
|
9
|
-
import '
|
|
10
|
-
|
|
11
|
-
var envError = function (varName) { return "@frontegg/nextjs: .env.local must contain ".concat(varName); };
|
|
12
|
-
var fronteggErrors = {
|
|
13
|
-
envAppUrl: envError('FRONTEGG_APP_URL'),
|
|
14
|
-
envBaseUrl: envError('FRONTEGG_BASE_URL'),
|
|
15
|
-
envClientId: envError('FRONTEGG_CLIENT_ID'),
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export { fronteggErrors };
|
|
10
|
+
import 'react';
|
|
11
|
+
import '@frontegg/react-hooks';
|
|
19
12
|
//# sourceMappingURL=index.js.map
|
package/common/types.d.ts
CHANGED
|
@@ -17,9 +17,10 @@ export interface FronteggUserTokens {
|
|
|
17
17
|
accessToken: string;
|
|
18
18
|
refreshToken?: string;
|
|
19
19
|
}
|
|
20
|
-
export interface
|
|
21
|
-
user?: ILoginResponse;
|
|
22
|
-
tenants?: ITenantsResponse[];
|
|
20
|
+
export interface AllUserData {
|
|
21
|
+
user?: ILoginResponse | null;
|
|
22
|
+
tenants?: ITenantsResponse[] | null;
|
|
23
|
+
session?: FronteggNextJSSession | null;
|
|
23
24
|
}
|
|
24
25
|
export interface FronteggUserSession {
|
|
25
26
|
sub: string;
|
|
@@ -47,14 +48,13 @@ export interface AppEnvConfig {
|
|
|
47
48
|
envBaseUrl?: string;
|
|
48
49
|
envClientId?: string;
|
|
49
50
|
}
|
|
50
|
-
export interface FronteggProviderOptions extends Omit<FronteggAppOptions, 'contextOptions'
|
|
51
|
-
session?: FronteggNextJSSession;
|
|
51
|
+
export interface FronteggProviderOptions extends Omit<FronteggAppOptions, 'contextOptions'>, AllUserData {
|
|
52
52
|
envAppUrl: string;
|
|
53
53
|
envBaseUrl: string;
|
|
54
54
|
envClientId: string;
|
|
55
55
|
contextOptions?: Omit<FronteggAppOptions['contextOptions'], 'baseUrl'>;
|
|
56
56
|
}
|
|
57
|
-
export interface FronteggProviderProps extends FronteggProviderOptions
|
|
57
|
+
export interface FronteggProviderProps extends FronteggProviderOptions {
|
|
58
58
|
children?: ReactNode;
|
|
59
59
|
router: AppRouterInstance | NextRouter;
|
|
60
60
|
appName?: string;
|
|
@@ -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-27107b90.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-bee8af0a.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createGetSession-bee8af0a.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-27107b90.js';
|
|
4
|
+
import { c as createGetSession } from '../createGetSession-bee8af0a.js';
|
|
5
5
|
import 'cookie';
|
|
6
6
|
import 'jose';
|
|
7
7
|
|
|
@@ -1,27 +1,12 @@
|
|
|
1
1
|
import { __awaiter, __generator, __assign } from 'tslib';
|
|
2
|
-
import { g as getUsers, a as getTenants } from './api-25516652.js';
|
|
3
2
|
import { sealData, unsealData } from 'iron-session';
|
|
4
3
|
import { jwtVerify } from 'jose';
|
|
5
|
-
import {
|
|
4
|
+
import { g as getUsers, a as getTenants } from './api-25516652.js';
|
|
5
|
+
import 'react';
|
|
6
|
+
import '@frontegg/react-hooks';
|
|
7
|
+
import { F as FronteggConfig } from './CookieManager-27107b90.js';
|
|
6
8
|
|
|
7
|
-
function
|
|
8
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
9
|
-
var headers, _a, user, tenants;
|
|
10
|
-
return __generator(this, function (_b) {
|
|
11
|
-
switch (_b.label) {
|
|
12
|
-
case 0:
|
|
13
|
-
if (!reqHeaders || !accessToken) {
|
|
14
|
-
return [2 /*return*/, {}];
|
|
15
|
-
}
|
|
16
|
-
headers = __assign(__assign({}, reqHeaders), { Authorization: "Bearer ".concat(accessToken) });
|
|
17
|
-
return [4 /*yield*/, Promise.all([getUsers(headers), getTenants(headers)])];
|
|
18
|
-
case 1:
|
|
19
|
-
_a = _b.sent(), user = _a[0], tenants = _a[1];
|
|
20
|
-
return [2 /*return*/, { user: user, tenants: tenants }];
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
}
|
|
9
|
+
var calculateExpiresInFromExp = function (exp) { return Math.floor((exp * 1000 - Date.now()) / 1000); };
|
|
25
10
|
|
|
26
11
|
function createSessionFromAccessToken(output) {
|
|
27
12
|
var _a, _b;
|
|
@@ -75,7 +60,37 @@ function getTokensFromCookie(cookie) {
|
|
|
75
60
|
}
|
|
76
61
|
});
|
|
77
62
|
});
|
|
78
|
-
}
|
|
63
|
+
}
|
|
64
|
+
var getAllUserData = function (_a) {
|
|
65
|
+
var getSession = _a.getSession, reqHeaders = _a.reqHeaders;
|
|
66
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
67
|
+
var session, headers, _b, baseUser, tenants, user;
|
|
68
|
+
return __generator(this, function (_d) {
|
|
69
|
+
switch (_d.label) {
|
|
70
|
+
case 0:
|
|
71
|
+
_d.trys.push([0, 3, , 4]);
|
|
72
|
+
return [4 /*yield*/, getSession()];
|
|
73
|
+
case 1:
|
|
74
|
+
session = _d.sent();
|
|
75
|
+
if (!session)
|
|
76
|
+
return [2 /*return*/, {}];
|
|
77
|
+
headers = __assign(__assign({}, reqHeaders), { Authorization: "Bearer ".concat(session.accessToken) });
|
|
78
|
+
return [4 /*yield*/, Promise.all([getUsers(headers), getTenants(headers)])];
|
|
79
|
+
case 2:
|
|
80
|
+
_b = _d.sent(), baseUser = _b[0], tenants = _b[1];
|
|
81
|
+
if (!baseUser || !tenants)
|
|
82
|
+
return [2 /*return*/, {}];
|
|
83
|
+
user = baseUser && session
|
|
84
|
+
? __assign(__assign(__assign({}, session.user), baseUser), { expiresIn: calculateExpiresInFromExp(session.user.exp) }) : undefined;
|
|
85
|
+
return [2 /*return*/, { user: user, session: session, tenants: tenants }];
|
|
86
|
+
case 3:
|
|
87
|
+
_d.sent();
|
|
88
|
+
return [2 /*return*/, {}];
|
|
89
|
+
case 4: return [2 /*return*/];
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
};
|
|
79
94
|
|
|
80
|
-
export {
|
|
81
|
-
//# sourceMappingURL=helpers-
|
|
95
|
+
export { getAllUserData as a, createSessionFromAccessToken as c, getTokensFromCookie as g };
|
|
96
|
+
//# sourceMappingURL=helpers-b15628e9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers-b15628e9.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/index.js
CHANGED
|
@@ -25,9 +25,10 @@ var httpProxy__default = /*#__PURE__*/_interopDefaultLegacy(httpProxy);
|
|
|
25
25
|
var AppContext = React.createContext(null);
|
|
26
26
|
|
|
27
27
|
var createOrGetFronteggApp = function (_a) {
|
|
28
|
-
var _b, _c, _d, _e, _f, _g, _h, _j
|
|
29
|
-
var options = _a.options, onRedirectTo = _a.onRedirectTo, appName = _a.appName,
|
|
30
|
-
var
|
|
28
|
+
var _b, _c, _d, _e, _f, _g, _h, _j;
|
|
29
|
+
var options = _a.options, onRedirectTo = _a.onRedirectTo, appName = _a.appName, storeHolder = _a.storeHolder;
|
|
30
|
+
var session = options.session, user = options.user, tenants = options.tenants;
|
|
31
|
+
var _k = session !== null && session !== void 0 ? session : {}, accessToken = _k.accessToken, refreshToken = _k.refreshToken;
|
|
31
32
|
var contextOptions = tslib.__assign(tslib.__assign({ requestCredentials: 'include' }, options.contextOptions), { baseUrl: function (path) {
|
|
32
33
|
if (restApi.fronteggAuthApiRoutes.indexOf(path) !== -1 ||
|
|
33
34
|
path.endsWith('/postlogin') ||
|
|
@@ -40,13 +41,13 @@ var createOrGetFronteggApp = function (_a) {
|
|
|
40
41
|
}
|
|
41
42
|
}, clientId: options.envClientId });
|
|
42
43
|
var tenantsState = tenants
|
|
43
|
-
? tslib.__assign({ tenantTree: null, subTenants: [], tenants: tenants, loading: false }, (
|
|
44
|
+
? tslib.__assign({ tenantTree: null, subTenants: [], tenants: tenants, loading: false }, (_b = options.authOptions) === null || _b === void 0 ? void 0 : _b.tenantsState) : undefined;
|
|
44
45
|
var userData = user
|
|
45
|
-
? tslib.__assign(tslib.__assign(tslib.__assign({}, user), { accessToken: accessToken !== null && accessToken !== void 0 ? accessToken : '', refreshToken: refreshToken !== null && refreshToken !== void 0 ? refreshToken : undefined }), (
|
|
46
|
-
var authOptions = tslib.__assign(tslib.__assign({}, options.authOptions), { onRedirectTo: onRedirectTo, isLoading: false, isAuthenticated: !!options.session, hostedLoginBox: (
|
|
46
|
+
? 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;
|
|
47
|
+
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 : false, user: userData, tenantsState: tenantsState });
|
|
47
48
|
var sharedStore = reduxStore.createFronteggStore({ context: contextOptions }, storeHolder.current, options.previewMode, authOptions, {
|
|
48
49
|
auth: authOptions !== null && authOptions !== void 0 ? authOptions : {},
|
|
49
|
-
audits: (
|
|
50
|
+
audits: (_g = options.auditsOptions) !== null && _g !== void 0 ? _g : {},
|
|
50
51
|
}, false, options.urlStrategy);
|
|
51
52
|
var createdApp;
|
|
52
53
|
try {
|
|
@@ -54,31 +55,19 @@ var createOrGetFronteggApp = function (_a) {
|
|
|
54
55
|
createdApp.store = sharedStore;
|
|
55
56
|
}
|
|
56
57
|
catch (e) {
|
|
57
|
-
createdApp = js.initialize(tslib.__assign(tslib.__assign({}, options), { store: sharedStore, hostedLoginBox: (
|
|
58
|
+
createdApp = js.initialize(tslib.__assign(tslib.__assign({}, options), { store: sharedStore, hostedLoginBox: (_h = options.hostedLoginBox) !== null && _h !== void 0 ? _h : false, customLoginBox: (_j = options.customLoginBox) !== null && _j !== void 0 ? _j : false, basename: options.basename, authOptions: authOptions, contextOptions: contextOptions, onRedirectTo: onRedirectTo }), appName !== null && appName !== void 0 ? appName : 'default');
|
|
58
59
|
}
|
|
59
60
|
return createdApp;
|
|
60
61
|
};
|
|
61
62
|
|
|
62
|
-
var ExpireInListener = function () {
|
|
63
|
-
var user = reactHooks.useAuthUserOrNull();
|
|
64
|
-
var actions = reactHooks.useAuthActions();
|
|
65
|
-
React.useEffect(function () {
|
|
66
|
-
if (user && (user === null || user === void 0 ? void 0 : user.expiresIn) == null) {
|
|
67
|
-
actions.setUser(tslib.__assign(tslib.__assign({}, user), { expiresIn: Math.floor((user['exp'] * 1000 - Date.now()) / 1000) }));
|
|
68
|
-
}
|
|
69
|
-
}, [actions, user]);
|
|
70
|
-
// eslint-disable-next-line react/jsx-no-useless-fragment
|
|
71
|
-
return React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
72
|
-
};
|
|
73
|
-
|
|
74
63
|
var useRequestAuthorizeSSR = function (_a) {
|
|
75
|
-
var app = _a.app,
|
|
64
|
+
var app = _a.app, user = _a.user, tenants = _a.tenants, session = _a.session;
|
|
76
65
|
React.useEffect(function () {
|
|
77
66
|
app === null || app === void 0 ? void 0 : app.store.dispatch({
|
|
78
67
|
type: 'auth/requestAuthorizeSSR',
|
|
79
68
|
payload: {
|
|
80
|
-
accessToken: accessToken,
|
|
81
|
-
user: user ? tslib.__assign(tslib.__assign({}, user), { refreshToken: refreshToken }) : null,
|
|
69
|
+
accessToken: session === null || session === void 0 ? void 0 : session.accessToken,
|
|
70
|
+
user: user ? tslib.__assign(tslib.__assign({}, user), { refreshToken: session === null || session === void 0 ? void 0 : session.refreshToken }) : null,
|
|
82
71
|
tenants: tenants,
|
|
83
72
|
},
|
|
84
73
|
});
|
|
@@ -86,11 +75,11 @@ var useRequestAuthorizeSSR = function (_a) {
|
|
|
86
75
|
};
|
|
87
76
|
|
|
88
77
|
var Connector$1 = function (_a) {
|
|
89
|
-
var _b
|
|
90
|
-
var router = _a.router,
|
|
78
|
+
var _b;
|
|
79
|
+
var router = _a.router, _c = _a.appName, appName = _c === void 0 ? 'default' : _c, props = tslib.__rest(_a, ["router", "appName"]);
|
|
91
80
|
var isSSR = typeof window === 'undefined';
|
|
92
|
-
var
|
|
93
|
-
var baseName = (
|
|
81
|
+
var user = props.user, session = props.session, tenants = props.tenants;
|
|
82
|
+
var baseName = (_b = props.basename) !== null && _b !== void 0 ? _b : '';
|
|
94
83
|
var storeHolder = React.useRef({});
|
|
95
84
|
var onRedirectTo = React.useCallback(function (_path, opts) {
|
|
96
85
|
var path = _path;
|
|
@@ -111,22 +100,31 @@ var Connector$1 = function (_a) {
|
|
|
111
100
|
var app = React.useMemo(function () {
|
|
112
101
|
return createOrGetFronteggApp({
|
|
113
102
|
options: tslib.__assign(tslib.__assign({}, props), { basename: baseName }),
|
|
114
|
-
user: user,
|
|
115
|
-
tenants: tenants,
|
|
116
103
|
onRedirectTo: onRedirectTo,
|
|
117
104
|
appName: appName,
|
|
118
105
|
storeHolder: storeHolder,
|
|
119
106
|
});
|
|
120
107
|
}, [props]);
|
|
121
108
|
restApi.ContextHolder.setOnRedirectTo(onRedirectTo);
|
|
122
|
-
useRequestAuthorizeSSR({ app: app,
|
|
109
|
+
useRequestAuthorizeSSR({ app: app, user: user, tenants: tenants, session: session });
|
|
123
110
|
return (React__default["default"].createElement(AppContext.Provider, { value: app },
|
|
124
111
|
React__default["default"].createElement(reactHooks.FronteggStoreProvider, tslib.__assign({}, tslib.__assign(tslib.__assign({}, props), { app: app })), props.children)));
|
|
125
112
|
};
|
|
126
113
|
var FronteggBaseProvider = function (props) {
|
|
127
|
-
return (React__default["default"].createElement(Connector$1, tslib.__assign({}, props, { framework: 'nextjs' }),
|
|
128
|
-
|
|
129
|
-
|
|
114
|
+
return (React__default["default"].createElement(Connector$1, tslib.__assign({}, props, { framework: 'nextjs' }), props.children));
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
var calculateExpiresInFromExp = function (exp) { return Math.floor((exp * 1000 - Date.now()) / 1000); };
|
|
118
|
+
var ExpireInListener = function () {
|
|
119
|
+
var user = reactHooks.useAuthUserOrNull();
|
|
120
|
+
var actions = reactHooks.useAuthActions();
|
|
121
|
+
React.useEffect(function () {
|
|
122
|
+
if (user && (user === null || user === void 0 ? void 0 : user.expiresIn) == null) {
|
|
123
|
+
actions.setUser(tslib.__assign(tslib.__assign({}, user), { expiresIn: calculateExpiresInFromExp(user['exp']) }));
|
|
124
|
+
}
|
|
125
|
+
}, [actions, user]);
|
|
126
|
+
// eslint-disable-next-line react/jsx-no-useless-fragment
|
|
127
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
130
128
|
};
|
|
131
129
|
|
|
132
130
|
var FronteggProvider = function (_a) {
|
|
@@ -402,25 +400,6 @@ var getTenants = function (headers) { return tslib.__awaiter(void 0, void 0, voi
|
|
|
402
400
|
});
|
|
403
401
|
}); };
|
|
404
402
|
|
|
405
|
-
function getMeAndTenants(reqHeaders, accessToken) {
|
|
406
|
-
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
407
|
-
var headers, _a, user, tenants;
|
|
408
|
-
return tslib.__generator(this, function (_b) {
|
|
409
|
-
switch (_b.label) {
|
|
410
|
-
case 0:
|
|
411
|
-
if (!reqHeaders || !accessToken) {
|
|
412
|
-
return [2 /*return*/, {}];
|
|
413
|
-
}
|
|
414
|
-
headers = tslib.__assign(tslib.__assign({}, reqHeaders), { Authorization: "Bearer ".concat(accessToken) });
|
|
415
|
-
return [4 /*yield*/, Promise.all([getUsers(headers), getTenants(headers)])];
|
|
416
|
-
case 1:
|
|
417
|
-
_a = _b.sent(), user = _a[0], tenants = _a[1];
|
|
418
|
-
return [2 /*return*/, { user: user, tenants: tenants }];
|
|
419
|
-
}
|
|
420
|
-
});
|
|
421
|
-
});
|
|
422
|
-
}
|
|
423
|
-
|
|
424
403
|
function createSessionFromAccessToken(output) {
|
|
425
404
|
var _a, _b;
|
|
426
405
|
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
@@ -473,7 +452,37 @@ function getTokensFromCookie(cookie) {
|
|
|
473
452
|
}
|
|
474
453
|
});
|
|
475
454
|
});
|
|
476
|
-
}
|
|
455
|
+
}
|
|
456
|
+
var getAllUserData = function (_a) {
|
|
457
|
+
var getSession = _a.getSession, reqHeaders = _a.reqHeaders;
|
|
458
|
+
return tslib.__awaiter(void 0, void 0, void 0, function () {
|
|
459
|
+
var session, headers, _b, baseUser, tenants, user;
|
|
460
|
+
return tslib.__generator(this, function (_d) {
|
|
461
|
+
switch (_d.label) {
|
|
462
|
+
case 0:
|
|
463
|
+
_d.trys.push([0, 3, , 4]);
|
|
464
|
+
return [4 /*yield*/, getSession()];
|
|
465
|
+
case 1:
|
|
466
|
+
session = _d.sent();
|
|
467
|
+
if (!session)
|
|
468
|
+
return [2 /*return*/, {}];
|
|
469
|
+
headers = tslib.__assign(tslib.__assign({}, reqHeaders), { Authorization: "Bearer ".concat(session.accessToken) });
|
|
470
|
+
return [4 /*yield*/, Promise.all([getUsers(headers), getTenants(headers)])];
|
|
471
|
+
case 2:
|
|
472
|
+
_b = _d.sent(), baseUser = _b[0], tenants = _b[1];
|
|
473
|
+
if (!baseUser || !tenants)
|
|
474
|
+
return [2 /*return*/, {}];
|
|
475
|
+
user = baseUser && session
|
|
476
|
+
? tslib.__assign(tslib.__assign(tslib.__assign({}, session.user), baseUser), { expiresIn: calculateExpiresInFromExp(session.user.exp) }) : undefined;
|
|
477
|
+
return [2 /*return*/, { user: user, session: session, tenants: tenants }];
|
|
478
|
+
case 3:
|
|
479
|
+
_d.sent();
|
|
480
|
+
return [2 /*return*/, {}];
|
|
481
|
+
case 4: return [2 /*return*/];
|
|
482
|
+
}
|
|
483
|
+
});
|
|
484
|
+
});
|
|
485
|
+
};
|
|
477
486
|
|
|
478
487
|
var createGetSession = function (_a) {
|
|
479
488
|
var getCookie = _a.getCookie, cookieResolver = _a.cookieResolver;
|
|
@@ -524,7 +533,8 @@ var fronteggErrors = {
|
|
|
524
533
|
envAppUrl: envError('FRONTEGG_APP_URL'),
|
|
525
534
|
envBaseUrl: envError('FRONTEGG_BASE_URL'),
|
|
526
535
|
envClientId: envError('FRONTEGG_CLIENT_ID'),
|
|
527
|
-
};
|
|
536
|
+
};
|
|
537
|
+
var COOKIE_MAX_LENGTH = 4092;
|
|
528
538
|
|
|
529
539
|
function chunkString(str, chunkSize) {
|
|
530
540
|
var numChunks = Math.ceil(str.length / chunkSize);
|
|
@@ -537,12 +547,12 @@ function chunkString(str, chunkSize) {
|
|
|
537
547
|
return chunks;
|
|
538
548
|
}
|
|
539
549
|
|
|
540
|
-
var COOKIE_MAX_LENGTH = 4096;
|
|
541
550
|
var CookieManager = /** @class */ (function () {
|
|
542
551
|
function CookieManager() {
|
|
543
552
|
var _this = this;
|
|
544
553
|
this.getCookieName = function (cookieNumber, cookieName) {
|
|
545
|
-
|
|
554
|
+
if (cookieName === void 0) { cookieName = fronteggConfig.cookieName; }
|
|
555
|
+
return cookieNumber ? "".concat(cookieName, "-").concat(cookieNumber) : cookieName;
|
|
546
556
|
};
|
|
547
557
|
this.mapValueChunksToCookies = function (cookieName, valueChunks, options) {
|
|
548
558
|
return valueChunks.map(function (chunk, index) { return cookie__default["default"].serialize(_this.getCookieName(index + 1, cookieName), chunk, options); });
|
|
@@ -566,13 +576,13 @@ var CookieManager = /** @class */ (function () {
|
|
|
566
576
|
}
|
|
567
577
|
try {
|
|
568
578
|
var cookieStr = _this.getCookieStringFromRequest(req);
|
|
569
|
-
var
|
|
570
|
-
if (!
|
|
579
|
+
var cookies = cookieStr && cookie__default["default"].parse(cookieStr);
|
|
580
|
+
if (!cookies) {
|
|
571
581
|
return [];
|
|
572
582
|
}
|
|
573
583
|
var cookieNumber = 1;
|
|
574
584
|
var cookieToRemove = [];
|
|
575
|
-
while (
|
|
585
|
+
while (cookies[_this.getCookieName(cookieNumber)]) {
|
|
576
586
|
cookieToRemove.push(_this.getCookieName(cookieNumber));
|
|
577
587
|
cookieNumber++;
|
|
578
588
|
}
|
|
@@ -639,7 +649,7 @@ var CookieManager = /** @class */ (function () {
|
|
|
639
649
|
secure: isSecured,
|
|
640
650
|
};
|
|
641
651
|
var cookieValue = cookie__default["default"].serialize(cookieName !== null && cookieName !== void 0 ? cookieName : this.getCookieName(1), value, options);
|
|
642
|
-
if (cookieValue.length
|
|
652
|
+
if (cookieValue.length <= COOKIE_MAX_LENGTH) {
|
|
643
653
|
return [cookieValue];
|
|
644
654
|
}
|
|
645
655
|
var valueChunks = this.splitValueToChunks(cookieName, value, options);
|
|
@@ -658,20 +668,18 @@ var CookieManager = /** @class */ (function () {
|
|
|
658
668
|
return this.parseCookie(cookieStr);
|
|
659
669
|
};
|
|
660
670
|
CookieManager.prototype.parseCookie = function (cookieStr) {
|
|
671
|
+
var cookies = cookie__default["default"].parse(cookieStr);
|
|
661
672
|
var sealFromCookies = '';
|
|
662
673
|
var i = 1;
|
|
663
|
-
while (
|
|
664
|
-
sealFromCookies +=
|
|
674
|
+
while (cookies[this.getCookieName(i)]) {
|
|
675
|
+
sealFromCookies += cookies[this.getCookieName(i)];
|
|
665
676
|
i++;
|
|
666
677
|
}
|
|
667
678
|
return sealFromCookies !== '' ? sealFromCookies : undefined;
|
|
668
679
|
};
|
|
669
680
|
CookieManager.prototype.parseCookieFromArray = function (cookies) {
|
|
670
|
-
var
|
|
671
|
-
|
|
672
|
-
return userCookie.value;
|
|
673
|
-
}
|
|
674
|
-
var cookieChunks = cookies.filter(function (c) { return c.name.includes(fronteggConfig.cookieName); });
|
|
681
|
+
var _this = this;
|
|
682
|
+
var cookieChunks = cookies.filter(function (c) { return c.name.includes(_this.getCookieName()); });
|
|
675
683
|
if (!cookieChunks) {
|
|
676
684
|
return undefined;
|
|
677
685
|
}
|
|
@@ -969,20 +977,25 @@ var withFronteggApp = function (app, options) {
|
|
|
969
977
|
var _a, _b;
|
|
970
978
|
var originalGetInitialProps = app.getInitialProps;
|
|
971
979
|
app.getInitialProps = function (appContext) { return tslib.__awaiter(void 0, void 0, void 0, function () {
|
|
972
|
-
var ctx, Component,
|
|
980
|
+
var ctx, Component, _a, user, tenants, session, _b, envAppUrl, envBaseUrl, envClientId, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
973
981
|
var _l, _m;
|
|
974
982
|
var _o;
|
|
975
983
|
return tslib.__generator(this, function (_p) {
|
|
976
984
|
switch (_p.label) {
|
|
977
985
|
case 0:
|
|
978
986
|
ctx = appContext.ctx, Component = appContext.Component;
|
|
979
|
-
if (!ctx.req) return [3 /*break*/,
|
|
980
|
-
return [4 /*yield*/,
|
|
987
|
+
if (!ctx.req) return [3 /*break*/, 8];
|
|
988
|
+
return [4 /*yield*/, getAllUserData({
|
|
989
|
+
getSession: function () { return tslib.__awaiter(void 0, void 0, void 0, function () { return tslib.__generator(this, function (_a) {
|
|
990
|
+
switch (_a.label) {
|
|
991
|
+
case 0: return [4 /*yield*/, refreshToken(ctx)];
|
|
992
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
993
|
+
}
|
|
994
|
+
}); }); },
|
|
995
|
+
reqHeaders: (_o = ctx.req) === null || _o === void 0 ? void 0 : _o.headers,
|
|
996
|
+
})];
|
|
981
997
|
case 1:
|
|
982
|
-
|
|
983
|
-
return [4 /*yield*/, getMeAndTenants((_o = ctx.req) === null || _o === void 0 ? void 0 : _o.headers, session === null || session === void 0 ? void 0 : session.accessToken)];
|
|
984
|
-
case 2:
|
|
985
|
-
_a = _p.sent(), user = _a.user, tenants = _a.tenants;
|
|
998
|
+
_a = _p.sent(), user = _a.user, tenants = _a.tenants, session = _a.session;
|
|
986
999
|
appContext.session = session;
|
|
987
1000
|
appContext.user = user;
|
|
988
1001
|
appContext.tenants = tenants;
|
|
@@ -998,49 +1011,49 @@ var withFronteggApp = function (app, options) {
|
|
|
998
1011
|
}
|
|
999
1012
|
_l = {};
|
|
1000
1013
|
_c = [{}];
|
|
1001
|
-
if (!originalGetInitialProps) return [3 /*break*/,
|
|
1014
|
+
if (!originalGetInitialProps) return [3 /*break*/, 3];
|
|
1002
1015
|
return [4 /*yield*/, originalGetInitialProps(appContext)];
|
|
1003
|
-
case
|
|
1016
|
+
case 2:
|
|
1004
1017
|
_d = _p.sent();
|
|
1005
|
-
return [3 /*break*/,
|
|
1006
|
-
case
|
|
1018
|
+
return [3 /*break*/, 4];
|
|
1019
|
+
case 3:
|
|
1007
1020
|
_d = {};
|
|
1008
|
-
_p.label =
|
|
1009
|
-
case
|
|
1021
|
+
_p.label = 4;
|
|
1022
|
+
case 4:
|
|
1010
1023
|
_e = [tslib.__assign.apply(void 0, _c.concat([(_d)]))];
|
|
1011
|
-
if (!Component.getInitialProps) return [3 /*break*/,
|
|
1024
|
+
if (!Component.getInitialProps) return [3 /*break*/, 6];
|
|
1012
1025
|
return [4 /*yield*/, Component.getInitialProps(ctx)];
|
|
1013
|
-
case
|
|
1026
|
+
case 5:
|
|
1014
1027
|
_f = _p.sent();
|
|
1015
|
-
return [3 /*break*/,
|
|
1016
|
-
case
|
|
1028
|
+
return [3 /*break*/, 7];
|
|
1029
|
+
case 6:
|
|
1017
1030
|
_f = {};
|
|
1018
|
-
_p.label =
|
|
1019
|
-
case
|
|
1031
|
+
_p.label = 7;
|
|
1032
|
+
case 7: return [2 /*return*/, (_l.pageProps = tslib.__assign.apply(void 0, [tslib.__assign.apply(void 0, _e.concat([(_f)])), { session: session, user: user, tenants: tenants, envAppUrl: envAppUrl, envBaseUrl: process.env['FRONTEGG_BASE_URL'], envClientId: process.env['FRONTEGG_CLIENT_ID'] }]),
|
|
1020
1033
|
_l)];
|
|
1021
|
-
case
|
|
1034
|
+
case 8:
|
|
1022
1035
|
appContext.session = null;
|
|
1023
1036
|
_m = {};
|
|
1024
1037
|
_g = [{}];
|
|
1025
|
-
if (!originalGetInitialProps) return [3 /*break*/,
|
|
1038
|
+
if (!originalGetInitialProps) return [3 /*break*/, 10];
|
|
1026
1039
|
return [4 /*yield*/, originalGetInitialProps(appContext)];
|
|
1027
|
-
case
|
|
1040
|
+
case 9:
|
|
1028
1041
|
_h = _p.sent();
|
|
1029
|
-
return [3 /*break*/,
|
|
1030
|
-
case
|
|
1042
|
+
return [3 /*break*/, 11];
|
|
1043
|
+
case 10:
|
|
1031
1044
|
_h = {};
|
|
1032
|
-
_p.label =
|
|
1033
|
-
case
|
|
1045
|
+
_p.label = 11;
|
|
1046
|
+
case 11:
|
|
1034
1047
|
_j = [tslib.__assign.apply(void 0, _g.concat([(_h)]))];
|
|
1035
|
-
if (!Component.getInitialProps) return [3 /*break*/,
|
|
1048
|
+
if (!Component.getInitialProps) return [3 /*break*/, 13];
|
|
1036
1049
|
return [4 /*yield*/, Component.getInitialProps(ctx)];
|
|
1037
|
-
case
|
|
1050
|
+
case 12:
|
|
1038
1051
|
_k = _p.sent();
|
|
1039
|
-
return [3 /*break*/,
|
|
1040
|
-
case
|
|
1052
|
+
return [3 /*break*/, 14];
|
|
1053
|
+
case 13:
|
|
1041
1054
|
_k = {};
|
|
1042
|
-
_p.label =
|
|
1043
|
-
case
|
|
1055
|
+
_p.label = 14;
|
|
1056
|
+
case 14: return [2 /*return*/, (_m.pageProps = tslib.__assign.apply(void 0, _j.concat([(_k)])),
|
|
1044
1057
|
_m)];
|
|
1045
1058
|
}
|
|
1046
1059
|
});
|
|
@@ -1193,6 +1206,7 @@ Object.defineProperty(exports, 'AdminPortal', {
|
|
|
1193
1206
|
get: function () { return js.AdminPortal; }
|
|
1194
1207
|
});
|
|
1195
1208
|
exports.AuthorizedContent = AuthorizedContent;
|
|
1209
|
+
exports.COOKIE_MAX_LENGTH = COOKIE_MAX_LENGTH;
|
|
1196
1210
|
exports.CookieManager = CookieManager$1;
|
|
1197
1211
|
exports.FronteggConfig = fronteggConfig;
|
|
1198
1212
|
exports.FronteggProvider = FronteggProvider;
|
|
@@ -1203,7 +1217,7 @@ exports.createGetSession = createGetSession;
|
|
|
1203
1217
|
exports.createSessionFromAccessToken = createSessionFromAccessToken;
|
|
1204
1218
|
exports.fronteggErrors = fronteggErrors;
|
|
1205
1219
|
exports.fronteggMiddleware = fronteggMiddleware;
|
|
1206
|
-
exports.
|
|
1220
|
+
exports.getAllUserData = getAllUserData;
|
|
1207
1221
|
exports.getSession = getSession;
|
|
1208
1222
|
exports.getTokensFromCookie = getTokensFromCookie;
|
|
1209
1223
|
exports.rewritePath = rewritePath;
|
package/package.json
CHANGED
package/server/index.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
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 '../
|
|
6
|
-
import {
|
|
7
|
-
import { c as createGetSession } from '../createGetSession-b2281638.js';
|
|
8
|
-
import 'iron-session';
|
|
4
|
+
import { C as CookieManager } from '../CookieManager-27107b90.js';
|
|
5
|
+
import { g as getTokensFromCookie, a as getAllUserData } from '../helpers-b15628e9.js';
|
|
6
|
+
import { c as createGetSession } from '../createGetSession-bee8af0a.js';
|
|
9
7
|
import 'jose';
|
|
10
8
|
import '@frontegg/react-hooks';
|
|
11
9
|
import '@frontegg/rest-api';
|
|
12
|
-
import { F as FronteggClientProviderNext13 } from '../FronteggClientProviderNext13-
|
|
10
|
+
import { F as FronteggClientProviderNext13 } from '../FronteggClientProviderNext13-d020161d.js';
|
|
13
11
|
import '@frontegg/js';
|
|
14
12
|
import '@frontegg/redux-store';
|
|
15
13
|
import 'next/navigation';
|
|
16
14
|
import 'cookie';
|
|
15
|
+
import 'iron-session';
|
|
16
|
+
import '../api-25516652.js';
|
|
17
17
|
|
|
18
18
|
var getCookie = function () {
|
|
19
19
|
var allCookies = cookies().getAll();
|
|
@@ -52,7 +52,7 @@ function getUserTokens() {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
var FronteggAppProvider = function (_a) { return __awaiter(void 0, void 0, void 0, function () {
|
|
55
|
-
var envAppUrl, envBaseUrl, envClientId,
|
|
55
|
+
var envAppUrl, envBaseUrl, envClientId, reqHeaders, _b, user, tenants, session;
|
|
56
56
|
var children = _a.children, options = __rest(_a, ["children"]);
|
|
57
57
|
return __generator(this, function (_c) {
|
|
58
58
|
switch (_c.label) {
|
|
@@ -69,14 +69,11 @@ var FronteggAppProvider = function (_a) { return __awaiter(void 0, void 0, void
|
|
|
69
69
|
if (!envClientId) {
|
|
70
70
|
throw Error('@frontegg/nextjs: .env.local must contain FRONTEGG_CLIENT_ID');
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
reqHeaders = {};
|
|
73
|
+
headers().forEach(function (value, key) { return (reqHeaders[key] = value); });
|
|
74
|
+
return [4 /*yield*/, getAllUserData({ getSession: getSession, reqHeaders: reqHeaders })];
|
|
73
75
|
case 1:
|
|
74
|
-
|
|
75
|
-
allHeaders = {};
|
|
76
|
-
headers().forEach(function (value, key) { return (allHeaders[key] = value); });
|
|
77
|
-
return [4 /*yield*/, getMeAndTenants(allHeaders, session === null || session === void 0 ? void 0 : session.accessToken)];
|
|
78
|
-
case 2:
|
|
79
|
-
_b = _c.sent(), user = _b.user, tenants = _b.tenants;
|
|
76
|
+
_b = _c.sent(), user = _b.user, tenants = _b.tenants, session = _b.session;
|
|
80
77
|
return [2 /*return*/, (React.createElement(FronteggClientProviderNext13, __assign({}, { session: session, envAppUrl: envAppUrl, envBaseUrl: envBaseUrl, envClientId: envClientId, user: user, tenants: tenants }, options), children))];
|
|
81
78
|
}
|
|
82
79
|
});
|
package/withFronteggApp.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { FronteggAppOptions } from '@frontegg/types';
|
|
2
2
|
import type { AppInitialProps } from 'next/app';
|
|
3
3
|
import type { AppContextType, AppPropsType, NextComponentType } from 'next/dist/shared/lib/utils';
|
|
4
|
-
import {
|
|
5
|
-
type FronteggCustomApp = NextComponentType<AppContextType &
|
|
6
|
-
session: FronteggNextJSSession | null;
|
|
7
|
-
}, AppInitialProps, AppPropsType>;
|
|
4
|
+
import { AllUserData } from './common';
|
|
5
|
+
type FronteggCustomApp = NextComponentType<AppContextType & AllUserData, AppInitialProps, AppPropsType>;
|
|
8
6
|
export declare const withFronteggApp: (app: ((props: AppPropsType<any>) => JSX.Element) & {
|
|
9
7
|
getInitialProps?: FronteggCustomApp['getInitialProps'];
|
|
10
8
|
}, options?: Omit<FronteggAppOptions, 'contextOptions'> & {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CookieManager-c1d6c5b0.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FronteggClientProviderNext13-3259fcd9.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createGetSession-b2281638.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/helpers-942ef431.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers-942ef431.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|