@smg-automotive/auth 7.1.0-always-mount-auth-under-proxy-segment.1 → 7.1.0-always-mount-auth-under-proxy-segment.2

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 (65) hide show
  1. package/README.md +78 -170
  2. package/dist/{Auth-KOmvnSHJ.d.ts → Auth-C40nODjM.d.ts} +2 -2
  3. package/dist/cjs/client/contexts/Auth.d.ts +2 -2
  4. package/dist/cjs/client/contexts/Auth.js +4 -4
  5. package/dist/cjs/client/helpers/switchSelectedTenant.d.ts +2 -2
  6. package/dist/cjs/client/helpers/switchSelectedTenant.js +2 -2
  7. package/dist/cjs/client/helpers/switchSelectedTenant.js.map +1 -1
  8. package/dist/cjs/client/hooks/useAuthConfig.js +1 -1
  9. package/dist/cjs/client/hooks/useAuthConfig.js.map +1 -1
  10. package/dist/cjs/config/auth0.js +5 -7
  11. package/dist/cjs/config/auth0.js.map +1 -1
  12. package/dist/cjs/fixtures/authConfig.js +0 -3
  13. package/dist/cjs/fixtures/authConfig.js.map +1 -1
  14. package/dist/cjs/lib/utils.js +1 -1
  15. package/dist/cjs/lib/utils.js.map +1 -1
  16. package/dist/cjs/server/helpers/getAuthProps.js +2 -2
  17. package/dist/cjs/server/helpers/getAuthProps.js.map +1 -1
  18. package/dist/cjs/server/hooks/onCallbackFactory.js +7 -3
  19. package/dist/cjs/server/hooks/onCallbackFactory.js.map +1 -1
  20. package/dist/cjs/server/middleware/index.js +0 -8
  21. package/dist/cjs/server/middleware/index.js.map +1 -1
  22. package/dist/cjs/server/middleware/proactivelyRefreshAccessToken.d.ts +3 -1
  23. package/dist/cjs/server/middleware/proactivelyRefreshAccessToken.js +3 -2
  24. package/dist/cjs/server/middleware/proactivelyRefreshAccessToken.js.map +1 -1
  25. package/dist/cjs/server/middleware/protectRoute.js +1 -0
  26. package/dist/cjs/server/middleware/protectRoute.js.map +1 -1
  27. package/dist/cjs/server/middleware/token.js +1 -0
  28. package/dist/cjs/server/middleware/token.js.map +1 -1
  29. package/dist/cjs/test/mocks.js +5 -0
  30. package/dist/cjs/test/mocks.js.map +1 -1
  31. package/dist/cjs/types/auth0/config.d.ts +0 -3
  32. package/dist/esm/client/contexts/Auth.d.ts +2 -2
  33. package/dist/esm/client/contexts/Auth.js +4 -4
  34. package/dist/esm/client/helpers/switchSelectedTenant.d.ts +2 -2
  35. package/dist/esm/client/helpers/switchSelectedTenant.js +2 -2
  36. package/dist/esm/client/helpers/switchSelectedTenant.js.map +1 -1
  37. package/dist/esm/client/hooks/useAuthConfig.js +1 -1
  38. package/dist/esm/client/hooks/useAuthConfig.js.map +1 -1
  39. package/dist/esm/config/auth0.js +5 -7
  40. package/dist/esm/config/auth0.js.map +1 -1
  41. package/dist/esm/fixtures/authConfig.js +0 -3
  42. package/dist/esm/fixtures/authConfig.js.map +1 -1
  43. package/dist/esm/lib/utils.js +1 -1
  44. package/dist/esm/lib/utils.js.map +1 -1
  45. package/dist/esm/server/helpers/getAuthProps.js +2 -2
  46. package/dist/esm/server/helpers/getAuthProps.js.map +1 -1
  47. package/dist/esm/server/hooks/onCallbackFactory.js +7 -3
  48. package/dist/esm/server/hooks/onCallbackFactory.js.map +1 -1
  49. package/dist/esm/server/middleware/index.js +0 -8
  50. package/dist/esm/server/middleware/index.js.map +1 -1
  51. package/dist/esm/server/middleware/proactivelyRefreshAccessToken.d.ts +3 -1
  52. package/dist/esm/server/middleware/proactivelyRefreshAccessToken.js +3 -2
  53. package/dist/esm/server/middleware/proactivelyRefreshAccessToken.js.map +1 -1
  54. package/dist/esm/server/middleware/protectRoute.js +1 -0
  55. package/dist/esm/server/middleware/protectRoute.js.map +1 -1
  56. package/dist/esm/server/middleware/token.js +1 -0
  57. package/dist/esm/server/middleware/token.js.map +1 -1
  58. package/dist/esm/test/mocks.js +6 -0
  59. package/dist/esm/test/mocks.js.map +1 -1
  60. package/dist/esm/types/auth0/config.d.ts +0 -3
  61. package/dist/fixtures.d.ts +1 -1
  62. package/dist/index.d.ts +5 -5
  63. package/dist/server.d.ts +2 -2
  64. package/dist/{sessionUser-Wd3XUk39.d.ts → sessionUser-wavMinWI.d.ts} +0 -3
  65. package/package.json +2 -2
package/README.md CHANGED
@@ -47,21 +47,18 @@ Example: `redis://default:devpassword123@localhost:6379`
47
47
 
48
48
  The consuming project needs to enable node js middleware in next
49
49
 
50
- ```
50
+ ```ts
51
51
  // middleware.ts
52
52
  ...
53
53
  export const config = { runtime: "nodejs" };
54
54
  ```
55
55
 
56
- ### Auth Context
56
+ - Debug flag to force a token refresh on every interval
57
+ - `AUTH0_DEBUG_FORCE_TOKEN_REFRESH` - [optional] set to `true` to force a token refresh on every interval
57
58
 
58
- This package exposes the `AuthProvider` and `useAuth` hook to access the authentication related properties. The context exposes:
59
+ ### Auth Context
59
60
 
60
- - `user` - The user object with entitlements and managed sellers.
61
- - `accessToken` - The access token.
62
- - `selectTenant` - A function to change the currently selected tenant.
63
- - `isLoading` - Whether the user is loading.
64
- - `config` - The authentication configuration.
61
+ This package exposes the `AuthProvider`. It exposes the auth configuration and pre-caches the user data.
65
62
 
66
63
  You want to include the `AuthProvider` on the top level of your application and supply the props obtained server-side from auth0. The usage varies slightly depending on the router you are using. Check out the examples below.
67
64
 
@@ -72,11 +69,11 @@ We rely on `PageProps` combined with `getInitialProps` to pass the auth props to
72
69
  ```tsx
73
70
  // src/pages/_app.tsx
74
71
  import App, { type AppContext, type AppProps } from 'next/app';
75
- import { type AuthProps, AuthProvider } from '@smg-automotive/auth';
72
+ import { type AuthProviderProps, AuthProvider } from '@smg-automotive/auth';
76
73
 
77
74
  type PageProps = {
78
75
  // your other page props
79
- authProps: AuthProps;
76
+ authProps: AuthProviderProps;
80
77
  };
81
78
 
82
79
  const MyApp = ({
@@ -97,27 +94,28 @@ MyApp.getInitialProps = async (appContext: AppContext) => {
97
94
 
98
95
  const brand = yourBrandDerivingLogic();
99
96
  const language = yourLanguageDerivingLogic();
100
- const isProxied = yourProxyDetectionLogic();
101
97
  const protocol = yourProtocolDetectionLogic();
102
98
  const host = yourHostDetectionLogic();
103
99
 
104
- const { getServerAuthPropsPages } = await import(
100
+ const { getAuthProps } = await import(
105
101
  '@smg-automotive/auth/server'
106
102
  );
107
- return getServerAuthPropsPages({
108
- request,
109
- response,
110
- appProps,
103
+ const authProps = await getAuthProps({
111
104
  brand,
112
- language,
113
- isProxied,
114
105
  protocol,
115
106
  host,
116
- // Pass the other page props if you have any
117
- // pageProps,
118
- // You can pass the error handler of your choice
119
- // onError: Sentry.captureException,
107
+ context: {
108
+ request,
109
+ response,
110
+ },
120
111
  });
112
+
113
+ Object.assign(appProps.pageProps, {
114
+ ...pageProps,
115
+ authProps,
116
+ });
117
+
118
+ return appProps;
121
119
  };
122
120
 
123
121
  export default MyApp;
@@ -133,30 +131,25 @@ You can pass an `errorHandler` of your choice to the `AuthProvider` to handle er
133
131
 
134
132
  #### App Router
135
133
 
136
- We provide `getServerAuthPropsApp` function to get the auth props in the app router. You'll use it in the layout component where you include the `AuthProvider`.
134
+ We provide `getAuthProps` function to get the auth props in the app router. You'll use it in the layout component where you include the `AuthProvider`.
137
135
 
138
136
  ```tsx
139
137
  // src/app/layout.tsx
140
138
  import { FC, PropsWithChildren } from 'react';
141
139
 
142
140
  import { AuthProvider } from '@smg-automotive/auth';
143
- import { getServerAuthPropsApp } from '@smg-automotive/auth/server';
141
+ import { getAuthProps } from '@smg-automotive/auth/server';
144
142
 
145
143
  const Layout: FC<PropsWithChildren> = ({ children }) => {
146
144
  const brand = yourBrandDerivingLogic();
147
145
  const language = yourLanguageDetectionLogic();
148
- const isProxied = yourProxyDetectionLogic();
149
146
  const protocol = yourProtocolDetectionLogic();
150
147
  const host = yourHostDetectionLogic();
151
148
 
152
- const authProps = await getServerAuthPropsApp({
149
+ const authProps = await getAuthProps({
153
150
  brand,
154
- language,
155
- isProxied,
156
151
  protocol,
157
152
  host,
158
- // You can pass the error handler of your choice
159
- // onError: Sentry.captureException,
160
153
  });
161
154
 
162
155
  return (
@@ -178,6 +171,37 @@ const onError = async (error) => {
178
171
  };
179
172
  ```
180
173
 
174
+ #### Hooks and helpers
175
+
176
+ The package provides following hooks and helpers for session and user handling:
177
+
178
+ ##### Client-side (exposed from `@smg-automotive/auth`)
179
+ - `useUser` - a hook to access the user data
180
+ - `useAuthConfig` - a hook to access the auth config
181
+ - `getAccessToken` - a helper to get the access token. It can be used in the client-side data fetching logic
182
+ - `switchSelectedTenant` - a helper to switch the selected tenant. It will trigger a re-login and client-side navigation
183
+
184
+ ##### Server-side (exposed from `@smg-automotive/auth/server`)
185
+ - `isLoggedIn` - a helper to check if the user is logged in
186
+ - `getUser` - a helper to get the user data
187
+ - `getAccessToken` - a helper to get the access token for server-side data fetching
188
+
189
+
190
+ ##### Login and logout links
191
+
192
+ This package also provides utility functions to generate login and logout links.
193
+
194
+ ```ts
195
+ import { getLoginLink, getLogoutLink } from '@smg-automotive/auth';
196
+ ```
197
+
198
+ They expect the `auth0Config` to be passed as an argument, you can obtain it from the `config` object in the auth context.
199
+
200
+ ```ts
201
+ const auth0Config = useAuthConfig();
202
+ const loginLink = getLoginLink({ auth0Config });
203
+ ```
204
+
181
205
  ### Protecting routes with middleware
182
206
 
183
207
  We provide a middleware to protect routes from unauthenticated access. It will redirect to the login page if the user is not authenticated.
@@ -196,108 +220,22 @@ export default function middleware(
196
220
  request: NextRequest,
197
221
  event: NextFetchEvent,
198
222
  ) {
199
- // your logic to determine the language
200
- const language = determineLanguage(request);
201
- const isProxied = yourProxyDetectionLogic();
223
+ const language = yourLanguageDetectionLogic();
202
224
  const protocol = yourProtocolDetectionLogic();
203
225
  const host = yourHostDetectionLogic();
226
+ const brand = yourBrandDetectionLogic();
204
227
 
205
228
  return authMiddleware({
206
229
  request,
207
- event,
208
230
  isProtectedRoute,
209
231
  language,
210
- isProxied,
211
232
  protocol,
212
233
  host,
213
- // You can pass the error handler of your choice
214
- // onError: Sentry.captureException,
215
234
  });
216
235
  }
217
236
  ```
218
237
 
219
- ## TODO: Api routes are removed in v4
220
-
221
- ### API Routes
222
-
223
- For auth0 integration to work you need to provide api routes to handle the auth flow.
224
-
225
- ```ts
226
- // pages/api/auth/[auth0].ts
227
- import { NextApiRequest, NextApiResponse } from 'next';
228
- import { apiRoutesHandler } from '@smg-automotive/auth/server';
229
-
230
- export default async function handler(
231
- req: NextApiRequest,
232
- res: NextApiResponse,
233
- ) {
234
- const brand = yourBrandDerivingLogic();
235
- const isProxied = yourProxyDetectionLogic();
236
- const protocol = yourProtocolDetectionLogic();
237
- const host = yourHostDetectionLogic();
238
-
239
- return apiRoutesHandler({
240
- req,
241
- res,
242
- brand,
243
- isProxied,
244
- protocol,
245
- host,
246
- // You can pass the error handler of your choice (eg. Sentry)
247
- // onError
248
- });
249
- }
250
- ```
251
-
252
- ### Utility functions
253
-
254
- #### Login and logout links
255
-
256
- This package also provides utility functions to generate login and logout links.
257
-
258
- ```ts
259
- import { getLoginLink, getLogoutLink } from '@smg-automotive/auth';
260
- ```
261
-
262
- They expect the `auth0Config` to be passed as an argument, you can obtain it from the `config` object in the auth context.
263
-
264
- ```ts
265
- const { config: auth0Config } = useAuth();
266
- const loginLink = getLoginLink({ auth0Config });
267
- ```
268
-
269
- #### Session helpers
270
-
271
- For simplifying session handling on the server side we provide two helpers one to get the user and one to get the user and access tokens
272
- The functions share the same interface, the `getUser` function is non invasive and will return null if no user is present
273
- In comparison `getUserAndAccessToken` with trow errors and attempt to refresh the access token in case it's expired
274
-
275
- ```ts
276
- import { getUserAndAccessToken } from '@smg-automotive/auth';
277
- import { getUser } from '@smg-automotive/auth';
278
- ```
279
-
280
- The function expects the following arguments:
281
-
282
- - `protocol` - The protocol of the request.
283
- - `host` - The host of the request.
284
- - `isProxied` - Whether the request is proxied.
285
- - `context` - Request & Response objects (optionally, for pages router)
286
-
287
- The function will return the user and access token and will throw an error if the user is not authenticated.
288
-
289
- To guard against the errors you can use the `isLoggedIn` helper. It guarantees the presence of the user object in the session.
290
-
291
- ```ts
292
- import { isLoggedIn } from '@smg-automotive/auth/server';
293
- ```
294
-
295
- The function expects the following arguments:
296
-
297
- - `protocol` - The protocol of the request.
298
- - `host` - The host of the request.
299
- - `isProxied` - Whether the request is proxied.
300
- - `context` - Request & Response objects (optionally, for pages router)
238
+ Auth0 integration routes are handled by the middleware. You need to make sure that the middleware is invoked for all the route patters except the static assets, image optimisation and metadata files.
301
239
 
302
240
  ### Fixtures
303
241
 
@@ -325,66 +263,36 @@ import {
325
263
 
326
264
  ### Test environment setup
327
265
 
328
- Due to transient dependencies you will need update your test environment setup as follows:
329
-
330
- #### Add module name mapper for `jose` and `@panva/hkdf`
331
-
332
- ```ts
333
- // jest.config.ts
334
- export default {
335
- // rest of your config
336
- moduleNameMapper: {
337
- '^jose': require.resolve('jose'),
338
- '^@panva/hkdf': require.resolve('@panva/hkdf'),
339
- },
340
- };
341
- ```
342
-
343
- #### Mock the `oauth4webapi` package
266
+ #### Environment extension
267
+ Ensure that `TextEncoder`, `TextDecoder` and `fetch` are available in the test environment.
268
+ To make this easier we expose a `@smg-automotive/auth/test/environment-setup` module that you can add to jest setup:
344
269
 
345
270
  ```js
346
- // __mocks__/oauth4webapi.js
347
- module.exports = {
348
- clockSkew: Symbol('mockedClockSkew'),
271
+ // jest.config.js
272
+ const jestConfig = {
273
+ setupFilesAfterEnv: ['@smg-automotive/auth/test/environment-setup'],
349
274
  };
350
275
  ```
351
276
 
352
- #### Ensure `TextEncoder` and `TextDecoder` are available in the test environment
277
+ #### ESM modules transpilation
353
278
 
354
- ```ts
355
- // .jest/setup/textEncoder.ts
356
- const {
357
- TextEncoder: ImportedTextEncoder,
358
- TextDecoder: ImportedTextDecoder,
359
- } = require('util');
360
-
361
- Object.assign(global, {
362
- TextEncoder: ImportedTextEncoder,
363
- TextDecoder: ImportedTextDecoder,
364
- });
365
- ```
279
+ `auth0/nextjs-auth0` and some other transient dependencies are now pure ESM modules. Unfortunately, `jset` still struggles with ESM support, and when using `next/jest` the setup is quite challenging.
280
+ To that end we expose a `@smg-automotive/auth/test/setup` that can whitelist the required ESM modules for transpilation.
366
281
 
367
- ```ts
368
- // jest.config.ts
369
- export default {
370
- // rest of your config
371
- setupFilesAfterEnv: ['<rootDir>/.jest/setup/textEncoder.ts'],
372
- };
373
- ```
282
+ ```js
283
+ // jest.config.js
284
+ const nextJest = require('next/jest.js');
285
+ const {
286
+ transpileESMModulesForJest,
287
+ } = require('@smg-automotive/auth/test/setup');
374
288
 
375
- #### Ensure `fetch` is available in the test environment
289
+ const createJestConfig = nextJest({ dir: './' });
376
290
 
377
- ```ts
378
- // .jest/setup/fetch.ts
379
- import 'whatwg-fetch';
380
- ```
381
-
382
- ```ts
383
- // jest.config.ts
384
- export default {
385
- // rest of your config
386
- setupFilesAfterEnv: ['<rootDir>/.jest/setup/fetch.ts'],
291
+ const customJestConfig = {
292
+ // your custom jest config
387
293
  };
294
+
295
+ module.exports = transpileESMModulesForJest(createJestConfig(customJestConfig));
388
296
  ```
389
297
 
390
298
  #### Ensure you have configuration of the test environment
@@ -395,7 +303,7 @@ All required [configuration variables](#configuration) need to be set and loaded
395
303
 
396
304
  You can link your local npm package to integrate it with any local project:
397
305
 
398
- ```
306
+ ```bash
399
307
  cd smg-automotive-auth-pkg
400
308
  npm run build
401
309
 
@@ -1,8 +1,8 @@
1
1
  import { FC, PropsWithChildren } from 'react';
2
- import { A as Auth0Config, E as EnrichedSessionUser } from './sessionUser-Wd3XUk39.js';
2
+ import { A as Auth0Config, E as EnrichedSessionUser } from './sessionUser-wavMinWI.js';
3
3
 
4
4
  type AuthProviderProps = {
5
- config: Auth0Config;
5
+ auth0Config: Auth0Config;
6
6
  user: EnrichedSessionUser | null;
7
7
  };
8
8
  declare const AuthProvider: FC<PropsWithChildren<AuthProviderProps>>;
@@ -1,11 +1,11 @@
1
1
  import React, { FC, PropsWithChildren } from 'react';
2
2
  import { Auth0Config, EnrichedSessionUser } from 'src/types';
3
3
  type AuthContextType = {
4
- config: Auth0Config;
4
+ auth0Config: Auth0Config;
5
5
  };
6
6
  export declare const AuthContext: React.Context<AuthContextType | null>;
7
7
  export type AuthProviderProps = {
8
- config: Auth0Config;
8
+ auth0Config: Auth0Config;
9
9
  user: EnrichedSessionUser | null;
10
10
  };
11
11
  export declare const AuthProvider: FC<PropsWithChildren<AuthProviderProps>>;
@@ -5,16 +5,16 @@ var useSWR = require('swr');
5
5
  var React = require('react');
6
6
 
7
7
  const AuthContext = React.createContext(null);
8
- const AuthProvider = ({ children, config, user, }) => {
8
+ const AuthProvider = ({ children, auth0Config, user, }) => {
9
9
  const memoizedContext = React.useMemo(() => {
10
10
  return {
11
- config,
11
+ auth0Config,
12
12
  };
13
- }, [config]);
13
+ }, [auth0Config]);
14
14
  return (React.createElement(useSWR.SWRConfig, { value: {
15
15
  fallback: user
16
16
  ? {
17
- [config.userProfileEndpoint]: user,
17
+ [auth0Config.userProfileEndpoint]: user,
18
18
  }
19
19
  : {},
20
20
  } },
@@ -1,5 +1,5 @@
1
1
  import { Auth0Config } from 'src/types';
2
- export declare const switchSelectedTenant: ({ config, sellerId, }: {
3
- config: Auth0Config;
2
+ export declare const switchSelectedTenant: ({ auth0Config, sellerId, }: {
3
+ auth0Config: Auth0Config;
4
4
  sellerId: string;
5
5
  }) => Promise<void>;
@@ -2,12 +2,12 @@
2
2
 
3
3
  var authLinks = require('../../lib/authLinks.js');
4
4
 
5
- const switchSelectedTenant = async ({ config, sellerId, }) => {
5
+ const switchSelectedTenant = async ({ auth0Config, sellerId, }) => {
6
6
  const location = window.location;
7
7
  const returnTo = location.pathname + location.search + location.hash;
8
8
  const loginUrl = authLinks.getLoginLink({
9
9
  returnTo,
10
- auth0Config: config,
10
+ auth0Config,
11
11
  selectedSellerId: sellerId,
12
12
  });
13
13
  window.location.href = loginUrl;
@@ -1 +1 @@
1
- {"version":3,"file":"switchSelectedTenant.js","sources":["../../../../../src/client/helpers/switchSelectedTenant.ts"],"sourcesContent":[null],"names":["getLoginLink"],"mappings":";;;;AAGO,MAAM,oBAAoB,GAAG,OAAO,EACzC,MAAM,EACN,QAAQ,GAIT,KAAI;AACH,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAChC,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI;IAEpE,MAAM,QAAQ,GAAGA,sBAAY,CAAC;QAC5B,QAAQ;AACR,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,gBAAgB,EAAE,QAAQ;AAC3B,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ;AACjC;;;;"}
1
+ {"version":3,"file":"switchSelectedTenant.js","sources":["../../../../../src/client/helpers/switchSelectedTenant.ts"],"sourcesContent":[null],"names":["getLoginLink"],"mappings":";;;;AAGO,MAAM,oBAAoB,GAAG,OAAO,EACzC,WAAW,EACX,QAAQ,GAIT,KAAI;AACH,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAChC,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI;IAEpE,MAAM,QAAQ,GAAGA,sBAAY,CAAC;QAC5B,QAAQ;QACR,WAAW;AACX,QAAA,gBAAgB,EAAE,QAAQ;AAC3B,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ;AACjC;;;;"}
@@ -8,7 +8,7 @@ const useAuthConfig = () => {
8
8
  if (!context) {
9
9
  throw new Error('useAuthConfig must be used within an AuthProvider');
10
10
  }
11
- return context.config;
11
+ return context.auth0Config;
12
12
  };
13
13
 
14
14
  exports.useAuthConfig = useAuthConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"useAuthConfig.js","sources":["../../../../../src/client/hooks/useAuthConfig.ts"],"sourcesContent":[null],"names":["useContext","AuthContext"],"mappings":";;;;;AAIO,MAAM,aAAa,GAAG,MAAK;AAChC,IAAA,MAAM,OAAO,GAAGA,gBAAU,CAACC,gBAAW,CAAC;IAEvC,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;IACtE;IAEA,OAAO,OAAO,CAAC,MAAM;AACvB;;;;"}
1
+ {"version":3,"file":"useAuthConfig.js","sources":["../../../../../src/client/hooks/useAuthConfig.ts"],"sourcesContent":[null],"names":["useContext","AuthContext"],"mappings":";;;;;AAIO,MAAM,aAAa,GAAG,MAAK;AAChC,IAAA,MAAM,OAAO,GAAGA,gBAAU,CAACC,gBAAW,CAAC;IAEvC,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;IACtE;IAEA,OAAO,OAAO,CAAC,WAAW;AAC5B;;;;"}
@@ -15,6 +15,7 @@ const audience = utils.ensureString(process.env.AUTH0_AUDIENCE);
15
15
  const authCookieNames = utils.ensureString(process.env.AUTH0_CUSTOM_AUTH_COOKIE_NAMES)
16
16
  .split(',')
17
17
  .filter(Boolean);
18
+ const debugForceTokenRefresh = process.env.AUTH0_DEBUG_FORCE_TOKEN_REFRESH === 'true';
18
19
  if (!defaultLocale) {
19
20
  throw new Error('[Auth-package] DEFAULT_LOCALE is not set');
20
21
  }
@@ -33,18 +34,12 @@ const auth0Config = {
33
34
  callbackEndpoint: '/api/auth/callback',
34
35
  // Endpoint to fetch user profile
35
36
  userProfileEndpoint: '/api/auth/profile',
36
- // Interval delay to check if the token needs to be refreshed
37
- intervalDelayInMs: 10000,
38
- // If the token is valid for less than the specified time to app will rotate the token
39
- refreshThresholdInMs: 300000,
40
37
  // Segment to prefix on request when run in environments with a reverse proxy
41
38
  proxyPathSegment: '',
42
39
  // Legacy access token name
43
40
  legacyAccessTokenName: '',
44
41
  // Legacy refresh token name
45
42
  legacyRefreshTokenName: '',
46
- // Interval in MS to call function that checks if the token needs to be refreshed
47
- providerInterval: 10000,
48
43
  // Debug flag to force a token refresh on every interval
49
44
  debugForceTokenRefresh: false,
50
45
  // Language configuration
@@ -87,10 +82,13 @@ const auth0Config = {
87
82
  };
88
83
  const getAuth0Config = () => {
89
84
  const runtimeConfig = { ...auth0Config };
90
- runtimeConfig.proxyPathSegment = utils.ensureSlash(proxyPathSegment);
85
+ runtimeConfig.proxyPathSegment = proxyPathSegment
86
+ ? utils.ensureSlash(proxyPathSegment)
87
+ : '';
91
88
  runtimeConfig.legacyAccessTokenName = legacyAccessTokenName;
92
89
  runtimeConfig.legacyRefreshTokenName = legacyRefreshTokenName;
93
90
  runtimeConfig.selectedSellerIdCookie.secure = !isDevelopmentEnvironment;
91
+ runtimeConfig.debugForceTokenRefresh = debugForceTokenRefresh;
94
92
  return {
95
93
  ...runtimeConfig,
96
94
  loginEndpoint: `${runtimeConfig.proxyPathSegment}${runtimeConfig.loginEndpoint}`,
@@ -1 +1 @@
1
- {"version":3,"file":"auth0.js","sources":["../../../../src/config/auth0.ts"],"sourcesContent":[null],"names":["ensureString","ensureSlash"],"mappings":"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"}
1
+ {"version":3,"file":"auth0.js","sources":["../../../../src/config/auth0.ts"],"sourcesContent":[null],"names":["ensureString","ensureSlash"],"mappings":"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"}
@@ -7,8 +7,6 @@ const authConfig = (args = {}) => ({
7
7
  tokenEndpoint: '/api/auth/token',
8
8
  callbackEndpoint: '/api/auth/callback',
9
9
  userProfileEndpoint: '/api/auth/me',
10
- intervalDelayInMs: 10000,
11
- refreshThresholdInMs: 300000,
12
10
  sessionDuration,
13
11
  selectedSellerIdCookie: {
14
12
  name: 'selectedSellerId',
@@ -29,7 +27,6 @@ const authConfig = (args = {}) => ({
29
27
  proxyPathSegment: '/testproxypath',
30
28
  legacyAccessTokenName: 'dummy_at_int',
31
29
  legacyRefreshTokenName: 'dummy_rt_int',
32
- providerInterval: 10000,
33
30
  debugForceTokenRefresh: false,
34
31
  languageConfig: {
35
32
  default: 'de',
@@ -1 +1 @@
1
- {"version":3,"file":"authConfig.js","sources":["../../../../src/fixtures/authConfig.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEnC,MAAM,UAAU,GAAG,CAAC,OAA6B,EAAE,MAAmB;AAC3E,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,gBAAgB,EAAE,oBAAoB;AACtC,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,iBAAiB,EAAE,KAAK;AACxB,IAAA,oBAAoB,EAAE,MAAM;IAC5B,eAAe;AACf,IAAA,sBAAsB,EAAE;AACtB,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,GAAG;AACV,KAAA;AACD,IAAA,0BAA0B,EAAE;AAC1B,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;AACnB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,GAAG;AACV,KAAA;AACD,IAAA,gBAAgB,EAAE,gBAAgB;AAClC,IAAA,qBAAqB,EAAE,cAAc;AACrC,IAAA,sBAAsB,EAAE,cAAc;AACtC,IAAA,gBAAgB,EAAE,KAAK;AACvB,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,cAAc,EAAE;AACd,QAAA,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACpC,KAAA;AACD,IAAA,MAAM,EAAE,mDAAmD;AAC3D,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,QAAQ,EAAE,iDAAiD;AAC3D,IAAA,GAAG,IAAI;AACR,CAAA;;;;"}
1
+ {"version":3,"file":"authConfig.js","sources":["../../../../src/fixtures/authConfig.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEnC,MAAM,UAAU,GAAG,CAAC,OAA6B,EAAE,MAAmB;AAC3E,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,cAAc,EAAE,kBAAkB;AAClC,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,gBAAgB,EAAE,oBAAoB;AACtC,IAAA,mBAAmB,EAAE,cAAc;IACnC,eAAe;AACf,IAAA,sBAAsB,EAAE;AACtB,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,eAAe;AACvB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,GAAG;AACV,KAAA;AACD,IAAA,0BAA0B,EAAE;AAC1B,QAAA,IAAI,EAAE,sBAAsB;AAC5B,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;AACnB,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,IAAI,EAAE,GAAG;AACV,KAAA;AACD,IAAA,gBAAgB,EAAE,gBAAgB;AAClC,IAAA,qBAAqB,EAAE,cAAc;AACrC,IAAA,sBAAsB,EAAE,cAAc;AACtC,IAAA,sBAAsB,EAAE,KAAK;AAC7B,IAAA,cAAc,EAAE;AACd,QAAA,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACpC,KAAA;AACD,IAAA,MAAM,EAAE,mDAAmD;AAC3D,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,QAAQ,EAAE,iDAAiD;AAC3D,IAAA,GAAG,IAAI;AACR,CAAA;;;;"}
@@ -7,7 +7,7 @@ const ensureString = (value) => {
7
7
  return value;
8
8
  };
9
9
  const ensureSlash = (path) => {
10
- if (path.startsWith('/') || path === '') {
10
+ if (path.startsWith('/')) {
11
11
  return path;
12
12
  }
13
13
  return `/${path}`;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/lib/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAO,MAAM,YAAY,GAAG,CAAC,KAAyB,KAAI;AACxD,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,OAAO,KAAK;AACd;AAEO,MAAM,WAAW,GAAG,CAAC,IAAY,KAAI;IAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,EAAE,EAAE;AACvC,QAAA,OAAO,IAAI;IACb;IAEA,OAAO,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE;AACnB;;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/lib/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAO,MAAM,YAAY,GAAG,CAAC,KAAyB,KAAI;AACxD,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,OAAO,KAAK;AACd;AAEO,MAAM,WAAW,GAAG,CAAC,IAAY,KAAI;AAC1C,IAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACxB,QAAA,OAAO,IAAI;IACb;IAEA,OAAO,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE;AACnB;;;;;"}
@@ -4,9 +4,9 @@ var auth0 = require('../../config/auth0.js');
4
4
  var getUser = require('./getUser.js');
5
5
 
6
6
  const getAuthProps = async (context) => {
7
- const config = auth0.getAuth0Config();
7
+ const auth0Config = auth0.getAuth0Config();
8
8
  const user = await getUser.getEnrichedUser(context);
9
- return { config, user };
9
+ return { auth0Config, user };
10
10
  };
11
11
 
12
12
  exports.getAuthProps = getAuthProps;
@@ -1 +1 @@
1
- {"version":3,"file":"getAuthProps.js","sources":["../../../../../src/server/helpers/getAuthProps.ts"],"sourcesContent":[null],"names":["getAuth0Config","getEnrichedUser"],"mappings":";;;;;MAWa,YAAY,GAAG,OAC1B,OAMC,KAC6B;AAC9B,IAAA,MAAM,MAAM,GAAGA,oBAAc,EAAE;AAC/B,IAAA,MAAM,IAAI,GAAG,MAAMC,uBAAe,CAAC,OAAO,CAAC;AAE3C,IAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;AACzB;;;;"}
1
+ {"version":3,"file":"getAuthProps.js","sources":["../../../../../src/server/helpers/getAuthProps.ts"],"sourcesContent":[null],"names":["getAuth0Config","getEnrichedUser"],"mappings":";;;;;MAWa,YAAY,GAAG,OAC1B,OAMC,KAC6B;AAC9B,IAAA,MAAM,WAAW,GAAGA,oBAAc,EAAE;AACpC,IAAA,MAAM,IAAI,GAAG,MAAMC,uBAAe,CAAC,OAAO,CAAC;AAE3C,IAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE;AAC9B;;;;"}
@@ -19,8 +19,8 @@ const getLocaleFromContext = ({ returnTo }, appBaseUrl) => {
19
19
  }
20
20
  return '';
21
21
  };
22
- const errorCodeRegex = /\(([^)(]+)\)/;
23
22
  const incompleteTokenErrorCode = 'ERR_INCOMPLETE_TOKEN';
23
+ const errorCodeRegex = /\b([A-Z][A-Z0-9_]*[A-Z0-9])\b/g;
24
24
  const handleAuth0Error = ({ error, auth0Config, appBaseUrl, localeFromUrl, onError, }) => {
25
25
  const authorizedLocales = auth0Config.languageConfig.supported;
26
26
  const locale = authorizedLocales.includes(localeFromUrl)
@@ -31,8 +31,12 @@ const handleAuth0Error = ({ error, auth0Config, appBaseUrl, localeFromUrl, onErr
31
31
  'INITIAL_UNVERIFIED_EMAIL',
32
32
  incompleteTokenErrorCode,
33
33
  ];
34
- const matchedErrorCode = (error.message ?? '').match(errorCodeRegex);
35
- const extractedErrorCode = matchedErrorCode ? matchedErrorCode[1] : '';
34
+ let extractedErrorCode = '';
35
+ if (error.cause) {
36
+ const cause = error.cause;
37
+ const matchedErrorCode = cause.message.match(errorCodeRegex);
38
+ extractedErrorCode = matchedErrorCode ? matchedErrorCode[0] : '';
39
+ }
36
40
  if (extractedErrorCode === incompleteTokenErrorCode) {
37
41
  // eslint-disable-next-line no-console
38
42
  console.info('[Auth-package] logging out user CAUSE: ERR_INCOMPLETE_TOKEN');
@@ -1 +1 @@
1
- {"version":3,"file":"onCallbackFactory.js","sources":["../../../../../src/server/hooks/onCallbackFactory.ts"],"sourcesContent":[null],"names":["NextResponse","cookies","decodeJwt"],"mappings":";;;;;;AASA,MAAM,sBAAsB,GAAG,CAC7B,OAA0B,EAC1B,UAAkB,KACfA,mBAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,EAAE,UAAU,CAAC,CAAC;AAExE,MAAM,oBAAoB,GAAG,CAC3B,EAAE,QAAQ,EAAqB,EAC/B,UAAkB,KAChB;IACF,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;IAC7E;IAAE,OAAO,YAAY,EAAE;;AAErB,QAAA,OAAO,CAAC,IAAI,CACV,qDAAqD,EACrD,YAAY,CACb;IACH;AAEA,IAAA,OAAO,EAAE;AACX,CAAC;AAED,MAAM,cAAc,GAAG,cAAc;AACrC,MAAM,wBAAwB,GAAG,sBAA+B;AAEhE,MAAM,gBAAgB,GAAG,CAAC,EACxB,KAAK,EACL,WAAW,EACX,UAAU,EACV,aAAa,EACb,OAAO,GAOR,KAAkB;AACjB,IAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,cAAc,CAAC,SAAS;AAC9D,IAAA,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,aAAyB;AACjE,UAAG;AACH,UAAE,WAAW,CAAC,cAAc,CAAC,OAAO;AAEtC,IAAA,MAAM,cAAc,GAAG;QACrB,kBAAkB;QAClB,0BAA0B;QAC1B,wBAAwB;KACzB;AACD,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC;AACpE,IAAA,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE;AAEtE,IAAA,IAAI,kBAAkB,KAAK,wBAAwB,EAAE;;AAEnD,QAAA,OAAO,CAAC,IAAI,CAAC,6DAA6D,CAAC;AAE3E,QAAA,OAAOA,mBAAY,CAAC,QAAQ,CAC1B,IAAI,GAAG,CAAC,WAAW,CAAC,cAAc,EAAE,UAAU,CAAC,CAChD;IACH;IAEA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;AAChD,QAAA,OAAO,GAAG,KAAK,CAAC;;AAEhB,QAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC;IAC9C;IAEA,MAAM,cAAc,GAAG;UACnB,CAAA,MAAA,EAAS,kBAAkB,CAAA;UAC3B,EAAE;IAEN,OAAOA,mBAAY,CAAC,QAAQ,CAC1B,IAAI,GAAG,CACL,IAAI,MAAM,CAAA,EAAG,WAAW,CAAC,mBAAmB,GAAG,cAAc,CAAA,CAAE,EAC/D,UAAU,CACX,CACF;AACH,CAAC;MAEY,iBAAiB,GAC5B,CAAC,EACC,WAAW,EACX,UAAU,EACV,OAAO,GAKR,KACD,OACE,KAAsB,EACtB,OAA0B,EAC1B,OAA2B,KACF;IACzB,IAAI,KAAK,EAAE;QACT,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC;AAC/D,QAAA,OAAO,gBAAgB,CAAC;YACtB,KAAK;YACL,WAAW;YACX,UAAU;YACV,aAAa;YACb,OAAO;AACR,SAAA,CAAC;IACJ;AAEA,IAAA,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE;AACnC,QAAA,OAAO,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;IACpD;AAEA,IAAA,MAAM,WAAW,GAAG,MAAMC,eAAO,EAAE;AACnC,IAAA,IAAI,gBAAgB,GAClB,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI;AAEzE,IAAA,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;UAClCC,cAAS,CAAkB,OAAO,CAAC,QAAQ,CAAC,WAAW;UACvD,IAAI;AACR,IAAA,MAAM,kBAAkB,GAAG,YAAY,EAAE,SAAS,IAAI,IAAI;AAE1D,IAAA,IACE,kBAAkB;QAClB,gBAAgB;AAChB,QAAA,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACjC,kBAAkB,CAAC,MAAM,GAAG,CAAC;AAC7B,QAAA,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAC9C;;;;QAIA,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrD;IAEA,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC;IAE5D,IAAI,gBAAgB,EAAE;AACpB,QAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,CAClB,WAAW,CAAC,sBAAsB,CAAC,IAAI,EACvC,gBAAgB,EAChB,WAAW,CAAC,sBAAsB,CACnC;IACH;AAEA,IAAA,MAAM,oBAAoB,GAAG,YAAY,EAAE;AACzC,UAAE,YAAY,CAAC,SAAS,CAAC,CAAC;UACxB,IAAI;IAER,IAAI,oBAAoB,EAAE;AACxB,QAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,CAClB,WAAW,CAAC,0BAA0B,CAAC,IAAI,EAC3C,oBAAoB,EACpB,WAAW,CAAC,0BAA0B,CACvC;IACH;AAEA,IAAA,OAAO,QAAQ;AACjB;;;;"}
1
+ {"version":3,"file":"onCallbackFactory.js","sources":["../../../../../src/server/hooks/onCallbackFactory.ts"],"sourcesContent":[null],"names":["NextResponse","cookies","decodeJwt"],"mappings":"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"}
@@ -28,14 +28,6 @@ const authMiddleware = async ({ request, isProtectedRoute, language, host, proto
28
28
  });
29
29
  const auth0Config = auth0.getAuth0Config();
30
30
  const isAuthErrorRoute = pathname.endsWith(auth0Config.globalAuthErrorPath);
31
- // eslint-disable-next-line no-console
32
- console.log('[auth middleware]', {
33
- path: pathname,
34
- host,
35
- isProtectedRoute: isProtectedRoute(pathname),
36
- isAuthRoute: isAuthRoute(pathname, auth0Config),
37
- isAuthErrorRoute,
38
- });
39
31
  const crossDomainLogoutResult = logout.handleCrossDomainLogout({
40
32
  host,
41
33
  protocol,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/server/middleware/index.ts"],"sourcesContent":[null],"names":["getAuth0Instance","getAuth0Config","handleCrossDomainLogout","addLoginParamsFromCookies","setLoginRelatedCookies","deleteRelatedSessionCookies","handleAccessTokenRequest","handleUserProfile","protectRoute","combineHeaders","NextResponse"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/server/middleware/index.ts"],"sourcesContent":[null],"names":["getAuth0Instance","getAuth0Config","handleCrossDomainLogout","addLoginParamsFromCookies","setLoginRelatedCookies","deleteRelatedSessionCookies","handleAccessTokenRequest","handleUserProfile","protectRoute","combineHeaders","NextResponse"],"mappings":";;;;;;;;;;;;AAeA,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,WAAwB,KAAI;AACjE,IAAA,MAAM,EACJ,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,GACd,GAAG,WAAW;IAEf,OAAO;QACL,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,mBAAmB;QACnB,aAAa;AACd,KAAA,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACtB,CAAC;MAEY,cAAc,GAAG,OAAO,EACnC,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,KAAK,GASN,KAA2B;AAC1B,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO;IACpC,MAAM,aAAa,GAAGA,iCAAgB,CAAC;QACrC,IAAI;QACJ,QAAQ;AACT,KAAA,CAAC;AAEF,IAAA,MAAM,WAAW,GAAGC,oBAAc,EAAE;IACpC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC;IAE3E,MAAM,uBAAuB,GAAGC,8BAAuB,CAAC;QACtD,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,WAAW;AACZ,KAAA,CAAC;IACF,IAAI,uBAAuB,EAAE;AAC3B,QAAA,OAAO,uBAAuB;IAChC;AAEA,IAAAC,+BAAyB,CAAC;QACxB,OAAO;QACP,WAAW;AACZ,KAAA,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC;AAE5D,IAAAC,4BAAsB,CAAC;QACrB,OAAO;AACP,QAAA,QAAQ,EAAE,YAAY;QACtB,WAAW;AACZ,KAAA,CAAC;AAEF,IAAAC,kCAA2B,CAAC;QAC1B,IAAI;QACJ,OAAO;AACP,QAAA,QAAQ,EAAE,YAAY;QACtB,WAAW;AACZ,KAAA,CAAC;AAEF,IAAA,MAAM,wBAAwB,GAAG,MAAMC,8BAAwB,CAAC;QAC9D,OAAO;AACP,QAAA,QAAQ,EAAE,YAAY;QACtB,aAAa;QACb,WAAW;QACX,OAAO;AACR,KAAA,CAAC;IACF,IAAI,wBAAwB,EAAE;AAC5B,QAAA,OAAO,wBAAwB;IACjC;AAEA,IAAA,MAAM,uBAAuB,GAAG,MAAMC,yBAAiB,CAAC;QACtD,OAAO;QACP,aAAa;QACb,WAAW;QACX,KAAK;AACN,KAAA,CAAC;IACF,IAAI,uBAAuB,EAAE;AAC3B,QAAA,OAAO,uBAAuB;IAChC;IAEA,IAAI,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,gBAAgB,EAAE;AAC1D,QAAA,OAAO,YAAY;IACrB;IAEA,MAAM,WAAW,GAAG,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,QAAQ,CAAC;AACnE,IAAA,MAAM,kBAAkB,GAAG,MAAMC,yBAAY,CAAC;QAC5C,WAAW;QACX,aAAa;QACb,WAAW;QACX,QAAQ;QACR,OAAO;AACP,QAAA,QAAQ,EAAE,YAAY;QACtB,OAAO;AACR,KAAA,CAAC;IACF,IAAI,kBAAkB,EAAE;AACtB,QAAA,OAAO,kBAAkB;IAC3B;AAEA,IAAA,OAAOC,6BAAc,CAAC;AACpB,QAAA,kBAAkB,EAAEC,mBAAY,CAAC,IAAI,CAAC;AACpC,YAAA,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO;AACzB,aAAA;SACF,CAAC;QACF,YAAY;AACb,KAAA,CAAC;AACJ;;;;"}