@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
package/sdkVersion.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- declare const _default: {
2
- version: string;
3
- };
4
- export default _default;
1
+ declare const _default: {
2
+ version: string;
3
+ };
4
+ export default _default;
package/sdkVersion.js ADDED
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = {
8
+ version: '6.7.21-alpha.4441971157'
9
+ };
10
+ exports.default = _default;
11
+ //# sourceMappingURL=sdkVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkVersion.js","names":["version"],"sources":["../../../packages/nextjs/src/sdkVersion.ts"],"sourcesContent":["export default { version: '6.7.21-alpha.4441971157' };\n"],"mappings":";;;;;;eAAe;EAAEA,OAAO,EAAE;AAA0B,CAAC;AAAA"}
@@ -1,74 +1,80 @@
1
- import { FronteggAppOptions } from '@frontegg/types';
2
- import { ILoginResponse, ITenantsResponse } from '@frontegg/rest-api';
3
- import { IncomingMessage } from 'http';
4
- import { ReactNode } from 'react';
5
- import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context';
6
- import { NextRouter } from 'next/router';
7
- export type RequestType = IncomingMessage | Request;
8
- export interface AccountEnvironment {
9
- id: string;
10
- createdAt: string;
11
- environment: 'production' | 'development';
12
- }
13
- export interface CustomClaims {
14
- accountEnvironments: AccountEnvironment[];
15
- }
16
- export interface FronteggUserTokens {
17
- accessToken: string;
18
- refreshToken?: string;
19
- }
20
- export interface AllUserData {
21
- user?: ILoginResponse | null;
22
- tenants?: ITenantsResponse[] | null;
23
- session?: FronteggNextJSSession | null;
24
- }
25
- export interface FronteggUserSession {
26
- sub: string;
27
- name: string;
28
- email: string;
29
- email_verified: boolean;
30
- metadata: any;
31
- roles: string[];
32
- permissions: string[];
33
- tenantId: string;
34
- tenantIds: string[];
35
- profilePictureUrl: string;
36
- type: string;
37
- customClaims: CustomClaims;
38
- iat: number;
39
- exp: number;
40
- aud: string;
41
- iss: string;
42
- }
43
- export interface FronteggNextJSSession extends FronteggUserTokens {
44
- user: FronteggUserSession;
45
- }
46
- export interface AppEnvConfig {
47
- envAppUrl?: string;
48
- envBaseUrl?: string;
49
- envClientId?: string;
50
- }
51
- export interface FronteggProviderOptions extends Omit<FronteggAppOptions, 'contextOptions'>, AllUserData {
52
- envAppUrl: string;
53
- envBaseUrl: string;
54
- envClientId: string;
55
- contextOptions?: Omit<FronteggAppOptions['contextOptions'], 'baseUrl'>;
56
- }
57
- export interface FronteggProviderProps extends FronteggProviderOptions {
58
- children?: ReactNode;
59
- router: AppRouterInstance | NextRouter;
60
- appName?: string;
61
- }
62
- declare module 'iron-session' {
63
- interface IronSessionData {
64
- accessToken: FronteggNextJSSession['accessToken'];
65
- user: FronteggNextJSSession['user'];
66
- }
67
- }
68
- declare global {
69
- interface ProcessEnv {
70
- FRONTEGG_BASE_URL: string;
71
- PORT?: string;
72
- PWD: string;
73
- }
74
- }
1
+ import type { FronteggAppOptions } from '@frontegg/types';
2
+ import type { ILoginResponse, ITenantsResponse } from '@frontegg/rest-api';
3
+ import type { IncomingMessage } from 'http';
4
+ import type { ReactNode } from 'react';
5
+ import type { AppRouterInstance } from 'next/dist/shared/lib/app-router-context';
6
+ import type { NextRouter } from 'next/router';
7
+ export interface EncryptionUtils {
8
+ unsealTokens(data: string): Promise<FronteggUserTokens | undefined>;
9
+ sealTokens(tokens: FronteggUserTokens, ttl: number): Promise<string>;
10
+ }
11
+ export interface FronteggUserTokens {
12
+ accessToken: string;
13
+ refreshToken?: string;
14
+ }
15
+ export interface FronteggNextJSSession extends FronteggUserTokens {
16
+ user: FronteggUserSession;
17
+ }
18
+ export type RequestType = IncomingMessage | Request;
19
+ export interface AccountEnvironment {
20
+ id: string;
21
+ createdAt: string;
22
+ environment: 'production' | 'development';
23
+ }
24
+ export interface CustomClaims {
25
+ accountEnvironments: AccountEnvironment[];
26
+ }
27
+ export interface FronteggUserTokens {
28
+ accessToken: string;
29
+ refreshToken?: string;
30
+ }
31
+ export interface AllUserData {
32
+ user?: ILoginResponse | null;
33
+ tenants?: ITenantsResponse[] | null;
34
+ session?: FronteggNextJSSession | null;
35
+ }
36
+ export interface FronteggUserSession {
37
+ sub: string;
38
+ name: string;
39
+ email: string;
40
+ email_verified: boolean;
41
+ metadata: any;
42
+ roles: string[];
43
+ permissions: string[];
44
+ tenantId: string;
45
+ tenantIds: string[];
46
+ profilePictureUrl: string;
47
+ type: string;
48
+ customClaims: CustomClaims;
49
+ iat: number;
50
+ exp: number;
51
+ aud: string;
52
+ iss: string;
53
+ }
54
+ export interface FronteggNextJSSession extends FronteggUserTokens {
55
+ user: FronteggUserSession;
56
+ }
57
+ export interface FronteggProviderOptions extends Omit<FronteggAppOptions, 'contextOptions'>, AllUserData {
58
+ envAppUrl: string;
59
+ envBaseUrl: string;
60
+ envClientId: string;
61
+ contextOptions?: Omit<FronteggAppOptions['contextOptions'], 'baseUrl'>;
62
+ }
63
+ export interface FronteggProviderProps extends FronteggProviderOptions {
64
+ children?: ReactNode;
65
+ router: AppRouterInstance | NextRouter;
66
+ appName?: string;
67
+ }
68
+ declare module 'iron-session' {
69
+ interface IronSessionData {
70
+ accessToken: FronteggNextJSSession['accessToken'];
71
+ user: FronteggNextJSSession['user'];
72
+ }
73
+ }
74
+ declare global {
75
+ interface ProcessEnv {
76
+ FRONTEGG_BASE_URL: string;
77
+ PORT?: string;
78
+ PWD: string;
79
+ }
80
+ }
package/types/index.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../packages/nextjs/src/types/index.ts"],"sourcesContent":["import type { FronteggAppOptions } from '@frontegg/types';\nimport type { ILoginResponse, ITenantsResponse } from '@frontegg/rest-api';\nimport type { IncomingMessage } from 'http';\nimport type { ReactNode } from 'react';\nimport type { AppRouterInstance } from 'next/dist/shared/lib/app-router-context';\nimport type { NextRouter } from 'next/router';\n\nexport interface EncryptionUtils {\n unsealTokens(data: string): Promise<FronteggUserTokens | undefined>;\n\n sealTokens(tokens: FronteggUserTokens, ttl: number): Promise<string>;\n}\n\nexport interface FronteggUserTokens {\n accessToken: string;\n refreshToken?: string;\n}\n\nexport interface FronteggNextJSSession extends FronteggUserTokens {\n user: FronteggUserSession;\n}\n\nexport type RequestType = IncomingMessage | Request;\n\nexport interface AccountEnvironment {\n id: string;\n createdAt: string;\n environment: 'production' | 'development';\n}\n\nexport interface CustomClaims {\n accountEnvironments: AccountEnvironment[];\n}\n\nexport interface FronteggUserTokens {\n accessToken: string;\n refreshToken?: string;\n}\n\nexport interface AllUserData {\n user?: ILoginResponse | null;\n tenants?: ITenantsResponse[] | null;\n session?: FronteggNextJSSession | null;\n}\nexport interface FronteggUserSession {\n sub: string;\n name: string;\n email: string;\n email_verified: boolean;\n metadata: any;\n roles: string[];\n permissions: string[];\n tenantId: string;\n tenantIds: string[];\n profilePictureUrl: string;\n type: string; // \"userToken\"\n customClaims: CustomClaims;\n iat: number;\n exp: number;\n aud: string;\n iss: string;\n}\n\nexport interface FronteggNextJSSession extends FronteggUserTokens {\n user: FronteggUserSession;\n}\n\nexport interface FronteggProviderOptions extends Omit<FronteggAppOptions, 'contextOptions'>, AllUserData {\n envAppUrl: string;\n envBaseUrl: string;\n envClientId: string;\n contextOptions?: Omit<FronteggAppOptions['contextOptions'], 'baseUrl'>;\n}\n\nexport interface FronteggProviderProps extends FronteggProviderOptions {\n children?: ReactNode;\n router: AppRouterInstance | NextRouter;\n appName?: string;\n}\n\ndeclare module 'iron-session' {\n interface IronSessionData {\n accessToken: FronteggNextJSSession['accessToken'];\n user: FronteggNextJSSession['user'];\n }\n}\n\ndeclare global {\n interface ProcessEnv {\n FRONTEGG_BASE_URL: string;\n PORT?: string;\n PWD: string;\n }\n}\n"],"mappings":""}
@@ -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
+ export declare const FRONTEGG_AFTER_AUTH_REDIRECT_URL = "FRONTEGG_AFTER_AUTH_REDIRECT_URL";
2
+ /**
3
+ * Matches if val contains an invalid field-vchar
4
+ * field-value = *( field-content / obs-fold )
5
+ * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
6
+ * field-vchar = VCHAR / obs-text
7
+ *
8
+ * headerCharRegex have been lifted from
9
+ * https://github.com/nodejs/node/blob/main/lib/_http_common.js
10
+ */
11
+ export declare const headerCharRegex: RegExp;
12
+ export declare const cookieContentRegExp: RegExp;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.headerCharRegex = exports.cookieContentRegExp = exports.FRONTEGG_AFTER_AUTH_REDIRECT_URL = void 0;
7
+ const FRONTEGG_AFTER_AUTH_REDIRECT_URL = 'FRONTEGG_AFTER_AUTH_REDIRECT_URL';
8
+
9
+ /**
10
+ * Matches if val contains an invalid field-vchar
11
+ * field-value = *( field-content / obs-fold )
12
+ * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
13
+ * field-vchar = VCHAR / obs-text
14
+ *
15
+ * headerCharRegex have been lifted from
16
+ * https://github.com/nodejs/node/blob/main/lib/_http_common.js
17
+ */
18
+ exports.FRONTEGG_AFTER_AUTH_REDIRECT_URL = FRONTEGG_AFTER_AUTH_REDIRECT_URL;
19
+ const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/;
20
+ exports.headerCharRegex = headerCharRegex;
21
+ const cookieContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
22
+ exports.cookieContentRegExp = cookieContentRegExp;
23
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":["FRONTEGG_AFTER_AUTH_REDIRECT_URL","headerCharRegex","cookieContentRegExp"],"sources":["../../../../../packages/nextjs/src/utils/common/constants.ts"],"sourcesContent":["export const FRONTEGG_AFTER_AUTH_REDIRECT_URL = 'FRONTEGG_AFTER_AUTH_REDIRECT_URL';\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n *\n * headerCharRegex have been lifted from\n * https://github.com/nodejs/node/blob/main/lib/_http_common.js\n */\nexport const headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\nexport const cookieContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n"],"mappings":";;;;;;AAAO,MAAMA,gCAAgC,GAAG,kCAAkC;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA;AASO,MAAMC,eAAe,GAAG,yBAAyB;AAAC;AAClD,MAAMC,mBAAmB,GAAG,uCAAuC;AAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Splits a string into chunks of a specified size.
3
+ * @param {string} str - The string to be chunked.
4
+ * @param {number} chunkSize - The maximum size of each chunk.
5
+ * @returns {string[]} An array of chunks of the specified size.
6
+ */
7
+ declare function chunkString(str: string, chunkSize: number): string[];
8
+ export { chunkString };
9
+ /**
10
+ * Calculates the time until an expiration time based on the current time.
11
+ *
12
+ * @param {number} exp - The expiration time in seconds since the Unix epoch.
13
+ * @returns {number} The time until expiration in seconds.
14
+ */
15
+ export declare const calculateExpiresInFromExp: (exp: number) => number;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.calculateExpiresInFromExp = void 0;
7
+ exports.chunkString = chunkString;
8
+ /**
9
+ * Splits a string into chunks of a specified size.
10
+ * @param {string} str - The string to be chunked.
11
+ * @param {number} chunkSize - The maximum size of each chunk.
12
+ * @returns {string[]} An array of chunks of the specified size.
13
+ */
14
+ function chunkString(str, chunkSize) {
15
+ const numChunks = Math.ceil(str.length / chunkSize);
16
+ const chunks = [];
17
+ for (let i = 0; i < numChunks; i++) {
18
+ const start = i * chunkSize;
19
+ const end = start + chunkSize;
20
+ chunks.push(str.substring(start, end < str.length ? end : str.length));
21
+ }
22
+ return chunks;
23
+ }
24
+ /**
25
+ * Calculates the time until an expiration time based on the current time.
26
+ *
27
+ * @param {number} exp - The expiration time in seconds since the Unix epoch.
28
+ * @returns {number} The time until expiration in seconds.
29
+ */
30
+ const calculateExpiresInFromExp = exp => Math.floor((exp * 1000 - Date.now()) / 1000);
31
+ exports.calculateExpiresInFromExp = calculateExpiresInFromExp;
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["chunkString","str","chunkSize","numChunks","Math","ceil","length","chunks","i","start","end","push","substring","calculateExpiresInFromExp","exp","floor","Date","now"],"sources":["../../../../../packages/nextjs/src/utils/common/index.ts"],"sourcesContent":["/**\n * Splits a string into chunks of a specified size.\n * @param {string} str - The string to be chunked.\n * @param {number} chunkSize - The maximum size of each chunk.\n * @returns {string[]} An array of chunks of the specified size.\n */\nfunction chunkString(str: string, chunkSize: number) {\n const numChunks = Math.ceil(str.length / chunkSize);\n const chunks: string[] = [];\n for (let i = 0; i < numChunks; i++) {\n const start = i * chunkSize;\n const end = start + chunkSize;\n chunks.push(str.substring(start, end < str.length ? end : str.length));\n }\n return chunks;\n}\n\nexport { chunkString };\n\n/**\n * Calculates the time until an expiration time based on the current time.\n *\n * @param {number} exp - The expiration time in seconds since the Unix epoch.\n * @returns {number} The time until expiration in seconds.\n */\nexport const calculateExpiresInFromExp = (exp: number) => Math.floor((exp * 1000 - Date.now()) / 1000);\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,CAACC,GAAW,EAAEC,SAAiB,EAAE;EACnD,MAAMC,SAAS,GAAGC,IAAI,CAACC,IAAI,CAACJ,GAAG,CAACK,MAAM,GAAGJ,SAAS,CAAC;EACnD,MAAMK,MAAgB,GAAG,EAAE;EAC3B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,SAAS,EAAEK,CAAC,EAAE,EAAE;IAClC,MAAMC,KAAK,GAAGD,CAAC,GAAGN,SAAS;IAC3B,MAAMQ,GAAG,GAAGD,KAAK,GAAGP,SAAS;IAC7BK,MAAM,CAACI,IAAI,CAACV,GAAG,CAACW,SAAS,CAACH,KAAK,EAAEC,GAAG,GAAGT,GAAG,CAACK,MAAM,GAAGI,GAAG,GAAGT,GAAG,CAACK,MAAM,CAAC,CAAC;EACxE;EACA,OAAOC,MAAM;AACf;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMM,yBAAyB,GAAIC,GAAW,IAAKV,IAAI,CAACW,KAAK,CAAC,CAACD,GAAG,GAAG,IAAI,GAAGE,IAAI,CAACC,GAAG,EAAE,IAAI,IAAI,CAAC;AAAC"}
@@ -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,7 @@
1
+ /**
2
+ * Maximum cookie value length, used to split encrypted session cookie
3
+ * in order to store large jwt as array of cookies
4
+ *
5
+ * The MAX header length is 4092 we picked 4000 as MAX CookieHeader length
6
+ */
7
+ export declare const COOKIE_MAX_LENGTH = 4000;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.COOKIE_MAX_LENGTH = void 0;
7
+ /**
8
+ * Maximum cookie value length, used to split encrypted session cookie
9
+ * in order to store large jwt as array of cookies
10
+ *
11
+ * The MAX header length is 4092 we picked 4000 as MAX CookieHeader length
12
+ */
13
+ const COOKIE_MAX_LENGTH = 4000;
14
+ exports.COOKIE_MAX_LENGTH = COOKIE_MAX_LENGTH;
15
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":["COOKIE_MAX_LENGTH"],"sources":["../../../../../packages/nextjs/src/utils/cookies/constants.ts"],"sourcesContent":["/**\n * Maximum cookie value length, used to split encrypted session cookie\n * in order to store large jwt as array of cookies\n *\n * The MAX header length is 4092 we picked 4000 as MAX CookieHeader length\n */\nexport const COOKIE_MAX_LENGTH = 4000;\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,iBAAiB,GAAG,IAAI;AAAC"}
@@ -0,0 +1,25 @@
1
+ import { CookieSerializeOptions, RequestType } from './types';
2
+ /**
3
+ * Return a cookieName with index, used for divided cookies.
4
+ *
5
+ * @param {number} index - The index of the cookie, starts with '1'
6
+ * @param {string} _cookieName - Default is {@link config.cookieName}
7
+ */
8
+ export declare const getIndexedCookieName: (index: number, _cookieName?: string) => string;
9
+ /**
10
+ * Split cookie value if value length exceeded the MAX Length of a standard HTTP header.
11
+ * Used to split the session cookie.
12
+ *
13
+ * @param {string} cookieName - Cookie name for serializing
14
+ * @param {string} value - cookie value to split if needed
15
+ * @param {CookieSerializeOptions} options - {@link CookieSerializeOptions} for serializing
16
+ */
17
+ export declare const splitValueToChunks: (cookieName: string, value: string, options: CookieSerializeOptions) => string[];
18
+ /**
19
+ * Receive incoming http request, and extract the cookie header.
20
+ * @return cookie as string if exists, else empty string
21
+ *
22
+ * @param {RequestType} request - Incoming HTTP Request
23
+ */
24
+ export declare const getCookieHeader: (request: RequestType) => string;
25
+ export declare const getRefreshTokenCookieNameVariants: () => string[];
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.splitValueToChunks = exports.getRefreshTokenCookieNameVariants = exports.getIndexedCookieName = exports.getCookieHeader = void 0;
8
+ var _serializer = _interopRequireDefault(require("./serializer"));
9
+ var _constants = require("./constants");
10
+ var _common = require("../common");
11
+ var _config = _interopRequireDefault(require("../../config"));
12
+ /**
13
+ * Return a cookieName with index, used for divided cookies.
14
+ *
15
+ * @param {number} index - The index of the cookie, starts with '1'
16
+ * @param {string} _cookieName - Default is {@link config.cookieName}
17
+ */
18
+ const getIndexedCookieName = (index, _cookieName) => {
19
+ const cookieName = _cookieName != null ? _cookieName : _config.default.cookieName;
20
+ return `${cookieName}-${index}`;
21
+ };
22
+
23
+ /**
24
+ * Split cookie value if value length exceeded the MAX Length of a standard HTTP header.
25
+ * Used to split the session cookie.
26
+ *
27
+ * @param {string} cookieName - Cookie name for serializing
28
+ * @param {string} value - cookie value to split if needed
29
+ * @param {CookieSerializeOptions} options - {@link CookieSerializeOptions} for serializing
30
+ */
31
+ exports.getIndexedCookieName = getIndexedCookieName;
32
+ const splitValueToChunks = (cookieName, value, options) => {
33
+ const cookieOptionLength = _serializer.default.serialize(getIndexedCookieName(1, cookieName), '', options).length;
34
+ const chunkSize = _constants.COOKIE_MAX_LENGTH - cookieOptionLength - 1;
35
+ const valueChunks = (0, _common.chunkString)(value, chunkSize);
36
+ return valueChunks.map((chunk, index) => {
37
+ const indexedCookieName = getIndexedCookieName(index + 1, cookieName);
38
+ return _serializer.default.serialize(indexedCookieName, chunk, options) + ';';
39
+ });
40
+ };
41
+
42
+ /**
43
+ * Receive incoming http request, and extract the cookie header.
44
+ * @return cookie as string if exists, else empty string
45
+ *
46
+ * @param {RequestType} request - Incoming HTTP Request
47
+ */
48
+ exports.splitValueToChunks = splitValueToChunks;
49
+ const getCookieHeader = request => {
50
+ let cookieHeader;
51
+ if ('credentials' in request) {
52
+ cookieHeader = request.headers.get('cookie');
53
+ } else {
54
+ cookieHeader = request.headers.cookie;
55
+ }
56
+ if (!cookieHeader) {
57
+ return '';
58
+ }
59
+ return cookieHeader;
60
+ };
61
+ exports.getCookieHeader = getCookieHeader;
62
+ const getRefreshTokenCookieNameVariants = () => [`fe_refresh_${_config.default.clientId}`, `fe_refresh_${_config.default.clientId.replace('-', '')}`, `fe_refresh_${_config.default.clientId.replace(/-/g, '')}`];
63
+ exports.getRefreshTokenCookieNameVariants = getRefreshTokenCookieNameVariants;
64
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","names":["getIndexedCookieName","index","_cookieName","cookieName","config","splitValueToChunks","value","options","cookieOptionLength","cookieSerializer","serialize","length","chunkSize","COOKIE_MAX_LENGTH","valueChunks","chunkString","map","chunk","indexedCookieName","getCookieHeader","request","cookieHeader","headers","get","cookie","getRefreshTokenCookieNameVariants","clientId","replace"],"sources":["../../../../../packages/nextjs/src/utils/cookies/helpers.ts"],"sourcesContent":["import cookieSerializer from './serializer';\nimport { COOKIE_MAX_LENGTH } from './constants';\nimport { chunkString } from '../common';\nimport config from '../../config';\nimport { CookieSerializeOptions, RequestType } from './types';\n\n/**\n * Return a cookieName with index, used for divided cookies.\n *\n * @param {number} index - The index of the cookie, starts with '1'\n * @param {string} _cookieName - Default is {@link config.cookieName}\n */\nexport const getIndexedCookieName = (index: number, _cookieName?: string) => {\n const cookieName = _cookieName ?? config.cookieName;\n return `${cookieName}-${index}`;\n};\n\n/**\n * Split cookie value if value length exceeded the MAX Length of a standard HTTP header.\n * Used to split the session cookie.\n *\n * @param {string} cookieName - Cookie name for serializing\n * @param {string} value - cookie value to split if needed\n * @param {CookieSerializeOptions} options - {@link CookieSerializeOptions} for serializing\n */\nexport const splitValueToChunks = (cookieName: string, value: string, options: CookieSerializeOptions): string[] => {\n const cookieOptionLength = cookieSerializer.serialize(getIndexedCookieName(1, cookieName), '', options).length;\n const chunkSize = COOKIE_MAX_LENGTH - cookieOptionLength - 1;\n\n const valueChunks = chunkString(value, chunkSize);\n\n return valueChunks.map((chunk, index) => {\n const indexedCookieName = getIndexedCookieName(index + 1, cookieName);\n return cookieSerializer.serialize(indexedCookieName, chunk, options) + ';';\n });\n};\n\n/**\n * Receive incoming http request, and extract the cookie header.\n * @return cookie as string if exists, else empty string\n *\n * @param {RequestType} request - Incoming HTTP Request\n */\nexport const getCookieHeader = (request: RequestType): string => {\n let cookieHeader: string | null | undefined;\n if ('credentials' in request) {\n cookieHeader = request.headers.get('cookie');\n } else {\n cookieHeader = request.headers.cookie;\n }\n if (!cookieHeader) {\n return '';\n }\n\n return cookieHeader;\n};\n\nexport const getRefreshTokenCookieNameVariants = () => [\n `fe_refresh_${config.clientId}`,\n `fe_refresh_${config.clientId.replace('-', '')}`,\n `fe_refresh_${config.clientId.replace(/-/g, '')}`,\n];\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,oBAAoB,GAAG,CAACC,KAAa,EAAEC,WAAoB,KAAK;EAC3E,MAAMC,UAAU,GAAGD,WAAW,WAAXA,WAAW,GAAIE,eAAM,CAACD,UAAU;EACnD,OAAQ,GAAEA,UAAW,IAAGF,KAAM,EAAC;AACjC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;AAQO,MAAMI,kBAAkB,GAAG,CAACF,UAAkB,EAAEG,KAAa,EAAEC,OAA+B,KAAe;EAClH,MAAMC,kBAAkB,GAAGC,mBAAgB,CAACC,SAAS,CAACV,oBAAoB,CAAC,CAAC,EAAEG,UAAU,CAAC,EAAE,EAAE,EAAEI,OAAO,CAAC,CAACI,MAAM;EAC9G,MAAMC,SAAS,GAAGC,4BAAiB,GAAGL,kBAAkB,GAAG,CAAC;EAE5D,MAAMM,WAAW,GAAG,IAAAC,mBAAW,EAACT,KAAK,EAAEM,SAAS,CAAC;EAEjD,OAAOE,WAAW,CAACE,GAAG,CAAC,CAACC,KAAK,EAAEhB,KAAK,KAAK;IACvC,MAAMiB,iBAAiB,GAAGlB,oBAAoB,CAACC,KAAK,GAAG,CAAC,EAAEE,UAAU,CAAC;IACrE,OAAOM,mBAAgB,CAACC,SAAS,CAACQ,iBAAiB,EAAED,KAAK,EAAEV,OAAO,CAAC,GAAG,GAAG;EAC5E,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALA;AAMO,MAAMY,eAAe,GAAIC,OAAoB,IAAa;EAC/D,IAAIC,YAAuC;EAC3C,IAAI,aAAa,IAAID,OAAO,EAAE;IAC5BC,YAAY,GAAGD,OAAO,CAACE,OAAO,CAACC,GAAG,CAAC,QAAQ,CAAC;EAC9C,CAAC,MAAM;IACLF,YAAY,GAAGD,OAAO,CAACE,OAAO,CAACE,MAAM;EACvC;EACA,IAAI,CAACH,YAAY,EAAE;IACjB,OAAO,EAAE;EACX;EAEA,OAAOA,YAAY;AACrB,CAAC;AAAC;AAEK,MAAMI,iCAAiC,GAAG,MAAM,CACpD,cAAarB,eAAM,CAACsB,QAAS,EAAC,EAC9B,cAAatB,eAAM,CAACsB,QAAQ,CAACC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAE,EAAC,EAC/C,cAAavB,eAAM,CAACsB,QAAQ,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAE,EAAC,CAClD;AAAC"}
@@ -0,0 +1,45 @@
1
+ import type { RequestCookie } from 'next/dist/server/web/spec-extension/cookies';
2
+ import { CreateCookieOptions, RemoveCookiesOptions, RequestType } from './types';
3
+ declare class CookieManager {
4
+ getCookieName: (cookieNumber?: number, cookieName?: string) => string;
5
+ get refreshTokenKey(): string;
6
+ /**
7
+ * Validate and create new cookie headers.
8
+ * The default value of `cookieName` is {@link config.cookieName}
9
+ * @param {CreateCookieOptions} options - Create cookie options
10
+ */
11
+ create(options: CreateCookieOptions): string[];
12
+ /**
13
+ * Receive incoming http request, and extract the cookie header.
14
+ * @return cookie as string if exists, else empty string
15
+ *
16
+ * @param {RequestType} request - Incoming HTTP Request
17
+ */
18
+ parseCookieHeader(request: RequestType): Record<string, string>;
19
+ /**
20
+ * Loop over cookie headers, extract, parse cookies and merged divided cookies from incoming http request,
21
+ * @return full session cookie headers if exists, else return undefined
22
+ * @param {RequestType} request - Incoming HTTP Request
23
+ */
24
+ getSessionCookieFromRequest(request?: RequestType): string | undefined;
25
+ parseCookieFromArray(cookies: RequestCookie[]): string | undefined;
26
+ private createEmptySingleCookie;
27
+ createEmptyCookies: (isSecured: boolean, cookieDomain: string, _cookiesToRemove: string[]) => string[];
28
+ private getCookiesToRemove;
29
+ /**
30
+ * Take a list of cookieNames and modify request/response headers
31
+ * to proxy the cookies from Next.js to Frontegg Services and vice-versa
32
+ * @param {string[]} setCookieValue - list of cookies to modify
33
+ * @param {boolean} isSecured - if the running application behind SSL
34
+ */
35
+ removeCookies({ cookieNames, isSecured, cookieDomain, res, req }: RemoveCookiesOptions): void;
36
+ /**
37
+ * Take a list of cookie headers and modify the Domain / Secure / SameSite
38
+ * to proxy the cookies to Frontegg Services and vice-versa
39
+ * @param {string[]} setCookieValue - list of cookies to modify
40
+ * @param {boolean} isSecured - if the running application behind SSL
41
+ */
42
+ modifySetCookie: (setCookieValue: string[] | undefined, isSecured: boolean) => string[] | undefined;
43
+ }
44
+ declare const _default: CookieManager;
45
+ export default _default;