@rrweb/packer
Version:
`@rrweb/packer` is a tool to compress rrweb events into a smaller size.
1 lines • 1.54 kB
Source Map (JSON)
{"version":3,"file":"unpack.cjs","sources":["../src/unpack.ts"],"sourcesContent":["import { strFromU8, strToU8, unzlibSync } from 'fflate';\nimport { type eventWithTimeAndPacker, MARK } from './base';\nimport type { UnpackFn, eventWithTime } from '@rrweb/types';\n\nexport const unpack: UnpackFn = (raw: string) => {\n if (typeof raw !== 'string') {\n return raw;\n }\n try {\n const e: eventWithTime = JSON.parse(raw) as eventWithTime;\n if (e.timestamp) {\n return e;\n }\n } catch (error) {\n // ignore and continue\n }\n try {\n const e: eventWithTimeAndPacker = JSON.parse(\n strFromU8(unzlibSync(strToU8(raw, true))),\n ) as eventWithTimeAndPacker;\n if (e.v === MARK) {\n return e;\n }\n throw new Error(\n `These events were packed with packer ${e.v} which is incompatible with current packer ${MARK}.`,\n );\n } catch (error) {\n console.error(error);\n throw new Error('Unknown data format.');\n }\n};\n"],"names":["strFromU8","unzlibSync","strToU8","MARK"],"mappings":";;;AAIa,MAAA,SAAmB,CAAC,QAAgB;AAC3C,MAAA,OAAO,QAAQ,UAAU;AACpB,WAAA;AAAA,EACT;AACI,MAAA;AACI,UAAA,IAAmB,KAAK,MAAM,GAAG;AACvC,QAAI,EAAE,WAAW;AACR,aAAA;AAAA,IACT;AAAA,WACO,OAAO;AAAA,EAEhB;AACI,MAAA;AACF,UAAM,IAA4B,KAAK;AAAA,MACrCA,KAAAA,UAAUC,KAAAA,WAAWC,KAAAA,QAAQ,KAAK,IAAI,CAAC,CAAC;AAAA,IAAA;AAEtC,QAAA,EAAE,MAAMC,WAAM;AACT,aAAA;AAAA,IACT;AACA,UAAM,IAAI;AAAA,MACR,wCAAwC,EAAE,CAAC,8CAA8CA,KAAAA,IAAI;AAAA,IAAA;AAAA,WAExF,OAAO;AACd,YAAQ,MAAM,KAAK;AACb,UAAA,IAAI,MAAM,sBAAsB;AAAA,EACxC;AACF;;"}