Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
1 line
2.1 KiB
Plaintext
1 line
2.1 KiB
Plaintext
{"version":3,"sources":["../../src/uploads/parseRangeHeader.ts"],"sourcesContent":["import parseRange from 'range-parser'\n\nexport type ByteRange = {\n end: number\n start: number\n}\n\nexport type ParseRangeResult =\n | { range: ByteRange; type: 'partial' }\n | { range: null; type: 'full' }\n | { range: null; type: 'invalid' }\n\n/**\n * Parses HTTP Range header according to RFC 7233\n *\n * @returns Result object indicating whether to serve full file, partial content, or invalid range\n */\nexport function parseRangeHeader({\n fileSize,\n rangeHeader,\n}: {\n fileSize: number\n rangeHeader: null | string\n}): ParseRangeResult {\n // No Range header - serve full file\n if (!rangeHeader) {\n return { type: 'full', range: null }\n }\n\n const result = parseRange(fileSize, rangeHeader)\n\n // Invalid range syntax or unsatisfiable range\n if (result === -1 || result === -2) {\n return { type: 'invalid', range: null }\n }\n\n // Must be bytes range type\n if (result.type !== 'bytes' || result.length === 0) {\n return { type: 'invalid', range: null }\n }\n\n // Multi-range requests: use first range only (standard simplification)\n const range = result[0]\n\n if (!range) {\n return { type: 'invalid', range: null }\n }\n\n return {\n type: 'partial',\n range: {\n end: range.end,\n start: range.start,\n },\n }\n}\n"],"names":["parseRange","parseRangeHeader","fileSize","rangeHeader","type","range","result","length","end","start"],"mappings":"AAAA,OAAOA,gBAAgB,eAAc;AAYrC;;;;CAIC,GACD,OAAO,SAASC,iBAAiB,EAC/BC,QAAQ,EACRC,WAAW,EAIZ;IACC,oCAAoC;IACpC,IAAI,CAACA,aAAa;QAChB,OAAO;YAAEC,MAAM;YAAQC,OAAO;QAAK;IACrC;IAEA,MAAMC,SAASN,WAAWE,UAAUC;IAEpC,8CAA8C;IAC9C,IAAIG,WAAW,CAAC,KAAKA,WAAW,CAAC,GAAG;QAClC,OAAO;YAAEF,MAAM;YAAWC,OAAO;QAAK;IACxC;IAEA,2BAA2B;IAC3B,IAAIC,OAAOF,IAAI,KAAK,WAAWE,OAAOC,MAAM,KAAK,GAAG;QAClD,OAAO;YAAEH,MAAM;YAAWC,OAAO;QAAK;IACxC;IAEA,uEAAuE;IACvE,MAAMA,QAAQC,MAAM,CAAC,EAAE;IAEvB,IAAI,CAACD,OAAO;QACV,OAAO;YAAED,MAAM;YAAWC,OAAO;QAAK;IACxC;IAEA,OAAO;QACLD,MAAM;QACNC,OAAO;YACLG,KAAKH,MAAMG,GAAG;YACdC,OAAOJ,MAAMI,KAAK;QACpB;IACF;AACF"} |