{"version":3,"file":"show-cursor-action.mjs","names":[],"sources":["../../src/actions/show-cursor-action.ts"],"sourcesContent":["import type { Command } from 'commander';\nimport sharp from 'sharp';\n\nimport { CGA_PALETTE } from '@4bitlabs/color/palettes';\nimport { decompress, parseCursor } from '@4bitlabs/sci0';\nimport { createPaletteFilter, renderPixelData } from '@4bitlabs/image';\nimport { getRootOptions } from './get-root-options.js';\nimport { loadContentFromMap } from './load-content-from-map.js';\nimport { cursorMatcher } from '../helpers/resource-matchers.js';\n\nexport const showCursorAction = async (\n  cursorNum: number,\n  _: unknown,\n  thisCmd: Command,\n) => {\n  const { root, engine } = getRootOptions(thisCmd);\n  const [header, bytes] = await loadContentFromMap(\n    root,\n    cursorMatcher(cursorNum),\n  );\n\n  const payload = decompress(engine, header.compression, bytes);\n  const cursor = parseCursor(payload);\n  const bitmap = renderPixelData(cursor, {\n    render: createPaletteFilter(CGA_PALETTE),\n  });\n\n  const image = sharp(bitmap.data, {\n    raw: {\n      width: bitmap.width,\n      height: bitmap.height,\n      channels: 4,\n    },\n  });\n\n  process.stdout.write(await image.png().toBuffer());\n};\n"],"mappings":";;;;;;;;AAUA,MAAa,mBAAmB,OAC9B,WACA,GACA,YACG;CACH,MAAM,EAAE,MAAM,WAAW,eAAe,OAAO;CAC/C,MAAM,CAAC,QAAQ,SAAS,MAAM,mBAC5B,MACA,cAAc,SAAS,CACzB;CAEA,MAAM,UAAU,WAAW,QAAQ,OAAO,aAAa,KAAK;CAC5D,MAAM,SAAS,YAAY,OAAO;CAClC,MAAM,SAAS,gBAAgB,QAAQ,EACrC,QAAQ,oBAAoB,WAAW,EACzC,CAAC;CAED,MAAM,QAAQ,MAAM,OAAO,MAAM,EAC/B,KAAK;EACH,OAAO,OAAO;EACd,QAAQ,OAAO;EACf,UAAU;CACZ,EACF,CAAC;CAED,QAAQ,OAAO,MAAM,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC;AACnD"}