@shellicar/build-clean 1.0.0-preview.1 → 1.0.0-preview.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/cjs/astro.cjs +1 -1
  2. package/dist/cjs/{chunk-5XEO4AJH.cjs → chunk-2J3HCLLR.cjs} +1 -1
  3. package/dist/cjs/chunk-2J3HCLLR.cjs.map +1 -0
  4. package/dist/cjs/chunk-SZJPBNRD.cjs +1 -0
  5. package/dist/cjs/{chunk-TRULVDNJ.cjs.map → chunk-SZJPBNRD.cjs.map} +1 -1
  6. package/dist/cjs/chunk-UGB7RV45.cjs +1 -0
  7. package/dist/cjs/chunk-UGB7RV45.cjs.map +1 -0
  8. package/dist/cjs/core/cleanUnusedFiles.cjs +1 -1
  9. package/dist/cjs/core/defaults.cjs +1 -1
  10. package/dist/cjs/core/defaults.d.cts +1 -1
  11. package/dist/cjs/core/index.cjs +1 -1
  12. package/dist/cjs/core/types.d.cts +1 -1
  13. package/dist/cjs/esbuild.cjs +1 -1
  14. package/dist/cjs/index.cjs +1 -1
  15. package/dist/cjs/nuxt.cjs +1 -1
  16. package/dist/cjs/rollup.cjs +1 -1
  17. package/dist/cjs/vite.cjs +1 -1
  18. package/dist/esm/astro.js +1 -1
  19. package/dist/esm/chunk-4WDU3YKC.js +1 -0
  20. package/dist/esm/{chunk-ZJZOBFU7.js.map → chunk-4WDU3YKC.js.map} +1 -1
  21. package/dist/esm/chunk-73FTK3J5.js +1 -0
  22. package/dist/esm/chunk-73FTK3J5.js.map +1 -0
  23. package/dist/esm/chunk-G325LPQA.js +1 -0
  24. package/dist/esm/chunk-G325LPQA.js.map +1 -0
  25. package/dist/esm/core/cleanUnusedFiles.js +1 -1
  26. package/dist/esm/core/defaults.d.ts +1 -1
  27. package/dist/esm/core/defaults.js +1 -1
  28. package/dist/esm/core/index.js +1 -1
  29. package/dist/esm/core/types.d.ts +1 -1
  30. package/dist/esm/esbuild.js +1 -1
  31. package/dist/esm/index.js +1 -1
  32. package/dist/esm/nuxt.js +1 -1
  33. package/dist/esm/rollup.js +1 -1
  34. package/dist/esm/vite.js +1 -1
  35. package/package.json +29 -29
  36. package/dist/cjs/chunk-5XEO4AJH.cjs.map +0 -1
  37. package/dist/cjs/chunk-TRULVDNJ.cjs +0 -1
  38. package/dist/cjs/chunk-Z4BCISP5.cjs +0 -1
  39. package/dist/cjs/chunk-Z4BCISP5.cjs.map +0 -1
  40. package/dist/esm/chunk-GGQ2IM6X.js +0 -1
  41. package/dist/esm/chunk-GGQ2IM6X.js.map +0 -1
  42. package/dist/esm/chunk-RB6ZS752.js +0 -1
  43. package/dist/esm/chunk-RB6ZS752.js.map +0 -1
  44. package/dist/esm/chunk-ZJZOBFU7.js +0 -1
@@ -1 +1 @@
1
- "use strict";var e=require("./chunk-5XEO4AJH.cjs");require("./chunk-TRULVDNJ.cjs"),require("./chunk-Z4BCISP5.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs");var u=require("./chunk-PK6SKIKE.cjs"),c=u.__name(c=>({name:"build-clean",hooks:{"astro:config:setup":u.__name(async u=>{u.config.vite.plugins||=[],u.config.vite.plugins.push(e.plugin.vite(c))},"astro:config:setup")}}),"default");module.exports=c;//# sourceMappingURL=astro.cjs.map
1
+ "use strict";var e=require("./chunk-2J3HCLLR.cjs");require("./chunk-SZJPBNRD.cjs"),require("./chunk-UGB7RV45.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs");var u=require("./chunk-PK6SKIKE.cjs"),c=u.__name(c=>({name:"build-clean",hooks:{"astro:config:setup":u.__name(async u=>{u.config.vite.plugins||=[],u.config.vite.plugins.push(e.plugin.vite(c))},"astro:config:setup")}}),"default");module.exports=c;//# sourceMappingURL=astro.cjs.map
@@ -1 +1 @@
1
- "use strict";var e=require("./chunk-TRULVDNJ.cjs"),i=require("./chunk-Z4BCISP5.cjs"),n=require("./chunk-FD3CZK4P.cjs"),r=require("./chunk-PK6SKIKE.cjs"),t=require("unplugin"),u=r.__name((r={})=>{const t={...e.defaults,...r},u=n.createLogger(t);return{name:"unplugin-build-cleaner",enforce:"post",esbuild:{setup(e){e.initialOptions.metafile=!0,e.onEnd(async n=>{u.debug("Build completed, starting cleanup process");const r=e.initialOptions.outdir;if(!r)throw new Error("[build-cleaner] No output directory specified in build options");if(!n.metafile)throw new Error("[build-cleaner] No metafile available - ensure metafile is enabled");const l=new Set(Object.keys(n.metafile.outputs));u.debug(`Found ${l.size} built files in metafile for directory: "${r}"`),await i.cleanUnusedFiles(r,l,t,u)})}}}},"pluginFactory"),l=t.createUnplugin(u);exports.plugin=l;//# sourceMappingURL=chunk-5XEO4AJH.cjs.map
1
+ "use strict";var e=require("./chunk-SZJPBNRD.cjs"),i=require("./chunk-UGB7RV45.cjs"),n=require("./chunk-FD3CZK4P.cjs"),r=require("./chunk-PK6SKIKE.cjs"),t=require("unplugin"),u=r.__name((r={})=>{const t={...e.defaults,...r},u=n.createLogger(t);return{name:"@shellicar/build-clean",enforce:"post",esbuild:{setup(e){e.initialOptions.metafile=!0,e.onEnd(async n=>{u.debug("Build completed, starting cleanup process");const r=e.initialOptions.outdir;if(!r)throw new Error("[build-cleaner] No output directory specified in build options");if(!n.metafile)throw new Error("[build-cleaner] No metafile available - ensure metafile is enabled");const l=new Set(Object.keys(n.metafile.outputs));u.debug(`Found ${l.size} built files in metafile for directory: "${r}"`),await i.cleanUnusedFiles(r,l,t,u)})}}}},"pluginFactory"),l=t.createUnplugin(u);exports.plugin=l;//# sourceMappingURL=chunk-2J3HCLLR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/core/index.ts"],"names":["__name","defaults","createLogger","cleanUnusedFiles","createUnplugin"],"mappings":"sPAMA,IAAM,aAAA,mBAAsDA,wBAAA,CAAA,CAAC,cAAA,GAA0B,EAAC,KAAM;AAC5F,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,GAAGC,0BAAA;AAAA,IACH,GAAG;AAAA,GACL;AAEA,EAAA,MAAM,MAAA,GAASC,+BAAa,OAAO,CAAA;AAEnC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,wBAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IACT,OAAA,EAAS;AAAA,MACP,MAAM,KAAA,EAAO;AACX,QAAA,KAAA,CAAM,eAAe,QAAA,GAAW,IAAA;AAEhC,QAAA,KAAA,CAAM,KAAA,CAAM,OAAO,MAAA,KAAW;AAC5B,UAAA,MAAA,CAAO,MAAM,2CAA2C,CAAA;AAExD,UAAA,MAAM,MAAA,GAAS,MAAM,cAAA,CAAe,MAAA;AACpC,UAAA,IAAI,CAAC,MAAA,EAAQ;AACX,YAAA,MAAM,IAAI,MAAM,gEAAgE,CAAA;AAAA,UAClF;AAEA,UAAA,IAAI,CAAC,OAAO,QAAA,EAAU;AACpB,YAAA,MAAM,IAAI,MAAM,oEAAoE,CAAA;AAAA,UACtF;AAEA,UAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAI,MAAA,CAAO,KAAK,MAAA,CAAO,QAAA,CAAS,OAAO,CAAC,CAAA;AAC/D,UAAA,MAAA,CAAO,MAAM,CAAA,MAAA,EAAS,UAAA,CAAW,IAAI,CAAA,yCAAA,EAA4C,MAAM,CAAA,CAAA,CAAG,CAAA;AAE1F,UAAA,MAAMC,kCAAA,CAAiB,MAAA,EAAQ,UAAA,EAAY,OAAA,EAAS,MAAM,CAAA;AAAA,QAC5D,CAAC,CAAA;AAAA,MACH;AAAA;AACF,GACF;AACF,CAAA,EAnC4D,eAAA,CAAA;AAqCrD,IAAM,MAAA,GAASC,wBAAe,aAAa","file":"chunk-2J3HCLLR.cjs","sourcesContent":["import { type UnpluginFactory, type UnpluginOptions, createUnplugin } from 'unplugin';\nimport { cleanUnusedFiles } from './cleanUnusedFiles';\nimport { createLogger } from './createLogger';\nimport { defaults } from './defaults';\nimport type { Options } from './types';\n\nconst pluginFactory: UnpluginFactory<Options | undefined> = (initialOptions: Options = {}) => {\n const options = {\n ...defaults,\n ...initialOptions,\n };\n\n const logger = createLogger(options);\n\n return {\n name: '@shellicar/build-clean',\n enforce: 'post',\n esbuild: {\n setup(build) {\n build.initialOptions.metafile = true;\n\n build.onEnd(async (result) => {\n logger.debug('Build completed, starting cleanup process');\n\n const outdir = build.initialOptions.outdir;\n if (!outdir) {\n throw new Error('[build-cleaner] No output directory specified in build options');\n }\n\n if (!result.metafile) {\n throw new Error('[build-cleaner] No metafile available - ensure metafile is enabled');\n }\n\n const builtFiles = new Set(Object.keys(result.metafile.outputs));\n logger.debug(`Found ${builtFiles.size} built files in metafile for directory: \"${outdir}\"`);\n\n await cleanUnusedFiles(outdir, builtFiles, options, logger);\n });\n },\n },\n } satisfies UnpluginOptions;\n};\n\nexport const plugin = createUnplugin(pluginFactory);\n"]}
@@ -0,0 +1 @@
1
+ "use strict";exports.defaults={debug:!1,verbose:!1,destructive:!1};//# sourceMappingURL=chunk-SZJPBNRD.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/defaults.ts"],"names":[],"mappings":";AAEO,IAAM,QAAA,GAAW;AAAA,EACtB,KAAA,EAAO,KAAA;AAAA,EACP,OAAA,EAAS,KAAA;AAAA,EACT,GAAA,EAAK;AACP","file":"chunk-TRULVDNJ.cjs","sourcesContent":["import type { Options } from './types';\n\nexport const defaults = {\n debug: false,\n verbose: false,\n dry: false,\n} satisfies Options;\n"]}
1
+ {"version":3,"sources":["../../src/core/defaults.ts"],"names":[],"mappings":";AAEO,IAAM,QAAA,GAAW;AAAA,EACtB,KAAA,EAAO,KAAA;AAAA,EACP,OAAA,EAAS,KAAA;AAAA,EACT,WAAA,EAAa;AACf","file":"chunk-SZJPBNRD.cjs","sourcesContent":["import type { Options } from './types';\n\nexport const defaults = {\n debug: false,\n verbose: false,\n destructive: false,\n} satisfies Options;\n"]}
@@ -0,0 +1 @@
1
+ "use strict";var e=require("./chunk-CKDUYIXO.cjs"),i=require("./chunk-JV6XTZ6N.cjs"),t=require("./chunk-PK6SKIKE.cjs"),s=require("node:fs/promises"),r=require("node:path");async function n(t,n,o,l){i.validateOutDir(t,l);try{l.debug(`Starting cleanup of directory: "${t}"`),l.debug(`Built files count: ${n.size}`);const i=await e.getAllFiles(t,l);if(l.debug(`Existing files count: ${i.length}`),0===i.length&&n.size>0)return void l.error('Disable tsup "clean: true" to use this plugin.');l.info(`Processing ${i.length} existing files vs ${n.size} built files`);const u=[];for(const e of i){const i=r.relative(process.cwd(),e);l.verbose(`Checking file: "${i}"`),n.has(i)?l.verbose(`Keeping built file: "${i}"`):(u.push(e),l.verbose(`Marked for deletion: "${i}"`))}if(u.length>0){const e=o.destructive?"":" (dry run)";l.warn(`Files marked for deletion: ${u.length}${e}`)}else l.info("No files marked for deletion");let c=0;for(const e of u){const i=r.relative(process.cwd(),e);o.destructive&&await s.unlink(e),l.info(`Deleting: "${i}"`),c++}0===c?l.info("No unused files found"):o.destructive||l.info(`Set destructive: true to actually delete the ${c} unused file(s)`)}catch(e){throw l.error("Error during cleanup:",e),e}}t.__name(n,"cleanUnusedFiles"),exports.cleanUnusedFiles=n;//# sourceMappingURL=chunk-UGB7RV45.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/core/cleanUnusedFiles.ts"],"names":["validateOutDir","getAllFiles","relative","unlink","__name"],"mappings":"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","file":"chunk-UGB7RV45.cjs","sourcesContent":["import { unlink } from 'node:fs/promises';\nimport { relative } from 'node:path';\nimport { getAllFiles } from './getAllFiles';\nimport type { ILogger, Options } from './types';\nimport { validateOutDir } from './validateOutDir';\n\nexport async function cleanUnusedFiles(outDir: string, builtFiles: Set<string>, options: Options, logger: ILogger): Promise<void> {\n validateOutDir(outDir, logger);\n\n try {\n logger.debug(`Starting cleanup of directory: \"${outDir}\"`);\n logger.debug(`Built files count: ${builtFiles.size}`);\n\n const existingFiles = await getAllFiles(outDir, logger);\n logger.debug(`Existing files count: ${existingFiles.length}`);\n\n if (existingFiles.length === 0 && builtFiles.size > 0) {\n logger.error('Disable tsup \"clean: true\" to use this plugin.');\n return;\n }\n\n logger.info(`Processing ${existingFiles.length} existing files vs ${builtFiles.size} built files`);\n\n const filesToDelete: string[] = [];\n\n for (const file of existingFiles) {\n const relativePath = relative(process.cwd(), file);\n logger.verbose(`Checking file: \"${relativePath}\"`);\n\n if (!builtFiles.has(relativePath)) {\n filesToDelete.push(file);\n logger.verbose(`Marked for deletion: \"${relativePath}\"`);\n } else {\n logger.verbose(`Keeping built file: \"${relativePath}\"`);\n }\n }\n\n if (filesToDelete.length > 0) {\n const dryRunSuffix = options.destructive ? '' : ' (dry run)';\n logger.warn(`Files marked for deletion: ${filesToDelete.length}${dryRunSuffix}`);\n } else {\n logger.info('No files marked for deletion');\n }\n\n let deletedCount = 0;\n for (const file of filesToDelete) {\n const relativePath = relative(process.cwd(), file);\n\n if (options.destructive) {\n await unlink(file);\n }\n\n logger.info(`Deleting: \"${relativePath}\"`);\n deletedCount++;\n }\n\n if (deletedCount === 0) {\n logger.info('No unused files found');\n } else if (!options.destructive) {\n logger.info(`Set destructive: true to actually delete the ${deletedCount} unused file(s)`);\n }\n } catch (error) {\n logger.error('Error during cleanup:', error);\n throw error;\n }\n}\n"]}
@@ -1 +1 @@
1
- "use strict";var e=require("../chunk-Z4BCISP5.cjs");require("../chunk-CKDUYIXO.cjs"),require("../chunk-JV6XTZ6N.cjs"),require("../chunk-PK6SKIKE.cjs"),Object.defineProperty(exports,"cleanUnusedFiles",{enumerable:!0,get:function(){return e.cleanUnusedFiles}});//# sourceMappingURL=cleanUnusedFiles.cjs.map
1
+ "use strict";var e=require("../chunk-UGB7RV45.cjs");require("../chunk-CKDUYIXO.cjs"),require("../chunk-JV6XTZ6N.cjs"),require("../chunk-PK6SKIKE.cjs"),Object.defineProperty(exports,"cleanUnusedFiles",{enumerable:!0,get:function(){return e.cleanUnusedFiles}});//# sourceMappingURL=cleanUnusedFiles.cjs.map
@@ -1 +1 @@
1
- "use strict";var e=require("../chunk-TRULVDNJ.cjs");require("../chunk-PK6SKIKE.cjs"),Object.defineProperty(exports,"defaults",{enumerable:!0,get:function(){return e.defaults}});//# sourceMappingURL=defaults.cjs.map
1
+ "use strict";var e=require("../chunk-SZJPBNRD.cjs");require("../chunk-PK6SKIKE.cjs"),Object.defineProperty(exports,"defaults",{enumerable:!0,get:function(){return e.defaults}});//# sourceMappingURL=defaults.cjs.map
@@ -1,7 +1,7 @@
1
1
  declare const defaults: {
2
2
  debug: false;
3
3
  verbose: false;
4
- dry: false;
4
+ destructive: false;
5
5
  };
6
6
 
7
7
  export { defaults };
@@ -1 +1 @@
1
- "use strict";var e=require("../chunk-5XEO4AJH.cjs");require("../chunk-TRULVDNJ.cjs"),require("../chunk-Z4BCISP5.cjs"),require("../chunk-CKDUYIXO.cjs"),require("../chunk-JV6XTZ6N.cjs"),require("../chunk-FD3CZK4P.cjs"),require("../chunk-PK6SKIKE.cjs"),Object.defineProperty(exports,"plugin",{enumerable:!0,get:function(){return e.plugin}});//# sourceMappingURL=index.cjs.map
1
+ "use strict";var e=require("../chunk-2J3HCLLR.cjs");require("../chunk-SZJPBNRD.cjs"),require("../chunk-UGB7RV45.cjs"),require("../chunk-CKDUYIXO.cjs"),require("../chunk-JV6XTZ6N.cjs"),require("../chunk-FD3CZK4P.cjs"),require("../chunk-PK6SKIKE.cjs"),Object.defineProperty(exports,"plugin",{enumerable:!0,get:function(){return e.plugin}});//# sourceMappingURL=index.cjs.map
@@ -1,7 +1,7 @@
1
1
  interface Options {
2
2
  debug?: boolean;
3
3
  verbose?: boolean;
4
- dry?: boolean;
4
+ destructive?: boolean;
5
5
  }
6
6
  type ILogger = {
7
7
  debug: (typeof console)['debug'];
@@ -1 +1 @@
1
- "use strict";var e=require("./chunk-5XEO4AJH.cjs");require("./chunk-TRULVDNJ.cjs"),require("./chunk-Z4BCISP5.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-PK6SKIKE.cjs");var r=e.plugin.esbuild;module.exports=r;//# sourceMappingURL=esbuild.cjs.map
1
+ "use strict";var e=require("./chunk-2J3HCLLR.cjs");require("./chunk-SZJPBNRD.cjs"),require("./chunk-UGB7RV45.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-PK6SKIKE.cjs");var r=e.plugin.esbuild;module.exports=r;//# sourceMappingURL=esbuild.cjs.map
@@ -1 +1 @@
1
- "use strict";require("./chunk-H44HDUOM.cjs");var e=require("./chunk-5XEO4AJH.cjs");require("./chunk-TRULVDNJ.cjs"),require("./chunk-Z4BCISP5.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-PK6SKIKE.cjs"),module.exports=e.plugin;//# sourceMappingURL=index.cjs.map
1
+ "use strict";require("./chunk-H44HDUOM.cjs");var e=require("./chunk-2J3HCLLR.cjs");require("./chunk-SZJPBNRD.cjs"),require("./chunk-UGB7RV45.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-PK6SKIKE.cjs"),module.exports=e.plugin;//# sourceMappingURL=index.cjs.map
package/dist/cjs/nuxt.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";require("./chunk-H44HDUOM.cjs");var e=require("./chunk-5XEO4AJH.cjs");require("./chunk-TRULVDNJ.cjs"),require("./chunk-Z4BCISP5.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-PK6SKIKE.cjs"),require("@nuxt/schema");var u=require("@nuxt/kit"),r=u.defineNuxtModule({meta:{name:"nuxt-build-clean",configKey:"buildVersion"},setup(r){u.addWebpackPlugin(e.plugin.webpack(r)),u.addVitePlugin(e.plugin.vite(r))}});module.exports=r;//# sourceMappingURL=nuxt.cjs.map
1
+ "use strict";require("./chunk-H44HDUOM.cjs");var e=require("./chunk-2J3HCLLR.cjs");require("./chunk-SZJPBNRD.cjs"),require("./chunk-UGB7RV45.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-PK6SKIKE.cjs"),require("@nuxt/schema");var u=require("@nuxt/kit"),r=u.defineNuxtModule({meta:{name:"nuxt-build-clean",configKey:"buildVersion"},setup(r){u.addWebpackPlugin(e.plugin.webpack(r)),u.addVitePlugin(e.plugin.vite(r))}});module.exports=r;//# sourceMappingURL=nuxt.cjs.map
@@ -1 +1 @@
1
- "use strict";var r=require("./chunk-5XEO4AJH.cjs");require("./chunk-TRULVDNJ.cjs"),require("./chunk-Z4BCISP5.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-PK6SKIKE.cjs");var u=r.plugin.rollup;module.exports=u;//# sourceMappingURL=rollup.cjs.map
1
+ "use strict";var r=require("./chunk-2J3HCLLR.cjs");require("./chunk-SZJPBNRD.cjs"),require("./chunk-UGB7RV45.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-PK6SKIKE.cjs");var u=r.plugin.rollup;module.exports=u;//# sourceMappingURL=rollup.cjs.map
package/dist/cjs/vite.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("./chunk-5XEO4AJH.cjs");require("./chunk-TRULVDNJ.cjs"),require("./chunk-Z4BCISP5.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-PK6SKIKE.cjs");var r=e.plugin.vite;module.exports=r;//# sourceMappingURL=vite.cjs.map
1
+ "use strict";var e=require("./chunk-2J3HCLLR.cjs");require("./chunk-SZJPBNRD.cjs"),require("./chunk-UGB7RV45.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-PK6SKIKE.cjs");var r=e.plugin.vite;module.exports=r;//# sourceMappingURL=vite.cjs.map
package/dist/esm/astro.js CHANGED
@@ -1 +1 @@
1
- import{plugin as o}from"./chunk-GGQ2IM6X.js";import"./chunk-ZJZOBFU7.js";import"./chunk-RB6ZS752.js";import"./chunk-NTAOZL73.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import{__name as i}from"./chunk-7QVYU63E.js";var s=i(s=>({name:"build-clean",hooks:{"astro:config:setup":i(async i=>{i.config.vite.plugins||=[],i.config.vite.plugins.push(o.vite(s))},"astro:config:setup")}}),"default");export{s as default};//# sourceMappingURL=astro.js.map
1
+ import{plugin as o}from"./chunk-G325LPQA.js";import"./chunk-4WDU3YKC.js";import"./chunk-73FTK3J5.js";import"./chunk-NTAOZL73.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import{__name as i}from"./chunk-7QVYU63E.js";var s=i(s=>({name:"build-clean",hooks:{"astro:config:setup":i(async i=>{i.config.vite.plugins||=[],i.config.vite.plugins.push(o.vite(s))},"astro:config:setup")}}),"default");export{s as default};//# sourceMappingURL=astro.js.map
@@ -0,0 +1 @@
1
+ var e={debug:!1,verbose:!1,destructive:!1};export{e as defaults};//# sourceMappingURL=chunk-4WDU3YKC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/defaults.ts"],"names":[],"mappings":";AAEO,IAAM,QAAA,GAAW;AAAA,EACtB,KAAA,EAAO,KAAA;AAAA,EACP,OAAA,EAAS,KAAA;AAAA,EACT,GAAA,EAAK;AACP","file":"chunk-ZJZOBFU7.js","sourcesContent":["import type { Options } from './types';\n\nexport const defaults = {\n debug: false,\n verbose: false,\n dry: false,\n} satisfies Options;\n"]}
1
+ {"version":3,"sources":["../../src/core/defaults.ts"],"names":[],"mappings":";AAEO,IAAM,QAAA,GAAW;AAAA,EACtB,KAAA,EAAO,KAAA;AAAA,EACP,OAAA,EAAS,KAAA;AAAA,EACT,WAAA,EAAa;AACf","file":"chunk-4WDU3YKC.js","sourcesContent":["import type { Options } from './types';\n\nexport const defaults = {\n debug: false,\n verbose: false,\n destructive: false,\n} satisfies Options;\n"]}
@@ -0,0 +1 @@
1
+ import{getAllFiles as e}from"./chunk-NTAOZL73.js";import{validateOutDir as t}from"./chunk-PVPUCTHV.js";import{__name as o}from"./chunk-7QVYU63E.js";import{unlink as i}from"node:fs/promises";import{relative as r}from"node:path";async function s(o,s,n,l){t(o,l);try{l.debug(`Starting cleanup of directory: "${o}"`),l.debug(`Built files count: ${s.size}`);const t=await e(o,l);if(l.debug(`Existing files count: ${t.length}`),0===t.length&&s.size>0)return void l.error('Disable tsup "clean: true" to use this plugin.');l.info(`Processing ${t.length} existing files vs ${s.size} built files`);const u=[];for(const e of t){const t=r(process.cwd(),e);l.verbose(`Checking file: "${t}"`),s.has(t)?l.verbose(`Keeping built file: "${t}"`):(u.push(e),l.verbose(`Marked for deletion: "${t}"`))}if(u.length>0){const e=n.destructive?"":" (dry run)";l.warn(`Files marked for deletion: ${u.length}${e}`)}else l.info("No files marked for deletion");let c=0;for(const e of u){const t=r(process.cwd(),e);n.destructive&&await i(e),l.info(`Deleting: "${t}"`),c++}0===c?l.info("No unused files found"):n.destructive||l.info(`Set destructive: true to actually delete the ${c} unused file(s)`)}catch(e){throw l.error("Error during cleanup:",e),e}}o(s,"cleanUnusedFiles");export{s as cleanUnusedFiles};//# sourceMappingURL=chunk-73FTK3J5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/core/cleanUnusedFiles.ts"],"names":[],"mappings":"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","file":"chunk-73FTK3J5.js","sourcesContent":["import { unlink } from 'node:fs/promises';\nimport { relative } from 'node:path';\nimport { getAllFiles } from './getAllFiles';\nimport type { ILogger, Options } from './types';\nimport { validateOutDir } from './validateOutDir';\n\nexport async function cleanUnusedFiles(outDir: string, builtFiles: Set<string>, options: Options, logger: ILogger): Promise<void> {\n validateOutDir(outDir, logger);\n\n try {\n logger.debug(`Starting cleanup of directory: \"${outDir}\"`);\n logger.debug(`Built files count: ${builtFiles.size}`);\n\n const existingFiles = await getAllFiles(outDir, logger);\n logger.debug(`Existing files count: ${existingFiles.length}`);\n\n if (existingFiles.length === 0 && builtFiles.size > 0) {\n logger.error('Disable tsup \"clean: true\" to use this plugin.');\n return;\n }\n\n logger.info(`Processing ${existingFiles.length} existing files vs ${builtFiles.size} built files`);\n\n const filesToDelete: string[] = [];\n\n for (const file of existingFiles) {\n const relativePath = relative(process.cwd(), file);\n logger.verbose(`Checking file: \"${relativePath}\"`);\n\n if (!builtFiles.has(relativePath)) {\n filesToDelete.push(file);\n logger.verbose(`Marked for deletion: \"${relativePath}\"`);\n } else {\n logger.verbose(`Keeping built file: \"${relativePath}\"`);\n }\n }\n\n if (filesToDelete.length > 0) {\n const dryRunSuffix = options.destructive ? '' : ' (dry run)';\n logger.warn(`Files marked for deletion: ${filesToDelete.length}${dryRunSuffix}`);\n } else {\n logger.info('No files marked for deletion');\n }\n\n let deletedCount = 0;\n for (const file of filesToDelete) {\n const relativePath = relative(process.cwd(), file);\n\n if (options.destructive) {\n await unlink(file);\n }\n\n logger.info(`Deleting: \"${relativePath}\"`);\n deletedCount++;\n }\n\n if (deletedCount === 0) {\n logger.info('No unused files found');\n } else if (!options.destructive) {\n logger.info(`Set destructive: true to actually delete the ${deletedCount} unused file(s)`);\n }\n } catch (error) {\n logger.error('Error during cleanup:', error);\n throw error;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ import{defaults as e}from"./chunk-4WDU3YKC.js";import{cleanUnusedFiles as i}from"./chunk-73FTK3J5.js";import{createLogger as t}from"./chunk-M6I5B37D.js";import{__name as o}from"./chunk-7QVYU63E.js";import{createUnplugin as r}from"unplugin";var n=r(o((o={})=>{const r={...e,...o},n=t(r);return{name:"@shellicar/build-clean",enforce:"post",esbuild:{setup(e){e.initialOptions.metafile=!0,e.onEnd(async t=>{n.debug("Build completed, starting cleanup process");const o=e.initialOptions.outdir;if(!o)throw new Error("[build-cleaner] No output directory specified in build options");if(!t.metafile)throw new Error("[build-cleaner] No metafile available - ensure metafile is enabled");const l=new Set(Object.keys(t.metafile.outputs));n.debug(`Found ${l.size} built files in metafile for directory: "${o}"`),await i(o,l,r,n)})}}}},"pluginFactory"));export{n as plugin};//# sourceMappingURL=chunk-G325LPQA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/core/index.ts"],"names":[],"mappings":"4NAMA,IAAM,aAAA,mBAAsD,MAAA,CAAA,CAAC,cAAA,GAA0B,EAAC,KAAM;AAC5F,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,GAAG,QAAA;AAAA,IACH,GAAG;AAAA,GACL;AAEA,EAAA,MAAM,MAAA,GAAS,aAAa,OAAO,CAAA;AAEnC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,wBAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IACT,OAAA,EAAS;AAAA,MACP,MAAM,KAAA,EAAO;AACX,QAAA,KAAA,CAAM,eAAe,QAAA,GAAW,IAAA;AAEhC,QAAA,KAAA,CAAM,KAAA,CAAM,OAAO,MAAA,KAAW;AAC5B,UAAA,MAAA,CAAO,MAAM,2CAA2C,CAAA;AAExD,UAAA,MAAM,MAAA,GAAS,MAAM,cAAA,CAAe,MAAA;AACpC,UAAA,IAAI,CAAC,MAAA,EAAQ;AACX,YAAA,MAAM,IAAI,MAAM,gEAAgE,CAAA;AAAA,UAClF;AAEA,UAAA,IAAI,CAAC,OAAO,QAAA,EAAU;AACpB,YAAA,MAAM,IAAI,MAAM,oEAAoE,CAAA;AAAA,UACtF;AAEA,UAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAI,MAAA,CAAO,KAAK,MAAA,CAAO,QAAA,CAAS,OAAO,CAAC,CAAA;AAC/D,UAAA,MAAA,CAAO,MAAM,CAAA,MAAA,EAAS,UAAA,CAAW,IAAI,CAAA,yCAAA,EAA4C,MAAM,CAAA,CAAA,CAAG,CAAA;AAE1F,UAAA,MAAM,gBAAA,CAAiB,MAAA,EAAQ,UAAA,EAAY,OAAA,EAAS,MAAM,CAAA;AAAA,QAC5D,CAAC,CAAA;AAAA,MACH;AAAA;AACF,GACF;AACF,CAAA,EAnC4D,eAAA,CAAA;AAqCrD,IAAM,MAAA,GAAS,eAAe,aAAa","file":"chunk-G325LPQA.js","sourcesContent":["import { type UnpluginFactory, type UnpluginOptions, createUnplugin } from 'unplugin';\nimport { cleanUnusedFiles } from './cleanUnusedFiles';\nimport { createLogger } from './createLogger';\nimport { defaults } from './defaults';\nimport type { Options } from './types';\n\nconst pluginFactory: UnpluginFactory<Options | undefined> = (initialOptions: Options = {}) => {\n const options = {\n ...defaults,\n ...initialOptions,\n };\n\n const logger = createLogger(options);\n\n return {\n name: '@shellicar/build-clean',\n enforce: 'post',\n esbuild: {\n setup(build) {\n build.initialOptions.metafile = true;\n\n build.onEnd(async (result) => {\n logger.debug('Build completed, starting cleanup process');\n\n const outdir = build.initialOptions.outdir;\n if (!outdir) {\n throw new Error('[build-cleaner] No output directory specified in build options');\n }\n\n if (!result.metafile) {\n throw new Error('[build-cleaner] No metafile available - ensure metafile is enabled');\n }\n\n const builtFiles = new Set(Object.keys(result.metafile.outputs));\n logger.debug(`Found ${builtFiles.size} built files in metafile for directory: \"${outdir}\"`);\n\n await cleanUnusedFiles(outdir, builtFiles, options, logger);\n });\n },\n },\n } satisfies UnpluginOptions;\n};\n\nexport const plugin = createUnplugin(pluginFactory);\n"]}
@@ -1 +1 @@
1
- export{cleanUnusedFiles}from"../chunk-RB6ZS752.js";import"../chunk-NTAOZL73.js";import"../chunk-PVPUCTHV.js";import"../chunk-7QVYU63E.js";//# sourceMappingURL=cleanUnusedFiles.js.map
1
+ export{cleanUnusedFiles}from"../chunk-73FTK3J5.js";import"../chunk-NTAOZL73.js";import"../chunk-PVPUCTHV.js";import"../chunk-7QVYU63E.js";//# sourceMappingURL=cleanUnusedFiles.js.map
@@ -1,7 +1,7 @@
1
1
  declare const defaults: {
2
2
  debug: false;
3
3
  verbose: false;
4
- dry: false;
4
+ destructive: false;
5
5
  };
6
6
 
7
7
  export { defaults };
@@ -1 +1 @@
1
- export{defaults}from"../chunk-ZJZOBFU7.js";import"../chunk-7QVYU63E.js";//# sourceMappingURL=defaults.js.map
1
+ export{defaults}from"../chunk-4WDU3YKC.js";import"../chunk-7QVYU63E.js";//# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- export{plugin}from"../chunk-GGQ2IM6X.js";import"../chunk-ZJZOBFU7.js";import"../chunk-RB6ZS752.js";import"../chunk-NTAOZL73.js";import"../chunk-PVPUCTHV.js";import"../chunk-M6I5B37D.js";import"../chunk-7QVYU63E.js";//# sourceMappingURL=index.js.map
1
+ export{plugin}from"../chunk-G325LPQA.js";import"../chunk-4WDU3YKC.js";import"../chunk-73FTK3J5.js";import"../chunk-NTAOZL73.js";import"../chunk-PVPUCTHV.js";import"../chunk-M6I5B37D.js";import"../chunk-7QVYU63E.js";//# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  interface Options {
2
2
  debug?: boolean;
3
3
  verbose?: boolean;
4
- dry?: boolean;
4
+ destructive?: boolean;
5
5
  }
6
6
  type ILogger = {
7
7
  debug: (typeof console)['debug'];
@@ -1 +1 @@
1
- import{plugin as r}from"./chunk-GGQ2IM6X.js";import"./chunk-ZJZOBFU7.js";import"./chunk-RB6ZS752.js";import"./chunk-NTAOZL73.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-7QVYU63E.js";var o=r.esbuild;export{o as default};//# sourceMappingURL=esbuild.js.map
1
+ import{plugin as r}from"./chunk-G325LPQA.js";import"./chunk-4WDU3YKC.js";import"./chunk-73FTK3J5.js";import"./chunk-NTAOZL73.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-7QVYU63E.js";var o=r.esbuild;export{o as default};//# sourceMappingURL=esbuild.js.map
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- import"./chunk-QZKD24XZ.js";export{plugin as default}from"./chunk-GGQ2IM6X.js";import"./chunk-ZJZOBFU7.js";import"./chunk-RB6ZS752.js";import"./chunk-NTAOZL73.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-7QVYU63E.js";//# sourceMappingURL=index.js.map
1
+ import"./chunk-QZKD24XZ.js";export{plugin as default}from"./chunk-G325LPQA.js";import"./chunk-4WDU3YKC.js";import"./chunk-73FTK3J5.js";import"./chunk-NTAOZL73.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-7QVYU63E.js";//# sourceMappingURL=index.js.map
package/dist/esm/nuxt.js CHANGED
@@ -1 +1 @@
1
- import"./chunk-QZKD24XZ.js";import{plugin as t}from"./chunk-GGQ2IM6X.js";import"./chunk-ZJZOBFU7.js";import"./chunk-RB6ZS752.js";import"./chunk-NTAOZL73.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-7QVYU63E.js";import"@nuxt/schema";import{defineNuxtModule as i,addWebpackPlugin as m,addVitePlugin as n}from"@nuxt/kit";var o=i({meta:{name:"nuxt-build-clean",configKey:"buildVersion"},setup(i){m(t.webpack(i)),n(t.vite(i))}});export{o as default};//# sourceMappingURL=nuxt.js.map
1
+ import"./chunk-QZKD24XZ.js";import{plugin as t}from"./chunk-G325LPQA.js";import"./chunk-4WDU3YKC.js";import"./chunk-73FTK3J5.js";import"./chunk-NTAOZL73.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-7QVYU63E.js";import"@nuxt/schema";import{defineNuxtModule as i,addWebpackPlugin as m,addVitePlugin as n}from"@nuxt/kit";var o=i({meta:{name:"nuxt-build-clean",configKey:"buildVersion"},setup(i){m(t.webpack(i)),n(t.vite(i))}});export{o as default};//# sourceMappingURL=nuxt.js.map
@@ -1 +1 @@
1
- import{plugin as r}from"./chunk-GGQ2IM6X.js";import"./chunk-ZJZOBFU7.js";import"./chunk-RB6ZS752.js";import"./chunk-NTAOZL73.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-7QVYU63E.js";var o=r.rollup;export{o as default};//# sourceMappingURL=rollup.js.map
1
+ import{plugin as r}from"./chunk-G325LPQA.js";import"./chunk-4WDU3YKC.js";import"./chunk-73FTK3J5.js";import"./chunk-NTAOZL73.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-7QVYU63E.js";var o=r.rollup;export{o as default};//# sourceMappingURL=rollup.js.map
package/dist/esm/vite.js CHANGED
@@ -1 +1 @@
1
- import{plugin as r}from"./chunk-GGQ2IM6X.js";import"./chunk-ZJZOBFU7.js";import"./chunk-RB6ZS752.js";import"./chunk-NTAOZL73.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-7QVYU63E.js";var t=r.vite;export{t as default};//# sourceMappingURL=vite.js.map
1
+ import{plugin as r}from"./chunk-G325LPQA.js";import"./chunk-4WDU3YKC.js";import"./chunk-73FTK3J5.js";import"./chunk-NTAOZL73.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-7QVYU63E.js";var t=r.vite;export{t as default};//# sourceMappingURL=vite.js.map
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@shellicar/build-clean",
3
3
  "private": false,
4
- "version": "1.0.0-preview.1",
4
+ "version": "1.0.0-preview.3",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "author": "Stephen Hellicar",
8
- "description": "",
8
+ "description": "Basic clean plugin to keep out dir small.",
9
9
  "keywords": [
10
10
  "esbuild",
11
11
  "build",
@@ -26,18 +26,18 @@
26
26
  "exports": {
27
27
  ".": {
28
28
  "require": {
29
- "types": "./dist/esm/cjs/index.d.ts",
30
- "default": "./dist/esm/cjs/index.js"
29
+ "types": "./dist/cjs/index.d.cts",
30
+ "default": "./dist/cjs/index.cjs"
31
31
  },
32
32
  "import": {
33
- "types": "./dist/esm/esm/index.d.ts",
34
- "default": "./dist/esm/esm/index.js"
33
+ "types": "./dist/esm/index.d.ts",
34
+ "default": "./dist/esm/index.js"
35
35
  }
36
36
  },
37
37
  "./astro": {
38
38
  "require": {
39
- "types": "./dist/esm/cjs/astro.d.ts",
40
- "default": "./dist/esm/cjs/astro.js"
39
+ "types": "./dist/cjs/astro.d.cts",
40
+ "default": "./dist/cjs/astro.cjs"
41
41
  },
42
42
  "import": {
43
43
  "types": "./dist/esm/astro.d.ts",
@@ -46,8 +46,8 @@
46
46
  },
47
47
  "./rspack": {
48
48
  "require": {
49
- "types": "./dist/esm/cjs/rspack.d.ts",
50
- "default": "./dist/esm/cjs/rspack.js"
49
+ "types": "./dist/cjs/rspack.d.cts",
50
+ "default": "./dist/cjs/rspack.cjs"
51
51
  },
52
52
  "import": {
53
53
  "types": "./dist/esm/rspack.d.ts",
@@ -56,8 +56,8 @@
56
56
  },
57
57
  "./vite": {
58
58
  "require": {
59
- "types": "./dist/esm/cjs/vite.d.ts",
60
- "default": "./dist/esm/cjs/vite.js"
59
+ "types": "./dist/cjs/vite.d.cts",
60
+ "default": "./dist/cjs/vite.cjs"
61
61
  },
62
62
  "import": {
63
63
  "types": "./dist/esm/vite.d.ts",
@@ -66,8 +66,8 @@
66
66
  },
67
67
  "./webpack": {
68
68
  "require": {
69
- "types": "./dist/esm/cjs/webpack.d.ts",
70
- "default": "./dist/esm/cjs/webpack.js"
69
+ "types": "./dist/cjs/webpack.d.cts",
70
+ "default": "./dist/cjs/webpack.cjs"
71
71
  },
72
72
  "import": {
73
73
  "types": "./dist/esm/webpack.d.ts",
@@ -76,8 +76,8 @@
76
76
  },
77
77
  "./rollup": {
78
78
  "require": {
79
- "types": "./dist/esm/cjs/rollup.d.ts",
80
- "default": "./dist/esm/cjs/rollup.js"
79
+ "types": "./dist/cjs/rollup.d.cts",
80
+ "default": "./dist/cjs/rollup.cjs"
81
81
  },
82
82
  "import": {
83
83
  "types": "./dist/esm/rollup.d.ts",
@@ -86,8 +86,8 @@
86
86
  },
87
87
  "./esbuild": {
88
88
  "require": {
89
- "types": "./dist/esm/cjs/esbuild.d.ts",
90
- "default": "./dist/esm/cjs/esbuild.js"
89
+ "types": "./dist/cjs/esbuild.d.cts",
90
+ "default": "./dist/cjs/esbuild.cjs"
91
91
  },
92
92
  "import": {
93
93
  "types": "./dist/esm/esbuild.d.ts",
@@ -96,8 +96,8 @@
96
96
  },
97
97
  "./nuxt": {
98
98
  "require": {
99
- "types": "./dist/esm/cjs/nuxt.d.ts",
100
- "default": "./dist/esm/cjs/nuxt.js"
99
+ "types": "./dist/cjs/nuxt.d.cts",
100
+ "default": "./dist/cjs/nuxt.cjs"
101
101
  },
102
102
  "import": {
103
103
  "types": "./dist/esm/nuxt.d.ts",
@@ -106,8 +106,8 @@
106
106
  },
107
107
  "./farm": {
108
108
  "require": {
109
- "types": "./dist/esm/cjs/farm.d.ts",
110
- "default": "./dist/esm/cjs/farm.js"
109
+ "types": "./dist/cjs/farm.d.cts",
110
+ "default": "./dist/cjs/farm.cjs"
111
111
  },
112
112
  "import": {
113
113
  "types": "./dist/esm/farm.d.ts",
@@ -116,8 +116,8 @@
116
116
  },
117
117
  "./types": {
118
118
  "require": {
119
- "types": "./dist/esm/cjs/core/types.d.ts",
120
- "default": "./dist/esm/cjs/core/types.js"
119
+ "types": "./dist/cjs/core/types.d.cts",
120
+ "default": "./dist/cjs/core/types.cjs"
121
121
  },
122
122
  "import": {
123
123
  "types": "./dist/esm/core/types.d.ts",
@@ -126,8 +126,8 @@
126
126
  },
127
127
  "./typedefs": {
128
128
  "require": {
129
- "types": "./dist/esm/cjs/core/typedefs.d.ts",
130
- "default": "./dist/esm/cjs/core/typedefs.js"
129
+ "types": "./dist/cjs/core/typedefs.d.cts",
130
+ "default": "./dist/cjs/core/typedefs.cjs"
131
131
  },
132
132
  "import": {
133
133
  "types": "./dist/esm/core/typedefs.d.ts",
@@ -136,8 +136,8 @@
136
136
  },
137
137
  "./*": {
138
138
  "require": {
139
- "types": "./dist/esm/cjs/*.d.ts",
140
- "default": "./dist/esm/cjs/*.js"
139
+ "types": "./dist/cjs/*.d.cts",
140
+ "default": "./dist/cjs/*.cjs"
141
141
  },
142
142
  "import": {
143
143
  "types": "./dist/esm/*.d.ts",
@@ -145,7 +145,7 @@
145
145
  }
146
146
  }
147
147
  },
148
- "main": "dist/cjs/index.js",
148
+ "main": "dist/cjs/index.cjs",
149
149
  "module": "dist/esm/index.js",
150
150
  "types": "dist/esm/index.d.ts",
151
151
  "typesVersions": {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/index.ts"],"names":["__name","defaults","createLogger","cleanUnusedFiles","createUnplugin"],"mappings":"sPAMA,IAAM,aAAA,mBAAsDA,wBAAA,CAAA,CAAC,cAAA,GAA0B,EAAC,KAAM;AAC5F,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,GAAGC,0BAAA;AAAA,IACH,GAAG;AAAA,GACL;AAEA,EAAA,MAAM,MAAA,GAASC,+BAAa,OAAO,CAAA;AAEnC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,wBAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IAET,OAAA,EAAS;AAAA,MACP,MAAM,KAAA,EAAO;AACX,QAAA,KAAA,CAAM,eAAe,QAAA,GAAW,IAAA;AAEhC,QAAA,KAAA,CAAM,KAAA,CAAM,OAAO,MAAA,KAAW;AAC5B,UAAA,MAAA,CAAO,MAAM,2CAA2C,CAAA;AAExD,UAAA,MAAM,MAAA,GAAS,MAAM,cAAA,CAAe,MAAA;AACpC,UAAA,IAAI,CAAC,MAAA,EAAQ;AACX,YAAA,MAAM,IAAI,MAAM,gEAAgE,CAAA;AAAA,UAClF;AAEA,UAAA,IAAI,CAAC,OAAO,QAAA,EAAU;AACpB,YAAA,MAAM,IAAI,MAAM,oEAAoE,CAAA;AAAA,UACtF;AAEA,UAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAI,MAAA,CAAO,KAAK,MAAA,CAAO,QAAA,CAAS,OAAO,CAAC,CAAA;AAC/D,UAAA,MAAA,CAAO,MAAM,CAAA,MAAA,EAAS,UAAA,CAAW,IAAI,CAAA,yCAAA,EAA4C,MAAM,CAAA,CAAA,CAAG,CAAA;AAE1F,UAAA,MAAMC,kCAAA,CAAiB,MAAA,EAAQ,UAAA,EAAY,OAAA,EAAS,MAAM,CAAA;AAAA,QAC5D,CAAC,CAAA;AAAA,MACH;AAAA;AACF,GACF;AACF,CAAA,EApC4D,eAAA,CAAA;AAsCrD,IAAM,MAAA,GAASC,wBAAe,aAAa","file":"chunk-5XEO4AJH.cjs","sourcesContent":["import { type UnpluginFactory, createUnplugin } from 'unplugin';\nimport { cleanUnusedFiles } from './cleanUnusedFiles';\nimport { createLogger } from './createLogger';\nimport { defaults } from './defaults';\nimport type { Options } from './types';\n\nconst pluginFactory: UnpluginFactory<Options | undefined> = (initialOptions: Options = {}) => {\n const options = {\n ...defaults,\n ...initialOptions,\n };\n\n const logger = createLogger(options);\n\n return {\n name: 'unplugin-build-cleaner',\n enforce: 'post',\n\n esbuild: {\n setup(build) {\n build.initialOptions.metafile = true;\n\n build.onEnd(async (result) => {\n logger.debug('Build completed, starting cleanup process');\n\n const outdir = build.initialOptions.outdir;\n if (!outdir) {\n throw new Error('[build-cleaner] No output directory specified in build options');\n }\n\n if (!result.metafile) {\n throw new Error('[build-cleaner] No metafile available - ensure metafile is enabled');\n }\n\n const builtFiles = new Set(Object.keys(result.metafile.outputs));\n logger.debug(`Found ${builtFiles.size} built files in metafile for directory: \"${outdir}\"`);\n\n await cleanUnusedFiles(outdir, builtFiles, options, logger);\n });\n },\n },\n };\n};\n\nexport const plugin = createUnplugin(pluginFactory);\n"]}
@@ -1 +0,0 @@
1
- "use strict";exports.defaults={debug:!1,verbose:!1,dry:!1};//# sourceMappingURL=chunk-TRULVDNJ.cjs.map
@@ -1 +0,0 @@
1
- "use strict";var e=require("./chunk-CKDUYIXO.cjs"),i=require("./chunk-JV6XTZ6N.cjs"),r=require("./chunk-PK6SKIKE.cjs"),n=require("node:fs/promises"),s=require("node:path");async function t(r,t,o,l){i.validateOutDir(r,l);try{l.debug(`Starting cleanup of directory: "${r}"`),l.debug(`Built files count: ${t.size}`);const i=await e.getAllFiles(r,l);if(l.debug(`Existing files count: ${i.length}`),0===i.length&&t.size>0)return void l.error('Disable tsup "clean: true" to use this plugin.');l.info(`Processing ${i.length} existing files vs ${t.size} built files`);const u=[];for(const e of i){const i=s.relative(process.cwd(),e);l.verbose(`Checking file: "${i}"`),t.has(i)?l.verbose(`Keeping built file: "${i}"`):(u.push(e),l.verbose(`Marked for deletion: "${i}"`))}if(u.length>0){const e=o.dry?" (dry run)":"";l.warn(`Files marked for deletion: ${u.length}${e}`)}else l.info("No files marked for deletion");let c=0;for(const e of u){const i=s.relative(process.cwd(),e);o.dry||await n.unlink(e),l.info(`Deleting: "${i}"`),c++}0===c&&l.info("No unused files found")}catch(e){throw l.error("Error during cleanup:",e),e}}r.__name(t,"cleanUnusedFiles"),exports.cleanUnusedFiles=t;//# sourceMappingURL=chunk-Z4BCISP5.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/cleanUnusedFiles.ts"],"names":["validateOutDir","getAllFiles","relative","unlink","__name"],"mappings":"2OAMA,eAAsB,gBAAA,CAAiB,MAAA,EAAgB,UAAA,EAAyB,OAAA,EAAkB,MAAA,EAAgC;AAChI,EAAAA,gCAAA,CAAe,QAAQ,MAAM,CAAA;AAE7B,EAAA,IAAI;AACF,IAAA,MAAA,CAAO,KAAA,CAAM,CAAA,gCAAA,EAAmC,MAAM,CAAA,CAAA,CAAG,CAAA;AACzD,IAAA,MAAA,CAAO,KAAA,CAAM,CAAA,mBAAA,EAAsB,UAAA,CAAW,IAAI,CAAA,CAAE,CAAA;AAEpD,IAAA,MAAM,aAAA,GAAgB,MAAMC,6BAAA,CAAY,MAAA,EAAQ,MAAM,CAAA;AACtD,IAAA,MAAA,CAAO,KAAA,CAAM,CAAA,sBAAA,EAAyB,aAAA,CAAc,MAAM,CAAA,CAAE,CAAA;AAE5D,IAAA,IAAI,aAAA,CAAc,MAAA,KAAW,CAAA,IAAK,UAAA,CAAW,OAAO,CAAA,EAAG;AACrD,MAAA,MAAA,CAAO,MAAM,gDAAgD,CAAA;AAC7D,MAAA;AAAA,IACF;AAEA,IAAA,MAAA,CAAO,KAAK,CAAA,WAAA,EAAc,aAAA,CAAc,MAAM,CAAA,mBAAA,EAAsB,UAAA,CAAW,IAAI,CAAA,YAAA,CAAc,CAAA;AAEjG,IAAA,MAAM,gBAA0B,EAAC;AAEjC,IAAA,KAAA,MAAW,QAAQ,aAAA,EAAe;AAChC,MAAA,MAAM,YAAA,GAAeC,kBAAA,CAAS,OAAA,CAAQ,GAAA,IAAO,IAAI,CAAA;AACjD,MAAA,MAAA,CAAO,OAAA,CAAQ,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAA,CAAG,CAAA;AAEjD,MAAA,IAAI,CAAC,UAAA,CAAW,GAAA,CAAI,YAAY,CAAA,EAAG;AACjC,QAAA,aAAA,CAAc,KAAK,IAAI,CAAA;AACvB,QAAA,MAAA,CAAO,OAAA,CAAQ,CAAA,sBAAA,EAAyB,YAAY,CAAA,CAAA,CAAG,CAAA;AAAA,MACzD,CAAA,MAAO;AACL,QAAA,MAAA,CAAO,OAAA,CAAQ,CAAA,qBAAA,EAAwB,YAAY,CAAA,CAAA,CAAG,CAAA;AAAA,MACxD;AAAA,IACF;AAEA,IAAA,IAAI,aAAA,CAAc,SAAS,CAAA,EAAG;AAC5B,MAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,GAAA,GAAM,YAAA,GAAe,EAAA;AAClD,MAAA,MAAA,CAAO,KAAK,CAAA,2BAAA,EAA8B,aAAA,CAAc,MAAM,CAAA,EAAG,YAAY,CAAA,CAAE,CAAA;AAAA,IACjF,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,KAAK,8BAA8B,CAAA;AAAA,IAC5C;AAEA,IAAA,IAAI,YAAA,GAAe,CAAA;AACnB,IAAA,KAAA,MAAW,QAAQ,aAAA,EAAe;AAChC,MAAA,MAAM,YAAA,GAAeA,kBAAA,CAAS,OAAA,CAAQ,GAAA,IAAO,IAAI,CAAA;AAEjD,MAAA,IAAI,CAAC,QAAQ,GAAA,EAAK;AAChB,QAAA,MAAMC,gBAAO,IAAI,CAAA;AAAA,MACnB;AAEA,MAAA,MAAA,CAAO,IAAA,CAAK,CAAA,WAAA,EAAc,YAAY,CAAA,CAAA,CAAG,CAAA;AACzC,MAAA,YAAA,EAAA;AAAA,IACF;AAEA,IAAA,IAAI,iBAAiB,CAAA,EAAG;AACtB,MAAA,MAAA,CAAO,KAAK,uBAAuB,CAAA;AAAA,IACrC;AAAA,EACF,SAAS,KAAA,EAAO;AACd,IAAA,MAAA,CAAO,KAAA,CAAM,yBAAyB,KAAK,CAAA;AAC3C,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAzDsBC,wBAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA","file":"chunk-Z4BCISP5.cjs","sourcesContent":["import { unlink } from 'node:fs/promises';\nimport { relative } from 'node:path';\nimport { getAllFiles } from './getAllFiles';\nimport type { ILogger, Options } from './types';\nimport { validateOutDir } from './validateOutDir';\n\nexport async function cleanUnusedFiles(outDir: string, builtFiles: Set<string>, options: Options, logger: ILogger): Promise<void> {\n validateOutDir(outDir, logger);\n\n try {\n logger.debug(`Starting cleanup of directory: \"${outDir}\"`);\n logger.debug(`Built files count: ${builtFiles.size}`);\n\n const existingFiles = await getAllFiles(outDir, logger);\n logger.debug(`Existing files count: ${existingFiles.length}`);\n\n if (existingFiles.length === 0 && builtFiles.size > 0) {\n logger.error('Disable tsup \"clean: true\" to use this plugin.');\n return;\n }\n\n logger.info(`Processing ${existingFiles.length} existing files vs ${builtFiles.size} built files`);\n\n const filesToDelete: string[] = [];\n\n for (const file of existingFiles) {\n const relativePath = relative(process.cwd(), file);\n logger.verbose(`Checking file: \"${relativePath}\"`);\n\n if (!builtFiles.has(relativePath)) {\n filesToDelete.push(file);\n logger.verbose(`Marked for deletion: \"${relativePath}\"`);\n } else {\n logger.verbose(`Keeping built file: \"${relativePath}\"`);\n }\n }\n\n if (filesToDelete.length > 0) {\n const dryRunSuffix = options.dry ? ' (dry run)' : '';\n logger.warn(`Files marked for deletion: ${filesToDelete.length}${dryRunSuffix}`);\n } else {\n logger.info('No files marked for deletion');\n }\n\n let deletedCount = 0;\n for (const file of filesToDelete) {\n const relativePath = relative(process.cwd(), file);\n\n if (!options.dry) {\n await unlink(file);\n }\n\n logger.info(`Deleting: \"${relativePath}\"`);\n deletedCount++;\n }\n\n if (deletedCount === 0) {\n logger.info('No unused files found');\n }\n } catch (error) {\n logger.error('Error during cleanup:', error);\n throw error;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- import{defaults as e}from"./chunk-ZJZOBFU7.js";import{cleanUnusedFiles as i}from"./chunk-RB6ZS752.js";import{createLogger as t}from"./chunk-M6I5B37D.js";import{__name as o}from"./chunk-7QVYU63E.js";import{createUnplugin as n}from"unplugin";var r=n(o((o={})=>{const n={...e,...o},r=t(n);return{name:"unplugin-build-cleaner",enforce:"post",esbuild:{setup(e){e.initialOptions.metafile=!0,e.onEnd(async t=>{r.debug("Build completed, starting cleanup process");const o=e.initialOptions.outdir;if(!o)throw new Error("[build-cleaner] No output directory specified in build options");if(!t.metafile)throw new Error("[build-cleaner] No metafile available - ensure metafile is enabled");const u=new Set(Object.keys(t.metafile.outputs));r.debug(`Found ${u.size} built files in metafile for directory: "${o}"`),await i(o,u,n,r)})}}}},"pluginFactory"));export{r as plugin};//# sourceMappingURL=chunk-GGQ2IM6X.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/index.ts"],"names":[],"mappings":"4NAMA,IAAM,aAAA,mBAAsD,MAAA,CAAA,CAAC,cAAA,GAA0B,EAAC,KAAM;AAC5F,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,GAAG,QAAA;AAAA,IACH,GAAG;AAAA,GACL;AAEA,EAAA,MAAM,MAAA,GAAS,aAAa,OAAO,CAAA;AAEnC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,wBAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IAET,OAAA,EAAS;AAAA,MACP,MAAM,KAAA,EAAO;AACX,QAAA,KAAA,CAAM,eAAe,QAAA,GAAW,IAAA;AAEhC,QAAA,KAAA,CAAM,KAAA,CAAM,OAAO,MAAA,KAAW;AAC5B,UAAA,MAAA,CAAO,MAAM,2CAA2C,CAAA;AAExD,UAAA,MAAM,MAAA,GAAS,MAAM,cAAA,CAAe,MAAA;AACpC,UAAA,IAAI,CAAC,MAAA,EAAQ;AACX,YAAA,MAAM,IAAI,MAAM,gEAAgE,CAAA;AAAA,UAClF;AAEA,UAAA,IAAI,CAAC,OAAO,QAAA,EAAU;AACpB,YAAA,MAAM,IAAI,MAAM,oEAAoE,CAAA;AAAA,UACtF;AAEA,UAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAI,MAAA,CAAO,KAAK,MAAA,CAAO,QAAA,CAAS,OAAO,CAAC,CAAA;AAC/D,UAAA,MAAA,CAAO,MAAM,CAAA,MAAA,EAAS,UAAA,CAAW,IAAI,CAAA,yCAAA,EAA4C,MAAM,CAAA,CAAA,CAAG,CAAA;AAE1F,UAAA,MAAM,gBAAA,CAAiB,MAAA,EAAQ,UAAA,EAAY,OAAA,EAAS,MAAM,CAAA;AAAA,QAC5D,CAAC,CAAA;AAAA,MACH;AAAA;AACF,GACF;AACF,CAAA,EApC4D,eAAA,CAAA;AAsCrD,IAAM,MAAA,GAAS,eAAe,aAAa","file":"chunk-GGQ2IM6X.js","sourcesContent":["import { type UnpluginFactory, createUnplugin } from 'unplugin';\nimport { cleanUnusedFiles } from './cleanUnusedFiles';\nimport { createLogger } from './createLogger';\nimport { defaults } from './defaults';\nimport type { Options } from './types';\n\nconst pluginFactory: UnpluginFactory<Options | undefined> = (initialOptions: Options = {}) => {\n const options = {\n ...defaults,\n ...initialOptions,\n };\n\n const logger = createLogger(options);\n\n return {\n name: 'unplugin-build-cleaner',\n enforce: 'post',\n\n esbuild: {\n setup(build) {\n build.initialOptions.metafile = true;\n\n build.onEnd(async (result) => {\n logger.debug('Build completed, starting cleanup process');\n\n const outdir = build.initialOptions.outdir;\n if (!outdir) {\n throw new Error('[build-cleaner] No output directory specified in build options');\n }\n\n if (!result.metafile) {\n throw new Error('[build-cleaner] No metafile available - ensure metafile is enabled');\n }\n\n const builtFiles = new Set(Object.keys(result.metafile.outputs));\n logger.debug(`Found ${builtFiles.size} built files in metafile for directory: \"${outdir}\"`);\n\n await cleanUnusedFiles(outdir, builtFiles, options, logger);\n });\n },\n },\n };\n};\n\nexport const plugin = createUnplugin(pluginFactory);\n"]}
@@ -1 +0,0 @@
1
- import{getAllFiles as e}from"./chunk-NTAOZL73.js";import{validateOutDir as o}from"./chunk-PVPUCTHV.js";import{__name as i}from"./chunk-7QVYU63E.js";import{unlink as r}from"node:fs/promises";import{relative as n}from"node:path";async function s(i,s,t,f){o(i,f);try{f.debug(`Starting cleanup of directory: "${i}"`),f.debug(`Built files count: ${s.size}`);const o=await e(i,f);if(f.debug(`Existing files count: ${o.length}`),0===o.length&&s.size>0)return void f.error('Disable tsup "clean: true" to use this plugin.');f.info(`Processing ${o.length} existing files vs ${s.size} built files`);const l=[];for(const e of o){const o=n(process.cwd(),e);f.verbose(`Checking file: "${o}"`),s.has(o)?f.verbose(`Keeping built file: "${o}"`):(l.push(e),f.verbose(`Marked for deletion: "${o}"`))}if(l.length>0){const e=t.dry?" (dry run)":"";f.warn(`Files marked for deletion: ${l.length}${e}`)}else f.info("No files marked for deletion");let c=0;for(const e of l){const o=n(process.cwd(),e);t.dry||await r(e),f.info(`Deleting: "${o}"`),c++}0===c&&f.info("No unused files found")}catch(e){throw f.error("Error during cleanup:",e),e}}i(s,"cleanUnusedFiles");export{s as cleanUnusedFiles};//# sourceMappingURL=chunk-RB6ZS752.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/cleanUnusedFiles.ts"],"names":[],"mappings":"+MAMA,eAAsB,gBAAA,CAAiB,MAAA,EAAgB,UAAA,EAAyB,OAAA,EAAkB,MAAA,EAAgC;AAChI,EAAA,cAAA,CAAe,QAAQ,MAAM,CAAA;AAE7B,EAAA,IAAI;AACF,IAAA,MAAA,CAAO,KAAA,CAAM,CAAA,gCAAA,EAAmC,MAAM,CAAA,CAAA,CAAG,CAAA;AACzD,IAAA,MAAA,CAAO,KAAA,CAAM,CAAA,mBAAA,EAAsB,UAAA,CAAW,IAAI,CAAA,CAAE,CAAA;AAEpD,IAAA,MAAM,aAAA,GAAgB,MAAM,WAAA,CAAY,MAAA,EAAQ,MAAM,CAAA;AACtD,IAAA,MAAA,CAAO,KAAA,CAAM,CAAA,sBAAA,EAAyB,aAAA,CAAc,MAAM,CAAA,CAAE,CAAA;AAE5D,IAAA,IAAI,aAAA,CAAc,MAAA,KAAW,CAAA,IAAK,UAAA,CAAW,OAAO,CAAA,EAAG;AACrD,MAAA,MAAA,CAAO,MAAM,gDAAgD,CAAA;AAC7D,MAAA;AAAA,IACF;AAEA,IAAA,MAAA,CAAO,KAAK,CAAA,WAAA,EAAc,aAAA,CAAc,MAAM,CAAA,mBAAA,EAAsB,UAAA,CAAW,IAAI,CAAA,YAAA,CAAc,CAAA;AAEjG,IAAA,MAAM,gBAA0B,EAAC;AAEjC,IAAA,KAAA,MAAW,QAAQ,aAAA,EAAe;AAChC,MAAA,MAAM,YAAA,GAAe,QAAA,CAAS,OAAA,CAAQ,GAAA,IAAO,IAAI,CAAA;AACjD,MAAA,MAAA,CAAO,OAAA,CAAQ,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAA,CAAG,CAAA;AAEjD,MAAA,IAAI,CAAC,UAAA,CAAW,GAAA,CAAI,YAAY,CAAA,EAAG;AACjC,QAAA,aAAA,CAAc,KAAK,IAAI,CAAA;AACvB,QAAA,MAAA,CAAO,OAAA,CAAQ,CAAA,sBAAA,EAAyB,YAAY,CAAA,CAAA,CAAG,CAAA;AAAA,MACzD,CAAA,MAAO;AACL,QAAA,MAAA,CAAO,OAAA,CAAQ,CAAA,qBAAA,EAAwB,YAAY,CAAA,CAAA,CAAG,CAAA;AAAA,MACxD;AAAA,IACF;AAEA,IAAA,IAAI,aAAA,CAAc,SAAS,CAAA,EAAG;AAC5B,MAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,GAAA,GAAM,YAAA,GAAe,EAAA;AAClD,MAAA,MAAA,CAAO,KAAK,CAAA,2BAAA,EAA8B,aAAA,CAAc,MAAM,CAAA,EAAG,YAAY,CAAA,CAAE,CAAA;AAAA,IACjF,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,KAAK,8BAA8B,CAAA;AAAA,IAC5C;AAEA,IAAA,IAAI,YAAA,GAAe,CAAA;AACnB,IAAA,KAAA,MAAW,QAAQ,aAAA,EAAe;AAChC,MAAA,MAAM,YAAA,GAAe,QAAA,CAAS,OAAA,CAAQ,GAAA,IAAO,IAAI,CAAA;AAEjD,MAAA,IAAI,CAAC,QAAQ,GAAA,EAAK;AAChB,QAAA,MAAM,OAAO,IAAI,CAAA;AAAA,MACnB;AAEA,MAAA,MAAA,CAAO,IAAA,CAAK,CAAA,WAAA,EAAc,YAAY,CAAA,CAAA,CAAG,CAAA;AACzC,MAAA,YAAA,EAAA;AAAA,IACF;AAEA,IAAA,IAAI,iBAAiB,CAAA,EAAG;AACtB,MAAA,MAAA,CAAO,KAAK,uBAAuB,CAAA;AAAA,IACrC;AAAA,EACF,SAAS,KAAA,EAAO;AACd,IAAA,MAAA,CAAO,KAAA,CAAM,yBAAyB,KAAK,CAAA;AAC3C,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAzDsB,MAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA","file":"chunk-RB6ZS752.js","sourcesContent":["import { unlink } from 'node:fs/promises';\nimport { relative } from 'node:path';\nimport { getAllFiles } from './getAllFiles';\nimport type { ILogger, Options } from './types';\nimport { validateOutDir } from './validateOutDir';\n\nexport async function cleanUnusedFiles(outDir: string, builtFiles: Set<string>, options: Options, logger: ILogger): Promise<void> {\n validateOutDir(outDir, logger);\n\n try {\n logger.debug(`Starting cleanup of directory: \"${outDir}\"`);\n logger.debug(`Built files count: ${builtFiles.size}`);\n\n const existingFiles = await getAllFiles(outDir, logger);\n logger.debug(`Existing files count: ${existingFiles.length}`);\n\n if (existingFiles.length === 0 && builtFiles.size > 0) {\n logger.error('Disable tsup \"clean: true\" to use this plugin.');\n return;\n }\n\n logger.info(`Processing ${existingFiles.length} existing files vs ${builtFiles.size} built files`);\n\n const filesToDelete: string[] = [];\n\n for (const file of existingFiles) {\n const relativePath = relative(process.cwd(), file);\n logger.verbose(`Checking file: \"${relativePath}\"`);\n\n if (!builtFiles.has(relativePath)) {\n filesToDelete.push(file);\n logger.verbose(`Marked for deletion: \"${relativePath}\"`);\n } else {\n logger.verbose(`Keeping built file: \"${relativePath}\"`);\n }\n }\n\n if (filesToDelete.length > 0) {\n const dryRunSuffix = options.dry ? ' (dry run)' : '';\n logger.warn(`Files marked for deletion: ${filesToDelete.length}${dryRunSuffix}`);\n } else {\n logger.info('No files marked for deletion');\n }\n\n let deletedCount = 0;\n for (const file of filesToDelete) {\n const relativePath = relative(process.cwd(), file);\n\n if (!options.dry) {\n await unlink(file);\n }\n\n logger.info(`Deleting: \"${relativePath}\"`);\n deletedCount++;\n }\n\n if (deletedCount === 0) {\n logger.info('No unused files found');\n }\n } catch (error) {\n logger.error('Error during cleanup:', error);\n throw error;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- var e={debug:!1,verbose:!1,dry:!1};export{e as defaults};//# sourceMappingURL=chunk-ZJZOBFU7.js.map