{"version":3,"sources":["../../../src/middleware/csrf.ts"],"sourcesContent":["import type { Middleware } from './index'\n\n/**\n * Sets a request header with the value of a cookie from document.cookie, if it exists\n */\nexport const CsrfMiddleware = (cookieName = 'csrfToken', headerName = 'x-csrf-token'): Middleware =>\n  function CsrfMiddleware() {\n    const REGEXP_COOKIE_NAME = new RegExp(cookieName + '[^;]+')\n    const getCookie = () => {\n      const cookieString = REGEXP_COOKIE_NAME.exec((document || {}).cookie || '')\n      return cookieString\n        ? decodeURIComponent(cookieString.toString().replace(/^[^=]+./, ''))\n        : undefined\n    }\n\n    return {\n      async prepareRequest(next) {\n        const request = await next()\n        if (typeof document === 'undefined') {\n          return request\n        }\n        const csrf = getCookie()\n        return !csrf\n          ? request\n          : request.enhance({\n              headers: { [headerName]: csrf },\n            })\n      },\n    }\n  }\nexport default CsrfMiddleware\n"],"mappings":";AAKO,IAAM,iBAAiB,CAAC,aAAa,aAAa,aAAa,mBACpE,SAASA,kBAAiB;AACxB,QAAM,qBAAqB,IAAI,OAAO,aAAa,OAAO;AAC1D,QAAM,YAAY,MAAM;AACtB,UAAM,eAAe,mBAAmB,MAAM,YAAY,CAAC,GAAG,UAAU,EAAE;AAC1E,WAAO,eACH,mBAAmB,aAAa,SAAS,EAAE,QAAQ,WAAW,EAAE,CAAC,IACjE;AAAA,EACN;AAEA,SAAO;AAAA,IACL,MAAM,eAAe,MAAM;AACzB,YAAM,UAAU,MAAM,KAAK;AAC3B,UAAI,OAAO,aAAa,aAAa;AACnC,eAAO;AAAA,MACT;AACA,YAAM,OAAO,UAAU;AACvB,aAAO,CAAC,OACJ,UACA,QAAQ,QAAQ;AAAA,QACd,SAAS,EAAE,CAAC,UAAU,GAAG,KAAK;AAAA,MAChC,CAAC;AAAA,IACP;AAAA,EACF;AACF;AACF,IAAO,eAAQ;","names":["CsrfMiddleware"]}