@meng-xi/vite-plugin 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-en.md +170 -49
- package/README.md +149 -29
- package/dist/common/format/index.cjs +1 -0
- package/dist/common/format/index.d.cts +156 -0
- package/dist/common/format/index.d.mts +156 -0
- package/dist/common/format/index.d.ts +156 -0
- package/dist/common/format/index.mjs +1 -0
- package/dist/common/fs/index.cjs +1 -0
- package/dist/common/fs/index.d.cts +150 -0
- package/dist/common/fs/index.d.mts +150 -0
- package/dist/common/fs/index.d.ts +150 -0
- package/dist/common/fs/index.mjs +1 -0
- package/dist/common/html/index.cjs +2 -0
- package/dist/common/html/index.d.cts +109 -0
- package/dist/common/html/index.d.mts +109 -0
- package/dist/common/html/index.d.ts +109 -0
- package/dist/common/html/index.mjs +2 -0
- package/dist/common/index.cjs +1 -1
- package/dist/common/index.d.cts +7 -417
- package/dist/common/index.d.mts +7 -417
- package/dist/common/index.d.ts +7 -417
- package/dist/common/index.mjs +1 -1
- package/dist/common/object/index.cjs +1 -0
- package/dist/common/object/index.d.cts +30 -0
- package/dist/common/object/index.d.mts +30 -0
- package/dist/common/object/index.d.ts +30 -0
- package/dist/common/object/index.mjs +1 -0
- package/dist/common/script/index.cjs +1 -0
- package/dist/common/script/index.d.cts +54 -0
- package/dist/common/script/index.d.mts +54 -0
- package/dist/common/script/index.d.ts +54 -0
- package/dist/common/script/index.mjs +1 -0
- package/dist/common/validation/index.cjs +1 -0
- package/dist/common/validation/index.d.cts +93 -0
- package/dist/common/validation/index.d.mts +93 -0
- package/dist/common/validation/index.d.ts +93 -0
- package/dist/common/validation/index.mjs +1 -0
- package/dist/factory/index.cjs +1 -1
- package/dist/factory/index.d.cts +1 -1
- package/dist/factory/index.d.mts +1 -1
- package/dist/factory/index.d.ts +1 -1
- package/dist/factory/index.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +15 -3
- package/dist/index.d.mts +15 -3
- package/dist/index.d.ts +15 -3
- package/dist/index.mjs +1 -1
- package/dist/plugins/buildProgress/index.cjs +2 -0
- package/dist/plugins/buildProgress/index.d.cts +187 -0
- package/dist/plugins/buildProgress/index.d.mts +187 -0
- package/dist/plugins/buildProgress/index.d.ts +187 -0
- package/dist/plugins/buildProgress/index.mjs +2 -0
- package/dist/plugins/copyFile/index.cjs +1 -0
- package/dist/plugins/copyFile/index.d.cts +78 -0
- package/dist/plugins/copyFile/index.d.mts +78 -0
- package/dist/plugins/copyFile/index.d.ts +78 -0
- package/dist/plugins/copyFile/index.mjs +1 -0
- package/dist/plugins/faviconManager/index.cjs +1 -0
- package/dist/plugins/faviconManager/index.d.cts +143 -0
- package/dist/plugins/faviconManager/index.d.mts +143 -0
- package/dist/plugins/faviconManager/index.d.ts +143 -0
- package/dist/plugins/faviconManager/index.mjs +1 -0
- package/dist/plugins/generateRouter/index.cjs +35 -0
- package/dist/plugins/generateRouter/index.d.cts +215 -0
- package/dist/plugins/generateRouter/index.d.mts +215 -0
- package/dist/plugins/generateRouter/index.d.ts +215 -0
- package/dist/plugins/generateRouter/index.mjs +35 -0
- package/dist/plugins/generateVersion/index.cjs +1 -0
- package/dist/plugins/generateVersion/index.d.cts +184 -0
- package/dist/plugins/generateVersion/index.d.mts +184 -0
- package/dist/plugins/generateVersion/index.d.ts +184 -0
- package/dist/plugins/generateVersion/index.mjs +1 -0
- package/dist/plugins/htmlInject/index.cjs +7 -0
- package/dist/plugins/htmlInject/index.d.cts +278 -0
- package/dist/plugins/htmlInject/index.d.mts +278 -0
- package/dist/plugins/htmlInject/index.d.ts +278 -0
- package/dist/plugins/htmlInject/index.mjs +7 -0
- package/dist/plugins/index.cjs +1 -1
- package/dist/plugins/index.d.cts +10 -1714
- package/dist/plugins/index.d.mts +10 -1714
- package/dist/plugins/index.d.ts +10 -1714
- package/dist/plugins/index.mjs +1 -1
- package/dist/plugins/loadingManager/index.cjs +487 -0
- package/dist/plugins/loadingManager/index.d.cts +769 -0
- package/dist/plugins/loadingManager/index.d.mts +769 -0
- package/dist/plugins/loadingManager/index.d.ts +769 -0
- package/dist/plugins/loadingManager/index.mjs +487 -0
- package/dist/plugins/versionUpdateChecker/index.cjs +185 -0
- package/dist/plugins/versionUpdateChecker/index.d.cts +200 -0
- package/dist/plugins/versionUpdateChecker/index.d.mts +200 -0
- package/dist/plugins/versionUpdateChecker/index.d.ts +200 -0
- package/dist/plugins/versionUpdateChecker/index.mjs +185 -0
- package/dist/shared/vite-plugin.Bcg6RW2N.cjs +3 -0
- package/dist/shared/{vite-plugin.CiHfwMiN.d.ts → vite-plugin.DRRlWY8P.d.cts} +50 -0
- package/dist/shared/{vite-plugin.CiHfwMiN.d.cts → vite-plugin.DRRlWY8P.d.mts} +50 -0
- package/dist/shared/{vite-plugin.CiHfwMiN.d.mts → vite-plugin.DRRlWY8P.d.ts} +50 -0
- package/dist/shared/{vite-plugin.B88RyRN8.mjs → vite-plugin.DcExl6jd.mjs} +2 -2
- package/package.json +72 -2
- package/dist/shared/vite-plugin.CawoITTT.cjs +0 -1
- package/dist/shared/vite-plugin.D6Law9Ke.mjs +0 -706
- package/dist/shared/vite-plugin.D8L9KzuW.cjs +0 -706
- package/dist/shared/vite-plugin.DFjf9wFM.mjs +0 -2
- package/dist/shared/vite-plugin.DSb6XzBn.mjs +0 -1
- package/dist/shared/vite-plugin.IGZeStMa.cjs +0 -3
- package/dist/shared/vite-plugin.Tab4qcIM.cjs +0 -2
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 将回调函数体字符串包装为安全的函数表达式
|
|
3
|
+
*
|
|
4
|
+
* @param body - 函数体代码字符串
|
|
5
|
+
* @param context - 回调上下文标识,用于错误日志
|
|
6
|
+
* @param params - 函数参数列表字符串,默认为空
|
|
7
|
+
* @returns 安全的函数表达式字符串(包含 try-catch 保护)
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* makeCallback('console.log("done")')
|
|
12
|
+
* // 'function() { try { console.log("done") } catch(e) { console.error('[callback] error:', e); } }'
|
|
13
|
+
*
|
|
14
|
+
* makeCallback('console.log(a, b)', 'callback', 'a, b')
|
|
15
|
+
* // 'function(a, b) { try { console.log(a, b) } catch(e) { console.error('[callback] error:', e); } }'
|
|
16
|
+
*
|
|
17
|
+
* makeCallback('')
|
|
18
|
+
* // 'function() {}'
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
declare function makeCallback(body?: string, context?: string, params?: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* 检测字符串是否包含 `<script>` 标签
|
|
24
|
+
*
|
|
25
|
+
* @param str - 待检测的字符串
|
|
26
|
+
* @returns 是否包含 script 标签
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* containsScriptTag('<div onclick="alert(1)">') // false
|
|
31
|
+
* containsScriptTag('<script>alert(1)</script>') // true
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
declare function containsScriptTag(str: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* 验证字符串是否为合法的 JavaScript 标识符
|
|
37
|
+
*
|
|
38
|
+
* @description 检查名称是否以字母、下划线或美元符开头,
|
|
39
|
+
* 仅包含字母、数字、下划线和美元符,并排除可能导致原型污染的内置属性
|
|
40
|
+
*
|
|
41
|
+
* @param name - 待验证的标识符名称
|
|
42
|
+
* @throws 当名称不是合法标识符时抛出错误
|
|
43
|
+
* @throws 当名称为 JavaScript 内置属性时抛出错误
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* validateIdentifierName('__LOADING_MANAGER__') // 通过
|
|
48
|
+
* validateIdentifierName('123abc') // 抛出错误
|
|
49
|
+
* validateIdentifierName('__proto__') // 抛出错误(内置属性)
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
declare function validateIdentifierName(name: string): void;
|
|
53
|
+
|
|
54
|
+
export { containsScriptTag, makeCallback, validateIdentifierName };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function r(u,F="callback",t=""){return u?`function(${t}) { try { ${u} } catch(e) { console.error('[${F}] error:', e); } }`:`function(${t}) {}`}function o(u){return/<script\b/i.test(u)}function c(u){if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(u))throw new Error(`"${u}" \u4E0D\u662F\u5408\u6CD5\u7684 JavaScript \u6807\u8BC6\u7B26\uFF0C\u5FC5\u987B\u4EE5\u5B57\u6BCD\u3001\u4E0B\u5212\u7EBF\u6216\u7F8E\u5143\u7B26\u5F00\u5934\uFF0C\u4EC5\u5305\u542B\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u4E0B\u5212\u7EBF\u548C\u7F8E\u5143\u7B26`);if(["__proto__","constructor","prototype"].includes(u))throw new Error(`"${u}" \u662F JavaScript \u5185\u7F6E\u5C5E\u6027\uFF0C\u53EF\u80FD\u5BFC\u81F4\u539F\u578B\u6C61\u67D3\uFF0C\u8BF7\u4F7F\u7528\u5176\u4ED6\u540D\u79F0`)}export{o as containsScriptTag,r as makeCallback,c as validateIdentifierName};
|
|
@@ -0,0 +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;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export { V as Validator } from '../../shared/vite-plugin.DRRlWY8P.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 验证全局变量名的合法性(包装 validateIdentifierName,附加字段上下文信息)
|
|
5
|
+
*
|
|
6
|
+
* @param name - 全局变量名
|
|
7
|
+
* @param fieldName - 字段名称,用于错误消息上下文(如 'globalName'、'defineName')
|
|
8
|
+
* @throws 当名称不合法时抛出带字段上下文的错误
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* validateGlobalName('__LOADING_MANAGER__', 'globalName')
|
|
13
|
+
* validateGlobalName('__APP_VERSION__', 'defineName')
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
declare function validateGlobalName(name: string | undefined, fieldName: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* 验证模板字符串不包含 script 标签(XSS 防护)
|
|
19
|
+
*
|
|
20
|
+
* @param template - 模板字符串
|
|
21
|
+
* @param fieldName - 字段名称,用于错误消息上下文
|
|
22
|
+
* @throws 当模板包含 `<script>` 标签时抛出错误
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* validateNoScriptInTemplate('<div>safe</div>', 'customTemplate')
|
|
27
|
+
* validateNoScriptInTemplate(options.customPromptTemplate, 'customPromptTemplate')
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
declare function validateNoScriptInTemplate(template: string | undefined, fieldName: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* 验证回调字段不包含 script 标签
|
|
33
|
+
*
|
|
34
|
+
* @param callbacks - 回调配置对象
|
|
35
|
+
* @param fields - 需要验证的回调字段名数组
|
|
36
|
+
* @param objectName - 回调所属对象名称,用于错误消息上下文
|
|
37
|
+
* @throws 当回调字段非字符串类型时抛出错误
|
|
38
|
+
* @throws 当回调字符串包含 `<script>` 标签时抛出错误
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* validateCallbackFields(callbacks, ['onShow', 'onHide'], 'callbacks')
|
|
43
|
+
* validateCallbackFields(options, ['onUpdateAvailable', 'onRefresh'], 'callbacks')
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
declare function validateCallbackFields(callbacks: Record<string, any>, fields: string[], objectName: string): void;
|
|
47
|
+
/**
|
|
48
|
+
* 验证数值为非负数
|
|
49
|
+
*
|
|
50
|
+
* @param value - 待验证的数值
|
|
51
|
+
* @param fieldName - 字段名称,用于错误消息
|
|
52
|
+
* @throws 当值存在但不是数字或为负数时抛出错误
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* validateNonNegativeNumber(100, 'zIndex')
|
|
57
|
+
* validateNonNegativeNumber(-1, 'duration') // 抛出错误
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
declare function validateNonNegativeNumber(value: number | undefined, fieldName: string): void;
|
|
61
|
+
/**
|
|
62
|
+
* 验证嵌套配置项的 duration 合法性
|
|
63
|
+
*
|
|
64
|
+
* @param config - 嵌套配置对象(包含 enabled 和 duration 字段)
|
|
65
|
+
* @param errorMsg - 验证失败时的错误提示信息
|
|
66
|
+
* @throws 当 duration 存在但不是非负数时抛出错误
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* validateNestedDuration({ enabled: true, duration: 300 }, 'minDisplayTime.duration 必须是非负数')
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
declare function validateNestedDuration(config: {
|
|
74
|
+
enabled?: boolean;
|
|
75
|
+
duration?: number;
|
|
76
|
+
} | undefined, errorMsg: string): void;
|
|
77
|
+
/**
|
|
78
|
+
* 验证字符串值是否在允许的枚举列表中
|
|
79
|
+
*
|
|
80
|
+
* @param value - 待验证的值
|
|
81
|
+
* @param allowedValues - 允许的值列表
|
|
82
|
+
* @param fieldName - 字段名称,用于错误消息
|
|
83
|
+
* @throws 当值存在但不在允许列表中时抛出错误
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* validateEnumValue('center', ['center', 'top', 'bottom'], 'position')
|
|
88
|
+
* validateEnumValue('modal', ['modal', 'banner', 'toast'], 'promptStyle')
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function validateEnumValue(value: string | undefined, allowedValues: string[], fieldName: string): void;
|
|
92
|
+
|
|
93
|
+
export { validateCallbackFields, validateEnumValue, validateGlobalName, validateNestedDuration, validateNoScriptInTemplate, validateNonNegativeNumber };
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export { V as Validator } from '../../shared/vite-plugin.DRRlWY8P.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 验证全局变量名的合法性(包装 validateIdentifierName,附加字段上下文信息)
|
|
5
|
+
*
|
|
6
|
+
* @param name - 全局变量名
|
|
7
|
+
* @param fieldName - 字段名称,用于错误消息上下文(如 'globalName'、'defineName')
|
|
8
|
+
* @throws 当名称不合法时抛出带字段上下文的错误
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* validateGlobalName('__LOADING_MANAGER__', 'globalName')
|
|
13
|
+
* validateGlobalName('__APP_VERSION__', 'defineName')
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
declare function validateGlobalName(name: string | undefined, fieldName: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* 验证模板字符串不包含 script 标签(XSS 防护)
|
|
19
|
+
*
|
|
20
|
+
* @param template - 模板字符串
|
|
21
|
+
* @param fieldName - 字段名称,用于错误消息上下文
|
|
22
|
+
* @throws 当模板包含 `<script>` 标签时抛出错误
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* validateNoScriptInTemplate('<div>safe</div>', 'customTemplate')
|
|
27
|
+
* validateNoScriptInTemplate(options.customPromptTemplate, 'customPromptTemplate')
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
declare function validateNoScriptInTemplate(template: string | undefined, fieldName: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* 验证回调字段不包含 script 标签
|
|
33
|
+
*
|
|
34
|
+
* @param callbacks - 回调配置对象
|
|
35
|
+
* @param fields - 需要验证的回调字段名数组
|
|
36
|
+
* @param objectName - 回调所属对象名称,用于错误消息上下文
|
|
37
|
+
* @throws 当回调字段非字符串类型时抛出错误
|
|
38
|
+
* @throws 当回调字符串包含 `<script>` 标签时抛出错误
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* validateCallbackFields(callbacks, ['onShow', 'onHide'], 'callbacks')
|
|
43
|
+
* validateCallbackFields(options, ['onUpdateAvailable', 'onRefresh'], 'callbacks')
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
declare function validateCallbackFields(callbacks: Record<string, any>, fields: string[], objectName: string): void;
|
|
47
|
+
/**
|
|
48
|
+
* 验证数值为非负数
|
|
49
|
+
*
|
|
50
|
+
* @param value - 待验证的数值
|
|
51
|
+
* @param fieldName - 字段名称,用于错误消息
|
|
52
|
+
* @throws 当值存在但不是数字或为负数时抛出错误
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* validateNonNegativeNumber(100, 'zIndex')
|
|
57
|
+
* validateNonNegativeNumber(-1, 'duration') // 抛出错误
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
declare function validateNonNegativeNumber(value: number | undefined, fieldName: string): void;
|
|
61
|
+
/**
|
|
62
|
+
* 验证嵌套配置项的 duration 合法性
|
|
63
|
+
*
|
|
64
|
+
* @param config - 嵌套配置对象(包含 enabled 和 duration 字段)
|
|
65
|
+
* @param errorMsg - 验证失败时的错误提示信息
|
|
66
|
+
* @throws 当 duration 存在但不是非负数时抛出错误
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* validateNestedDuration({ enabled: true, duration: 300 }, 'minDisplayTime.duration 必须是非负数')
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
declare function validateNestedDuration(config: {
|
|
74
|
+
enabled?: boolean;
|
|
75
|
+
duration?: number;
|
|
76
|
+
} | undefined, errorMsg: string): void;
|
|
77
|
+
/**
|
|
78
|
+
* 验证字符串值是否在允许的枚举列表中
|
|
79
|
+
*
|
|
80
|
+
* @param value - 待验证的值
|
|
81
|
+
* @param allowedValues - 允许的值列表
|
|
82
|
+
* @param fieldName - 字段名称,用于错误消息
|
|
83
|
+
* @throws 当值存在但不在允许列表中时抛出错误
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* validateEnumValue('center', ['center', 'top', 'bottom'], 'position')
|
|
88
|
+
* validateEnumValue('modal', ['modal', 'banner', 'toast'], 'promptStyle')
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function validateEnumValue(value: string | undefined, allowedValues: string[], fieldName: string): void;
|
|
92
|
+
|
|
93
|
+
export { validateCallbackFields, validateEnumValue, validateGlobalName, validateNestedDuration, validateNoScriptInTemplate, validateNonNegativeNumber };
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export { V as Validator } from '../../shared/vite-plugin.DRRlWY8P.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 验证全局变量名的合法性(包装 validateIdentifierName,附加字段上下文信息)
|
|
5
|
+
*
|
|
6
|
+
* @param name - 全局变量名
|
|
7
|
+
* @param fieldName - 字段名称,用于错误消息上下文(如 'globalName'、'defineName')
|
|
8
|
+
* @throws 当名称不合法时抛出带字段上下文的错误
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* validateGlobalName('__LOADING_MANAGER__', 'globalName')
|
|
13
|
+
* validateGlobalName('__APP_VERSION__', 'defineName')
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
declare function validateGlobalName(name: string | undefined, fieldName: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* 验证模板字符串不包含 script 标签(XSS 防护)
|
|
19
|
+
*
|
|
20
|
+
* @param template - 模板字符串
|
|
21
|
+
* @param fieldName - 字段名称,用于错误消息上下文
|
|
22
|
+
* @throws 当模板包含 `<script>` 标签时抛出错误
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* validateNoScriptInTemplate('<div>safe</div>', 'customTemplate')
|
|
27
|
+
* validateNoScriptInTemplate(options.customPromptTemplate, 'customPromptTemplate')
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
declare function validateNoScriptInTemplate(template: string | undefined, fieldName: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* 验证回调字段不包含 script 标签
|
|
33
|
+
*
|
|
34
|
+
* @param callbacks - 回调配置对象
|
|
35
|
+
* @param fields - 需要验证的回调字段名数组
|
|
36
|
+
* @param objectName - 回调所属对象名称,用于错误消息上下文
|
|
37
|
+
* @throws 当回调字段非字符串类型时抛出错误
|
|
38
|
+
* @throws 当回调字符串包含 `<script>` 标签时抛出错误
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* validateCallbackFields(callbacks, ['onShow', 'onHide'], 'callbacks')
|
|
43
|
+
* validateCallbackFields(options, ['onUpdateAvailable', 'onRefresh'], 'callbacks')
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
declare function validateCallbackFields(callbacks: Record<string, any>, fields: string[], objectName: string): void;
|
|
47
|
+
/**
|
|
48
|
+
* 验证数值为非负数
|
|
49
|
+
*
|
|
50
|
+
* @param value - 待验证的数值
|
|
51
|
+
* @param fieldName - 字段名称,用于错误消息
|
|
52
|
+
* @throws 当值存在但不是数字或为负数时抛出错误
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* validateNonNegativeNumber(100, 'zIndex')
|
|
57
|
+
* validateNonNegativeNumber(-1, 'duration') // 抛出错误
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
declare function validateNonNegativeNumber(value: number | undefined, fieldName: string): void;
|
|
61
|
+
/**
|
|
62
|
+
* 验证嵌套配置项的 duration 合法性
|
|
63
|
+
*
|
|
64
|
+
* @param config - 嵌套配置对象(包含 enabled 和 duration 字段)
|
|
65
|
+
* @param errorMsg - 验证失败时的错误提示信息
|
|
66
|
+
* @throws 当 duration 存在但不是非负数时抛出错误
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* validateNestedDuration({ enabled: true, duration: 300 }, 'minDisplayTime.duration 必须是非负数')
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
declare function validateNestedDuration(config: {
|
|
74
|
+
enabled?: boolean;
|
|
75
|
+
duration?: number;
|
|
76
|
+
} | undefined, errorMsg: string): void;
|
|
77
|
+
/**
|
|
78
|
+
* 验证字符串值是否在允许的枚举列表中
|
|
79
|
+
*
|
|
80
|
+
* @param value - 待验证的值
|
|
81
|
+
* @param allowedValues - 允许的值列表
|
|
82
|
+
* @param fieldName - 字段名称,用于错误消息
|
|
83
|
+
* @throws 当值存在但不在允许列表中时抛出错误
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* validateEnumValue('center', ['center', 'top', 'bottom'], 'position')
|
|
88
|
+
* validateEnumValue('modal', ['modal', 'banner', 'toast'], 'promptStyle')
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function validateEnumValue(value: string | undefined, allowedValues: string[], fieldName: string): void;
|
|
92
|
+
|
|
93
|
+
export { validateCallbackFields, validateEnumValue, validateGlobalName, validateNestedDuration, validateNoScriptInTemplate, validateNonNegativeNumber };
|
|
@@ -0,0 +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};
|
package/dist/factory/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const index=require("../shared/vite-plugin.
|
|
1
|
+
"use strict";const logger_index=require("../logger/index.cjs"),common_object_index=require("../common/object/index.cjs"),validator=require("../shared/vite-plugin.Bcg6RW2N.cjs");class BasePlugin{options;logger;validator;viteConfig=null;constructor(e,o){this.options=this.mergeOptions(e),this.logger=this.initLogger(o),this.validator=new validator.Validator(this.options),this.safeExecuteSync(()=>this.validateOptions(),"\u63D2\u4EF6\u914D\u7F6E\u9A8C\u8BC1")}getDefaultOptions(){return{}}mergeOptions(e){const o={enabled:!0,verbose:!0,errorStrategy:"throw"},t=this.getDefaultOptions();return common_object_index.deepMerge(o,t,e)}initLogger(e){return logger_index.Logger.create({name:this.getPluginName(),enabled:this.options.verbose,...e}).createPluginLogger(this.getPluginName())}validateOptions(){}getEnforce(){}onConfigResolved(e){this.viteConfig=e,this.logger.info("\u914D\u7F6E\u89E3\u6790\u5B8C\u6210\uFF0C\u63D2\u4EF6\u5DF2\u521D\u59CB\u5316")}destroy(){logger_index.Logger.unregister(this.getPluginName())}safeExecuteSync(e,o){try{return e()}catch(t){return this.handleError(t,o)}}async safeExecute(e,o){try{return await e()}catch(t){return this.handleError(t,o)}}handleError(e,o){let t=`${o}: `;switch(e instanceof Error?t+=e.message:typeof e=="string"?t+=e:t+=String(e),this.options.errorStrategy){case"throw":throw this.logger.error(t),e;case"log":case"ignore":this.logger.error(t);return;default:throw this.logger.error(t),e}}toPlugin(){const e={name:this.getPluginName(),enforce:this.getEnforce()};this.addPluginHooks(e);const o=e.configResolved;e.configResolved=n=>{this.options.enabled&&(this.onConfigResolved(n),typeof o=="function"&&o(n))};const t=this,r=e.closeBundle;return e.closeBundle=function(){typeof r=="function"&&r.call(this),t.destroy()},e}}function createPluginFactory(i,e){return o=>{const t=e?e(o):o,r=new i(t),n=r.toPlugin();return n.pluginInstance=r,n}}exports.BasePlugin=BasePlugin,exports.createPluginFactory=createPluginFactory;
|
package/dist/factory/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Plugin, ResolvedConfig } from 'vite';
|
|
2
2
|
import { P as PluginLogger, a as LoggerOptions } from '../shared/vite-plugin.CLr0ttuO.cjs';
|
|
3
|
-
import { V as Validator } from '../shared/vite-plugin.
|
|
3
|
+
import { V as Validator } from '../shared/vite-plugin.DRRlWY8P.cjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* 带插件实例引用的 Vite 插件类型
|
package/dist/factory/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Plugin, ResolvedConfig } from 'vite';
|
|
2
2
|
import { P as PluginLogger, a as LoggerOptions } from '../shared/vite-plugin.CLr0ttuO.mjs';
|
|
3
|
-
import { V as Validator } from '../shared/vite-plugin.
|
|
3
|
+
import { V as Validator } from '../shared/vite-plugin.DRRlWY8P.mjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* 带插件实例引用的 Vite 插件类型
|
package/dist/factory/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Plugin, ResolvedConfig } from 'vite';
|
|
2
2
|
import { P as PluginLogger, a as LoggerOptions } from '../shared/vite-plugin.CLr0ttuO.js';
|
|
3
|
-
import { V as Validator } from '../shared/vite-plugin.
|
|
3
|
+
import { V as Validator } from '../shared/vite-plugin.DRRlWY8P.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* 带插件实例引用的 Vite 插件类型
|
package/dist/factory/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{Logger as s}from"../logger/index.mjs";import{deepMerge as u}from"../common/object/index.mjs";import{V as g}from"../shared/vite-plugin.DcExl6jd.mjs";class a{options;logger;validator;viteConfig=null;constructor(t,o){this.options=this.mergeOptions(t),this.logger=this.initLogger(o),this.validator=new g(this.options),this.safeExecuteSync(()=>this.validateOptions(),"\u63D2\u4EF6\u914D\u7F6E\u9A8C\u8BC1")}getDefaultOptions(){return{}}mergeOptions(t){const o={enabled:!0,verbose:!0,errorStrategy:"throw"},e=this.getDefaultOptions();return u(o,e,t)}initLogger(t){return s.create({name:this.getPluginName(),enabled:this.options.verbose,...t}).createPluginLogger(this.getPluginName())}validateOptions(){}getEnforce(){}onConfigResolved(t){this.viteConfig=t,this.logger.info("\u914D\u7F6E\u89E3\u6790\u5B8C\u6210\uFF0C\u63D2\u4EF6\u5DF2\u521D\u59CB\u5316")}destroy(){s.unregister(this.getPluginName())}safeExecuteSync(t,o){try{return t()}catch(e){return this.handleError(e,o)}}async safeExecute(t,o){try{return await t()}catch(e){return this.handleError(e,o)}}handleError(t,o){let e=`${o}: `;switch(t instanceof Error?e+=t.message:typeof t=="string"?e+=t:e+=String(t),this.options.errorStrategy){case"throw":throw this.logger.error(e),t;case"log":case"ignore":this.logger.error(e);return;default:throw this.logger.error(e),t}}toPlugin(){const t={name:this.getPluginName(),enforce:this.getEnforce()};this.addPluginHooks(t);const o=t.configResolved;t.configResolved=n=>{this.options.enabled&&(this.onConfigResolved(n),typeof o=="function"&&o(n))};const e=this,r=t.closeBundle;return t.closeBundle=function(){typeof r=="function"&&r.call(this),e.destroy()},t}}function l(i,t){return o=>{const e=t?t(o):o,r=new i(e),n=r.toPlugin();return n.pluginInstance=r,n}}export{a as BasePlugin,l as createPluginFactory};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const
|
|
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_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: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.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;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
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';
|
|
4
|
+
export { deepMerge } from './common/object/index.cjs';
|
|
5
|
+
export { containsScriptTag, makeCallback, validateIdentifierName } from './common/script/index.cjs';
|
|
6
|
+
export { V as Validator } from './shared/vite-plugin.DRRlWY8P.cjs';
|
|
7
|
+
export { validateCallbackFields, validateEnumValue, validateGlobalName, validateNestedDuration, validateNoScriptInTemplate, validateNonNegativeNumber } from './common/validation/index.cjs';
|
|
3
8
|
export { BasePlugin, BasePluginOptions, OptionsNormalizer, PluginFactory, PluginWithInstance, createPluginFactory } from './factory/index.cjs';
|
|
4
9
|
export { L as Logger, P as PluginLogger } from './shared/vite-plugin.CLr0ttuO.cjs';
|
|
5
|
-
export {
|
|
10
|
+
export { BuildPhase, BuildProgressOptions, ProgressFormat, ProgressTheme, buildProgress } from './plugins/buildProgress/index.cjs';
|
|
11
|
+
export { CopyFileOptions, copyFile } from './plugins/copyFile/index.cjs';
|
|
12
|
+
export { FaviconManagerOptions, Icon, faviconManager } from './plugins/faviconManager/index.cjs';
|
|
13
|
+
export { GenerateRouterOptions, NameStrategy, OutputFormat, RouteConfig, RouteMeta, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.cjs';
|
|
14
|
+
export { GenerateVersionOptions, OutputType, VersionFormat, VersionInfo, generateVersion } from './plugins/generateVersion/index.cjs';
|
|
15
|
+
export { ConditionType, HtmlInjectOptions, InjectCondition, InjectPosition, InjectRule, InjectionLogEntry, SecurityConfig, SelectorMatch, htmlInject } from './plugins/htmlInject/index.cjs';
|
|
16
|
+
export { AutoBindMode, AutoHideOn, DebounceHide, DelayShow, LoadingCallbacks, LoadingManager, LoadingManagerOptions, LoadingPosition, LoadingStyle, MinDisplayTime, RequestFilter, SpinnerType, TransitionConfig, loadingManager } from './plugins/loadingManager/index.cjs';
|
|
17
|
+
export { PromptStyle, VersionSource, VersionUpdateCheckerOptions, versionUpdateChecker } from './plugins/versionUpdateChecker/index.cjs';
|
|
6
18
|
import 'vite';
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
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';
|
|
4
|
+
export { deepMerge } from './common/object/index.mjs';
|
|
5
|
+
export { containsScriptTag, makeCallback, validateIdentifierName } from './common/script/index.mjs';
|
|
6
|
+
export { V as Validator } from './shared/vite-plugin.DRRlWY8P.mjs';
|
|
7
|
+
export { validateCallbackFields, validateEnumValue, validateGlobalName, validateNestedDuration, validateNoScriptInTemplate, validateNonNegativeNumber } from './common/validation/index.mjs';
|
|
3
8
|
export { BasePlugin, BasePluginOptions, OptionsNormalizer, PluginFactory, PluginWithInstance, createPluginFactory } from './factory/index.mjs';
|
|
4
9
|
export { L as Logger, P as PluginLogger } from './shared/vite-plugin.CLr0ttuO.mjs';
|
|
5
|
-
export {
|
|
10
|
+
export { BuildPhase, BuildProgressOptions, ProgressFormat, ProgressTheme, buildProgress } from './plugins/buildProgress/index.mjs';
|
|
11
|
+
export { CopyFileOptions, copyFile } from './plugins/copyFile/index.mjs';
|
|
12
|
+
export { FaviconManagerOptions, Icon, faviconManager } from './plugins/faviconManager/index.mjs';
|
|
13
|
+
export { GenerateRouterOptions, NameStrategy, OutputFormat, RouteConfig, RouteMeta, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.mjs';
|
|
14
|
+
export { GenerateVersionOptions, OutputType, VersionFormat, VersionInfo, generateVersion } from './plugins/generateVersion/index.mjs';
|
|
15
|
+
export { ConditionType, HtmlInjectOptions, InjectCondition, InjectPosition, InjectRule, InjectionLogEntry, SecurityConfig, SelectorMatch, htmlInject } from './plugins/htmlInject/index.mjs';
|
|
16
|
+
export { AutoBindMode, AutoHideOn, DebounceHide, DelayShow, LoadingCallbacks, LoadingManager, LoadingManagerOptions, LoadingPosition, LoadingStyle, MinDisplayTime, RequestFilter, SpinnerType, TransitionConfig, loadingManager } from './plugins/loadingManager/index.mjs';
|
|
17
|
+
export { PromptStyle, VersionSource, VersionUpdateCheckerOptions, versionUpdateChecker } from './plugins/versionUpdateChecker/index.mjs';
|
|
6
18
|
import 'vite';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
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';
|
|
4
|
+
export { deepMerge } from './common/object/index.js';
|
|
5
|
+
export { containsScriptTag, makeCallback, validateIdentifierName } from './common/script/index.js';
|
|
6
|
+
export { V as Validator } from './shared/vite-plugin.DRRlWY8P.js';
|
|
7
|
+
export { validateCallbackFields, validateEnumValue, validateGlobalName, validateNestedDuration, validateNoScriptInTemplate, validateNonNegativeNumber } from './common/validation/index.js';
|
|
3
8
|
export { BasePlugin, BasePluginOptions, OptionsNormalizer, PluginFactory, PluginWithInstance, createPluginFactory } from './factory/index.js';
|
|
4
9
|
export { L as Logger, P as PluginLogger } from './shared/vite-plugin.CLr0ttuO.js';
|
|
5
|
-
export {
|
|
10
|
+
export { BuildPhase, BuildProgressOptions, ProgressFormat, ProgressTheme, buildProgress } from './plugins/buildProgress/index.js';
|
|
11
|
+
export { CopyFileOptions, copyFile } from './plugins/copyFile/index.js';
|
|
12
|
+
export { FaviconManagerOptions, Icon, faviconManager } from './plugins/faviconManager/index.js';
|
|
13
|
+
export { GenerateRouterOptions, NameStrategy, OutputFormat, RouteConfig, RouteMeta, UniAppPageConfig, UniAppPagesJson, UniAppTabBarConfig, generateRouter } from './plugins/generateRouter/index.js';
|
|
14
|
+
export { GenerateVersionOptions, OutputType, VersionFormat, VersionInfo, generateVersion } from './plugins/generateVersion/index.js';
|
|
15
|
+
export { ConditionType, HtmlInjectOptions, InjectCondition, InjectPosition, InjectRule, InjectionLogEntry, SecurityConfig, SelectorMatch, htmlInject } from './plugins/htmlInject/index.js';
|
|
16
|
+
export { AutoBindMode, AutoHideOn, DebounceHide, DelayShow, LoadingCallbacks, LoadingManager, LoadingManagerOptions, LoadingPosition, LoadingStyle, MinDisplayTime, RequestFilter, SpinnerType, TransitionConfig, loadingManager } from './plugins/loadingManager/index.js';
|
|
17
|
+
export { PromptStyle, VersionSource, VersionUpdateCheckerOptions, versionUpdateChecker } from './plugins/versionUpdateChecker/index.js';
|
|
6
18
|
import 'vite';
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
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{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:path";
|
|
@@ -0,0 +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;
|