@meng-xi/vite-plugin 0.1.2 → 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 (106) hide show
  1. package/README-en.md +86 -510
  2. package/README.md +83 -506
  3. package/dist/common/compress/index.cjs +1 -0
  4. package/dist/common/compress/index.d.cts +23 -0
  5. package/dist/common/compress/index.d.mts +23 -0
  6. package/dist/common/compress/index.d.ts +23 -0
  7. package/dist/common/compress/index.mjs +1 -0
  8. package/dist/common/format/index.cjs +1 -1
  9. package/dist/common/format/index.d.cts +33 -1
  10. package/dist/common/format/index.d.mts +33 -1
  11. package/dist/common/format/index.d.ts +33 -1
  12. package/dist/common/format/index.mjs +1 -1
  13. package/dist/common/fs/index.cjs +1 -1
  14. package/dist/common/fs/index.d.cts +70 -2
  15. package/dist/common/fs/index.d.mts +70 -2
  16. package/dist/common/fs/index.d.ts +70 -2
  17. package/dist/common/fs/index.mjs +1 -1
  18. package/dist/common/html/index.cjs +2 -2
  19. package/dist/common/html/index.d.cts +268 -19
  20. package/dist/common/html/index.d.mts +268 -19
  21. package/dist/common/html/index.d.ts +268 -19
  22. package/dist/common/html/index.mjs +2 -2
  23. package/dist/common/index.cjs +1 -1
  24. package/dist/common/index.d.cts +8 -3
  25. package/dist/common/index.d.mts +8 -3
  26. package/dist/common/index.d.ts +8 -3
  27. package/dist/common/index.mjs +1 -1
  28. package/dist/common/path/index.cjs +1 -0
  29. package/dist/common/path/index.d.cts +22 -0
  30. package/dist/common/path/index.d.mts +22 -0
  31. package/dist/common/path/index.d.ts +22 -0
  32. package/dist/common/path/index.mjs +1 -0
  33. package/dist/common/ui/index.cjs +1 -0
  34. package/dist/common/ui/index.d.cts +132 -0
  35. package/dist/common/ui/index.d.mts +132 -0
  36. package/dist/common/ui/index.d.ts +132 -0
  37. package/dist/common/ui/index.mjs +1 -0
  38. package/dist/common/validation/index.cjs +1 -1
  39. package/dist/common/validation/index.d.cts +1 -0
  40. package/dist/common/validation/index.d.mts +1 -0
  41. package/dist/common/validation/index.d.ts +1 -0
  42. package/dist/common/validation/index.mjs +1 -1
  43. package/dist/index.cjs +1 -1
  44. package/dist/index.d.cts +11 -4
  45. package/dist/index.d.mts +11 -4
  46. package/dist/index.d.ts +11 -4
  47. package/dist/index.mjs +1 -1
  48. package/dist/plugins/buildProgress/index.cjs +2 -2
  49. package/dist/plugins/buildProgress/index.mjs +2 -2
  50. package/dist/plugins/bundleAnalyzer/index.cjs +235 -0
  51. package/dist/plugins/bundleAnalyzer/index.d.cts +215 -0
  52. package/dist/plugins/bundleAnalyzer/index.d.mts +215 -0
  53. package/dist/plugins/bundleAnalyzer/index.d.ts +215 -0
  54. package/dist/plugins/bundleAnalyzer/index.mjs +235 -0
  55. package/dist/plugins/compressAssets/index.cjs +1 -1
  56. package/dist/plugins/compressAssets/index.mjs +1 -1
  57. package/dist/plugins/copyFile/index.d.cts +20 -2
  58. package/dist/plugins/copyFile/index.d.mts +20 -2
  59. package/dist/plugins/copyFile/index.d.ts +20 -2
  60. package/dist/plugins/envGuard/index.cjs +67 -0
  61. package/dist/plugins/envGuard/index.d.cts +156 -0
  62. package/dist/plugins/envGuard/index.d.mts +156 -0
  63. package/dist/plugins/envGuard/index.d.ts +156 -0
  64. package/dist/plugins/envGuard/index.mjs +67 -0
  65. package/dist/plugins/faviconManager/index.cjs +1 -1
  66. package/dist/plugins/faviconManager/index.d.cts +43 -5
  67. package/dist/plugins/faviconManager/index.d.mts +43 -5
  68. package/dist/plugins/faviconManager/index.d.ts +43 -5
  69. package/dist/plugins/faviconManager/index.mjs +1 -1
  70. package/dist/plugins/generateRouter/index.cjs +4 -4
  71. package/dist/plugins/generateRouter/index.d.cts +61 -14
  72. package/dist/plugins/generateRouter/index.d.mts +61 -14
  73. package/dist/plugins/generateRouter/index.d.ts +61 -14
  74. package/dist/plugins/generateRouter/index.mjs +1 -1
  75. package/dist/plugins/generateVersion/index.cjs +1 -1
  76. package/dist/plugins/generateVersion/index.d.cts +12 -0
  77. package/dist/plugins/generateVersion/index.d.mts +12 -0
  78. package/dist/plugins/generateVersion/index.d.ts +12 -0
  79. package/dist/plugins/generateVersion/index.mjs +1 -1
  80. package/dist/plugins/htmlInject/index.cjs +1 -7
  81. package/dist/plugins/htmlInject/index.d.cts +49 -194
  82. package/dist/plugins/htmlInject/index.d.mts +49 -194
  83. package/dist/plugins/htmlInject/index.d.ts +49 -194
  84. package/dist/plugins/htmlInject/index.mjs +1 -7
  85. package/dist/plugins/index.cjs +1 -1
  86. package/dist/plugins/index.d.cts +5 -1
  87. package/dist/plugins/index.d.mts +5 -1
  88. package/dist/plugins/index.d.ts +5 -1
  89. package/dist/plugins/index.mjs +1 -1
  90. package/dist/plugins/loadingManager/index.cjs +2 -2
  91. package/dist/plugins/loadingManager/index.mjs +1 -1
  92. package/dist/plugins/versionUpdateChecker/index.cjs +2 -2
  93. package/dist/plugins/versionUpdateChecker/index.mjs +3 -3
  94. package/dist/shared/vite-plugin.BCuhU1au.mjs +7 -0
  95. package/dist/shared/vite-plugin.BrI73DHA.cjs +7 -0
  96. package/dist/shared/vite-plugin.CmtcnItg.d.cts +261 -0
  97. package/dist/shared/vite-plugin.CmtcnItg.d.mts +261 -0
  98. package/dist/shared/vite-plugin.CmtcnItg.d.ts +261 -0
  99. package/dist/shared/vite-plugin.DnFDPjNf.mjs +1 -0
  100. package/dist/shared/vite-plugin.Dumot0up.mjs +1 -0
  101. package/dist/shared/vite-plugin.FfJ-Wwfu.d.cts +143 -0
  102. package/dist/shared/vite-plugin.FfJ-Wwfu.d.mts +143 -0
  103. package/dist/shared/vite-plugin.FfJ-Wwfu.d.ts +143 -0
  104. package/dist/shared/vite-plugin.soT9a-KD.cjs +1 -0
  105. package/dist/shared/vite-plugin.vwox4bU0.cjs +1 -0
  106. package/package.json +26 -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,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_fs_index=require("./common/fs/index.cjs"),common_format_index=require("./common/format/index.cjs"),common_html_index=require("./common/html/index.cjs"),common_object_index=require("./common/object/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_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("fs"),require("path"),require("crypto"),require("node:zlib"),require("node:fs"),require("node:stream/promises"),require("node:path"),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.shouldUpdateFile=common_fs_index.shouldUpdateFile,exports.writeFileContent=common_fs_index.writeFileContent,exports.escapeHtmlAttr=common_format_index.escapeHtmlAttr,exports.formatDate=common_format_index.formatDate,exports.generateRandomHash=common_format_index.generateRandomHash,exports.getDateFormatParams=common_format_index.getDateFormatParams,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.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.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.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,19 +1,26 @@
1
- export { CopyOptions, CopyResult, checkSourceExists, copySourceToTarget, ensureTargetDir, fileExists, readDirRecursive, readFileContent, readFileSync, runWithConcurrency, shouldUpdateFile, writeFileContent } from './common/fs/index.cjs';
2
- export { DateFormatOptions, escapeHtmlAttr, formatDate, generateRandomHash, getDateFormatParams, padNumber, parseTemplate, stripJsonComments, toCamelCase, toPascalCase } from './common/format/index.cjs';
3
- export { DualInjectResult, HtmlInjectResult, injectBeforeTag, injectBeforeTagWithFallback, injectHeadAndBody, injectHtmlByPriority } from './common/html/index.cjs';
1
+ export { calculateGzipSize } from './common/compress/index.cjs';
2
+ export { DateFormatOptions, escapeHtmlAttr, formatDate, formatFileSize, generateRandomHash, getDateFormatParams, getExtension, padNumber, parseTemplate, stripJsonComments, toCamelCase, toPascalCase } from './common/format/index.cjs';
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 { DEFAULT_BLOCKED_ATTRIBUTES, DEFAULT_BLOCKED_TAGS, SanitizeRuleOptions, applyTemplateVars, evaluateCondition, findSelectorMatch, injectAtPosition, injectBeforeTag, injectBeforeTagWithFallback, injectHeadAndBody, injectHtmlByPriority, sanitizeContent, sortRulesByPriority, validateSecurityConfig } from './common/html/index.cjs';
4
5
  export { deepMerge } from './common/object/index.cjs';
6
+ export { isNodeModule } from './common/path/index.cjs';
5
7
  export { containsScriptTag, makeCallback, validateIdentifierName } from './common/script/index.cjs';
8
+ export { ANSI, SPINNER_FRAMES, stripAnsi } from './common/ui/index.cjs';
6
9
  export { V as Validator } from './shared/vite-plugin.DRRlWY8P.cjs';
7
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';
8
12
  export { BasePlugin, BasePluginOptions, OptionsNormalizer, PluginFactory, PluginWithInstance, createPluginFactory } from './factory/index.cjs';
9
13
  export { L as Logger, P as PluginLogger } from './shared/vite-plugin.CLr0ttuO.cjs';
10
14
  export { BuildPhase, BuildProgressOptions, ProgressFormat, ProgressTheme, buildProgress } from './plugins/buildProgress/index.cjs';
15
+ export { BundleAnalysisResult, BundleAnalyzerOptions, BundleOutputFormat, ChunkStats, ComparisonDiff, FileTypeDistribution, ModuleStats, SizeWarning, bundleAnalyzer } from './plugins/bundleAnalyzer/index.cjs';
11
16
  export { CompressAlgorithm, CompressAssetsOptions, CompressStats, CompressSummary, compressAssets } from './plugins/compressAssets/index.cjs';
12
17
  export { CopyFileOptions, copyFile } from './plugins/copyFile/index.cjs';
18
+ export { EnvFailAction, EnvGuardOptions, EnvGuardResult, RuntimeGuardMode, envGuard } from './plugins/envGuard/index.cjs';
13
19
  export { FaviconManagerOptions, Icon, faviconManager } from './plugins/faviconManager/index.cjs';
14
20
  export { GenerateRouterOptions, NameStrategy, OutputFormat, RouteConfig, RouteMeta, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.cjs';
15
21
  export { GenerateVersionOptions, OutputType, VersionFormat, VersionInfo, generateVersion } from './plugins/generateVersion/index.cjs';
16
- 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';
17
23
  export { AutoBindMode, AutoHideOn, DebounceHide, DelayShow, LoadingCallbacks, LoadingManager, LoadingManagerOptions, LoadingPosition, LoadingStyle, MinDisplayTime, RequestFilter, SpinnerType, TransitionConfig, loadingManager } from './plugins/loadingManager/index.cjs';
18
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';
19
26
  import 'vite';
package/dist/index.d.mts CHANGED
@@ -1,19 +1,26 @@
1
- export { CopyOptions, CopyResult, checkSourceExists, copySourceToTarget, ensureTargetDir, fileExists, readDirRecursive, readFileContent, readFileSync, runWithConcurrency, shouldUpdateFile, writeFileContent } from './common/fs/index.mjs';
2
- export { DateFormatOptions, escapeHtmlAttr, formatDate, generateRandomHash, getDateFormatParams, padNumber, parseTemplate, stripJsonComments, toCamelCase, toPascalCase } from './common/format/index.mjs';
3
- export { DualInjectResult, HtmlInjectResult, injectBeforeTag, injectBeforeTagWithFallback, injectHeadAndBody, injectHtmlByPriority } from './common/html/index.mjs';
1
+ export { calculateGzipSize } from './common/compress/index.mjs';
2
+ export { DateFormatOptions, escapeHtmlAttr, formatDate, formatFileSize, generateRandomHash, getDateFormatParams, getExtension, padNumber, parseTemplate, stripJsonComments, toCamelCase, toPascalCase } from './common/format/index.mjs';
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 { DEFAULT_BLOCKED_ATTRIBUTES, DEFAULT_BLOCKED_TAGS, SanitizeRuleOptions, applyTemplateVars, evaluateCondition, findSelectorMatch, injectAtPosition, injectBeforeTag, injectBeforeTagWithFallback, injectHeadAndBody, injectHtmlByPriority, sanitizeContent, sortRulesByPriority, validateSecurityConfig } from './common/html/index.mjs';
4
5
  export { deepMerge } from './common/object/index.mjs';
6
+ export { isNodeModule } from './common/path/index.mjs';
5
7
  export { containsScriptTag, makeCallback, validateIdentifierName } from './common/script/index.mjs';
8
+ export { ANSI, SPINNER_FRAMES, stripAnsi } from './common/ui/index.mjs';
6
9
  export { V as Validator } from './shared/vite-plugin.DRRlWY8P.mjs';
7
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';
8
12
  export { BasePlugin, BasePluginOptions, OptionsNormalizer, PluginFactory, PluginWithInstance, createPluginFactory } from './factory/index.mjs';
9
13
  export { L as Logger, P as PluginLogger } from './shared/vite-plugin.CLr0ttuO.mjs';
10
14
  export { BuildPhase, BuildProgressOptions, ProgressFormat, ProgressTheme, buildProgress } from './plugins/buildProgress/index.mjs';
15
+ export { BundleAnalysisResult, BundleAnalyzerOptions, BundleOutputFormat, ChunkStats, ComparisonDiff, FileTypeDistribution, ModuleStats, SizeWarning, bundleAnalyzer } from './plugins/bundleAnalyzer/index.mjs';
11
16
  export { CompressAlgorithm, CompressAssetsOptions, CompressStats, CompressSummary, compressAssets } from './plugins/compressAssets/index.mjs';
12
17
  export { CopyFileOptions, copyFile } from './plugins/copyFile/index.mjs';
18
+ export { EnvFailAction, EnvGuardOptions, EnvGuardResult, RuntimeGuardMode, envGuard } from './plugins/envGuard/index.mjs';
13
19
  export { FaviconManagerOptions, Icon, faviconManager } from './plugins/faviconManager/index.mjs';
14
20
  export { GenerateRouterOptions, NameStrategy, OutputFormat, RouteConfig, RouteMeta, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.mjs';
15
21
  export { GenerateVersionOptions, OutputType, VersionFormat, VersionInfo, generateVersion } from './plugins/generateVersion/index.mjs';
16
- 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';
17
23
  export { AutoBindMode, AutoHideOn, DebounceHide, DelayShow, LoadingCallbacks, LoadingManager, LoadingManagerOptions, LoadingPosition, LoadingStyle, MinDisplayTime, RequestFilter, SpinnerType, TransitionConfig, loadingManager } from './plugins/loadingManager/index.mjs';
18
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';
19
26
  import 'vite';
package/dist/index.d.ts CHANGED
@@ -1,19 +1,26 @@
1
- export { CopyOptions, CopyResult, checkSourceExists, copySourceToTarget, ensureTargetDir, fileExists, readDirRecursive, readFileContent, readFileSync, runWithConcurrency, shouldUpdateFile, writeFileContent } from './common/fs/index.js';
2
- export { DateFormatOptions, escapeHtmlAttr, formatDate, generateRandomHash, getDateFormatParams, padNumber, parseTemplate, stripJsonComments, toCamelCase, toPascalCase } from './common/format/index.js';
3
- export { DualInjectResult, HtmlInjectResult, injectBeforeTag, injectBeforeTagWithFallback, injectHeadAndBody, injectHtmlByPriority } from './common/html/index.js';
1
+ export { calculateGzipSize } from './common/compress/index.js';
2
+ export { DateFormatOptions, escapeHtmlAttr, formatDate, formatFileSize, generateRandomHash, getDateFormatParams, getExtension, padNumber, parseTemplate, stripJsonComments, toCamelCase, toPascalCase } from './common/format/index.js';
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 { DEFAULT_BLOCKED_ATTRIBUTES, DEFAULT_BLOCKED_TAGS, SanitizeRuleOptions, applyTemplateVars, evaluateCondition, findSelectorMatch, injectAtPosition, injectBeforeTag, injectBeforeTagWithFallback, injectHeadAndBody, injectHtmlByPriority, sanitizeContent, sortRulesByPriority, validateSecurityConfig } from './common/html/index.js';
4
5
  export { deepMerge } from './common/object/index.js';
6
+ export { isNodeModule } from './common/path/index.js';
5
7
  export { containsScriptTag, makeCallback, validateIdentifierName } from './common/script/index.js';
8
+ export { ANSI, SPINNER_FRAMES, stripAnsi } from './common/ui/index.js';
6
9
  export { V as Validator } from './shared/vite-plugin.DRRlWY8P.js';
7
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';
8
12
  export { BasePlugin, BasePluginOptions, OptionsNormalizer, PluginFactory, PluginWithInstance, createPluginFactory } from './factory/index.js';
9
13
  export { L as Logger, P as PluginLogger } from './shared/vite-plugin.CLr0ttuO.js';
10
14
  export { BuildPhase, BuildProgressOptions, ProgressFormat, ProgressTheme, buildProgress } from './plugins/buildProgress/index.js';
15
+ export { BundleAnalysisResult, BundleAnalyzerOptions, BundleOutputFormat, ChunkStats, ComparisonDiff, FileTypeDistribution, ModuleStats, SizeWarning, bundleAnalyzer } from './plugins/bundleAnalyzer/index.js';
11
16
  export { CompressAlgorithm, CompressAssetsOptions, CompressStats, CompressSummary, compressAssets } from './plugins/compressAssets/index.js';
12
17
  export { CopyFileOptions, copyFile } from './plugins/copyFile/index.js';
18
+ export { EnvFailAction, EnvGuardOptions, EnvGuardResult, RuntimeGuardMode, envGuard } from './plugins/envGuard/index.js';
13
19
  export { FaviconManagerOptions, Icon, faviconManager } from './plugins/faviconManager/index.js';
14
20
  export { GenerateRouterOptions, NameStrategy, OutputFormat, RouteConfig, RouteMeta, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.js';
15
21
  export { GenerateVersionOptions, OutputType, VersionFormat, VersionInfo, generateVersion } from './plugins/generateVersion/index.js';
16
- 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';
17
23
  export { AutoBindMode, AutoHideOn, DebounceHide, DelayShow, LoadingCallbacks, LoadingManager, LoadingManagerOptions, LoadingPosition, LoadingStyle, MinDisplayTime, RequestFilter, SpinnerType, TransitionConfig, loadingManager } from './plugins/loadingManager/index.js';
18
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';
19
26
  import 'vite';
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- export{checkSourceExists,copySourceToTarget,ensureTargetDir,fileExists,readDirRecursive,readFileContent,readFileSync,runWithConcurrency,shouldUpdateFile,writeFileContent}from"./common/fs/index.mjs";export{escapeHtmlAttr,formatDate,generateRandomHash,getDateFormatParams,padNumber,parseTemplate,stripJsonComments,toCamelCase,toPascalCase}from"./common/format/index.mjs";export{injectBeforeTag,injectBeforeTagWithFallback,injectHeadAndBody,injectHtmlByPriority}from"./common/html/index.mjs";export{deepMerge}from"./common/object/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{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"fs";import"path";import"crypto";import"node:zlib";import"node:fs";import"node:stream/promises";import"node:path";
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};