@frontegg/nextjs 9.2.10 → 9.2.11-alpha.18744232867
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.
- package/CHANGELOG.md +6 -0
- package/index.js +1 -1
- package/middleware/FronteggApiMiddleware.js +1 -1
- package/middleware/FronteggApiMiddleware.js.map +1 -1
- package/package.json +1 -1
- package/pages/helpers.d.ts +12 -1
- package/pages/helpers.js +11 -0
- package/pages/helpers.js.map +1 -1
- package/sdkVersion.js +1 -1
- package/sdkVersion.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## [9.2.11](https://github.com/frontegg/frontegg-nextjs/compare/v9.2.10...v9.2.11) (2025-10-23)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### NextJS Wrapper 9.2.11:
|
|
7
|
+
- FR-22443 Enhance getSession function to require response object
|
|
8
|
+
|
|
3
9
|
## [9.2.10](https://github.com/frontegg/frontegg-nextjs/compare/v9.2.9...v9.2.10) (2025-10-19)
|
|
4
10
|
|
|
5
11
|
|
package/index.js
CHANGED
|
@@ -50,7 +50,7 @@ const middlewarePromise = (req, res, options) => new Promise(async resolve => {
|
|
|
50
50
|
}
|
|
51
51
|
const headers = {};
|
|
52
52
|
if (process.env['FRONTEGG_SECURE_JWT_ENABLED'] === 'true') {
|
|
53
|
-
const session = await (0, _pages.getSession)(req);
|
|
53
|
+
const session = await (0, _pages.getSession)(req, res);
|
|
54
54
|
if (session != null && session.accessToken) {
|
|
55
55
|
headers['authorization'] = 'Bearer ' + session.accessToken;
|
|
56
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FronteggApiMiddleware.js","names":["_FronteggProxy","require","_constants","_helpers","_pages","_config","_interopRequireDefault","_cookies","_common","handleCors","req","res","corsOptions","_req$headers$host","allowedOrigins","allowedMethods","allowedHeaders","allowCredentials","isInternalRequest","headers","host","_req$headers$origin","origin","combinedHeaders","Array","from","Set","defaultFronteggHeaders","includes","setHeader","removeHeader","join","middlewarePromise","options","Promise","resolve","_req$url","fronteggUrlPath","rewritePath","url","fronteggPathRewrite","rewriteUrl","fronteggSSOPathRewrite","on","proxyOptions","target","process","env","session","getSession","accessToken","config","isHostedLogin","isFronteggLogoutUrl","sessionCookie","CookieManager","getSessionCookieFromRequest","tokens","getTokensFromCookie","ipResolver","cors","FronteggProxy","web","_extends2","default","FronteggApiMiddleware","exports","withOptions"],"sources":["../../../../packages/nextjs/src/middleware/FronteggApiMiddleware.ts"],"sourcesContent":["import type { NextApiRequest, NextApiResponse } from 'next';\nimport { FronteggProxy } from './FronteggProxy';\nimport { fronteggSSOPathRewrite, fronteggPathRewrite, defaultFronteggHeaders } from './constants';\nimport { isInternalRequest, rewritePath } from './helpers';\nimport { getSession } from '../pages';\nimport { CorsOptions, FronteggApiMiddlewareType, FronteggMiddlewareOptions } from './types';\nimport config from '../config';\nimport { isFronteggLogoutUrl } from './helpers';\nimport CookieManager from '../utils/cookies';\nimport { getTokensFromCookie } from '../common';\n\nconst handleCors = (req: NextApiRequest, res: NextApiResponse, corsOptions?: CorsOptions) => {\n if (!corsOptions) return;\n\n const {\n allowedOrigins = ['*'],\n allowedMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],\n allowedHeaders = ['Content-Type', 'Authorization'],\n allowCredentials = true,\n } = corsOptions;\n\n if (isInternalRequest(req.headers.host ?? '')) {\n const origin = req.headers.origin ?? '';\n const combinedHeaders = Array.from(new Set([...defaultFronteggHeaders, ...allowedHeaders]));\n\n if (allowedOrigins.includes(origin)) {\n res.setHeader('Access-Control-Allow-Origin', origin);\n } else {\n res.removeHeader('Access-Control-Allow-Origin');\n }\n\n res.setHeader('Access-Control-Allow-Methods', allowedMethods.join(','));\n res.setHeader('Access-Control-Allow-Headers', combinedHeaders.join(','));\n res.setHeader('Access-Control-Allow-Credentials', allowCredentials ? 'true' : 'false');\n }\n};\n\nconst middlewarePromise = (req: NextApiRequest, res: NextApiResponse, options?: FronteggMiddlewareOptions) =>\n new Promise<void>(async (resolve) => {\n const fronteggUrlPath = rewritePath(req.url ?? '/', fronteggPathRewrite);\n const rewriteUrl = rewritePath(fronteggUrlPath ?? '/', fronteggSSOPathRewrite);\n req.url = rewriteUrl;\n res.on('close', () => resolve());\n const proxyOptions = {\n target: process.env['FRONTEGG_BASE_URL'],\n };\n if (process.env['FRONTEGG_TEST_URL'] && req.url == '/frontegg/middleware-test') {\n proxyOptions.target = process.env['FRONTEGG_TEST_URL'];\n }\n const headers: Record<string, string> = {};\n if (process.env['FRONTEGG_SECURE_JWT_ENABLED'] === 'true') {\n const session = await getSession(req);\n if (session?.accessToken) {\n headers['authorization'] = 'Bearer ' + session.accessToken;\n }\n }\n\n if (config.isHostedLogin && isFronteggLogoutUrl(req.url || '') && !headers['authorization']) {\n const sessionCookie = CookieManager.getSessionCookieFromRequest(req);\n const tokens = await getTokensFromCookie(sessionCookie);\n if (tokens?.accessToken) {\n headers['authorization'] = 'Bearer ' + tokens.accessToken;\n }\n }\n\n if (options?.ipResolver) {\n config.ipResolver = options.ipResolver;\n }\n\n handleCors(req, res, options?.cors);\n\n FronteggProxy.web(req, res, {\n ...proxyOptions,\n headers,\n });\n });\n\n/**\n * Next.js HTTP Proxy Middleware\n * @see https://nextjs.org/docs/api-routes/api-middlewares\n * @param {NextApiRequest} req - NextJS api request passed from api routing\n * @param {NextApiResponse} res - NextJS api response passed from api routing\n */\nconst FronteggApiMiddleware: FronteggApiMiddlewareType = (async (\n req: NextApiRequest,\n res: NextApiResponse\n): Promise<void> => {\n return await middlewarePromise(req, res);\n}) as FronteggApiMiddlewareType;\n\nFronteggApiMiddleware.withOptions =\n (options: FronteggMiddlewareOptions) =>\n async (req: NextApiRequest, res: NextApiResponse): Promise<void> => {\n return await middlewarePromise(req, res, options);\n };\n\nexport { FronteggApiMiddleware };\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FronteggApiMiddleware.js","names":["_FronteggProxy","require","_constants","_helpers","_pages","_config","_interopRequireDefault","_cookies","_common","handleCors","req","res","corsOptions","_req$headers$host","allowedOrigins","allowedMethods","allowedHeaders","allowCredentials","isInternalRequest","headers","host","_req$headers$origin","origin","combinedHeaders","Array","from","Set","defaultFronteggHeaders","includes","setHeader","removeHeader","join","middlewarePromise","options","Promise","resolve","_req$url","fronteggUrlPath","rewritePath","url","fronteggPathRewrite","rewriteUrl","fronteggSSOPathRewrite","on","proxyOptions","target","process","env","session","getSession","accessToken","config","isHostedLogin","isFronteggLogoutUrl","sessionCookie","CookieManager","getSessionCookieFromRequest","tokens","getTokensFromCookie","ipResolver","cors","FronteggProxy","web","_extends2","default","FronteggApiMiddleware","exports","withOptions"],"sources":["../../../../packages/nextjs/src/middleware/FronteggApiMiddleware.ts"],"sourcesContent":["import type { NextApiRequest, NextApiResponse } from 'next';\nimport { FronteggProxy } from './FronteggProxy';\nimport { fronteggSSOPathRewrite, fronteggPathRewrite, defaultFronteggHeaders } from './constants';\nimport { isInternalRequest, rewritePath } from './helpers';\nimport { getSession } from '../pages';\nimport { CorsOptions, FronteggApiMiddlewareType, FronteggMiddlewareOptions } from './types';\nimport config from '../config';\nimport { isFronteggLogoutUrl } from './helpers';\nimport CookieManager from '../utils/cookies';\nimport { getTokensFromCookie } from '../common';\n\nconst handleCors = (req: NextApiRequest, res: NextApiResponse, corsOptions?: CorsOptions) => {\n if (!corsOptions) return;\n\n const {\n allowedOrigins = ['*'],\n allowedMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],\n allowedHeaders = ['Content-Type', 'Authorization'],\n allowCredentials = true,\n } = corsOptions;\n\n if (isInternalRequest(req.headers.host ?? '')) {\n const origin = req.headers.origin ?? '';\n const combinedHeaders = Array.from(new Set([...defaultFronteggHeaders, ...allowedHeaders]));\n\n if (allowedOrigins.includes(origin)) {\n res.setHeader('Access-Control-Allow-Origin', origin);\n } else {\n res.removeHeader('Access-Control-Allow-Origin');\n }\n\n res.setHeader('Access-Control-Allow-Methods', allowedMethods.join(','));\n res.setHeader('Access-Control-Allow-Headers', combinedHeaders.join(','));\n res.setHeader('Access-Control-Allow-Credentials', allowCredentials ? 'true' : 'false');\n }\n};\n\nconst middlewarePromise = (req: NextApiRequest, res: NextApiResponse, options?: FronteggMiddlewareOptions) =>\n new Promise<void>(async (resolve) => {\n const fronteggUrlPath = rewritePath(req.url ?? '/', fronteggPathRewrite);\n const rewriteUrl = rewritePath(fronteggUrlPath ?? '/', fronteggSSOPathRewrite);\n req.url = rewriteUrl;\n res.on('close', () => resolve());\n const proxyOptions = {\n target: process.env['FRONTEGG_BASE_URL'],\n };\n if (process.env['FRONTEGG_TEST_URL'] && req.url == '/frontegg/middleware-test') {\n proxyOptions.target = process.env['FRONTEGG_TEST_URL'];\n }\n const headers: Record<string, string> = {};\n if (process.env['FRONTEGG_SECURE_JWT_ENABLED'] === 'true') {\n const session = await getSession(req, res);\n if (session?.accessToken) {\n headers['authorization'] = 'Bearer ' + session.accessToken;\n }\n }\n\n if (config.isHostedLogin && isFronteggLogoutUrl(req.url || '') && !headers['authorization']) {\n const sessionCookie = CookieManager.getSessionCookieFromRequest(req);\n const tokens = await getTokensFromCookie(sessionCookie);\n if (tokens?.accessToken) {\n headers['authorization'] = 'Bearer ' + tokens.accessToken;\n }\n }\n\n if (options?.ipResolver) {\n config.ipResolver = options.ipResolver;\n }\n\n handleCors(req, res, options?.cors);\n\n FronteggProxy.web(req, res, {\n ...proxyOptions,\n headers,\n });\n });\n\n/**\n * Next.js HTTP Proxy Middleware\n * @see https://nextjs.org/docs/api-routes/api-middlewares\n * @param {NextApiRequest} req - NextJS api request passed from api routing\n * @param {NextApiResponse} res - NextJS api response passed from api routing\n */\nconst FronteggApiMiddleware: FronteggApiMiddlewareType = (async (\n req: NextApiRequest,\n res: NextApiResponse\n): Promise<void> => {\n return await middlewarePromise(req, res);\n}) as FronteggApiMiddlewareType;\n\nFronteggApiMiddleware.withOptions =\n (options: FronteggMiddlewareOptions) =>\n async (req: NextApiRequest, res: NextApiResponse): Promise<void> => {\n return await middlewarePromise(req, res, options);\n };\n\nexport { FronteggApiMiddleware };\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
package/pages/helpers.d.ts
CHANGED
|
@@ -3,7 +3,18 @@ import type { GetServerSidePropsContext, GetServerSidePropsResult } from 'next';
|
|
|
3
3
|
import type { ParsedUrlQuery } from 'querystring';
|
|
4
4
|
import type { FronteggNextJSSession, RequestType } from '../types';
|
|
5
5
|
import { ServerResponse } from 'http';
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Retrieves the Frontegg session from Next.js request and response objects.
|
|
8
|
+
*
|
|
9
|
+
* @param req - The Next.js request object containing incoming HTTP request data
|
|
10
|
+
* @param res - The Next.js response object (or undefined). This parameter is required and must be explicitly passed.
|
|
11
|
+
* It will be non-null in cases where there are sequential redirects or multiple getInitialProps
|
|
12
|
+
* executions within a single page visit — for example, when middlewares or getServerSideProps
|
|
13
|
+
* functions are concatenated.
|
|
14
|
+
*
|
|
15
|
+
* @returns The Frontegg session if available, or undefined if no session exists
|
|
16
|
+
*/
|
|
17
|
+
export declare const getSession: (req: RequestType, res: ServerResponse | undefined) => Promise<FronteggNextJSSession | undefined>;
|
|
7
18
|
export declare function withSSRSession<P extends {
|
|
8
19
|
[key: string]: any;
|
|
9
20
|
} = {
|
package/pages/helpers.js
CHANGED
|
@@ -12,6 +12,17 @@ var _cookies = _interopRequireDefault(require("../utils/cookies"));
|
|
|
12
12
|
var _createSession = _interopRequireDefault(require("../utils/createSession"));
|
|
13
13
|
var _encryption = _interopRequireDefault(require("../utils/encryption"));
|
|
14
14
|
var _helpers = require("../utils/refreshAccessTokenIfNeeded/helpers");
|
|
15
|
+
/**
|
|
16
|
+
* Retrieves the Frontegg session from Next.js request and response objects.
|
|
17
|
+
*
|
|
18
|
+
* @param req - The Next.js request object containing incoming HTTP request data
|
|
19
|
+
* @param res - The Next.js response object (or undefined). This parameter is required and must be explicitly passed.
|
|
20
|
+
* It will be non-null in cases where there are sequential redirects or multiple getInitialProps
|
|
21
|
+
* executions within a single page visit — for example, when middlewares or getServerSideProps
|
|
22
|
+
* functions are concatenated.
|
|
23
|
+
*
|
|
24
|
+
* @returns The Frontegg session if available, or undefined if no session exists
|
|
25
|
+
*/
|
|
15
26
|
const getSession = (req, res) => {
|
|
16
27
|
if (res && (0, _helpers.hasSetSessionCookie)(res.getHeader('set-cookie'))) {
|
|
17
28
|
const cookies = _cookies.default.getSessionCookieFromRedirectedResponse(res);
|
package/pages/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["_routing","require","_config","_interopRequireDefault","_cookies","_createSession","_encryption","_helpers","getSession","req","res","hasSetSessionCookie","getHeader","cookies","CookieManager","getSessionCookieFromRedirectedResponse","createSession","encryption","getSessionCookieFromRequest","exports","withSSRSession","handler","context","session","_config$authRoutes$lo","_context$resolvedUrl","loginUrl","config","authRoutes","defaultFronteggRoutes","startsWith","fullUrl","URL","appUrl","resolvedUrl","urlSearchParams","searchParams","set","url","redirect","permanent","destination","toString","props"],"sources":["../../../../packages/nextjs/src/pages/helpers.ts"],"sourcesContent":["import { defaultFronteggRoutes } from '../utils/routing';\nimport type { GetServerSidePropsContext, GetServerSidePropsResult } from 'next';\nimport type { ParsedUrlQuery } from 'querystring';\nimport type { FronteggNextJSSession, RequestType } from '../types';\nimport config from '../config';\nimport CookieManager from '../utils/cookies';\nimport createSession from '../utils/createSession';\nimport encryption from '../utils/encryption';\nimport { hasSetSessionCookie } from '../utils/refreshAccessTokenIfNeeded/helpers';\nimport { NextResponse } from 'next/server';\nimport { ServerResponse } from 'http';\n\nexport const getSession = (req: RequestType, res
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["_routing","require","_config","_interopRequireDefault","_cookies","_createSession","_encryption","_helpers","getSession","req","res","hasSetSessionCookie","getHeader","cookies","CookieManager","getSessionCookieFromRedirectedResponse","createSession","encryption","getSessionCookieFromRequest","exports","withSSRSession","handler","context","session","_config$authRoutes$lo","_context$resolvedUrl","loginUrl","config","authRoutes","defaultFronteggRoutes","startsWith","fullUrl","URL","appUrl","resolvedUrl","urlSearchParams","searchParams","set","url","redirect","permanent","destination","toString","props"],"sources":["../../../../packages/nextjs/src/pages/helpers.ts"],"sourcesContent":["import { defaultFronteggRoutes } from '../utils/routing';\nimport type { GetServerSidePropsContext, GetServerSidePropsResult } from 'next';\nimport type { ParsedUrlQuery } from 'querystring';\nimport type { FronteggNextJSSession, RequestType } from '../types';\nimport config from '../config';\nimport CookieManager from '../utils/cookies';\nimport createSession from '../utils/createSession';\nimport encryption from '../utils/encryption';\nimport { hasSetSessionCookie } from '../utils/refreshAccessTokenIfNeeded/helpers';\nimport { NextResponse } from 'next/server';\nimport { ServerResponse } from 'http';\n\n/**\n * Retrieves the Frontegg session from Next.js request and response objects.\n *\n * @param req - The Next.js request object containing incoming HTTP request data\n * @param res - The Next.js response object (or undefined). This parameter is required and must be explicitly passed.\n * It will be non-null in cases where there are sequential redirects or multiple getInitialProps\n * executions within a single page visit — for example, when middlewares or getServerSideProps\n * functions are concatenated.\n *\n * @returns The Frontegg session if available, or undefined if no session exists\n */\nexport const getSession = (req: RequestType, res: ServerResponse | undefined) => {\n if (res && hasSetSessionCookie(res.getHeader('set-cookie'))) {\n const cookies = CookieManager.getSessionCookieFromRedirectedResponse(res);\n return createSession(cookies, encryption);\n }\n const cookies = CookieManager.getSessionCookieFromRequest(req);\n return createSession(cookies, encryption);\n};\n\nexport function withSSRSession<\n P extends { [key: string]: any } = { [key: string]: any },\n Q extends ParsedUrlQuery = ParsedUrlQuery\n>(\n handler: (\n context: GetServerSidePropsContext<Q>,\n session: FronteggNextJSSession\n ) => GetServerSidePropsResult<P> | Promise<GetServerSidePropsResult<P>>\n) {\n return async (context: GetServerSidePropsContext<Q>): Promise<GetServerSidePropsResult<P>> => {\n const session = await getSession(context.req, context.res);\n if (session) {\n return handler(context, session);\n } else {\n let loginUrl = config.authRoutes.loginUrl ?? defaultFronteggRoutes.loginUrl;\n\n if (!loginUrl.startsWith('/')) {\n loginUrl = `/${loginUrl}`;\n }\n\n const fullUrl = new URL(config.appUrl + context.resolvedUrl);\n const urlSearchParams = fullUrl.searchParams;\n urlSearchParams.set('redirectUrl', context.resolvedUrl ?? context.req.url);\n\n return {\n redirect: {\n permanent: false,\n destination: `${loginUrl}?${urlSearchParams.toString()}`,\n },\n props: {},\n } as GetServerSidePropsResult<P>;\n }\n };\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAIA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,cAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,WAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMO,UAAU,GAAGA,CAACC,GAAgB,EAAEC,GAA+B,KAAK;EAC/E,IAAIA,GAAG,IAAI,IAAAC,4BAAmB,EAACD,GAAG,CAACE,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE;IAC3D,MAAMC,OAAO,GAAGC,gBAAa,CAACC,sCAAsC,CAACL,GAAG,CAAC;IACzE,OAAO,IAAAM,sBAAa,EAACH,OAAO,EAAEI,mBAAU,CAAC;EAC3C;EACA,MAAMJ,OAAO,GAAGC,gBAAa,CAACI,2BAA2B,CAACT,GAAG,CAAC;EAC9D,OAAO,IAAAO,sBAAa,EAACH,OAAO,EAAEI,mBAAU,CAAC;AAC3C,CAAC;AAACE,OAAA,CAAAX,UAAA,GAAAA,UAAA;AAEK,SAASY,cAAcA,CAI5BC,OAGuE,EACvE;EACA,OAAO,MAAOC,OAAqC,IAA2C;IAC5F,MAAMC,OAAO,GAAG,MAAMf,UAAU,CAACc,OAAO,CAACb,GAAG,EAAEa,OAAO,CAACZ,GAAG,CAAC;IAC1D,IAAIa,OAAO,EAAE;MACX,OAAOF,OAAO,CAACC,OAAO,EAAEC,OAAO,CAAC;IAClC,CAAC,MAAM;MAAA,IAAAC,qBAAA,EAAAC,oBAAA;MACL,IAAIC,QAAQ,IAAAF,qBAAA,GAAGG,eAAM,CAACC,UAAU,CAACF,QAAQ,YAAAF,qBAAA,GAAIK,8BAAqB,CAACH,QAAQ;MAE3E,IAAI,CAACA,QAAQ,CAACI,UAAU,CAAC,GAAG,CAAC,EAAE;QAC7BJ,QAAQ,GAAG,IAAIA,QAAQ,EAAE;MAC3B;MAEA,MAAMK,OAAO,GAAG,IAAIC,GAAG,CAACL,eAAM,CAACM,MAAM,GAAGX,OAAO,CAACY,WAAW,CAAC;MAC5D,MAAMC,eAAe,GAAGJ,OAAO,CAACK,YAAY;MAC5CD,eAAe,CAACE,GAAG,CAAC,aAAa,GAAAZ,oBAAA,GAAEH,OAAO,CAACY,WAAW,YAAAT,oBAAA,GAAIH,OAAO,CAACb,GAAG,CAAC6B,GAAG,CAAC;MAE1E,OAAO;QACLC,QAAQ,EAAE;UACRC,SAAS,EAAE,KAAK;UAChBC,WAAW,EAAE,GAAGf,QAAQ,IAAIS,eAAe,CAACO,QAAQ,CAAC,CAAC;QACxD,CAAC;QACDC,KAAK,EAAE,CAAC;MACV,CAAC;IACH;EACF,CAAC;AACH","ignoreList":[]}
|
package/sdkVersion.js
CHANGED
package/sdkVersion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdkVersion.js","names":["version"],"sources":["../../../packages/nextjs/src/sdkVersion.ts"],"sourcesContent":["export default { version: '9.2.
|
|
1
|
+
{"version":3,"file":"sdkVersion.js","names":["version"],"sources":["../../../packages/nextjs/src/sdkVersion.ts"],"sourcesContent":["export default { version: '9.2.11-alpha.18744232867' };\n"],"mappings":";;;;;;iCAAe;EAAEA,OAAO,EAAE;AAA2B,CAAC","ignoreList":[]}
|