{"version":3,"sources":["../src/index.ts","../src/config.ts","../src/helpers.ts","../src/workbook.ts"],"sourcesContent":["import {\n  AOA2SheetOpts,\n  AutoFilterInfo,\n  ColInfo,\n  ParsingOptions,\n  ProtectInfo,\n  Range,\n  read,\n  readFile,\n  RowInfo,\n  Sheet2JSONOpts,\n  utils,\n  write,\n  WritingOptions,\n} from \"xlsx\";\nimport \"./config\";\nimport { isString } from \"./helpers\";\nimport { WorkBook } from \"./workbook\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const parse = <T = any[]>(mixed: unknown, options: Sheet2JSONOpts & ParsingOptions = {}) => {\n  const { dateNF, header = 1, range, blankrows, defval, raw = true, rawNumbers, ...otherOptions } = options;\n  const workBook = isString(mixed)\n    ? readFile(mixed, { dateNF, raw, ...otherOptions })\n    : read(mixed, { dateNF, raw, ...otherOptions });\n  return Object.keys(workBook.Sheets).map((name) => {\n    const sheet = workBook.Sheets[name]!;\n    return {\n      name,\n      data: utils.sheet_to_json<T>(sheet, {\n        dateNF,\n        header,\n        range: typeof range === \"function\" ? range(sheet) : range,\n        blankrows,\n        defval,\n        raw,\n        rawNumbers,\n      }),\n    };\n  });\n};\n\nexport const parseMetadata = (mixed: unknown, options: ParsingOptions = {}) => {\n  const workBook = isString(mixed) ? readFile(mixed, options) : read(mixed, options);\n  return Object.keys(workBook.Sheets).map((name) => {\n    const sheet = workBook.Sheets[name]!;\n    return { name, data: sheet[\"!ref\"] ? utils.decode_range(sheet[\"!ref\"]) : null };\n  });\n};\n\nexport type WorkSheetOptions = {\n  /** Column Info */\n  \"!cols\"?: ColInfo[];\n\n  /** Row Info */\n  \"!rows\"?: RowInfo[];\n\n  /** Merge Ranges */\n  \"!merges\"?: Range[];\n\n  /** Worksheet Protection info */\n  \"!protect\"?: ProtectInfo;\n\n  /** AutoFilter info */\n  \"!autofilter\"?: AutoFilterInfo;\n};\n\nexport type WorkSheet<T = unknown> = {\n  name: string;\n  data: T[][];\n  options: WorkSheetOptions;\n};\n\nexport type BuildOptions = WorkSheetOptions & {\n  parseOptions?: AOA2SheetOpts;\n  writeOptions?: WritingOptions;\n  sheetOptions?: WorkSheetOptions;\n};\n\nexport const build = (\n  worksheets: WorkSheet[],\n  { parseOptions = {}, writeOptions = {}, sheetOptions = {}, ...otherOptions }: BuildOptions = {},\n): Buffer => {\n  const { bookType = \"xlsx\", bookSST = false, type = \"buffer\", ...otherWriteOptions } = writeOptions;\n  const legacyOptions = Object.keys(otherOptions).filter((key) => {\n    if ([\"!cols\", \"!rows\", \"!merges\", \"!protect\", \"!autofilter\"].includes(key)) {\n      console.debug(`Deprecated options['${key}'], please use options.sheetOptions['${key}'] instead.`);\n      return true;\n    }\n    console.debug(`Unknown options['${key}'], please use options.parseOptions / options.writeOptions`);\n    return false;\n  });\n  const workBook = worksheets.reduce<WorkBook>((soFar, { name, data, options = {} }, index) => {\n    const sheetName = name || `Sheet_${index}`;\n    const sheetData = utils.aoa_to_sheet(data, parseOptions);\n    soFar.SheetNames.push(sheetName);\n    soFar.Sheets[sheetName] = sheetData;\n    Object.assign(soFar.Sheets[sheetName]!, legacyOptions, sheetOptions, options);\n    return soFar;\n  }, new WorkBook());\n  return write(workBook, { bookType, bookSST, type, ...otherWriteOptions });\n};\n\nexport default { parse, parseMetadata, build };\n","import * as fs from \"fs\";\nimport { set_fs } from \"xlsx\";\n\nset_fs(fs);\n","export const isString = (maybeString: unknown): maybeString is string => typeof maybeString === \"string\";\n","import type { WorkSheet, WorkBook as XLSXWorkBook } from \"xlsx\";\n\nexport class WorkBook implements XLSXWorkBook {\n  Sheets: Record<string, WorkSheet> = {};\n  SheetNames: string[] = [];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,eAcO;;;ACdP,SAAoB;AACpB,kBAAuB;AAAA,IAEvB,oBAAO,EAAE;;;ACHF,IAAM,WAAW,CAAC,gBAAgD,OAAO,gBAAgB;;;ACEzF,IAAM,WAAN,MAAuC;AAAA,EAC5C,SAAoC,CAAC;AAAA,EACrC,aAAuB,CAAC;AAC1B;;;AHeO,IAAM,QAAQ,CAAY,OAAgB,UAA2C,CAAC,MAAM;AACjG,QAAM,EAAE,QAAQ,SAAS,GAAG,OAAO,WAAW,QAAQ,MAAM,MAAM,YAAY,GAAG,aAAa,IAAI;AAClG,QAAM,WAAW,SAAS,KAAK,QAC3B,uBAAS,OAAO,EAAE,QAAQ,KAAK,GAAG,aAAa,CAAC,QAChD,mBAAK,OAAO,EAAE,QAAQ,KAAK,GAAG,aAAa,CAAC;AAChD,SAAO,OAAO,KAAK,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS;AAChD,UAAM,QAAQ,SAAS,OAAO,IAAI;AAClC,WAAO;AAAA,MACL;AAAA,MACA,MAAM,mBAAM,cAAiB,OAAO;AAAA,QAClC;AAAA,QACA;AAAA,QACA,OAAO,OAAO,UAAU,aAAa,MAAM,KAAK,IAAI;AAAA,QACpD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH;AAEO,IAAM,gBAAgB,CAAC,OAAgB,UAA0B,CAAC,MAAM;AAC7E,QAAM,WAAW,SAAS,KAAK,QAAI,uBAAS,OAAO,OAAO,QAAI,mBAAK,OAAO,OAAO;AACjF,SAAO,OAAO,KAAK,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS;AAChD,UAAM,QAAQ,SAAS,OAAO,IAAI;AAClC,WAAO,EAAE,MAAM,MAAM,MAAM,MAAM,IAAI,mBAAM,aAAa,MAAM,MAAM,CAAC,IAAI,KAAK;AAAA,EAChF,CAAC;AACH;AA+BO,IAAM,QAAQ,CACnB,YACA,EAAE,eAAe,CAAC,GAAG,eAAe,CAAC,GAAG,eAAe,CAAC,GAAG,GAAG,aAAa,IAAkB,CAAC,MACnF;AACX,QAAM,EAAE,WAAW,QAAQ,UAAU,OAAO,OAAO,UAAU,GAAG,kBAAkB,IAAI;AACtF,QAAM,gBAAgB,OAAO,KAAK,YAAY,EAAE,OAAO,CAAC,QAAQ;AAC9D,QAAI,CAAC,SAAS,SAAS,WAAW,YAAY,aAAa,EAAE,SAAS,GAAG,GAAG;AAC1E,cAAQ,MAAM,uBAAuB,GAAG,wCAAwC,GAAG,aAAa;AAChG,aAAO;AAAA,IACT;AACA,YAAQ,MAAM,oBAAoB,GAAG,4DAA4D;AACjG,WAAO;AAAA,EACT,CAAC;AACD,QAAM,WAAW,WAAW,OAAiB,CAAC,OAAO,EAAE,MAAM,MAAM,UAAU,CAAC,EAAE,GAAG,UAAU;AAC3F,UAAM,YAAY,QAAQ,SAAS,KAAK;AACxC,UAAM,YAAY,mBAAM,aAAa,MAAM,YAAY;AACvD,UAAM,WAAW,KAAK,SAAS;AAC/B,UAAM,OAAO,SAAS,IAAI;AAC1B,WAAO,OAAO,MAAM,OAAO,SAAS,GAAI,eAAe,cAAc,OAAO;AAC5E,WAAO;AAAA,EACT,GAAG,IAAI,SAAS,CAAC;AACjB,aAAO,oBAAM,UAAU,EAAE,UAAU,SAAS,MAAM,GAAG,kBAAkB,CAAC;AAC1E;AAEA,IAAO,cAAQ,EAAE,OAAO,eAAe,MAAM;","names":["import_xlsx"]}