@frontegg/nextjs 6.7.20 → 6.7.21-alpha.4441481917

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 +10 -0
  2. package/README.md +19 -37
  3. package/api/index.d.ts +19 -0
  4. package/api/index.js +78 -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 +46 -0
  9. package/api/urls.js.map +1 -0
  10. package/api/utils.d.ts +46 -0
  11. package/api/utils.js +108 -0
  12. package/api/utils.js.map +1 -0
  13. package/app/ClientFronteggProvider.d.ts +3 -0
  14. package/app/ClientFronteggProvider.js +25 -0
  15. package/app/ClientFronteggProvider.js.map +1 -0
  16. package/app/FronteggAppProvider.d.ts +4 -0
  17. package/app/FronteggAppProvider.js +17 -0
  18. package/app/FronteggAppProvider.js.map +1 -0
  19. package/{client → app}/FronteggAppRouter.d.ts +11 -10
  20. package/app/FronteggAppRouter.js +31 -0
  21. package/app/FronteggAppRouter.js.map +1 -0
  22. package/app/helpers.d.ts +5 -0
  23. package/app/helpers.js +32 -0
  24. package/app/helpers.js.map +1 -0
  25. package/app/index.d.ts +4 -0
  26. package/app/index.js +4 -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 +6 -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 +48 -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 +67 -0
  37. package/common/FronteggBaseProvider.js.map +1 -0
  38. package/common/FronteggRouterBase.d.ts +9 -0
  39. package/common/FronteggRouterBase.js +42 -0
  40. package/common/FronteggRouterBase.js.map +1 -0
  41. package/common/helpers.d.ts +3 -9
  42. package/common/helpers.js +24 -0
  43. package/common/helpers.js.map +1 -0
  44. package/common/index.d.ts +4 -6
  45. package/common/index.js +5 -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 +24 -0
  50. package/common/useRequestAuthorizeSSR.js.map +1 -0
  51. package/config/constants.d.ts +57 -0
  52. package/config/constants.js +13 -0
  53. package/config/constants.js.map +1 -0
  54. package/config/helpers.d.ts +28 -0
  55. package/config/helpers.js +87 -0
  56. package/config/helpers.js.map +1 -0
  57. package/config/index.d.ts +24 -0
  58. package/config/index.js +82 -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 +2 -0
  63. package/config/types.js.map +1 -0
  64. package/edge/getSessionOnEdge.d.ts +3 -2
  65. package/edge/getSessionOnEdge.js +8 -0
  66. package/edge/getSessionOnEdge.js.map +1 -0
  67. package/edge/index.d.ts +3 -2
  68. package/edge/index.js +4 -64
  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 +9 -0
  73. package/edge/redirectToLogin.js.map +1 -0
  74. package/edge/shouldBypassMiddleware.d.ts +21 -7
  75. package/edge/shouldBypassMiddleware.js +42 -0
  76. package/edge/shouldBypassMiddleware.js.map +1 -0
  77. package/index.d.ts +7 -11
  78. package/index.js +13 -1401
  79. package/index.js.map +1 -1
  80. package/middleware/FronteggApiMiddleware.d.ts +8 -0
  81. package/middleware/FronteggApiMiddleware.js +28 -0
  82. package/middleware/FronteggApiMiddleware.js.map +1 -0
  83. package/middleware/FronteggProxy.d.ts +4 -0
  84. package/middleware/FronteggProxy.js +24 -0
  85. package/middleware/FronteggProxy.js.map +1 -0
  86. package/middleware/ProxyRequestCallback.d.ts +13 -0
  87. package/middleware/ProxyRequestCallback.js +48 -0
  88. package/middleware/ProxyRequestCallback.js.map +1 -0
  89. package/middleware/ProxyResponseCallback.d.ts +13 -0
  90. package/middleware/ProxyResponseCallback.js +103 -0
  91. package/middleware/ProxyResponseCallback.js.map +1 -0
  92. package/middleware/constants.d.ts +8 -0
  93. package/middleware/constants.js +9 -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 +35 -0
  97. package/middleware/helpers.js.map +1 -0
  98. package/middleware/index.d.ts +23 -0
  99. package/middleware/index.js +24 -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 +22 -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 +76 -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 +2 -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 +24 -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 +38 -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 +27 -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 +31 -0
  126. package/pages/helpers.js.map +1 -0
  127. package/pages/index.d.ts +3 -0
  128. package/pages/index.js +4 -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 +2 -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 +2 -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 +62 -0
  140. package/pages/withFronteggApp/withFronteggApp.js.map +1 -0
  141. package/sdkVersion.d.ts +4 -4
  142. package/sdkVersion.js +4 -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 +2 -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 +14 -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 +26 -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 +8 -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 +53 -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 +232 -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 +154 -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 +2 -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 +44 -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 +29 -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 +29 -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 +8 -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 +8 -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 +3 -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 +49 -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 +20 -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 +61 -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 +100 -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 +53 -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 +69 -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 +88 -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 +23 -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 +21 -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,87 @@
1
+ import { InvalidFronteggEnv, FronteggEnvNotFound } from '../utils/errors';
2
+ import { EnvVariables } from './constants';
3
+
4
+ /**
5
+ * Return environment variable's value.
6
+ * @throws {@link FronteggEnvNotFound} if not exists
7
+ * @param name
8
+ */
9
+ export const getEnv = name => {
10
+ const value = process.env[name];
11
+ if (!value) {
12
+ throw new FronteggEnvNotFound(name);
13
+ }
14
+ return value;
15
+ };
16
+
17
+ /**
18
+ * Return environment variable's value with default if not exists
19
+ * @param {string} name - the name from environment variable {@link EnvVariables}
20
+ * @param {optional string} defaultValue - default value if not exists
21
+ */
22
+ export const getEnvOrDefault = (name, defaultValue) => {
23
+ try {
24
+ return getEnv(name);
25
+ } catch (e) {
26
+ return defaultValue;
27
+ }
28
+ };
29
+
30
+ /**
31
+ * extract hostname from appUrl for session cookie creation
32
+ * @param {string} appUrl - The generated appUrl
33
+ */
34
+ export const generateCookieDomain = appUrl => {
35
+ try {
36
+ const url = new URL(appUrl);
37
+ return url.hostname.replace(/:(\d)+$/, '');
38
+ } catch (e) {
39
+ throw new InvalidFronteggEnv(EnvVariables.FRONTEGG_APP_URL, 'Valid URL');
40
+ }
41
+ };
42
+
43
+ /**
44
+ * Create passwordMap if from {@link EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD}
45
+ * @param {string} password - encryption password
46
+ */
47
+ export function normalizeStringPasswordToMap(password) {
48
+ return typeof password === 'string' ? {
49
+ 1: password
50
+ } : password;
51
+ }
52
+
53
+ /**
54
+ * Check if the Next.js application running on Vercel Deployment Service
55
+ * and calculate the appUrl based on Vercel Environment variables.
56
+ */
57
+ export function generateAppUrl() {
58
+ const appUrlEnv = getEnvOrDefault(EnvVariables.FRONTEGG_APP_URL, undefined);
59
+ const isVercel = getEnvOrDefault(EnvVariables.VERCEL, undefined) != undefined;
60
+ const vercelUrl = getEnvOrDefault(EnvVariables.VERCEL_URL, undefined);
61
+ let appUrl;
62
+ if (appUrlEnv) {
63
+ appUrl = appUrlEnv;
64
+ } else if (isVercel && vercelUrl) {
65
+ appUrl = vercelUrl;
66
+ }
67
+ if (!appUrl) {
68
+ if (isVercel) {
69
+ throw new FronteggEnvNotFound(EnvVariables.VERCEL, EnvVariables.VERCEL_URL);
70
+ } else {
71
+ throw new FronteggEnvNotFound(EnvVariables.FRONTEGG_APP_URL);
72
+ }
73
+ }
74
+
75
+ /**
76
+ * In some cases the {@link EnvVariables.VERCEL_URL} value does not
77
+ * include the URL protocol, bellow code to verify that the appUrl
78
+ * must have a valid http protocol
79
+ */
80
+ if (!appUrl.startsWith('http')) {
81
+ // noinspection HttpUrlsUsage
82
+ const protocol = appUrl.startsWith('localhost') ? 'http://' : 'https://';
83
+ appUrl = `${protocol}${appUrl}`;
84
+ }
85
+ return appUrl;
86
+ }
87
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","names":["InvalidFronteggEnv","FronteggEnvNotFound","EnvVariables","getEnv","name","value","process","env","getEnvOrDefault","defaultValue","e","generateCookieDomain","appUrl","url","URL","hostname","replace","FRONTEGG_APP_URL","normalizeStringPasswordToMap","password","generateAppUrl","appUrlEnv","undefined","isVercel","VERCEL","vercelUrl","VERCEL_URL","startsWith","protocol"],"sources":["../../../../packages/nextjs/src/config/helpers.ts"],"sourcesContent":["import { InvalidFronteggEnv, FronteggEnvNotFound } from '../utils/errors';\nimport { PasswordsMap } from './types';\nimport { EnvVariables } from './constants';\n\n/**\n * Return environment variable's value.\n * @throws {@link FronteggEnvNotFound} if not exists\n * @param name\n */\nexport const getEnv = (name: string): string => {\n const value = process.env[name];\n if (!value) {\n throw new FronteggEnvNotFound(name);\n }\n return value;\n};\n\n/**\n * Return environment variable's value with default if not exists\n * @param {string} name - the name from environment variable {@link EnvVariables}\n * @param {optional string} defaultValue - default value if not exists\n */\nexport const getEnvOrDefault = <T>(name: string, defaultValue: T): string | T => {\n try {\n return getEnv(name);\n } catch (e) {\n return defaultValue;\n }\n};\n\n/**\n * extract hostname from appUrl for session cookie creation\n * @param {string} appUrl - The generated appUrl\n */\nexport const generateCookieDomain = (appUrl: string): string => {\n try {\n const url = new URL(appUrl);\n return url.hostname.replace(/:(\\d)+$/, '');\n } catch (e) {\n throw new InvalidFronteggEnv(EnvVariables.FRONTEGG_APP_URL, 'Valid URL');\n }\n};\n\n/**\n * Create passwordMap if from {@link EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD}\n * @param {string} password - encryption password\n */\nexport function normalizeStringPasswordToMap(password: string | PasswordsMap): PasswordsMap {\n return typeof password === 'string' ? { 1: password } : password;\n}\n\n/**\n * Check if the Next.js application running on Vercel Deployment Service\n * and calculate the appUrl based on Vercel Environment variables.\n */\nexport function generateAppUrl() {\n const appUrlEnv = getEnvOrDefault(EnvVariables.FRONTEGG_APP_URL, undefined);\n const isVercel = getEnvOrDefault(EnvVariables.VERCEL, undefined) != undefined;\n const vercelUrl = getEnvOrDefault(EnvVariables.VERCEL_URL, undefined);\n\n let appUrl: string | undefined;\n if (appUrlEnv) {\n appUrl = appUrlEnv;\n } else if (isVercel && vercelUrl) {\n appUrl = vercelUrl;\n }\n\n if (!appUrl) {\n if (isVercel) {\n throw new FronteggEnvNotFound(EnvVariables.VERCEL, EnvVariables.VERCEL_URL);\n } else {\n throw new FronteggEnvNotFound(EnvVariables.FRONTEGG_APP_URL);\n }\n }\n\n /**\n * In some cases the {@link EnvVariables.VERCEL_URL} value does not\n * include the URL protocol, bellow code to verify that the appUrl\n * must have a valid http protocol\n */\n if (!appUrl.startsWith('http')) {\n // noinspection HttpUrlsUsage\n const protocol = appUrl.startsWith('localhost') ? 'http://' : 'https://';\n appUrl = `${protocol}${appUrl}`;\n }\n\n return appUrl;\n}\n"],"mappings":"AAAA,SAASA,kBAAkB,EAAEC,mBAAmB,QAAQ,iBAAiB;AAEzE,SAASC,YAAY,QAAQ,aAAa;;AAE1C;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,MAAM,GAAIC,IAAY,IAAa;EAC9C,MAAMC,KAAK,GAAGC,OAAO,CAACC,GAAG,CAACH,IAAI,CAAC;EAC/B,IAAI,CAACC,KAAK,EAAE;IACV,MAAM,IAAIJ,mBAAmB,CAACG,IAAI,CAAC;EACrC;EACA,OAAOC,KAAK;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,eAAe,GAAG,CAAIJ,IAAY,EAAEK,YAAe,KAAiB;EAC/E,IAAI;IACF,OAAON,MAAM,CAACC,IAAI,CAAC;EACrB,CAAC,CAAC,OAAOM,CAAC,EAAE;IACV,OAAOD,YAAY;EACrB;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAME,oBAAoB,GAAIC,MAAc,IAAa;EAC9D,IAAI;IACF,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACF,MAAM,CAAC;IAC3B,OAAOC,GAAG,CAACE,QAAQ,CAACC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;EAC5C,CAAC,CAAC,OAAON,CAAC,EAAE;IACV,MAAM,IAAIV,kBAAkB,CAACE,YAAY,CAACe,gBAAgB,EAAE,WAAW,CAAC;EAC1E;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,SAASC,4BAA4B,CAACC,QAA+B,EAAgB;EAC1F,OAAO,OAAOA,QAAQ,KAAK,QAAQ,GAAG;IAAE,CAAC,EAAEA;EAAS,CAAC,GAAGA,QAAQ;AAClE;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAc,GAAG;EAC/B,MAAMC,SAAS,GAAGb,eAAe,CAACN,YAAY,CAACe,gBAAgB,EAAEK,SAAS,CAAC;EAC3E,MAAMC,QAAQ,GAAGf,eAAe,CAACN,YAAY,CAACsB,MAAM,EAAEF,SAAS,CAAC,IAAIA,SAAS;EAC7E,MAAMG,SAAS,GAAGjB,eAAe,CAACN,YAAY,CAACwB,UAAU,EAAEJ,SAAS,CAAC;EAErE,IAAIV,MAA0B;EAC9B,IAAIS,SAAS,EAAE;IACbT,MAAM,GAAGS,SAAS;EACpB,CAAC,MAAM,IAAIE,QAAQ,IAAIE,SAAS,EAAE;IAChCb,MAAM,GAAGa,SAAS;EACpB;EAEA,IAAI,CAACb,MAAM,EAAE;IACX,IAAIW,QAAQ,EAAE;MACZ,MAAM,IAAItB,mBAAmB,CAACC,YAAY,CAACsB,MAAM,EAAEtB,YAAY,CAACwB,UAAU,CAAC;IAC7E,CAAC,MAAM;MACL,MAAM,IAAIzB,mBAAmB,CAACC,YAAY,CAACe,gBAAgB,CAAC;IAC9D;EACF;;EAEA;AACF;AACA;AACA;AACA;EACE,IAAI,CAACL,MAAM,CAACe,UAAU,CAAC,MAAM,CAAC,EAAE;IAC9B;IACA,MAAMC,QAAQ,GAAGhB,MAAM,CAACe,UAAU,CAAC,WAAW,CAAC,GAAG,SAAS,GAAG,UAAU;IACxEf,MAAM,GAAI,GAAEgB,QAAS,GAAEhB,MAAO,EAAC;EACjC;EAEA,OAAOA,MAAM;AACf"}
@@ -0,0 +1,24 @@
1
+ import { AuthPageRoutes } from '@frontegg/redux-store';
2
+ import { FronteggAppOptions } from '@frontegg/types';
3
+ import { AppEnvConfig, PasswordsMap } from './types';
4
+ declare class Config {
5
+ authRoutes: Partial<AuthPageRoutes>;
6
+ fronteggAppOptions: Partial<FronteggAppOptions>;
7
+ constructor();
8
+ get appUrl(): string;
9
+ get testUrl(): string | undefined;
10
+ get baseUrl(): string;
11
+ get baseUrlHost(): string;
12
+ get clientId(): string;
13
+ get jwtPublicKeyJson(): string | undefined;
14
+ get cookieName(): string;
15
+ get cookieDomain(): string;
16
+ private validatePassword;
17
+ get password(): PasswordsMap;
18
+ get isSSL(): boolean;
19
+ get isHostedLogin(): boolean;
20
+ get appEnvConfig(): AppEnvConfig;
21
+ }
22
+ export { EnvVariables } from './constants';
23
+ declare const _default: Config;
24
+ export default _default;
@@ -0,0 +1,82 @@
1
+ import { generateAppUrl, generateCookieDomain, getEnv, getEnvOrDefault, normalizeStringPasswordToMap } from './helpers';
2
+ import { EnvVariables } from './constants';
3
+ import { InvalidFronteggEnv } from '../utils/errors';
4
+ const setupEnvVariables = {
5
+ FRONTEGG_APP_URL: process.env.FRONTEGG_APP_URL,
6
+ FRONTEGG_BASE_URL: process.env.FRONTEGG_BASE_URL,
7
+ FRONTEGG_TEST_URL: process.env.FRONTEGG_TEST_URL,
8
+ FRONTEGG_CLIENT_ID: process.env.FRONTEGG_CLIENT_ID,
9
+ FRONTEGG_ENCRYPTION_PASSWORD: process.env.FRONTEGG_ENCRYPTION_PASSWORD,
10
+ FRONTEGG_COOKIE_NAME: process.env.FRONTEGG_COOKIE_NAME,
11
+ FRONTEGG_JWT_PUBLIC_KEY: process.env.FRONTEGG_JWT_PUBLIC_KEY,
12
+ VERCEL: process.env.VERCEL,
13
+ VERCEL_URL: process.env.VERCEL_URL
14
+ };
15
+ class Config {
16
+ constructor() {
17
+ this.authRoutes = {};
18
+ this.fronteggAppOptions = {};
19
+ if (typeof window === 'undefined') {
20
+ this.validatePassword();
21
+ }
22
+ }
23
+ get appUrl() {
24
+ return generateAppUrl();
25
+ }
26
+ get testUrl() {
27
+ return getEnvOrDefault(EnvVariables.FRONTEGG_TEST_URL, setupEnvVariables.FRONTEGG_TEST_URL);
28
+ }
29
+ get baseUrl() {
30
+ var _getEnv;
31
+ return (_getEnv = getEnv(EnvVariables.FRONTEGG_BASE_URL)) != null ? _getEnv : setupEnvVariables.FRONTEGG_BASE_URL;
32
+ }
33
+ get baseUrlHost() {
34
+ return new URL(this.baseUrl).hostname;
35
+ }
36
+ get clientId() {
37
+ var _getEnv2;
38
+ return (_getEnv2 = getEnv(EnvVariables.FRONTEGG_CLIENT_ID)) != null ? _getEnv2 : setupEnvVariables.FRONTEGG_CLIENT_ID;
39
+ }
40
+ get jwtPublicKeyJson() {
41
+ return getEnv(EnvVariables.FRONTEGG_JWT_PUBLIC_KEY);
42
+ }
43
+ get cookieName() {
44
+ var _setupEnvVariables$FR;
45
+ const cookieNameEnv = getEnvOrDefault(EnvVariables.FRONTEGG_COOKIE_NAME, (_setupEnvVariables$FR = setupEnvVariables.FRONTEGG_COOKIE_NAME) != null ? _setupEnvVariables$FR : 'fe_session');
46
+ return `${cookieNameEnv}-${this.clientId.replace(/-/g, '')}`;
47
+ }
48
+ get cookieDomain() {
49
+ return generateCookieDomain(this.appUrl);
50
+ }
51
+ validatePassword() {
52
+ const passwordMaps = this.password;
53
+ for (let key of Object.keys(passwordMaps)) {
54
+ const password = passwordMaps[key];
55
+ if (!password.match(/[0-9A-Fa-f]{6}/g) || password.length !== 64) {
56
+ throw new InvalidFronteggEnv(EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD, `Hex string.\n\nFor quick password generation use the following command:\nnode -e "console.log(crypto.randomBytes(32).toString('hex'))"`);
57
+ }
58
+ }
59
+ }
60
+ get password() {
61
+ var _getEnv3;
62
+ const encryptionPasswordEnv = (_getEnv3 = getEnv(EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD)) != null ? _getEnv3 : setupEnvVariables.FRONTEGG_ENCRYPTION_PASSWORD;
63
+ return normalizeStringPasswordToMap(encryptionPasswordEnv);
64
+ }
65
+ get isSSL() {
66
+ return new URL(this.appUrl).protocol === 'https:';
67
+ }
68
+ get isHostedLogin() {
69
+ var _this$fronteggAppOpti;
70
+ return (_this$fronteggAppOpti = this.fronteggAppOptions.hostedLoginBox) != null ? _this$fronteggAppOpti : false;
71
+ }
72
+ get appEnvConfig() {
73
+ return {
74
+ envAppUrl: this.appUrl,
75
+ envBaseUrl: this.baseUrl,
76
+ envClientId: this.clientId
77
+ };
78
+ }
79
+ }
80
+ export { EnvVariables } from './constants';
81
+ export default new Config();
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["generateAppUrl","generateCookieDomain","getEnv","getEnvOrDefault","normalizeStringPasswordToMap","EnvVariables","InvalidFronteggEnv","setupEnvVariables","FRONTEGG_APP_URL","process","env","FRONTEGG_BASE_URL","FRONTEGG_TEST_URL","FRONTEGG_CLIENT_ID","FRONTEGG_ENCRYPTION_PASSWORD","FRONTEGG_COOKIE_NAME","FRONTEGG_JWT_PUBLIC_KEY","VERCEL","VERCEL_URL","Config","constructor","authRoutes","fronteggAppOptions","window","validatePassword","appUrl","testUrl","baseUrl","baseUrlHost","URL","hostname","clientId","jwtPublicKeyJson","cookieName","cookieNameEnv","replace","cookieDomain","passwordMaps","password","key","Object","keys","match","length","encryptionPasswordEnv","isSSL","protocol","isHostedLogin","hostedLoginBox","appEnvConfig","envAppUrl","envBaseUrl","envClientId"],"sources":["../../../../packages/nextjs/src/config/index.ts"],"sourcesContent":["import { AuthPageRoutes } from '@frontegg/redux-store';\nimport { FronteggAppOptions } from '@frontegg/types';\nimport { AppEnvConfig, PasswordsMap } from './types';\nimport { generateAppUrl, generateCookieDomain, getEnv, getEnvOrDefault, normalizeStringPasswordToMap } from './helpers';\nimport { EnvVariables } from './constants';\nimport { InvalidFronteggEnv } from '../utils/errors';\n\nconst setupEnvVariables = {\n FRONTEGG_APP_URL: process.env.FRONTEGG_APP_URL,\n FRONTEGG_BASE_URL: process.env.FRONTEGG_BASE_URL,\n FRONTEGG_TEST_URL: process.env.FRONTEGG_TEST_URL,\n FRONTEGG_CLIENT_ID: process.env.FRONTEGG_CLIENT_ID,\n FRONTEGG_ENCRYPTION_PASSWORD: process.env.FRONTEGG_ENCRYPTION_PASSWORD,\n FRONTEGG_COOKIE_NAME: process.env.FRONTEGG_COOKIE_NAME,\n FRONTEGG_JWT_PUBLIC_KEY: process.env.FRONTEGG_JWT_PUBLIC_KEY,\n VERCEL: process.env.VERCEL,\n VERCEL_URL: process.env.VERCEL_URL,\n};\n\nclass Config {\n public authRoutes: Partial<AuthPageRoutes> = {};\n public fronteggAppOptions: Partial<FronteggAppOptions> = {};\n constructor() {\n if (typeof window === 'undefined') {\n this.validatePassword();\n }\n }\n\n get appUrl(): string {\n return generateAppUrl();\n }\n\n get testUrl(): string | undefined {\n return getEnvOrDefault(EnvVariables.FRONTEGG_TEST_URL, setupEnvVariables.FRONTEGG_TEST_URL);\n }\n\n get baseUrl(): string {\n return getEnv(EnvVariables.FRONTEGG_BASE_URL) ?? setupEnvVariables.FRONTEGG_BASE_URL;\n }\n\n get baseUrlHost(): string {\n return new URL(this.baseUrl).hostname;\n }\n\n get clientId(): string {\n return getEnv(EnvVariables.FRONTEGG_CLIENT_ID) ?? setupEnvVariables.FRONTEGG_CLIENT_ID;\n }\n\n get jwtPublicKeyJson(): string | undefined {\n return getEnv(EnvVariables.FRONTEGG_JWT_PUBLIC_KEY);\n }\n\n get cookieName(): string {\n const cookieNameEnv = getEnvOrDefault(\n EnvVariables.FRONTEGG_COOKIE_NAME,\n setupEnvVariables.FRONTEGG_COOKIE_NAME ?? 'fe_session'\n );\n return `${cookieNameEnv}-${this.clientId.replace(/-/g, '')}`;\n }\n\n get cookieDomain(): string {\n return generateCookieDomain(this.appUrl);\n }\n\n private validatePassword() {\n const passwordMaps = this.password;\n for (let key of Object.keys(passwordMaps)) {\n const password = passwordMaps[key];\n if (!password.match(/[0-9A-Fa-f]{6}/g) || password.length !== 64) {\n throw new InvalidFronteggEnv(\n EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD,\n `Hex string.\\n\\nFor quick password generation use the following command:\\nnode -e \"console.log(crypto.randomBytes(32).toString('hex'))\"`\n );\n }\n }\n }\n get password(): PasswordsMap {\n const encryptionPasswordEnv =\n getEnv(EnvVariables.FRONTEGG_ENCRYPTION_PASSWORD) ?? setupEnvVariables.FRONTEGG_ENCRYPTION_PASSWORD;\n\n return normalizeStringPasswordToMap(encryptionPasswordEnv);\n }\n\n get isSSL(): boolean {\n return new URL(this.appUrl).protocol === 'https:';\n }\n\n get isHostedLogin(): boolean {\n return this.fronteggAppOptions.hostedLoginBox ?? false;\n }\n\n get appEnvConfig(): AppEnvConfig {\n return {\n envAppUrl: this.appUrl,\n envBaseUrl: this.baseUrl,\n envClientId: this.clientId,\n };\n }\n}\n\nexport { EnvVariables } from './constants';\nexport default new Config();\n"],"mappings":"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"}
@@ -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,18 @@
1
+ /**
2
+ * PasswordMap used for JWT encryption, you can create multiple passwords
3
+ * to be used for encrypting session cookie as round-robin strategy.
4
+ */
5
+ export type PasswordsMap = {
6
+ [id: string]: string;
7
+ };
8
+ /**
9
+ * PropTypes passed by FronteggProvider to the ClientSide Frontegg components.
10
+ */
11
+ export interface AppEnvConfig {
12
+ /** {@link EnvVariables.FRONTEGG_APP_URL} */
13
+ envAppUrl: string;
14
+ /** {@link EnvVariables.FRONTEGG_BASE_URL} */
15
+ envBaseUrl: string;
16
+ /** {@link EnvVariables.FRONTEGG_CLIENT_ID} */
17
+ envClientId: string;
18
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../packages/nextjs/src/config/types.ts"],"sourcesContent":["/**\n * PasswordMap used for JWT encryption, you can create multiple passwords\n * to be used for encrypting session cookie as round-robin strategy.\n */\nexport type PasswordsMap = { [id: string]: string };\n\n/**\n * PropTypes passed by FronteggProvider to the ClientSide Frontegg components.\n */\nexport interface AppEnvConfig {\n /** {@link EnvVariables.FRONTEGG_APP_URL} */\n envAppUrl: string;\n /** {@link EnvVariables.FRONTEGG_BASE_URL} */\n envBaseUrl: string;\n /** {@link EnvVariables.FRONTEGG_CLIENT_ID} */\n envClientId: string;\n}\n"],"mappings":""}
@@ -1,2 +1,3 @@
1
- import { RequestType } from '../common/types';
2
- export declare const getSession: (req: RequestType) => Promise<import("../common/types").FronteggNextJSSession | undefined>;
1
+ import type { IncomingMessage } from 'http';
2
+ import { FronteggNextJSSession } from '../types';
3
+ export declare const getSessionOnEdge: (req: IncomingMessage | Request) => Promise<FronteggNextJSSession | undefined>;
@@ -0,0 +1,8 @@
1
+ import CookieManager from '../utils/cookies';
2
+ import createSession from '../utils/createSession';
3
+ import encryptionEdge from '../utils/encryption-edge';
4
+ export const getSessionOnEdge = req => {
5
+ const cookies = CookieManager.getSessionCookieFromRequest(req);
6
+ return createSession(cookies, encryptionEdge);
7
+ };
8
+ //# sourceMappingURL=getSessionOnEdge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSessionOnEdge.js","names":["CookieManager","createSession","encryptionEdge","getSessionOnEdge","req","cookies","getSessionCookieFromRequest"],"sources":["../../../../packages/nextjs/src/edge/getSessionOnEdge.ts"],"sourcesContent":["import type { IncomingMessage } from 'http';\nimport { FronteggNextJSSession } from '../types';\nimport CookieManager from '../utils/cookies';\nimport createSession from '../utils/createSession';\nimport encryptionEdge from '../utils/encryption-edge';\n\nexport const getSessionOnEdge = (req: IncomingMessage | Request): Promise<FronteggNextJSSession | undefined> => {\n const cookies = CookieManager.getSessionCookieFromRequest(req);\n return createSession(cookies, encryptionEdge);\n};\n"],"mappings":"AAEA,OAAOA,aAAa,MAAM,kBAAkB;AAC5C,OAAOC,aAAa,MAAM,wBAAwB;AAClD,OAAOC,cAAc,MAAM,0BAA0B;AAErD,OAAO,MAAMC,gBAAgB,GAAIC,GAA8B,IAAiD;EAC9G,MAAMC,OAAO,GAAGL,aAAa,CAACM,2BAA2B,CAACF,GAAG,CAAC;EAC9D,OAAOH,aAAa,CAACI,OAAO,EAAEH,cAAc,CAAC;AAC/C,CAAC"}
package/edge/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export * from './getSessionOnEdge';
2
- export * from './shouldBypassMiddleware';
1
+ export * from './getSessionOnEdge';
2
+ export * from './shouldBypassMiddleware';
3
+ export * from './redirectToLogin';
package/edge/index.js CHANGED
@@ -1,64 +1,4 @@
1
- import { __awaiter, __generator, __assign } from 'tslib';
2
- import { unsealData } from 'iron-session/edge';
3
- import { C as CookieManager, F as FronteggConfig } from '../CookieManager-e50dc144.js';
4
- import { c as createGetSession } from '../createGetSession-2e1e4506.js';
5
- import 'cookie';
6
- import 'jose';
7
-
8
- function getTokensFromCookieOnEdge(cookie) {
9
- return __awaiter(this, void 0, void 0, function () {
10
- var jwt;
11
- return __generator(this, function (_a) {
12
- switch (_a.label) {
13
- case 0: return [4 /*yield*/, unsealData(cookie, {
14
- password: FronteggConfig.passwordsAsMap,
15
- })];
16
- case 1:
17
- jwt = _a.sent();
18
- return [2 /*return*/, JSON.parse(jwt)];
19
- }
20
- });
21
- });
22
- }
23
- var getSession = function (req) {
24
- return createGetSession({
25
- getCookie: function () { return CookieManager.getParsedCookieFromRequest(req); },
26
- cookieResolver: getTokensFromCookieOnEdge,
27
- });
28
- };
29
-
30
- var staticFilesRegex = new RegExp('^/(_next/static).*');
31
- var imageOptimizationRegex = new RegExp('^/(_next/image).*');
32
- var headerRequestsRegex = new RegExp('^/(favicon.ico).*');
33
- var fronteggMiddlewareRegex = new RegExp('^/(api/frontegg).*');
34
- var fronteggRoutesRegex = new RegExp('^/(account/|oauth/callback).*');
35
- var shouldByPassMiddleware = function (pathname, options) {
36
- /*
37
- * Match all request paths except for the ones starting with:
38
- * - _next/static (static files)
39
- * - _next/image (image optimization files)
40
- * - favicon.ico (favicon file)
41
- * - api/frontegg (API frontegg middleware)
42
- * - account/[login|logout|saml/callback|...] (frontegg authentication routes)
43
- */
44
- var _options = __assign(__assign({ bypassStaticFiles: true, bypassImageOptimization: true, bypassHeaderRequests: true }, options), { bypassFronteggMiddleware: true, bypassFronteggRoutes: true });
45
- var isStaticFiles = staticFilesRegex.test(pathname);
46
- var isImageOptimization = imageOptimizationRegex.test(pathname);
47
- var isHeaderRequests = headerRequestsRegex.test(pathname);
48
- var isFronteggMiddleware = fronteggMiddlewareRegex.test(pathname);
49
- var isFronteggRoutes = fronteggRoutesRegex.test(pathname);
50
- if (isStaticFiles)
51
- return _options.bypassStaticFiles;
52
- if (isImageOptimization)
53
- return _options.bypassImageOptimization;
54
- if (isHeaderRequests)
55
- return _options.bypassHeaderRequests;
56
- if (isFronteggMiddleware)
57
- return _options.bypassFronteggMiddleware;
58
- if (isFronteggRoutes)
59
- return _options.bypassFronteggRoutes;
60
- return false;
61
- };
62
-
63
- export { getSession, shouldByPassMiddleware };
64
- //# sourceMappingURL=index.js.map
1
+ export * from './getSessionOnEdge';
2
+ export * from './shouldBypassMiddleware';
3
+ export * from './redirectToLogin';
4
+ //# sourceMappingURL=index.js.map
package/edge/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/edge/index.ts"],"sourcesContent":["export * from './getSessionOnEdge';\nexport * from './shouldBypassMiddleware';\nexport * from './redirectToLogin';\n"],"mappings":"AAAA,cAAc,oBAAoB;AAClC,cAAc,0BAA0B;AACxC,cAAc,mBAAmB"}
@@ -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
+ import { NextResponse } from 'next/server';
2
+ export declare const redirectToLogin: (pathname: string) => NextResponse;
@@ -0,0 +1,9 @@
1
+ import { NextResponse } from 'next/server';
2
+ import { buildLoginRoute } from '../api/urls';
3
+ export const redirectToLogin = pathname => {
4
+ const {
5
+ asUrl: loginUrl
6
+ } = buildLoginRoute(pathname);
7
+ return NextResponse.redirect(loginUrl);
8
+ };
9
+ //# sourceMappingURL=redirectToLogin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redirectToLogin.js","names":["NextResponse","buildLoginRoute","redirectToLogin","pathname","asUrl","loginUrl","redirect"],"sources":["../../../../packages/nextjs/src/edge/redirectToLogin.ts"],"sourcesContent":["import { NextResponse } from 'next/server';\nimport { buildLoginRoute } from '../api/urls';\n\nexport const redirectToLogin = (pathname: string) => {\n const { asUrl: loginUrl } = buildLoginRoute(pathname);\n return NextResponse.redirect(loginUrl);\n};\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,aAAa;AAC1C,SAASC,eAAe,QAAQ,aAAa;AAE7C,OAAO,MAAMC,eAAe,GAAIC,QAAgB,IAAK;EACnD,MAAM;IAAEC,KAAK,EAAEC;EAAS,CAAC,GAAGJ,eAAe,CAACE,QAAQ,CAAC;EACrD,OAAOH,YAAY,CAACM,QAAQ,CAACD,QAAQ,CAAC;AACxC,CAAC"}
@@ -1,7 +1,21 @@
1
- interface ByPassOptions {
2
- bypassStaticFiles?: boolean;
3
- bypassImageOptimization?: boolean;
4
- bypassHeaderRequests?: boolean;
5
- }
6
- export declare const shouldByPassMiddleware: (pathname: string, options?: ByPassOptions) => boolean;
7
- export {};
1
+ interface ByPassOptions {
2
+ bypassStaticFiles?: boolean;
3
+ bypassImageOptimization?: boolean;
4
+ bypassHeaderRequests?: boolean;
5
+ }
6
+ /**
7
+ * Use `shouldByPassMiddleware` in the middleware.ts file
8
+ * to protect all application's routes.
9
+ * You can override whitelist by passing options parameter
10
+ * NOTE: this will slow down your application due to session check on each
11
+ * static files and image request
12
+ *
13
+ * The default whitelist:
14
+ * - _next/static (static files)
15
+ * - _next/image (image optimization files)
16
+ * - favicon.ico (favicon file)
17
+ * - api/frontegg (API frontegg middleware)
18
+ * - account/[login|logout|saml/callback|...] (frontegg authentication routes)
19
+ */
20
+ export declare const shouldByPassMiddleware: (pathname: string, options?: ByPassOptions) => boolean;
21
+ export {};
@@ -0,0 +1,42 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ const staticFilesRegex = new RegExp('^/(_next/static).*');
3
+ const imageOptimizationRegex = new RegExp('^/(_next/image).*');
4
+ const headerRequestsRegex = new RegExp('^/(favicon.ico).*');
5
+ const fronteggMiddlewareRegex = new RegExp('^/(api/frontegg).*');
6
+ const fronteggRoutesRegex = new RegExp('^/(account/|oauth/callback).*');
7
+ /**
8
+ * Use `shouldByPassMiddleware` in the middleware.ts file
9
+ * to protect all application's routes.
10
+ * You can override whitelist by passing options parameter
11
+ * NOTE: this will slow down your application due to session check on each
12
+ * static files and image request
13
+ *
14
+ * The default whitelist:
15
+ * - _next/static (static files)
16
+ * - _next/image (image optimization files)
17
+ * - favicon.ico (favicon file)
18
+ * - api/frontegg (API frontegg middleware)
19
+ * - account/[login|logout|saml/callback|...] (frontegg authentication routes)
20
+ */
21
+ export const shouldByPassMiddleware = (pathname, options) => {
22
+ const _options = _extends({
23
+ bypassStaticFiles: true,
24
+ bypassImageOptimization: true,
25
+ bypassHeaderRequests: true
26
+ }, options, {
27
+ bypassFronteggMiddleware: true,
28
+ bypassFronteggRoutes: true
29
+ });
30
+ const isStaticFiles = staticFilesRegex.test(pathname);
31
+ const isImageOptimization = imageOptimizationRegex.test(pathname);
32
+ const isHeaderRequests = headerRequestsRegex.test(pathname);
33
+ const isFronteggMiddleware = fronteggMiddlewareRegex.test(pathname);
34
+ const isFronteggRoutes = fronteggRoutesRegex.test(pathname);
35
+ if (isStaticFiles) return _options.bypassStaticFiles;
36
+ if (isImageOptimization) return _options.bypassImageOptimization;
37
+ if (isHeaderRequests) return _options.bypassHeaderRequests;
38
+ if (isFronteggMiddleware) return _options.bypassFronteggMiddleware;
39
+ if (isFronteggRoutes) return _options.bypassFronteggRoutes;
40
+ return false;
41
+ };
42
+ //# sourceMappingURL=shouldBypassMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shouldBypassMiddleware.js","names":["staticFilesRegex","RegExp","imageOptimizationRegex","headerRequestsRegex","fronteggMiddlewareRegex","fronteggRoutesRegex","shouldByPassMiddleware","pathname","options","_options","bypassStaticFiles","bypassImageOptimization","bypassHeaderRequests","bypassFronteggMiddleware","bypassFronteggRoutes","isStaticFiles","test","isImageOptimization","isHeaderRequests","isFronteggMiddleware","isFronteggRoutes"],"sources":["../../../../packages/nextjs/src/edge/shouldBypassMiddleware.ts"],"sourcesContent":["const staticFilesRegex = new RegExp('^/(_next/static).*');\nconst imageOptimizationRegex = new RegExp('^/(_next/image).*');\nconst headerRequestsRegex = new RegExp('^/(favicon.ico).*');\nconst fronteggMiddlewareRegex = new RegExp('^/(api/frontegg).*');\nconst fronteggRoutesRegex = new RegExp('^/(account/|oauth/callback).*');\n\ninterface ByPassOptions {\n bypassStaticFiles?: boolean; // default: true\n bypassImageOptimization?: boolean; // default: true\n bypassHeaderRequests?: boolean; // default: true\n}\n\n/**\n * Use `shouldByPassMiddleware` in the middleware.ts file\n * to protect all application's routes.\n * You can override whitelist by passing options parameter\n * NOTE: this will slow down your application due to session check on each\n * static files and image request\n *\n * The default whitelist:\n * - _next/static (static files)\n * - _next/image (image optimization files)\n * - favicon.ico (favicon file)\n * - api/frontegg (API frontegg middleware)\n * - account/[login|logout|saml/callback|...] (frontegg authentication routes)\n */\nexport const shouldByPassMiddleware = (pathname: string, options?: ByPassOptions): boolean => {\n const _options = {\n bypassStaticFiles: true,\n bypassImageOptimization: true,\n bypassHeaderRequests: true,\n ...options,\n bypassFronteggMiddleware: true,\n bypassFronteggRoutes: true,\n };\n\n const isStaticFiles = staticFilesRegex.test(pathname);\n const isImageOptimization = imageOptimizationRegex.test(pathname);\n const isHeaderRequests = headerRequestsRegex.test(pathname);\n const isFronteggMiddleware = fronteggMiddlewareRegex.test(pathname);\n const isFronteggRoutes = fronteggRoutesRegex.test(pathname);\n\n if (isStaticFiles) return _options.bypassStaticFiles;\n if (isImageOptimization) return _options.bypassImageOptimization;\n if (isHeaderRequests) return _options.bypassHeaderRequests;\n if (isFronteggMiddleware) return _options.bypassFronteggMiddleware;\n if (isFronteggRoutes) return _options.bypassFronteggRoutes;\n\n return false;\n};\n"],"mappings":";AAAA,MAAMA,gBAAgB,GAAG,IAAIC,MAAM,CAAC,oBAAoB,CAAC;AACzD,MAAMC,sBAAsB,GAAG,IAAID,MAAM,CAAC,mBAAmB,CAAC;AAC9D,MAAME,mBAAmB,GAAG,IAAIF,MAAM,CAAC,mBAAmB,CAAC;AAC3D,MAAMG,uBAAuB,GAAG,IAAIH,MAAM,CAAC,oBAAoB,CAAC;AAChE,MAAMI,mBAAmB,GAAG,IAAIJ,MAAM,CAAC,+BAA+B,CAAC;AAQvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMK,sBAAsB,GAAG,CAACC,QAAgB,EAAEC,OAAuB,KAAc;EAC5F,MAAMC,QAAQ;IACZC,iBAAiB,EAAE,IAAI;IACvBC,uBAAuB,EAAE,IAAI;IAC7BC,oBAAoB,EAAE;EAAI,GACvBJ,OAAO;IACVK,wBAAwB,EAAE,IAAI;IAC9BC,oBAAoB,EAAE;EAAI,EAC3B;EAED,MAAMC,aAAa,GAAGf,gBAAgB,CAACgB,IAAI,CAACT,QAAQ,CAAC;EACrD,MAAMU,mBAAmB,GAAGf,sBAAsB,CAACc,IAAI,CAACT,QAAQ,CAAC;EACjE,MAAMW,gBAAgB,GAAGf,mBAAmB,CAACa,IAAI,CAACT,QAAQ,CAAC;EAC3D,MAAMY,oBAAoB,GAAGf,uBAAuB,CAACY,IAAI,CAACT,QAAQ,CAAC;EACnE,MAAMa,gBAAgB,GAAGf,mBAAmB,CAACW,IAAI,CAACT,QAAQ,CAAC;EAE3D,IAAIQ,aAAa,EAAE,OAAON,QAAQ,CAACC,iBAAiB;EACpD,IAAIO,mBAAmB,EAAE,OAAOR,QAAQ,CAACE,uBAAuB;EAChE,IAAIO,gBAAgB,EAAE,OAAOT,QAAQ,CAACG,oBAAoB;EAC1D,IAAIO,oBAAoB,EAAE,OAAOV,QAAQ,CAACI,wBAAwB;EAClE,IAAIO,gBAAgB,EAAE,OAAOX,QAAQ,CAACK,oBAAoB;EAE1D,OAAO,KAAK;AACd,CAAC"}
package/index.d.ts CHANGED
@@ -1,11 +1,7 @@
1
- export * from './FronteggProvider';
2
- export * from './FronteggProviderNoSSR';
3
- export * from './AuthorizedContent';
4
- export * from './FronteggRouter';
5
- export * from './withFronteggApp';
6
- export * from './session';
7
- export * from './FronteggMiddleware';
8
- export * from './common';
9
- export { AdminPortal } from '@frontegg/js';
10
- export * from '@frontegg/react-hooks';
11
- export * from '@frontegg/types';
1
+ export * from './common';
2
+ export * from './config';
3
+ export * from './middleware';
4
+ export * from './types';
5
+ export { AdminPortal, AppHolder, HostedLogin } from '@frontegg/js';
6
+ export * from '@frontegg/react-hooks';
7
+ export * from '@frontegg/types';