@meng-xi/vite-plugin 0.1.5 → 0.1.6

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 (57) hide show
  1. package/README-en.md +29 -15
  2. package/README.md +29 -15
  3. package/dist/common/format/index.cjs +1 -1
  4. package/dist/common/format/index.d.cts +35 -1
  5. package/dist/common/format/index.d.mts +35 -1
  6. package/dist/common/format/index.d.ts +35 -1
  7. package/dist/common/format/index.mjs +1 -1
  8. package/dist/common/fs/index.cjs +1 -1
  9. package/dist/common/fs/index.d.cts +36 -1
  10. package/dist/common/fs/index.d.mts +36 -1
  11. package/dist/common/fs/index.d.ts +36 -1
  12. package/dist/common/fs/index.mjs +1 -1
  13. package/dist/common/html/index.cjs +2 -2
  14. package/dist/common/html/index.d.cts +17 -1
  15. package/dist/common/html/index.d.mts +17 -1
  16. package/dist/common/html/index.d.ts +17 -1
  17. package/dist/common/html/index.mjs +2 -2
  18. package/dist/common/index.cjs +1 -1
  19. package/dist/common/index.d.cts +3 -3
  20. package/dist/common/index.d.mts +3 -3
  21. package/dist/common/index.d.ts +3 -3
  22. package/dist/common/index.mjs +1 -1
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.d.cts +3 -3
  25. package/dist/index.d.mts +3 -3
  26. package/dist/index.d.ts +3 -3
  27. package/dist/index.mjs +1 -1
  28. package/dist/plugins/autoImport/index.cjs +7 -5
  29. package/dist/plugins/autoImport/index.mjs +9 -7
  30. package/dist/plugins/buildProgress/index.cjs +2 -2
  31. package/dist/plugins/bundleAnalyzer/index.cjs +21 -21
  32. package/dist/plugins/compressAssets/index.cjs +1 -1
  33. package/dist/plugins/compressAssets/index.mjs +1 -1
  34. package/dist/plugins/envGuard/index.cjs +9 -9
  35. package/dist/plugins/envGuard/index.mjs +7 -7
  36. package/dist/plugins/faviconManager/index.cjs +1 -1
  37. package/dist/plugins/faviconManager/index.mjs +1 -1
  38. package/dist/plugins/generateRouter/index.cjs +5 -4
  39. package/dist/plugins/generateRouter/index.d.cts +33 -0
  40. package/dist/plugins/generateRouter/index.d.mts +33 -0
  41. package/dist/plugins/generateRouter/index.d.ts +33 -0
  42. package/dist/plugins/generateRouter/index.mjs +3 -2
  43. package/dist/plugins/generateVersion/index.cjs +1 -1
  44. package/dist/plugins/generateVersion/index.mjs +1 -1
  45. package/dist/plugins/htmlInject/index.cjs +7 -7
  46. package/dist/plugins/htmlInject/index.mjs +2 -2
  47. package/dist/plugins/index.cjs +1 -1
  48. package/dist/plugins/index.mjs +1 -1
  49. package/dist/plugins/loadingManager/index.cjs +5 -5
  50. package/dist/plugins/loadingManager/index.mjs +4 -4
  51. package/dist/plugins/versionUpdateChecker/index.cjs +4 -4
  52. package/dist/plugins/versionUpdateChecker/index.mjs +4 -4
  53. package/dist/shared/vite-plugin.CcvHfrL8.cjs +1 -0
  54. package/dist/shared/vite-plugin.CuXEJAWX.mjs +1 -0
  55. package/package.json +2 -2
  56. package/dist/shared/vite-plugin.BPFqtmWa.mjs +0 -1
  57. package/dist/shared/vite-plugin.CnOy46d3.cjs +0 -1
@@ -1 +1 @@
1
- "use strict";const common_format_index=require("./format/index.cjs"),common_fs_index=require("./fs/index.cjs"),common_html_index=require("./html/index.cjs"),common_script_index=require("./script/index.cjs"),common_ui_index=require("./ui/index.cjs"),validator=require("../shared/vite-plugin.Bcg6RW2N.cjs"),common_validation_index=require("./validation/index.cjs"),security=require("../shared/vite-plugin.CnOy46d3.cjs");require("fs"),require("path"),exports.formatFileSize=common_format_index.formatFileSize,exports.getDateFormatParams=common_format_index.getDateFormatParams,exports.checkSourceExists=common_fs_index.checkSourceExists,exports.copySourceToTarget=common_fs_index.copySourceToTarget,exports.scanDirectory=common_fs_index.scanDirectory,exports.writeFileContent=common_fs_index.writeFileContent,exports.writeJsonReport=common_fs_index.writeJsonReport,exports.injectBeforeTag=common_html_index.injectBeforeTag,exports.injectHeadAndBody=common_html_index.injectHeadAndBody,exports.makeCallback=common_script_index.makeCallback,exports.ANSI=common_ui_index.ANSI,exports.Validator=validator.Validator,exports.validateCallbackFields=common_validation_index.validateCallbackFields,exports.validateGlobalName=common_validation_index.validateGlobalName,exports.validateNoScriptInTemplate=common_validation_index.validateNoScriptInTemplate,exports.sanitizeContent=security.sanitizeContent;
1
+ "use strict";const common_format_index=require("./format/index.cjs"),common_fs_index=require("./fs/index.cjs"),common_html_index=require("./html/index.cjs"),common_script_index=require("./script/index.cjs"),common_ui_index=require("./ui/index.cjs"),validator=require("../shared/vite-plugin.Bcg6RW2N.cjs"),common_validation_index=require("./validation/index.cjs"),security=require("../shared/vite-plugin.CcvHfrL8.cjs");require("fs"),require("path"),exports.formatDate=common_format_index.formatDate,exports.formatFileSize=common_format_index.formatFileSize,exports.getDateFormatParams=common_format_index.getDateFormatParams,exports.parseTemplate=common_format_index.parseTemplate,exports.checkSourceExists=common_fs_index.checkSourceExists,exports.copySourceToTarget=common_fs_index.copySourceToTarget,exports.scanDirectory=common_fs_index.scanDirectory,exports.shouldUpdateFileContent=common_fs_index.shouldUpdateFileContent,exports.writeFileContent=common_fs_index.writeFileContent,exports.writeFileSyncSafely=common_fs_index.writeFileSyncSafely,exports.writeJsonReport=common_fs_index.writeJsonReport,exports.injectBeforeTag=common_html_index.injectBeforeTag,exports.injectHeadAndBody=common_html_index.injectHeadAndBody,exports.makeCallback=common_script_index.makeCallback,exports.ANSI=common_ui_index.ANSI,exports.Validator=validator.Validator,exports.validateCallbackFields=common_validation_index.validateCallbackFields,exports.validateGlobalName=common_validation_index.validateGlobalName,exports.validateNoScriptInTemplate=common_validation_index.validateNoScriptInTemplate,exports.escapeHtmlAttr=security.escapeHtmlAttr,exports.sanitizeContent=security.sanitizeContent;
@@ -1,6 +1,6 @@
1
- export { DateFormatOptions, formatFileSize, getDateFormatParams } from './format/index.cjs';
2
- export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, scanDirectory, writeFileContent, writeJsonReport } from './fs/index.cjs';
3
- export { SanitizeRuleOptions, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './html/index.cjs';
1
+ export { DateFormatOptions, formatDate, formatFileSize, getDateFormatParams, parseTemplate } from './format/index.cjs';
2
+ export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, scanDirectory, shouldUpdateFileContent, writeFileContent, writeFileSyncSafely, writeJsonReport } from './fs/index.cjs';
3
+ export { SanitizeRuleOptions, escapeHtmlAttr, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './html/index.cjs';
4
4
  export { makeCallback } from './script/index.cjs';
5
5
  export { ANSI } from './ui/index.cjs';
6
6
  export { V as Validator } from '../shared/vite-plugin.DRRlWY8P.cjs';
@@ -1,6 +1,6 @@
1
- export { DateFormatOptions, formatFileSize, getDateFormatParams } from './format/index.mjs';
2
- export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, scanDirectory, writeFileContent, writeJsonReport } from './fs/index.mjs';
3
- export { SanitizeRuleOptions, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './html/index.mjs';
1
+ export { DateFormatOptions, formatDate, formatFileSize, getDateFormatParams, parseTemplate } from './format/index.mjs';
2
+ export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, scanDirectory, shouldUpdateFileContent, writeFileContent, writeFileSyncSafely, writeJsonReport } from './fs/index.mjs';
3
+ export { SanitizeRuleOptions, escapeHtmlAttr, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './html/index.mjs';
4
4
  export { makeCallback } from './script/index.mjs';
5
5
  export { ANSI } from './ui/index.mjs';
6
6
  export { V as Validator } from '../shared/vite-plugin.DRRlWY8P.mjs';
@@ -1,6 +1,6 @@
1
- export { DateFormatOptions, formatFileSize, getDateFormatParams } from './format/index.js';
2
- export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, scanDirectory, writeFileContent, writeJsonReport } from './fs/index.js';
3
- export { SanitizeRuleOptions, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './html/index.js';
1
+ export { DateFormatOptions, formatDate, formatFileSize, getDateFormatParams, parseTemplate } from './format/index.js';
2
+ export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, scanDirectory, shouldUpdateFileContent, writeFileContent, writeFileSyncSafely, writeJsonReport } from './fs/index.js';
3
+ export { SanitizeRuleOptions, escapeHtmlAttr, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './html/index.js';
4
4
  export { makeCallback } from './script/index.js';
5
5
  export { ANSI } from './ui/index.js';
6
6
  export { V as Validator } from '../shared/vite-plugin.DRRlWY8P.js';
@@ -1 +1 @@
1
- export{formatFileSize,getDateFormatParams}from"./format/index.mjs";export{checkSourceExists,copySourceToTarget,scanDirectory,writeFileContent,writeJsonReport}from"./fs/index.mjs";export{injectBeforeTag,injectHeadAndBody}from"./html/index.mjs";export{makeCallback}from"./script/index.mjs";export{ANSI}from"./ui/index.mjs";export{V as Validator}from"../shared/vite-plugin.DcExl6jd.mjs";export{validateCallbackFields,validateGlobalName,validateNoScriptInTemplate}from"./validation/index.mjs";export{s as sanitizeContent}from"../shared/vite-plugin.BPFqtmWa.mjs";import"fs";import"path";
1
+ export{formatDate,formatFileSize,getDateFormatParams,parseTemplate}from"./format/index.mjs";export{checkSourceExists,copySourceToTarget,scanDirectory,shouldUpdateFileContent,writeFileContent,writeFileSyncSafely,writeJsonReport}from"./fs/index.mjs";export{injectBeforeTag,injectHeadAndBody}from"./html/index.mjs";export{makeCallback}from"./script/index.mjs";export{ANSI}from"./ui/index.mjs";export{V as Validator}from"../shared/vite-plugin.DcExl6jd.mjs";export{validateCallbackFields,validateGlobalName,validateNoScriptInTemplate}from"./validation/index.mjs";export{e as escapeHtmlAttr,s as sanitizeContent}from"../shared/vite-plugin.CuXEJAWX.mjs";import"fs";import"path";
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const common_format_index=require("./common/format/index.cjs"),common_fs_index=require("./common/fs/index.cjs"),common_html_index=require("./common/html/index.cjs"),common_script_index=require("./common/script/index.cjs"),common_ui_index=require("./common/ui/index.cjs"),validator=require("./shared/vite-plugin.Bcg6RW2N.cjs"),common_validation_index=require("./common/validation/index.cjs"),factory_index=require("./factory/index.cjs"),logger_index=require("./logger/index.cjs"),plugins_autoImport_index=require("./plugins/autoImport/index.cjs"),plugins_buildProgress_index=require("./plugins/buildProgress/index.cjs"),plugins_bundleAnalyzer_index=require("./plugins/bundleAnalyzer/index.cjs"),plugins_compressAssets_index=require("./plugins/compressAssets/index.cjs"),plugins_copyFile_index=require("./plugins/copyFile/index.cjs"),plugins_envGuard_index=require("./plugins/envGuard/index.cjs"),plugins_faviconManager_index=require("./plugins/faviconManager/index.cjs"),plugins_generateRouter_index=require("./plugins/generateRouter/index.cjs"),plugins_generateVersion_index=require("./plugins/generateVersion/index.cjs"),plugins_htmlInject_index=require("./plugins/htmlInject/index.cjs"),plugins_loadingManager_index=require("./plugins/loadingManager/index.cjs"),plugins_versionUpdateChecker_index=require("./plugins/versionUpdateChecker/index.cjs"),security=require("./shared/vite-plugin.CnOy46d3.cjs");require("fs"),require("path"),require("node:fs"),require("node:path"),require("node:zlib"),require("node:util"),require("node:stream/promises"),require("crypto"),exports.formatFileSize=common_format_index.formatFileSize,exports.getDateFormatParams=common_format_index.getDateFormatParams,exports.checkSourceExists=common_fs_index.checkSourceExists,exports.copySourceToTarget=common_fs_index.copySourceToTarget,exports.scanDirectory=common_fs_index.scanDirectory,exports.writeFileContent=common_fs_index.writeFileContent,exports.writeJsonReport=common_fs_index.writeJsonReport,exports.injectBeforeTag=common_html_index.injectBeforeTag,exports.injectHeadAndBody=common_html_index.injectHeadAndBody,exports.makeCallback=common_script_index.makeCallback,exports.ANSI=common_ui_index.ANSI,exports.Validator=validator.Validator,exports.validateCallbackFields=common_validation_index.validateCallbackFields,exports.validateGlobalName=common_validation_index.validateGlobalName,exports.validateNoScriptInTemplate=common_validation_index.validateNoScriptInTemplate,exports.BasePlugin=factory_index.BasePlugin,exports.createPluginFactory=factory_index.createPluginFactory,exports.Logger=logger_index.Logger,exports.autoImport=plugins_autoImport_index.autoImport,exports.buildProgress=plugins_buildProgress_index.buildProgress,exports.bundleAnalyzer=plugins_bundleAnalyzer_index.bundleAnalyzer,exports.compressAssets=plugins_compressAssets_index.compressAssets,exports.copyFile=plugins_copyFile_index.copyFile,exports.envGuard=plugins_envGuard_index.envGuard,exports.faviconManager=plugins_faviconManager_index.faviconManager,exports.generateRouter=plugins_generateRouter_index.generateRouter,exports.generateVersion=plugins_generateVersion_index.generateVersion,exports.htmlInject=plugins_htmlInject_index.htmlInject,exports.loadingManager=plugins_loadingManager_index.loadingManager,exports.versionUpdateChecker=plugins_versionUpdateChecker_index.versionUpdateChecker,exports.sanitizeContent=security.sanitizeContent;
1
+ "use strict";const common_format_index=require("./common/format/index.cjs"),common_fs_index=require("./common/fs/index.cjs"),common_html_index=require("./common/html/index.cjs"),common_script_index=require("./common/script/index.cjs"),common_ui_index=require("./common/ui/index.cjs"),validator=require("./shared/vite-plugin.Bcg6RW2N.cjs"),common_validation_index=require("./common/validation/index.cjs"),factory_index=require("./factory/index.cjs"),logger_index=require("./logger/index.cjs"),plugins_autoImport_index=require("./plugins/autoImport/index.cjs"),plugins_buildProgress_index=require("./plugins/buildProgress/index.cjs"),plugins_bundleAnalyzer_index=require("./plugins/bundleAnalyzer/index.cjs"),plugins_compressAssets_index=require("./plugins/compressAssets/index.cjs"),plugins_copyFile_index=require("./plugins/copyFile/index.cjs"),plugins_envGuard_index=require("./plugins/envGuard/index.cjs"),plugins_faviconManager_index=require("./plugins/faviconManager/index.cjs"),plugins_generateRouter_index=require("./plugins/generateRouter/index.cjs"),plugins_generateVersion_index=require("./plugins/generateVersion/index.cjs"),plugins_htmlInject_index=require("./plugins/htmlInject/index.cjs"),plugins_loadingManager_index=require("./plugins/loadingManager/index.cjs"),plugins_versionUpdateChecker_index=require("./plugins/versionUpdateChecker/index.cjs"),security=require("./shared/vite-plugin.CcvHfrL8.cjs");require("fs"),require("path"),require("node:fs"),require("node:path"),require("node:zlib"),require("node:util"),require("node:stream/promises"),require("crypto"),exports.formatDate=common_format_index.formatDate,exports.formatFileSize=common_format_index.formatFileSize,exports.getDateFormatParams=common_format_index.getDateFormatParams,exports.parseTemplate=common_format_index.parseTemplate,exports.checkSourceExists=common_fs_index.checkSourceExists,exports.copySourceToTarget=common_fs_index.copySourceToTarget,exports.scanDirectory=common_fs_index.scanDirectory,exports.shouldUpdateFileContent=common_fs_index.shouldUpdateFileContent,exports.writeFileContent=common_fs_index.writeFileContent,exports.writeFileSyncSafely=common_fs_index.writeFileSyncSafely,exports.writeJsonReport=common_fs_index.writeJsonReport,exports.injectBeforeTag=common_html_index.injectBeforeTag,exports.injectHeadAndBody=common_html_index.injectHeadAndBody,exports.makeCallback=common_script_index.makeCallback,exports.ANSI=common_ui_index.ANSI,exports.Validator=validator.Validator,exports.validateCallbackFields=common_validation_index.validateCallbackFields,exports.validateGlobalName=common_validation_index.validateGlobalName,exports.validateNoScriptInTemplate=common_validation_index.validateNoScriptInTemplate,exports.BasePlugin=factory_index.BasePlugin,exports.createPluginFactory=factory_index.createPluginFactory,exports.Logger=logger_index.Logger,exports.autoImport=plugins_autoImport_index.autoImport,exports.buildProgress=plugins_buildProgress_index.buildProgress,exports.bundleAnalyzer=plugins_bundleAnalyzer_index.bundleAnalyzer,exports.compressAssets=plugins_compressAssets_index.compressAssets,exports.copyFile=plugins_copyFile_index.copyFile,exports.envGuard=plugins_envGuard_index.envGuard,exports.faviconManager=plugins_faviconManager_index.faviconManager,exports.generateRouter=plugins_generateRouter_index.generateRouter,exports.generateVersion=plugins_generateVersion_index.generateVersion,exports.htmlInject=plugins_htmlInject_index.htmlInject,exports.loadingManager=plugins_loadingManager_index.loadingManager,exports.versionUpdateChecker=plugins_versionUpdateChecker_index.versionUpdateChecker,exports.escapeHtmlAttr=security.escapeHtmlAttr,exports.sanitizeContent=security.sanitizeContent;
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- export { DateFormatOptions, formatFileSize, getDateFormatParams } from './common/format/index.cjs';
2
- export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, scanDirectory, writeFileContent, writeJsonReport } from './common/fs/index.cjs';
3
- export { SanitizeRuleOptions, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './common/html/index.cjs';
1
+ export { DateFormatOptions, formatDate, formatFileSize, getDateFormatParams, parseTemplate } from './common/format/index.cjs';
2
+ export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, scanDirectory, shouldUpdateFileContent, writeFileContent, writeFileSyncSafely, writeJsonReport } from './common/fs/index.cjs';
3
+ export { SanitizeRuleOptions, escapeHtmlAttr, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './common/html/index.cjs';
4
4
  export { makeCallback } from './common/script/index.cjs';
5
5
  export { ANSI } from './common/ui/index.cjs';
6
6
  export { V as Validator } from './shared/vite-plugin.DRRlWY8P.cjs';
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- export { DateFormatOptions, formatFileSize, getDateFormatParams } from './common/format/index.mjs';
2
- export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, scanDirectory, writeFileContent, writeJsonReport } from './common/fs/index.mjs';
3
- export { SanitizeRuleOptions, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './common/html/index.mjs';
1
+ export { DateFormatOptions, formatDate, formatFileSize, getDateFormatParams, parseTemplate } from './common/format/index.mjs';
2
+ export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, scanDirectory, shouldUpdateFileContent, writeFileContent, writeFileSyncSafely, writeJsonReport } from './common/fs/index.mjs';
3
+ export { SanitizeRuleOptions, escapeHtmlAttr, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './common/html/index.mjs';
4
4
  export { makeCallback } from './common/script/index.mjs';
5
5
  export { ANSI } from './common/ui/index.mjs';
6
6
  export { V as Validator } from './shared/vite-plugin.DRRlWY8P.mjs';
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { DateFormatOptions, formatFileSize, getDateFormatParams } from './common/format/index.js';
2
- export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, scanDirectory, writeFileContent, writeJsonReport } from './common/fs/index.js';
3
- export { SanitizeRuleOptions, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './common/html/index.js';
1
+ export { DateFormatOptions, formatDate, formatFileSize, getDateFormatParams, parseTemplate } from './common/format/index.js';
2
+ export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, scanDirectory, shouldUpdateFileContent, writeFileContent, writeFileSyncSafely, writeJsonReport } from './common/fs/index.js';
3
+ export { SanitizeRuleOptions, escapeHtmlAttr, injectBeforeTag, injectHeadAndBody, sanitizeContent } from './common/html/index.js';
4
4
  export { makeCallback } from './common/script/index.js';
5
5
  export { ANSI } from './common/ui/index.js';
6
6
  export { V as Validator } from './shared/vite-plugin.DRRlWY8P.js';
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- export{formatFileSize,getDateFormatParams}from"./common/format/index.mjs";export{checkSourceExists,copySourceToTarget,scanDirectory,writeFileContent,writeJsonReport}from"./common/fs/index.mjs";export{injectBeforeTag,injectHeadAndBody}from"./common/html/index.mjs";export{makeCallback}from"./common/script/index.mjs";export{ANSI}from"./common/ui/index.mjs";export{V as Validator}from"./shared/vite-plugin.DcExl6jd.mjs";export{validateCallbackFields,validateGlobalName,validateNoScriptInTemplate}from"./common/validation/index.mjs";export{BasePlugin,createPluginFactory}from"./factory/index.mjs";export{Logger}from"./logger/index.mjs";export{autoImport}from"./plugins/autoImport/index.mjs";export{buildProgress}from"./plugins/buildProgress/index.mjs";export{bundleAnalyzer}from"./plugins/bundleAnalyzer/index.mjs";export{compressAssets}from"./plugins/compressAssets/index.mjs";export{copyFile}from"./plugins/copyFile/index.mjs";export{envGuard}from"./plugins/envGuard/index.mjs";export{faviconManager}from"./plugins/faviconManager/index.mjs";export{generateRouter}from"./plugins/generateRouter/index.mjs";export{generateVersion}from"./plugins/generateVersion/index.mjs";export{htmlInject}from"./plugins/htmlInject/index.mjs";export{loadingManager}from"./plugins/loadingManager/index.mjs";export{versionUpdateChecker}from"./plugins/versionUpdateChecker/index.mjs";export{s as sanitizeContent}from"./shared/vite-plugin.BPFqtmWa.mjs";import"fs";import"path";import"node:fs";import"node:path";import"node:zlib";import"node:util";import"node:stream/promises";import"crypto";
1
+ export{formatDate,formatFileSize,getDateFormatParams,parseTemplate}from"./common/format/index.mjs";export{checkSourceExists,copySourceToTarget,scanDirectory,shouldUpdateFileContent,writeFileContent,writeFileSyncSafely,writeJsonReport}from"./common/fs/index.mjs";export{injectBeforeTag,injectHeadAndBody}from"./common/html/index.mjs";export{makeCallback}from"./common/script/index.mjs";export{ANSI}from"./common/ui/index.mjs";export{V as Validator}from"./shared/vite-plugin.DcExl6jd.mjs";export{validateCallbackFields,validateGlobalName,validateNoScriptInTemplate}from"./common/validation/index.mjs";export{BasePlugin,createPluginFactory}from"./factory/index.mjs";export{Logger}from"./logger/index.mjs";export{autoImport}from"./plugins/autoImport/index.mjs";export{buildProgress}from"./plugins/buildProgress/index.mjs";export{bundleAnalyzer}from"./plugins/bundleAnalyzer/index.mjs";export{compressAssets}from"./plugins/compressAssets/index.mjs";export{copyFile}from"./plugins/copyFile/index.mjs";export{envGuard}from"./plugins/envGuard/index.mjs";export{faviconManager}from"./plugins/faviconManager/index.mjs";export{generateRouter}from"./plugins/generateRouter/index.mjs";export{generateVersion}from"./plugins/generateVersion/index.mjs";export{htmlInject}from"./plugins/htmlInject/index.mjs";export{loadingManager}from"./plugins/loadingManager/index.mjs";export{versionUpdateChecker}from"./plugins/versionUpdateChecker/index.mjs";export{e as escapeHtmlAttr,s as sanitizeContent}from"./shared/vite-plugin.CuXEJAWX.mjs";import"fs";import"path";import"node:fs";import"node:path";import"node:zlib";import"node:util";import"node:stream/promises";import"crypto";
@@ -1,4 +1,4 @@
1
- "use strict";const factory_index=require("../../factory/index.cjs"),p=require("node:fs"),i=require("node:path");require("../../logger/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs");function _interopDefaultCompat(s){return s&&typeof s=="object"&&"default"in s?s.default:s}const p__default=_interopDefaultCompat(p),i__default=_interopDefaultCompat(i);function resolveImports(s){if(!s)return[];const e=[];if(Array.isArray(s))for(const t of s)if("module"in t&&"names"in t){const n=t;for(const o of n.names)e.push({module:n.module,name:o,isDefault:n.defaultImport??!1})}else{const n=t;for(const[o,r]of Object.entries(n))for(const a of r)e.push({module:o,name:a,isDefault:!1})}else for(const[t,n]of Object.entries(s))for(const o of n)e.push({module:t,name:o,isDefault:!1});return e}function buildNameLookup(s){const e=new Map;for(const t of s)e.set(t.name,t);return e}function h(s){const e=i__default.basename(s,i__default.extname(s));return e==="index"?i__default.basename(i__default.dirname(s)):e}function scanDirectories(s,e){const t=[];for(const n of s){const o=i__default.isAbsolute(n)?n:i__default.resolve(e,n);!p__default.existsSync(o)||!p__default.statSync(o).isDirectory()||f$1(o,t)}return t}function f$1(s,e){const t=p__default.readdirSync(s,{withFileTypes:!0});for(const n of t){const o=i__default.join(s,n.name);if(n.isDirectory()){if(n.name==="node_modules"||n.name.startsWith("."))continue;f$1(o,e);continue}if(!n.isFile())continue;const r=i__default.extname(n.name).toLowerCase();if(![".ts",".js",".mts",".mjs"].includes(r)||n.name.endsWith(".d.ts"))continue;const a=parseModuleExports(o);a&&e.push(a)}}function parseModuleExports(s){try{const e=p__default.readFileSync(s,"utf-8"),t=[];let n=null;const o=/export\s+(?:async\s+)?function\s+(\w+)/g;let r;for(;(r=o.exec(e))!==null;)t.push(r[1]);const a=/export\s+(?:const|let|var)\s+(\w+)/g;for(;(r=a.exec(e))!==null;)t.push(r[1]);const u=/export\s+class\s+(\w+)/g;for(;(r=u.exec(e))!==null;)t.push(r[1]);const l=/export\s*\{([^}]+)\}/g;for(;(r=l.exec(e))!==null;){const S=r[1].split(",").map(m=>{const v=m.trim().split(/\s+as\s+/);return v.length>1?v[v.length-1].trim():v[0].trim()});for(const m of S)m&&m!=="default"&&t.push(m)}const c=/export\s+default\s+(?:function\s+(\w+)|class\s+(\w+)|(\w+))?/.exec(e);c&&(n=c[1]||c[2]||c[3]||h(s));const $=/export\s+(?:type|interface)\s+(\w+)/g;for(;(r=$.exec(e))!==null;)t.push(r[1]);return t.length===0&&n===null?null:{filePath:s,exports:t,defaultExport:n}}catch{return null}}function scannedModulesToImports(s){const e=[];for(const t of s){for(const n of t.exports)e.push({module:t.filePath,name:n,isDefault:!1});t.defaultExport&&e.push({module:t.filePath,name:t.defaultExport,isDefault:!0})}return e}const g=new Set(["break","case","catch","continue","debugger","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","this","throw","try","typeof","var","void","while","with","class","const","enum","export","extends","import","super","implements","interface","let","package","private","protected","public","static","yield","async","await","of","true","false","null","undefined","NaN","Infinity","console","window","document","global","globalThis","process","require","module","exports","__dirname","__filename","Object","Array","String","Number","Boolean","Symbol","BigInt","Map","Set","WeakMap","WeakSet","Promise","Proxy","Reflect","Error","TypeError","RangeError","SyntaxError","ReferenceError","Date","RegExp","Math","JSON","Intl","ArrayBuffer","DataView","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray"]);function y(s){const e=[];let t=0;const n=s.length;for(;t<n;){if(s[t]==="/"&&s[t+1]==="/"){for(;t<n&&s[t]!==`
1
+ "use strict";const factory_index=require("../../factory/index.cjs"),u=require("node:fs"),l=require("node:path"),common_fs_index=require("../../common/fs/index.cjs");require("../../logger/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs"),require("fs"),require("path");function _interopDefaultCompat(s){return s&&typeof s=="object"&&"default"in s?s.default:s}const u__default=_interopDefaultCompat(u),l__default=_interopDefaultCompat(l);function h$1(s,e){const t=v(s,e);if(t.length>0)return t;const n=l__default.isAbsolute(s)?s:l__default.resolve(e,s),o=["",".ts",".js",".mts",".mjs","/index.ts","/index.js"];for(const c of o){const r=n+c;if(u__default.existsSync(r)&&u__default.statSync(r).isFile()){const a=parseModuleExports(r);if(a&&a.exports.length>0)return a.exports}}const i=R$1(s,e);if(i){const c=parseModuleExports(i);if(c&&c.exports.length>0)return c.exports}return[]}function v(s,e){try{let t=null;try{const r=require.resolve(s,{paths:[e]});let a=l__default.dirname(r);for(;a!==l__default.dirname(a);){if(u__default.existsSync(l__default.join(a,"package.json"))){t=a;break}a=l__default.dirname(a)}}catch{}if(!t){const r=l__default.resolve(e,"node_modules",s);u__default.existsSync(l__default.join(r,"package.json"))&&(t=r)}if(!t)return[];const n=l__default.join(t,"package.json"),o=JSON.parse(u__default.readFileSync(n,"utf-8"));let i=null;const c=o.types||o.typings;if(c&&typeof c=="string"){const r=l__default.resolve(t,c);u__default.existsSync(r)&&(i=r)}if(!i&&o.exports){const r=o.exports["."];if(r){const a=typeof r=="string"?null:r.import?.types||r.types||r.default?.types;if(typeof a=="string"){const p=l__default.resolve(t,a);u__default.existsSync(p)&&(i=p)}}}if(!i){const r=["dist/index.d.ts","index.d.ts","dist/index.d.mts","index.d.mts"];for(const a of r){const p=l__default.resolve(t,a);if(u__default.existsSync(p)){i=p;break}}}return i?E(i,e,new Set):[]}catch{return[]}}function E(s,e,t){if(t.has(s))return[];t.add(s);const n=new Set;try{const o=u__default.readFileSync(s,"utf-8"),i=/export\s*\{([^}]+)\}/g;let c;for(;(c=i.exec(o))!==null;){const $=c[1].split(",").map(m=>{const x=m.trim().split(/\s+as\s+/);return x.length>1?x[x.length-1].trim():x[0].trim()});for(const m of $)m&&m!=="default"&&n.add(m)}const r=/export\s+declare\s+(?:const|let|var|function|class)\s+(\w+)/g;for(;(c=r.exec(o))!==null;)n.add(c[1]);const a=/export\s+(?:type|interface)\s+(\w+)/g;for(;(c=a.exec(o))!==null;)n.add(c[1]);const p=/export\s+\*\s+from\s+['"]([^'"]+)['"]/g;for(;(c=p.exec(o))!==null;){const $=c[1],m=w($,s,e,t);for(const x of m)n.add(x)}}catch{}return[...n]}function w(s,e,t,n){if(s.startsWith(".")){const o=l__default.dirname(e),i=[".d.ts",".d.mts","/index.d.ts","/index.d.mts"];for(const c of i){const r=l__default.resolve(o,s+c);if(u__default.existsSync(r))return E(r,t,n)}}return v(s,t)}function R$1(s,e){try{const t=require.resolve(s,{paths:[e]});if(u__default.existsSync(t))return t}catch{}try{let t=null;try{const c=require.resolve(s,{paths:[e]});let r=l__default.dirname(c);for(;r!==l__default.dirname(r);){if(u__default.existsSync(l__default.join(r,"package.json"))){t=r;break}r=l__default.dirname(r)}}catch{}if(!t){const c=l__default.resolve(e,"node_modules",s);u__default.existsSync(l__default.join(c,"package.json"))&&(t=c)}if(!t)return null;const n=l__default.join(t,"package.json"),o=JSON.parse(u__default.readFileSync(n,"utf-8"));if(o.exports){const c=typeof o.exports=="string"?o.exports:o.exports["."]?.import||o.exports["."]?.default||o.exports["."];if(typeof c=="string"){const r=l__default.resolve(t,c);if(u__default.existsSync(r))return r}}if(o.main){const c=l__default.resolve(t,o.main);if(u__default.existsSync(c))return c}const i=l__default.resolve(t,"index.js");return u__default.existsSync(i)?i:null}catch{return null}}function resolveImports(s,e){if(!s)return[];const t=[];if(Array.isArray(s))for(const n of s)if("module"in n&&"names"in n){const o=n;if(o.names.includes("*")){const i=e||process.cwd(),c=h$1(o.module,i);for(const r of c)t.push({module:o.module,name:r,isDefault:o.defaultImport??!1})}else for(const i of o.names)t.push({module:o.module,name:i,isDefault:o.defaultImport??!1})}else{const o=n;for(const[i,c]of Object.entries(o))if(c.includes("*")){const r=e||process.cwd(),a=h$1(i,r);for(const p of a)t.push({module:i,name:p,isDefault:!1})}else for(const r of c)t.push({module:i,name:r,isDefault:!1})}else for(const[n,o]of Object.entries(s))if(o.includes("*")){const i=e||process.cwd(),c=h$1(n,i);for(const r of c)t.push({module:n,name:r,isDefault:!1})}else for(const i of o)t.push({module:n,name:i,isDefault:!1});return t}function buildNameLookup(s){const e=new Map;for(const t of s)e.set(t.name,t);return e}function j$1(s){const e=l__default.basename(s,l__default.extname(s));return e==="index"?l__default.basename(l__default.dirname(s)):e}function scanDirectories(s,e){const t=[];for(const n of s){const o=l__default.isAbsolute(n)?n:l__default.resolve(e,n);!u__default.existsSync(o)||!u__default.statSync(o).isDirectory()||S(o,t)}return t}function S(s,e){const t=u__default.readdirSync(s,{withFileTypes:!0});for(const n of t){const o=l__default.join(s,n.name);if(n.isDirectory()){if(n.name==="node_modules"||n.name.startsWith("."))continue;S(o,e);continue}if(!n.isFile())continue;const i=l__default.extname(n.name).toLowerCase();if(![".ts",".js",".mts",".mjs"].includes(i)||n.name.endsWith(".d.ts"))continue;const c=parseModuleExports(o);c&&e.push(c)}}function parseModuleExports(s){try{const e=u__default.readFileSync(s,"utf-8"),t=[];let n=null;const o=/export\s+(?:async\s+)?function\s+(\w+)/g;let i;for(;(i=o.exec(e))!==null;)t.push(i[1]);const c=/export\s+(?:const|let|var)\s+(\w+)/g;for(;(i=c.exec(e))!==null;)t.push(i[1]);const r=/export\s+class\s+(\w+)/g;for(;(i=r.exec(e))!==null;)t.push(i[1]);const a=/export\s*\{([^}]+)\}/g;for(;(i=a.exec(e))!==null;){const x=i[1].split(",").map(A=>{const g=A.trim().split(/\s+as\s+/);return g.length>1?g[g.length-1].trim():g[0].trim()});for(const A of x)A&&A!=="default"&&t.push(A)}const p=/export\s+default\s+(?:function\s+(\w+)|class\s+(\w+)|(\w+))?/.exec(e);p&&(n=p[1]||p[2]||p[3]||j$1(s));const $=/export\s+(?:type|interface)\s+(\w+)/g;for(;(i=$.exec(e))!==null;)t.push(i[1]);const m=/^(?:exports\.(\w+)\s*=|module\.exports\s*=\s*\{)/gm;for(;(i=m.exec(e))!==null;)i[1]&&t.push(i[1]);return t.length===0&&n===null?null:{filePath:s,exports:t,defaultExport:n}}catch{return null}}function scannedModulesToImports(s){const e=[];for(const t of s){for(const n of t.exports)e.push({module:t.filePath,name:n,isDefault:!1});t.defaultExport&&e.push({module:t.filePath,name:t.defaultExport,isDefault:!0})}return e}const h=new Set(["break","case","catch","continue","debugger","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","this","throw","try","typeof","var","void","while","with","class","const","enum","export","extends","import","super","implements","interface","let","package","private","protected","public","static","yield","async","await","of","true","false","null","undefined","NaN","Infinity","console","window","document","global","globalThis","process","require","module","exports","__dirname","__filename","Object","Array","String","Number","Boolean","Symbol","BigInt","Map","Set","WeakMap","WeakSet","Promise","Proxy","Reflect","Error","TypeError","RangeError","SyntaxError","ReferenceError","Date","RegExp","Math","JSON","Intl","ArrayBuffer","DataView","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray"]);function b(s){const e=[];let t=0;const n=s.length;for(;t<n;){if(s[t]==="/"&&s[t+1]==="/"){for(;t<n&&s[t]!==`
2
2
  `;)e.push(" "),t++;continue}if(s[t]==="/"&&s[t+1]==="*"){for(e.push(" "),e.push(" "),t+=2;t<n&&!(s[t-1]==="*"&&s[t]==="/");)e.push(s[t]===`
3
3
  `?`
4
4
  `:" "),t++;t<n&&(e.push(" "),t++);continue}if(s[t]==="'"){for(e.push(" "),t++;t<n&&s[t]!=="'";){if(s[t]==="\\"&&t+1<n){e.push(" "),e.push(" "),t+=2;continue}e.push(s[t]===`
@@ -7,11 +7,13 @@
7
7
  `?`
8
8
  `:" "),t++}t<n&&(e.push(" "),t++);continue}if(s[t]==="`"){for(e.push(" "),t++;t<n&&s[t]!=="`";){if(s[t]==="\\"&&t+1<n){e.push(" "),e.push(" "),t+=2;continue}if(s[t]==="$"&&s[t+1]==="{"){e.push(" "),e.push(" "),t+=2;let o=1;for(;t<n&&o>0;)s[t]==="{"&&o++,s[t]==="}"&&o--,o>0&&(e.push(s[t]),t++);t<n&&(e.push(" "),t++);continue}e.push(s[t]===`
9
9
  `?`
10
- `:" "),t++}t<n&&(e.push(" "),t++);continue}e.push(s[t]),t++}return e.join("")}function f(s){return s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function detectUsedImports(s,e,t){const n=[],o=new Set,r=y(s),a=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;let u;for(;(u=a.exec(r))!==null;){const l=u[1];if(g.has(l)||o.has(l)||t.has(l))continue;const c=e.get(l);c&&(o.add(l),n.push(c))}return n}function isAlreadyImported(s,e){return!!(new RegExp(`import\\s*\\{[^}]*\\b${f(e)}\\b[^}]*\\}\\s*from`,"m").test(s)||new RegExp(`import\\s+${f(e)}\\s+from`,"m").test(s)||new RegExp(`import\\s*\\*\\s*as\\s+${f(e)}\\s+from`,"m").test(s))}function generateImportStatements(s){const e=new Map;for(const n of s){e.has(n.module)||e.set(n.module,{named:[],default_:null});const o=e.get(n.module);n.isDefault?o.default_===null&&(o.default_=n.name):o.named.includes(n.name)||o.named.push(n.name)}const t=[];for(const[n,o]of e){const r=[];o.default_&&r.push(o.default_),o.named.length>0&&r.push(`{ ${o.named.join(", ")} }`),r.length>0&&t.push(`import ${r.join(", ")} from '${n}'`)}return t.join(`
10
+ `:" "),t++}t<n&&(e.push(" "),t++);continue}e.push(s[t]),t++}return e.join("")}function f(s){return s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function detectUsedImports(s,e,t){const n=[],o=new Set,i=b(s),c=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;let r;for(;(r=c.exec(i))!==null;){const a=r[1];if(h.has(a)||o.has(a)||t.has(a))continue;const p=e.get(a);p&&(o.add(a),n.push(p))}return n}function isAlreadyImported(s,e){return!!(new RegExp(`import\\s*\\{[^}]*\\b${f(e)}\\b[^}]*\\}\\s*from`,"m").test(s)||new RegExp(`import\\s+${f(e)}\\s+from`,"m").test(s)||new RegExp(`import\\s*\\*\\s*as\\s+${f(e)}\\s+from`,"m").test(s))}function generateImportStatements(s){const e=new Map;for(const n of s){e.has(n.module)||e.set(n.module,{named:[],default_:null});const o=e.get(n.module);n.isDefault?o.default_===null&&(o.default_=n.name):o.named.includes(n.name)||o.named.push(n.name)}const t=[];for(const[n,o]of e){const i=[];o.default_&&i.push(o.default_),o.named.length>0&&i.push(`{ ${o.named.join(", ")} }`),i.length>0&&t.push(`import ${i.join(", ")} from '${n}'`)}return t.join(`
11
11
  `)}function injectImports(s,e,t){if(!e.trim())return s;if(t==="top")return d(s,e);const n=findLastImportEnd(s);return n===-1?d(s,e):s.slice(0,n)+`
12
12
  `+e+`
13
13
  `+s.slice(n)}function d(s,e){let t=0;if(s.startsWith("#!")){const o=s.indexOf(`
14
14
  `);o!==-1?t=o+1:t=s.length}const n=s.slice(t).match(/^\s*["']use strict["'];?\s*\n?/);return n&&(t+=n[0].length),s.slice(0,t)+e+`
15
- `+s.slice(t)}function findLastImportEnd(s){let e=-1;const t=/^import\s+[\s\S]+?from\s+['"][^'"]+['"];?\s*$/gm;let n;for(;(n=t.exec(s))!==null;){const o=n.index+n[0].length;o>e&&(e=o)}return e}function detectVueTemplateImports(s,e,t){const n=s.match(/<template[^>]*>([\s\S]*?)<\/template>/);if(!n)return[];const o=n[1],r=[],a=/\{\{([\s\S]*?)\}\}/g;let u;for(;(u=a.exec(o))!==null;)r.push(u[1]);const l=/(?:v-[\w-]+|:[\w-]+|@[\w-]+)(?:\.[\w-]+)*="([^"]*)"/g;for(;(u=l.exec(o))!==null;)r.push(u[1]);const c=/v-model="([^"]*)"/g;for(;(u=c.exec(o))!==null;)r.push(u[1]);if(r.length===0)return[];const $=r.join(`
16
- `),S=[],m=new Set,v=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;for(;(u=v.exec($))!==null;){const x=u[1];if(m.has(x)||t.has(x)||g.has(x)||R(x)||I(x))continue;const A=e.get(x);A&&(m.add(x),S.push(A))}return S}const b=new Set(["div","span","p","a","img","ul","ol","li","h1","h2","h3","h4","h5","h6","table","tr","td","th","thead","tbody","form","input","button","select","option","textarea","label","section","article","header","footer","nav","main","aside","script","style","link","meta","title","head","body","html","br","hr","pre","code","em","strong","b","i","u","sub","sup","small","mark","del","ins","blockquote","q","cite","abbr","dfn","kbd","samp","var","time","figure","figcaption","details","summary","dialog","menu","template","slot","component","transition","transition-group","keep-alive","teleport","suspense","video","audio","source","canvas","svg","path","circle","rect","line","polygon","iframe","embed","object","picture","area","map","base","col","colgroup","datalist","fieldset","legend","meter","optgroup","output","progress","ruby","rt","rp","wbr"]);function R(s){return b.has(s.toLowerCase())}function I(s){return s.startsWith("v")&&s.length>1&&s[1]===s[1].toUpperCase()}function generateDtsContent(s){const e=[];e.push("// Auto generated by @meng-xi/vite-plugin autoImport"),e.push("// @ts-nocheck"),e.push("export {}"),e.push("");const t=new Map;for(const n of s)t.has(n.module)||t.set(n.module,[]),t.get(n.module).push(n);e.push("declare global {");for(const[n,o]of t){e.push(` // from '${n}'`);for(const r of o)r.isDefault?e.push(` const ${r.name}: typeof import('${n}')['default']`):e.push(` const ${r.name}: typeof import('${n}')['${r.name}']`);e.push("")}return e.push("}"),e.join(`
17
- `)}function writeDtsFile(s,e){const t=i__default.dirname(s);p__default.existsSync(t)||p__default.mkdirSync(t,{recursive:!0}),p__default.writeFileSync(s,e,"utf-8")}function shouldUpdateDts(s,e){if(!p__default.existsSync(s))return!0;try{return p__default.readFileSync(s,"utf-8")!==e}catch{return!0}}class w extends factory_index.BasePlugin{nameLookup=new Map;allResolvedImports=[];ignoreSet=new Set;initialized=!1;getDefaultOptions(){return{imports:{},dirs:[],dts:"auto-imports.d.ts",vueTemplate:!1,ignore:[],fileFilter:/\.(vue|jsx|tsx|ts|js|mjs)$/,injectAtPosition:"top"}}validateOptions(){this.validator.field("dts").custom(e=>e===!1||typeof e=="string","dts \u5FC5\u987B\u4E3A false \u6216\u5B57\u7B26\u4E32\u8DEF\u5F84").field("vueTemplate").boolean().field("injectAtPosition").enum(["top","after-last-import"]).validate()}getPluginName(){return"auto-import"}addPluginHooks(e){e.configResolved=()=>{this.initialize()},e.transform={order:"pre",handler:(t,n)=>!this.initialized||!this.options.fileFilter.test(n)?null:this.transformCode(t,n)},e.buildEnd=()=>{this.options.dts&&this.initialized&&this.generateDts()}}initialize(){const e=resolveImports(this.options.imports),t=this.viteConfig?.root||process.cwd(),n=scanDirectories(this.options.dirs,t),o=scannedModulesToImports(n);this.allResolvedImports=[...e,...o],this.nameLookup=buildNameLookup(this.allResolvedImports),this.ignoreSet=new Set(this.options.ignore),this.initialized=!0,this.logger.info(`\u521D\u59CB\u5316\u5B8C\u6210: ${this.allResolvedImports.length} \u4E2A\u81EA\u52A8\u5BFC\u5165\u6620\u5C04, ${n.length} \u4E2A\u626B\u63CF\u6A21\u5757`),this.options.dts&&this.generateDts()}transformCode(e,t){let n=detectUsedImports(e,this.nameLookup,this.ignoreSet);if(this.options.vueTemplate&&t.endsWith(".vue")){const r=detectVueTemplateImports(e,this.nameLookup,this.ignoreSet),a=new Set(n.map(u=>u.name));for(const u of r)a.has(u.name)||(a.add(u.name),n.push(u))}if(n=n.filter(r=>!isAlreadyImported(e,r.name)),n.length===0)return null;const o=generateImportStatements(n);return{code:injectImports(e,o,this.options.injectAtPosition)}}generateDts(){if(this.allResolvedImports.length===0)return;const e=this.viteConfig?.root||process.cwd(),t=i__default.isAbsolute(this.options.dts)?this.options.dts:i__default.resolve(e,this.options.dts),n=generateDtsContent(this.allResolvedImports);shouldUpdateDts(t,n)&&this.safeExecuteSync(()=>{writeDtsFile(t,n),this.logger.info(`\u7C7B\u578B\u58F0\u660E\u6587\u4EF6\u5DF2\u751F\u6210: ${this.options.dts}`)},"\u751F\u6210\u7C7B\u578B\u58F0\u660E\u6587\u4EF6")}getResolvedImports(){return[...this.allResolvedImports]}getNameLookup(){return new Map(this.nameLookup)}}const autoImport=factory_index.createPluginFactory(w);exports.autoImport=autoImport;
15
+ `+s.slice(t)}function findLastImportEnd(s){let e=-1;const t=/^import\s+[\s\S]+?from\s+['"][^'"]+['"];?\s*$/gm;let n;for(;(n=t.exec(s))!==null;){const o=n.index+n[0].length;o>e&&(e=o)}return e}function detectVueTemplateImports(s,e,t){const n=s.match(/<template[^>]*>([\s\S]*?)<\/template>/);if(!n)return[];const o=n[1],i=[],c=/\{\{([\s\S]*?)\}\}/g;let r;for(;(r=c.exec(o))!==null;)i.push(r[1]);const a=/(?:v-[\w-]+|:[\w-]+|@[\w-]+)(?:\.[\w-]+)*="([^"]*)"/g;for(;(r=a.exec(o))!==null;)i.push(r[1]);const p=/v-model="([^"]*)"/g;for(;(r=p.exec(o))!==null;)i.push(r[1]);if(i.length===0)return[];const $=i.join(`
16
+ `),m=[],x=new Set,A=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;for(;(r=A.exec($))!==null;){const g=r[1];if(x.has(g)||t.has(g)||h.has(g)||R(g)||I(g))continue;const k=e.get(g);k&&(x.add(g),m.push(k))}return m}const y=new Set(["div","span","p","a","img","ul","ol","li","h1","h2","h3","h4","h5","h6","table","tr","td","th","thead","tbody","form","input","button","select","option","textarea","label","section","article","header","footer","nav","main","aside","script","style","link","meta","title","head","body","html","br","hr","pre","code","em","strong","b","i","u","sub","sup","small","mark","del","ins","blockquote","q","cite","abbr","dfn","kbd","samp","var","time","figure","figcaption","details","summary","dialog","menu","template","slot","component","transition","transition-group","keep-alive","teleport","suspense","video","audio","source","canvas","svg","path","circle","rect","line","polygon","iframe","embed","object","picture","area","map","base","col","colgroup","datalist","fieldset","legend","meter","optgroup","output","progress","ruby","rt","rp","wbr"]);function R(s){return y.has(s.toLowerCase())}function injectIntoScriptSetup(s,e){if(!e.trim())return s;const t=s.match(/<script\s+setup[^>]*>/);if(!t)return s;const n=t.index+t[0].length;return s.slice(0,n)+`
17
+ `+e+`
18
+ `+s.slice(n)}function isRawSfc(s){return/<script[\s>]/.test(s)}function I(s){return s.startsWith("v")&&s.length>1&&s[1]===s[1].toUpperCase()}function generateDtsContent(s){const e=[];e.push("// Auto generated by @meng-xi/vite-plugin autoImport"),e.push("// @ts-nocheck"),e.push("export {}"),e.push("");const t=new Map;for(const c of s)t.has(c.module)||t.set(c.module,[]),t.get(c.module).push(c);const n=new Set,o=new Map,i=[...t.entries()].reverse();for(const[c,r]of i){const a=[];for(const p of r)n.has(p.name)||(n.add(p.name),a.push(p));a.length>0&&o.set(c,a)}e.push("declare global {");for(const c of t.keys()){const r=o.get(c);if(r){e.push(` // from '${c}'`);for(const a of r)a.isDefault?e.push(` const ${a.name}: typeof import('${c}')['default']`):e.push(` const ${a.name}: typeof import('${c}')['${a.name}']`);e.push("")}}return e.push("}"),e.join(`
19
+ `)}function writeDtsFile(s,e){common_fs_index.writeFileSyncSafely(s,e)}function shouldUpdateDts(s,e){return common_fs_index.shouldUpdateFileContent(s,e)}class j extends factory_index.BasePlugin{nameLookup=new Map;allResolvedImports=[];ignoreSet=new Set;initialized=!1;getDefaultOptions(){return{imports:{},dirs:[],dts:"src/auto-imports.d.ts",vueTemplate:!1,ignore:[],fileFilter:/^(?!.*node_modules).*\.(vue|jsx|tsx|ts|js|mjs)$/,injectAtPosition:"top"}}validateOptions(){this.validator.field("dts").custom(e=>e===!1||e===!0||typeof e=="string","dts \u5FC5\u987B\u4E3A false\u3001true \u6216\u5B57\u7B26\u4E32\u8DEF\u5F84").field("vueTemplate").boolean().field("injectAtPosition").enum(["top","after-last-import"]).validate()}getPluginName(){return"auto-import"}addPluginHooks(e){e.configResolved=()=>{this.initialize()},e.transform={order:"pre",handler:(t,n)=>!this.initialized||!this.options.fileFilter.test(n)?null:this.transformCode(t,n)},e.buildEnd=()=>{this.options.dts&&this.initialized&&this.generateDts()}}initialize(){const e=this.viteConfig?.root||process.cwd(),t=resolveImports(this.options.imports,e),n=scanDirectories(this.options.dirs,e),o=scannedModulesToImports(n);this.allResolvedImports=[...t,...o],this.nameLookup=buildNameLookup(this.allResolvedImports),this.ignoreSet=new Set(this.options.ignore),this.initialized=!0,this.logger.info(`\u521D\u59CB\u5316\u5B8C\u6210: ${this.allResolvedImports.length} \u4E2A\u81EA\u52A8\u5BFC\u5165\u6620\u5C04, ${n.length} \u4E2A\u626B\u63CF\u6A21\u5757`),this.options.dts&&this.generateDts()}transformCode(e,t){const n=t.endsWith(".vue")&&isRawSfc(e);let o=detectUsedImports(e,this.nameLookup,this.ignoreSet);if(this.options.vueTemplate&&n){const c=detectVueTemplateImports(e,this.nameLookup,this.ignoreSet),r=new Set(o.map(a=>a.name));for(const a of c)r.has(a.name)||(r.add(a.name),o.push(a))}if(o=o.filter(c=>!isAlreadyImported(e,c.name)),o.length===0)return null;const i=generateImportStatements(o);return{code:n?injectIntoScriptSetup(e,i):injectImports(e,i,this.options.injectAtPosition)}}generateDts(){if(this.allResolvedImports.length===0)return;const e=this.viteConfig?.root||process.cwd(),t=typeof this.options.dts=="string"?this.options.dts:"src/auto-imports.d.ts",n=l__default.isAbsolute(t)?t:l__default.resolve(e,t),o=generateDtsContent(this.allResolvedImports);shouldUpdateDts(n,o)&&this.safeExecuteSync(()=>{writeDtsFile(n,o),this.logger.info(`\u7C7B\u578B\u58F0\u660E\u6587\u4EF6\u5DF2\u751F\u6210: ${this.options.dts}`)},"\u751F\u6210\u7C7B\u578B\u58F0\u660E\u6587\u4EF6")}getResolvedImports(){return[...this.allResolvedImports]}getNameLookup(){return new Map(this.nameLookup)}}const autoImport=factory_index.createPluginFactory(j);exports.autoImport=autoImport;
@@ -1,4 +1,4 @@
1
- import{createPluginFactory as S,BasePlugin as $}from"../../factory/index.mjs";import p from"node:fs";import a from"node:path";import"../../logger/index.mjs";import"../../shared/vite-plugin.DcExl6jd.mjs";function A(s){if(!s)return[];const e=[];if(Array.isArray(s))for(const t of s)if("module"in t&&"names"in t){const n=t;for(const o of n.names)e.push({module:n.module,name:o,isDefault:n.defaultImport??!1})}else{const n=t;for(const[o,r]of Object.entries(n))for(const u of r)e.push({module:o,name:u,isDefault:!1})}else for(const[t,n]of Object.entries(s))for(const o of n)e.push({module:t,name:o,isDefault:!1});return e}function E(s){const e=new Map;for(const t of s)e.set(t.name,t);return e}function I(s){const e=a.basename(s,a.extname(s));return e==="index"?a.basename(a.dirname(s)):e}function F(s,e){const t=[];for(const n of s){const o=a.isAbsolute(n)?n:a.resolve(e,n);!p.existsSync(o)||!p.statSync(o).isDirectory()||w(o,t)}return t}function w(s,e){const t=p.readdirSync(s,{withFileTypes:!0});for(const n of t){const o=a.join(s,n.name);if(n.isDirectory()){if(n.name==="node_modules"||n.name.startsWith("."))continue;w(o,e);continue}if(!n.isFile())continue;const r=a.extname(n.name).toLowerCase();if(![".ts",".js",".mts",".mjs"].includes(r)||n.name.endsWith(".d.ts"))continue;const u=D(o);u&&e.push(u)}}function D(s){try{const e=p.readFileSync(s,"utf-8"),t=[];let n=null;const o=/export\s+(?:async\s+)?function\s+(\w+)/g;let r;for(;(r=o.exec(e))!==null;)t.push(r[1]);const u=/export\s+(?:const|let|var)\s+(\w+)/g;for(;(r=u.exec(e))!==null;)t.push(r[1]);const i=/export\s+class\s+(\w+)/g;for(;(r=i.exec(e))!==null;)t.push(r[1]);const l=/export\s*\{([^}]+)\}/g;for(;(r=l.exec(e))!==null;){const d=r[1].split(",").map(f=>{const h=f.trim().split(/\s+as\s+/);return h.length>1?h[h.length-1].trim():h[0].trim()});for(const f of d)f&&f!=="default"&&t.push(f)}const c=/export\s+default\s+(?:function\s+(\w+)|class\s+(\w+)|(\w+))?/.exec(e);c&&(n=c[1]||c[2]||c[3]||I(s));const g=/export\s+(?:type|interface)\s+(\w+)/g;for(;(r=g.exec(e))!==null;)t.push(r[1]);return t.length===0&&n===null?null:{filePath:s,exports:t,defaultExport:n}}catch{return null}}function j(s){const e=[];for(const t of s){for(const n of t.exports)e.push({module:t.filePath,name:n,isDefault:!1});t.defaultExport&&e.push({module:t.filePath,name:t.defaultExport,isDefault:!0})}return e}const b=new Set(["break","case","catch","continue","debugger","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","this","throw","try","typeof","var","void","while","with","class","const","enum","export","extends","import","super","implements","interface","let","package","private","protected","public","static","yield","async","await","of","true","false","null","undefined","NaN","Infinity","console","window","document","global","globalThis","process","require","module","exports","__dirname","__filename","Object","Array","String","Number","Boolean","Symbol","BigInt","Map","Set","WeakMap","WeakSet","Promise","Proxy","Reflect","Error","TypeError","RangeError","SyntaxError","ReferenceError","Date","RegExp","Math","JSON","Intl","ArrayBuffer","DataView","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray"]);function k(s){const e=[];let t=0;const n=s.length;for(;t<n;){if(s[t]==="/"&&s[t+1]==="/"){for(;t<n&&s[t]!==`
1
+ import{createPluginFactory as k,BasePlugin as I}from"../../factory/index.mjs";import f from"node:fs";import c from"node:path";import{shouldUpdateFileContent as E,writeFileSyncSafely as F}from"../../common/fs/index.mjs";import"../../logger/index.mjs";import"../../shared/vite-plugin.DcExl6jd.mjs";import"fs";import"path";function x(s,e){const t=v(s,e);if(t.length>0)return t;const n=c.isAbsolute(s)?s:c.resolve(e,s),o=["",".ts",".js",".mts",".mjs","/index.ts","/index.js"];for(const u of o){const r=n+u;if(f.existsSync(r)&&f.statSync(r).isFile()){const l=y(r);if(l&&l.exports.length>0)return l.exports}}const i=R(s,e);if(i){const u=y(i);if(u&&u.exports.length>0)return u.exports}return[]}function v(s,e){try{let t=null;try{const r=require.resolve(s,{paths:[e]});let l=c.dirname(r);for(;l!==c.dirname(l);){if(f.existsSync(c.join(l,"package.json"))){t=l;break}l=c.dirname(l)}}catch{}if(!t){const r=c.resolve(e,"node_modules",s);f.existsSync(c.join(r,"package.json"))&&(t=r)}if(!t)return[];const n=c.join(t,"package.json"),o=JSON.parse(f.readFileSync(n,"utf-8"));let i=null;const u=o.types||o.typings;if(u&&typeof u=="string"){const r=c.resolve(t,u);f.existsSync(r)&&(i=r)}if(!i&&o.exports){const r=o.exports["."];if(r){const l=typeof r=="string"?null:r.import?.types||r.types||r.default?.types;if(typeof l=="string"){const a=c.resolve(t,l);f.existsSync(a)&&(i=a)}}}if(!i){const r=["dist/index.d.ts","index.d.ts","dist/index.d.mts","index.d.mts"];for(const l of r){const a=c.resolve(t,l);if(f.existsSync(a)){i=a;break}}}return i?b(i,e,new Set):[]}catch{return[]}}function b(s,e,t){if(t.has(s))return[];t.add(s);const n=new Set;try{const o=f.readFileSync(s,"utf-8"),i=/export\s*\{([^}]+)\}/g;let u;for(;(u=i.exec(o))!==null;){const h=u[1].split(",").map(p=>{const m=p.trim().split(/\s+as\s+/);return m.length>1?m[m.length-1].trim():m[0].trim()});for(const p of h)p&&p!=="default"&&n.add(p)}const r=/export\s+declare\s+(?:const|let|var|function|class)\s+(\w+)/g;for(;(u=r.exec(o))!==null;)n.add(u[1]);const l=/export\s+(?:type|interface)\s+(\w+)/g;for(;(u=l.exec(o))!==null;)n.add(u[1]);const a=/export\s+\*\s+from\s+['"]([^'"]+)['"]/g;for(;(u=a.exec(o))!==null;){const h=u[1],p=D(h,s,e,t);for(const m of p)n.add(m)}}catch{}return[...n]}function D(s,e,t,n){if(s.startsWith(".")){const o=c.dirname(e),i=[".d.ts",".d.mts","/index.d.ts","/index.d.mts"];for(const u of i){const r=c.resolve(o,s+u);if(f.existsSync(r))return b(r,t,n)}}return v(s,t)}function R(s,e){try{const t=require.resolve(s,{paths:[e]});if(f.existsSync(t))return t}catch{}try{let t=null;try{const u=require.resolve(s,{paths:[e]});let r=c.dirname(u);for(;r!==c.dirname(r);){if(f.existsSync(c.join(r,"package.json"))){t=r;break}r=c.dirname(r)}}catch{}if(!t){const u=c.resolve(e,"node_modules",s);f.existsSync(c.join(u,"package.json"))&&(t=u)}if(!t)return null;const n=c.join(t,"package.json"),o=JSON.parse(f.readFileSync(n,"utf-8"));if(o.exports){const u=typeof o.exports=="string"?o.exports:o.exports["."]?.import||o.exports["."]?.default||o.exports["."];if(typeof u=="string"){const r=c.resolve(t,u);if(f.existsSync(r))return r}}if(o.main){const u=c.resolve(t,o.main);if(f.existsSync(u))return u}const i=c.resolve(t,"index.js");return f.existsSync(i)?i:null}catch{return null}}function C(s,e){if(!s)return[];const t=[];if(Array.isArray(s))for(const n of s)if("module"in n&&"names"in n){const o=n;if(o.names.includes("*")){const i=e||process.cwd(),u=x(o.module,i);for(const r of u)t.push({module:o.module,name:r,isDefault:o.defaultImport??!1})}else for(const i of o.names)t.push({module:o.module,name:i,isDefault:o.defaultImport??!1})}else{const o=n;for(const[i,u]of Object.entries(o))if(u.includes("*")){const r=e||process.cwd(),l=x(i,r);for(const a of l)t.push({module:i,name:a,isDefault:!1})}else for(const r of u)t.push({module:i,name:r,isDefault:!1})}else for(const[n,o]of Object.entries(s))if(o.includes("*")){const i=e||process.cwd(),u=x(n,i);for(const r of u)t.push({module:n,name:r,isDefault:!1})}else for(const i of o)t.push({module:n,name:i,isDefault:!1});return t}function B(s){const e=new Map;for(const t of s)e.set(t.name,t);return e}function _(s){const e=c.basename(s,c.extname(s));return e==="index"?c.basename(c.dirname(s)):e}function P(s,e){const t=[];for(const n of s){const o=c.isAbsolute(n)?n:c.resolve(e,n);!f.existsSync(o)||!f.statSync(o).isDirectory()||j(o,t)}return t}function j(s,e){const t=f.readdirSync(s,{withFileTypes:!0});for(const n of t){const o=c.join(s,n.name);if(n.isDirectory()){if(n.name==="node_modules"||n.name.startsWith("."))continue;j(o,e);continue}if(!n.isFile())continue;const i=c.extname(n.name).toLowerCase();if(![".ts",".js",".mts",".mjs"].includes(i)||n.name.endsWith(".d.ts"))continue;const u=y(o);u&&e.push(u)}}function y(s){try{const e=f.readFileSync(s,"utf-8"),t=[];let n=null;const o=/export\s+(?:async\s+)?function\s+(\w+)/g;let i;for(;(i=o.exec(e))!==null;)t.push(i[1]);const u=/export\s+(?:const|let|var)\s+(\w+)/g;for(;(i=u.exec(e))!==null;)t.push(i[1]);const r=/export\s+class\s+(\w+)/g;for(;(i=r.exec(e))!==null;)t.push(i[1]);const l=/export\s*\{([^}]+)\}/g;for(;(i=l.exec(e))!==null;){const m=i[1].split(",").map(g=>{const d=g.trim().split(/\s+as\s+/);return d.length>1?d[d.length-1].trim():d[0].trim()});for(const g of m)g&&g!=="default"&&t.push(g)}const a=/export\s+default\s+(?:function\s+(\w+)|class\s+(\w+)|(\w+))?/.exec(e);a&&(n=a[1]||a[2]||a[3]||_(s));const h=/export\s+(?:type|interface)\s+(\w+)/g;for(;(i=h.exec(e))!==null;)t.push(i[1]);const p=/^(?:exports\.(\w+)\s*=|module\.exports\s*=\s*\{)/gm;for(;(i=p.exec(e))!==null;)i[1]&&t.push(i[1]);return t.length===0&&n===null?null:{filePath:s,exports:t,defaultExport:n}}catch{return null}}function M(s){const e=[];for(const t of s){for(const n of t.exports)e.push({module:t.filePath,name:n,isDefault:!1});t.defaultExport&&e.push({module:t.filePath,name:t.defaultExport,isDefault:!0})}return e}const $=new Set(["break","case","catch","continue","debugger","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","this","throw","try","typeof","var","void","while","with","class","const","enum","export","extends","import","super","implements","interface","let","package","private","protected","public","static","yield","async","await","of","true","false","null","undefined","NaN","Infinity","console","window","document","global","globalThis","process","require","module","exports","__dirname","__filename","Object","Array","String","Number","Boolean","Symbol","BigInt","Map","Set","WeakMap","WeakSet","Promise","Proxy","Reflect","Error","TypeError","RangeError","SyntaxError","ReferenceError","Date","RegExp","Math","JSON","Intl","ArrayBuffer","DataView","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray"]);function L(s){const e=[];let t=0;const n=s.length;for(;t<n;){if(s[t]==="/"&&s[t+1]==="/"){for(;t<n&&s[t]!==`
2
2
  `;)e.push(" "),t++;continue}if(s[t]==="/"&&s[t+1]==="*"){for(e.push(" "),e.push(" "),t+=2;t<n&&!(s[t-1]==="*"&&s[t]==="/");)e.push(s[t]===`
3
3
  `?`
4
4
  `:" "),t++;t<n&&(e.push(" "),t++);continue}if(s[t]==="'"){for(e.push(" "),t++;t<n&&s[t]!=="'";){if(s[t]==="\\"&&t+1<n){e.push(" "),e.push(" "),t+=2;continue}e.push(s[t]===`
@@ -7,11 +7,13 @@ import{createPluginFactory as S,BasePlugin as $}from"../../factory/index.mjs";im
7
7
  `?`
8
8
  `:" "),t++}t<n&&(e.push(" "),t++);continue}if(s[t]==="`"){for(e.push(" "),t++;t<n&&s[t]!=="`";){if(s[t]==="\\"&&t+1<n){e.push(" "),e.push(" "),t+=2;continue}if(s[t]==="$"&&s[t+1]==="{"){e.push(" "),e.push(" "),t+=2;let o=1;for(;t<n&&o>0;)s[t]==="{"&&o++,s[t]==="}"&&o--,o>0&&(e.push(s[t]),t++);t<n&&(e.push(" "),t++);continue}e.push(s[t]===`
9
9
  `?`
10
- `:" "),t++}t<n&&(e.push(" "),t++);continue}e.push(s[t]),t++}return e.join("")}function y(s){return s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function C(s,e,t){const n=[],o=new Set,r=k(s),u=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;let i;for(;(i=u.exec(r))!==null;){const l=i[1];if(b.has(l)||o.has(l)||t.has(l))continue;const c=e.get(l);c&&(o.add(l),n.push(c))}return n}function R(s,e){return!!(new RegExp(`import\\s*\\{[^}]*\\b${y(e)}\\b[^}]*\\}\\s*from`,"m").test(s)||new RegExp(`import\\s+${y(e)}\\s+from`,"m").test(s)||new RegExp(`import\\s*\\*\\s*as\\s+${y(e)}\\s+from`,"m").test(s))}function B(s){const e=new Map;for(const n of s){e.has(n.module)||e.set(n.module,{named:[],default_:null});const o=e.get(n.module);n.isDefault?o.default_===null&&(o.default_=n.name):o.named.includes(n.name)||o.named.push(n.name)}const t=[];for(const[n,o]of e){const r=[];o.default_&&r.push(o.default_),o.named.length>0&&r.push(`{ ${o.named.join(", ")} }`),r.length>0&&t.push(`import ${r.join(", ")} from '${n}'`)}return t.join(`
11
- `)}function P(s,e,t){if(!e.trim())return s;if(t==="top")return v(s,e);const n=_(s);return n===-1?v(s,e):s.slice(0,n)+`
10
+ `:" "),t++}t<n&&(e.push(" "),t++);continue}e.push(s[t]),t++}return e.join("")}function w(s){return s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function N(s,e,t){const n=[],o=new Set,i=L(s),u=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;let r;for(;(r=u.exec(i))!==null;){const l=r[1];if($.has(l)||o.has(l)||t.has(l))continue;const a=e.get(l);a&&(o.add(l),n.push(a))}return n}function O(s,e){return!!(new RegExp(`import\\s*\\{[^}]*\\b${w(e)}\\b[^}]*\\}\\s*from`,"m").test(s)||new RegExp(`import\\s+${w(e)}\\s+from`,"m").test(s)||new RegExp(`import\\s*\\*\\s*as\\s+${w(e)}\\s+from`,"m").test(s))}function z(s){const e=new Map;for(const n of s){e.has(n.module)||e.set(n.module,{named:[],default_:null});const o=e.get(n.module);n.isDefault?o.default_===null&&(o.default_=n.name):o.named.includes(n.name)||o.named.push(n.name)}const t=[];for(const[n,o]of e){const i=[];o.default_&&i.push(o.default_),o.named.length>0&&i.push(`{ ${o.named.join(", ")} }`),i.length>0&&t.push(`import ${i.join(", ")} from '${n}'`)}return t.join(`
11
+ `)}function T(s,e,t){if(!e.trim())return s;if(t==="top")return A(s,e);const n=U(s);return n===-1?A(s,e):s.slice(0,n)+`
12
12
  `+e+`
13
- `+s.slice(n)}function v(s,e){let t=0;if(s.startsWith("#!")){const o=s.indexOf(`
13
+ `+s.slice(n)}function A(s,e){let t=0;if(s.startsWith("#!")){const o=s.indexOf(`
14
14
  `);o!==-1?t=o+1:t=s.length}const n=s.slice(t).match(/^\s*["']use strict["'];?\s*\n?/);return n&&(t+=n[0].length),s.slice(0,t)+e+`
15
- `+s.slice(t)}function _(s){let e=-1;const t=/^import\s+[\s\S]+?from\s+['"][^'"]+['"];?\s*$/gm;let n;for(;(n=t.exec(s))!==null;){const o=n.index+n[0].length;o>e&&(e=o)}return e}function L(s,e,t){const n=s.match(/<template[^>]*>([\s\S]*?)<\/template>/);if(!n)return[];const o=n[1],r=[],u=/\{\{([\s\S]*?)\}\}/g;let i;for(;(i=u.exec(o))!==null;)r.push(i[1]);const l=/(?:v-[\w-]+|:[\w-]+|@[\w-]+)(?:\.[\w-]+)*="([^"]*)"/g;for(;(i=l.exec(o))!==null;)r.push(i[1]);const c=/v-model="([^"]*)"/g;for(;(i=c.exec(o))!==null;)r.push(i[1]);if(r.length===0)return[];const g=r.join(`
16
- `),d=[],f=new Set,h=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;for(;(i=h.exec(g))!==null;){const m=i[1];if(f.has(m)||t.has(m)||b.has(m)||z(m)||T(m))continue;const x=e.get(m);x&&(f.add(m),d.push(x))}return d}const M=new Set(["div","span","p","a","img","ul","ol","li","h1","h2","h3","h4","h5","h6","table","tr","td","th","thead","tbody","form","input","button","select","option","textarea","label","section","article","header","footer","nav","main","aside","script","style","link","meta","title","head","body","html","br","hr","pre","code","em","strong","b","i","u","sub","sup","small","mark","del","ins","blockquote","q","cite","abbr","dfn","kbd","samp","var","time","figure","figcaption","details","summary","dialog","menu","template","slot","component","transition","transition-group","keep-alive","teleport","suspense","video","audio","source","canvas","svg","path","circle","rect","line","polygon","iframe","embed","object","picture","area","map","base","col","colgroup","datalist","fieldset","legend","meter","optgroup","output","progress","ruby","rt","rp","wbr"]);function z(s){return M.has(s.toLowerCase())}function T(s){return s.startsWith("v")&&s.length>1&&s[1]===s[1].toUpperCase()}function N(s){const e=[];e.push("// Auto generated by @meng-xi/vite-plugin autoImport"),e.push("// @ts-nocheck"),e.push("export {}"),e.push("");const t=new Map;for(const n of s)t.has(n.module)||t.set(n.module,[]),t.get(n.module).push(n);e.push("declare global {");for(const[n,o]of t){e.push(` // from '${n}'`);for(const r of o)r.isDefault?e.push(` const ${r.name}: typeof import('${n}')['default']`):e.push(` const ${r.name}: typeof import('${n}')['${r.name}']`);e.push("")}return e.push("}"),e.join(`
17
- `)}function O(s,e){const t=a.dirname(s);p.existsSync(t)||p.mkdirSync(t,{recursive:!0}),p.writeFileSync(s,e,"utf-8")}function U(s,e){if(!p.existsSync(s))return!0;try{return p.readFileSync(s,"utf-8")!==e}catch{return!0}}class W extends ${nameLookup=new Map;allResolvedImports=[];ignoreSet=new Set;initialized=!1;getDefaultOptions(){return{imports:{},dirs:[],dts:"auto-imports.d.ts",vueTemplate:!1,ignore:[],fileFilter:/\.(vue|jsx|tsx|ts|js|mjs)$/,injectAtPosition:"top"}}validateOptions(){this.validator.field("dts").custom(e=>e===!1||typeof e=="string","dts \u5FC5\u987B\u4E3A false \u6216\u5B57\u7B26\u4E32\u8DEF\u5F84").field("vueTemplate").boolean().field("injectAtPosition").enum(["top","after-last-import"]).validate()}getPluginName(){return"auto-import"}addPluginHooks(e){e.configResolved=()=>{this.initialize()},e.transform={order:"pre",handler:(t,n)=>!this.initialized||!this.options.fileFilter.test(n)?null:this.transformCode(t,n)},e.buildEnd=()=>{this.options.dts&&this.initialized&&this.generateDts()}}initialize(){const e=A(this.options.imports),t=this.viteConfig?.root||process.cwd(),n=F(this.options.dirs,t),o=j(n);this.allResolvedImports=[...e,...o],this.nameLookup=E(this.allResolvedImports),this.ignoreSet=new Set(this.options.ignore),this.initialized=!0,this.logger.info(`\u521D\u59CB\u5316\u5B8C\u6210: ${this.allResolvedImports.length} \u4E2A\u81EA\u52A8\u5BFC\u5165\u6620\u5C04, ${n.length} \u4E2A\u626B\u63CF\u6A21\u5757`),this.options.dts&&this.generateDts()}transformCode(e,t){let n=C(e,this.nameLookup,this.ignoreSet);if(this.options.vueTemplate&&t.endsWith(".vue")){const r=L(e,this.nameLookup,this.ignoreSet),u=new Set(n.map(i=>i.name));for(const i of r)u.has(i.name)||(u.add(i.name),n.push(i))}if(n=n.filter(r=>!R(e,r.name)),n.length===0)return null;const o=B(n);return{code:P(e,o,this.options.injectAtPosition)}}generateDts(){if(this.allResolvedImports.length===0)return;const e=this.viteConfig?.root||process.cwd(),t=a.isAbsolute(this.options.dts)?this.options.dts:a.resolve(e,this.options.dts),n=N(this.allResolvedImports);U(t,n)&&this.safeExecuteSync(()=>{O(t,n),this.logger.info(`\u7C7B\u578B\u58F0\u660E\u6587\u4EF6\u5DF2\u751F\u6210: ${this.options.dts}`)},"\u751F\u6210\u7C7B\u578B\u58F0\u660E\u6587\u4EF6")}getResolvedImports(){return[...this.allResolvedImports]}getNameLookup(){return new Map(this.nameLookup)}}const q=S(W);export{q as autoImport};
15
+ `+s.slice(t)}function U(s){let e=-1;const t=/^import\s+[\s\S]+?from\s+['"][^'"]+['"];?\s*$/gm;let n;for(;(n=t.exec(s))!==null;){const o=n.index+n[0].length;o>e&&(e=o)}return e}function W(s,e,t){const n=s.match(/<template[^>]*>([\s\S]*?)<\/template>/);if(!n)return[];const o=n[1],i=[],u=/\{\{([\s\S]*?)\}\}/g;let r;for(;(r=u.exec(o))!==null;)i.push(r[1]);const l=/(?:v-[\w-]+|:[\w-]+|@[\w-]+)(?:\.[\w-]+)*="([^"]*)"/g;for(;(r=l.exec(o))!==null;)i.push(r[1]);const a=/v-model="([^"]*)"/g;for(;(r=a.exec(o))!==null;)i.push(r[1]);if(i.length===0)return[];const h=i.join(`
16
+ `),p=[],m=new Set,g=/(?<![.\w$])([a-zA-Z_$][\w$]*)(?=\s*[<(.,:;\n\r)\]}]|$)/g;for(;(r=g.exec(h))!==null;){const d=r[1];if(m.has(d)||t.has(d)||$.has(d)||J(d)||H(d))continue;const S=e.get(d);S&&(m.add(d),p.push(S))}return p}const q=new Set(["div","span","p","a","img","ul","ol","li","h1","h2","h3","h4","h5","h6","table","tr","td","th","thead","tbody","form","input","button","select","option","textarea","label","section","article","header","footer","nav","main","aside","script","style","link","meta","title","head","body","html","br","hr","pre","code","em","strong","b","i","u","sub","sup","small","mark","del","ins","blockquote","q","cite","abbr","dfn","kbd","samp","var","time","figure","figcaption","details","summary","dialog","menu","template","slot","component","transition","transition-group","keep-alive","teleport","suspense","video","audio","source","canvas","svg","path","circle","rect","line","polygon","iframe","embed","object","picture","area","map","base","col","colgroup","datalist","fieldset","legend","meter","optgroup","output","progress","ruby","rt","rp","wbr"]);function J(s){return q.has(s.toLowerCase())}function V(s,e){if(!e.trim())return s;const t=s.match(/<script\s+setup[^>]*>/);if(!t)return s;const n=t.index+t[0].length;return s.slice(0,n)+`
17
+ `+e+`
18
+ `+s.slice(n)}function Z(s){return/<script[\s>]/.test(s)}function H(s){return s.startsWith("v")&&s.length>1&&s[1]===s[1].toUpperCase()}function G(s){const e=[];e.push("// Auto generated by @meng-xi/vite-plugin autoImport"),e.push("// @ts-nocheck"),e.push("export {}"),e.push("");const t=new Map;for(const u of s)t.has(u.module)||t.set(u.module,[]),t.get(u.module).push(u);const n=new Set,o=new Map,i=[...t.entries()].reverse();for(const[u,r]of i){const l=[];for(const a of r)n.has(a.name)||(n.add(a.name),l.push(a));l.length>0&&o.set(u,l)}e.push("declare global {");for(const u of t.keys()){const r=o.get(u);if(r){e.push(` // from '${u}'`);for(const l of r)l.isDefault?e.push(` const ${l.name}: typeof import('${u}')['default']`):e.push(` const ${l.name}: typeof import('${u}')['${l.name}']`);e.push("")}}return e.push("}"),e.join(`
19
+ `)}function K(s,e){F(s,e)}function Q(s,e){return E(s,e)}class X extends I{nameLookup=new Map;allResolvedImports=[];ignoreSet=new Set;initialized=!1;getDefaultOptions(){return{imports:{},dirs:[],dts:"src/auto-imports.d.ts",vueTemplate:!1,ignore:[],fileFilter:/^(?!.*node_modules).*\.(vue|jsx|tsx|ts|js|mjs)$/,injectAtPosition:"top"}}validateOptions(){this.validator.field("dts").custom(e=>e===!1||e===!0||typeof e=="string","dts \u5FC5\u987B\u4E3A false\u3001true \u6216\u5B57\u7B26\u4E32\u8DEF\u5F84").field("vueTemplate").boolean().field("injectAtPosition").enum(["top","after-last-import"]).validate()}getPluginName(){return"auto-import"}addPluginHooks(e){e.configResolved=()=>{this.initialize()},e.transform={order:"pre",handler:(t,n)=>!this.initialized||!this.options.fileFilter.test(n)?null:this.transformCode(t,n)},e.buildEnd=()=>{this.options.dts&&this.initialized&&this.generateDts()}}initialize(){const e=this.viteConfig?.root||process.cwd(),t=C(this.options.imports,e),n=P(this.options.dirs,e),o=M(n);this.allResolvedImports=[...t,...o],this.nameLookup=B(this.allResolvedImports),this.ignoreSet=new Set(this.options.ignore),this.initialized=!0,this.logger.info(`\u521D\u59CB\u5316\u5B8C\u6210: ${this.allResolvedImports.length} \u4E2A\u81EA\u52A8\u5BFC\u5165\u6620\u5C04, ${n.length} \u4E2A\u626B\u63CF\u6A21\u5757`),this.options.dts&&this.generateDts()}transformCode(e,t){const n=t.endsWith(".vue")&&Z(e);let o=N(e,this.nameLookup,this.ignoreSet);if(this.options.vueTemplate&&n){const u=W(e,this.nameLookup,this.ignoreSet),r=new Set(o.map(l=>l.name));for(const l of u)r.has(l.name)||(r.add(l.name),o.push(l))}if(o=o.filter(u=>!O(e,u.name)),o.length===0)return null;const i=z(o);return{code:n?V(e,i):T(e,i,this.options.injectAtPosition)}}generateDts(){if(this.allResolvedImports.length===0)return;const e=this.viteConfig?.root||process.cwd(),t=typeof this.options.dts=="string"?this.options.dts:"src/auto-imports.d.ts",n=c.isAbsolute(t)?t:c.resolve(e,t),o=G(this.allResolvedImports);Q(n,o)&&this.safeExecuteSync(()=>{K(n,o),this.logger.info(`\u7C7B\u578B\u58F0\u660E\u6587\u4EF6\u5DF2\u751F\u6210: ${this.options.dts}`)},"\u751F\u6210\u7C7B\u578B\u58F0\u660E\u6587\u4EF6")}getResolvedImports(){return[...this.allResolvedImports]}getNameLookup(){return new Map(this.nameLookup)}}const Y=k(X);export{Y as autoImport};
@@ -1,2 +1,2 @@
1
- "use strict";const factory_index=require("../../factory/index.cjs"),common_ui_index=require("../../common/ui/index.cjs");require("../../logger/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs");const DEFAULT_THEME={completeColor:common_ui_index.ANSI.green,incompleteColor:common_ui_index.ANSI.gray,percentageColor:common_ui_index.ANSI.bold,phaseColor:common_ui_index.ANSI.cyan,moduleColor:common_ui_index.ANSI.gray},PHASE_LABELS={idle:"\u7B49\u5F85\u4E2D",config:"\u8BFB\u53D6\u914D\u7F6E",resolve:"\u89E3\u6790\u6A21\u5757",transform:"\u8F6C\u6362\u6A21\u5757",bundle:"\u6253\u5305\u4E2D",write:"\u5199\u5165\u6587\u4EF6",done:"\u6784\u5EFA\u5B8C\u6210"},p=process.platform==="win32"?["|","/","-","\\"]:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],f=/\x1b\[[0-9;]*m/g;function g(n){return n.replace(f,"")}class v extends factory_index.BasePlugin{totalModules=0;transformedModules=0;currentModule="";phase="idle";spinnerIndex=0;spinnerTimer=null;isDev=!1;theme=DEFAULT_THEME;lastPercentage=0;getDefaultOptions(){return{width:30,format:"bar",completeChar:"\u2588",incompleteChar:"\u2591",clearOnComplete:!0,showModuleName:!0}}validateOptions(){this.validator.field("width").number().minValue(1).field("format").enum(["bar","spinner","minimal"]).field("completeChar").string().field("incompleteChar").string().field("clearOnComplete").boolean().field("showModuleName").boolean().validate()}getPluginName(){return"build-progress"}onConfigResolved(e){super.onConfigResolved(e),this.theme=this.options.theme||DEFAULT_THEME}getPercentage(){if(this.phase==="done")return this.lastPercentage=100;if(this.phase==="config")return this.lastPercentage=5;if(this.phase==="resolve")return this.lastPercentage=10;if(this.totalModules===0)return this.lastPercentage=15;const e=Math.min(this.transformedModules/this.totalModules*70,70),t=this.phase==="bundle"?10:0,s=this.phase==="write"?5:0,i=Math.min(Math.floor(15+e+t+s),99);return this.lastPercentage=Math.max(i,this.lastPercentage),this.lastPercentage}renderBar(e){const t=this.options.width||30,s=this.options.completeChar||"\u2588",i=this.options.incompleteChar||"\u2591",r=Math.round(e/100*t),o=t-r;return this.theme.completeColor(s.repeat(r))+this.theme.incompleteColor(i.repeat(o))}renderSpinner(){const e=p[this.spinnerIndex%p.length];return this.spinnerIndex++,this.theme.phaseColor(e)}render(e){const t=this.options.format||"bar",s=this.theme.phaseColor(PHASE_LABELS[this.phase]),i=this.theme.percentageColor(`${e}%`);let r="";if(t==="bar"?r=`${this.renderSpinner()} ${s} ${this.renderBar(e)} ${i}`:t==="spinner"?r=`${this.renderSpinner()} ${s} ${i}`:r=`${s} ${i}`,this.options.showModuleName&&this.currentModule&&this.phase==="transform"){const o=g(r).length,u=Math.max((process.stdout.columns||80)-o-3,20),l=this.currentModule.length>u?"..."+this.currentModule.slice(-u+3):this.currentModule;r+=` ${this.theme.moduleColor(l)}`}return r}update(){if(!process.stdout.isTTY)return;const e=this.getPercentage(),t=this.render(e);this.safeExecuteSync(()=>{process.stdout.write(common_ui_index.ANSI.clearLine+common_ui_index.ANSI.reset+t)},"\u66F4\u65B0\u8FDB\u5EA6\u663E\u793A")}startSpinner(){this.spinnerTimer||process.stdout.isTTY&&(this.spinnerTimer=setInterval(()=>this.update(),80))}stopSpinner(){this.spinnerTimer&&(clearInterval(this.spinnerTimer),this.spinnerTimer=null)}complete(){if(this.phase="done",this.stopSpinner(),!process.stdout.isTTY){this.logger.success("\u6784\u5EFA\u5B8C\u6210");return}if(this.options.clearOnComplete)this.safeExecuteSync(()=>{process.stdout.write(common_ui_index.ANSI.clearLine+common_ui_index.ANSI.reset)},"\u6E05\u9664\u8FDB\u5EA6\u884C");else{const e=this.render(100);this.safeExecuteSync(()=>{process.stdout.write(common_ui_index.ANSI.clearLine+common_ui_index.ANSI.reset+e+`
2
- `)},"\u8F93\u51FA\u5B8C\u6210\u8FDB\u5EA6")}this.safeExecuteSync(()=>{process.stdout.write(common_ui_index.ANSI.showCursor)},"\u6062\u590D\u5149\u6807\u663E\u793A")}addPluginHooks(e){e.config=(t,{command:s})=>(this.isDev=s==="serve",null),e.configResolved=()=>{this.options.enabled&&(this.phase="config",process.stdout.isTTY&&this.safeExecuteSync(()=>{process.stdout.write(common_ui_index.ANSI.hideCursor)},"\u9690\u85CF\u5149\u6807"),this.startSpinner())},e.buildStart=()=>{this.options.enabled&&(this.phase="resolve",this.totalModules=0,this.transformedModules=0)},e.resolveId={handler:t=>{this.options.enabled&&(t.includes("node_modules")||t.includes(".virtual")||this.totalModules++)}},e.transform={handler:(t,s)=>{this.options.enabled&&(s.includes("node_modules")||s.includes(".virtual")||(this.phase="transform",this.transformedModules++,this.currentModule=s))}},e.writeBundle=()=>{this.options.enabled&&(this.phase="write",this.update())},e.closeBundle=()=>{this.options.enabled&&this.complete()},e.buildEnd=()=>{this.options.enabled&&(this.isDev||(this.phase="bundle",this.update()))},e.configureServer=()=>{this.options.enabled&&this.isDev&&this.complete()}}destroy(){super.destroy(),this.stopSpinner(),process.stdout.isTTY&&this.safeExecuteSync(()=>{process.stdout.write(common_ui_index.ANSI.showCursor)},"\u6062\u590D\u5149\u6807\u663E\u793A")}}const buildProgress=factory_index.createPluginFactory(v);exports.buildProgress=buildProgress;
1
+ "use strict";const factory_index=require("../../factory/index.cjs"),common_ui_index=require("../../common/ui/index.cjs");require("../../logger/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs");const DEFAULT_THEME={completeColor:common_ui_index.ANSI.green,incompleteColor:common_ui_index.ANSI.gray,percentageColor:common_ui_index.ANSI.bold,phaseColor:common_ui_index.ANSI.cyan,moduleColor:common_ui_index.ANSI.gray},PHASE_LABELS={idle:"\u7B49\u5F85\u4E2D",config:"\u8BFB\u53D6\u914D\u7F6E",resolve:"\u89E3\u6790\u6A21\u5757",transform:"\u8F6C\u6362\u6A21\u5757",bundle:"\u6253\u5305\u4E2D",write:"\u5199\u5165\u6587\u4EF6",done:"\u6784\u5EFA\u5B8C\u6210"},SPINNER_FRAMES=process.platform==="win32"?["|","/","-","\\"]:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],ANSI_REGEX=/\x1b\[[0-9;]*m/g;function stripAnsi(n){return n.replace(ANSI_REGEX,"")}class f extends factory_index.BasePlugin{totalModules=0;transformedModules=0;currentModule="";phase="idle";spinnerIndex=0;spinnerTimer=null;isDev=!1;theme=DEFAULT_THEME;lastPercentage=0;getDefaultOptions(){return{width:30,format:"bar",completeChar:"\u2588",incompleteChar:"\u2591",clearOnComplete:!0,showModuleName:!0}}validateOptions(){this.validator.field("width").number().minValue(1).field("format").enum(["bar","spinner","minimal"]).field("completeChar").string().field("incompleteChar").string().field("clearOnComplete").boolean().field("showModuleName").boolean().validate()}getPluginName(){return"build-progress"}onConfigResolved(e){super.onConfigResolved(e),this.theme=this.options.theme||DEFAULT_THEME}getPercentage(){if(this.phase==="done")return this.lastPercentage=100;if(this.phase==="config")return this.lastPercentage=5;if(this.phase==="resolve")return this.lastPercentage=10;if(this.totalModules===0)return this.lastPercentage=15;const e=Math.min(this.transformedModules/this.totalModules*70,70),t=this.phase==="bundle"?10:0,s=this.phase==="write"?5:0,i=Math.min(Math.floor(15+e+t+s),99);return this.lastPercentage=Math.max(i,this.lastPercentage),this.lastPercentage}renderBar(e){const t=this.options.width||30,s=this.options.completeChar||"\u2588",i=this.options.incompleteChar||"\u2591",r=Math.round(e/100*t),o=t-r;return this.theme.completeColor(s.repeat(r))+this.theme.incompleteColor(i.repeat(o))}renderSpinner(){const e=SPINNER_FRAMES[this.spinnerIndex%SPINNER_FRAMES.length];return this.spinnerIndex++,this.theme.phaseColor(e)}render(e){const t=this.options.format||"bar",s=this.theme.phaseColor(PHASE_LABELS[this.phase]),i=this.theme.percentageColor(`${e}%`);let r="";if(t==="bar"?r=`${this.renderSpinner()} ${s} ${this.renderBar(e)} ${i}`:t==="spinner"?r=`${this.renderSpinner()} ${s} ${i}`:r=`${s} ${i}`,this.options.showModuleName&&this.currentModule&&this.phase==="transform"){const o=stripAnsi(r).length,u=Math.max((process.stdout.columns||80)-o-3,20),l=this.currentModule.length>u?"..."+this.currentModule.slice(-u+3):this.currentModule;r+=` ${this.theme.moduleColor(l)}`}return r}update(){if(!process.stdout.isTTY)return;const e=this.getPercentage(),t=this.render(e);this.safeExecuteSync(()=>{process.stdout.write(common_ui_index.ANSI.clearLine+common_ui_index.ANSI.reset+t)},"\u66F4\u65B0\u8FDB\u5EA6\u663E\u793A")}startSpinner(){this.spinnerTimer||process.stdout.isTTY&&(this.spinnerTimer=setInterval(()=>this.update(),80))}stopSpinner(){this.spinnerTimer&&(clearInterval(this.spinnerTimer),this.spinnerTimer=null)}complete(){if(this.phase="done",this.stopSpinner(),!process.stdout.isTTY){this.logger.success("\u6784\u5EFA\u5B8C\u6210");return}if(this.options.clearOnComplete)this.safeExecuteSync(()=>{process.stdout.write(common_ui_index.ANSI.clearLine+common_ui_index.ANSI.reset)},"\u6E05\u9664\u8FDB\u5EA6\u884C");else{const e=this.render(100);this.safeExecuteSync(()=>{process.stdout.write(common_ui_index.ANSI.clearLine+common_ui_index.ANSI.reset+e+`
2
+ `)},"\u8F93\u51FA\u5B8C\u6210\u8FDB\u5EA6")}this.safeExecuteSync(()=>{process.stdout.write(common_ui_index.ANSI.showCursor)},"\u6062\u590D\u5149\u6807\u663E\u793A")}addPluginHooks(e){e.config=(t,{command:s})=>(this.isDev=s==="serve",null),e.configResolved=()=>{this.options.enabled&&(this.phase="config",process.stdout.isTTY&&this.safeExecuteSync(()=>{process.stdout.write(common_ui_index.ANSI.hideCursor)},"\u9690\u85CF\u5149\u6807"),this.startSpinner())},e.buildStart=()=>{this.options.enabled&&(this.phase="resolve",this.totalModules=0,this.transformedModules=0)},e.resolveId={handler:t=>{this.options.enabled&&(t.includes("node_modules")||t.includes(".virtual")||this.totalModules++)}},e.transform={handler:(t,s)=>{this.options.enabled&&(s.includes("node_modules")||s.includes(".virtual")||(this.phase="transform",this.transformedModules++,this.currentModule=s))}},e.writeBundle=()=>{this.options.enabled&&(this.phase="write",this.update())},e.closeBundle=()=>{this.options.enabled&&this.complete()},e.buildEnd=()=>{this.options.enabled&&(this.isDev||(this.phase="bundle",this.update()))},e.configureServer=()=>{this.options.enabled&&this.isDev&&this.complete()}}destroy(){super.destroy(),this.stopSpinner(),process.stdout.isTTY&&this.safeExecuteSync(()=>{process.stdout.write(common_ui_index.ANSI.showCursor)},"\u6062\u590D\u5149\u6807\u663E\u793A")}}const buildProgress=factory_index.createPluginFactory(f);exports.buildProgress=buildProgress;
@@ -1,4 +1,4 @@
1
- "use strict";const factory_index=require("../../factory/index.cjs"),p$1=require("node:fs"),i=require("node:path"),g=require("node:zlib"),node_util=require("node:util"),common_fs_index=require("../../common/fs/index.cjs"),common_format_index=require("../../common/format/index.cjs");require("../../logger/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs"),require("fs"),require("path");function _interopDefaultCompat(a){return a&&typeof a=="object"&&"default"in a?a.default:a}const p__default=_interopDefaultCompat(p$1),i__default=_interopDefaultCompat(i),g__default=_interopDefaultCompat(g),b=node_util.promisify(g__default.gzip);async function M(a){const s=Buffer.isBuffer(a)?a:Buffer.from(a,"utf-8");return(await b(s)).length}function p(a){return a.includes("node_modules")||a.startsWith("\0")||a.startsWith("virtual:")}async function scanOutputDirectory(a,s={}){return common_fs_index.scanDirectory(a,{includeExtensions:s.includeExtensions,excludePatterns:s.excludePatterns})}function analyzeFileTypeDistribution(a){const s=a.reduce((r,o)=>r+o.size,0),e=new Map;for(const r of a){const o=r.extension||"(no ext)",t=e.get(o)||{count:0,totalSize:0};t.count++,t.totalSize+=r.size,e.set(o,t)}return Array.from(e.entries()).map(([r,{count:o,totalSize:t}])=>({extension:r,count:o,totalSize:t,percentage:s>0?Number((t/s*100).toFixed(1)):0})).sort((r,o)=>o.totalSize-r.totalSize)}function checkSizeThresholds(a,s){const e=[],r=s*1024;for(const o of a){o.size>r&&e.push({level:"chunk",name:o.name,sizeKB:Number((o.size/1024).toFixed(1)),thresholdKB:s,message:`Chunk "${o.name}" \u8D85\u8FC7\u9608\u503C: ${(o.size/1024).toFixed(1)}KB > ${s}KB`});for(const t of o.modules)t.size>r&&e.push({level:"module",name:t.id,sizeKB:Number((t.size/1024).toFixed(1)),thresholdKB:s,message:`\u6A21\u5757 "${t.id}" \u8D85\u8FC7\u9608\u503C: ${(t.size/1024).toFixed(1)}KB > ${s}KB`})}return e}function getTopModules(a,s,e){const r=[];for(const o of a)for(const t of o.modules)e&&t.isNodeModule||r.push(t);return r.sort((o,t)=>t.size-o.size).slice(0,s)}async function buildChunkStats(a,s,e={}){const{gzipSize:r=!0,excludeNodeModules:o=!1}=e,t=[];for(const d of s){const l=i__default.relative(a,d.filePath),c=l.replace(/\\/g,"/"),n=d.extension;let u="chunk";n===".html"?u="entry":[".js",".mjs",".cjs",".css",".html"].includes(n)||(u="asset");let f=0;if(r)try{const z=await p__default.promises.readFile(d.filePath);f=await M(z)}catch{f=0}const h=p(l),m={id:c,size:d.size,gzipSize:f,chunks:[c],imports:[],isEntry:u==="entry",isNodeModule:h};o&&h||t.push({name:c,size:d.size,gzipSize:f,modules:[m],type:u,fileCount:1})}return t.sort((d,l)=>l.size-d.size)}async function analyzeBundle(a,s){const e=Date.now(),r=await scanOutputDirectory(a,{includeExtensions:s.includeExtensions,excludePatterns:s.excludePatterns}),o=await buildChunkStats(a,r,{gzipSize:s.gzipSize,excludeNodeModules:s.excludeNodeModules}),t=s.excludeNodeModules?r.filter(h=>!p(i__default.relative(a,h.filePath))):r,d=analyzeFileTypeDistribution(t),l=getTopModules(o,s.topModules,s.excludeNodeModules),c=checkSizeThresholds(o,s.sizeThreshold),n=o.reduce((h,m)=>h+m.size,0),u=o.reduce((h,m)=>h+m.gzipSize,0),f=Date.now()-e;return{timestamp:new Date().toISOString(),totalSize:n,totalGzipSize:u,chunks:o,topModules:l,fileTypeDistribution:d,warnings:c,comparisonDiffs:[],analysisTime:f}}async function loadPreviousReport(a){try{const s=i__default.isAbsolute(a)?a:i__default.resolve(process.cwd(),a);if(!await p__default.promises.access(s,p__default.constants.F_OK).then(()=>!0).catch(()=>!1))return null;const e=await p__default.promises.readFile(s,"utf-8");return JSON.parse(e)}catch{return null}}function compareWithPrevious(a,s){const e=[],r=new Map;for(const t of s.chunks)r.set(t.name,t.size);const o=new Map;for(const t of a.chunks)o.set(t.name,t.size);for(const[t,d]of o){const l=r.get(t);if(l===void 0)e.push({name:t,previousSize:-1,currentSize:d,diff:d,diffPercentage:100,trend:"added"});else{const c=d-l,n=l>0?Number((c/l*100).toFixed(1)):0;e.push({name:t,previousSize:l,currentSize:d,diff:c,diffPercentage:n,trend:c>0?"increased":c<0?"decreased":"unchanged"})}}for(const[t,d]of r)o.has(t)||e.push({name:t,previousSize:d,currentSize:-1,diff:-d,diffPercentage:-100,trend:"removed"});return e.sort((t,d)=>Math.abs(d.diff)-Math.abs(t.diff))}async function generateJsonReport(a,s,e){const r=i__default.join(a,`${s}.json`),o={timestamp:e.timestamp,summary:{totalSize:e.totalSize,totalGzipSize:e.totalGzipSize,totalSizeFormatted:common_format_index.formatFileSize(e.totalSize),totalGzipSizeFormatted:common_format_index.formatFileSize(e.totalGzipSize),chunkCount:e.chunks.length,warningCount:e.warnings.length,analysisTime:e.analysisTime},chunks:e.chunks.map(t=>({name:t.name,size:t.size,sizeFormatted:common_format_index.formatFileSize(t.size),gzipSize:t.gzipSize,gzipSizeFormatted:common_format_index.formatFileSize(t.gzipSize),type:t.type,fileCount:t.fileCount,modules:t.modules.map(d=>({id:d.id,size:d.size,sizeFormatted:common_format_index.formatFileSize(d.size),gzipSize:d.gzipSize,gzipSizeFormatted:common_format_index.formatFileSize(d.gzipSize),isEntry:d.isEntry,isNodeModule:d.isNodeModule,imports:d.imports}))})),topModules:e.topModules.map(t=>({id:t.id,size:t.size,sizeFormatted:common_format_index.formatFileSize(t.size),gzipSize:t.gzipSize,gzipSizeFormatted:common_format_index.formatFileSize(t.gzipSize),isNodeModule:t.isNodeModule})),fileTypeDistribution:e.fileTypeDistribution,warnings:e.warnings,comparisonDiffs:e.comparisonDiffs};return await common_fs_index.writeJsonReport(r,o),r}async function generateHtmlReport(a,s,e,r={}){const o=i__default.join(a,`${s}.html`),t=r.defaultChartType||"treemap",d=e.chunks.map(h=>({name:h.name,size:h.size,gzipSize:h.gzipSize,type:h.type})),l=e.fileTypeDistribution,c=e.warnings,n=e.comparisonDiffs,u=e.topModules.slice(0,10),f=x(e,d,l,c,n,u,t);return await common_fs_index.writeFileContent(o,f),o}function x(a,s,e,r,o,t,d){const l=common_format_index.formatFileSize(a.totalSize),c=common_format_index.formatFileSize(a.totalGzipSize);return`<!DOCTYPE html>
1
+ "use strict";const factory_index=require("../../factory/index.cjs"),u=require("node:fs"),l=require("node:path"),g=require("node:zlib"),node_util=require("node:util"),common_fs_index=require("../../common/fs/index.cjs"),common_format_index=require("../../common/format/index.cjs");require("../../logger/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs"),require("fs"),require("path");function _interopDefaultCompat(n){return n&&typeof n=="object"&&"default"in n?n.default:n}const u__default=_interopDefaultCompat(u),l__default=_interopDefaultCompat(l),g__default=_interopDefaultCompat(g),b=node_util.promisify(g__default.gzip);async function M(n){const i=Buffer.isBuffer(n)?n:Buffer.from(n,"utf-8");return(await b(i)).length}function p(n){return n.includes("node_modules")||n.startsWith("\0")||n.startsWith("virtual:")}async function scanOutputDirectory(n,i={}){return common_fs_index.scanDirectory(n,{includeExtensions:i.includeExtensions,excludePatterns:i.excludePatterns})}function analyzeFileTypeDistribution(n){const i=n.reduce((o,a)=>o+a.size,0),e=new Map;for(const o of n){const a=o.extension||"(no ext)",t=e.get(a)||{count:0,totalSize:0};t.count++,t.totalSize+=o.size,e.set(a,t)}return Array.from(e.entries()).map(([o,{count:a,totalSize:t}])=>({extension:o,count:a,totalSize:t,percentage:i>0?Number((t/i*100).toFixed(1)):0})).sort((o,a)=>a.totalSize-o.totalSize)}function checkSizeThresholds(n,i){const e=[],o=i*1024;for(const a of n){a.size>o&&e.push({level:"chunk",name:a.name,sizeKB:Number((a.size/1024).toFixed(1)),thresholdKB:i,message:`Chunk "${a.name}" \u8D85\u8FC7\u9608\u503C: ${(a.size/1024).toFixed(1)}KB > ${i}KB`});for(const t of a.modules)t.size>o&&e.push({level:"module",name:t.id,sizeKB:Number((t.size/1024).toFixed(1)),thresholdKB:i,message:`\u6A21\u5757 "${t.id}" \u8D85\u8FC7\u9608\u503C: ${(t.size/1024).toFixed(1)}KB > ${i}KB`})}return e}function getTopModules(n,i,e){const o=[];for(const a of n)for(const t of a.modules)e&&t.isNodeModule||o.push(t);return o.sort((a,t)=>t.size-a.size).slice(0,i)}async function buildChunkStats(n,i,e={}){const{gzipSize:o=!0,excludeNodeModules:a=!1}=e,t=[];for(const r of i){const d=l__default.relative(n,r.filePath),c=d.replace(/\\/g,"/"),s=r.extension;let h="chunk";s===".html"?h="entry":[".js",".mjs",".cjs",".css",".html"].includes(s)||(h="asset");let m=0;if(o)try{const y=await u__default.promises.readFile(r.filePath);m=await M(y)}catch{m=0}const f=p(d),z={id:c,size:r.size,gzipSize:m,chunks:[c],imports:[],isEntry:h==="entry",isNodeModule:f};a&&f||t.push({name:c,size:r.size,gzipSize:m,modules:[z],type:h,fileCount:1})}return t.sort((r,d)=>d.size-r.size)}async function analyzeBundle(n,i){const e=Date.now(),o=await scanOutputDirectory(n,{includeExtensions:i.includeExtensions,excludePatterns:i.excludePatterns}),a=await buildChunkStats(n,o,{gzipSize:i.gzipSize,excludeNodeModules:i.excludeNodeModules}),t=i.excludeNodeModules?o.filter(f=>!p(l__default.relative(n,f.filePath))):o,r=analyzeFileTypeDistribution(t),d=getTopModules(a,i.topModules,i.excludeNodeModules),c=checkSizeThresholds(a,i.sizeThreshold),s=a.reduce((f,z)=>f+z.size,0),h=a.reduce((f,z)=>f+z.gzipSize,0),m=Date.now()-e;return{timestamp:new Date().toISOString(),totalSize:s,totalGzipSize:h,chunks:a,topModules:d,fileTypeDistribution:r,warnings:c,comparisonDiffs:[],analysisTime:m}}async function loadPreviousReport(n){try{const i=l__default.isAbsolute(n)?n:l__default.resolve(process.cwd(),n);if(!await u__default.promises.access(i,u__default.constants.F_OK).then(()=>!0).catch(()=>!1))return null;const e=await u__default.promises.readFile(i,"utf-8");return JSON.parse(e)}catch{return null}}function compareWithPrevious(n,i){const e=[],o=new Map;for(const t of i.chunks)o.set(t.name,t.size);const a=new Map;for(const t of n.chunks)a.set(t.name,t.size);for(const[t,r]of a){const d=o.get(t);if(d===void 0)e.push({name:t,previousSize:-1,currentSize:r,diff:r,diffPercentage:100,trend:"added"});else{const c=r-d,s=d>0?Number((c/d*100).toFixed(1)):0;e.push({name:t,previousSize:d,currentSize:r,diff:c,diffPercentage:s,trend:c>0?"increased":c<0?"decreased":"unchanged"})}}for(const[t,r]of o)a.has(t)||e.push({name:t,previousSize:r,currentSize:-1,diff:-r,diffPercentage:-100,trend:"removed"});return e.sort((t,r)=>Math.abs(r.diff)-Math.abs(t.diff))}async function generateJsonReport(n,i,e){const o=l__default.join(n,`${i}.json`),a={timestamp:e.timestamp,summary:{totalSize:e.totalSize,totalGzipSize:e.totalGzipSize,totalSizeFormatted:common_format_index.formatFileSize(e.totalSize),totalGzipSizeFormatted:common_format_index.formatFileSize(e.totalGzipSize),chunkCount:e.chunks.length,warningCount:e.warnings.length,analysisTime:e.analysisTime},chunks:e.chunks.map(t=>({name:t.name,size:t.size,sizeFormatted:common_format_index.formatFileSize(t.size),gzipSize:t.gzipSize,gzipSizeFormatted:common_format_index.formatFileSize(t.gzipSize),type:t.type,fileCount:t.fileCount,modules:t.modules.map(r=>({id:r.id,size:r.size,sizeFormatted:common_format_index.formatFileSize(r.size),gzipSize:r.gzipSize,gzipSizeFormatted:common_format_index.formatFileSize(r.gzipSize),isEntry:r.isEntry,isNodeModule:r.isNodeModule,imports:r.imports}))})),topModules:e.topModules.map(t=>({id:t.id,size:t.size,sizeFormatted:common_format_index.formatFileSize(t.size),gzipSize:t.gzipSize,gzipSizeFormatted:common_format_index.formatFileSize(t.gzipSize),isNodeModule:t.isNodeModule})),fileTypeDistribution:e.fileTypeDistribution,warnings:e.warnings,comparisonDiffs:e.comparisonDiffs};return await common_fs_index.writeJsonReport(o,a),o}async function generateHtmlReport(n,i,e,o={}){const a=l__default.join(n,`${i}.html`),t=o.defaultChartType||"treemap",r=e.chunks.map(f=>({name:f.name,size:f.size,gzipSize:f.gzipSize,type:f.type})),d=e.fileTypeDistribution,c=e.warnings,s=e.comparisonDiffs,h=e.topModules.slice(0,10),m=x(e,r,d,c,s,h,t);return await common_fs_index.writeFileContent(a,m),a}function x(n,i,e,o,a,t,r){const d=common_format_index.formatFileSize(n.totalSize),c=common_format_index.formatFileSize(n.totalGzipSize);return`<!DOCTYPE html>
2
2
  <html lang="zh-CN">
3
3
  <head>
4
4
  <meta charset="UTF-8">
@@ -53,24 +53,24 @@ tr:hover { background: #f8f9ff; }
53
53
  <div class="container">
54
54
  <div class="header">
55
55
  <h1>Bundle Analysis Report</h1>
56
- <div class="meta">Generated: ${a.timestamp} | Analysis time: ${a.analysisTime}ms</div>
56
+ <div class="meta">Generated: ${n.timestamp} | Analysis time: ${n.analysisTime}ms</div>
57
57
  </div>
58
58
 
59
59
  <div class="summary-cards">
60
60
  <div class="card">
61
61
  <div class="label">Total Size</div>
62
- <div class="value">${l}</div>
62
+ <div class="value">${d}</div>
63
63
  <div class="sub">gzip: ${c}</div>
64
64
  </div>
65
65
  <div class="card">
66
66
  <div class="label">Chunks</div>
67
- <div class="value">${a.chunks.length}</div>
68
- <div class="sub">entry: ${a.chunks.filter(n=>n.type==="entry").length} | chunk: ${a.chunks.filter(n=>n.type==="chunk").length} | asset: ${a.chunks.filter(n=>n.type==="asset").length}</div>
67
+ <div class="value">${n.chunks.length}</div>
68
+ <div class="sub">entry: ${n.chunks.filter(s=>s.type==="entry").length} | chunk: ${n.chunks.filter(s=>s.type==="chunk").length} | asset: ${n.chunks.filter(s=>s.type==="asset").length}</div>
69
69
  </div>
70
70
  <div class="card">
71
71
  <div class="label">Warnings</div>
72
- <div class="value">${r.length}</div>
73
- <div class="sub">${r.length>0?"threshold exceeded":"all within limits"}</div>
72
+ <div class="value">${o.length}</div>
73
+ <div class="sub">${o.length>0?"threshold exceeded":"all within limits"}</div>
74
74
  </div>
75
75
  <div class="card">
76
76
  <div class="label">File Types</div>
@@ -79,19 +79,19 @@ tr:hover { background: #f8f9ff; }
79
79
  </div>
80
80
  </div>
81
81
 
82
- ${r.length>0?`
82
+ ${o.length>0?`
83
83
  <div class="section">
84
84
  <h2>Warnings</h2>
85
- ${r.map(n=>`<div class="warning ${n.sizeKB>n.thresholdKB*2?"critical":""}"><strong>${n.level.toUpperCase()}</strong>: ${n.message}</div>`).join("")}
85
+ ${o.map(s=>`<div class="warning ${s.sizeKB>s.thresholdKB*2?"critical":""}"><strong>${s.level.toUpperCase()}</strong>: ${s.message}</div>`).join("")}
86
86
  </div>
87
87
  `:""}
88
88
 
89
89
  <div class="section">
90
90
  <h2>Size Distribution</h2>
91
91
  <div class="chart-tabs">
92
- <button class="chart-tab ${d==="treemap"?"active":""}" onclick="switchChart('treemap')">Treemap</button>
93
- <button class="chart-tab ${d==="sunburst"?"active":""}" onclick="switchChart('sunburst')">Sunburst</button>
94
- <button class="chart-tab ${d==="list"?"active":""}" onclick="switchChart('list')">List</button>
92
+ <button class="chart-tab ${r==="treemap"?"active":""}" onclick="switchChart('treemap')">Treemap</button>
93
+ <button class="chart-tab ${r==="sunburst"?"active":""}" onclick="switchChart('sunburst')">Sunburst</button>
94
+ <button class="chart-tab ${r==="list"?"active":""}" onclick="switchChart('list')">List</button>
95
95
  </div>
96
96
  <div class="chart-container" id="chartContainer"></div>
97
97
  </div>
@@ -109,18 +109,18 @@ ${r.map(n=>`<div class="warning ${n.sizeKB>n.thresholdKB*2?"critical":""}"><stro
109
109
  <table>
110
110
  <thead><tr><th>#</th><th>Module</th><th>Size</th><th>gzip</th><th>Type</th></tr></thead>
111
111
  <tbody>
112
- ${t.map((n,u)=>`<tr><td>${u+1}</td><td title="${n.id}">${n.id.length>60?n.id.slice(0,57)+"...":n.id}</td><td>${common_format_index.formatFileSize(n.size)}</td><td>${common_format_index.formatFileSize(n.gzipSize)}</td><td>${n.isNodeModule?"node_modules":"source"}</td></tr>`).join("")}
112
+ ${t.map((s,h)=>`<tr><td>${h+1}</td><td title="${s.id}">${s.id.length>60?s.id.slice(0,57)+"...":s.id}</td><td>${common_format_index.formatFileSize(s.size)}</td><td>${common_format_index.formatFileSize(s.gzipSize)}</td><td>${s.isNodeModule?"node_modules":"source"}</td></tr>`).join("")}
113
113
  </tbody>
114
114
  </table>
115
115
  </div>
116
116
 
117
- ${o.length>0?`
117
+ ${a.length>0?`
118
118
  <div class="section">
119
119
  <h2>Comparison with Previous Build</h2>
120
120
  <table>
121
121
  <thead><tr><th>Name</th><th>Previous</th><th>Current</th><th>Diff</th><th>Trend</th></tr></thead>
122
122
  <tbody>
123
- ${o.slice(0,20).map(n=>{const u=n.trend==="increased"?"diff-positive":n.trend==="decreased"?"diff-negative":n.trend==="added"?"diff-added":n.trend==="removed"?"diff-removed":"diff-unchanged",f=n.trend==="increased"?"&#9650;":n.trend==="decreased"?"&#9660;":n.trend==="added"?"&#10010;":n.trend==="removed"?"&#10006;":"&#9644;";return`<tr><td>${n.name}</td><td>${n.previousSize>=0?common_format_index.formatFileSize(n.previousSize):"-"}</td><td>${n.currentSize>=0?common_format_index.formatFileSize(n.currentSize):"-"}</td><td class="${u}">${n.diff>=0?"+":""}${common_format_index.formatFileSize(Math.abs(n.diff))} (${n.diffPercentage}%)</td><td class="${u}">${f} ${n.trend}</td></tr>`}).join("")}
123
+ ${a.slice(0,20).map(s=>{const h=s.trend==="increased"?"diff-positive":s.trend==="decreased"?"diff-negative":s.trend==="added"?"diff-added":s.trend==="removed"?"diff-removed":"diff-unchanged",m=s.trend==="increased"?"&#9650;":s.trend==="decreased"?"&#9660;":s.trend==="added"?"&#10010;":s.trend==="removed"?"&#10006;":"&#9644;";return`<tr><td>${s.name}</td><td>${s.previousSize>=0?common_format_index.formatFileSize(s.previousSize):"-"}</td><td>${s.currentSize>=0?common_format_index.formatFileSize(s.currentSize):"-"}</td><td class="${h}">${s.diff>=0?"+":""}${common_format_index.formatFileSize(Math.abs(s.diff))} (${s.diffPercentage}%)</td><td class="${h}">${m} ${s.trend}</td></tr>`}).join("")}
124
124
  </tbody>
125
125
  </table>
126
126
  </div>
@@ -131,15 +131,15 @@ ${o.slice(0,20).map(n=>{const u=n.trend==="increased"?"diff-positive":n.trend===
131
131
  <table>
132
132
  <thead><tr><th>Name</th><th>Size</th><th>gzip</th><th>Type</th><th>Proportion</th></tr></thead>
133
133
  <tbody>
134
- ${a.chunks.map(n=>{const u=a.totalSize>0?n.size/a.totalSize*100:0;return`<tr><td title="${n.name}">${n.name.length>50?n.name.slice(0,47)+"...":n.name}</td><td>${common_format_index.formatFileSize(n.size)}</td><td>${common_format_index.formatFileSize(n.gzipSize)}</td><td>${n.type}</td><td><div class="bar-bg"><div class="bar" style="width:${u}%"></div></div><span style="font-size:11px;color:#888;">${u.toFixed(1)}%</span></td></tr>`}).join("")}
134
+ ${n.chunks.map(s=>{const h=n.totalSize>0?s.size/n.totalSize*100:0;return`<tr><td title="${s.name}">${s.name.length>50?s.name.slice(0,47)+"...":s.name}</td><td>${common_format_index.formatFileSize(s.size)}</td><td>${common_format_index.formatFileSize(s.gzipSize)}</td><td>${s.type}</td><td><div class="bar-bg"><div class="bar" style="width:${h}%"></div></div><span style="font-size:11px;color:#888;">${h.toFixed(1)}%</span></td></tr>`}).join("")}
135
135
  </tbody>
136
136
  </table>
137
137
  </div>
138
138
  </div>
139
139
 
140
140
  <script>
141
- const chartData = ${JSON.stringify(s)};
142
- const totalSize = ${a.totalSize};
141
+ const chartData = ${JSON.stringify(i)};
142
+ const totalSize = ${n.totalSize};
143
143
  const distributionData = ${JSON.stringify(e)};
144
144
  const COLORS = ['#667eea','#764ba2','#f093fb','#f5576c','#4facfe','#00f2fe','#43e97b','#fa709a','#fee140','#a18cd1','#fbc2eb','#a6c1ee','#ffecd2','#fcb69f','#ff9a9e','#fad0c4'];
145
145
 
@@ -185,7 +185,7 @@ function renderSunburst(container) {
185
185
  paths += '<path d="M' + x1 + ',' + y1 + 'L' + x2 + ',' + y2 + 'A' + r2 + ',' + r2 + ' 0 ' + largeArc + ',1 ' + x3 + ',' + y3 + 'L' + x4 + ',' + y4 + 'A' + r1 + ',' + r1 + ' 0 ' + largeArc + ',0 ' + x1 + ',' + y1 + '" fill="' + COLORS[i % COLORS.length] + '" opacity="0.85" style="cursor:pointer" title="' + d.name + ': ' + formatBytes(d.size) + '"/>';
186
186
  startAngle = endAngle;
187
187
  });
188
- container.innerHTML = '<div style="text-align:center"><svg width="400" height="400" viewBox="0 0 400 400">' + paths + '<circle cx="' + cx + '" cy="' + cy + '" r="' + (r1 - 1) + '" fill="white"/><text x="' + cx + '" y="' + cy + '" text-anchor="middle" dy="-6" font-size="14" font-weight="600">${l}</text><text x="' + cx + '" y="' + cy + '" text-anchor="middle" dy="14" font-size="11" fill="#888">total</text></svg></div>';
188
+ container.innerHTML = '<div style="text-align:center"><svg width="400" height="400" viewBox="0 0 400 400">' + paths + '<circle cx="' + cx + '" cy="' + cy + '" r="' + (r1 - 1) + '" fill="white"/><text x="' + cx + '" y="' + cy + '" text-anchor="middle" dy="-6" font-size="14" font-weight="600">${d}</text><text x="' + cx + '" y="' + cy + '" text-anchor="middle" dy="14" font-size="11" fill="#888">total</text></svg></div>';
189
189
  }
190
190
 
191
191
  function renderList(container) {
@@ -228,8 +228,8 @@ function renderPieChart() {
228
228
  legend.innerHTML = items.map((d, i) => '<div class="legend-item"><div class="legend-color" style="background:' + COLORS[i % COLORS.length] + '"></div><span>' + d.extension + ' (' + d.percentage.toFixed(1) + '%)</span></div>').join('');
229
229
  }
230
230
 
231
- renderChart('${d}');
231
+ renderChart('${r}');
232
232
  renderPieChart();
233
233
  <\/script>
234
234
  </body>
235
- </html>`}class $ extends factory_index.BasePlugin{analysisResult=null;getDefaultOptions(){return{outputFormat:"json",outputFile:"bundle-analysis",openAnalyzer:!1,sizeThreshold:100,topModules:20,compareWith:null,gzipSize:!0,excludeNodeModules:!1,excludePatterns:[],includeExtensions:[],defaultChartType:"treemap"}}validateOptions(){this.validator.field("outputFormat").enum(["json","html","both"]).field("openAnalyzer").boolean().field("sizeThreshold").number().minValue(0).field("topModules").number().minValue(1).field("gzipSize").boolean().field("excludeNodeModules").boolean().field("defaultChartType").enum(["treemap","sunburst","list"]).validate()}getPluginName(){return"bundle-analyzer"}getEnforce(){return"post"}addPluginHooks(s){s.writeBundle={order:"post",handler:async()=>{await this.safeExecute(()=>this.runAnalysis(),"\u5206\u6790\u6784\u5EFA\u4EA7\u7269")}}}async runAnalysis(){if(!this.viteConfig)return;const s=this.viteConfig.build.outDir;this.analysisResult=await analyzeBundle(s,this.options),this.options.compareWith&&await this.performComparison(),this.logSummary(),this.logWarnings(),await this.generateReports(s),this.options.openAnalyzer&&(this.options.outputFormat==="html"||this.options.outputFormat==="both")&&await this.openHtmlReport(s)}async performComparison(){if(!this.analysisResult||!this.options.compareWith)return;const s=await loadPreviousReport(this.options.compareWith);if(!s){this.logger.info(`\u672A\u627E\u5230\u5BF9\u6BD4\u62A5\u544A: ${this.options.compareWith}\uFF0C\u8DF3\u8FC7\u5BF9\u6BD4\u5206\u6790`);return}const e=compareWithPrevious(this.analysisResult,s);if(this.analysisResult.comparisonDiffs=e,e.length>0){const r=e.filter(l=>l.trend==="increased").length,o=e.filter(l=>l.trend==="decreased").length,t=e.filter(l=>l.trend==="added").length,d=e.filter(l=>l.trend==="removed").length;this.logger.info(`\u6784\u5EFA\u5BF9\u6BD4: ${r} \u4E2A\u589E\u5927, ${o} \u4E2A\u51CF\u5C0F, ${t} \u4E2A\u65B0\u589E, ${d} \u4E2A\u79FB\u9664`)}}async generateReports(s){if(!this.analysisResult)return;const{outputFormat:e,outputFile:r}=this.options;if(e==="json"||e==="both"){const o=await generateJsonReport(s,r,this.analysisResult);this.logger.info(`JSON \u62A5\u544A\u5DF2\u751F\u6210: ${o}`)}if(e==="html"||e==="both"){const o=await generateHtmlReport(s,r,this.analysisResult,{defaultChartType:this.options.defaultChartType});this.logger.info(`HTML \u62A5\u544A\u5DF2\u751F\u6210: ${o}`)}}async openHtmlReport(s){const e=`${s}/${this.options.outputFile}.html`;try{const{exec:r}=await import("node:child_process"),o=process.platform;r(o==="win32"?`start "" "${e}"`:o==="darwin"?`open "${e}"`:`xdg-open "${e}"`),this.logger.info(`\u5DF2\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00\u62A5\u544A: ${e}`)}catch{this.logger.warn(`\u65E0\u6CD5\u81EA\u52A8\u6253\u5F00\u6D4F\u89C8\u5668\uFF0C\u8BF7\u624B\u52A8\u6253\u5F00: ${e}`)}}logSummary(){if(!this.analysisResult)return;const{chunks:s,totalSize:e,totalGzipSize:r,analysisTime:o}=this.analysisResult;this.logger.success(`\u4EA7\u7269\u5206\u6790\u5B8C\u6210: ${s.length} \u4E2A chunk, \u603B\u4F53\u79EF: ${common_format_index.formatFileSize(e)} (gzip: ${common_format_index.formatFileSize(r)}), \u5206\u6790\u8017\u65F6: ${o}ms`);const t=s.filter(c=>c.type==="entry").length,d=s.filter(c=>c.type==="chunk").length,l=s.filter(c=>c.type==="asset").length;if((t>0||d>0||l>0)&&this.logger.info(` \u5165\u53E3: ${t} | \u4EE3\u7801\u5757: ${d} | \u8D44\u6E90: ${l}`),this.analysisResult.topModules.length>0){this.logger.info("\u4F53\u79EF Top 5 \u6A21\u5757:");const c=this.analysisResult.topModules.slice(0,5);for(let n=0;n<c.length;n++){const u=c[n],f=u.isNodeModule?"node_modules":"source";this.logger.info(` ${n+1}. ${common_format_index.formatFileSize(u.size)} (${f}) ${u.id}`)}}}logWarnings(){if(!(!this.analysisResult||this.analysisResult.warnings.length===0)){this.logger.warn(`\u53D1\u73B0 ${this.analysisResult.warnings.length} \u4E2A\u4F53\u79EF\u544A\u8B66:`);for(const s of this.analysisResult.warnings){const e=s.sizeKB>s.thresholdKB*2?"\u{1F534}":"\u{1F7E1}";this.logger.warn(` ${e} ${s.message}`)}}}getResult(){return this.analysisResult}}const bundleAnalyzer=factory_index.createPluginFactory($);exports.bundleAnalyzer=bundleAnalyzer;
235
+ </html>`}class $ extends factory_index.BasePlugin{analysisResult=null;getDefaultOptions(){return{outputFormat:"json",outputFile:"bundle-analysis",openAnalyzer:!1,sizeThreshold:100,topModules:20,compareWith:null,gzipSize:!0,excludeNodeModules:!1,excludePatterns:[],includeExtensions:[],defaultChartType:"treemap"}}validateOptions(){this.validator.field("outputFormat").enum(["json","html","both"]).field("openAnalyzer").boolean().field("sizeThreshold").number().minValue(0).field("topModules").number().minValue(1).field("gzipSize").boolean().field("excludeNodeModules").boolean().field("defaultChartType").enum(["treemap","sunburst","list"]).validate()}getPluginName(){return"bundle-analyzer"}getEnforce(){return"post"}addPluginHooks(i){i.writeBundle={order:"post",handler:async()=>{await this.safeExecute(()=>this.runAnalysis(),"\u5206\u6790\u6784\u5EFA\u4EA7\u7269")}}}async runAnalysis(){if(!this.viteConfig)return;const i=this.viteConfig.build.outDir;this.analysisResult=await analyzeBundle(i,this.options),this.options.compareWith&&await this.performComparison(),this.logSummary(),this.logWarnings(),await this.generateReports(i),this.options.openAnalyzer&&(this.options.outputFormat==="html"||this.options.outputFormat==="both")&&await this.openHtmlReport(i)}async performComparison(){if(!this.analysisResult||!this.options.compareWith)return;const i=await loadPreviousReport(this.options.compareWith);if(!i){this.logger.info(`\u672A\u627E\u5230\u5BF9\u6BD4\u62A5\u544A: ${this.options.compareWith}\uFF0C\u8DF3\u8FC7\u5BF9\u6BD4\u5206\u6790`);return}const e=compareWithPrevious(this.analysisResult,i);if(this.analysisResult.comparisonDiffs=e,e.length>0){const o=e.filter(d=>d.trend==="increased").length,a=e.filter(d=>d.trend==="decreased").length,t=e.filter(d=>d.trend==="added").length,r=e.filter(d=>d.trend==="removed").length;this.logger.info(`\u6784\u5EFA\u5BF9\u6BD4: ${o} \u4E2A\u589E\u5927, ${a} \u4E2A\u51CF\u5C0F, ${t} \u4E2A\u65B0\u589E, ${r} \u4E2A\u79FB\u9664`)}}async generateReports(i){if(!this.analysisResult)return;const{outputFormat:e,outputFile:o}=this.options;if(e==="json"||e==="both"){const a=await generateJsonReport(i,o,this.analysisResult);this.logger.info(`JSON \u62A5\u544A\u5DF2\u751F\u6210: ${a}`)}if(e==="html"||e==="both"){const a=await generateHtmlReport(i,o,this.analysisResult,{defaultChartType:this.options.defaultChartType});this.logger.info(`HTML \u62A5\u544A\u5DF2\u751F\u6210: ${a}`)}}async openHtmlReport(i){const e=`${i}/${this.options.outputFile}.html`;try{const{exec:o}=await import("node:child_process"),a=process.platform;o(a==="win32"?`start "" "${e}"`:a==="darwin"?`open "${e}"`:`xdg-open "${e}"`),this.logger.info(`\u5DF2\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00\u62A5\u544A: ${e}`)}catch{this.logger.warn(`\u65E0\u6CD5\u81EA\u52A8\u6253\u5F00\u6D4F\u89C8\u5668\uFF0C\u8BF7\u624B\u52A8\u6253\u5F00: ${e}`)}}logSummary(){if(!this.analysisResult)return;const{chunks:i,totalSize:e,totalGzipSize:o,analysisTime:a}=this.analysisResult;this.logger.success(`\u4EA7\u7269\u5206\u6790\u5B8C\u6210: ${i.length} \u4E2A chunk, \u603B\u4F53\u79EF: ${common_format_index.formatFileSize(e)} (gzip: ${common_format_index.formatFileSize(o)}), \u5206\u6790\u8017\u65F6: ${a}ms`);const t=i.filter(c=>c.type==="entry").length,r=i.filter(c=>c.type==="chunk").length,d=i.filter(c=>c.type==="asset").length;if((t>0||r>0||d>0)&&this.logger.info(` \u5165\u53E3: ${t} | \u4EE3\u7801\u5757: ${r} | \u8D44\u6E90: ${d}`),this.analysisResult.topModules.length>0){this.logger.info("\u4F53\u79EF Top 5 \u6A21\u5757:");const c=this.analysisResult.topModules.slice(0,5);for(let s=0;s<c.length;s++){const h=c[s],m=h.isNodeModule?"node_modules":"source";this.logger.info(` ${s+1}. ${common_format_index.formatFileSize(h.size)} (${m}) ${h.id}`)}}}logWarnings(){if(!(!this.analysisResult||this.analysisResult.warnings.length===0)){this.logger.warn(`\u53D1\u73B0 ${this.analysisResult.warnings.length} \u4E2A\u4F53\u79EF\u544A\u8B66:`);for(const i of this.analysisResult.warnings){const e=i.sizeKB>i.thresholdKB*2?"\u{1F534}":"\u{1F7E1}";this.logger.warn(` ${e} ${i.message}`)}}}getResult(){return this.analysisResult}}const bundleAnalyzer=factory_index.createPluginFactory($);exports.bundleAnalyzer=bundleAnalyzer;