1 | {"version":3,"file":"parseVhdToBlocks.js","names":["_assert","_interopRequireDefault","require","_parseVhdStream","obj","__esModule","default","next","iterator","type","skipableType","item","cursor","assert","strictEqual","done","value","onlyBlocks","iterable","blockSize","id","data","lba","block","parseVhdToBlocks","vhdStream","parseVhdStream","footer","header","blockCount","diskSize","currentSize","geometry","diskGeometry","blocks"],"sources":["../src/parseVhdToBlocks.js"],"sourcesContent":["import assert from 'assert'\nimport { parseVhdStream } from 'vhd-lib/parseVhdStream.js'\n\nasync function next(iterator, type, skipableType) {\n let item\n do {\n const cursor = await iterator.next()\n assert.strictEqual(cursor.done, false, 'iterator is done')\n\n item = cursor.value\n } while (item.type === skipableType)\n assert.strictEqual(item.type, type)\n return item\n}\n\nasync function* onlyBlocks(iterable, blockSize) {\n for await (const item of iterable) {\n if (item.type === 'block') {\n // transform to blocks expected by generateVmdkData\n // rename the property and remove the block bitmap\n const { id, data } = item\n yield { lba: id * blockSize, block: data }\n }\n }\n}\n\nexport async function parseVhdToBlocks(vhdStream) {\n const iterator = parseVhdStream(vhdStream)\n\n const { footer } = await next(iterator, 'footer')\n const { header } = await next(iterator, 'header')\n\n // ignore all parent locators that could be before the BAT\n const { blockCount } = await next(iterator, 'bat', 'parentLocator')\n\n return {\n blockSize: header.blockSize,\n blockCount,\n diskSize: footer.currentSize,\n geometry: footer.diskGeometry,\n blocks: onlyBlocks(iterator, header.blockSize),\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAA0D,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE1D,eAAeG,IAAIA,CAACC,QAAQ,EAAEC,IAAI,EAAEC,YAAY,EAAE;EAChD,IAAIC,IAAI;EACR,GAAG;IACD,MAAMC,MAAM,GAAG,MAAMJ,QAAQ,CAACD,IAAI,CAAC,CAAC;IACpCM,eAAM,CAACC,WAAW,CAACF,MAAM,CAACG,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC;IAE1DJ,IAAI,GAAGC,MAAM,CAACI,KAAK;EACrB,CAAC,QAAQL,IAAI,CAACF,IAAI,KAAKC,YAAY;EACnCG,eAAM,CAACC,WAAW,CAACH,IAAI,CAACF,IAAI,EAAEA,IAAI,CAAC;EACnC,OAAOE,IAAI;AACb;AAEA,gBAAgBM,UAAUA,CAACC,QAAQ,EAAEC,SAAS,EAAE;EAC9C,WAAW,MAAMR,IAAI,IAAIO,QAAQ,EAAE;IACjC,IAAIP,IAAI,CAACF,IAAI,KAAK,OAAO,EAAE;MAGzB,MAAM;QAAEW,EAAE;QAAEC;MAAK,CAAC,GAAGV,IAAI;MACzB,MAAM;QAAEW,GAAG,EAAEF,EAAE,GAAGD,SAAS;QAAEI,KAAK,EAAEF;MAAK,CAAC;IAC5C;EACF;AACF;AAEO,eAAeG,gBAAgBA,CAACC,SAAS,EAAE;EAChD,MAAMjB,QAAQ,GAAG,IAAAkB,8BAAc,EAACD,SAAS,CAAC;EAE1C,MAAM;IAAEE;EAAO,CAAC,GAAG,MAAMpB,IAAI,CAACC,QAAQ,EAAE,QAAQ,CAAC;EACjD,MAAM;IAAEoB;EAAO,CAAC,GAAG,MAAMrB,IAAI,CAACC,QAAQ,EAAE,QAAQ,CAAC;EAGjD,MAAM;IAAEqB;EAAW,CAAC,GAAG,MAAMtB,IAAI,CAACC,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC;EAEnE,OAAO;IACLW,SAAS,EAAES,MAAM,CAACT,SAAS;IAC3BU,UAAU;IACVC,QAAQ,EAAEH,MAAM,CAACI,WAAW;IAC5BC,QAAQ,EAAEL,MAAM,CAACM,YAAY;IAC7BC,MAAM,EAAEjB,UAAU,CAACT,QAAQ,EAAEoB,MAAM,CAACT,SAAS;EAC/C,CAAC;AACH"} |