@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
@@ -0,0 +1,84 @@
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.FronteggProviderNoSSR = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+ var _js = require("@frontegg/js");
12
+ var _reactHooks = require("@frontegg/react-hooks");
13
+ var _restApi = require("@frontegg/rest-api");
14
+ var _router = require("next/router");
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _AppContext = _interopRequireDefault(require("../common/AppContext"));
17
+ var _useOnRedirectTo = _interopRequireDefault(require("../utils/useOnRedirectTo"));
18
+ var _ExpireInListener2 = _interopRequireDefault(require("./ExpireInListener"));
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ var _ExpireInListener;
21
+ const _excluded = ["router", "appName", "hostedLoginBox", "customLoginBox"];
22
+ 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); }
23
+ 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; }
24
+ const Connector = _props => {
25
+ var _props$basename;
26
+ const {
27
+ router,
28
+ appName,
29
+ hostedLoginBox
30
+ } = _props,
31
+ props = (0, _objectWithoutPropertiesLoose2.default)(_props, _excluded);
32
+ const baseName = (_props$basename = props.basename) != null ? _props$basename : router.basePath;
33
+ const onRedirectTo = (0, _useOnRedirectTo.default)(baseName, router);
34
+ const app = (0, _react.useMemo)(() => {
35
+ let createdApp;
36
+ try {
37
+ createdApp = _js.AppHolder.getInstance(appName != null ? appName : 'default');
38
+ } catch (e) {
39
+ var _props$basename2;
40
+ createdApp = (0, _js.initialize)((0, _extends2.default)({}, props, {
41
+ hostedLoginBox: hostedLoginBox != null ? hostedLoginBox : false,
42
+ basename: (_props$basename2 = props.basename) != null ? _props$basename2 : baseName,
43
+ authOptions: (0, _extends2.default)({}, props.authOptions, {
44
+ onRedirectTo
45
+ }),
46
+ contextOptions: (0, _extends2.default)({
47
+ requestCredentials: 'include'
48
+ }, props.contextOptions),
49
+ onRedirectTo
50
+ }), appName != null ? appName : 'default');
51
+ }
52
+ return createdApp;
53
+ }, [appName, props, hostedLoginBox, baseName, onRedirectTo]);
54
+ _restApi.ContextHolder.setOnRedirectTo(onRedirectTo);
55
+ (0, _react.useEffect)(() => {
56
+ app.store.dispatch({
57
+ type: 'auth/requestAuthorize',
58
+ payload: true
59
+ });
60
+ }, [app]);
61
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_AppContext.default.Provider, {
62
+ value: app,
63
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHooks.FronteggStoreProvider, (0, _extends2.default)({}, (0, _extends2.default)({}, props, {
64
+ app
65
+ }), {
66
+ children: props.children
67
+ }))
68
+ });
69
+ };
70
+ const FronteggNextJSProvider = props => {
71
+ const router = (0, _router.useRouter)();
72
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Connector, (0, _extends2.default)({}, props, {
73
+ router: router,
74
+ children: [_ExpireInListener || (_ExpireInListener = /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpireInListener2.default, {})), props.children]
75
+ }));
76
+ };
77
+ const FronteggProviderNoSSR = props => {
78
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(FronteggNextJSProvider, (0, _extends2.default)({}, props, {
79
+ framework: 'nextjs',
80
+ children: props.children
81
+ }));
82
+ };
83
+ exports.FronteggProviderNoSSR = FronteggProviderNoSSR;
84
+ //# sourceMappingURL=FronteggProviderNoSSR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FronteggProviderNoSSR.js","names":["Connector","_props","router","appName","hostedLoginBox","props","baseName","basename","basePath","onRedirectTo","useOnRedirectTo","app","useMemo","createdApp","AppHolder","getInstance","e","initialize","authOptions","contextOptions","requestCredentials","ContextHolder","setOnRedirectTo","useEffect","store","dispatch","type","payload","children","FronteggNextJSProvider","useRouter","FronteggProviderNoSSR"],"sources":["../../../../packages/nextjs/src/no-ssr/FronteggProviderNoSSR.tsx"],"sourcesContent":["'use client';\n\nimport { AppHolder, initialize } from '@frontegg/js';\nimport { FronteggStoreProvider } from '@frontegg/react-hooks';\nimport { ContextHolder } from '@frontegg/rest-api';\nimport { FronteggAppOptions } from '@frontegg/types';\nimport { NextRouter, useRouter } from 'next/router';\nimport React, { FC, PropsWithChildren, useEffect, useMemo } from 'react';\nimport AppContext from '../common/AppContext';\nimport useOnRedirectTo from '../utils/useOnRedirectTo';\nimport ExpireInListener from './ExpireInListener';\n\nexport type FronteggProviderNoSSRProps = PropsWithChildren<FronteggAppOptions>;\n\ntype ConnectorProps = PropsWithChildren<FronteggAppOptions> & {\n router: NextRouter;\n appName?: string;\n};\n\nconst Connector: FC<ConnectorProps> = (_props) => {\n const { router, appName, hostedLoginBox, customLoginBox, ...props } = _props;\n const baseName = props.basename ?? router.basePath;\n\n const onRedirectTo = useOnRedirectTo(baseName, router);\n\n const app = useMemo(() => {\n let createdApp;\n try {\n createdApp = AppHolder.getInstance(appName ?? 'default');\n } catch (e) {\n createdApp = initialize(\n {\n ...props,\n hostedLoginBox: hostedLoginBox ?? false,\n basename: props.basename ?? baseName,\n authOptions: {\n ...props.authOptions,\n onRedirectTo,\n },\n contextOptions: {\n requestCredentials: 'include',\n ...props.contextOptions,\n },\n onRedirectTo,\n },\n appName ?? 'default'\n );\n }\n return createdApp;\n }, [appName, props, hostedLoginBox, baseName, onRedirectTo]);\n ContextHolder.setOnRedirectTo(onRedirectTo);\n\n useEffect(() => {\n app.store.dispatch({ type: 'auth/requestAuthorize', payload: true });\n }, [app]);\n\n return (\n <AppContext.Provider value={app}>\n <FronteggStoreProvider {...({ ...props, app } as any)}>{props.children}</FronteggStoreProvider>\n </AppContext.Provider>\n );\n};\n\nconst FronteggNextJSProvider: FC<FronteggProviderNoSSRProps> = (props) => {\n const router = useRouter();\n\n return (\n <Connector {...props} router={router}>\n <ExpireInListener />\n {props.children}\n </Connector>\n );\n};\n\nexport const FronteggProviderNoSSR: FC<FronteggProviderNoSSRProps> = (props) => {\n return (\n <FronteggNextJSProvider {...props} framework={'nextjs'}>\n {props.children}\n </FronteggNextJSProvider>\n );\n};\n"],"mappings":";AAAA,YAAY;;AAAC;AAAA;EAAA;AAAA;AAAA;AAAA;AAAA;AAEb;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAkD;AAAA;AAAA;AAAA;AAAA;AASlD,MAAMA,SAA6B,GAAIC,MAAM,IAAK;EAAA;EAChD,MAAM;MAAEC,MAAM;MAAEC,OAAO;MAAEC;IAAyC,CAAC,GAAGH,MAAM;IAAhBI,KAAK,+CAAKJ,MAAM;EAC5E,MAAMK,QAAQ,sBAAGD,KAAK,CAACE,QAAQ,8BAAIL,MAAM,CAACM,QAAQ;EAElD,MAAMC,YAAY,GAAG,IAAAC,wBAAe,EAACJ,QAAQ,EAAEJ,MAAM,CAAC;EAEtD,MAAMS,GAAG,GAAG,IAAAC,cAAO,EAAC,MAAM;IACxB,IAAIC,UAAU;IACd,IAAI;MACFA,UAAU,GAAGC,aAAS,CAACC,WAAW,CAACZ,OAAO,WAAPA,OAAO,GAAI,SAAS,CAAC;IAC1D,CAAC,CAAC,OAAOa,CAAC,EAAE;MAAA;MACVH,UAAU,GAAG,IAAAI,cAAU,6BAEhBZ,KAAK;QACRD,cAAc,EAAEA,cAAc,WAAdA,cAAc,GAAI,KAAK;QACvCG,QAAQ,sBAAEF,KAAK,CAACE,QAAQ,+BAAID,QAAQ;QACpCY,WAAW,6BACNb,KAAK,CAACa,WAAW;UACpBT;QAAY,EACb;QACDU,cAAc;UACZC,kBAAkB,EAAE;QAAS,GAC1Bf,KAAK,CAACc,cAAc,CACxB;QACDV;MAAY,IAEdN,OAAO,WAAPA,OAAO,GAAI,SAAS,CACrB;IACH;IACA,OAAOU,UAAU;EACnB,CAAC,EAAE,CAACV,OAAO,EAAEE,KAAK,EAAED,cAAc,EAAEE,QAAQ,EAAEG,YAAY,CAAC,CAAC;EAC5DY,sBAAa,CAACC,eAAe,CAACb,YAAY,CAAC;EAE3C,IAAAc,gBAAS,EAAC,MAAM;IACdZ,GAAG,CAACa,KAAK,CAACC,QAAQ,CAAC;MAAEC,IAAI,EAAE,uBAAuB;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;EACtE,CAAC,EAAE,CAAChB,GAAG,CAAC,CAAC;EAET,oBACE,qBAAC,mBAAU,CAAC,QAAQ;IAAC,KAAK,EAAEA,GAAI;IAAA,uBAC9B,qBAAC,iCAAqB,wDAAWN,KAAK;MAAEM;IAAG;MAAA,UAAaN,KAAK,CAACuB;IAAQ;EAAyB,EAC3E;AAE1B,CAAC;AAED,MAAMC,sBAAsD,GAAIxB,KAAK,IAAK;EACxE,MAAMH,MAAM,GAAG,IAAA4B,iBAAS,GAAE;EAE1B,oBACE,sBAAC,SAAS,6BAAKzB,KAAK;IAAE,MAAM,EAAEH,MAAO;IAAA,kEACnC,qBAAC,0BAAgB,KAAG,GACnBG,KAAK,CAACuB,QAAQ;EAAA,GACL;AAEhB,CAAC;AAEM,MAAMG,qBAAqD,GAAI1B,KAAK,IAAK;EAC9E,oBACE,qBAAC,sBAAsB,6BAAKA,KAAK;IAAE,SAAS,EAAE,QAAS;IAAA,UACpDA,KAAK,CAACuB;EAAQ,GACQ;AAE7B,CAAC;AAAC"}
@@ -0,0 +1,2 @@
1
+ export { FronteggProviderNoSSR } from './FronteggProviderNoSSR';
2
+ export type { FronteggProviderNoSSRProps } from './FronteggProviderNoSSR';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "FronteggProviderNoSSR", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _FronteggProviderNoSSR.FronteggProviderNoSSR;
10
+ }
11
+ });
12
+ var _FronteggProviderNoSSR = require("./FronteggProviderNoSSR");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/no-ssr/index.ts"],"sourcesContent":["export { FronteggProviderNoSSR } from './FronteggProviderNoSSR';\nexport type { FronteggProviderNoSSRProps } from './FronteggProviderNoSSR';\n"],"mappings":";;;;;;;;;;;AAAA"}
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
package/package.json CHANGED
@@ -1,24 +1,23 @@
1
1
  {
2
2
  "name": "@frontegg/nextjs",
3
3
  "libName": "FronteggNextJs",
4
- "version": "6.7.20",
4
+ "version": "6.7.21-alpha.4441971157",
5
5
  "author": "Frontegg LTD",
6
6
  "license": "MIT",
7
- "types": "dist/index.d.ts",
7
+ "main": "./index.js",
8
+ "types": "./index.d.ts",
8
9
  "dependencies": {
9
10
  "@frontegg/js": "6.80.0",
10
11
  "@frontegg/react-hooks": "6.80.0",
11
- "@types/http-proxy": "^1.17.9",
12
- "cookie": "^0.5.0",
13
12
  "http-proxy": "^1.18.1",
14
13
  "iron-session": "^6.3.1",
15
- "jose": "^4.9.2"
14
+ "jose": "^4.12.2"
16
15
  },
17
16
  "peerDependencies": {
18
17
  "next": ">10.0.0",
19
18
  "react": ">16.9.0",
20
19
  "react-dom": ">16.9.0"
21
20
  },
22
- "main": "index.js",
23
- "sideEffects": false
21
+ "private": false,
22
+ "module": "./index.js"
24
23
  }
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { FronteggProviderProps } from '../../types';
3
+ declare const FronteggPagesProvider: FC<Omit<FronteggProviderProps, 'router'>>;
4
+ export default FronteggPagesProvider;
@@ -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.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
+ var _router = require("next/router");
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _common = require("../../common");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ const _excluded = ["children", "basename"];
15
+ const FronteggPagesProvider = _ref => {
16
+ let {
17
+ children,
18
+ basename
19
+ } = _ref,
20
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
21
+ const router = (0, _router.useRouter)();
22
+ const baseName = basename != null ? basename : router.basePath;
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_common.FronteggBaseProvider, (0, _extends2.default)({
24
+ router: router,
25
+ basename: baseName
26
+ }, props, {
27
+ children: children
28
+ }));
29
+ };
30
+ var _default = FronteggPagesProvider;
31
+ exports.default = _default;
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["FronteggPagesProvider","children","basename","props","router","useRouter","baseName","basePath"],"sources":["../../../../../packages/nextjs/src/pages/FronteggPagesProvider/index.tsx"],"sourcesContent":["import { useRouter } from 'next/router';\nimport React, { FC } from 'react';\nimport { FronteggBaseProvider } from '../../common';\nimport { FronteggProviderProps } from '../../types';\n\nconst FronteggPagesProvider: FC<Omit<FronteggProviderProps, 'router'>> = ({ children, basename, ...props }) => {\n const router = useRouter();\n const baseName = basename ?? router.basePath;\n\n return (\n <FronteggBaseProvider router={router} basename={baseName} {...props}>\n {children}\n </FronteggBaseProvider>\n );\n};\n\nexport default FronteggPagesProvider;\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AAAoD;AAAA;AAGpD,MAAMA,qBAAgE,GAAG,QAAsC;EAAA,IAArC;MAAEC,QAAQ;MAAEC;IAAmB,CAAC;IAAPC,KAAK;EACtG,MAAMC,MAAM,GAAG,IAAAC,iBAAS,GAAE;EAC1B,MAAMC,QAAQ,GAAGJ,QAAQ,WAARA,QAAQ,GAAIE,MAAM,CAACG,QAAQ;EAE5C,oBACE,qBAAC,4BAAoB;IAAC,MAAM,EAAEH,MAAO;IAAC,QAAQ,EAAEE;EAAS,GAAKH,KAAK;IAAA,UAChEF;EAAQ,GACY;AAE3B,CAAC;AAAC,eAEaD,qBAAqB;AAAA"}
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -1,5 +1,6 @@
1
- export declare function FronteggRouter(): string;
2
- export declare function FronteggRouterProps(context: any): {
3
- notFound: boolean;
4
- props: {};
5
- };
1
+ /// <reference types="react" />
2
+ export declare function FronteggRouter(): JSX.Element;
3
+ export declare function FronteggRouterProps(context: any): {
4
+ notFound: boolean;
5
+ props: {};
6
+ };
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.FronteggRouter = FronteggRouter;
8
+ exports.FronteggRouterProps = FronteggRouterProps;
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _url = _interopRequireDefault(require("url"));
12
+ var _router = require("next/router");
13
+ var _routing = require("../../utils/routing");
14
+ var _FronteggRouterBase = require("../../common/FronteggRouterBase");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ const _excluded = ["frontegg-router"];
17
+ function FronteggRouter() {
18
+ const {
19
+ query
20
+ } = (0, _router.useRouter)();
21
+ const _ref = query,
22
+ {
23
+ 'frontegg-router': pathArr
24
+ } = _ref,
25
+ queryParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
26
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FronteggRouterBase.FronteggRouterBase, {
27
+ pathArr: pathArr,
28
+ queryParams: queryParams
29
+ });
30
+ }
31
+ function FronteggRouterProps(context) {
32
+ var _context$resolvedUrl;
33
+ let {
34
+ pathname
35
+ } = _url.default.parse((_context$resolvedUrl = context.resolvedUrl) != null ? _context$resolvedUrl : context.req.url, true);
36
+ if (!pathname || pathname.startsWith('/_next/data')) {
37
+ const query = context.req.query[Object.keys(context.req.query)[0]];
38
+ pathname = `/${Array.isArray(query) ? query.join('/') : query}`;
39
+ }
40
+ const notFound = !(0, _routing.isAuthRoute)(pathname);
41
+ return {
42
+ notFound,
43
+ props: {}
44
+ };
45
+ }
46
+ //# sourceMappingURL=FronteggRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FronteggRouter.js","names":["FronteggRouter","query","useRouter","pathArr","queryParams","FronteggRouterProps","context","pathname","URL","parse","resolvedUrl","req","url","startsWith","Object","keys","Array","isArray","join","notFound","isAuthRoute","props"],"sources":["../../../../../packages/nextjs/src/pages/FronteggRouter/FronteggRouter.tsx"],"sourcesContent":["import React from 'react';\nimport URL from 'url';\nimport { useRouter } from 'next/router';\nimport { isAuthRoute } from '../../utils/routing';\nimport { FronteggRouterBase } from '../../common/FronteggRouterBase';\n\nexport function FronteggRouter() {\n const { query } = useRouter();\n const { 'frontegg-router': pathArr, ...queryParams } = query as any;\n\n return <FronteggRouterBase pathArr={pathArr} queryParams={queryParams} />;\n}\n\nexport function FronteggRouterProps(context: any) {\n let { pathname } = URL.parse(context.resolvedUrl ?? context.req.url, true);\n if (!pathname || pathname.startsWith('/_next/data')) {\n const query = context.req.query[Object.keys(context.req.query)[0]];\n pathname = `/${Array.isArray(query) ? query.join('/') : query}`;\n }\n\n const notFound = !isAuthRoute(pathname);\n\n return {\n notFound,\n props: {},\n };\n}\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AAAqE;AAAA;AAE9D,SAASA,cAAc,GAAG;EAC/B,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,iBAAS,GAAE;EAC7B,aAAuDD,KAAK;IAAtD;MAAE,iBAAiB,EAAEE;IAAwB,CAAC;IAAbC,WAAW;EAElD,oBAAO,qBAAC,sCAAkB;IAAC,OAAO,EAAED,OAAQ;IAAC,WAAW,EAAEC;EAAY,EAAG;AAC3E;AAEO,SAASC,mBAAmB,CAACC,OAAY,EAAE;EAAA;EAChD,IAAI;IAAEC;EAAS,CAAC,GAAGC,YAAG,CAACC,KAAK,yBAACH,OAAO,CAACI,WAAW,mCAAIJ,OAAO,CAACK,GAAG,CAACC,GAAG,EAAE,IAAI,CAAC;EAC1E,IAAI,CAACL,QAAQ,IAAIA,QAAQ,CAACM,UAAU,CAAC,aAAa,CAAC,EAAE;IACnD,MAAMZ,KAAK,GAAGK,OAAO,CAACK,GAAG,CAACV,KAAK,CAACa,MAAM,CAACC,IAAI,CAACT,OAAO,CAACK,GAAG,CAACV,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClEM,QAAQ,GAAI,IAAGS,KAAK,CAACC,OAAO,CAAChB,KAAK,CAAC,GAAGA,KAAK,CAACiB,IAAI,CAAC,GAAG,CAAC,GAAGjB,KAAM,EAAC;EACjE;EAEA,MAAMkB,QAAQ,GAAG,CAAC,IAAAC,oBAAW,EAACb,QAAQ,CAAC;EAEvC,OAAO;IACLY,QAAQ;IACRE,KAAK,EAAE,CAAC;EACV,CAAC;AACH"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * {@link FronteggRouter} is a React functional component that manages Frontegg's application routing logic.
3
+ * It uses the AppContext and useRouter hooks to retrieve the current application context and router instance.
4
+ * When the component is mounted, checks if the pathname is Frontegg's auth routes.
5
+ * If the pathname is the login URL, and hosted login enabled it will redirect the user to the hostedLogin domain.
6
+ * If the pathname is the logout URL, it invokes the logout function and redirects the user to the logout route.
7
+ *
8
+ * Note that this function is intended to be used in conjunction with the Next.js pages architecture,
9
+ * as it relies on the useRouter hook, which is specific to Next.js. So it should only be used in a Next.js environment,
10
+ * and only in cases where the Frontegg hosted login box is being used.
11
+ *
12
+ * Next.js works with pages (Next.js 12).
13
+ * For Next.js 12: create file under ./pages/[...frontegg-router].tsx.
14
+ *
15
+ * For Next.js 13+ with app directories feature, import from `@frontegg/nextjs/client`
16
+ *
17
+ * and paste the snippet below:
18
+ *
19
+ * ```typescript
20
+ * import { FronteggRouter, FronteggRouterProps } from '@frontegg/nextjs/pages';
21
+ *
22
+ * export const getServerSideProps = FronteggRouterProps;
23
+ * export default FronteggRouter;
24
+ * ```
25
+ */
26
+ export { FronteggRouter, FronteggRouterProps } from './FronteggRouter';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "FronteggRouter", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _FronteggRouter.FronteggRouter;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "FronteggRouterProps", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _FronteggRouter.FronteggRouterProps;
16
+ }
17
+ });
18
+ var _FronteggRouter = require("./FronteggRouter");
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../packages/nextjs/src/pages/FronteggRouter/index.ts"],"sourcesContent":["/**\n * {@link FronteggRouter} is a React functional component that manages Frontegg's application routing logic.\n * It uses the AppContext and useRouter hooks to retrieve the current application context and router instance.\n * When the component is mounted, checks if the pathname is Frontegg's auth routes.\n * If the pathname is the login URL, and hosted login enabled it will redirect the user to the hostedLogin domain.\n * If the pathname is the logout URL, it invokes the logout function and redirects the user to the logout route.\n *\n * Note that this function is intended to be used in conjunction with the Next.js pages architecture,\n * as it relies on the useRouter hook, which is specific to Next.js. So it should only be used in a Next.js environment,\n * and only in cases where the Frontegg hosted login box is being used.\n *\n * Next.js works with pages (Next.js 12).\n * For Next.js 12: create file under ./pages/[...frontegg-router].tsx.\n *\n * For Next.js 13+ with app directories feature, import from `@frontegg/nextjs/client`\n *\n * and paste the snippet below:\n *\n * ```typescript\n * import { FronteggRouter, FronteggRouterProps } from '@frontegg/nextjs/pages';\n *\n * export const getServerSideProps = FronteggRouterProps;\n * export default FronteggRouter;\n * ```\n */\nexport { FronteggRouter, FronteggRouterProps } from './FronteggRouter';\n"],"mappings":";;;;;;;;;;;;;;;;;AAyBA"}
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -1,10 +1,10 @@
1
- /// <reference types="node" />
2
- import { GetServerSidePropsContext, GetServerSidePropsResult } from 'next';
3
- import { ParsedUrlQuery } from 'querystring';
4
- import type { FronteggNextJSSession, RequestType } from './common';
5
- export declare const getSession: (req: RequestType) => Promise<FronteggNextJSSession | undefined>;
6
- export declare function withSSRSession<P extends {
7
- [key: string]: any;
8
- } = {
9
- [key: string]: any;
10
- }, Q extends ParsedUrlQuery = ParsedUrlQuery>(handler: (context: GetServerSidePropsContext<Q>, session: FronteggNextJSSession) => GetServerSidePropsResult<P> | Promise<GetServerSidePropsResult<P>>): (context: GetServerSidePropsContext<Q>) => Promise<GetServerSidePropsResult<P>>;
1
+ /// <reference types="node" />
2
+ import type { GetServerSidePropsContext, GetServerSidePropsResult } from 'next';
3
+ import type { ParsedUrlQuery } from 'querystring';
4
+ import type { FronteggNextJSSession, RequestType } from '../types';
5
+ export declare const getSession: (req: RequestType) => Promise<FronteggNextJSSession | undefined>;
6
+ export declare function withSSRSession<P extends {
7
+ [key: string]: any;
8
+ } = {
9
+ [key: string]: any;
10
+ }, Q extends ParsedUrlQuery = ParsedUrlQuery>(handler: (context: GetServerSidePropsContext<Q>, session: FronteggNextJSSession) => GetServerSidePropsResult<P> | Promise<GetServerSidePropsResult<P>>): (context: GetServerSidePropsContext<Q>) => Promise<GetServerSidePropsResult<P>>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getSession = void 0;
8
+ exports.withSSRSession = withSSRSession;
9
+ var _reduxStore = require("@frontegg/redux-store");
10
+ var _config = _interopRequireDefault(require("../config"));
11
+ var _cookies = _interopRequireDefault(require("../utils/cookies"));
12
+ var _createSession = _interopRequireDefault(require("../utils/createSession"));
13
+ var _encryption = _interopRequireDefault(require("../utils/encryption"));
14
+ const getSession = req => {
15
+ const cookies = _cookies.default.getSessionCookieFromRequest(req);
16
+ return (0, _createSession.default)(cookies, _encryption.default);
17
+ };
18
+ exports.getSession = getSession;
19
+ function withSSRSession(handler) {
20
+ return async context => {
21
+ const session = await getSession(context.req);
22
+ if (session) {
23
+ return handler(context, session);
24
+ } else {
25
+ var _config$authRoutes$lo, _context$resolvedUrl;
26
+ let loginUrl = (_config$authRoutes$lo = _config.default.authRoutes.loginUrl) != null ? _config$authRoutes$lo : _reduxStore.authInitialState.routes.loginUrl;
27
+ if (!loginUrl.startsWith('/')) {
28
+ loginUrl = `/${loginUrl}`;
29
+ }
30
+ return {
31
+ redirect: {
32
+ permanent: false,
33
+ destination: `${loginUrl}?redirectUrl=${encodeURIComponent((_context$resolvedUrl = context.resolvedUrl) != null ? _context$resolvedUrl : context.req.url)}`
34
+ },
35
+ props: {}
36
+ };
37
+ }
38
+ };
39
+ }
40
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","names":["getSession","req","cookies","CookieManager","getSessionCookieFromRequest","createSession","encryption","withSSRSession","handler","context","session","loginUrl","config","authRoutes","authInitialState","routes","startsWith","redirect","permanent","destination","encodeURIComponent","resolvedUrl","url","props"],"sources":["../../../../packages/nextjs/src/pages/helpers.ts"],"sourcesContent":["import { authInitialState } from '@frontegg/redux-store';\nimport type { GetServerSidePropsContext, GetServerSidePropsResult } from 'next';\nimport type { ParsedUrlQuery } from 'querystring';\nimport type { FronteggNextJSSession, RequestType } from '../types';\nimport config from '../config';\nimport CookieManager from '../utils/cookies';\nimport createSession from '../utils/createSession';\nimport encryption from '../utils/encryption';\n\nexport const getSession = (req: RequestType) => {\n const cookies = CookieManager.getSessionCookieFromRequest(req);\n return createSession(cookies, encryption);\n};\n\nexport function withSSRSession<\n P extends { [key: string]: any } = { [key: string]: any },\n Q extends ParsedUrlQuery = ParsedUrlQuery\n>(\n handler: (\n context: GetServerSidePropsContext<Q>,\n session: FronteggNextJSSession\n ) => GetServerSidePropsResult<P> | Promise<GetServerSidePropsResult<P>>\n) {\n return async (context: GetServerSidePropsContext<Q>): Promise<GetServerSidePropsResult<P>> => {\n const session = await getSession(context.req);\n if (session) {\n return handler(context, session);\n } else {\n let loginUrl = config.authRoutes.loginUrl ?? authInitialState.routes.loginUrl;\n\n if (!loginUrl.startsWith('/')) {\n loginUrl = `/${loginUrl}`;\n }\n return {\n redirect: {\n permanent: false,\n destination: `${loginUrl}?redirectUrl=${encodeURIComponent(context.resolvedUrl ?? context.req.url)}`,\n },\n props: {},\n } as GetServerSidePropsResult<P>;\n }\n };\n}\n"],"mappings":";;;;;;;;AAAA;AAIA;AACA;AACA;AACA;AAEO,MAAMA,UAAU,GAAIC,GAAgB,IAAK;EAC9C,MAAMC,OAAO,GAAGC,gBAAa,CAACC,2BAA2B,CAACH,GAAG,CAAC;EAC9D,OAAO,IAAAI,sBAAa,EAACH,OAAO,EAAEI,mBAAU,CAAC;AAC3C,CAAC;AAAC;AAEK,SAASC,cAAc,CAI5BC,OAGuE,EACvE;EACA,OAAO,MAAOC,OAAqC,IAA2C;IAC5F,MAAMC,OAAO,GAAG,MAAMV,UAAU,CAACS,OAAO,CAACR,GAAG,CAAC;IAC7C,IAAIS,OAAO,EAAE;MACX,OAAOF,OAAO,CAACC,OAAO,EAAEC,OAAO,CAAC;IAClC,CAAC,MAAM;MAAA;MACL,IAAIC,QAAQ,4BAAGC,eAAM,CAACC,UAAU,CAACF,QAAQ,oCAAIG,4BAAgB,CAACC,MAAM,CAACJ,QAAQ;MAE7E,IAAI,CAACA,QAAQ,CAACK,UAAU,CAAC,GAAG,CAAC,EAAE;QAC7BL,QAAQ,GAAI,IAAGA,QAAS,EAAC;MAC3B;MACA,OAAO;QACLM,QAAQ,EAAE;UACRC,SAAS,EAAE,KAAK;UAChBC,WAAW,EAAG,GAAER,QAAS,gBAAeS,kBAAkB,yBAACX,OAAO,CAACY,WAAW,mCAAIZ,OAAO,CAACR,GAAG,CAACqB,GAAG,CAAE;QACrG,CAAC;QACDC,KAAK,EAAE,CAAC;MACV,CAAC;IACH;EACF,CAAC;AACH"}
@@ -0,0 +1,3 @@
1
+ export * from './FronteggRouter';
2
+ export * from './withFronteggApp';
3
+ export { getSession, withSSRSession } from './helpers';
package/pages/index.js ADDED
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ getSession: true,
8
+ withSSRSession: true
9
+ };
10
+ Object.defineProperty(exports, "getSession", {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _helpers.getSession;
14
+ }
15
+ });
16
+ Object.defineProperty(exports, "withSSRSession", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return _helpers.withSSRSession;
20
+ }
21
+ });
22
+ var _FronteggRouter = require("./FronteggRouter");
23
+ Object.keys(_FronteggRouter).forEach(function (key) {
24
+ if (key === "default" || key === "__esModule") return;
25
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
26
+ if (key in exports && exports[key] === _FronteggRouter[key]) return;
27
+ Object.defineProperty(exports, key, {
28
+ enumerable: true,
29
+ get: function () {
30
+ return _FronteggRouter[key];
31
+ }
32
+ });
33
+ });
34
+ var _withFronteggApp = require("./withFronteggApp");
35
+ Object.keys(_withFronteggApp).forEach(function (key) {
36
+ if (key === "default" || key === "__esModule") return;
37
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
38
+ if (key in exports && exports[key] === _withFronteggApp[key]) return;
39
+ Object.defineProperty(exports, key, {
40
+ enumerable: true,
41
+ get: function () {
42
+ return _withFronteggApp[key];
43
+ }
44
+ });
45
+ });
46
+ var _helpers = require("./helpers");
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/pages/index.ts"],"sourcesContent":["export * from './FronteggRouter';\nexport * from './withFronteggApp';\nexport { getSession, withSSRSession } from './helpers';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA"}
@@ -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,2 @@
1
+ export { withFronteggApp } from './withFronteggApp';
2
+ export type { FronteggCustomApp, WithFronteggAppOptions, FronteggCustomAppClass } from './types';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "withFronteggApp", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _withFronteggApp.withFronteggApp;
10
+ }
11
+ });
12
+ var _withFronteggApp = require("./withFronteggApp");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../packages/nextjs/src/pages/withFronteggApp/index.ts"],"sourcesContent":["export { withFronteggApp } from './withFronteggApp';\nexport type { FronteggCustomApp, WithFronteggAppOptions, FronteggCustomAppClass } from './types';\n"],"mappings":";;;;;;;;;;;AAAA"}
@@ -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,12 @@
1
+ /// <reference types="react" />
2
+ import { AppContextType, AppPropsType, NextComponentType } from 'next/dist/shared/lib/utils';
3
+ import { AppInitialProps } from 'next/app';
4
+ import { AllUserData } from '../../types';
5
+ import { FronteggAppOptions } from '@frontegg/types';
6
+ export type FronteggCustomApp = NextComponentType<AppContextType & AllUserData, AppInitialProps, AppPropsType>;
7
+ export type FronteggCustomAppClass = ((props: AppPropsType<any>) => JSX.Element) & {
8
+ getInitialProps?: FronteggCustomApp['getInitialProps'];
9
+ };
10
+ export type WithFronteggAppOptions = Omit<FronteggAppOptions, 'contextOptions'> & {
11
+ contextOptions?: FronteggAppOptions['contextOptions'];
12
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../packages/nextjs/src/pages/withFronteggApp/types.ts"],"sourcesContent":["import { AppContextType, AppPropsType, NextComponentType } from 'next/dist/shared/lib/utils';\nimport { AppInitialProps } from 'next/app';\nimport { AllUserData } from '../../types';\nimport { FronteggAppOptions } from '@frontegg/types';\n\nexport type FronteggCustomApp = NextComponentType<AppContextType & AllUserData, AppInitialProps, AppPropsType>;\nexport type FronteggCustomAppClass = ((props: AppPropsType<any>) => JSX.Element) & {\n getInitialProps?: FronteggCustomApp['getInitialProps'];\n};\n\nexport type WithFronteggAppOptions = Omit<FronteggAppOptions, 'contextOptions'> & {\n contextOptions?: FronteggAppOptions['contextOptions'];\n};\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import type { FronteggCustomAppClass, FronteggCustomApp, WithFronteggAppOptions } from './types';
2
+ export declare const withFronteggApp: (app: FronteggCustomAppClass, options?: WithFronteggAppOptions) => FronteggCustomApp;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.withFronteggApp = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _FronteggPagesProvider = _interopRequireDefault(require("../FronteggPagesProvider"));
11
+ var _refreshAccessToken = _interopRequireDefault(require("../../utils/refreshAccessToken"));
12
+ var _fetchUserData = _interopRequireDefault(require("../../utils/fetchUserData"));
13
+ var _config = _interopRequireDefault(require("../../config"));
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ const withFronteggApp = (app, options) => {
16
+ var _options$authOptions$, _options$authOptions;
17
+ const originalGetInitialProps = app.getInitialProps;
18
+ app.getInitialProps = async appContext => {
19
+ const {
20
+ ctx,
21
+ Component
22
+ } = appContext;
23
+ let appEnvConfig = {};
24
+ let appContextSessionData = {
25
+ session: null,
26
+ user: null,
27
+ tenants: null
28
+ };
29
+ if (ctx.req) {
30
+ appEnvConfig = _config.default.appEnvConfig;
31
+ const userData = await (0, _fetchUserData.default)({
32
+ getSession: async () => await (0, _refreshAccessToken.default)(ctx),
33
+ getHeaders: async () => {
34
+ var _ctx$req$headers, _ctx$req;
35
+ return (_ctx$req$headers = (_ctx$req = ctx.req) == null ? void 0 : _ctx$req.headers) != null ? _ctx$req$headers : {};
36
+ }
37
+ });
38
+ Object.assign(appContextSessionData, userData);
39
+ }
40
+ Object.assign(appContext, appContextSessionData);
41
+ return {
42
+ pageProps: (0, _extends2.default)({}, originalGetInitialProps ? await originalGetInitialProps(appContext) : {}, Component.getInitialProps ? await Component.getInitialProps(ctx) : {}, appContextSessionData.session == null ? {} : appContextSessionData, appEnvConfig)
43
+ };
44
+ };
45
+ _config.default.authRoutes = (_options$authOptions$ = options == null ? void 0 : (_options$authOptions = options.authOptions) == null ? void 0 : _options$authOptions.routes) != null ? _options$authOptions$ : {};
46
+ _config.default.fronteggAppOptions = options != null ? options : {};
47
+ function CustomFronteggApp(appProps) {
48
+ const {
49
+ user,
50
+ tenants,
51
+ session,
52
+ envAppUrl,
53
+ envBaseUrl,
54
+ envClientId
55
+ } = appProps.pageProps;
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FronteggPagesProvider.default, (0, _extends2.default)({}, options, {
57
+ user,
58
+ tenants,
59
+ session,
60
+ envAppUrl,
61
+ envBaseUrl,
62
+ envClientId,
63
+ children: app(appProps)
64
+ }));
65
+ }
66
+ CustomFronteggApp.getInitialProps = app.getInitialProps;
67
+ return CustomFronteggApp;
68
+ };
69
+ exports.withFronteggApp = withFronteggApp;
70
+ //# sourceMappingURL=withFronteggApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withFronteggApp.js","names":["withFronteggApp","app","options","originalGetInitialProps","getInitialProps","appContext","ctx","Component","appEnvConfig","appContextSessionData","session","user","tenants","req","config","userData","fetchUserData","getSession","refreshAccessToken","getHeaders","headers","Object","assign","pageProps","authRoutes","authOptions","routes","fronteggAppOptions","CustomFronteggApp","appProps","envAppUrl","envBaseUrl","envClientId"],"sources":["../../../../../packages/nextjs/src/pages/withFronteggApp/withFronteggApp.tsx"],"sourcesContent":["import React from 'react';\nimport type { AppContext, AppInitialProps, AppProps } from 'next/app';\nimport type { FronteggCustomAppClass, FronteggCustomApp, WithFronteggAppOptions } from './types';\nimport FronteggProvider from '../FronteggPagesProvider';\nimport refreshAccessToken from '../../utils/refreshAccessToken';\nimport fetchUserData from '../../utils/fetchUserData';\nimport config from '../../config';\nimport { AllUserData } from '../../types';\n\nexport const withFronteggApp = (app: FronteggCustomAppClass, options?: WithFronteggAppOptions): FronteggCustomApp => {\n const originalGetInitialProps = app.getInitialProps;\n\n app.getInitialProps = async (appContext: AppContext & AllUserData): Promise<AppInitialProps> => {\n const { ctx, Component } = appContext;\n\n let appEnvConfig = {};\n let appContextSessionData: AllUserData = {\n session: null,\n user: null,\n tenants: null,\n };\n\n if (ctx.req) {\n appEnvConfig = config.appEnvConfig;\n const userData = await fetchUserData({\n getSession: async () => await refreshAccessToken(ctx),\n getHeaders: async () => ctx.req?.headers ?? {},\n });\n Object.assign(appContextSessionData, userData);\n }\n\n Object.assign(appContext, appContextSessionData);\n\n return {\n pageProps: {\n ...(originalGetInitialProps ? await originalGetInitialProps(appContext) : {}),\n ...(Component.getInitialProps ? await Component.getInitialProps(ctx) : {}),\n ...(appContextSessionData.session == null ? {} : appContextSessionData),\n ...appEnvConfig,\n },\n };\n };\n\n config.authRoutes = options?.authOptions?.routes ?? {};\n config.fronteggAppOptions = options ?? {};\n\n function CustomFronteggApp(appProps: AppProps) {\n const { user, tenants, session, envAppUrl, envBaseUrl, envClientId } = appProps.pageProps;\n return (\n <FronteggProvider {...options} {...{ user, tenants, session, envAppUrl, envBaseUrl, envClientId }}>\n {app(appProps) as any}\n </FronteggProvider>\n );\n }\n\n CustomFronteggApp.getInitialProps = app.getInitialProps;\n\n return CustomFronteggApp as FronteggCustomApp;\n};\n"],"mappings":";;;;;;;;AAAA;AAGA;AACA;AACA;AACA;AAAkC;AAG3B,MAAMA,eAAe,GAAG,CAACC,GAA2B,EAAEC,OAAgC,KAAwB;EAAA;EACnH,MAAMC,uBAAuB,GAAGF,GAAG,CAACG,eAAe;EAEnDH,GAAG,CAACG,eAAe,GAAG,MAAOC,UAAoC,IAA+B;IAC9F,MAAM;MAAEC,GAAG;MAAEC;IAAU,CAAC,GAAGF,UAAU;IAErC,IAAIG,YAAY,GAAG,CAAC,CAAC;IACrB,IAAIC,qBAAkC,GAAG;MACvCC,OAAO,EAAE,IAAI;MACbC,IAAI,EAAE,IAAI;MACVC,OAAO,EAAE;IACX,CAAC;IAED,IAAIN,GAAG,CAACO,GAAG,EAAE;MACXL,YAAY,GAAGM,eAAM,CAACN,YAAY;MAClC,MAAMO,QAAQ,GAAG,MAAM,IAAAC,sBAAa,EAAC;QACnCC,UAAU,EAAE,YAAY,MAAM,IAAAC,2BAAkB,EAACZ,GAAG,CAAC;QACrDa,UAAU,EAAE;UAAA;UAAA,uCAAYb,GAAG,CAACO,GAAG,qBAAP,SAASO,OAAO,+BAAI,CAAC,CAAC;QAAA;MAChD,CAAC,CAAC;MACFC,MAAM,CAACC,MAAM,CAACb,qBAAqB,EAAEM,QAAQ,CAAC;IAChD;IAEAM,MAAM,CAACC,MAAM,CAACjB,UAAU,EAAEI,qBAAqB,CAAC;IAEhD,OAAO;MACLc,SAAS,6BACHpB,uBAAuB,GAAG,MAAMA,uBAAuB,CAACE,UAAU,CAAC,GAAG,CAAC,CAAC,EACxEE,SAAS,CAACH,eAAe,GAAG,MAAMG,SAAS,CAACH,eAAe,CAACE,GAAG,CAAC,GAAG,CAAC,CAAC,EACrEG,qBAAqB,CAACC,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC,GAAGD,qBAAqB,EACnED,YAAY;IAEnB,CAAC;EACH,CAAC;EAEDM,eAAM,CAACU,UAAU,4BAAGtB,OAAO,4CAAPA,OAAO,CAAEuB,WAAW,qBAApB,qBAAsBC,MAAM,oCAAI,CAAC,CAAC;EACtDZ,eAAM,CAACa,kBAAkB,GAAGzB,OAAO,WAAPA,OAAO,GAAI,CAAC,CAAC;EAEzC,SAAS0B,iBAAiB,CAACC,QAAkB,EAAE;IAC7C,MAAM;MAAElB,IAAI;MAAEC,OAAO;MAAEF,OAAO;MAAEoB,SAAS;MAAEC,UAAU;MAAEC;IAAY,CAAC,GAAGH,QAAQ,CAACN,SAAS;IACzF,oBACE,qBAAC,8BAAgB,6BAAKrB,OAAO;MAAQS,IAAI;MAAEC,OAAO;MAAEF,OAAO;MAAEoB,SAAS;MAAEC,UAAU;MAAEC,WAAW;MAAA,UAC5F/B,GAAG,CAAC4B,QAAQ;IAAC,GACG;EAEvB;EAEAD,iBAAiB,CAACxB,eAAe,GAAGH,GAAG,CAACG,eAAe;EAEvD,OAAOwB,iBAAiB;AAC1B,CAAC;AAAC"}