{"version":3,"sources":["jsdelivr-header.js","/npm/express-universal-analytics@0.7.1/dist/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aACA,OAAO,eAAe,QAAS,aAAc,CAAE,OAAO,IACtD,MAAM,GAAK,QAAQ,uBAEnB,SAAS,UAAU,GAIf,GAHsB,iBAAX,IACP,EAAS,CAAE,OAAQ,KAElB,EAAO,OACR,MAAM,IAAI,MAAM,8CAEpB,IAAI,EAAiB,CAAE,WAAY,EAAO,YAAc,OAwDxD,MAAO,CAvDe,SAAU,EAAK,EAAK,GAElC,EAAI,SAAW,EAAI,QAAQ,EAAe,aACtC,EAAI,SAAW,EAAI,QAAQ,MAC3B,EAAI,QAAQ,SAAM,SACX,EAAI,QAAQ,KAItB,EAAI,QAAQ,qBACb,EAAI,QAAQ,mBAAqB,WAErC,GACJ,EACmB,GAAG,WAAW,EAAO,OAAQ,GACzB,SAAU,EAAK,EAAK,GAOvC,GANA,EAAI,QAAQ,OAAS,SAAU,GACvB,EAAI,QACJ,EAAI,QAAQ,MAAQ,EAEpB,EAAI,QAAQ,IAAI,MAAO,EAC/B,EACI,EAAO,aACuB,mBAAvB,EAAO,YAA4B,CAE1C,MAAM,EAAS,EAAO,YAAY,GAC9B,GACA,EAAI,QAAQ,IAAI,MAAO,EAC/B,MAGI,EAAI,QAAQ,IAAI,MAAQ,EAAI,SAAW,EAAI,QAAQ,OAEnD,EAAI,MAAkB,YACtB,EAAI,QAAQ,IAAI,KAAM,EAAI,MAAkB,YAC5C,EAAI,MAAkB,YACtB,EAAI,QAAQ,IAAI,KAAM,EAAI,MAAkB,YAC5C,EAAI,MAAoB,cACxB,EAAI,QAAQ,IAAI,KAAM,EAAI,MAAoB,cAClD,EAAI,QAAQ,IAAI,KAAM,EAAI,SAAW,MAAQ,EAAI,IAAI,SACrD,KAE8B,IAA1B,EAAO,gBAEP,EAAI,QAAQ,SAAS,CACjB,GAAI,EAAI,YACR,GAAI,EAAI,IAAI,WACZ,GAAI,EAAI,QAAQ,cAChB,IAAM,EAAI,WAAW,eACd,EAAI,OAAO,eACX,EAAI,WAAW,eACf,EAAI,QAAQ,mBAAmB,MAAM,KAAK,QAClD,MAEX,EAMJ,CArEA,QAAQ,aAsER,OAAO,QAAU,UACjB,QAAQ,QAAU","file":"/npm/express-universal-analytics@0.7.1/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/express-universal-analytics@0.7.1/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst ua = require(\"universal-analytics\");\nrequire(\"./express\");\nfunction ExpressGA(params) {\n    if (typeof params === 'string') {\n        params = { uaCode: params };\n    }\n    if (!params.uaCode) {\n        throw new Error('Cannot initialise ExpressGA without uaCode');\n    }\n    let middlewareOpts = { cookieName: params.cookieName || '_ga' };\n    let preUaMiddleware = function (req, res, next) {\n        // if _ga cookie is present, remove our internal cid\n        if (req.cookies && req.cookies[middlewareOpts.cookieName]) {\n            if (req.session && req.session.cid) {\n                req.session.cid = (void 0);\n                delete req.session.cid;\n            }\n        }\n        // set x-forwarded-for if not exists\n        if (!req.headers['x-forwarded-for']) {\n            req.headers['x-forwarded-for'] = '0.0.0.0';\n        }\n        next();\n    };\n    let uaMiddleware = ua.middleware(params.uaCode, middlewareOpts);\n    let postUaMiddleware = function (req, res, next) {\n        req.visitor.setUid = function (uid) {\n            if (req.session)\n                req.session.gauid = uid;\n            else\n                req.visitor.set('uid', uid);\n        };\n        if (params.reqToUserId &&\n            typeof params.reqToUserId === 'function') {\n            // if reqToUserId function exists use it to generate uid\n            const userId = params.reqToUserId(req);\n            if (userId)\n                req.visitor.set('uid', userId);\n        }\n        else {\n            // else if it was in session pick it\n            req.visitor.set('uid', (req.session && req.session.gauid));\n        }\n        if (req.query['utm_source'])\n            req.visitor.set('cs', req.query['utm_source']);\n        if (req.query['utm_medium'])\n            req.visitor.set('cm', req.query['utm_medium']);\n        if (req.query['utm_campaign'])\n            req.visitor.set('cn', req.query['utm_campaign']);\n        req.visitor.set('dh', req.protocol + '://' + req.get('host'));\n        next(); // actually call next now\n        // auto track page in side effects\n        if (params.autoTrackPages !== false) { // if absent, treat true\n            // pageview in side effects\n            req.visitor.pageview({\n                dp: req.originalUrl,\n                dr: req.get('Referer'),\n                ua: req.headers['user-agent'],\n                uip: (req.connection.remoteAddress\n                    || req.socket.remoteAddress\n                    || req.connection.remoteAddress\n                    || req.headers['x-forwarded-for'].split(',').pop()),\n            }).send();\n        }\n    };\n    return ([\n        preUaMiddleware,\n        uaMiddleware,\n        postUaMiddleware\n    ]);\n}\nmodule.exports = ExpressGA;\nexports.default = ExpressGA;\n"]}