@meng-xi/vite-plugin 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README-en.md +48 -774
  2. package/README.md +45 -769
  3. package/dist/common/html/index.cjs +2 -2
  4. package/dist/common/html/index.d.cts +268 -19
  5. package/dist/common/html/index.d.mts +268 -19
  6. package/dist/common/html/index.d.ts +268 -19
  7. package/dist/common/html/index.mjs +2 -2
  8. package/dist/common/index.cjs +1 -1
  9. package/dist/common/index.d.cts +4 -1
  10. package/dist/common/index.d.mts +4 -1
  11. package/dist/common/index.d.ts +4 -1
  12. package/dist/common/index.mjs +1 -1
  13. package/dist/common/ui/index.cjs +1 -0
  14. package/dist/common/ui/index.d.cts +132 -0
  15. package/dist/common/ui/index.d.mts +132 -0
  16. package/dist/common/ui/index.d.ts +132 -0
  17. package/dist/common/ui/index.mjs +1 -0
  18. package/dist/common/validation/index.cjs +1 -1
  19. package/dist/common/validation/index.d.cts +1 -0
  20. package/dist/common/validation/index.d.mts +1 -0
  21. package/dist/common/validation/index.d.ts +1 -0
  22. package/dist/common/validation/index.mjs +1 -1
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.d.cts +6 -2
  25. package/dist/index.d.mts +6 -2
  26. package/dist/index.d.ts +6 -2
  27. package/dist/index.mjs +1 -1
  28. package/dist/plugins/buildProgress/index.cjs +2 -2
  29. package/dist/plugins/buildProgress/index.mjs +2 -2
  30. package/dist/plugins/copyFile/index.d.cts +20 -2
  31. package/dist/plugins/copyFile/index.d.mts +20 -2
  32. package/dist/plugins/copyFile/index.d.ts +20 -2
  33. package/dist/plugins/envGuard/index.cjs +67 -0
  34. package/dist/plugins/envGuard/index.d.cts +156 -0
  35. package/dist/plugins/envGuard/index.d.mts +156 -0
  36. package/dist/plugins/envGuard/index.d.ts +156 -0
  37. package/dist/plugins/envGuard/index.mjs +67 -0
  38. package/dist/plugins/faviconManager/index.cjs +1 -1
  39. package/dist/plugins/faviconManager/index.d.cts +43 -5
  40. package/dist/plugins/faviconManager/index.d.mts +43 -5
  41. package/dist/plugins/faviconManager/index.d.ts +43 -5
  42. package/dist/plugins/faviconManager/index.mjs +1 -1
  43. package/dist/plugins/generateRouter/index.d.cts +61 -14
  44. package/dist/plugins/generateRouter/index.d.mts +61 -14
  45. package/dist/plugins/generateRouter/index.d.ts +61 -14
  46. package/dist/plugins/generateVersion/index.d.cts +12 -0
  47. package/dist/plugins/generateVersion/index.d.mts +12 -0
  48. package/dist/plugins/generateVersion/index.d.ts +12 -0
  49. package/dist/plugins/htmlInject/index.cjs +1 -7
  50. package/dist/plugins/htmlInject/index.d.cts +49 -194
  51. package/dist/plugins/htmlInject/index.d.mts +49 -194
  52. package/dist/plugins/htmlInject/index.d.ts +49 -194
  53. package/dist/plugins/htmlInject/index.mjs +1 -7
  54. package/dist/plugins/index.cjs +1 -1
  55. package/dist/plugins/index.d.cts +4 -1
  56. package/dist/plugins/index.d.mts +4 -1
  57. package/dist/plugins/index.d.ts +4 -1
  58. package/dist/plugins/index.mjs +1 -1
  59. package/dist/plugins/loadingManager/index.cjs +2 -2
  60. package/dist/plugins/loadingManager/index.mjs +1 -1
  61. package/dist/plugins/versionUpdateChecker/index.cjs +2 -2
  62. package/dist/plugins/versionUpdateChecker/index.mjs +3 -3
  63. package/dist/shared/vite-plugin.BCuhU1au.mjs +7 -0
  64. package/dist/shared/vite-plugin.BrI73DHA.cjs +7 -0
  65. package/dist/shared/vite-plugin.CmtcnItg.d.cts +261 -0
  66. package/dist/shared/vite-plugin.CmtcnItg.d.mts +261 -0
  67. package/dist/shared/vite-plugin.CmtcnItg.d.ts +261 -0
  68. package/dist/shared/vite-plugin.DnFDPjNf.mjs +1 -0
  69. package/dist/shared/vite-plugin.Dumot0up.mjs +1 -0
  70. package/dist/shared/vite-plugin.FfJ-Wwfu.d.cts +143 -0
  71. package/dist/shared/vite-plugin.FfJ-Wwfu.d.mts +143 -0
  72. package/dist/shared/vite-plugin.FfJ-Wwfu.d.ts +143 -0
  73. package/dist/shared/vite-plugin.soT9a-KD.cjs +1 -0
  74. package/dist/shared/vite-plugin.vwox4bU0.cjs +1 -0
  75. package/package.json +11 -1
@@ -0,0 +1,132 @@
1
+ /**
2
+ * 终端 UI 工具模块
3
+ *
4
+ * @module common/ui/terminal
5
+ * @description 提供终端 ANSI 转义码处理、Spinner 动画帧和字符串清理等工具函数,
6
+ * 用于在终端中实现彩色输出、光标控制和进度动画等功能。
7
+ */
8
+ /**
9
+ * Spinner 动画帧序列
10
+ *
11
+ * @description 根据操作系统平台自动选择合适的动画帧:
12
+ * - Windows:使用 ASCII 字符 `|`, `/`, `-`, `\`,确保在传统终端中正常显示
13
+ * - 其他平台:使用 Unicode Braille 字符 `⠋`-`⠏`,视觉效果更流畅
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * let frameIndex = 0
18
+ * setInterval(() => {
19
+ * process.stdout.write(`\r${SPINNER_FRAMES[frameIndex]} Loading...`)
20
+ * frameIndex = (frameIndex + 1) % SPINNER_FRAMES.length
21
+ * }, 80)
22
+ * ```
23
+ */
24
+ declare const SPINNER_FRAMES: string[];
25
+ /**
26
+ * ANSI 转义码工具集
27
+ *
28
+ * @description 提供常用的终端 ANSI 转义码常量和彩色文本包装函数,
29
+ * 用于在终端中实现文本着色、光标控制和行清理等操作。
30
+ *
31
+ * @property reset - 将光标重置到行首(`\x1b[0G`)
32
+ * @property clearLine - 清除当前行内容(`\x1b[2K`)
33
+ * @property hideCursor - 隐藏终端光标(`\x1b[?25l`)
34
+ * @property showCursor - 显示终端光标(`\x1b[?25h`)
35
+ * @property green - 将文本包装为绿色
36
+ * @property cyan - 将文本包装为青色
37
+ * @property gray - 将文本包装为灰色
38
+ * @property bold - 将文本包装为粗体
39
+ * @property red - 将文本包装为红色
40
+ * @property yellow - 将文本包装为黄色
41
+ * @property magenta - 将文本包装为品红色
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * // 彩色输出
46
+ * console.log(ANSI.green('✓') + ' 构建成功')
47
+ * console.log(ANSI.red('✗') + ' 构建失败')
48
+ * console.log(ANSI.bold(ANSI.cyan('信息:')) + ' 正在处理...')
49
+ *
50
+ * // 光标控制
51
+ * process.stdout.write(ANSI.hideCursor)
52
+ * // ... 动画逻辑 ...
53
+ * process.stdout.write(ANSI.showCursor)
54
+ *
55
+ * // 行清理与重写
56
+ * process.stdout.write(ANSI.clearLine + ANSI.reset + ANSI.green('完成'))
57
+ * ```
58
+ */
59
+ declare const ANSI: {
60
+ /** 将光标重置到行首 */
61
+ reset: string;
62
+ /** 清除当前行内容 */
63
+ clearLine: string;
64
+ /** 隐藏终端光标 */
65
+ hideCursor: string;
66
+ /** 显示终端光标 */
67
+ showCursor: string;
68
+ /**
69
+ * 将文本包装为绿色
70
+ * @param t - 要着色的文本
71
+ * @returns 包含绿色 ANSI 转义码的字符串
72
+ */
73
+ green: (t: string) => string;
74
+ /**
75
+ * 将文本包装为青色
76
+ * @param t - 要着色的文本
77
+ * @returns 包含青色 ANSI 转义码的字符串
78
+ */
79
+ cyan: (t: string) => string;
80
+ /**
81
+ * 将文本包装为灰色
82
+ * @param t - 要着色的文本
83
+ * @returns 包含灰色 ANSI 转义码的字符串
84
+ */
85
+ gray: (t: string) => string;
86
+ /**
87
+ * 将文本包装为粗体
88
+ * @param t - 要加粗的文本
89
+ * @returns 包含粗体 ANSI 转义码的字符串
90
+ */
91
+ bold: (t: string) => string;
92
+ /**
93
+ * 将文本包装为红色
94
+ * @param t - 要着色的文本
95
+ * @returns 包含红色 ANSI 转义码的字符串
96
+ */
97
+ red: (t: string) => string;
98
+ /**
99
+ * 将文本包装为黄色
100
+ * @param t - 要着色的文本
101
+ * @returns 包含黄色 ANSI 转义码的字符串
102
+ */
103
+ yellow: (t: string) => string;
104
+ /**
105
+ * 将文本包装为品红色
106
+ * @param t - 要着色的文本
107
+ * @returns 包含品红色 ANSI 转义码的字符串
108
+ */
109
+ magenta: (t: string) => string;
110
+ };
111
+ /**
112
+ * 移除字符串中的所有 ANSI 转义码
113
+ *
114
+ * @param str - 可能包含 ANSI 转义码的字符串
115
+ * @returns 不包含任何 ANSI 转义码的纯文本字符串
116
+ *
117
+ * @description 使用正则表达式匹配并移除所有形如 `\x1b[...m` 的 ANSI 转义序列,
118
+ * 常用于计算文本实际显示宽度或将彩色输出转为纯文本。
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const colored = ANSI.green('hello') + ' ' + ANSI.red('world')
123
+ * stripAnsi(colored) // 'hello world'
124
+ *
125
+ * // 计算终端显示宽度
126
+ * const text = ANSI.bold(ANSI.cyan('状态:')) + ' 完成'
127
+ * stripAnsi(text).length // 7 (不含转义码的实际字符数)
128
+ * ```
129
+ */
130
+ declare function stripAnsi(str: string): string;
131
+
132
+ export { ANSI, SPINNER_FRAMES, stripAnsi };
@@ -0,0 +1 @@
1
+ const B=process.platform==="win32"?["|","/","-","\\"]:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],m={reset:"\x1B[0G",clearLine:"\x1B[2K",hideCursor:"\x1B[?25l",showCursor:"\x1B[?25h",green:x=>`\x1B[32m${x}\x1B[39m`,cyan:x=>`\x1B[36m${x}\x1B[39m`,gray:x=>`\x1B[90m${x}\x1B[39m`,bold:x=>`\x1B[1m${x}\x1B[22m`,red:x=>`\x1B[31m${x}\x1B[39m`,yellow:x=>`\x1B[33m${x}\x1B[39m`,magenta:x=>`\x1B[35m${x}\x1B[39m`},r=/\x1b\[[0-9;]*m/g;function e(x){return x.replace(r,"")}export{m as ANSI,B as SPINNER_FRAMES,e as stripAnsi};
@@ -1 +1 @@
1
- "use strict";const validator=require("../../shared/vite-plugin.Bcg6RW2N.cjs"),common_script_index=require("../script/index.cjs");function validateGlobalName(t,e){if(t)try{common_script_index.validateIdentifierName(t)}catch(i){throw new Error(`${e} ${i.message}`)}}function validateNoScriptInTemplate(t,e){if(t&&common_script_index.containsScriptTag(t))throw new Error(`${e} \u4E0D\u5141\u8BB8\u5305\u542B <script> \u6807\u7B7E`)}function validateCallbackFields(t,e,i){for(const o of e){const a=t[o];if(a!==void 0&&typeof a!="string")throw new Error(`${i}.${o} \u5FC5\u987B\u662F\u5B57\u7B26\u4E32\u7C7B\u578B`);if(a&&common_script_index.containsScriptTag(a))throw new Error(`${i}.${o} \u4E0D\u5141\u8BB8\u5305\u542B <script> \u6807\u7B7E`)}}function validateNonNegativeNumber(t,e){if(t!==void 0&&(typeof t!="number"||t<0))throw new Error(`${e} \u5FC5\u987B\u662F\u975E\u8D1F\u6570`)}function validateNestedDuration(t,e){if(t?.duration!==void 0&&(typeof t.duration!="number"||t.duration<0))throw new Error(e)}function validateEnumValue(t,e,i){if(t&&!e.includes(t))throw new Error(`${i} \u5FC5\u987B\u662F ${e.join(", ")}`)}exports.Validator=validator.Validator,exports.validateCallbackFields=validateCallbackFields,exports.validateEnumValue=validateEnumValue,exports.validateGlobalName=validateGlobalName,exports.validateNestedDuration=validateNestedDuration,exports.validateNoScriptInTemplate=validateNoScriptInTemplate,exports.validateNonNegativeNumber=validateNonNegativeNumber;
1
+ "use strict";const validator=require("../../shared/vite-plugin.Bcg6RW2N.cjs"),validators=require("../../shared/vite-plugin.soT9a-KD.cjs"),env=require("../../shared/vite-plugin.vwox4bU0.cjs");require("../script/index.cjs"),exports.Validator=validator.Validator,exports.validateCallbackFields=validators.validateCallbackFields,exports.validateEnumValue=validators.validateEnumValue,exports.validateGlobalName=validators.validateGlobalName,exports.validateNestedDuration=validators.validateNestedDuration,exports.validateNoScriptInTemplate=validators.validateNoScriptInTemplate,exports.validateNonNegativeNumber=validators.validateNonNegativeNumber,exports.STRING_LIKE_TYPES=env.STRING_LIKE_TYPES,exports.validateEnvironment=env.validateEnvironment,exports.validateLength=env.validateLength,exports.validateRange=env.validateRange,exports.validateType=env.validateType,exports.validateValue=env.validateValue;
@@ -1,4 +1,5 @@
1
1
  export { V as Validator } from '../../shared/vite-plugin.DRRlWY8P.cjs';
2
+ export { E as EnvFieldRule, a as EnvType, b as EnvValidationResult, S as STRING_LIKE_TYPES, v as validateEnvironment, c as validateLength, d as validateRange, e as validateType, f as validateValue } from '../../shared/vite-plugin.CmtcnItg.cjs';
2
3
 
3
4
  /**
4
5
  * 验证全局变量名的合法性(包装 validateIdentifierName,附加字段上下文信息)
@@ -1,4 +1,5 @@
1
1
  export { V as Validator } from '../../shared/vite-plugin.DRRlWY8P.mjs';
2
+ export { E as EnvFieldRule, a as EnvType, b as EnvValidationResult, S as STRING_LIKE_TYPES, v as validateEnvironment, c as validateLength, d as validateRange, e as validateType, f as validateValue } from '../../shared/vite-plugin.CmtcnItg.mjs';
2
3
 
3
4
  /**
4
5
  * 验证全局变量名的合法性(包装 validateIdentifierName,附加字段上下文信息)
@@ -1,4 +1,5 @@
1
1
  export { V as Validator } from '../../shared/vite-plugin.DRRlWY8P.js';
2
+ export { E as EnvFieldRule, a as EnvType, b as EnvValidationResult, S as STRING_LIKE_TYPES, v as validateEnvironment, c as validateLength, d as validateRange, e as validateType, f as validateValue } from '../../shared/vite-plugin.CmtcnItg.js';
2
3
 
3
4
  /**
4
5
  * 验证全局变量名的合法性(包装 validateIdentifierName,附加字段上下文信息)
@@ -1 +1 @@
1
- export{V as Validator}from"../../shared/vite-plugin.DcExl6jd.mjs";import{containsScriptTag as e,validateIdentifierName as n}from"../script/index.mjs";function a(u,t){if(u)try{n(u)}catch(o){throw new Error(`${t} ${o.message}`)}}function f(u,t){if(u&&e(u))throw new Error(`${t} \u4E0D\u5141\u8BB8\u5305\u542B <script> \u6807\u7B7E`)}function d(u,t,o){for(const i of t){const r=u[i];if(r!==void 0&&typeof r!="string")throw new Error(`${o}.${i} \u5FC5\u987B\u662F\u5B57\u7B26\u4E32\u7C7B\u578B`);if(r&&e(r))throw new Error(`${o}.${i} \u4E0D\u5141\u8BB8\u5305\u542B <script> \u6807\u7B7E`)}}function c(u,t){if(u!==void 0&&(typeof u!="number"||u<0))throw new Error(`${t} \u5FC5\u987B\u662F\u975E\u8D1F\u6570`)}function l(u,t){if(u?.duration!==void 0&&(typeof u.duration!="number"||u.duration<0))throw new Error(t)}function B(u,t,o){if(u&&!t.includes(u))throw new Error(`${o} \u5FC5\u987B\u662F ${t.join(", ")}`)}export{d as validateCallbackFields,B as validateEnumValue,a as validateGlobalName,l as validateNestedDuration,f as validateNoScriptInTemplate,c as validateNonNegativeNumber};
1
+ export{V as Validator}from"../../shared/vite-plugin.DcExl6jd.mjs";export{v as validateCallbackFields,a as validateEnumValue,b as validateGlobalName,c as validateNestedDuration,d as validateNoScriptInTemplate,e as validateNonNegativeNumber}from"../../shared/vite-plugin.Dumot0up.mjs";export{S as STRING_LIKE_TYPES,v as validateEnvironment,a as validateLength,b as validateRange,c as validateType,d as validateValue}from"../../shared/vite-plugin.DnFDPjNf.mjs";import"../script/index.mjs";
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const common_compress_index=require("./common/compress/index.cjs"),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_object_index=require("./common/object/index.cjs"),common_path_index=require("./common/path/index.cjs"),common_script_index=require("./common/script/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_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_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");require("node:zlib"),require("node:stream/promises"),require("node:stream"),require("crypto"),require("node:path"),require("fs"),require("path"),require("node:fs"),exports.calculateGzipSize=common_compress_index.calculateGzipSize,exports.escapeHtmlAttr=common_format_index.escapeHtmlAttr,exports.formatDate=common_format_index.formatDate,exports.formatFileSize=common_format_index.formatFileSize,exports.generateRandomHash=common_format_index.generateRandomHash,exports.getDateFormatParams=common_format_index.getDateFormatParams,exports.getExtension=common_format_index.getExtension,exports.padNumber=common_format_index.padNumber,exports.parseTemplate=common_format_index.parseTemplate,exports.stripJsonComments=common_format_index.stripJsonComments,exports.toCamelCase=common_format_index.toCamelCase,exports.toPascalCase=common_format_index.toPascalCase,exports.checkSourceExists=common_fs_index.checkSourceExists,exports.copySourceToTarget=common_fs_index.copySourceToTarget,exports.ensureTargetDir=common_fs_index.ensureTargetDir,exports.fileExists=common_fs_index.fileExists,exports.readDirRecursive=common_fs_index.readDirRecursive,exports.readFileContent=common_fs_index.readFileContent,exports.readFileSync=common_fs_index.readFileSync,exports.runWithConcurrency=common_fs_index.runWithConcurrency,exports.scanDirectory=common_fs_index.scanDirectory,exports.shouldUpdateFile=common_fs_index.shouldUpdateFile,exports.writeFileContent=common_fs_index.writeFileContent,exports.writeJsonReport=common_fs_index.writeJsonReport,exports.injectBeforeTag=common_html_index.injectBeforeTag,exports.injectBeforeTagWithFallback=common_html_index.injectBeforeTagWithFallback,exports.injectHeadAndBody=common_html_index.injectHeadAndBody,exports.injectHtmlByPriority=common_html_index.injectHtmlByPriority,exports.deepMerge=common_object_index.deepMerge,exports.isNodeModule=common_path_index.isNodeModule,exports.containsScriptTag=common_script_index.containsScriptTag,exports.makeCallback=common_script_index.makeCallback,exports.validateIdentifierName=common_script_index.validateIdentifierName,exports.Validator=validator.Validator,exports.validateCallbackFields=common_validation_index.validateCallbackFields,exports.validateEnumValue=common_validation_index.validateEnumValue,exports.validateGlobalName=common_validation_index.validateGlobalName,exports.validateNestedDuration=common_validation_index.validateNestedDuration,exports.validateNoScriptInTemplate=common_validation_index.validateNoScriptInTemplate,exports.validateNonNegativeNumber=common_validation_index.validateNonNegativeNumber,exports.BasePlugin=factory_index.BasePlugin,exports.createPluginFactory=factory_index.createPluginFactory,exports.Logger=logger_index.Logger,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.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;
1
+ "use strict";const common_compress_index=require("./common/compress/index.cjs"),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_object_index=require("./common/object/index.cjs"),common_path_index=require("./common/path/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"),validators=require("./shared/vite-plugin.soT9a-KD.cjs"),env=require("./shared/vite-plugin.vwox4bU0.cjs"),factory_index=require("./factory/index.cjs"),logger_index=require("./logger/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.BrI73DHA.cjs");require("node:zlib"),require("node:stream/promises"),require("node:stream"),require("crypto"),require("node:path"),require("fs"),require("path"),require("node:fs"),exports.calculateGzipSize=common_compress_index.calculateGzipSize,exports.escapeHtmlAttr=common_format_index.escapeHtmlAttr,exports.formatDate=common_format_index.formatDate,exports.formatFileSize=common_format_index.formatFileSize,exports.generateRandomHash=common_format_index.generateRandomHash,exports.getDateFormatParams=common_format_index.getDateFormatParams,exports.getExtension=common_format_index.getExtension,exports.padNumber=common_format_index.padNumber,exports.parseTemplate=common_format_index.parseTemplate,exports.stripJsonComments=common_format_index.stripJsonComments,exports.toCamelCase=common_format_index.toCamelCase,exports.toPascalCase=common_format_index.toPascalCase,exports.checkSourceExists=common_fs_index.checkSourceExists,exports.copySourceToTarget=common_fs_index.copySourceToTarget,exports.ensureTargetDir=common_fs_index.ensureTargetDir,exports.fileExists=common_fs_index.fileExists,exports.readDirRecursive=common_fs_index.readDirRecursive,exports.readFileContent=common_fs_index.readFileContent,exports.readFileSync=common_fs_index.readFileSync,exports.runWithConcurrency=common_fs_index.runWithConcurrency,exports.scanDirectory=common_fs_index.scanDirectory,exports.shouldUpdateFile=common_fs_index.shouldUpdateFile,exports.writeFileContent=common_fs_index.writeFileContent,exports.writeJsonReport=common_fs_index.writeJsonReport,exports.injectBeforeTag=common_html_index.injectBeforeTag,exports.injectBeforeTagWithFallback=common_html_index.injectBeforeTagWithFallback,exports.injectHeadAndBody=common_html_index.injectHeadAndBody,exports.injectHtmlByPriority=common_html_index.injectHtmlByPriority,exports.deepMerge=common_object_index.deepMerge,exports.isNodeModule=common_path_index.isNodeModule,exports.containsScriptTag=common_script_index.containsScriptTag,exports.makeCallback=common_script_index.makeCallback,exports.validateIdentifierName=common_script_index.validateIdentifierName,exports.ANSI=common_ui_index.ANSI,exports.SPINNER_FRAMES=common_ui_index.SPINNER_FRAMES,exports.stripAnsi=common_ui_index.stripAnsi,exports.Validator=validator.Validator,exports.validateCallbackFields=validators.validateCallbackFields,exports.validateEnumValue=validators.validateEnumValue,exports.validateGlobalName=validators.validateGlobalName,exports.validateNestedDuration=validators.validateNestedDuration,exports.validateNoScriptInTemplate=validators.validateNoScriptInTemplate,exports.validateNonNegativeNumber=validators.validateNonNegativeNumber,exports.STRING_LIKE_TYPES=env.STRING_LIKE_TYPES,exports.validateEnvironment=env.validateEnvironment,exports.validateLength=env.validateLength,exports.validateRange=env.validateRange,exports.validateType=env.validateType,exports.validateValue=env.validateValue,exports.BasePlugin=factory_index.BasePlugin,exports.createPluginFactory=factory_index.createPluginFactory,exports.Logger=logger_index.Logger,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.DEFAULT_BLOCKED_ATTRIBUTES=security.DEFAULT_BLOCKED_ATTRIBUTES,exports.DEFAULT_BLOCKED_TAGS=security.DEFAULT_BLOCKED_TAGS,exports.applyTemplateVars=security.applyTemplateVars,exports.evaluateCondition=security.evaluateCondition,exports.findSelectorMatch=security.findSelectorMatch,exports.injectAtPosition=security.injectAtPosition,exports.sanitizeContent=security.sanitizeContent,exports.sortRulesByPriority=security.sortRulesByPriority,exports.validateSecurityConfig=security.validateSecurityConfig;
package/dist/index.d.cts CHANGED
@@ -1,22 +1,26 @@
1
1
  export { calculateGzipSize } from './common/compress/index.cjs';
2
2
  export { DateFormatOptions, escapeHtmlAttr, formatDate, formatFileSize, generateRandomHash, getDateFormatParams, getExtension, padNumber, parseTemplate, stripJsonComments, toCamelCase, toPascalCase } from './common/format/index.cjs';
3
3
  export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, ensureTargetDir, fileExists, readDirRecursive, readFileContent, readFileSync, runWithConcurrency, scanDirectory, shouldUpdateFile, writeFileContent, writeJsonReport } from './common/fs/index.cjs';
4
- export { DualInjectResult, HtmlInjectResult, injectBeforeTag, injectBeforeTagWithFallback, injectHeadAndBody, injectHtmlByPriority } from './common/html/index.cjs';
4
+ export { DEFAULT_BLOCKED_ATTRIBUTES, DEFAULT_BLOCKED_TAGS, SanitizeRuleOptions, applyTemplateVars, evaluateCondition, findSelectorMatch, injectAtPosition, injectBeforeTag, injectBeforeTagWithFallback, injectHeadAndBody, injectHtmlByPriority, sanitizeContent, sortRulesByPriority, validateSecurityConfig } from './common/html/index.cjs';
5
5
  export { deepMerge } from './common/object/index.cjs';
6
6
  export { isNodeModule } from './common/path/index.cjs';
7
7
  export { containsScriptTag, makeCallback, validateIdentifierName } from './common/script/index.cjs';
8
+ export { ANSI, SPINNER_FRAMES, stripAnsi } from './common/ui/index.cjs';
8
9
  export { V as Validator } from './shared/vite-plugin.DRRlWY8P.cjs';
9
10
  export { validateCallbackFields, validateEnumValue, validateGlobalName, validateNestedDuration, validateNoScriptInTemplate, validateNonNegativeNumber } from './common/validation/index.cjs';
11
+ export { E as EnvFieldRule, a as EnvType, b as EnvValidationResult, S as STRING_LIKE_TYPES, v as validateEnvironment, c as validateLength, d as validateRange, e as validateType, f as validateValue } from './shared/vite-plugin.CmtcnItg.cjs';
10
12
  export { BasePlugin, BasePluginOptions, OptionsNormalizer, PluginFactory, PluginWithInstance, createPluginFactory } from './factory/index.cjs';
11
13
  export { L as Logger, P as PluginLogger } from './shared/vite-plugin.CLr0ttuO.cjs';
12
14
  export { BuildPhase, BuildProgressOptions, ProgressFormat, ProgressTheme, buildProgress } from './plugins/buildProgress/index.cjs';
13
15
  export { BundleAnalysisResult, BundleAnalyzerOptions, BundleOutputFormat, ChunkStats, ComparisonDiff, FileTypeDistribution, ModuleStats, SizeWarning, bundleAnalyzer } from './plugins/bundleAnalyzer/index.cjs';
14
16
  export { CompressAlgorithm, CompressAssetsOptions, CompressStats, CompressSummary, compressAssets } from './plugins/compressAssets/index.cjs';
15
17
  export { CopyFileOptions, copyFile } from './plugins/copyFile/index.cjs';
18
+ export { EnvFailAction, EnvGuardOptions, EnvGuardResult, RuntimeGuardMode, envGuard } from './plugins/envGuard/index.cjs';
16
19
  export { FaviconManagerOptions, Icon, faviconManager } from './plugins/faviconManager/index.cjs';
17
20
  export { GenerateRouterOptions, NameStrategy, OutputFormat, RouteConfig, RouteMeta, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.cjs';
18
21
  export { GenerateVersionOptions, OutputType, VersionFormat, VersionInfo, generateVersion } from './plugins/generateVersion/index.cjs';
19
- export { ConditionType, HtmlInjectOptions, InjectCondition, InjectPosition, InjectRule, InjectionLogEntry, SecurityConfig, SelectorMatch, htmlInject } from './plugins/htmlInject/index.cjs';
22
+ export { HtmlInjectOptions, InjectRule, InjectionLogEntry, htmlInject } from './plugins/htmlInject/index.cjs';
20
23
  export { AutoBindMode, AutoHideOn, DebounceHide, DelayShow, LoadingCallbacks, LoadingManager, LoadingManagerOptions, LoadingPosition, LoadingStyle, MinDisplayTime, RequestFilter, SpinnerType, TransitionConfig, loadingManager } from './plugins/loadingManager/index.cjs';
21
24
  export { PromptStyle, VersionSource, VersionUpdateCheckerOptions, versionUpdateChecker } from './plugins/versionUpdateChecker/index.cjs';
25
+ export { C as ConditionType, D as DualInjectResult, H as HtmlInjectResult, I as InjectCondition, a as InjectPosition, P as PositionInjectResult, S as SecurityConfig, b as SelectorMatch } from './shared/vite-plugin.FfJ-Wwfu.cjs';
22
26
  import 'vite';
package/dist/index.d.mts CHANGED
@@ -1,22 +1,26 @@
1
1
  export { calculateGzipSize } from './common/compress/index.mjs';
2
2
  export { DateFormatOptions, escapeHtmlAttr, formatDate, formatFileSize, generateRandomHash, getDateFormatParams, getExtension, padNumber, parseTemplate, stripJsonComments, toCamelCase, toPascalCase } from './common/format/index.mjs';
3
3
  export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, ensureTargetDir, fileExists, readDirRecursive, readFileContent, readFileSync, runWithConcurrency, scanDirectory, shouldUpdateFile, writeFileContent, writeJsonReport } from './common/fs/index.mjs';
4
- export { DualInjectResult, HtmlInjectResult, injectBeforeTag, injectBeforeTagWithFallback, injectHeadAndBody, injectHtmlByPriority } from './common/html/index.mjs';
4
+ export { DEFAULT_BLOCKED_ATTRIBUTES, DEFAULT_BLOCKED_TAGS, SanitizeRuleOptions, applyTemplateVars, evaluateCondition, findSelectorMatch, injectAtPosition, injectBeforeTag, injectBeforeTagWithFallback, injectHeadAndBody, injectHtmlByPriority, sanitizeContent, sortRulesByPriority, validateSecurityConfig } from './common/html/index.mjs';
5
5
  export { deepMerge } from './common/object/index.mjs';
6
6
  export { isNodeModule } from './common/path/index.mjs';
7
7
  export { containsScriptTag, makeCallback, validateIdentifierName } from './common/script/index.mjs';
8
+ export { ANSI, SPINNER_FRAMES, stripAnsi } from './common/ui/index.mjs';
8
9
  export { V as Validator } from './shared/vite-plugin.DRRlWY8P.mjs';
9
10
  export { validateCallbackFields, validateEnumValue, validateGlobalName, validateNestedDuration, validateNoScriptInTemplate, validateNonNegativeNumber } from './common/validation/index.mjs';
11
+ export { E as EnvFieldRule, a as EnvType, b as EnvValidationResult, S as STRING_LIKE_TYPES, v as validateEnvironment, c as validateLength, d as validateRange, e as validateType, f as validateValue } from './shared/vite-plugin.CmtcnItg.mjs';
10
12
  export { BasePlugin, BasePluginOptions, OptionsNormalizer, PluginFactory, PluginWithInstance, createPluginFactory } from './factory/index.mjs';
11
13
  export { L as Logger, P as PluginLogger } from './shared/vite-plugin.CLr0ttuO.mjs';
12
14
  export { BuildPhase, BuildProgressOptions, ProgressFormat, ProgressTheme, buildProgress } from './plugins/buildProgress/index.mjs';
13
15
  export { BundleAnalysisResult, BundleAnalyzerOptions, BundleOutputFormat, ChunkStats, ComparisonDiff, FileTypeDistribution, ModuleStats, SizeWarning, bundleAnalyzer } from './plugins/bundleAnalyzer/index.mjs';
14
16
  export { CompressAlgorithm, CompressAssetsOptions, CompressStats, CompressSummary, compressAssets } from './plugins/compressAssets/index.mjs';
15
17
  export { CopyFileOptions, copyFile } from './plugins/copyFile/index.mjs';
18
+ export { EnvFailAction, EnvGuardOptions, EnvGuardResult, RuntimeGuardMode, envGuard } from './plugins/envGuard/index.mjs';
16
19
  export { FaviconManagerOptions, Icon, faviconManager } from './plugins/faviconManager/index.mjs';
17
20
  export { GenerateRouterOptions, NameStrategy, OutputFormat, RouteConfig, RouteMeta, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.mjs';
18
21
  export { GenerateVersionOptions, OutputType, VersionFormat, VersionInfo, generateVersion } from './plugins/generateVersion/index.mjs';
19
- export { ConditionType, HtmlInjectOptions, InjectCondition, InjectPosition, InjectRule, InjectionLogEntry, SecurityConfig, SelectorMatch, htmlInject } from './plugins/htmlInject/index.mjs';
22
+ export { HtmlInjectOptions, InjectRule, InjectionLogEntry, htmlInject } from './plugins/htmlInject/index.mjs';
20
23
  export { AutoBindMode, AutoHideOn, DebounceHide, DelayShow, LoadingCallbacks, LoadingManager, LoadingManagerOptions, LoadingPosition, LoadingStyle, MinDisplayTime, RequestFilter, SpinnerType, TransitionConfig, loadingManager } from './plugins/loadingManager/index.mjs';
21
24
  export { PromptStyle, VersionSource, VersionUpdateCheckerOptions, versionUpdateChecker } from './plugins/versionUpdateChecker/index.mjs';
25
+ export { C as ConditionType, D as DualInjectResult, H as HtmlInjectResult, I as InjectCondition, a as InjectPosition, P as PositionInjectResult, S as SecurityConfig, b as SelectorMatch } from './shared/vite-plugin.FfJ-Wwfu.mjs';
22
26
  import 'vite';
package/dist/index.d.ts CHANGED
@@ -1,22 +1,26 @@
1
1
  export { calculateGzipSize } from './common/compress/index.js';
2
2
  export { DateFormatOptions, escapeHtmlAttr, formatDate, formatFileSize, generateRandomHash, getDateFormatParams, getExtension, padNumber, parseTemplate, stripJsonComments, toCamelCase, toPascalCase } from './common/format/index.js';
3
3
  export { CopyOptions, CopyResult, ScanDirectoryOptions, ScannedFile, checkSourceExists, copySourceToTarget, ensureTargetDir, fileExists, readDirRecursive, readFileContent, readFileSync, runWithConcurrency, scanDirectory, shouldUpdateFile, writeFileContent, writeJsonReport } from './common/fs/index.js';
4
- export { DualInjectResult, HtmlInjectResult, injectBeforeTag, injectBeforeTagWithFallback, injectHeadAndBody, injectHtmlByPriority } from './common/html/index.js';
4
+ export { DEFAULT_BLOCKED_ATTRIBUTES, DEFAULT_BLOCKED_TAGS, SanitizeRuleOptions, applyTemplateVars, evaluateCondition, findSelectorMatch, injectAtPosition, injectBeforeTag, injectBeforeTagWithFallback, injectHeadAndBody, injectHtmlByPriority, sanitizeContent, sortRulesByPriority, validateSecurityConfig } from './common/html/index.js';
5
5
  export { deepMerge } from './common/object/index.js';
6
6
  export { isNodeModule } from './common/path/index.js';
7
7
  export { containsScriptTag, makeCallback, validateIdentifierName } from './common/script/index.js';
8
+ export { ANSI, SPINNER_FRAMES, stripAnsi } from './common/ui/index.js';
8
9
  export { V as Validator } from './shared/vite-plugin.DRRlWY8P.js';
9
10
  export { validateCallbackFields, validateEnumValue, validateGlobalName, validateNestedDuration, validateNoScriptInTemplate, validateNonNegativeNumber } from './common/validation/index.js';
11
+ export { E as EnvFieldRule, a as EnvType, b as EnvValidationResult, S as STRING_LIKE_TYPES, v as validateEnvironment, c as validateLength, d as validateRange, e as validateType, f as validateValue } from './shared/vite-plugin.CmtcnItg.js';
10
12
  export { BasePlugin, BasePluginOptions, OptionsNormalizer, PluginFactory, PluginWithInstance, createPluginFactory } from './factory/index.js';
11
13
  export { L as Logger, P as PluginLogger } from './shared/vite-plugin.CLr0ttuO.js';
12
14
  export { BuildPhase, BuildProgressOptions, ProgressFormat, ProgressTheme, buildProgress } from './plugins/buildProgress/index.js';
13
15
  export { BundleAnalysisResult, BundleAnalyzerOptions, BundleOutputFormat, ChunkStats, ComparisonDiff, FileTypeDistribution, ModuleStats, SizeWarning, bundleAnalyzer } from './plugins/bundleAnalyzer/index.js';
14
16
  export { CompressAlgorithm, CompressAssetsOptions, CompressStats, CompressSummary, compressAssets } from './plugins/compressAssets/index.js';
15
17
  export { CopyFileOptions, copyFile } from './plugins/copyFile/index.js';
18
+ export { EnvFailAction, EnvGuardOptions, EnvGuardResult, RuntimeGuardMode, envGuard } from './plugins/envGuard/index.js';
16
19
  export { FaviconManagerOptions, Icon, faviconManager } from './plugins/faviconManager/index.js';
17
20
  export { GenerateRouterOptions, NameStrategy, OutputFormat, RouteConfig, RouteMeta, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.js';
18
21
  export { GenerateVersionOptions, OutputType, VersionFormat, VersionInfo, generateVersion } from './plugins/generateVersion/index.js';
19
- export { ConditionType, HtmlInjectOptions, InjectCondition, InjectPosition, InjectRule, InjectionLogEntry, SecurityConfig, SelectorMatch, htmlInject } from './plugins/htmlInject/index.js';
22
+ export { HtmlInjectOptions, InjectRule, InjectionLogEntry, htmlInject } from './plugins/htmlInject/index.js';
20
23
  export { AutoBindMode, AutoHideOn, DebounceHide, DelayShow, LoadingCallbacks, LoadingManager, LoadingManagerOptions, LoadingPosition, LoadingStyle, MinDisplayTime, RequestFilter, SpinnerType, TransitionConfig, loadingManager } from './plugins/loadingManager/index.js';
21
24
  export { PromptStyle, VersionSource, VersionUpdateCheckerOptions, versionUpdateChecker } from './plugins/versionUpdateChecker/index.js';
25
+ export { C as ConditionType, D as DualInjectResult, H as HtmlInjectResult, I as InjectCondition, a as InjectPosition, P as PositionInjectResult, S as SecurityConfig, b as SelectorMatch } from './shared/vite-plugin.FfJ-Wwfu.js';
22
26
  import 'vite';
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- export{calculateGzipSize}from"./common/compress/index.mjs";export{escapeHtmlAttr,formatDate,formatFileSize,generateRandomHash,getDateFormatParams,getExtension,padNumber,parseTemplate,stripJsonComments,toCamelCase,toPascalCase}from"./common/format/index.mjs";export{checkSourceExists,copySourceToTarget,ensureTargetDir,fileExists,readDirRecursive,readFileContent,readFileSync,runWithConcurrency,scanDirectory,shouldUpdateFile,writeFileContent,writeJsonReport}from"./common/fs/index.mjs";export{injectBeforeTag,injectBeforeTagWithFallback,injectHeadAndBody,injectHtmlByPriority}from"./common/html/index.mjs";export{deepMerge}from"./common/object/index.mjs";export{isNodeModule}from"./common/path/index.mjs";export{containsScriptTag,makeCallback,validateIdentifierName}from"./common/script/index.mjs";export{V as Validator}from"./shared/vite-plugin.DcExl6jd.mjs";export{validateCallbackFields,validateEnumValue,validateGlobalName,validateNestedDuration,validateNoScriptInTemplate,validateNonNegativeNumber}from"./common/validation/index.mjs";export{BasePlugin,createPluginFactory}from"./factory/index.mjs";export{Logger}from"./logger/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{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";import"node:zlib";import"node:stream/promises";import"node:stream";import"crypto";import"node:path";import"fs";import"path";import"node:fs";
1
+ export{calculateGzipSize}from"./common/compress/index.mjs";export{escapeHtmlAttr,formatDate,formatFileSize,generateRandomHash,getDateFormatParams,getExtension,padNumber,parseTemplate,stripJsonComments,toCamelCase,toPascalCase}from"./common/format/index.mjs";export{checkSourceExists,copySourceToTarget,ensureTargetDir,fileExists,readDirRecursive,readFileContent,readFileSync,runWithConcurrency,scanDirectory,shouldUpdateFile,writeFileContent,writeJsonReport}from"./common/fs/index.mjs";export{injectBeforeTag,injectBeforeTagWithFallback,injectHeadAndBody,injectHtmlByPriority}from"./common/html/index.mjs";export{deepMerge}from"./common/object/index.mjs";export{isNodeModule}from"./common/path/index.mjs";export{containsScriptTag,makeCallback,validateIdentifierName}from"./common/script/index.mjs";export{ANSI,SPINNER_FRAMES,stripAnsi}from"./common/ui/index.mjs";export{V as Validator}from"./shared/vite-plugin.DcExl6jd.mjs";export{v as validateCallbackFields,a as validateEnumValue,b as validateGlobalName,c as validateNestedDuration,d as validateNoScriptInTemplate,e as validateNonNegativeNumber}from"./shared/vite-plugin.Dumot0up.mjs";export{S as STRING_LIKE_TYPES,v as validateEnvironment,a as validateLength,b as validateRange,c as validateType,d as validateValue}from"./shared/vite-plugin.DnFDPjNf.mjs";export{BasePlugin,createPluginFactory}from"./factory/index.mjs";export{Logger}from"./logger/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{D as DEFAULT_BLOCKED_ATTRIBUTES,a as DEFAULT_BLOCKED_TAGS,b as applyTemplateVars,e as evaluateCondition,f as findSelectorMatch,i as injectAtPosition,s as sanitizeContent,c as sortRulesByPriority,v as validateSecurityConfig}from"./shared/vite-plugin.BCuhU1au.mjs";import"node:zlib";import"node:stream/promises";import"node:stream";import"crypto";import"node:path";import"fs";import"path";import"node:fs";
@@ -1,2 +1,2 @@
1
- "use strict";const factory_index=require("../../factory/index.cjs");require("../../logger/index.cjs"),require("../../common/object/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs");const SPINNER_FRAMES=process.platform==="win32"?["|","/","-","\\"]:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],ANSI={reset:"\x1B[0G",clearLine:"\x1B[2K",hideCursor:"\x1B[?25l",showCursor:"\x1B[?25h",green:i=>`\x1B[32m${i}\x1B[39m`,cyan:i=>`\x1B[36m${i}\x1B[39m`,gray:i=>`\x1B[90m${i}\x1B[39m`,bold:i=>`\x1B[1m${i}\x1B[22m`},DEFAULT_THEME={completeColor:ANSI.green,incompleteColor:ANSI.gray,percentageColor:ANSI.bold,phaseColor:ANSI.cyan,moduleColor: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"};class o extends factory_index.BasePlugin{totalModules=0;transformedModules=0;currentModule="";phase="idle";spinnerIndex=0;spinnerTimer=null;isDev=!1;theme=DEFAULT_THEME;lastPercentage=0;static ANSI_REGEX=/\x1b\[[0-9;]*m/g;static stripAnsi(e){return e.replace(o.ANSI_REGEX,"")}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,n=Math.min(Math.floor(15+e+t+s),99);return this.lastPercentage=Math.max(n,this.lastPercentage),this.lastPercentage}renderBar(e){const t=this.options.width||30,s=this.options.completeChar||"\u2588",n=this.options.incompleteChar||"\u2591",r=Math.round(e/100*t),u=t-r;return this.theme.completeColor(s.repeat(r))+this.theme.incompleteColor(n.repeat(u))}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]),n=this.theme.percentageColor(`${e}%`);let r="";if(t==="bar"?r=`${this.renderSpinner()} ${s} ${this.renderBar(e)} ${n}`:t==="spinner"?r=`${this.renderSpinner()} ${s} ${n}`:r=`${s} ${n}`,this.options.showModuleName&&this.currentModule&&this.phase==="transform"){const u=o.stripAnsi(r).length,l=Math.max((process.stdout.columns||80)-u-3,20),a=this.currentModule.length>l?"..."+this.currentModule.slice(-l+3):this.currentModule;r+=` ${this.theme.moduleColor(a)}`}return r}update(){if(!process.stdout.isTTY)return;const e=this.getPercentage(),t=this.render(e);this.safeExecuteSync(()=>{process.stdout.write(ANSI.clearLine+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(ANSI.clearLine+ANSI.reset)},"\u6E05\u9664\u8FDB\u5EA6\u884C");else{const e=this.render(100);this.safeExecuteSync(()=>{process.stdout.write(ANSI.clearLine+ANSI.reset+e+`
2
- `)},"\u8F93\u51FA\u5B8C\u6210\u8FDB\u5EA6")}this.safeExecuteSync(()=>{process.stdout.write(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(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(ANSI.showCursor)},"\u6062\u590D\u5149\u6807\u663E\u793A")}}const buildProgress=factory_index.createPluginFactory(o);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("../../common/object/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"};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=common_ui_index.SPINNER_FRAMES[this.spinnerIndex%common_ui_index.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=common_ui_index.stripAnsi(r).length,n=Math.max((process.stdout.columns||80)-o-3,20),u=this.currentModule.length>n?"..."+this.currentModule.slice(-n+3):this.currentModule;r+=` ${this.theme.moduleColor(u)}`}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,2 +1,2 @@
1
- import{createPluginFactory as c,BasePlugin as m}from"../../factory/index.mjs";import"../../logger/index.mjs";import"../../common/object/index.mjs";import"../../shared/vite-plugin.DcExl6jd.mjs";const h=process.platform==="win32"?["|","/","-","\\"]:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],s={reset:"\x1B[0G",clearLine:"\x1B[2K",hideCursor:"\x1B[?25l",showCursor:"\x1B[?25h",green:o=>`\x1B[32m${o}\x1B[39m`,cyan:o=>`\x1B[36m${o}\x1B[39m`,gray:o=>`\x1B[90m${o}\x1B[39m`,bold:o=>`\x1B[1m${o}\x1B[22m`},d={completeColor:s.green,incompleteColor:s.gray,percentageColor:s.bold,phaseColor:s.cyan,moduleColor:s.gray},f={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"};class u extends m{totalModules=0;transformedModules=0;currentModule="";phase="idle";spinnerIndex=0;spinnerTimer=null;isDev=!1;theme=d;lastPercentage=0;static ANSI_REGEX=/\x1b\[[0-9;]*m/g;static stripAnsi(e){return e.replace(u.ANSI_REGEX,"")}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||d}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,r=this.phase==="write"?5:0,n=Math.min(Math.floor(15+e+t+r),99);return this.lastPercentage=Math.max(n,this.lastPercentage),this.lastPercentage}renderBar(e){const t=this.options.width||30,r=this.options.completeChar||"\u2588",n=this.options.incompleteChar||"\u2591",i=Math.round(e/100*t),l=t-i;return this.theme.completeColor(r.repeat(i))+this.theme.incompleteColor(n.repeat(l))}renderSpinner(){const e=h[this.spinnerIndex%h.length];return this.spinnerIndex++,this.theme.phaseColor(e)}render(e){const t=this.options.format||"bar",r=this.theme.phaseColor(f[this.phase]),n=this.theme.percentageColor(`${e}%`);let i="";if(t==="bar"?i=`${this.renderSpinner()} ${r} ${this.renderBar(e)} ${n}`:t==="spinner"?i=`${this.renderSpinner()} ${r} ${n}`:i=`${r} ${n}`,this.options.showModuleName&&this.currentModule&&this.phase==="transform"){const l=u.stripAnsi(i).length,a=Math.max((process.stdout.columns||80)-l-3,20),p=this.currentModule.length>a?"..."+this.currentModule.slice(-a+3):this.currentModule;i+=` ${this.theme.moduleColor(p)}`}return i}update(){if(!process.stdout.isTTY)return;const e=this.getPercentage(),t=this.render(e);this.safeExecuteSync(()=>{process.stdout.write(s.clearLine+s.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(s.clearLine+s.reset)},"\u6E05\u9664\u8FDB\u5EA6\u884C");else{const e=this.render(100);this.safeExecuteSync(()=>{process.stdout.write(s.clearLine+s.reset+e+`
2
- `)},"\u8F93\u51FA\u5B8C\u6210\u8FDB\u5EA6")}this.safeExecuteSync(()=>{process.stdout.write(s.showCursor)},"\u6062\u590D\u5149\u6807\u663E\u793A")}addPluginHooks(e){e.config=(t,{command:r})=>(this.isDev=r==="serve",null),e.configResolved=()=>{this.options.enabled&&(this.phase="config",process.stdout.isTTY&&this.safeExecuteSync(()=>{process.stdout.write(s.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,r)=>{this.options.enabled&&(r.includes("node_modules")||r.includes(".virtual")||(this.phase="transform",this.transformedModules++,this.currentModule=r))}},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(s.showCursor)},"\u6062\u590D\u5149\u6807\u663E\u793A")}}const g=c(u);export{g as buildProgress};
1
+ import{createPluginFactory as d,BasePlugin as p}from"../../factory/index.mjs";import{ANSI as s,SPINNER_FRAMES as l,stripAnsi as c}from"../../common/ui/index.mjs";import"../../logger/index.mjs";import"../../common/object/index.mjs";import"../../shared/vite-plugin.DcExl6jd.mjs";const h={completeColor:s.green,incompleteColor:s.gray,percentageColor:s.bold,phaseColor:s.cyan,moduleColor:s.gray},m={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"};class f extends p{totalModules=0;transformedModules=0;currentModule="";phase="idle";spinnerIndex=0;spinnerTimer=null;isDev=!1;theme=h;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||h}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,r=this.phase==="write"?5:0,o=Math.min(Math.floor(15+e+t+r),99);return this.lastPercentage=Math.max(o,this.lastPercentage),this.lastPercentage}renderBar(e){const t=this.options.width||30,r=this.options.completeChar||"\u2588",o=this.options.incompleteChar||"\u2591",i=Math.round(e/100*t),n=t-i;return this.theme.completeColor(r.repeat(i))+this.theme.incompleteColor(o.repeat(n))}renderSpinner(){const e=l[this.spinnerIndex%l.length];return this.spinnerIndex++,this.theme.phaseColor(e)}render(e){const t=this.options.format||"bar",r=this.theme.phaseColor(m[this.phase]),o=this.theme.percentageColor(`${e}%`);let i="";if(t==="bar"?i=`${this.renderSpinner()} ${r} ${this.renderBar(e)} ${o}`:t==="spinner"?i=`${this.renderSpinner()} ${r} ${o}`:i=`${r} ${o}`,this.options.showModuleName&&this.currentModule&&this.phase==="transform"){const n=c(i).length,u=Math.max((process.stdout.columns||80)-n-3,20),a=this.currentModule.length>u?"..."+this.currentModule.slice(-u+3):this.currentModule;i+=` ${this.theme.moduleColor(a)}`}return i}update(){if(!process.stdout.isTTY)return;const e=this.getPercentage(),t=this.render(e);this.safeExecuteSync(()=>{process.stdout.write(s.clearLine+s.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(s.clearLine+s.reset)},"\u6E05\u9664\u8FDB\u5EA6\u884C");else{const e=this.render(100);this.safeExecuteSync(()=>{process.stdout.write(s.clearLine+s.reset+e+`
2
+ `)},"\u8F93\u51FA\u5B8C\u6210\u8FDB\u5EA6")}this.safeExecuteSync(()=>{process.stdout.write(s.showCursor)},"\u6062\u590D\u5149\u6807\u663E\u793A")}addPluginHooks(e){e.config=(t,{command:r})=>(this.isDev=r==="serve",null),e.configResolved=()=>{this.options.enabled&&(this.phase="config",process.stdout.isTTY&&this.safeExecuteSync(()=>{process.stdout.write(s.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,r)=>{this.options.enabled&&(r.includes("node_modules")||r.includes(".virtual")||(this.phase="transform",this.transformedModules++,this.currentModule=r))}},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(s.showCursor)},"\u6062\u590D\u5149\u6807\u663E\u793A")}}const g=d(f);export{g as buildProgress};
@@ -7,6 +7,21 @@ import '../../shared/vite-plugin.DRRlWY8P.cjs';
7
7
  * 复制文件插件的配置选项接口
8
8
  *
9
9
  * @interface CopyFileOptions
10
+ * @extends {BasePluginOptions}
11
+ *
12
+ * @description 定义文件复制插件的所有可配置项,包括源目录、目标目录、
13
+ * 覆盖策略、递归复制和增量复制等选项。
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * copyFile({
18
+ * sourceDir: 'src/assets',
19
+ * targetDir: 'dist/assets',
20
+ * overwrite: true,
21
+ * recursive: true,
22
+ * incremental: true
23
+ * })
24
+ * ```
10
25
  */
11
26
  interface CopyFileOptions extends BasePluginOptions {
12
27
  /**
@@ -28,13 +43,16 @@ interface CopyFileOptions extends BasePluginOptions {
28
43
  */
29
44
  overwrite?: boolean;
30
45
  /**
31
- * 是否支持递归复制
46
+ * 是否支持递归复制子目录
32
47
  *
33
48
  * @default true
34
49
  */
35
50
  recursive?: boolean;
36
51
  /**
37
- * 是否启用增量复制
52
+ * 是否启用增量复制,仅复制有变动的文件
53
+ *
54
+ * @description 启用后,插件会比较源文件和目标文件的大小和修改时间,
55
+ * 仅复制有差异的文件,跳过未变化的文件以提高构建速度。
38
56
  *
39
57
  * @default true
40
58
  */
@@ -7,6 +7,21 @@ import '../../shared/vite-plugin.DRRlWY8P.mjs';
7
7
  * 复制文件插件的配置选项接口
8
8
  *
9
9
  * @interface CopyFileOptions
10
+ * @extends {BasePluginOptions}
11
+ *
12
+ * @description 定义文件复制插件的所有可配置项,包括源目录、目标目录、
13
+ * 覆盖策略、递归复制和增量复制等选项。
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * copyFile({
18
+ * sourceDir: 'src/assets',
19
+ * targetDir: 'dist/assets',
20
+ * overwrite: true,
21
+ * recursive: true,
22
+ * incremental: true
23
+ * })
24
+ * ```
10
25
  */
11
26
  interface CopyFileOptions extends BasePluginOptions {
12
27
  /**
@@ -28,13 +43,16 @@ interface CopyFileOptions extends BasePluginOptions {
28
43
  */
29
44
  overwrite?: boolean;
30
45
  /**
31
- * 是否支持递归复制
46
+ * 是否支持递归复制子目录
32
47
  *
33
48
  * @default true
34
49
  */
35
50
  recursive?: boolean;
36
51
  /**
37
- * 是否启用增量复制
52
+ * 是否启用增量复制,仅复制有变动的文件
53
+ *
54
+ * @description 启用后,插件会比较源文件和目标文件的大小和修改时间,
55
+ * 仅复制有差异的文件,跳过未变化的文件以提高构建速度。
38
56
  *
39
57
  * @default true
40
58
  */
@@ -7,6 +7,21 @@ import '../../shared/vite-plugin.DRRlWY8P.js';
7
7
  * 复制文件插件的配置选项接口
8
8
  *
9
9
  * @interface CopyFileOptions
10
+ * @extends {BasePluginOptions}
11
+ *
12
+ * @description 定义文件复制插件的所有可配置项,包括源目录、目标目录、
13
+ * 覆盖策略、递归复制和增量复制等选项。
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * copyFile({
18
+ * sourceDir: 'src/assets',
19
+ * targetDir: 'dist/assets',
20
+ * overwrite: true,
21
+ * recursive: true,
22
+ * incremental: true
23
+ * })
24
+ * ```
10
25
  */
11
26
  interface CopyFileOptions extends BasePluginOptions {
12
27
  /**
@@ -28,13 +43,16 @@ interface CopyFileOptions extends BasePluginOptions {
28
43
  */
29
44
  overwrite?: boolean;
30
45
  /**
31
- * 是否支持递归复制
46
+ * 是否支持递归复制子目录
32
47
  *
33
48
  * @default true
34
49
  */
35
50
  recursive?: boolean;
36
51
  /**
37
- * 是否启用增量复制
52
+ * 是否启用增量复制,仅复制有变动的文件
53
+ *
54
+ * @description 启用后,插件会比较源文件和目标文件的大小和修改时间,
55
+ * 仅复制有差异的文件,跳过未变化的文件以提高构建速度。
38
56
  *
39
57
  * @default true
40
58
  */
@@ -0,0 +1,67 @@
1
+ "use strict";const factory_index=require("../../factory/index.cjs"),env=require("../../shared/vite-plugin.vwox4bU0.cjs"),common_html_index=require("../../common/html/index.cjs"),common_fs_index=require("../../common/fs/index.cjs"),common_format_index=require("../../common/format/index.cjs"),a=require("node:path"),a$1=require("node:fs");require("../../logger/index.cjs"),require("../../common/object/index.cjs"),require("../../shared/vite-plugin.Bcg6RW2N.cjs"),require("../../shared/vite-plugin.BrI73DHA.cjs"),require("../../common/script/index.cjs"),require("fs"),require("path"),require("crypto");function _interopDefaultCompat(n){return n&&typeof n=="object"&&"default"in n?n.default:n}const a__default=_interopDefaultCompat(a),a__default$1=_interopDefaultCompat(a$1);function generateTemplate(n){const i=new Map,s=[];for(const[e,t]of Object.entries(n)){const l={type:"string",required:!0,...t};if(l.group){const r=i.get(l.group)||[];r.push({key:e,rule:l}),i.set(l.group,r)}else s.push({key:e,rule:l})}const u=[];u.push("# \u73AF\u5883\u53D8\u91CF\u6A21\u677F\u6587\u4EF6"),u.push(`# \u751F\u6210\u65F6\u95F4: ${new Date().toISOString()}`),u.push("# \u7531 @meng-xi/vite-plugin envGuard \u81EA\u52A8\u751F\u6210"),u.push(""),s.length>0&&o(u,"\u901A\u7528\u914D\u7F6E",s);for(const[e,t]of i)o(u,e,t);return u.join(`
2
+ `)}function o(n,i,s){n.push("# =============================="),n.push(`# ${i}`),n.push("# =============================="),n.push("");for(const{key:u,rule:e}of s){e.description&&n.push(`# ${e.description}`);const t=[];t.push(`\u7C7B\u578B: ${e.type||"string"}`),t.push(e.required!==!1?"\u5FC5\u9700":"\u53EF\u9009"),e.enumValues&&e.enumValues.length>0&&t.push(`\u679A\u4E3E\u503C: ${e.enumValues.join(" | ")}`),e.minValue!==void 0&&t.push(`\u6700\u5C0F\u503C: ${e.minValue}`),e.maxValue!==void 0&&t.push(`\u6700\u5927\u503C: ${e.maxValue}`),e.minLength!==void 0&&t.push(`\u6700\u5C0F\u957F\u5EA6: ${e.minLength}`),e.maxLength!==void 0&&t.push(`\u6700\u5927\u957F\u5EA6: ${e.maxLength}`),e.sensitive&&t.push("\u26A0\uFE0F \u654F\u611F\u4FE1\u606F"),n.push(`# [${t.join(" | ")}]`),e.default!==void 0?n.push(`${u}=${e.sensitive?"********":e.default}`):n.push(`${u}=`),n.push("")}}function generateRuntimeGuard(n,i,s,u){const e=[];for(const[d,h]of Object.entries(n))h.required!==!1&&e.push({key:d,rule:{type:"string",required:!0,...h}});if(e.length===0)return"";const t=u.filter(d=>d.status!=="pass"),l=e.map(({key:d,rule:h})=>({key:d,type:h.type||"string",description:h.description||""})),r=JSON.stringify(l,null,2),c=t.map(d=>d.key),p=JSON.stringify(c),g=m(s);return`<script>
3
+ ${`
4
+ (function() {
5
+ 'use strict';
6
+ var GUARD_NAME = ${JSON.stringify(i)};
7
+ var GUARD_DATA = ${r};
8
+ var FAILED_KEYS = ${p};
9
+ var MODE = ${JSON.stringify(s)};
10
+
11
+ var missing = [];
12
+ var invalid = [];
13
+
14
+ for (var i = 0; i < GUARD_DATA.length; i++) {
15
+ var item = GUARD_DATA[i];
16
+ var el = document.querySelector('meta[name="env:' + item.key + '"]');
17
+ if (!el) {
18
+ var attr = document.querySelector('[' + item.key + ']');
19
+ if (!attr) {
20
+ missing.push(item.key);
21
+ }
22
+ }
23
+ }
24
+
25
+ for (var j = 0; j < FAILED_KEYS.length; j++) {
26
+ if (invalid.indexOf(FAILED_KEYS[j]) === -1 && missing.indexOf(FAILED_KEYS[j]) === -1) {
27
+ invalid.push(FAILED_KEYS[j]);
28
+ }
29
+ }
30
+
31
+ var hasIssues = missing.length > 0 || invalid.length > 0;
32
+
33
+ var guard = {
34
+ missing: missing,
35
+ invalid: invalid,
36
+ allPassed: !hasIssues,
37
+ data: GUARD_DATA
38
+ };
39
+
40
+ if (typeof window !== 'undefined') {
41
+ window[GUARD_NAME] = guard;
42
+ }
43
+
44
+ if (hasIssues) {
45
+ ${g}
46
+ }
47
+ })();
48
+ `.trim()}
49
+ <\/script>`}function m(n){switch(n){case"console":return`
50
+ var msgs = [];
51
+ if (missing.length > 0) msgs.push('[EnvGuard] \u7F3A\u5C11\u73AF\u5883\u53D8\u91CF: ' + missing.join(', '));
52
+ if (invalid.length > 0) msgs.push('[EnvGuard] \u73AF\u5883\u53D8\u91CF\u6821\u9A8C\u5931\u8D25: ' + invalid.join(', '));
53
+ for (var k = 0; k < msgs.length; k++) console.warn(msgs[k]);`;case"throw":return`
54
+ var errMsg = '';
55
+ if (missing.length > 0) errMsg += '\u7F3A\u5C11\u73AF\u5883\u53D8\u91CF: ' + missing.join(', ') + '; ';
56
+ if (invalid.length > 0) errMsg += '\u73AF\u5883\u53D8\u91CF\u6821\u9A8C\u5931\u8D25: ' + invalid.join(', ');
57
+ throw new Error('[EnvGuard] ' + errMsg);`;case"overlay":return`
58
+ var overlay = document.createElement('div');
59
+ overlay.id = '__env_guard_overlay__';
60
+ overlay.style.cssText = 'position:fixed;top:0;left:0;right:0;z-index:99999;background:#fff3cd;color:#856404;padding:12px 20px;font-size:14px;font-family:monospace;border-bottom:3px solid #ffc107;box-shadow:0 2px 8px rgba(0,0,0,0.15);';
61
+ var html = '<strong>\u26A0\uFE0F EnvGuard \u8B66\u544A</strong><br>';
62
+ if (missing.length > 0) html += '\u7F3A\u5C11: ' + missing.join(', ') + '<br>';
63
+ if (invalid.length > 0) html += '\u6821\u9A8C\u5931\u8D25: ' + invalid.join(', ');
64
+ overlay.innerHTML = html;
65
+ document.addEventListener('DOMContentLoaded', function() { document.body.appendChild(overlay); });`;default:return""}}class R extends factory_index.BasePlugin{validationResults=[];guardResult=null;getDefaultOptions(){return{required:{},failAction:"error",generateTemplate:!0,templateOutput:".env.template",runtimeGuard:!1,runtimeGlobalName:"__ENV_GUARD__",runtimeGuardMode:"console",envFiles:[".env",".env.local",".env.production",".env.development"],autoLoadEnv:!0,reportOutput:!1,validateBeforeBuild:!0,showSummary:!0}}validateOptions(){this.validator.field("failAction").enum(["error","warn","ignore"]).field("generateTemplate").boolean().field("runtimeGuard").boolean().field("runtimeGuardMode").enum(["console","throw","overlay"]).field("autoLoadEnv").boolean().field("reportOutput").custom(i=>i===!1||typeof i=="string","reportOutput \u5FC5\u987B\u4E3A false \u6216\u5B57\u7B26\u4E32\u8DEF\u5F84").field("validateBeforeBuild").boolean().field("showSummary").boolean().validate()}getPluginName(){return"env-guard"}addPluginHooks(i){this.options.validateBeforeBuild&&(i.configResolved=s=>{this.viteConfig=s,this.runValidation()}),this.options.runtimeGuard&&(i.transformIndexHtml={order:"post",handler:s=>this.safeExecuteSync(()=>this.injectRuntimeGuard(s),"\u6CE8\u5165\u8FD0\u884C\u65F6\u5B88\u536B")||s})}runValidation(){this.options.autoLoadEnv&&this.loadEnvFiles(),this.validationResults=env.validateEnvironment(process.env,this.options.required),this.guardResult=this.buildResult(),this.options.generateTemplate&&this.writeEnvTemplate(),this.options.reportOutput&&this.writeReport(),this.options.showSummary&&this.logSummary(),this.handleResults()}loadEnvFiles(){if(!this.viteConfig)return;const i=this.viteConfig.root||process.cwd();for(const s of this.options.envFiles){const u=a__default.resolve(i,s);if(a__default$1.existsSync(u))try{this.parseAndLoadEnvFile(u)}catch{this.logger.warn(`\u52A0\u8F7D .env \u6587\u4EF6\u5931\u8D25: ${u}`)}}}parseAndLoadEnvFile(i){const s=a__default$1.readFileSync(i,"utf-8").split(`
66
+ `);for(const u of s){const e=u.trim();if(!e||e.startsWith("#"))continue;const t=e.indexOf("=");if(t===-1)continue;const l=e.slice(0,t).trim();let r=e.slice(t+1).trim();(r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'"))&&(r=r.slice(1,-1)),l.startsWith("VITE_")&&process.env[l]===void 0&&(process.env[l]=r)}}buildResult(){const i=this.validationResults.length,s=this.validationResults.filter(t=>t.status==="pass").length,u=this.validationResults.filter(t=>t.status==="missing").length,e=this.validationResults.filter(t=>t.status!=="pass"&&t.status!=="missing").length;return{timestamp:common_format_index.formatDate(new Date,"{YYYY}-{MM}-{DD}T{HH}:{mm}:{ss}"),total:i,passed:s,missing:u,invalid:e,results:this.validationResults,allPassed:u===0&&e===0}}handleResults(){if(!this.guardResult||this.guardResult.allPassed)return;const i=this.validationResults.filter(t=>t.status==="missing").map(t=>t.key),s=this.validationResults.filter(t=>t.status!=="pass"&&t.status!=="missing"),u=[];i.length>0&&u.push(`\u7F3A\u5C11\u5FC5\u9700\u7684\u73AF\u5883\u53D8\u91CF: ${i.join(", ")}`);for(const t of s)u.push(`${t.key}: ${t.message}`);const e=u.join(`
67
+ `);switch(this.options.failAction){case"error":throw new Error(e);case"warn":this.logger.warn(e);break}}writeEnvTemplate(){const i=this.viteConfig?.root||process.cwd(),s=a__default.resolve(i,this.options.templateOutput),u=generateTemplate(this.options.required);this.safeExecuteSync(()=>{common_fs_index.writeFileContent(s,u),this.logger.info(`\u73AF\u5883\u53D8\u91CF\u6A21\u677F\u5DF2\u751F\u6210: ${this.options.templateOutput}`)},"\u751F\u6210 .env \u6A21\u677F")}writeReport(){if(!this.guardResult||!this.options.reportOutput)return;const i=this.viteConfig?.build?.outDir||"dist",s=a__default.resolve(i,this.options.reportOutput);this.safeExecuteSync(()=>{const u=JSON.stringify(this.guardResult,(e,t)=>t instanceof RegExp?t.toString():typeof t=="function"?"[Function]":t,2);common_fs_index.writeFileContent(s,u),this.logger.info(`\u6821\u9A8C\u62A5\u544A\u5DF2\u751F\u6210: ${this.options.reportOutput}`)},"\u751F\u6210\u6821\u9A8C\u62A5\u544A")}logSummary(){if(!this.guardResult)return;const{total:i,passed:s,missing:u,invalid:e,allPassed:t}=this.guardResult;if(t){this.logger.success(`\u73AF\u5883\u53D8\u91CF\u6821\u9A8C\u901A\u8FC7: ${i} \u4E2A\u53D8\u91CF\u5168\u90E8\u5408\u6CD5`);return}this.logger.info(`\u73AF\u5883\u53D8\u91CF\u6821\u9A8C\u7ED3\u679C: \u603B\u8BA1 ${i} | \u901A\u8FC7 ${s} | \u7F3A\u5931 ${u} | \u5931\u8D25 ${e}`);const l=this.validationResults.filter(r=>r.status!=="pass");for(const r of l){const c=r.status==="missing"?"\u7F3A\u5931":"\u5931\u8D25";this.logger.warn(` [${c}] ${r.key}: ${r.message}`)}}injectRuntimeGuard(i){const s=generateRuntimeGuard(this.options.required,this.options.runtimeGlobalName,this.options.runtimeGuardMode,this.validationResults);if(!s)return i;const u=common_html_index.injectBeforeTag(i,"</head>",s);return u.injected?u.html:(this.logger.warn("\u672A\u627E\u5230 </head> \u6807\u7B7E\uFF0C\u8FD0\u884C\u65F6\u5B88\u536B\u4EE3\u7801\u672A\u80FD\u6CE8\u5165"),i)}getResult(){return this.guardResult}getValidationResults(){return[...this.validationResults]}}const envGuard=factory_index.createPluginFactory(R);exports.envGuard=envGuard;