@amplitude/rrweb-packer
Version:
`@rrweb/packer` is a tool to compress rrweb events into a smaller size.
1 lines • 1.56 kB
Source Map (JSON)
{"version":3,"file":"unpack.cjs","sources":["../src/unpack.ts"],"sourcesContent":["import type { UnpackFn, eventWithTime } from '@amplitude/rrweb-types';\nimport { strFromU8, strToU8, unzlibSync } from 'fflate';\nimport { type eventWithTimeAndPacker, MARK } from './base';\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":";;;AAIO,MAAM,SAAmB,CAAC,QAAgB;AAC/C,MAAI,OAAO,QAAQ,UAAU;AAC3B,WAAO;AAAA,EACT;AACA,MAAI;AACF,UAAM,IAAmB,KAAK,MAAM,GAAG;AACvC,QAAI,EAAE,WAAW;AACf,aAAO;AAAA,IACT;AAAA,EACF,SAAS,OAAO;AAAA,EAEhB;AACA,MAAI;AACF,UAAM,IAA4B,KAAK;AAAA,MACrCA,KAAAA,UAAUC,KAAAA,WAAWC,KAAAA,QAAQ,KAAK,IAAI,CAAC,CAAC;AAAA,IAAA;AAE1C,QAAI,EAAE,MAAMC,WAAM;AAChB,aAAO;AAAA,IACT;AACA,UAAM,IAAI;AAAA,MACR,wCAAwC,EAAE,CAAC,8CAA8CA,KAAAA,IAAI;AAAA,IAAA;AAAA,EAEjG,SAAS,OAAO;AACd,YAAQ,MAAM,KAAK;AACnB,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AACF;;"}