@shellicar/build-clean 1.0.0-preview.5 → 1.1.0
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.
- package/LICENSE +1 -1
- package/README.md +19 -4
- package/dist/cjs/astro.cjs +1 -1
- package/dist/cjs/astro.cjs.map +1 -1
- package/dist/cjs/chunk-JAUU4VPS.cjs +1 -0
- package/dist/cjs/chunk-JAUU4VPS.cjs.map +1 -0
- package/dist/cjs/chunk-OBABVT2T.cjs +1 -0
- package/dist/cjs/chunk-OBABVT2T.cjs.map +1 -0
- package/dist/cjs/{chunk-MGNYOFPA.cjs → chunk-R3PK3BJI.cjs} +1 -1
- package/dist/cjs/{chunk-MGNYOFPA.cjs.map → chunk-R3PK3BJI.cjs.map} +1 -1
- package/dist/cjs/core/cleanUnusedFiles.cjs +1 -1
- package/dist/cjs/core/deleteFile.cjs +1 -0
- package/dist/cjs/core/deleteFile.cjs.map +1 -0
- package/dist/cjs/core/deleteFile.d.cts +5 -0
- package/dist/cjs/core/index.cjs +1 -1
- package/dist/cjs/esbuild.cjs +1 -1
- package/dist/cjs/farm.cjs +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/nuxt.cjs +1 -1
- package/dist/cjs/nuxt.cjs.map +1 -1
- package/dist/cjs/rollup.cjs +1 -1
- package/dist/cjs/rspack.cjs +1 -1
- package/dist/cjs/vite.cjs +1 -1
- package/dist/cjs/webpack.cjs +1 -1
- package/dist/esm/astro.js +1 -1
- package/dist/esm/astro.js.map +1 -1
- package/dist/esm/chunk-3LEFYRZW.js +1 -0
- package/dist/esm/chunk-3LEFYRZW.js.map +1 -0
- package/dist/esm/{chunk-Q52AAL3C.js → chunk-NSB257RH.js} +1 -1
- package/dist/esm/{chunk-Q52AAL3C.js.map → chunk-NSB257RH.js.map} +1 -1
- package/dist/esm/chunk-XOQVNVZN.js +1 -0
- package/dist/esm/chunk-XOQVNVZN.js.map +1 -0
- package/dist/esm/core/cleanUnusedFiles.js +1 -1
- package/dist/esm/core/deleteFile.d.ts +5 -0
- package/dist/esm/core/deleteFile.js +1 -0
- package/dist/esm/core/deleteFile.js.map +1 -0
- package/dist/esm/core/index.js +1 -1
- package/dist/esm/esbuild.js +1 -1
- package/dist/esm/farm.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/nuxt.js +1 -1
- package/dist/esm/nuxt.js.map +1 -1
- package/dist/esm/rollup.js +1 -1
- package/dist/esm/rspack.js +1 -1
- package/dist/esm/vite.js +1 -1
- package/dist/esm/webpack.js +1 -1
- package/package.json +5 -3
- package/dist/cjs/chunk-RI7YVIIP.cjs +0 -1
- package/dist/cjs/chunk-RI7YVIIP.cjs.map +0 -1
- package/dist/esm/chunk-TGWFIV7B.js +0 -1
- package/dist/esm/chunk-TGWFIV7B.js.map +0 -1
package/LICENSE
CHANGED
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,19 +1,34 @@
|
|
|
1
1
|
# @shellicar/build-clean
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Build plugin that automatically cleans unused files from output directories.
|
|
4
4
|
|
|
5
5
|
## Installation & Quick Start
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
|
-
pnpm add @shellicar/build-clean
|
|
8
|
+
pnpm add -D @shellicar/build-clean
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
## Quick Example
|
|
12
12
|
|
|
13
13
|
```ts
|
|
14
|
-
//
|
|
14
|
+
// esbuild
|
|
15
|
+
import cleanPlugin from '@shellicar/build-clean/esbuild'
|
|
16
|
+
|
|
17
|
+
await build({
|
|
18
|
+
plugins: [cleanPlugin({ destructive: true })]
|
|
19
|
+
})
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
// tsup.config.ts
|
|
24
|
+
import cleanPlugin from '@shellicar/build-clean/esbuild'
|
|
25
|
+
|
|
26
|
+
export default defineConfig({
|
|
27
|
+
clean: false,
|
|
28
|
+
esbuildPlugins: [cleanPlugin({ destructive: true })]
|
|
29
|
+
})
|
|
15
30
|
```
|
|
16
31
|
|
|
17
32
|
## Documentation
|
|
18
33
|
|
|
19
|
-
For full documentation, visit the [GitHub repository](https://github.com/shellicar/build-clean).
|
|
34
|
+
For full documentation, examples, and configuration options, visit the [GitHub repository](https://github.com/shellicar/build-clean).
|
package/dist/cjs/astro.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("./chunk-
|
|
1
|
+
"use strict";var e=require("./chunk-R3PK3BJI.cjs");require("./chunk-OBABVT2T.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-JAUU4VPS.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
|
package/dist/cjs/astro.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/astro.ts"],"names":["plugin"],"mappings":";
|
|
1
|
+
{"version":3,"sources":["../../src/astro.ts"],"names":["plugin"],"mappings":";AAGA,IAAO,aAAA,6CAAS,OAAA,MAA2B;AAAA,EACzC,IAAA,EAAM,aAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,oBAAA,kDAA6B,KAAA,KAAe;AAC1C,MAAA,KAAA,CAAM,MAAA,CAAO,IAAA,CAAK,OAAA,KAAY,EAAC;AAC/B,MAAA,KAAA,CAAM,OAAO,IAAA,CAAK,OAAA,CAAQ,KAAKA,wBAAA,CAAO,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,IACrD,CAAA,EAHsB,oBAAA;AAAA;AAK1B,CAAA,CAAA,EARe,SAAA","file":"astro.cjs","sourcesContent":["import { plugin } from './core';\nimport type { Options } from './core/types';\n\nexport default (options: Options): any => ({\n name: 'build-clean',\n hooks: {\n 'astro:config:setup': async (astro: any) => {\n astro.config.vite.plugins ||= [];\n astro.config.vite.plugins.push(plugin.vite(options));\n },\n },\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("./chunk-PK6SKIKE.cjs"),t=require("node:fs/promises");async function i(e,i){try{await t.unlink(e)}catch(t){i.warn(`Failed to delete "${e}":`,t)}}e.__name(i,"deleteFile"),exports.deleteFile=i;//# sourceMappingURL=chunk-JAUU4VPS.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/deleteFile.ts"],"names":["unlink","__name"],"mappings":"wGAGA,eAAsB,UAAA,CAAW,UAAkB,MAAA,EAAgC;AACjF,EAAA,IAAI;AACF,IAAA,MAAMA,gBAAO,QAAQ,CAAA;AAAA,EACvB,SAAS,KAAA,EAAO;AACd,IAAA,MAAA,CAAO,IAAA,CAAK,CAAA,kBAAA,EAAqB,QAAQ,CAAA,EAAA,CAAA,EAAM,KAAK,CAAA;AAAA,EACtD;AACF;AANsBC,wBAAA,CAAA,UAAA,EAAA,YAAA,CAAA","file":"chunk-JAUU4VPS.cjs","sourcesContent":["import { unlink } from 'node:fs/promises';\nimport type { ILogger } from './types';\n\nexport async function deleteFile(filePath: string, logger: ILogger): Promise<void> {\n try {\n await unlink(filePath);\n } catch (error) {\n logger.warn(`Failed to delete \"${filePath}\":`, error);\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("./chunk-JV6XTZ6N.cjs"),i=require("./chunk-JAUU4VPS.cjs"),t=require("./chunk-CKDUYIXO.cjs"),s=require("./chunk-PK6SKIKE.cjs"),r=require("node:path");async function n(s,n,o,u){e.validateOutDir(s,u);try{u.debug(`Starting cleanup of directory: "${s}"`),u.debug(`Built files count: ${n.size}`);const e=await t.getAllFiles(s,u);if(u.debug(`Existing files count: ${e.length}`),0===e.length&&n.size>0)return void u.error('Disable tsup "clean: true" to use this plugin. (You can ignore this message if this is the first time you have built your package)');u.info(`Processing ${e.length} existing files vs ${n.size} built files`);const l=[];for(const i of e){const e=r.relative(process.cwd(),i);u.verbose(`Checking file: "${e}"`),n.has(e)?u.verbose(`Keeping built file: "${e}"`):(l.push(i),u.verbose(`Marked for deletion: "${e}"`))}if(l.length>0){const e=o.destructive?"":" (dry run)";u.warn(`Files marked for deletion: ${l.length}${e}`)}else u.info("No files marked for deletion");let c=0;for(const e of l){const t=r.relative(process.cwd(),e);u.info(`Deleting: "${t}"`),o.destructive&&await i.deleteFile(e,u),c++}0===c?u.info("No unused files found"):o.destructive||u.info(`Set destructive: true to actually delete the ${c} unused file(s)`)}catch(e){throw u.error("Error during cleanup:",e),e}}s.__name(n,"cleanUnusedFiles"),exports.cleanUnusedFiles=n;//# sourceMappingURL=chunk-OBABVT2T.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/cleanUnusedFiles.ts"],"names":["validateOutDir","getAllFiles","relative","deleteFile","__name"],"mappings":"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","file":"chunk-OBABVT2T.cjs","sourcesContent":["import { relative } from 'node:path';\nimport { deleteFile } from './deleteFile';\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. (You can ignore this message if this is the first time you have built your package)');\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 logger.info(`Deleting: \"${relativePath}\"`);\n if (options.destructive) {\n await deleteFile(file, logger);\n }\n\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\n // TODO: Remove empty directories after deleting files\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-
|
|
1
|
+
"use strict";var e=require("./chunk-OBABVT2T.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-R3PK3BJI.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-
|
|
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-R3PK3BJI.cjs","sourcesContent":["import { createUnplugin, type UnpluginFactory, type UnpluginOptions } 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
|
-
"use strict";var e=require("../chunk-
|
|
1
|
+
"use strict";var e=require("../chunk-OBABVT2T.cjs");require("../chunk-JV6XTZ6N.cjs"),require("../chunk-JAUU4VPS.cjs"),require("../chunk-CKDUYIXO.cjs"),require("../chunk-PK6SKIKE.cjs"),Object.defineProperty(exports,"cleanUnusedFiles",{enumerable:!0,get:function(){return e.cleanUnusedFiles}});//# sourceMappingURL=cleanUnusedFiles.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("../chunk-JAUU4VPS.cjs");require("../chunk-PK6SKIKE.cjs"),Object.defineProperty(exports,"deleteFile",{enumerable:!0,get:function(){return e.deleteFile}});//# sourceMappingURL=deleteFile.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"deleteFile.cjs"}
|
package/dist/cjs/core/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("../chunk-
|
|
1
|
+
"use strict";var e=require("../chunk-R3PK3BJI.cjs");require("../chunk-OBABVT2T.cjs"),require("../chunk-JV6XTZ6N.cjs"),require("../chunk-FD3CZK4P.cjs"),require("../chunk-SZJPBNRD.cjs"),require("../chunk-JAUU4VPS.cjs"),require("../chunk-CKDUYIXO.cjs"),require("../chunk-PK6SKIKE.cjs"),Object.defineProperty(exports,"plugin",{enumerable:!0,get:function(){return e.plugin}});//# sourceMappingURL=index.cjs.map
|
package/dist/cjs/esbuild.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("./chunk-
|
|
1
|
+
"use strict";var e=require("./chunk-R3PK3BJI.cjs");require("./chunk-OBABVT2T.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-JAUU4VPS.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-PK6SKIKE.cjs");var r=e.plugin.esbuild;module.exports=r;//# sourceMappingURL=esbuild.cjs.map
|
package/dist/cjs/farm.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var r=require("./chunk-
|
|
1
|
+
"use strict";var r=require("./chunk-R3PK3BJI.cjs");require("./chunk-OBABVT2T.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-JAUU4VPS.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-PK6SKIKE.cjs");var e=r.plugin.farm;module.exports=e;//# sourceMappingURL=farm.cjs.map
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";require("./chunk-H44HDUOM.cjs");var e=require("./chunk-
|
|
1
|
+
"use strict";require("./chunk-H44HDUOM.cjs");var e=require("./chunk-R3PK3BJI.cjs");require("./chunk-OBABVT2T.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-JAUU4VPS.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-
|
|
1
|
+
"use strict";require("./chunk-H44HDUOM.cjs");var e=require("./chunk-R3PK3BJI.cjs");require("./chunk-OBABVT2T.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-JAUU4VPS.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
|
package/dist/cjs/nuxt.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/nuxt.ts"],"names":["defineNuxtModule","addWebpackPlugin","plugin","addVitePlugin"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/nuxt.ts"],"names":["defineNuxtModule","addWebpackPlugin","plugin","addVitePlugin"],"mappings":"wXAKA,IAAO,eAAQA,oBAAA,CAAiB;AAAA,EAC9B,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,kBAAA;AAAA,IACN,SAAA,EAAW;AAAA,GACb;AAAA,EACA,MAAM,OAAA,EAAkB;AACtB,IAAAC,oBAAA,CAAiBC,wBAAA,CAAS,OAAA,CAAQ,OAAO,CAAC,CAAA;AAC1C,IAAAC,iBAAA,CAAcD,wBAAA,CAAS,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,EACtC;AACF,CAAC","file":"nuxt.cjs","sourcesContent":["import '@nuxt/schema';\nimport { addVitePlugin, addWebpackPlugin, defineNuxtModule } from '@nuxt/kit';\nimport unplugin from '.';\nimport type { Options } from './core/types';\n\nexport default defineNuxtModule({\n meta: {\n name: 'nuxt-build-clean',\n configKey: 'buildVersion',\n },\n setup(options: Options) {\n addWebpackPlugin(unplugin.webpack(options));\n addVitePlugin(unplugin.vite(options));\n },\n});\n"]}
|
package/dist/cjs/rollup.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var r=require("./chunk-
|
|
1
|
+
"use strict";var r=require("./chunk-R3PK3BJI.cjs");require("./chunk-OBABVT2T.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-JAUU4VPS.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-PK6SKIKE.cjs");var u=r.plugin.rollup;module.exports=u;//# sourceMappingURL=rollup.cjs.map
|
package/dist/cjs/rspack.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var r=require("./chunk-
|
|
1
|
+
"use strict";var r=require("./chunk-R3PK3BJI.cjs");require("./chunk-OBABVT2T.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-JAUU4VPS.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-PK6SKIKE.cjs");var e=r.plugin.rspack;module.exports=e;//# sourceMappingURL=rspack.cjs.map
|
package/dist/cjs/vite.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("./chunk-
|
|
1
|
+
"use strict";var e=require("./chunk-R3PK3BJI.cjs");require("./chunk-OBABVT2T.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-JAUU4VPS.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-PK6SKIKE.cjs");var r=e.plugin.vite;module.exports=r;//# sourceMappingURL=vite.cjs.map
|
package/dist/cjs/webpack.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("./chunk-
|
|
1
|
+
"use strict";var e=require("./chunk-R3PK3BJI.cjs");require("./chunk-OBABVT2T.cjs"),require("./chunk-JV6XTZ6N.cjs"),require("./chunk-FD3CZK4P.cjs"),require("./chunk-SZJPBNRD.cjs"),require("./chunk-JAUU4VPS.cjs"),require("./chunk-CKDUYIXO.cjs"),require("./chunk-PK6SKIKE.cjs");var r=e.plugin.webpack;module.exports=r;//# sourceMappingURL=webpack.cjs.map
|
package/dist/esm/astro.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{plugin as o}from"./chunk-
|
|
1
|
+
import{plugin as o}from"./chunk-NSB257RH.js";import"./chunk-3LEFYRZW.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-XOQVNVZN.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
|
package/dist/esm/astro.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/astro.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"sources":["../../src/astro.ts"],"names":[],"mappings":";AAGA,IAAO,aAAA,2BAAS,OAAA,MAA2B;AAAA,EACzC,IAAA,EAAM,aAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,oBAAA,gCAA6B,KAAA,KAAe;AAC1C,MAAA,KAAA,CAAM,MAAA,CAAO,IAAA,CAAK,OAAA,KAAY,EAAC;AAC/B,MAAA,KAAA,CAAM,OAAO,IAAA,CAAK,OAAA,CAAQ,KAAK,MAAA,CAAO,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,IACrD,CAAA,EAHsB,oBAAA;AAAA;AAK1B,CAAA,CAAA,EARe,SAAA","file":"astro.js","sourcesContent":["import { plugin } from './core';\nimport type { Options } from './core/types';\n\nexport default (options: Options): any => ({\n name: 'build-clean',\n hooks: {\n 'astro:config:setup': async (astro: any) => {\n astro.config.vite.plugins ||= [];\n astro.config.vite.plugins.push(plugin.vite(options));\n },\n },\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{validateOutDir as e}from"./chunk-PVPUCTHV.js";import{deleteFile as t}from"./chunk-XOQVNVZN.js";import{getAllFiles as i}from"./chunk-NTAOZL73.js";import{__name as o}from"./chunk-7QVYU63E.js";import{relative as s}from"node:path";async function r(o,r,n,u){e(o,u);try{u.debug(`Starting cleanup of directory: "${o}"`),u.debug(`Built files count: ${r.size}`);const e=await i(o,u);if(u.debug(`Existing files count: ${e.length}`),0===e.length&&r.size>0)return void u.error('Disable tsup "clean: true" to use this plugin. (You can ignore this message if this is the first time you have built your package)');u.info(`Processing ${e.length} existing files vs ${r.size} built files`);const c=[];for(const t of e){const e=s(process.cwd(),t);u.verbose(`Checking file: "${e}"`),r.has(e)?u.verbose(`Keeping built file: "${e}"`):(c.push(t),u.verbose(`Marked for deletion: "${e}"`))}if(c.length>0){const e=n.destructive?"":" (dry run)";u.warn(`Files marked for deletion: ${c.length}${e}`)}else u.info("No files marked for deletion");let l=0;for(const e of c){const i=s(process.cwd(),e);u.info(`Deleting: "${i}"`),n.destructive&&await t(e,u),l++}0===l?u.info("No unused files found"):n.destructive||u.info(`Set destructive: true to actually delete the ${l} unused file(s)`)}catch(e){throw u.error("Error during cleanup:",e),e}}o(r,"cleanUnusedFiles");export{r as cleanUnusedFiles};//# sourceMappingURL=chunk-3LEFYRZW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/cleanUnusedFiles.ts"],"names":[],"mappings":"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","file":"chunk-3LEFYRZW.js","sourcesContent":["import { relative } from 'node:path';\nimport { deleteFile } from './deleteFile';\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. (You can ignore this message if this is the first time you have built your package)');\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 logger.info(`Deleting: \"${relativePath}\"`);\n if (options.destructive) {\n await deleteFile(file, logger);\n }\n\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\n // TODO: Remove empty directories after deleting files\n } catch (error) {\n logger.error('Error during cleanup:', error);\n throw error;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{cleanUnusedFiles as e}from"./chunk-
|
|
1
|
+
import{cleanUnusedFiles as e}from"./chunk-3LEFYRZW.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-NSB257RH.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-
|
|
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-NSB257RH.js","sourcesContent":["import { createUnplugin, type UnpluginFactory, type UnpluginOptions } 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{__name as e}from"./chunk-7QVYU63E.js";import{unlink as t}from"node:fs/promises";async function o(e,o){try{await t(e)}catch(t){o.warn(`Failed to delete "${e}":`,t)}}e(o,"deleteFile");export{o as deleteFile};//# sourceMappingURL=chunk-XOQVNVZN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/deleteFile.ts"],"names":[],"mappings":"+EAGA,eAAsB,UAAA,CAAW,UAAkB,MAAA,EAAgC;AACjF,EAAA,IAAI;AACF,IAAA,MAAM,OAAO,QAAQ,CAAA;AAAA,EACvB,SAAS,KAAA,EAAO;AACd,IAAA,MAAA,CAAO,IAAA,CAAK,CAAA,kBAAA,EAAqB,QAAQ,CAAA,EAAA,CAAA,EAAM,KAAK,CAAA;AAAA,EACtD;AACF;AANsB,MAAA,CAAA,UAAA,EAAA,YAAA,CAAA","file":"chunk-XOQVNVZN.js","sourcesContent":["import { unlink } from 'node:fs/promises';\nimport type { ILogger } from './types';\n\nexport async function deleteFile(filePath: string, logger: ILogger): Promise<void> {\n try {\n await unlink(filePath);\n } catch (error) {\n logger.warn(`Failed to delete \"${filePath}\":`, error);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{cleanUnusedFiles}from"../chunk-
|
|
1
|
+
export{cleanUnusedFiles}from"../chunk-3LEFYRZW.js";import"../chunk-PVPUCTHV.js";import"../chunk-XOQVNVZN.js";import"../chunk-NTAOZL73.js";import"../chunk-7QVYU63E.js";//# sourceMappingURL=cleanUnusedFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{deleteFile}from"../chunk-XOQVNVZN.js";import"../chunk-7QVYU63E.js";//# sourceMappingURL=deleteFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"deleteFile.js"}
|
package/dist/esm/core/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{plugin}from"../chunk-
|
|
1
|
+
export{plugin}from"../chunk-NSB257RH.js";import"../chunk-3LEFYRZW.js";import"../chunk-PVPUCTHV.js";import"../chunk-M6I5B37D.js";import"../chunk-4WDU3YKC.js";import"../chunk-XOQVNVZN.js";import"../chunk-NTAOZL73.js";import"../chunk-7QVYU63E.js";//# sourceMappingURL=index.js.map
|
package/dist/esm/esbuild.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{plugin as r}from"./chunk-
|
|
1
|
+
import{plugin as r}from"./chunk-NSB257RH.js";import"./chunk-3LEFYRZW.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-XOQVNVZN.js";import"./chunk-NTAOZL73.js";import"./chunk-7QVYU63E.js";var o=r.esbuild;export{o as default};//# sourceMappingURL=esbuild.js.map
|
package/dist/esm/farm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{plugin as r}from"./chunk-
|
|
1
|
+
import{plugin as r}from"./chunk-NSB257RH.js";import"./chunk-3LEFYRZW.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-XOQVNVZN.js";import"./chunk-NTAOZL73.js";import"./chunk-7QVYU63E.js";var m=r.farm;export{m as default};//# sourceMappingURL=farm.js.map
|
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk-QZKD24XZ.js";export{plugin as default}from"./chunk-
|
|
1
|
+
import"./chunk-QZKD24XZ.js";export{plugin as default}from"./chunk-NSB257RH.js";import"./chunk-3LEFYRZW.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-XOQVNVZN.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-
|
|
1
|
+
import"./chunk-QZKD24XZ.js";import{plugin as t}from"./chunk-NSB257RH.js";import"./chunk-3LEFYRZW.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-XOQVNVZN.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
|
package/dist/esm/nuxt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/nuxt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/nuxt.ts"],"names":[],"mappings":"sWAKA,IAAO,eAAQ,gBAAA,CAAiB;AAAA,EAC9B,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,kBAAA;AAAA,IACN,SAAA,EAAW;AAAA,GACb;AAAA,EACA,MAAM,OAAA,EAAkB;AACtB,IAAA,gBAAA,CAAiB,MAAA,CAAS,OAAA,CAAQ,OAAO,CAAC,CAAA;AAC1C,IAAA,aAAA,CAAc,MAAA,CAAS,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,EACtC;AACF,CAAC","file":"nuxt.js","sourcesContent":["import '@nuxt/schema';\nimport { addVitePlugin, addWebpackPlugin, defineNuxtModule } from '@nuxt/kit';\nimport unplugin from '.';\nimport type { Options } from './core/types';\n\nexport default defineNuxtModule({\n meta: {\n name: 'nuxt-build-clean',\n configKey: 'buildVersion',\n },\n setup(options: Options) {\n addWebpackPlugin(unplugin.webpack(options));\n addVitePlugin(unplugin.vite(options));\n },\n});\n"]}
|
package/dist/esm/rollup.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{plugin as r}from"./chunk-
|
|
1
|
+
import{plugin as r}from"./chunk-NSB257RH.js";import"./chunk-3LEFYRZW.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-XOQVNVZN.js";import"./chunk-NTAOZL73.js";import"./chunk-7QVYU63E.js";var o=r.rollup;export{o as default};//# sourceMappingURL=rollup.js.map
|
package/dist/esm/rspack.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{plugin as r}from"./chunk-
|
|
1
|
+
import{plugin as r}from"./chunk-NSB257RH.js";import"./chunk-3LEFYRZW.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-XOQVNVZN.js";import"./chunk-NTAOZL73.js";import"./chunk-7QVYU63E.js";var o=r.rspack;export{o as default};//# sourceMappingURL=rspack.js.map
|
package/dist/esm/vite.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{plugin as r}from"./chunk-
|
|
1
|
+
import{plugin as r}from"./chunk-NSB257RH.js";import"./chunk-3LEFYRZW.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-XOQVNVZN.js";import"./chunk-NTAOZL73.js";import"./chunk-7QVYU63E.js";var t=r.vite;export{t as default};//# sourceMappingURL=vite.js.map
|
package/dist/esm/webpack.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{plugin as r}from"./chunk-
|
|
1
|
+
import{plugin as r}from"./chunk-NSB257RH.js";import"./chunk-3LEFYRZW.js";import"./chunk-PVPUCTHV.js";import"./chunk-M6I5B37D.js";import"./chunk-4WDU3YKC.js";import"./chunk-XOQVNVZN.js";import"./chunk-NTAOZL73.js";import"./chunk-7QVYU63E.js";var o=r.webpack;export{o as default};//# sourceMappingURL=webpack.js.map
|
package/package.json
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shellicar/build-clean",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.1.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "Stephen Hellicar",
|
|
8
|
-
"description": "
|
|
8
|
+
"description": "Build plugin that automatically cleans unused files from output directories.",
|
|
9
9
|
"keywords": [
|
|
10
10
|
"esbuild",
|
|
11
|
+
"tsup",
|
|
11
12
|
"build",
|
|
12
13
|
"clean",
|
|
13
|
-
"plugin"
|
|
14
|
+
"plugin",
|
|
15
|
+
"unplugin"
|
|
14
16
|
],
|
|
15
17
|
"repository": {
|
|
16
18
|
"type": "git",
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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"]}
|