@frontegg/nextjs 9.2.5 → 9.2.6-alpha.15543529385
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 +4 -0
- package/edge/shouldBypassMiddleware.js +5 -1
- package/edge/shouldBypassMiddleware.js.map +1 -1
- package/index.js +1 -1
- package/package.json +3 -3
- package/sdkVersion.js +1 -1
- package/sdkVersion.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -48,9 +48,13 @@ const shouldByPassMiddleware = (pathname, headers, options) => {
|
|
|
48
48
|
if (isHeaderRequests) return _options.bypassHeaderRequests;
|
|
49
49
|
if (isFronteggMiddleware) return _options.bypassFronteggMiddleware;
|
|
50
50
|
if (isFronteggRoutes) return _options.bypassFronteggRoutes;
|
|
51
|
+
const isPrefetchRequest = headers.has('next-router-prefetch') || headers.get('purpose') === 'prefetch';
|
|
52
|
+
const secFetchModeHeader = headers.get('sec-fetch-mode');
|
|
53
|
+
const secFetchDestHeader = headers.get('sec-fetch-dest');
|
|
54
|
+
const isBrowserAddressBarPrefetch = isPrefetchRequest && secFetchModeHeader === 'navigate' && secFetchDestHeader === 'document';
|
|
51
55
|
|
|
52
56
|
// noinspection RedundantIfStatementJS
|
|
53
|
-
if (
|
|
57
|
+
if (isPrefetchRequest && !isBrowserAddressBarPrefetch) {
|
|
54
58
|
/** bypass prefetch requests on hovering links that leads to SSG pages **/
|
|
55
59
|
return true;
|
|
56
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shouldBypassMiddleware.js","names":["_routing","require","_excluded","staticFilesRegex","RegExp","imageOptimizationRegex","headerRequestsRegex","fronteggMiddlewareRegex","shouldByPassMiddleware","pathname","headers","options","_options","_extends2","default","bypassStaticFiles","bypassImageOptimization","bypassHeaderRequests","bypassFronteggMiddleware","bypassFronteggRoutes","bypassAuthSamlCallback","isStaticFiles","test","isImageOptimization","isHeaderRequests","isFronteggMiddleware","authRoutes","_objectWithoutPropertiesLoose2","defaultFronteggRoutes","isFronteggRoutes","Object","values","find","path","startsWith","has","get","exports"],"sources":["../../../../packages/nextjs/src/edge/shouldBypassMiddleware.ts"],"sourcesContent":["import type { NextRequest } from 'next/server';\n\nimport { defaultFronteggRoutes } from '../utils/routing';\n\nconst staticFilesRegex = new RegExp('^/(_next/static).*');\nconst imageOptimizationRegex = new RegExp('^/(_next/image).*');\nconst headerRequestsRegex = new RegExp('^/(favicon.ico).*');\nconst fronteggMiddlewareRegex = new RegExp('^/(api/frontegg).*');\n\ninterface ByPassOptions {\n bypassStaticFiles?: boolean; // default: true\n bypassImageOptimization?: boolean; // default: true\n bypassHeaderRequests?: boolean; // default: true\n}\n\n/**\n * Use `shouldByPassMiddleware` in the middleware.ts file\n * to protect all application's routes.\n * You can override whitelist by passing options parameter\n * NOTE: this will slow down your application due to session check on each\n * static files and image request\n *\n * The default whitelist:\n * - _next/static (static files)\n * - _next/image (image optimization files)\n * - favicon.ico (favicon file)\n * - api/frontegg (API frontegg middleware)\n * - account/[login|logout|saml/callback|...] (frontegg authentication routes)\n */\nexport const shouldByPassMiddleware = (\n pathname: string,\n headers: NextRequest['headers'],\n options?: ByPassOptions\n): boolean => {\n const _options = {\n bypassStaticFiles: true,\n bypassImageOptimization: true,\n bypassHeaderRequests: true,\n ...options,\n bypassFronteggMiddleware: true,\n bypassFronteggRoutes: true,\n bypassAuthSamlCallback: true,\n };\n\n const isStaticFiles = staticFilesRegex.test(pathname);\n const isImageOptimization = imageOptimizationRegex.test(pathname);\n const isHeaderRequests = headerRequestsRegex.test(pathname);\n const isFronteggMiddleware = fronteggMiddlewareRegex.test(pathname);\n\n const { authenticatedUrl, ...authRoutes } = defaultFronteggRoutes;\n const isFronteggRoutes = Object.values(authRoutes).find((path) => pathname.startsWith(path)) != null;\n\n if (isStaticFiles) return _options.bypassStaticFiles;\n if (isImageOptimization) return _options.bypassImageOptimization;\n if (isHeaderRequests) return _options.bypassHeaderRequests;\n if (isFronteggMiddleware) return _options.bypassFronteggMiddleware;\n if (isFronteggRoutes) return _options.bypassFronteggRoutes;\n\n
|
|
1
|
+
{"version":3,"file":"shouldBypassMiddleware.js","names":["_routing","require","_excluded","staticFilesRegex","RegExp","imageOptimizationRegex","headerRequestsRegex","fronteggMiddlewareRegex","shouldByPassMiddleware","pathname","headers","options","_options","_extends2","default","bypassStaticFiles","bypassImageOptimization","bypassHeaderRequests","bypassFronteggMiddleware","bypassFronteggRoutes","bypassAuthSamlCallback","isStaticFiles","test","isImageOptimization","isHeaderRequests","isFronteggMiddleware","authRoutes","_objectWithoutPropertiesLoose2","defaultFronteggRoutes","isFronteggRoutes","Object","values","find","path","startsWith","isPrefetchRequest","has","get","secFetchModeHeader","secFetchDestHeader","isBrowserAddressBarPrefetch","exports"],"sources":["../../../../packages/nextjs/src/edge/shouldBypassMiddleware.ts"],"sourcesContent":["import type { NextRequest } from 'next/server';\n\nimport { defaultFronteggRoutes } from '../utils/routing';\n\nconst staticFilesRegex = new RegExp('^/(_next/static).*');\nconst imageOptimizationRegex = new RegExp('^/(_next/image).*');\nconst headerRequestsRegex = new RegExp('^/(favicon.ico).*');\nconst fronteggMiddlewareRegex = new RegExp('^/(api/frontegg).*');\n\ninterface ByPassOptions {\n bypassStaticFiles?: boolean; // default: true\n bypassImageOptimization?: boolean; // default: true\n bypassHeaderRequests?: boolean; // default: true\n}\n\n/**\n * Use `shouldByPassMiddleware` in the middleware.ts file\n * to protect all application's routes.\n * You can override whitelist by passing options parameter\n * NOTE: this will slow down your application due to session check on each\n * static files and image request\n *\n * The default whitelist:\n * - _next/static (static files)\n * - _next/image (image optimization files)\n * - favicon.ico (favicon file)\n * - api/frontegg (API frontegg middleware)\n * - account/[login|logout|saml/callback|...] (frontegg authentication routes)\n */\nexport const shouldByPassMiddleware = (\n pathname: string,\n headers: NextRequest['headers'],\n options?: ByPassOptions\n): boolean => {\n const _options = {\n bypassStaticFiles: true,\n bypassImageOptimization: true,\n bypassHeaderRequests: true,\n ...options,\n bypassFronteggMiddleware: true,\n bypassFronteggRoutes: true,\n bypassAuthSamlCallback: true,\n };\n\n const isStaticFiles = staticFilesRegex.test(pathname);\n const isImageOptimization = imageOptimizationRegex.test(pathname);\n const isHeaderRequests = headerRequestsRegex.test(pathname);\n const isFronteggMiddleware = fronteggMiddlewareRegex.test(pathname);\n\n const { authenticatedUrl, ...authRoutes } = defaultFronteggRoutes;\n const isFronteggRoutes = Object.values(authRoutes).find((path) => pathname.startsWith(path)) != null;\n\n if (isStaticFiles) return _options.bypassStaticFiles;\n if (isImageOptimization) return _options.bypassImageOptimization;\n if (isHeaderRequests) return _options.bypassHeaderRequests;\n if (isFronteggMiddleware) return _options.bypassFronteggMiddleware;\n if (isFronteggRoutes) return _options.bypassFronteggRoutes;\n\n const isPrefetchRequest = headers.has('next-router-prefetch') || headers.get('purpose') === 'prefetch';\n const secFetchModeHeader = headers.get('sec-fetch-mode');\n const secFetchDestHeader = headers.get('sec-fetch-dest');\n\n const isBrowserAddressBarPrefetch =\n isPrefetchRequest && secFetchModeHeader === 'navigate' && secFetchDestHeader === 'document';\n\n // noinspection RedundantIfStatementJS\n if (isPrefetchRequest && !isBrowserAddressBarPrefetch) {\n /** bypass prefetch requests on hovering links that leads to SSG pages **/\n return true;\n }\n\n return false;\n};\n"],"mappings":";;;;;;;;;AAEA,IAAAA,QAAA,GAAAC,OAAA;AAAyD,MAAAC,SAAA;AAEzD,MAAMC,gBAAgB,GAAG,IAAIC,MAAM,CAAC,oBAAoB,CAAC;AACzD,MAAMC,sBAAsB,GAAG,IAAID,MAAM,CAAC,mBAAmB,CAAC;AAC9D,MAAME,mBAAmB,GAAG,IAAIF,MAAM,CAAC,mBAAmB,CAAC;AAC3D,MAAMG,uBAAuB,GAAG,IAAIH,MAAM,CAAC,oBAAoB,CAAC;AAQhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,sBAAsB,GAAGA,CACpCC,QAAgB,EAChBC,OAA+B,EAC/BC,OAAuB,KACX;EACZ,MAAMC,QAAQ,OAAAC,SAAA,CAAAC,OAAA;IACZC,iBAAiB,EAAE,IAAI;IACvBC,uBAAuB,EAAE,IAAI;IAC7BC,oBAAoB,EAAE;EAAI,GACvBN,OAAO;IACVO,wBAAwB,EAAE,IAAI;IAC9BC,oBAAoB,EAAE,IAAI;IAC1BC,sBAAsB,EAAE;EAAI,EAC7B;EAED,MAAMC,aAAa,GAAGlB,gBAAgB,CAACmB,IAAI,CAACb,QAAQ,CAAC;EACrD,MAAMc,mBAAmB,GAAGlB,sBAAsB,CAACiB,IAAI,CAACb,QAAQ,CAAC;EACjE,MAAMe,gBAAgB,GAAGlB,mBAAmB,CAACgB,IAAI,CAACb,QAAQ,CAAC;EAC3D,MAAMgB,oBAAoB,GAAGlB,uBAAuB,CAACe,IAAI,CAACb,QAAQ,CAAC;EAEnE,MAA6BiB,UAAU,OAAAC,8BAAA,CAAAb,OAAA,EAAKc,8BAAqB,EAAA1B,SAAA;EACjE,MAAM2B,gBAAgB,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAAC,CAACM,IAAI,CAAEC,IAAI,IAAKxB,QAAQ,CAACyB,UAAU,CAACD,IAAI,CAAC,CAAC,IAAI,IAAI;EAEpG,IAAIZ,aAAa,EAAE,OAAOT,QAAQ,CAACG,iBAAiB;EACpD,IAAIQ,mBAAmB,EAAE,OAAOX,QAAQ,CAACI,uBAAuB;EAChE,IAAIQ,gBAAgB,EAAE,OAAOZ,QAAQ,CAACK,oBAAoB;EAC1D,IAAIQ,oBAAoB,EAAE,OAAOb,QAAQ,CAACM,wBAAwB;EAClE,IAAIW,gBAAgB,EAAE,OAAOjB,QAAQ,CAACO,oBAAoB;EAE1D,MAAMgB,iBAAiB,GAAGzB,OAAO,CAAC0B,GAAG,CAAC,sBAAsB,CAAC,IAAI1B,OAAO,CAAC2B,GAAG,CAAC,SAAS,CAAC,KAAK,UAAU;EACtG,MAAMC,kBAAkB,GAAG5B,OAAO,CAAC2B,GAAG,CAAC,gBAAgB,CAAC;EACxD,MAAME,kBAAkB,GAAG7B,OAAO,CAAC2B,GAAG,CAAC,gBAAgB,CAAC;EAExD,MAAMG,2BAA2B,GAC/BL,iBAAiB,IAAIG,kBAAkB,KAAK,UAAU,IAAIC,kBAAkB,KAAK,UAAU;;EAE7F;EACA,IAAIJ,iBAAiB,IAAI,CAACK,2BAA2B,EAAE;IACrD;IACA,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd,CAAC;AAACC,OAAA,CAAAjC,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
package/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frontegg/nextjs",
|
|
3
3
|
"libName": "FronteggNextJs",
|
|
4
|
-
"version": "9.2.
|
|
4
|
+
"version": "9.2.6-alpha.15543529385",
|
|
5
5
|
"author": "Frontegg LTD",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"lint-json": "eslint -c .eslintrc.json -o ./lint-report.json --format json --no-color ./src/**/*.{ts,tsx}"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@frontegg/js": "7.
|
|
31
|
-
"@frontegg/react-hooks": "7.
|
|
30
|
+
"@frontegg/js": "7.75.0",
|
|
31
|
+
"@frontegg/react-hooks": "7.75.0",
|
|
32
32
|
"http-proxy": "^1.18.1",
|
|
33
33
|
"iron-session": "^6.3.1",
|
|
34
34
|
"jose": "^4.12.2"
|
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.6-alpha.15543529385' };\n"],"mappings":";;;;;;iCAAe;EAAEA,OAAO,EAAE;AAA0B,CAAC","ignoreList":[]}
|