@frontegg/nextjs 6.7.20 → 6.7.21-alpha.4441971157

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +19 -37
  3. package/api/index.d.ts +19 -0
  4. package/api/index.js +87 -0
  5. package/api/index.js.map +1 -0
  6. package/api/package.json +6 -0
  7. package/api/urls.d.ts +33 -0
  8. package/api/urls.js +56 -0
  9. package/api/urls.js.map +1 -0
  10. package/api/utils.d.ts +46 -0
  11. package/api/utils.js +123 -0
  12. package/api/utils.js.map +1 -0
  13. package/app/ClientFronteggProvider.d.ts +3 -0
  14. package/app/ClientFronteggProvider.js +32 -0
  15. package/app/ClientFronteggProvider.js.map +1 -0
  16. package/app/FronteggAppProvider.d.ts +4 -0
  17. package/app/FronteggAppProvider.js +25 -0
  18. package/app/FronteggAppProvider.js.map +1 -0
  19. package/{client → app}/FronteggAppRouter.d.ts +11 -10
  20. package/app/FronteggAppRouter.js +38 -0
  21. package/app/FronteggAppRouter.js.map +1 -0
  22. package/app/helpers.d.ts +5 -0
  23. package/app/helpers.js +43 -0
  24. package/app/helpers.js.map +1 -0
  25. package/app/index.d.ts +4 -0
  26. package/app/index.js +39 -0
  27. package/app/index.js.map +1 -0
  28. package/app/package.json +6 -0
  29. package/common/{client/AppContext.d.ts → AppContext.d.ts} +4 -4
  30. package/common/AppContext.js +12 -0
  31. package/common/AppContext.js.map +1 -0
  32. package/{AuthorizedContent.d.ts → common/AuthorizedContent.d.ts} +9 -8
  33. package/common/AuthorizedContent.js +54 -0
  34. package/common/AuthorizedContent.js.map +1 -0
  35. package/common/{client/FronteggBaseProvider.d.ts → FronteggBaseProvider.d.ts} +3 -3
  36. package/common/FronteggBaseProvider.js +76 -0
  37. package/common/FronteggBaseProvider.js.map +1 -0
  38. package/common/FronteggRouterBase.d.ts +9 -0
  39. package/common/FronteggRouterBase.js +48 -0
  40. package/common/FronteggRouterBase.js.map +1 -0
  41. package/common/helpers.d.ts +3 -9
  42. package/common/helpers.js +32 -0
  43. package/common/helpers.js.map +1 -0
  44. package/common/index.d.ts +4 -6
  45. package/common/index.js +45 -10
  46. package/common/index.js.map +1 -1
  47. package/common/package.json +6 -0
  48. package/common/useRequestAuthorizeSSR.d.ts +5 -0
  49. package/common/useRequestAuthorizeSSR.js +30 -0
  50. package/common/useRequestAuthorizeSSR.js.map +1 -0
  51. package/config/constants.d.ts +57 -0
  52. package/config/constants.js +20 -0
  53. package/config/constants.js.map +1 -0
  54. package/config/helpers.d.ts +28 -0
  55. package/config/helpers.js +97 -0
  56. package/config/helpers.js.map +1 -0
  57. package/config/index.d.ts +24 -0
  58. package/config/index.js +94 -0
  59. package/config/index.js.map +1 -0
  60. package/config/package.json +6 -0
  61. package/config/types.d.ts +18 -0
  62. package/config/types.js +6 -0
  63. package/config/types.js.map +1 -0
  64. package/edge/getSessionOnEdge.d.ts +3 -2
  65. package/edge/getSessionOnEdge.js +16 -0
  66. package/edge/getSessionOnEdge.js.map +1 -0
  67. package/edge/index.d.ts +3 -2
  68. package/edge/index.js +38 -63
  69. package/edge/index.js.map +1 -1
  70. package/edge/package.json +6 -0
  71. package/edge/redirectToLogin.d.ts +2 -0
  72. package/edge/redirectToLogin.js +16 -0
  73. package/edge/redirectToLogin.js.map +1 -0
  74. package/edge/shouldBypassMiddleware.d.ts +21 -7
  75. package/edge/shouldBypassMiddleware.js +50 -0
  76. package/edge/shouldBypassMiddleware.js.map +1 -0
  77. package/index.d.ts +7 -11
  78. package/index.js +98 -1392
  79. package/index.js.map +1 -1
  80. package/middleware/FronteggApiMiddleware.d.ts +8 -0
  81. package/middleware/FronteggApiMiddleware.js +34 -0
  82. package/middleware/FronteggApiMiddleware.js.map +1 -0
  83. package/middleware/FronteggProxy.d.ts +4 -0
  84. package/middleware/FronteggProxy.js +31 -0
  85. package/middleware/FronteggProxy.js.map +1 -0
  86. package/middleware/ProxyRequestCallback.d.ts +13 -0
  87. package/middleware/ProxyRequestCallback.js +56 -0
  88. package/middleware/ProxyRequestCallback.js.map +1 -0
  89. package/middleware/ProxyResponseCallback.d.ts +13 -0
  90. package/middleware/ProxyResponseCallback.js +111 -0
  91. package/middleware/ProxyResponseCallback.js.map +1 -0
  92. package/middleware/constants.d.ts +8 -0
  93. package/middleware/constants.js +17 -0
  94. package/middleware/constants.js.map +1 -0
  95. package/{common/FronteggProxy.d.ts → middleware/helpers.d.ts} +13 -26
  96. package/middleware/helpers.js +42 -0
  97. package/middleware/helpers.js.map +1 -0
  98. package/middleware/index.d.ts +23 -0
  99. package/middleware/index.js +13 -0
  100. package/middleware/index.js.map +1 -0
  101. package/middleware/package.json +6 -0
  102. package/no-ssr/ExpireInListener.d.ts +2 -0
  103. package/no-ssr/ExpireInListener.js +29 -0
  104. package/no-ssr/ExpireInListener.js.map +1 -0
  105. package/{FronteggProviderNoSSR.d.ts → no-ssr/FronteggProviderNoSSR.d.ts} +4 -4
  106. package/no-ssr/FronteggProviderNoSSR.js +84 -0
  107. package/no-ssr/FronteggProviderNoSSR.js.map +1 -0
  108. package/no-ssr/index.d.ts +2 -0
  109. package/no-ssr/index.js +13 -0
  110. package/no-ssr/index.js.map +1 -0
  111. package/no-ssr/package.json +6 -0
  112. package/package.json +6 -7
  113. package/pages/FronteggPagesProvider/index.d.ts +4 -0
  114. package/pages/FronteggPagesProvider/index.js +32 -0
  115. package/pages/FronteggPagesProvider/index.js.map +1 -0
  116. package/pages/FronteggPagesProvider/package.json +6 -0
  117. package/{FronteggRouter.d.ts → pages/FronteggRouter/FronteggRouter.d.ts} +6 -5
  118. package/pages/FronteggRouter/FronteggRouter.js +46 -0
  119. package/pages/FronteggRouter/FronteggRouter.js.map +1 -0
  120. package/pages/FronteggRouter/index.d.ts +26 -0
  121. package/pages/FronteggRouter/index.js +19 -0
  122. package/pages/FronteggRouter/index.js.map +1 -0
  123. package/pages/FronteggRouter/package.json +6 -0
  124. package/{session.d.ts → pages/helpers.d.ts} +10 -10
  125. package/pages/helpers.js +40 -0
  126. package/pages/helpers.js.map +1 -0
  127. package/pages/index.d.ts +3 -0
  128. package/pages/index.js +47 -0
  129. package/pages/index.js.map +1 -0
  130. package/pages/package.json +6 -0
  131. package/pages/withFronteggApp/index.d.ts +2 -0
  132. package/pages/withFronteggApp/index.js +13 -0
  133. package/pages/withFronteggApp/index.js.map +1 -0
  134. package/pages/withFronteggApp/package.json +6 -0
  135. package/pages/withFronteggApp/types.d.ts +12 -0
  136. package/pages/withFronteggApp/types.js +6 -0
  137. package/pages/withFronteggApp/types.js.map +1 -0
  138. package/pages/withFronteggApp/withFronteggApp.d.ts +2 -0
  139. package/pages/withFronteggApp/withFronteggApp.js +70 -0
  140. package/pages/withFronteggApp/withFronteggApp.js.map +1 -0
  141. package/sdkVersion.d.ts +4 -4
  142. package/sdkVersion.js +11 -0
  143. package/sdkVersion.js.map +1 -0
  144. package/{common/types.d.ts → types/index.d.ts} +80 -74
  145. package/types/index.js +6 -0
  146. package/types/index.js.map +1 -0
  147. package/types/package.json +6 -0
  148. package/utils/common/constants.d.ts +12 -0
  149. package/utils/common/constants.js +23 -0
  150. package/utils/common/constants.js.map +1 -0
  151. package/utils/common/index.d.ts +15 -0
  152. package/utils/common/index.js +32 -0
  153. package/utils/common/index.js.map +1 -0
  154. package/utils/common/package.json +6 -0
  155. package/utils/cookies/constants.d.ts +7 -0
  156. package/utils/cookies/constants.js +15 -0
  157. package/utils/cookies/constants.js.map +1 -0
  158. package/utils/cookies/helpers.d.ts +25 -0
  159. package/utils/cookies/helpers.js +64 -0
  160. package/utils/cookies/helpers.js.map +1 -0
  161. package/utils/cookies/index.d.ts +45 -0
  162. package/utils/cookies/index.js +239 -0
  163. package/utils/cookies/index.js.map +1 -0
  164. package/utils/cookies/package.json +6 -0
  165. package/utils/cookies/serializer.d.ts +22 -0
  166. package/utils/cookies/serializer.js +161 -0
  167. package/utils/cookies/serializer.js.map +1 -0
  168. package/utils/cookies/types.d.ts +31 -0
  169. package/utils/cookies/types.js +6 -0
  170. package/utils/cookies/types.js.map +1 -0
  171. package/utils/createSession/index.d.ts +2 -0
  172. package/utils/createSession/index.js +51 -0
  173. package/utils/createSession/index.js.map +1 -0
  174. package/utils/createSession/package.json +6 -0
  175. package/utils/encryption/index.d.ts +3 -0
  176. package/utils/encryption/index.js +37 -0
  177. package/utils/encryption/index.js.map +1 -0
  178. package/utils/encryption/package.json +6 -0
  179. package/utils/encryption-edge/index.d.ts +3 -0
  180. package/utils/encryption-edge/index.js +37 -0
  181. package/utils/encryption-edge/index.js.map +1 -0
  182. package/utils/encryption-edge/package.json +6 -0
  183. package/utils/errors/FronteggEnvNotFound.d.ts +3 -0
  184. package/utils/errors/FronteggEnvNotFound.js +15 -0
  185. package/utils/errors/FronteggEnvNotFound.js.map +1 -0
  186. package/utils/errors/InvalidFronteggEnv.d.ts +3 -0
  187. package/utils/errors/InvalidFronteggEnv.js +15 -0
  188. package/utils/errors/InvalidFronteggEnv.js.map +1 -0
  189. package/utils/errors/index.d.ts +2 -0
  190. package/utils/errors/index.js +28 -0
  191. package/utils/errors/index.js.map +1 -0
  192. package/utils/errors/package.json +6 -0
  193. package/utils/fetchUserData/index.d.ts +7 -0
  194. package/utils/fetchUserData/index.js +56 -0
  195. package/utils/fetchUserData/index.js.map +1 -0
  196. package/utils/fetchUserData/package.json +6 -0
  197. package/utils/fronteggLogger/constants.d.ts +13 -0
  198. package/utils/fronteggLogger/constants.js +28 -0
  199. package/utils/fronteggLogger/constants.js.map +1 -0
  200. package/utils/fronteggLogger/index.d.ts +17 -0
  201. package/utils/fronteggLogger/index.js +67 -0
  202. package/utils/fronteggLogger/index.js.map +1 -0
  203. package/utils/fronteggLogger/package.json +6 -0
  204. package/{common/client/createOrGetFronteggApp.d.ts → utils/initializeFronteggApp/index.d.ts} +11 -11
  205. package/utils/initializeFronteggApp/index.js +108 -0
  206. package/utils/initializeFronteggApp/index.js.map +1 -0
  207. package/utils/initializeFronteggApp/package.json +6 -0
  208. package/utils/jwt/index.d.ts +22 -0
  209. package/utils/jwt/index.js +61 -0
  210. package/utils/jwt/index.js.map +1 -0
  211. package/utils/jwt/package.json +6 -0
  212. package/utils/refreshAccessToken/helpers.d.ts +16 -0
  213. package/utils/refreshAccessToken/helpers.js +80 -0
  214. package/utils/refreshAccessToken/helpers.js.map +1 -0
  215. package/utils/refreshAccessToken/index.d.ts +9 -0
  216. package/utils/refreshAccessToken/index.js +94 -0
  217. package/utils/refreshAccessToken/index.js.map +1 -0
  218. package/utils/refreshAccessToken/package.json +6 -0
  219. package/utils/routing/index.d.ts +5 -0
  220. package/utils/routing/index.js +31 -0
  221. package/utils/routing/index.js.map +1 -0
  222. package/utils/routing/package.json +6 -0
  223. package/utils/useOnRedirectTo/index.d.ts +5 -0
  224. package/utils/useOnRedirectTo/index.js +28 -0
  225. package/utils/useOnRedirectTo/index.js.map +1 -0
  226. package/utils/useOnRedirectTo/package.json +6 -0
  227. package/CookieManager-e50dc144.js +0 -322
  228. package/CookieManager-e50dc144.js.map +0 -1
  229. package/FronteggClientProviderNext13-b3c1e7a0.js +0 -158
  230. package/FronteggClientProviderNext13-b3c1e7a0.js.map +0 -1
  231. package/FronteggMiddleware.d.ts +0 -15
  232. package/FronteggProvider.d.ts +0 -3
  233. package/api-25516652.js +0 -58
  234. package/api-25516652.js.map +0 -1
  235. package/client/FronteggClientProviderNext13.d.ts +0 -3
  236. package/client/index.d.ts +0 -2
  237. package/client/index.js +0 -64
  238. package/client/index.js.map +0 -1
  239. package/common/CookieManager.d.ts +0 -41
  240. package/common/FronteggConfig.d.ts +0 -31
  241. package/common/api.d.ts +0 -3
  242. package/common/client/ExpireInListener.d.ts +0 -2
  243. package/common/client/hooks/index.d.ts +0 -1
  244. package/common/client/hooks/useRequestAuthorizeSSR.d.ts +0 -5
  245. package/common/client/index.d.ts +0 -4
  246. package/common/consts.d.ts +0 -6
  247. package/common/createGetSession.d.ts +0 -7
  248. package/common/utils.d.ts +0 -1
  249. package/createGetSession-2e1e4506.js +0 -50
  250. package/createGetSession-2e1e4506.js.map +0 -1
  251. package/helpers-dac37998.js +0 -88
  252. package/helpers-dac37998.js.map +0 -1
  253. package/refreshToken.d.ts +0 -3
  254. package/server/FronteggProviderNext13.d.ts +0 -3
  255. package/server/getSessionNext13.d.ts +0 -4
  256. package/server/index.d.ts +0 -2
  257. package/server/index.js +0 -84
  258. package/server/index.js.map +0 -1
  259. package/withFronteggApp.d.ts +0 -11
@@ -1,10 +1,11 @@
1
- /// <reference types="node" />
2
- import { ParsedUrlQuery } from 'querystring';
3
- interface FronteggRouterProps {
4
- params: ParsedUrlQuery & {
5
- 'frontegg-router'?: string[];
6
- };
7
- searchParams?: ParsedUrlQuery;
8
- }
9
- export declare function FronteggAppRouter({ params: { 'frontegg-router': pathArr }, searchParams }: FronteggRouterProps): string;
10
- export {};
1
+ /// <reference types="react" />
2
+ /// <reference types="node" />
3
+ import { ParsedUrlQuery } from 'querystring';
4
+ interface FronteggRouterProps {
5
+ params: ParsedUrlQuery & {
6
+ 'frontegg-router'?: string[];
7
+ };
8
+ searchParams?: ParsedUrlQuery;
9
+ }
10
+ export declare function FronteggAppRouter({ params: { 'frontegg-router': pathArr }, searchParams }: FronteggRouterProps): JSX.Element | null;
11
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.FronteggAppRouter = FronteggAppRouter;
8
+ var _navigation = require("next/navigation");
9
+ var _routing = require("../utils/routing");
10
+ var _FronteggRouterBase = require("../common/FronteggRouterBase");
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function FronteggAppRouter({
14
+ params: {
15
+ 'frontegg-router': pathArr = []
16
+ },
17
+ searchParams
18
+ }) {
19
+ let pathname = `/${pathArr.join('/')}`;
20
+ if (!pathname || pathname.startsWith('/_next/data')) {
21
+ if (searchParams) {
22
+ const query = searchParams[Object.keys(searchParams)[0]];
23
+ pathname = `/${Array.isArray(query) ? query.join('/') : query}`;
24
+ } else {
25
+ (0, _navigation.notFound)();
26
+ return null;
27
+ }
28
+ }
29
+ if (!(0, _routing.isAuthRoute)(pathname)) {
30
+ (0, _navigation.notFound)();
31
+ return null;
32
+ }
33
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FronteggRouterBase.FronteggRouterBase, {
34
+ pathArr: pathArr,
35
+ queryParams: searchParams
36
+ });
37
+ }
38
+ //# sourceMappingURL=FronteggAppRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FronteggAppRouter.js","names":["FronteggAppRouter","params","pathArr","searchParams","pathname","join","startsWith","query","Object","keys","Array","isArray","notFound","isAuthRoute"],"sources":["../../../../packages/nextjs/src/app/FronteggAppRouter.tsx"],"sourcesContent":["import { notFound } from 'next/navigation';\nimport { ParsedUrlQuery } from 'querystring';\nimport { isAuthRoute } from '../utils/routing';\nimport { FronteggRouterBase } from '../common/FronteggRouterBase';\nimport React from 'react';\n\ninterface FronteggRouterProps {\n params: ParsedUrlQuery & { 'frontegg-router'?: string[] };\n searchParams?: ParsedUrlQuery;\n}\n\nexport function FronteggAppRouter({ params: { 'frontegg-router': pathArr = [] }, searchParams }: FronteggRouterProps) {\n let pathname = `/${pathArr.join('/')}`;\n if (!pathname || pathname.startsWith('/_next/data')) {\n if (searchParams) {\n const query = searchParams[Object.keys(searchParams)[0]];\n pathname = `/${Array.isArray(query) ? query.join('/') : query}`;\n } else {\n notFound();\n return null;\n }\n }\n\n if (!isAuthRoute(pathname)) {\n notFound();\n return null;\n }\n\n return <FronteggRouterBase pathArr={pathArr} queryParams={searchParams} />;\n}\n"],"mappings":";;;;;;;AAAA;AAEA;AACA;AACA;AAA0B;AAOnB,SAASA,iBAAiB,CAAC;EAAEC,MAAM,EAAE;IAAE,iBAAiB,EAAEC,OAAO,GAAG;EAAG,CAAC;EAAEC;AAAkC,CAAC,EAAE;EACpH,IAAIC,QAAQ,GAAI,IAAGF,OAAO,CAACG,IAAI,CAAC,GAAG,CAAE,EAAC;EACtC,IAAI,CAACD,QAAQ,IAAIA,QAAQ,CAACE,UAAU,CAAC,aAAa,CAAC,EAAE;IACnD,IAAIH,YAAY,EAAE;MAChB,MAAMI,KAAK,GAAGJ,YAAY,CAACK,MAAM,CAACC,IAAI,CAACN,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;MACxDC,QAAQ,GAAI,IAAGM,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,GAAGA,KAAK,CAACF,IAAI,CAAC,GAAG,CAAC,GAAGE,KAAM,EAAC;IACjE,CAAC,MAAM;MACL,IAAAK,oBAAQ,GAAE;MACV,OAAO,IAAI;IACb;EACF;EAEA,IAAI,CAAC,IAAAC,oBAAW,EAACT,QAAQ,CAAC,EAAE;IAC1B,IAAAQ,oBAAQ,GAAE;IACV,OAAO,IAAI;EACb;EAEA,oBAAO,qBAAC,sCAAkB;IAAC,OAAO,EAAEV,OAAQ;IAAC,WAAW,EAAEC;EAAa,EAAG;AAC5E"}
@@ -0,0 +1,5 @@
1
+ import { FronteggUserSession, FronteggUserTokens } from '../types';
2
+ export declare const getAppSession: () => Promise<import("../types").FronteggNextJSSession | undefined>;
3
+ export declare const getAppHeaders: () => Promise<Record<string, string>>;
4
+ export declare function getAppUserSession(): Promise<FronteggUserSession | undefined>;
5
+ export declare function getAppUserTokens(): Promise<FronteggUserTokens | undefined>;
package/app/helpers.js ADDED
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getAppSession = exports.getAppHeaders = void 0;
8
+ exports.getAppUserSession = getAppUserSession;
9
+ exports.getAppUserTokens = getAppUserTokens;
10
+ var _headers = require("next/headers");
11
+ var _cookies = _interopRequireDefault(require("../utils/cookies"));
12
+ var _createSession = _interopRequireDefault(require("../utils/createSession"));
13
+ var _encryption = _interopRequireDefault(require("../utils/encryption"));
14
+ const getCookie = () => {
15
+ const allCookies = (0, _headers.cookies)().getAll();
16
+ return _cookies.default.parseCookieFromArray(allCookies);
17
+ };
18
+ const getAppSession = () => {
19
+ const cookies = getCookie();
20
+ return (0, _createSession.default)(cookies, _encryption.default);
21
+ };
22
+ exports.getAppSession = getAppSession;
23
+ const getAppHeaders = async () => {
24
+ const reqHeaders = {};
25
+ (0, _headers.headers)().forEach((value, key) => reqHeaders[key] = value);
26
+ return reqHeaders;
27
+ };
28
+ exports.getAppHeaders = getAppHeaders;
29
+ async function getAppUserSession() {
30
+ const session = await getAppSession();
31
+ return session == null ? void 0 : session.user;
32
+ }
33
+ async function getAppUserTokens() {
34
+ const session = await getAppSession();
35
+ if (!session) {
36
+ return undefined;
37
+ }
38
+ return {
39
+ accessToken: session.accessToken,
40
+ refreshToken: session.refreshToken
41
+ };
42
+ }
43
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","names":["getCookie","allCookies","cookies","getAll","CookieManager","parseCookieFromArray","getAppSession","createSession","encryption","getAppHeaders","reqHeaders","headers","forEach","value","key","getAppUserSession","session","user","getAppUserTokens","undefined","accessToken","refreshToken"],"sources":["../../../../packages/nextjs/src/app/helpers.ts"],"sourcesContent":["import { cookies, headers } from 'next/headers';\nimport CookieManager from '../utils/cookies';\nimport createSession from '../utils/createSession';\nimport encryption from '../utils/encryption';\nimport { FronteggUserSession, FronteggUserTokens } from '../types';\n\nconst getCookie = () => {\n const allCookies = cookies().getAll();\n return CookieManager.parseCookieFromArray(allCookies);\n};\n\nexport const getAppSession = () => {\n const cookies = getCookie();\n return createSession(cookies, encryption);\n};\n\nexport const getAppHeaders = async (): Promise<Record<string, string>> => {\n const reqHeaders: Record<string, string> = {};\n headers().forEach((value, key) => (reqHeaders[key] = value));\n return reqHeaders;\n};\n\nexport async function getAppUserSession(): Promise<FronteggUserSession | undefined> {\n const session = await getAppSession();\n return session?.user;\n}\n\nexport async function getAppUserTokens(): Promise<FronteggUserTokens | undefined> {\n const session = await getAppSession();\n if (!session) {\n return undefined;\n }\n return {\n accessToken: session.accessToken,\n refreshToken: session.refreshToken,\n };\n}\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AAGA,MAAMA,SAAS,GAAG,MAAM;EACtB,MAAMC,UAAU,GAAG,IAAAC,gBAAO,GAAE,CAACC,MAAM,EAAE;EACrC,OAAOC,gBAAa,CAACC,oBAAoB,CAACJ,UAAU,CAAC;AACvD,CAAC;AAEM,MAAMK,aAAa,GAAG,MAAM;EACjC,MAAMJ,OAAO,GAAGF,SAAS,EAAE;EAC3B,OAAO,IAAAO,sBAAa,EAACL,OAAO,EAAEM,mBAAU,CAAC;AAC3C,CAAC;AAAC;AAEK,MAAMC,aAAa,GAAG,YAA6C;EACxE,MAAMC,UAAkC,GAAG,CAAC,CAAC;EAC7C,IAAAC,gBAAO,GAAE,CAACC,OAAO,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAMJ,UAAU,CAACI,GAAG,CAAC,GAAGD,KAAM,CAAC;EAC5D,OAAOH,UAAU;AACnB,CAAC;AAAC;AAEK,eAAeK,iBAAiB,GAA6C;EAClF,MAAMC,OAAO,GAAG,MAAMV,aAAa,EAAE;EACrC,OAAOU,OAAO,oBAAPA,OAAO,CAAEC,IAAI;AACtB;AAEO,eAAeC,gBAAgB,GAA4C;EAChF,MAAMF,OAAO,GAAG,MAAMV,aAAa,EAAE;EACrC,IAAI,CAACU,OAAO,EAAE;IACZ,OAAOG,SAAS;EAClB;EACA,OAAO;IACLC,WAAW,EAAEJ,OAAO,CAACI,WAAW;IAChCC,YAAY,EAAEL,OAAO,CAACK;EACxB,CAAC;AACH"}
package/app/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export { FronteggAppProvider } from './FronteggAppProvider';
2
+ export type { FronteggAppProviderProps } from './FronteggAppProvider';
3
+ export { FronteggAppRouter } from './FronteggAppRouter';
4
+ export { getAppSession, getAppUserSession, getAppUserTokens } from './helpers';
package/app/index.js ADDED
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "FronteggAppProvider", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _FronteggAppProvider.FronteggAppProvider;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "FronteggAppRouter", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _FronteggAppRouter.FronteggAppRouter;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "getAppSession", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _helpers.getAppSession;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "getAppUserSession", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _helpers.getAppUserSession;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "getAppUserTokens", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _helpers.getAppUserTokens;
34
+ }
35
+ });
36
+ var _FronteggAppProvider = require("./FronteggAppProvider");
37
+ var _FronteggAppRouter = require("./FronteggAppRouter");
38
+ var _helpers = require("./helpers");
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/app/index.ts"],"sourcesContent":["export { FronteggAppProvider } from './FronteggAppProvider';\nexport type { FronteggAppProviderProps } from './FronteggAppProvider';\nexport { FronteggAppRouter } from './FronteggAppRouter';\n\nexport { getAppSession, getAppUserSession, getAppUserTokens } from './helpers';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAEA;AAEA"}
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
2
- import type { FronteggApp } from '@frontegg/js';
3
- declare const AppContext: import("react").Context<FronteggApp | null>;
4
- export default AppContext;
1
+ /// <reference types="react" />
2
+ import type { FronteggApp } from '@frontegg/js';
3
+ declare const AppContext: import("react").Context<FronteggApp | null>;
4
+ export default AppContext;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = require("react");
9
+ const AppContext = /*#__PURE__*/(0, _react.createContext)(null);
10
+ var _default = AppContext;
11
+ exports.default = _default;
12
+ //# sourceMappingURL=AppContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppContext.js","names":["AppContext","createContext"],"sources":["../../../../packages/nextjs/src/common/AppContext.ts"],"sourcesContent":["'use client';\n\nimport { createContext } from 'react';\nimport type { FronteggApp } from '@frontegg/js';\n\nconst AppContext = createContext<FronteggApp | null>(null);\n\nexport default AppContext;\n"],"mappings":";AAAA,YAAY;;AAAC;EAAA;AAAA;AAAA;AAEb;AAGA,MAAMA,UAAU,gBAAG,IAAAC,oBAAa,EAAqB,IAAI,CAAC;AAAC,eAE5CD,UAAU;AAAA"}
@@ -1,8 +1,9 @@
1
- import React, { FC, ReactNode } from 'react';
2
- export interface AuthorizationProps {
3
- requiredRoles?: string[];
4
- requiredPermissions?: string[];
5
- render?: (isAuthorized: boolean) => React.ReactNode | null;
6
- children?: ReactNode;
7
- }
8
- export declare const AuthorizedContent: FC<AuthorizationProps>;
1
+ import React, { FC, ReactNode } from 'react';
2
+ export interface AuthorizationProps {
3
+ requiredRoles?: string[];
4
+ requiredPermissions?: string[];
5
+ render?: (isAuthorized: boolean) => React.ReactNode | null;
6
+ children?: ReactNode;
7
+ }
8
+ declare const AuthorizedContent: FC<AuthorizationProps>;
9
+ export default AuthorizedContent;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _reactHooks = require("@frontegg/react-hooks");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ const AuthorizedContent = props => {
13
+ let isAuthorized = true;
14
+ const user = (0, _reactHooks.useAuthUserOrNull)();
15
+ if (!(user != null && user.superUser)) {
16
+ if (props.requiredPermissions) {
17
+ if (!(user != null && user.permissions) || (user == null ? void 0 : user.permissions.length) === 0) {
18
+ isAuthorized = false;
19
+ }
20
+ for (const permission of props.requiredPermissions) {
21
+ var _user$permissions;
22
+ if (!(user != null && (_user$permissions = user.permissions) != null && _user$permissions.find(({
23
+ key
24
+ }) => key === permission))) {
25
+ isAuthorized = false;
26
+ }
27
+ }
28
+ }
29
+ if (props.requiredRoles) {
30
+ if (!(user != null && user.roles) || (user == null ? void 0 : user.roles.length) === 0) {
31
+ isAuthorized = false;
32
+ }
33
+ for (const role of props.requiredRoles) {
34
+ var _user$roles;
35
+ if (!(user != null && (_user$roles = user.roles) != null && _user$roles.find(({
36
+ key
37
+ }) => key === role))) {
38
+ isAuthorized = false;
39
+ }
40
+ }
41
+ }
42
+ }
43
+ if (typeof props.render === 'function') {
44
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
45
+ children: props.render(isAuthorized)
46
+ });
47
+ }
48
+ return isAuthorized ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
49
+ children: props.children
50
+ }) : null;
51
+ };
52
+ var _default = AuthorizedContent;
53
+ exports.default = _default;
54
+ //# sourceMappingURL=AuthorizedContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthorizedContent.js","names":["AuthorizedContent","props","isAuthorized","user","useAuthUserOrNull","superUser","requiredPermissions","permissions","length","permission","find","key","requiredRoles","roles","role","render","children"],"sources":["../../../../packages/nextjs/src/common/AuthorizedContent.tsx"],"sourcesContent":["'use client';\n\nimport React, { FC, ReactNode } from 'react';\nimport { useAuthUserOrNull } from '@frontegg/react-hooks';\n\nexport interface AuthorizationProps {\n requiredRoles?: string[];\n requiredPermissions?: string[];\n render?: (isAuthorized: boolean) => React.ReactNode | null;\n children?: ReactNode;\n}\n\nconst AuthorizedContent: FC<AuthorizationProps> = (props) => {\n let isAuthorized = true;\n const user = useAuthUserOrNull();\n if (!user?.superUser) {\n if (props.requiredPermissions) {\n if (!user?.permissions || user?.permissions.length === 0) {\n isAuthorized = false;\n }\n\n for (const permission of props.requiredPermissions) {\n if (!user?.permissions?.find(({ key }) => key === permission)) {\n isAuthorized = false;\n }\n }\n }\n\n if (props.requiredRoles) {\n if (!user?.roles || user?.roles.length === 0) {\n isAuthorized = false;\n }\n\n for (const role of props.requiredRoles) {\n if (!user?.roles?.find(({ key }) => key === role)) {\n isAuthorized = false;\n }\n }\n }\n }\n\n if (typeof props.render === 'function') {\n return <>{props.render(isAuthorized)}</>;\n }\n\n return isAuthorized ? <>{props.children}</> : null;\n};\n\nexport default AuthorizedContent;\n"],"mappings":";AAAA,YAAY;;AAAC;AAAA;EAAA;AAAA;AAAA;AAEb;AACA;AAA0D;AAS1D,MAAMA,iBAAyC,GAAIC,KAAK,IAAK;EAC3D,IAAIC,YAAY,GAAG,IAAI;EACvB,MAAMC,IAAI,GAAG,IAAAC,6BAAiB,GAAE;EAChC,IAAI,EAACD,IAAI,YAAJA,IAAI,CAAEE,SAAS,GAAE;IACpB,IAAIJ,KAAK,CAACK,mBAAmB,EAAE;MAC7B,IAAI,EAACH,IAAI,YAAJA,IAAI,CAAEI,WAAW,KAAI,CAAAJ,IAAI,oBAAJA,IAAI,CAAEI,WAAW,CAACC,MAAM,MAAK,CAAC,EAAE;QACxDN,YAAY,GAAG,KAAK;MACtB;MAEA,KAAK,MAAMO,UAAU,IAAIR,KAAK,CAACK,mBAAmB,EAAE;QAAA;QAClD,IAAI,EAACH,IAAI,iCAAJA,IAAI,CAAEI,WAAW,aAAjB,kBAAmBG,IAAI,CAAC,CAAC;UAAEC;QAAI,CAAC,KAAKA,GAAG,KAAKF,UAAU,CAAC,GAAE;UAC7DP,YAAY,GAAG,KAAK;QACtB;MACF;IACF;IAEA,IAAID,KAAK,CAACW,aAAa,EAAE;MACvB,IAAI,EAACT,IAAI,YAAJA,IAAI,CAAEU,KAAK,KAAI,CAAAV,IAAI,oBAAJA,IAAI,CAAEU,KAAK,CAACL,MAAM,MAAK,CAAC,EAAE;QAC5CN,YAAY,GAAG,KAAK;MACtB;MAEA,KAAK,MAAMY,IAAI,IAAIb,KAAK,CAACW,aAAa,EAAE;QAAA;QACtC,IAAI,EAACT,IAAI,2BAAJA,IAAI,CAAEU,KAAK,aAAX,YAAaH,IAAI,CAAC,CAAC;UAAEC;QAAI,CAAC,KAAKA,GAAG,KAAKG,IAAI,CAAC,GAAE;UACjDZ,YAAY,GAAG,KAAK;QACtB;MACF;IACF;EACF;EAEA,IAAI,OAAOD,KAAK,CAACc,MAAM,KAAK,UAAU,EAAE;IACtC,oBAAO;MAAA,UAAGd,KAAK,CAACc,MAAM,CAACb,YAAY;IAAC,EAAI;EAC1C;EAEA,OAAOA,YAAY,gBAAG;IAAA,UAAGD,KAAK,CAACe;EAAQ,EAAI,GAAG,IAAI;AACpD,CAAC;AAAC,eAEahB,iBAAiB;AAAA"}
@@ -1,3 +1,3 @@
1
- import { FC } from 'react';
2
- import { FronteggProviderProps } from '../types';
3
- export declare const FronteggBaseProvider: FC<FronteggProviderProps>;
1
+ import { FC } from 'react';
2
+ import type { FronteggProviderProps } from '../types';
3
+ export declare const FronteggBaseProvider: FC<FronteggProviderProps>;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.FronteggBaseProvider = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _reactHooks = require("@frontegg/react-hooks");
13
+ var _restApi = require("@frontegg/rest-api");
14
+ var _AppContext = _interopRequireDefault(require("./AppContext"));
15
+ var _initializeFronteggApp = _interopRequireDefault(require("../utils/initializeFronteggApp"));
16
+ var _useRequestAuthorizeSSR = _interopRequireDefault(require("./useRequestAuthorizeSSR"));
17
+ var _useOnRedirectTo = _interopRequireDefault(require("../utils/useOnRedirectTo"));
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ const _excluded = ["router", "appName"];
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+ const Connector = _ref => {
23
+ var _props$basename;
24
+ let {
25
+ router,
26
+ appName = 'default'
27
+ } = _ref,
28
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
29
+ const isSSR = typeof window === 'undefined';
30
+ const {
31
+ user,
32
+ session,
33
+ tenants
34
+ } = props;
35
+ const baseName = (_props$basename = props.basename) != null ? _props$basename : '';
36
+ const ssrStoreHolder = (0, _react.useRef)({});
37
+ const storeHolder = isSSR ? ssrStoreHolder.current : undefined;
38
+ const onRedirectTo = (0, _useOnRedirectTo.default)(baseName, router);
39
+ const app = (0, _react.useMemo)(() => (0, _initializeFronteggApp.default)({
40
+ options: (0, _extends2.default)({}, props, {
41
+ basename: baseName
42
+ }),
43
+ onRedirectTo,
44
+ appName,
45
+ storeHolder
46
+ }), [props]);
47
+ _restApi.ContextHolder.setOnRedirectTo(onRedirectTo);
48
+
49
+ // useEffect(() => {
50
+ // if(window.location.pathname == '/account/login') {
51
+ // app.store.dispatch({ type: 'auth/requestAuthorize', payload: true });
52
+ // }
53
+ // }, [app]);
54
+ (0, _useRequestAuthorizeSSR.default)({
55
+ app,
56
+ user,
57
+ tenants,
58
+ session
59
+ });
60
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_AppContext.default.Provider, {
61
+ value: app,
62
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHooks.FronteggStoreProvider, (0, _extends2.default)({}, (0, _extends2.default)({}, props, {
63
+ app
64
+ }), {
65
+ children: props.children
66
+ }))
67
+ });
68
+ };
69
+ const FronteggBaseProvider = props => {
70
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Connector, (0, _extends2.default)({}, props, {
71
+ framework: 'nextjs',
72
+ children: props.children
73
+ }));
74
+ };
75
+ exports.FronteggBaseProvider = FronteggBaseProvider;
76
+ //# sourceMappingURL=FronteggBaseProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FronteggBaseProvider.js","names":["Connector","router","appName","props","isSSR","window","user","session","tenants","baseName","basename","ssrStoreHolder","useRef","storeHolder","current","undefined","onRedirectTo","useOnRedirectTo","app","useMemo","initializeFronteggApp","options","ContextHolder","setOnRedirectTo","useRequestAuthorizeSSR","children","FronteggBaseProvider"],"sources":["../../../../packages/nextjs/src/common/FronteggBaseProvider.tsx"],"sourcesContent":["'use client';\n\nimport React, { FC, useMemo, useRef } from 'react';\nimport { FronteggStoreProvider } from '@frontegg/react-hooks';\nimport { ContextHolder } from '@frontegg/rest-api';\nimport type { FronteggProviderProps } from '../types';\nimport AppContext from './AppContext';\nimport initializeFronteggApp from '../utils/initializeFronteggApp';\nimport useRequestAuthorizeSSR from './useRequestAuthorizeSSR';\nimport useOnRedirectTo from '../utils/useOnRedirectTo';\n\nconst Connector: FC<FronteggProviderProps> = ({ router, appName = 'default', ...props }) => {\n const isSSR = typeof window === 'undefined';\n const { user, session, tenants } = props;\n const baseName = props.basename ?? '';\n const ssrStoreHolder = useRef({});\n const storeHolder = isSSR ? ssrStoreHolder.current : undefined;\n\n const onRedirectTo = useOnRedirectTo(baseName, router);\n\n const app = useMemo(\n () =>\n initializeFronteggApp({\n options: { ...props, basename: baseName },\n onRedirectTo,\n appName,\n storeHolder,\n }),\n [props]\n );\n ContextHolder.setOnRedirectTo(onRedirectTo);\n\n // useEffect(() => {\n // if(window.location.pathname == '/account/login') {\n // app.store.dispatch({ type: 'auth/requestAuthorize', payload: true });\n // }\n // }, [app]);\n useRequestAuthorizeSSR({ app, user, tenants, session });\n return (\n <AppContext.Provider value={app}>\n <FronteggStoreProvider {...({ ...props, app } as any)}>{props.children}</FronteggStoreProvider>\n </AppContext.Provider>\n );\n};\n\nexport const FronteggBaseProvider: FC<FronteggProviderProps> = (props) => {\n return (\n <Connector {...props} framework={'nextjs'}>\n {props.children}\n </Connector>\n );\n};\n"],"mappings":";AAAA,YAAY;;AAAC;AAAA;EAAA;AAAA;AAAA;AAAA;AAAA;AAEb;AACA;AACA;AAEA;AACA;AACA;AACA;AAAuD;AAAA;AAAA;AAAA;AAEvD,MAAMA,SAAoC,GAAG,QAA+C;EAAA;EAAA,IAA9C;MAAEC,MAAM;MAAEC,OAAO,GAAG;IAAoB,CAAC;IAAPC,KAAK;EACnF,MAAMC,KAAK,GAAG,OAAOC,MAAM,KAAK,WAAW;EAC3C,MAAM;IAAEC,IAAI;IAAEC,OAAO;IAAEC;EAAQ,CAAC,GAAGL,KAAK;EACxC,MAAMM,QAAQ,sBAAGN,KAAK,CAACO,QAAQ,8BAAI,EAAE;EACrC,MAAMC,cAAc,GAAG,IAAAC,aAAM,EAAC,CAAC,CAAC,CAAC;EACjC,MAAMC,WAAW,GAAGT,KAAK,GAAGO,cAAc,CAACG,OAAO,GAAGC,SAAS;EAE9D,MAAMC,YAAY,GAAG,IAAAC,wBAAe,EAACR,QAAQ,EAAER,MAAM,CAAC;EAEtD,MAAMiB,GAAG,GAAG,IAAAC,cAAO,EACjB,MACE,IAAAC,8BAAqB,EAAC;IACpBC,OAAO,6BAAOlB,KAAK;MAAEO,QAAQ,EAAED;IAAQ,EAAE;IACzCO,YAAY;IACZd,OAAO;IACPW;EACF,CAAC,CAAC,EACJ,CAACV,KAAK,CAAC,CACR;EACDmB,sBAAa,CAACC,eAAe,CAACP,YAAY,CAAC;;EAE3C;EACA;EACA;EACA;EACA;EACA,IAAAQ,+BAAsB,EAAC;IAAEN,GAAG;IAAEZ,IAAI;IAAEE,OAAO;IAAED;EAAQ,CAAC,CAAC;EACvD,oBACE,qBAAC,mBAAU,CAAC,QAAQ;IAAC,KAAK,EAAEW,GAAI;IAAA,uBAC9B,qBAAC,iCAAqB,wDAAWf,KAAK;MAAEe;IAAG;MAAA,UAAaf,KAAK,CAACsB;IAAQ;EAAyB,EAC3E;AAE1B,CAAC;AAEM,MAAMC,oBAA+C,GAAIvB,KAAK,IAAK;EACxE,oBACE,qBAAC,SAAS,6BAAKA,KAAK;IAAE,SAAS,EAAE,QAAS;IAAA,UACvCA,KAAK,CAACsB;EAAQ,GACL;AAEhB,CAAC;AAAC"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ /// <reference types="node" />
3
+ import { ParsedUrlQuery } from 'querystring';
4
+ interface FronteggRouterBaseProps {
5
+ queryParams?: ParsedUrlQuery;
6
+ pathArr: string[];
7
+ }
8
+ export declare function FronteggRouterBase(props: FronteggRouterBaseProps): JSX.Element;
9
+ export {};
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.FronteggRouterBase = FronteggRouterBase;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _config = _interopRequireDefault(require("../config"));
11
+ var _reduxStore = require("@frontegg/redux-store");
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _reactHooks = require("@frontegg/react-hooks");
14
+ var _constants = require("../utils/common/constants");
15
+ var _AppContext = _interopRequireDefault(require("./AppContext"));
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+ function FronteggRouterBase(props) {
20
+ const {
21
+ queryParams = {},
22
+ pathArr
23
+ } = props;
24
+ const app = (0, _react.useContext)(_AppContext.default);
25
+ const loginWithRedirect = (0, _reactHooks.useLoginWithRedirect)();
26
+ const {
27
+ logout
28
+ } = (0, _reactHooks.useLoginActions)();
29
+ (0, _react.useEffect)(() => {
30
+ if (!app) {
31
+ return;
32
+ }
33
+ if (app.options.hostedLoginBox) {
34
+ const routesObj = (0, _extends2.default)({}, _reduxStore.authInitialState.routes, _config.default.authRoutes);
35
+ const pathname = `/${pathArr.join('/')}`;
36
+ if (pathname === routesObj.loginUrl) {
37
+ if (queryParams.redirectUrl) {
38
+ localStorage.setItem(_constants.FRONTEGG_AFTER_AUTH_REDIRECT_URL, `${window.location.origin}${queryParams.redirectUrl}`);
39
+ }
40
+ loginWithRedirect();
41
+ } else if (pathname === routesObj.logoutUrl) {
42
+ logout(() => window.location.href = window.location.origin);
43
+ }
44
+ }
45
+ }, [app, queryParams, pathArr, loginWithRedirect, logout]);
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {});
47
+ }
48
+ //# sourceMappingURL=FronteggRouterBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FronteggRouterBase.js","names":["FronteggRouterBase","props","queryParams","pathArr","app","useContext","AppContext","loginWithRedirect","useLoginWithRedirect","logout","useLoginActions","useEffect","options","hostedLoginBox","routesObj","authInitialState","routes","config","authRoutes","pathname","join","loginUrl","redirectUrl","localStorage","setItem","FRONTEGG_AFTER_AUTH_REDIRECT_URL","window","location","origin","logoutUrl","href"],"sources":["../../../../packages/nextjs/src/common/FronteggRouterBase.tsx"],"sourcesContent":["'use client';\n\nimport config from '../config';\nimport { authInitialState } from '@frontegg/redux-store';\nimport { useContext, useEffect } from 'react';\nimport { useLoginActions, useLoginWithRedirect } from '@frontegg/react-hooks';\nimport { FRONTEGG_AFTER_AUTH_REDIRECT_URL } from '../utils/common/constants';\nimport AppContext from './AppContext';\nimport React from 'react';\nimport { ParsedUrlQuery } from 'querystring';\n\ninterface FronteggRouterBaseProps {\n queryParams?: ParsedUrlQuery;\n pathArr: string[];\n}\n\nexport function FronteggRouterBase(props: FronteggRouterBaseProps) {\n const { queryParams = {}, pathArr } = props;\n const app = useContext(AppContext);\n const loginWithRedirect = useLoginWithRedirect();\n const { logout } = useLoginActions();\n\n useEffect(() => {\n if (!app) {\n return;\n }\n if (app.options.hostedLoginBox) {\n const routesObj = {\n ...authInitialState.routes,\n ...config.authRoutes,\n };\n\n const pathname = `/${pathArr.join('/')}`;\n if (pathname === routesObj.loginUrl) {\n if (queryParams.redirectUrl) {\n localStorage.setItem(FRONTEGG_AFTER_AUTH_REDIRECT_URL, `${window.location.origin}${queryParams.redirectUrl}`);\n }\n loginWithRedirect();\n } else if (pathname === routesObj.logoutUrl) {\n logout(() => (window.location.href = window.location.origin));\n }\n }\n }, [app, queryParams, pathArr, loginWithRedirect, logout]);\n return <></>;\n}\n"],"mappings":";AAAA,YAAY;;AAAC;AAAA;EAAA;AAAA;AAAA;AAAA;AAEb;AACA;AACA;AACA;AACA;AACA;AAAsC;AAAA;AAAA;AAS/B,SAASA,kBAAkB,CAACC,KAA8B,EAAE;EACjE,MAAM;IAAEC,WAAW,GAAG,CAAC,CAAC;IAAEC;EAAQ,CAAC,GAAGF,KAAK;EAC3C,MAAMG,GAAG,GAAG,IAAAC,iBAAU,EAACC,mBAAU,CAAC;EAClC,MAAMC,iBAAiB,GAAG,IAAAC,gCAAoB,GAAE;EAChD,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,2BAAe,GAAE;EAEpC,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACP,GAAG,EAAE;MACR;IACF;IACA,IAAIA,GAAG,CAACQ,OAAO,CAACC,cAAc,EAAE;MAC9B,MAAMC,SAAS,8BACVC,4BAAgB,CAACC,MAAM,EACvBC,eAAM,CAACC,UAAU,CACrB;MAED,MAAMC,QAAQ,GAAI,IAAGhB,OAAO,CAACiB,IAAI,CAAC,GAAG,CAAE,EAAC;MACxC,IAAID,QAAQ,KAAKL,SAAS,CAACO,QAAQ,EAAE;QACnC,IAAInB,WAAW,CAACoB,WAAW,EAAE;UAC3BC,YAAY,CAACC,OAAO,CAACC,2CAAgC,EAAG,GAAEC,MAAM,CAACC,QAAQ,CAACC,MAAO,GAAE1B,WAAW,CAACoB,WAAY,EAAC,CAAC;QAC/G;QACAf,iBAAiB,EAAE;MACrB,CAAC,MAAM,IAAIY,QAAQ,KAAKL,SAAS,CAACe,SAAS,EAAE;QAC3CpB,MAAM,CAAC,MAAOiB,MAAM,CAACC,QAAQ,CAACG,IAAI,GAAGJ,MAAM,CAACC,QAAQ,CAACC,MAAO,CAAC;MAC/D;IACF;EACF,CAAC,EAAE,CAACxB,GAAG,EAAEF,WAAW,EAAEC,OAAO,EAAEI,iBAAiB,EAAEE,MAAM,CAAC,CAAC;EAC1D,oBAAO,8CAAK;AACd"}
@@ -1,9 +1,3 @@
1
- import { FronteggNextJSSession, FronteggUserTokens, AllUserData } from './types';
2
- export declare function createSessionFromAccessToken(data: any): Promise<[string, any, string] | []>;
3
- export declare function getTokensFromCookie(cookie?: string): Promise<FronteggUserTokens | undefined>;
4
- type UserDataArguments = {
5
- getSession: () => Promise<FronteggNextJSSession | undefined | null>;
6
- reqHeaders: Record<string, string | string[] | undefined>;
7
- };
8
- export declare const getAllUserData: ({ getSession, reqHeaders }: UserDataArguments) => Promise<Partial<AllUserData>>;
9
- export {};
1
+ import type { FronteggUserTokens } from '../types';
2
+ export declare function createSessionFromAccessToken(data: any): Promise<[string, any, string] | []>;
3
+ export declare function getTokensFromCookie(cookie?: string): Promise<FronteggUserTokens | undefined>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createSessionFromAccessToken = createSessionFromAccessToken;
8
+ exports.getTokensFromCookie = getTokensFromCookie;
9
+ var _jwt = _interopRequireDefault(require("../utils/jwt"));
10
+ var _encryption = _interopRequireDefault(require("../utils/encryption"));
11
+ async function createSessionFromAccessToken(data) {
12
+ var _data$accessToken, _data$refreshToken;
13
+ const accessToken = (_data$accessToken = data.accessToken) != null ? _data$accessToken : data.access_token;
14
+ const refreshToken = (_data$refreshToken = data.refreshToken) != null ? _data$refreshToken : data.refresh_token;
15
+ const {
16
+ payload: decodedJwt
17
+ } = await _jwt.default.verify(accessToken);
18
+ decodedJwt.expiresIn = Math.floor((decodedJwt.exp * 1000 - Date.now()) / 1000);
19
+ const tokens = {
20
+ accessToken,
21
+ refreshToken
22
+ };
23
+ const session = await _encryption.default.sealTokens(tokens, decodedJwt.exp);
24
+ return [session, decodedJwt, refreshToken];
25
+ }
26
+ async function getTokensFromCookie(cookie) {
27
+ if (!cookie) {
28
+ return undefined;
29
+ }
30
+ return await _encryption.default.unsealTokens(cookie);
31
+ }
32
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","names":["createSessionFromAccessToken","data","accessToken","access_token","refreshToken","refresh_token","payload","decodedJwt","JwtManager","verify","expiresIn","Math","floor","exp","Date","now","tokens","session","encryptionUtils","sealTokens","getTokensFromCookie","cookie","undefined","unsealTokens"],"sources":["../../../../packages/nextjs/src/common/helpers.ts"],"sourcesContent":["import type { FronteggUserTokens } from '../types';\nimport JwtManager from '../utils/jwt';\nimport encryptionUtils from '../utils/encryption';\n\nexport async function createSessionFromAccessToken(data: any): Promise<[string, any, string] | []> {\n const accessToken = data.accessToken ?? data.access_token;\n const refreshToken = data.refreshToken ?? data.refresh_token;\n const { payload: decodedJwt }: any = await JwtManager.verify(accessToken);\n decodedJwt.expiresIn = Math.floor((decodedJwt.exp * 1000 - Date.now()) / 1000);\n\n const tokens = { accessToken, refreshToken };\n const session = await encryptionUtils.sealTokens(tokens, decodedJwt.exp);\n return [session, decodedJwt, refreshToken];\n}\n\nexport async function getTokensFromCookie(cookie?: string): Promise<FronteggUserTokens | undefined> {\n if (!cookie) {\n return undefined;\n }\n return await encryptionUtils.unsealTokens(cookie);\n}\n"],"mappings":";;;;;;;;AACA;AACA;AAEO,eAAeA,4BAA4B,CAACC,IAAS,EAAuC;EAAA;EACjG,MAAMC,WAAW,wBAAGD,IAAI,CAACC,WAAW,gCAAID,IAAI,CAACE,YAAY;EACzD,MAAMC,YAAY,yBAAGH,IAAI,CAACG,YAAY,iCAAIH,IAAI,CAACI,aAAa;EAC5D,MAAM;IAAEC,OAAO,EAAEC;EAAgB,CAAC,GAAG,MAAMC,YAAU,CAACC,MAAM,CAACP,WAAW,CAAC;EACzEK,UAAU,CAACG,SAAS,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACL,UAAU,CAACM,GAAG,GAAG,IAAI,GAAGC,IAAI,CAACC,GAAG,EAAE,IAAI,IAAI,CAAC;EAE9E,MAAMC,MAAM,GAAG;IAAEd,WAAW;IAAEE;EAAa,CAAC;EAC5C,MAAMa,OAAO,GAAG,MAAMC,mBAAe,CAACC,UAAU,CAACH,MAAM,EAAET,UAAU,CAACM,GAAG,CAAC;EACxE,OAAO,CAACI,OAAO,EAAEV,UAAU,EAAEH,YAAY,CAAC;AAC5C;AAEO,eAAegB,mBAAmB,CAACC,MAAe,EAA2C;EAClG,IAAI,CAACA,MAAM,EAAE;IACX,OAAOC,SAAS;EAClB;EACA,OAAO,MAAMJ,mBAAe,CAACK,YAAY,CAACF,MAAM,CAAC;AACnD"}
package/common/index.d.ts CHANGED
@@ -1,6 +1,4 @@
1
- export { default as FronteggConfig } from './FronteggConfig';
2
- export * from './types';
3
- export * from './helpers';
4
- export * from './createGetSession';
5
- export * from './consts';
6
- export { default as CookieManager } from './CookieManager';
1
+ export * from './helpers';
2
+ export { default as AppContext } from './AppContext';
3
+ export { FronteggBaseProvider } from './FronteggBaseProvider';
4
+ export { default as AuthorizedContent } from './AuthorizedContent';
package/common/index.js CHANGED
@@ -1,10 +1,45 @@
1
- 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-dac37998.js';
3
- export { c as createGetSession } from '../createGetSession-2e1e4506.js';
4
- import 'tslib';
5
- import 'cookie';
6
- import 'jose';
7
- import 'iron-session';
8
- import '../api-25516652.js';
9
- import '@frontegg/rest-api';
10
- //# sourceMappingURL=index.js.map
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ var _exportNames = {
8
+ AppContext: true,
9
+ FronteggBaseProvider: true,
10
+ AuthorizedContent: true
11
+ };
12
+ Object.defineProperty(exports, "AppContext", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _AppContext.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "AuthorizedContent", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _AuthorizedContent.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "FronteggBaseProvider", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _FronteggBaseProvider.FronteggBaseProvider;
28
+ }
29
+ });
30
+ var _helpers = require("./helpers");
31
+ Object.keys(_helpers).forEach(function (key) {
32
+ if (key === "default" || key === "__esModule") return;
33
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
34
+ if (key in exports && exports[key] === _helpers[key]) return;
35
+ Object.defineProperty(exports, key, {
36
+ enumerable: true,
37
+ get: function () {
38
+ return _helpers[key];
39
+ }
40
+ });
41
+ });
42
+ var _AppContext = _interopRequireDefault(require("./AppContext"));
43
+ var _FronteggBaseProvider = require("./FronteggBaseProvider");
44
+ var _AuthorizedContent = _interopRequireDefault(require("./AuthorizedContent"));
45
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/common/index.ts"],"sourcesContent":["export * from './helpers';\nexport { default as AppContext } from './AppContext';\nexport { FronteggBaseProvider } from './FronteggBaseProvider';\nexport { default as AuthorizedContent } from './AuthorizedContent';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AACA;AACA"}
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -0,0 +1,5 @@
1
+ import { FronteggApp } from '@frontegg/js';
2
+ import { AllUserData } from '../types';
3
+ export default function useRequestAuthorizeSSR({ app, user, tenants, session }: {
4
+ app: FronteggApp;
5
+ } & AllUserData): void;