@bolttech/server-side-next
Version:
This library was generated with [Nx](https://nx.dev).
3 lines (2 loc) • 4.96 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./_rollupPluginBabelHelpers-41c00fec.js"),r=require("./_tslib-0e64cda4.js"),t=require("next/server"),n=require("@edirect/trace/dist/middlewares/nextjs"),a=require("cookie"),o=require("./utm.constants-b9759669.js"),s=require("@bolttech/essentials"),i=require("./session.util-48b3b6ad.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("./index-3f29ef8b.js"),require("./index-775f264f.js"),require("lodash/fp");var u=c(n),l=function(e){var r=e.nextUrl,t={},n={};return o.utmParams.forEach((function(e){if("utm_source"!==e||r.searchParams.get(e)){var a=r.searchParams.get(e);t[s.UtmFromUrl[e]]=a||null,a&&(n[e]=a)}else t[s.UtmFromUrl[e]]=n[e]="Direct"})),{utmParamsFromUrlToCookie:t,utmParamsFromUrl:n}},d=function(e){var r=e.nextUrl;return{quoteHFromUrl:r.searchParams.get("h")||null,quoteXFromUrl:r.searchParams.get("x")||null}},m=function t(n,a,o){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return r.__awaiter(void 0,void 0,void 0,e._regeneratorRuntime().mark((function r(){var i,c;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(s>=4)){e.next=4;break}console.error("REDIS: Number of attempts exceeded."),e.next=22;break;case 4:return e.prev=4,e.next=7,fetch("".concat(a,"/api/session/redis"),{method:"post",headers:{Accept:"application/json","Content-Type":"application/json",Cookie:n.headers.get("cookie")||""},body:JSON.stringify(o)});case 7:return i=e.sent,e.next=10,i.json();case 10:return(c=e.sent).success&&console.log("REDIS updated..."),c.success||console.error("Failed to update REDIS: ",c.error),e.abrupt("return",i);case 16:return e.prev=16,e.t0=e.catch(4),console.error("Failed to update REDIS[API ERROR]:",e.t0),console.warn("[".concat(s+1,"]Retrying to update REDIS")),e.next=22,t(n,a,o,s+1);case 22:case"end":return e.stop()}}),r,null,[[4,16]])})))};function p(t,n,i,c,u){return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function r(){var p,f,v,g,h,x,U,b,k,F,w,R;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:p=t.nextUrl,f=l(t),v=f.utmParamsFromUrl,g=f.utmParamsFromUrlToCookie,h=d(t),x=h.quoteHFromUrl,U=h.quoteXFromUrl;try{k=t.cookies.get("utms"),b=(null==k?void 0:k.value)?JSON.parse(null==k?void 0:k.value):i}catch(e){console.error("Failed to parse UTM from Cookies:"+e),b=i}b[c]=Object.assign(Object.assign({},b[c]),g),F=v;try{b=s.encodeJsonValues(b),F=s.encodeJsonValues(v),n.headers.set("Set-Cookie",a.serialize("utms",JSON.stringify(b),Object.assign(Object.assign({},o.cookiesSettings),{encode:function(e){return e}}))),n.headers.append("Set-Cookie",a.serialize("utmsFromUrl",JSON.stringify(F),Object.assign(Object.assign({},o.cookiesSettings),{encode:function(e){return e}})))}catch(e){console.error("Error to serialize cookies",e)}return e.next=9,m(t,p.origin,{utms:b,utmsFromUrl:F,quoteHFromUrl:x,quoteXFromUrl:U,locale:u});case 9:return(w=e.sent)instanceof Response&&(R=a.parse(w.headers.get("set-cookie")||""),n.headers.append("Set-Cookie",a.serialize("connect.sid",R["connect.sid"],Object.assign({},o.cookiesSettings)))),e.abrupt("return",n);case 12:case"end":return e.stop()}}),r)})))}var f="Direct";function v(e){var r=e.nextUrl;if(r.pathname.includes("/_next/")||r.pathname.includes("/assets/")||r.pathname.includes("/favicon.ico"))return t.NextResponse.next();try{(new u.default).body(e)}catch(e){console.error("Failed to send data to Open Telemetry: ".concat(e))}return r.pathname.includes("/api/")?t.NextResponse.next():null}function g(e,r){var t=e.nextUrl,n={};o.utmParams.forEach((function(a){var o,c;if("utm_source"!==a||t.searchParams.get(a))n[s.UtmFromUrl[a]]=t.searchParams.get(a)||null;else{var u=null===(o=e.cookies.get("utms"))||void 0===o?void 0:o.value,l=u&&JSON.parse(u),d=i.getPageFromPath(t.pathname,r).vertical,m=null===(c=null==l?void 0:l[d])||void 0===c?void 0:c.source;n[s.UtmFromUrl[a]]=m||f}}));var a=n.source||f,c=i.getPageDataFromUrl(e,a,r);return{redirectUrl:c.redirectUrl,locale:c.locale,vertical:c.vertical,viewport:c.viewport}}exports.edgeMiddleware=function(n,a,o){return r.__awaiter(this,void 0,void 0,e._regeneratorRuntime().mark((function r(){var s,i,c,u,l,d,m;return e._regeneratorRuntime().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=n.nextUrl,!(i=v(n))){e.next=4;break}return e.abrupt("return",i);case 4:if(s.pathname.includes("/desktop")||s.pathname.includes("/mobile")){e.next=11;break}return c=g(n,o),u=c.locale,l=c.vertical,d=c.viewport,s.pathname="".concat(s.pathname,"/").concat(d).replace(/\/\//g,"/"),m=t.NextResponse.rewrite(s),e.next=10,p(n,m,a,l,u);case 10:return e.abrupt("return",e.sent);case 11:return e.abrupt("return",t.NextResponse.next());case 12:case"end":return e.stop()}}),r)})))},exports.edgeMiddlewareGetPageDataFromUrl=g,exports.edgeMiddlewareValidation=v,exports.utmMiddleware=p;
//# sourceMappingURL=middlewares.js.map