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

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 (53) hide show
  1. package/dist/cjs/astro.cjs +1 -1
  2. package/dist/cjs/chunk-MGNYOFPA.cjs +1 -0
  3. package/dist/cjs/{chunk-2J3HCLLR.cjs.map → chunk-MGNYOFPA.cjs.map} +1 -1
  4. package/dist/cjs/chunk-RI7YVIIP.cjs +1 -0
  5. package/dist/cjs/{chunk-UGB7RV45.cjs.map → chunk-RI7YVIIP.cjs.map} +1 -1
  6. package/dist/cjs/core/cleanUnusedFiles.cjs +1 -1
  7. package/dist/cjs/core/index.cjs +1 -1
  8. package/dist/cjs/esbuild.cjs +1 -1
  9. package/dist/cjs/farm.cjs +1 -0
  10. package/dist/cjs/farm.cjs.map +1 -0
  11. package/dist/cjs/farm.d.cts +6 -0
  12. package/dist/cjs/index.cjs +1 -1
  13. package/dist/cjs/nuxt.cjs +1 -1
  14. package/dist/cjs/rollup.cjs +1 -1
  15. package/dist/cjs/rspack.cjs +1 -0
  16. package/dist/cjs/rspack.cjs.map +1 -0
  17. package/dist/cjs/rspack.d.cts +5 -0
  18. package/dist/cjs/types.cjs +1 -0
  19. package/dist/cjs/types.cjs.map +1 -0
  20. package/dist/cjs/types.d.cts +1 -0
  21. package/dist/cjs/vite.cjs +1 -1
  22. package/dist/cjs/webpack.cjs +1 -0
  23. package/dist/cjs/webpack.cjs.map +1 -0
  24. package/dist/cjs/webpack.d.cts +6 -0
  25. package/dist/esm/astro.js +1 -1
  26. package/dist/esm/chunk-Q52AAL3C.js +1 -0
  27. package/dist/esm/{chunk-G325LPQA.js.map → chunk-Q52AAL3C.js.map} +1 -1
  28. package/dist/esm/chunk-TGWFIV7B.js +1 -0
  29. package/dist/esm/{chunk-73FTK3J5.js.map → chunk-TGWFIV7B.js.map} +1 -1
  30. package/dist/esm/core/cleanUnusedFiles.js +1 -1
  31. package/dist/esm/core/index.js +1 -1
  32. package/dist/esm/esbuild.js +1 -1
  33. package/dist/esm/farm.d.ts +6 -0
  34. package/dist/esm/farm.js +1 -0
  35. package/dist/esm/farm.js.map +1 -0
  36. package/dist/esm/index.js +1 -1
  37. package/dist/esm/nuxt.js +1 -1
  38. package/dist/esm/rollup.js +1 -1
  39. package/dist/esm/rspack.d.ts +5 -0
  40. package/dist/esm/rspack.js +1 -0
  41. package/dist/esm/rspack.js.map +1 -0
  42. package/dist/esm/types.d.ts +1 -0
  43. package/dist/esm/types.js +1 -0
  44. package/dist/esm/types.js.map +1 -0
  45. package/dist/esm/vite.js +1 -1
  46. package/dist/esm/webpack.d.ts +6 -0
  47. package/dist/esm/webpack.js +1 -0
  48. package/dist/esm/webpack.js.map +1 -0
  49. package/package.json +81 -104
  50. package/dist/cjs/chunk-2J3HCLLR.cjs +0 -1
  51. package/dist/cjs/chunk-UGB7RV45.cjs +0 -1
  52. package/dist/esm/chunk-73FTK3J5.js +0 -1
  53. package/dist/esm/chunk-G325LPQA.js +0 -1
@@ -1 +1 @@
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
+ "use strict";var e=require("./chunk-MGNYOFPA.cjs");require("./chunk-RI7YVIIP.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-CKDUYIXO.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
@@ -0,0 +1 @@
1
+ "use strict";var e=require("./chunk-RI7YVIIP.cjs"),i=require("./chunk-FD3CZK4P.cjs"),n=require("./chunk-SZJPBNRD.cjs"),r=require("./chunk-PK6SKIKE.cjs"),t=require("unplugin"),u=r.__name((r={})=>{const t={...n.defaults,...r},u=i.createLogger(t);return{name:"@shellicar/build-clean",enforce:"post",esbuild:{setup(i){i.initialOptions.metafile=!0,i.onEnd(async n=>{u.debug("Build completed, starting cleanup process");const r=i.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 e.cleanUnusedFiles(r,l,t,u)})}}}},"pluginFactory"),l=t.createUnplugin(u);exports.plugin=l;//# sourceMappingURL=chunk-MGNYOFPA.cjs.map
@@ -1 +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"]}
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-MGNYOFPA.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";var e=require("./chunk-JV6XTZ6N.cjs"),i=require("./chunk-CKDUYIXO.cjs"),t=require("./chunk-PK6SKIKE.cjs"),s=require("node:fs/promises"),r=require("node:path");async function n(t,n,o,l){e.validateOutDir(t,l);try{l.debug(`Starting cleanup of directory: "${t}"`),l.debug(`Built files count: ${n.size}`);const e=await i.getAllFiles(t,l);if(l.debug(`Existing files count: ${e.length}`),0===e.length&&n.size>0)return void l.error('Disable tsup "clean: true" to use this plugin.');l.info(`Processing ${e.length} existing files vs ${n.size} built files`);const u=[];for(const i of e){const e=r.relative(process.cwd(),i);l.verbose(`Checking file: "${e}"`),n.has(e)?l.verbose(`Keeping built file: "${e}"`):(u.push(i),l.verbose(`Marked for deletion: "${e}"`))}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-RI7YVIIP.cjs.map
@@ -1 +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
+ {"version":3,"sources":["../../src/core/cleanUnusedFiles.ts"],"names":["validateOutDir","getAllFiles","relative","unlink","__name"],"mappings":"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","file":"chunk-RI7YVIIP.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-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
+ "use strict";var e=require("../chunk-RI7YVIIP.cjs");require("../chunk-JV6XTZ6N.cjs"),require("../chunk-CKDUYIXO.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-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
+ "use strict";var e=require("../chunk-MGNYOFPA.cjs");require("../chunk-RI7YVIIP.cjs"),require("../chunk-JV6XTZ6N.cjs"),require("../chunk-FD3CZK4P.cjs"),require("../chunk-SZJPBNRD.cjs"),require("../chunk-CKDUYIXO.cjs"),require("../chunk-PK6SKIKE.cjs"),Object.defineProperty(exports,"plugin",{enumerable:!0,get:function(){return e.plugin}});//# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
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
+ "use strict";var e=require("./chunk-MGNYOFPA.cjs");require("./chunk-RI7YVIIP.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-PK6SKIKE.cjs");var r=e.plugin.esbuild;module.exports=r;//# sourceMappingURL=esbuild.cjs.map
@@ -0,0 +1 @@
1
+ "use strict";var r=require("./chunk-MGNYOFPA.cjs");require("./chunk-RI7YVIIP.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-PK6SKIKE.cjs");var e=r.plugin.farm;module.exports=e;//# sourceMappingURL=farm.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/farm.ts"],"names":["plugin"],"mappings":";AAEA,IAAO,eAAQA,wBAAA,CAAO","file":"farm.cjs","sourcesContent":["import { plugin } from './core';\n\nexport default plugin.farm;\n"]}
@@ -0,0 +1,6 @@
1
+ import * as _farmfe_core from '@farmfe/core';
2
+ import { Options } from './core/types.cjs';
3
+
4
+ declare const _default: (options?: Options | undefined) => _farmfe_core.JsPlugin;
5
+
6
+ export { _default as default };
@@ -1 +1 @@
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
1
+ "use strict";require("./chunk-H44HDUOM.cjs");var e=require("./chunk-MGNYOFPA.cjs");require("./chunk-RI7YVIIP.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-CKDUYIXO.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-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
+ "use strict";require("./chunk-H44HDUOM.cjs");var e=require("./chunk-MGNYOFPA.cjs");require("./chunk-RI7YVIIP.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-CKDUYIXO.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-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
1
+ "use strict";var r=require("./chunk-MGNYOFPA.cjs");require("./chunk-RI7YVIIP.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-PK6SKIKE.cjs");var u=r.plugin.rollup;module.exports=u;//# sourceMappingURL=rollup.cjs.map
@@ -0,0 +1 @@
1
+ "use strict";var r=require("./chunk-MGNYOFPA.cjs");require("./chunk-RI7YVIIP.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-PK6SKIKE.cjs");var e=r.plugin.rspack;module.exports=e;//# sourceMappingURL=rspack.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rspack.ts"],"names":["plugin"],"mappings":";AAEA,IAAO,iBAAQA,wBAAA,CAAO","file":"rspack.cjs","sourcesContent":["import { plugin } from './core';\n\nexport default plugin.rspack;\n"]}
@@ -0,0 +1,5 @@
1
+ import { Options } from './core/types.cjs';
2
+
3
+ declare const _default: (options?: Options | undefined) => RspackPluginInstance;
4
+
5
+ export { _default as default };
@@ -0,0 +1 @@
1
+ "use strict";//# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"types.cjs"}
@@ -0,0 +1 @@
1
+ export { Options } from './core/types.cjs';
package/dist/cjs/vite.cjs CHANGED
@@ -1 +1 @@
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
1
+ "use strict";var e=require("./chunk-MGNYOFPA.cjs");require("./chunk-RI7YVIIP.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-PK6SKIKE.cjs");var r=e.plugin.vite;module.exports=r;//# sourceMappingURL=vite.cjs.map
@@ -0,0 +1 @@
1
+ "use strict";var e=require("./chunk-MGNYOFPA.cjs");require("./chunk-RI7YVIIP.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-PK6SKIKE.cjs");var r=e.plugin.webpack;module.exports=r;//# sourceMappingURL=webpack.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/webpack.ts"],"names":["plugin"],"mappings":";AAEA,IAAO,kBAAQA,wBAAA,CAAO","file":"webpack.cjs","sourcesContent":["import { plugin } from './core';\n\nexport default plugin.webpack;\n"]}
@@ -0,0 +1,6 @@
1
+ import * as webpack from 'webpack';
2
+ import { Options } from './core/types.cjs';
3
+
4
+ declare const _default: (options?: Options | undefined) => webpack.WebpackPluginInstance;
5
+
6
+ export { _default as default };
package/dist/esm/astro.js CHANGED
@@ -1 +1 @@
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
1
+ import{plugin as o}from"./chunk-Q52AAL3C.js";import"./chunk-TGWFIV7B.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-NTAOZL73.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
+ import{cleanUnusedFiles as e}from"./chunk-TGWFIV7B.js";import{createLogger as i}from"./chunk-M6I5B37D.js";import{defaults as t}from"./chunk-4WDU3YKC.js";import{__name as o}from"./chunk-7QVYU63E.js";import{createUnplugin as r}from"unplugin";var n=r(o((o={})=>{const r={...t,...o},n=i(r);return{name:"@shellicar/build-clean",enforce:"post",esbuild:{setup(i){i.initialOptions.metafile=!0,i.onEnd(async t=>{n.debug("Build completed, starting cleanup process");const o=i.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 e(o,l,r,n)})}}}},"pluginFactory"));export{n as plugin};//# sourceMappingURL=chunk-Q52AAL3C.js.map
@@ -1 +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
+ {"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-Q52AAL3C.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"]}
@@ -0,0 +1 @@
1
+ import{validateOutDir as e}from"./chunk-PVPUCTHV.js";import{getAllFiles as t}from"./chunk-NTAOZL73.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){e(o,l);try{l.debug(`Starting cleanup of directory: "${o}"`),l.debug(`Built files count: ${s.size}`);const e=await t(o,l);if(l.debug(`Existing files count: ${e.length}`),0===e.length&&s.size>0)return void l.error('Disable tsup "clean: true" to use this plugin.');l.info(`Processing ${e.length} existing files vs ${s.size} built files`);const u=[];for(const t of e){const e=r(process.cwd(),t);l.verbose(`Checking file: "${e}"`),s.has(e)?l.verbose(`Keeping built file: "${e}"`):(u.push(t),l.verbose(`Marked for deletion: "${e}"`))}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-TGWFIV7B.js.map
@@ -1 +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"]}
1
+ {"version":3,"sources":["../../src/core/cleanUnusedFiles.ts"],"names":[],"mappings":"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","file":"chunk-TGWFIV7B.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"]}
@@ -1 +1 @@
1
- export{cleanUnusedFiles}from"../chunk-73FTK3J5.js";import"../chunk-NTAOZL73.js";import"../chunk-PVPUCTHV.js";import"../chunk-7QVYU63E.js";//# sourceMappingURL=cleanUnusedFiles.js.map
1
+ export{cleanUnusedFiles}from"../chunk-TGWFIV7B.js";import"../chunk-PVPUCTHV.js";import"../chunk-NTAOZL73.js";import"../chunk-7QVYU63E.js";//# sourceMappingURL=cleanUnusedFiles.js.map
@@ -1 +1 @@
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
+ export{plugin}from"../chunk-Q52AAL3C.js";import"../chunk-TGWFIV7B.js";import"../chunk-PVPUCTHV.js";import"../chunk-M6I5B37D.js";import"../chunk-4WDU3YKC.js";import"../chunk-NTAOZL73.js";import"../chunk-7QVYU63E.js";//# sourceMappingURL=index.js.map
@@ -1 +1 @@
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
1
+ import{plugin as r}from"./chunk-Q52AAL3C.js";import"./chunk-TGWFIV7B.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-NTAOZL73.js";import"./chunk-7QVYU63E.js";var o=r.esbuild;export{o as default};//# sourceMappingURL=esbuild.js.map
@@ -0,0 +1,6 @@
1
+ import * as _farmfe_core from '@farmfe/core';
2
+ import { Options } from './core/types.js';
3
+
4
+ declare const _default: (options?: Options | undefined) => _farmfe_core.JsPlugin;
5
+
6
+ export { _default as default };
@@ -0,0 +1 @@
1
+ import{plugin as r}from"./chunk-Q52AAL3C.js";import"./chunk-TGWFIV7B.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-NTAOZL73.js";import"./chunk-7QVYU63E.js";var m=r.farm;export{m as default};//# sourceMappingURL=farm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/farm.ts"],"names":[],"mappings":";AAEA,IAAO,eAAQ,MAAA,CAAO","file":"farm.js","sourcesContent":["import { plugin } from './core';\n\nexport default plugin.farm;\n"]}
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
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
1
+ import"./chunk-QZKD24XZ.js";export{plugin as default}from"./chunk-Q52AAL3C.js";import"./chunk-TGWFIV7B.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-NTAOZL73.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-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
+ import"./chunk-QZKD24XZ.js";import{plugin as t}from"./chunk-Q52AAL3C.js";import"./chunk-TGWFIV7B.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-NTAOZL73.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-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
1
+ import{plugin as r}from"./chunk-Q52AAL3C.js";import"./chunk-TGWFIV7B.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-NTAOZL73.js";import"./chunk-7QVYU63E.js";var o=r.rollup;export{o as default};//# sourceMappingURL=rollup.js.map
@@ -0,0 +1,5 @@
1
+ import { Options } from './core/types.js';
2
+
3
+ declare const _default: (options?: Options | undefined) => RspackPluginInstance;
4
+
5
+ export { _default as default };
@@ -0,0 +1 @@
1
+ import{plugin as r}from"./chunk-Q52AAL3C.js";import"./chunk-TGWFIV7B.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-NTAOZL73.js";import"./chunk-7QVYU63E.js";var o=r.rspack;export{o as default};//# sourceMappingURL=rspack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/rspack.ts"],"names":[],"mappings":";AAEA,IAAO,iBAAQ,MAAA,CAAO","file":"rspack.js","sourcesContent":["import { plugin } from './core';\n\nexport default plugin.rspack;\n"]}
@@ -0,0 +1 @@
1
+ export { Options } from './core/types.js';
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"types.js"}
package/dist/esm/vite.js CHANGED
@@ -1 +1 @@
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
1
+ import{plugin as r}from"./chunk-Q52AAL3C.js";import"./chunk-TGWFIV7B.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-NTAOZL73.js";import"./chunk-7QVYU63E.js";var t=r.vite;export{t as default};//# sourceMappingURL=vite.js.map
@@ -0,0 +1,6 @@
1
+ import * as webpack from 'webpack';
2
+ import { Options } from './core/types.js';
3
+
4
+ declare const _default: (options?: Options | undefined) => webpack.WebpackPluginInstance;
5
+
6
+ export { _default as default };
@@ -0,0 +1 @@
1
+ import{plugin as r}from"./chunk-Q52AAL3C.js";import"./chunk-TGWFIV7B.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-NTAOZL73.js";import"./chunk-7QVYU63E.js";var o=r.webpack;export{o as default};//# sourceMappingURL=webpack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/webpack.ts"],"names":[],"mappings":";AAEA,IAAO,kBAAQ,MAAA,CAAO","file":"webpack.js","sourcesContent":["import { plugin } from './core';\n\nexport default plugin.webpack;\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@shellicar/build-clean",
3
3
  "private": false,
4
- "version": "1.0.0-preview.3",
4
+ "version": "1.0.0-preview.4",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "author": "Stephen Hellicar",
@@ -25,123 +25,103 @@
25
25
  },
26
26
  "exports": {
27
27
  ".": {
28
- "require": {
29
- "types": "./dist/cjs/index.d.cts",
30
- "default": "./dist/cjs/index.cjs"
31
- },
32
28
  "import": {
33
- "types": "./dist/esm/index.d.ts",
34
- "default": "./dist/esm/index.js"
29
+ "default": "./dist/esm/index.js",
30
+ "types": "./dist/esm/index.d.ts"
31
+ },
32
+ "require": {
33
+ "default": "./dist/cjs/index.cjs",
34
+ "types": "./dist/cjs/index.d.cts"
35
35
  }
36
36
  },
37
37
  "./astro": {
38
- "require": {
39
- "types": "./dist/cjs/astro.d.cts",
40
- "default": "./dist/cjs/astro.cjs"
41
- },
42
38
  "import": {
43
- "types": "./dist/esm/astro.d.ts",
44
- "default": "./dist/esm/astro.js"
39
+ "default": "./dist/esm/astro.js",
40
+ "types": "./dist/esm/astro.d.ts"
41
+ },
42
+ "require": {
43
+ "default": "./dist/cjs/astro.cjs",
44
+ "types": "./dist/cjs/astro.d.cts"
45
45
  }
46
46
  },
47
- "./rspack": {
48
- "require": {
49
- "types": "./dist/cjs/rspack.d.cts",
50
- "default": "./dist/cjs/rspack.cjs"
51
- },
47
+ "./esbuild": {
52
48
  "import": {
53
- "types": "./dist/esm/rspack.d.ts",
54
- "default": "./dist/esm/rspack.js"
49
+ "default": "./dist/esm/esbuild.js",
50
+ "types": "./dist/esm/esbuild.d.ts"
51
+ },
52
+ "require": {
53
+ "default": "./dist/cjs/esbuild.cjs",
54
+ "types": "./dist/cjs/esbuild.d.cts"
55
55
  }
56
56
  },
57
- "./vite": {
58
- "require": {
59
- "types": "./dist/cjs/vite.d.cts",
60
- "default": "./dist/cjs/vite.cjs"
61
- },
57
+ "./farm": {
62
58
  "import": {
63
- "types": "./dist/esm/vite.d.ts",
64
- "default": "./dist/esm/vite.js"
59
+ "default": "./dist/esm/farm.js",
60
+ "types": "./dist/esm/farm.d.ts"
61
+ },
62
+ "require": {
63
+ "default": "./dist/cjs/farm.cjs",
64
+ "types": "./dist/cjs/farm.d.cts"
65
65
  }
66
66
  },
67
- "./webpack": {
68
- "require": {
69
- "types": "./dist/cjs/webpack.d.cts",
70
- "default": "./dist/cjs/webpack.cjs"
71
- },
67
+ "./nuxt": {
72
68
  "import": {
73
- "types": "./dist/esm/webpack.d.ts",
74
- "default": "./dist/esm/webpack.js"
69
+ "default": "./dist/esm/nuxt.js",
70
+ "types": "./dist/esm/nuxt.d.ts"
71
+ },
72
+ "require": {
73
+ "default": "./dist/cjs/nuxt.cjs",
74
+ "types": "./dist/cjs/nuxt.d.cts"
75
75
  }
76
76
  },
77
77
  "./rollup": {
78
- "require": {
79
- "types": "./dist/cjs/rollup.d.cts",
80
- "default": "./dist/cjs/rollup.cjs"
81
- },
82
78
  "import": {
83
- "types": "./dist/esm/rollup.d.ts",
84
- "default": "./dist/esm/rollup.js"
85
- }
86
- },
87
- "./esbuild": {
88
- "require": {
89
- "types": "./dist/cjs/esbuild.d.cts",
90
- "default": "./dist/cjs/esbuild.cjs"
79
+ "default": "./dist/esm/rollup.js",
80
+ "types": "./dist/esm/rollup.d.ts"
91
81
  },
92
- "import": {
93
- "types": "./dist/esm/esbuild.d.ts",
94
- "default": "./dist/esm/esbuild.js"
95
- }
96
- },
97
- "./nuxt": {
98
82
  "require": {
99
- "types": "./dist/cjs/nuxt.d.cts",
100
- "default": "./dist/cjs/nuxt.cjs"
101
- },
102
- "import": {
103
- "types": "./dist/esm/nuxt.d.ts",
104
- "default": "./dist/esm/nuxt.js"
83
+ "default": "./dist/cjs/rollup.cjs",
84
+ "types": "./dist/cjs/rollup.d.cts"
105
85
  }
106
86
  },
107
- "./farm": {
108
- "require": {
109
- "types": "./dist/cjs/farm.d.cts",
110
- "default": "./dist/cjs/farm.cjs"
111
- },
87
+ "./rspack": {
112
88
  "import": {
113
- "types": "./dist/esm/farm.d.ts",
114
- "default": "./dist/esm/farm.js"
89
+ "default": "./dist/esm/rspack.js",
90
+ "types": "./dist/esm/rspack.d.ts"
91
+ },
92
+ "require": {
93
+ "default": "./dist/cjs/rspack.cjs",
94
+ "types": "./dist/cjs/rspack.d.cts"
115
95
  }
116
96
  },
117
97
  "./types": {
118
- "require": {
119
- "types": "./dist/cjs/core/types.d.cts",
120
- "default": "./dist/cjs/core/types.cjs"
121
- },
122
98
  "import": {
123
- "types": "./dist/esm/core/types.d.ts",
124
- "default": "./dist/esm/core/types.js"
99
+ "default": "./dist/esm/types.js",
100
+ "types": "./dist/esm/types.d.ts"
101
+ },
102
+ "require": {
103
+ "default": "./dist/cjs/types.cjs",
104
+ "types": "./dist/cjs/types.d.cts"
125
105
  }
126
106
  },
127
- "./typedefs": {
128
- "require": {
129
- "types": "./dist/cjs/core/typedefs.d.cts",
130
- "default": "./dist/cjs/core/typedefs.cjs"
131
- },
107
+ "./vite": {
132
108
  "import": {
133
- "types": "./dist/esm/core/typedefs.d.ts",
134
- "default": "./dist/esm/core/typedefs.js"
109
+ "default": "./dist/esm/vite.js",
110
+ "types": "./dist/esm/vite.d.ts"
111
+ },
112
+ "require": {
113
+ "default": "./dist/cjs/vite.cjs",
114
+ "types": "./dist/cjs/vite.d.cts"
135
115
  }
136
116
  },
137
- "./*": {
138
- "require": {
139
- "types": "./dist/cjs/*.d.cts",
140
- "default": "./dist/cjs/*.cjs"
141
- },
117
+ "./webpack": {
142
118
  "import": {
143
- "types": "./dist/esm/*.d.ts",
144
- "default": "./dist/esm/*.js"
119
+ "default": "./dist/esm/webpack.js",
120
+ "types": "./dist/esm/webpack.d.ts"
121
+ },
122
+ "require": {
123
+ "default": "./dist/cjs/webpack.cjs",
124
+ "types": "./dist/cjs/webpack.d.cts"
145
125
  }
146
126
  }
147
127
  },
@@ -150,38 +130,35 @@
150
130
  "types": "dist/esm/index.d.ts",
151
131
  "typesVersions": {
152
132
  "*": {
133
+ "index": [
134
+ "./dist/esm/index.d.ts"
135
+ ],
153
136
  "astro": [
154
137
  "./dist/esm/astro.d.ts"
155
138
  ],
156
- "rspack": [
157
- "./dist/esm/rspack.d.ts"
158
- ],
159
- "vite": [
160
- "./dist/esm/vite.d.ts"
161
- ],
162
- "webpack": [
163
- "./dist/esm/webpack.d.ts"
164
- ],
165
- "rollup": [
166
- "./dist/esm/rollup.d.ts"
167
- ],
168
139
  "esbuild": [
169
140
  "./dist/esm/esbuild.d.ts"
170
141
  ],
142
+ "farm": [
143
+ "./dist/esm/farm.d.ts"
144
+ ],
171
145
  "nuxt": [
172
146
  "./dist/esm/nuxt.d.ts"
173
147
  ],
174
- "farm": [
175
- "./dist/esm/farm.d.ts"
148
+ "rollup": [
149
+ "./dist/esm/rollup.d.ts"
150
+ ],
151
+ "rspack": [
152
+ "./dist/esm/rspack.d.ts"
176
153
  ],
177
154
  "types": [
178
- "./dist/esm/core/types.d.ts"
155
+ "./dist/esm/types.d.ts"
179
156
  ],
180
- "typedefs": [
181
- "./dist/esm/core/typedefs.d.ts"
157
+ "vite": [
158
+ "./dist/esm/vite.d.ts"
182
159
  ],
183
- "*": [
184
- "./dist/esm/*"
160
+ "webpack": [
161
+ "./dist/esm/webpack.d.ts"
185
162
  ]
186
163
  }
187
164
  },
@@ -1 +0,0 @@
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
@@ -1 +0,0 @@
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
@@ -1 +0,0 @@
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
@@ -1 +0,0 @@
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