{"version":3,"file":"dts-bundle-generator.mjs","sources":["../src/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport zlib from 'node:zlib';\n\nimport type { CompilationOptions, EntryPointConfig } from 'dts-bundle-generator';\nimport { generateDtsBundle } from 'dts-bundle-generator';\nimport colors from 'picocolors';\nimport type { InputOption } from 'rollup';\n\ntype ExtendedEntryPointConfig = EntryPointConfig & {\n  outFile: string\n};\n\nexport type PluginConfig = Omit<EntryPointConfig, 'filePath'> & {\n  fileName: string | ((entryName: string) => string)\n};\n\ninterface DeclarationBundle {\n  content: string\n  outFile: string\n  info: string\n}\n\ninterface ResolvedConfig {\n  build: {\n    lib?: {\n      entry: InputOption\n    }\n    outDir: string\n  }\n  logger: {\n    info(msg: string): void\n  }\n}\n\nconst displaySize = (content: string) => {\n  const size = Buffer.byteLength(content);\n  const compressedSize = zlib.gzipSync(content).length;\n\n  const options = {\n    maximumFractionDigits: 2,\n    minimumFractionDigits: 2,\n  };\n\n  return [\n    `${(size / 1000).toLocaleString('en', options)} kB`,\n    `gzip: ${(compressedSize / 1000).toLocaleString('en', options)} kB`,\n  ].join(' │ ');\n};\n\nconst dtsBundleGenerator = (pluginConfig: PluginConfig, compilationOptions?: CompilationOptions) => {\n  const viteConfig = {} as ResolvedConfig;\n  const namedEntryPointConfigs: Array<ExtendedEntryPointConfig> = [];\n  const bundles: Array<DeclarationBundle> = [];\n\n  return {\n    name: 'dts-bundle-generator',\n    configResolved: (resolvedConfig: unknown) => {\n      Object.assign(viteConfig, resolvedConfig);\n\n      if (viteConfig.build.lib) {\n        const libEntries = typeof viteConfig.build.lib.entry == 'object'\n          ? viteConfig.build.lib.entry\n          : { default: viteConfig.build.lib.entry };\n        const fileName = typeof pluginConfig.fileName == 'function'\n          ? pluginConfig.fileName\n          : () => pluginConfig.fileName as string;\n\n        Object.entries(libEntries).forEach(([entryName, filePath]) => namedEntryPointConfigs.push({\n          ...pluginConfig,\n          filePath,\n          outFile: fileName(entryName),\n        }));\n      }\n    },\n    buildEnd: () => {\n      generateDtsBundle(namedEntryPointConfigs, compilationOptions).forEach((content, i) => bundles.push({\n        content,\n        outFile: path.resolve(viteConfig.build.outDir, namedEntryPointConfigs[i].outFile),\n        info: colors.dim(`${viteConfig.build.outDir}/`)\n          + colors.cyan(namedEntryPointConfigs[i].outFile)\n          + '  '\n          + colors.dim(displaySize(content)),\n      }));\n    },\n    closeBundle: () => {\n      viteConfig.logger.info(`\\n${colors.green('✓')} ${bundles.length.toString()} declaration bundles generated.`);\n      bundles.forEach((bundle) => {\n        fs.writeFileSync(bundle.outFile, bundle.content);\n        viteConfig.logger.info(bundle.info);\n      });\n      console.warn(colors.yellow('vite-plugin-dts-bundle-generator is moving to Unplugin architecture, '\n        + 'please migrate to unplugin-dts-bundle-generator for versions 3+',\n      ));\n    },\n  };\n};\n\nexport default dtsBundleGenerator;\n"],"names":["displaySize","content","size","compressedSize","zlib","options","dtsBundleGenerator","pluginConfig","compilationOptions","viteConfig","namedEntryPointConfigs","bundles","resolvedConfig","libEntries","fileName","entryName","filePath","generateDtsBundle","i","path","colors","bundle","fs"],"mappings":";;;;;AAmCA,MAAMA,IAAc,CAACC,MAAoB;AACvC,QAAMC,IAAO,OAAO,WAAWD,CAAO,GAChCE,IAAiBC,EAAK,SAASH,CAAO,EAAE,QAExCI,IAAU;AAAA,IACd,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,EAAA;AAGzB,SAAO;AAAA,IACL,IAAIH,IAAO,KAAM,eAAe,MAAMG,CAAO,CAAC;AAAA,IAC9C,UAAUF,IAAiB,KAAM,eAAe,MAAME,CAAO,CAAC;AAAA,EAAA,EAC9D,KAAK,KAAK;AACd,GAEMC,IAAqB,CAACC,GAA4BC,MAA4C;AAClG,QAAMC,IAAa,CAAA,GACbC,IAA0D,CAAA,GAC1DC,IAAoC,CAAA;AAE1C,SAAO;AAAA,IACL,MAAM;AAAA,IACN,gBAAgB,CAACC,MAA4B;AAG3C,UAFA,OAAO,OAAOH,GAAYG,CAAc,GAEpCH,EAAW,MAAM,KAAK;AACxB,cAAMI,IAAa,OAAOJ,EAAW,MAAM,IAAI,SAAS,WACpDA,EAAW,MAAM,IAAI,QACrB,EAAE,SAASA,EAAW,MAAM,IAAI,MAAA,GAC9BK,IAAW,OAAOP,EAAa,YAAY,aAC7CA,EAAa,WACb,MAAMA,EAAa;AAEvB,eAAO,QAAQM,CAAU,EAAE,QAAQ,CAAC,CAACE,GAAWC,CAAQ,MAAMN,EAAuB,KAAK;AAAA,UACxF,GAAGH;AAAA,UACH,UAAAS;AAAA,UACA,SAASF,EAASC,CAAS;AAAA,QAAA,CAC5B,CAAC;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,UAAU,MAAM;AACd,MAAAE,EAAkBP,GAAwBF,CAAkB,EAAE,QAAQ,CAACP,GAASiB,MAAMP,EAAQ,KAAK;AAAA,QACjG,SAAAV;AAAA,QACA,SAASkB,EAAK,QAAQV,EAAW,MAAM,QAAQC,EAAuBQ,CAAC,EAAE,OAAO;AAAA,QAChF,MAAME,EAAO,IAAI,GAAGX,EAAW,MAAM,MAAM,GAAG,IAC1CW,EAAO,KAAKV,EAAuBQ,CAAC,EAAE,OAAO,IAC7C,OACAE,EAAO,IAAIpB,EAAYC,CAAO,CAAC;AAAA,MAAA,CACpC,CAAC;AAAA,IAAA;AAAA,IAEJ,aAAa,MAAM;AACjB,MAAAQ,EAAW,OAAO,KAAK;AAAA,EAAKW,EAAO,MAAM,GAAG,CAAC,IAAIT,EAAQ,OAAO,UAAU,iCAAiC,GAC3GA,EAAQ,QAAQ,CAACU,MAAW;AAC1B,QAAAC,EAAG,cAAcD,EAAO,SAASA,EAAO,OAAO,GAC/CZ,EAAW,OAAO,KAAKY,EAAO,IAAI;AAAA,MAAA,CACnC,GACD,QAAQ,KAAKD,EAAO;AAAA,QAAO;AAAA,MAAA,CAE1B;AAAA,IAAA;AAAA,EACH;AAEJ;"}