@cosui/genui-toolkit 1.0.4 → 1.0.5
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/dist/check/artifact.d.ts +0 -3
- package/dist/check/artifact.d.ts.map +1 -1
- package/dist/check/artifact.js +0 -10
- package/dist/check/artifact.js.map +1 -1
- package/dist/check/checker.d.ts +0 -3
- package/dist/check/checker.d.ts.map +1 -1
- package/dist/check/checker.js +0 -6
- package/dist/check/checker.js.map +1 -1
- package/dist/check/cli.d.ts +2 -4
- package/dist/check/cli.d.ts.map +1 -1
- package/dist/check/cli.js +8 -28
- package/dist/check/cli.js.map +1 -1
- package/dist/check/rules/artifact.js +0 -8
- package/dist/check/rules/artifact.js.map +1 -1
- package/dist/check/rules/common.d.ts +0 -6
- package/dist/check/rules/common.d.ts.map +1 -1
- package/dist/check/rules/common.js +0 -6
- package/dist/check/rules/common.js.map +1 -1
- package/dist/check/rules/file.js +0 -9
- package/dist/check/rules/file.js.map +1 -1
- package/dist/check/rules/html.js +0 -36
- package/dist/check/rules/html.js.map +1 -1
- package/dist/check/rules/index.d.ts +0 -3
- package/dist/check/rules/index.d.ts.map +1 -1
- package/dist/check/rules/index.js +0 -43
- package/dist/check/rules/index.js.map +1 -1
- package/dist/check/rules/javascript.d.ts +1 -0
- package/dist/check/rules/javascript.d.ts.map +1 -1
- package/dist/check/rules/javascript.js +29 -107
- package/dist/check/rules/javascript.js.map +1 -1
- package/dist/check/rules/lite.d.ts +3 -0
- package/dist/check/rules/lite.d.ts.map +1 -0
- package/dist/check/rules/lite.js +8 -0
- package/dist/check/rules/lite.js.map +1 -0
- package/dist/check/rules/svg.d.ts +0 -4
- package/dist/check/rules/svg.d.ts.map +1 -1
- package/dist/check/rules/svg.js +0 -5
- package/dist/check/rules/svg.js.map +1 -1
- package/dist/cli.js +4 -4
- package/dist/cli.js.map +1 -1
- package/dist/preview.d.ts +2 -1
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +37 -7
- package/dist/preview.js.map +1 -1
- package/dist/push.d.ts.map +1 -1
- package/dist/push.js +30 -19
- package/dist/push.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/check/rules/index.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AACxC,iCAAgC;AAChC,iCAAgC;AAChC,6CAA4C;AAC5C,+BAA8B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/check/rules/index.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AACxC,iCAAgC;AAChC,iCAAgC;AAChC,6CAA4C;AAC5C,+BAA8B;AAMjB,QAAA,KAAK,GAAW;IASzB,uBAAY;IAQZ,eAAQ;IAaR,eAAQ;IAMR,aAAO;IAcP,2BAAc;CACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../src/check/rules/javascript.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAA2B,IAAI,EAAC,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../src/check/rules/javascript.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAA2B,IAAI,EAAC,MAAM,UAAU,CAAC;AAinB7D,eAAO,MAAM,cAAc,EAAE,IAAiC,CAAC;AAG/D,eAAO,MAAM,oBAAoB,EAAE,IAAkC,CAAC"}
|
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.javascriptRule = void 0;
|
|
36
|
+
exports.javascriptSyntaxRule = exports.javascriptRule = void 0;
|
|
37
37
|
const parse5 = __importStar(require("parse5"));
|
|
38
38
|
const ts = __importStar(require("typescript"));
|
|
39
39
|
const node_util_1 = require("node:util");
|
|
@@ -76,15 +76,6 @@ function collectBindingNames(name, result) {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
/**
|
|
80
|
-
* 递归遍历源文件 AST,收集其中声明的所有标识符名称
|
|
81
|
-
*
|
|
82
|
-
* 收集范围包括变量声明、函数参数(含解构绑定)、函数声明、类声明,
|
|
83
|
-
* 以及默认导入、具名导入和命名空间导入的本地名称。
|
|
84
|
-
*
|
|
85
|
-
* @param sourceFile 待分析的 TypeScript/JavaScript 源文件 AST
|
|
86
|
-
* @return 源文件中所有已声明标识符名称的集合
|
|
87
|
-
*/
|
|
88
79
|
function collectDeclaredNames(sourceFile) {
|
|
89
80
|
const result = new Map();
|
|
90
81
|
const isLexicalScope = (node) => ts.isSourceFile(node)
|
|
@@ -139,15 +130,6 @@ function collectDeclaredNames(sourceFile) {
|
|
|
139
130
|
visit(sourceFile);
|
|
140
131
|
return result;
|
|
141
132
|
}
|
|
142
|
-
/**
|
|
143
|
-
* 解析 JS 源码,构建规则校验所需的上下文
|
|
144
|
-
*
|
|
145
|
-
* @param file 源文件路径,用于问题定位与结果标注
|
|
146
|
-
* @param source JS 源码文本
|
|
147
|
-
* @param fullSource 所属完整源码,用于还原内联脚本位置
|
|
148
|
-
* @param baseOffset 脚本在完整源码中的字符偏移
|
|
149
|
-
* @return 包含源文件 AST、已声明标识符集合与位置信息的校验上下文
|
|
150
|
-
*/
|
|
151
133
|
function createContext(file, source, fullSource = source, baseOffset = 0) {
|
|
152
134
|
const sourceFile = ts.createSourceFile(file, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.JS);
|
|
153
135
|
return {
|
|
@@ -164,14 +146,6 @@ function walkHtml(node, visitor) {
|
|
|
164
146
|
walkHtml(child, visitor);
|
|
165
147
|
}
|
|
166
148
|
}
|
|
167
|
-
/**
|
|
168
|
-
* 判断节点是否为引用指定名称的全局标识符
|
|
169
|
-
*
|
|
170
|
-
* @param context 校验上下文,提供已声明标识符集合
|
|
171
|
-
* @param node 待判断的 AST 节点
|
|
172
|
-
* @param name 目标标识符名称
|
|
173
|
-
* @return 节点为该名称的标识符且未在源码中声明时返回 true
|
|
174
|
-
*/
|
|
175
149
|
function isGlobalIdentifier(context, node, name) {
|
|
176
150
|
if (!ts.isIdentifier(node) || node.text !== name) {
|
|
177
151
|
return false;
|
|
@@ -212,13 +186,6 @@ function isGlobalReference(context, node, name) {
|
|
|
212
186
|
&& object !== undefined
|
|
213
187
|
&& ['window', 'globalThis', 'self'].some(globalName => (isGlobalIdentifier(context, object, globalName)));
|
|
214
188
|
}
|
|
215
|
-
/**
|
|
216
|
-
* 计算 AST 节点在源文件中的位置
|
|
217
|
-
*
|
|
218
|
-
* @param context 校验上下文,提供完整源码和字符偏移
|
|
219
|
-
* @param node 待定位的 AST 节点
|
|
220
|
-
* @return 从 1 开始计数的绝对行列位置
|
|
221
|
-
*/
|
|
222
189
|
function getOffsetLocation(context, sourceOffset) {
|
|
223
190
|
const offset = context.baseOffset + sourceOffset;
|
|
224
191
|
const before = context.fullSource.slice(0, offset);
|
|
@@ -231,13 +198,6 @@ function getOffsetLocation(context, sourceOffset) {
|
|
|
231
198
|
function getLocation(context, node) {
|
|
232
199
|
return getOffsetLocation(context, node.getStart(context.sourceFile));
|
|
233
200
|
}
|
|
234
|
-
/**
|
|
235
|
-
* 判断表达式是否指向全局 location 对象
|
|
236
|
-
*
|
|
237
|
-
* @param context 校验上下文,提供已声明标识符集合
|
|
238
|
-
* @param node 待判断的表达式节点
|
|
239
|
-
* @returns 表达式为未在源码中声明的 location 或 window.location 时返回 true
|
|
240
|
-
*/
|
|
241
201
|
function isLocation(context, node) {
|
|
242
202
|
if (isGlobalIdentifier(context, node, 'location')) {
|
|
243
203
|
return true;
|
|
@@ -246,13 +206,6 @@ function isLocation(context, node) {
|
|
|
246
206
|
&& node.name.text === 'location'
|
|
247
207
|
&& ['window', 'globalThis', 'self', 'document'].some(name => (isGlobalIdentifier(context, node.expression, name)));
|
|
248
208
|
}
|
|
249
|
-
/**
|
|
250
|
-
* 从 HTML 源码中提取内联脚本,并为每段脚本构建检查上下文
|
|
251
|
-
*
|
|
252
|
-
* @param file 所属产物文件,用于在诊断结果中标记文件路径
|
|
253
|
-
* @param source HTML 源码文本
|
|
254
|
-
* @returns 每段内联脚本对应的检查上下文列表
|
|
255
|
-
*/
|
|
256
209
|
function inlineScripts(file, source) {
|
|
257
210
|
const document = parse5.parse(source, { sourceCodeLocationInfo: true });
|
|
258
211
|
const contexts = [];
|
|
@@ -287,13 +240,6 @@ function isExternalTarget(value) {
|
|
|
287
240
|
const target = value.trim();
|
|
288
241
|
return target.length > 0 && !target.startsWith('#') && !target.startsWith('?');
|
|
289
242
|
}
|
|
290
|
-
/**
|
|
291
|
-
* 检查脚本中的动态代码执行用法,覆盖 eval、Function 构造器
|
|
292
|
-
*
|
|
293
|
-
* @param context 当前脚本的检查上下文,用于判断标识符是否为全局引用并定位诊断位置
|
|
294
|
-
* @param node 待检查的语法树节点
|
|
295
|
-
* @returns 命中动态代码用法时返回对应的 error 级问题,未命中返回 null
|
|
296
|
-
*/
|
|
297
243
|
function checkDynamicCode(context, node) {
|
|
298
244
|
if (ts.isCallExpression(node)) {
|
|
299
245
|
if (isGlobalReference(context, node.expression, 'eval')) {
|
|
@@ -303,7 +249,6 @@ function checkDynamicCode(context, node) {
|
|
|
303
249
|
message: '代码使用了 eval,请改写为普通 JavaScript 逻辑',
|
|
304
250
|
};
|
|
305
251
|
}
|
|
306
|
-
// Function 构造器
|
|
307
252
|
if (isGlobalReference(context, node.expression, 'Function')) {
|
|
308
253
|
return {
|
|
309
254
|
...getLocation(context, node),
|
|
@@ -311,7 +256,6 @@ function checkDynamicCode(context, node) {
|
|
|
311
256
|
message: '代码使用了 Function 构造器,请改用普通函数声明',
|
|
312
257
|
};
|
|
313
258
|
}
|
|
314
|
-
// setTimeout / setInterval 动态插入代码
|
|
315
259
|
const timerName = ['setTimeout', 'setInterval'].find(name => (isGlobalReference(context, node.expression, name)));
|
|
316
260
|
if (timerName && getStaticString(node.arguments[0]) !== null) {
|
|
317
261
|
return {
|
|
@@ -320,7 +264,6 @@ function checkDynamicCode(context, node) {
|
|
|
320
264
|
message: `${timerName} 使用了字符串参数,请改为传入函数`,
|
|
321
265
|
};
|
|
322
266
|
}
|
|
323
|
-
// document.write / writeHTML
|
|
324
267
|
if ((ts.isPropertyAccessExpression(node.expression) || ts.isElementAccessExpression(node.expression))
|
|
325
268
|
&& ['write', 'writeln'].includes(getStaticPropertyName(node.expression) ?? '')
|
|
326
269
|
&& isGlobalReference(context, node.expression.expression, 'document')) {
|
|
@@ -343,7 +286,6 @@ function checkDynamicCode(context, node) {
|
|
|
343
286
|
};
|
|
344
287
|
}
|
|
345
288
|
}
|
|
346
|
-
// document.createElement 创建嵌入元素
|
|
347
289
|
const documentMethod = getStaticPropertyName(node.expression);
|
|
348
290
|
if ((ts.isPropertyAccessExpression(node.expression) || ts.isElementAccessExpression(node.expression))
|
|
349
291
|
&& ['createElement', 'createElementNS'].includes(documentMethod ?? '')
|
|
@@ -363,7 +305,6 @@ function checkDynamicCode(context, node) {
|
|
|
363
305
|
}
|
|
364
306
|
}
|
|
365
307
|
}
|
|
366
|
-
// new Function
|
|
367
308
|
if (ts.isNewExpression(node) && isGlobalReference(context, node.expression, 'Function')) {
|
|
368
309
|
return {
|
|
369
310
|
...getLocation(context, node),
|
|
@@ -373,12 +314,6 @@ function checkDynamicCode(context, node) {
|
|
|
373
314
|
}
|
|
374
315
|
return null;
|
|
375
316
|
}
|
|
376
|
-
/**
|
|
377
|
-
* 禁止 WebRTC
|
|
378
|
-
* @param context 当前脚本的检查上下文,用于判断标识符是否为全局引用并定位诊断位置
|
|
379
|
-
* @param node 待检查的语法树节点
|
|
380
|
-
* @returns 命中 WebRTC 用法时返回对应的 error 级问题,未命中返回 null
|
|
381
|
-
*/
|
|
382
317
|
function checkWebRtc(context, node) {
|
|
383
318
|
if (!ts.isNewExpression(node)
|
|
384
319
|
|| !['RTCPeerConnection', 'webkitRTCPeerConnection'].some(name => (isGlobalReference(context, node.expression, name)))) {
|
|
@@ -390,13 +325,6 @@ function checkWebRtc(context, node) {
|
|
|
390
325
|
message: '代码使用了 RTCPeerConnection,请删除该逻辑并仅使用代码包内资源',
|
|
391
326
|
};
|
|
392
327
|
}
|
|
393
|
-
/**
|
|
394
|
-
* 禁止 Worker/SharedWorker 构造与 Service Worker 注册
|
|
395
|
-
*
|
|
396
|
-
* @param context 当前脚本的检查上下文,用于判断标识符是否为全局引用并定位诊断位置
|
|
397
|
-
* @param node 待检查的语法树节点
|
|
398
|
-
* @returns 命中后台脚本用法时返回对应的 warning 级问题,未命中返回 null
|
|
399
|
-
*/
|
|
400
328
|
function checkBackground(context, node) {
|
|
401
329
|
if (ts.isNewExpression(node) && (isGlobalReference(context, node.expression, 'Worker')
|
|
402
330
|
|| isGlobalReference(context, node.expression, 'SharedWorker'))) {
|
|
@@ -422,13 +350,6 @@ function checkBackground(context, node) {
|
|
|
422
350
|
}
|
|
423
351
|
return null;
|
|
424
352
|
}
|
|
425
|
-
/**
|
|
426
|
-
* 禁止 window.open、location 跳转方法调用与 location 属性赋值
|
|
427
|
-
*
|
|
428
|
-
* @param context 当前脚本的检查上下文,用于判断标识符是否为全局引用并定位诊断位置
|
|
429
|
-
* @param node 待检查的语法树节点
|
|
430
|
-
* @returns 命中导航违规用法时返回对应的 error 级问题,未命中返回 null
|
|
431
|
-
*/
|
|
432
353
|
function checkNavigation(context, node) {
|
|
433
354
|
if (ts.isCallExpression(node) && isGlobalReference(context, node.expression, 'open')) {
|
|
434
355
|
return {
|
|
@@ -477,13 +398,7 @@ function checkNavigation(context, node) {
|
|
|
477
398
|
}
|
|
478
399
|
return null;
|
|
479
400
|
}
|
|
480
|
-
|
|
481
|
-
* 遍历脚本语法树,对每个节点执行全部检查项并汇总诊断结果
|
|
482
|
-
*
|
|
483
|
-
* @param context 待检查脚本的上下文,包含文件路径与解析后的语法树
|
|
484
|
-
* @returns 检查命中的诊断结果列表,每项都会补全所属文件路径
|
|
485
|
-
*/
|
|
486
|
-
function inspect(context) {
|
|
401
|
+
function inspect(context, capabilityChecks) {
|
|
487
402
|
const sourceFile = context.sourceFile;
|
|
488
403
|
const problems = (sourceFile.parseDiagnostics ?? []).map(diagnostic => ({
|
|
489
404
|
...getOffsetLocation(context, diagnostic.start ?? 0),
|
|
@@ -496,6 +411,9 @@ function inspect(context) {
|
|
|
496
411
|
...item,
|
|
497
412
|
})));
|
|
498
413
|
}
|
|
414
|
+
if (!capabilityChecks) {
|
|
415
|
+
return [];
|
|
416
|
+
}
|
|
499
417
|
const checks = [
|
|
500
418
|
checkDynamicCode,
|
|
501
419
|
checkBackground,
|
|
@@ -517,25 +435,29 @@ function inspect(context) {
|
|
|
517
435
|
...item,
|
|
518
436
|
})));
|
|
519
437
|
}
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
const
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
438
|
+
function createJavascriptRule(capabilityChecks) {
|
|
439
|
+
return {
|
|
440
|
+
id: 'javascript',
|
|
441
|
+
async check({ artifact }) {
|
|
442
|
+
const diagnostics = [];
|
|
443
|
+
for (const file of artifact.files.values()) {
|
|
444
|
+
const extension = file.path.toLowerCase();
|
|
445
|
+
if (!extension.endsWith('.js')
|
|
446
|
+
&& !extension.endsWith('.html')) {
|
|
447
|
+
continue;
|
|
448
|
+
}
|
|
449
|
+
const source = await (0, common_1.readUtf8)((0, common_1.toFile)(file));
|
|
450
|
+
const contexts = extension.endsWith('.html')
|
|
451
|
+
? inlineScripts(file, source)
|
|
452
|
+
: [createContext(file.path, source)];
|
|
453
|
+
for (const context of contexts) {
|
|
454
|
+
diagnostics.push(...inspect(context, capabilityChecks));
|
|
455
|
+
}
|
|
536
456
|
}
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
}
|
|
540
|
-
}
|
|
457
|
+
return diagnostics;
|
|
458
|
+
},
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
exports.javascriptRule = createJavascriptRule(true);
|
|
462
|
+
exports.javascriptSyntaxRule = createJavascriptRule(false);
|
|
541
463
|
//# sourceMappingURL=javascript.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/check/rules/javascript.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/check/rules/javascript.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,+CAAiC;AACjC,yCAAmC;AACnC,qCAAyD;AA0BzD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IAClC,wBAAwB;IACxB,wBAAwB;IACxB,0BAA0B;IAC1B,0BAA0B;IAC1B,iBAAiB;IACjB,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,cAAc;IACd,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;CACtB,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,8BAA8B,CAAC;AACtD,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IACxC,QAAQ;IACR,OAAO;IACP,aAAa;IACb,QAAQ;IACR,OAAO;CACV,CAAC,CAAC;AACH,MAAM,wBAAwB,GAAG,sDAAsD,CAAC;AAExF,SAAS,mBAAmB,CAAC,IAAoB,EAAE,MAAmB;IAClE,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO;IACX,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;AACL,CAAC;AAWD,SAAS,oBAAoB,CAAC,UAAyB;IACnD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE/C,MAAM,cAAc,GAAG,CAAC,IAAa,EAAW,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;WACjE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC;WACvB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;WAChB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;WACpB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;WACtB,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC;WACvB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;WACzB,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;WACzB,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC;WACtC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE5B,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAE,WAAoB,EAAW,EAAE;QAC9D,IAAI,OAAO,GAAwB,IAAI,CAAC;QACxC,OAAO,OAAO;eACP,OAAO,KAAK,UAAU;eACtB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAC1E,CAAC;YACC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,CAAC;QACD,OAAO,OAAO,IAAI,UAAU,CAAC;IACjC,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAE,IAAoB,EAAQ,EAAE;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QACrD,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QAClC,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC;aACI,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;YACpC,MAAM,WAAW,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;mBAC9C,EAAE,CAAC,yBAAyB,CAAC,eAAe,CAAC;uBAC7C,CAAC,eAAe,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAChE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/E,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7E,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACvC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC;IACF,KAAK,CAAC,UAAU,CAAC,CAAC;IAClB,OAAO,MAAM,CAAC;AAClB,CAAC;AAWD,SAAS,aAAa,CAClB,IAAY,EACZ,MAAc,EACd,UAAU,GAAG,MAAM,EACnB,UAAU,GAAG,CAAC;IAEd,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACrG,OAAO;QACH,IAAI;QACJ,UAAU;QACV,aAAa,EAAE,oBAAoB,CAAC,UAAU,CAAC;QAC/C,UAAU;QACV,UAAU;KACb,CAAC;AACN,CAAC;AAED,SAAS,QAAQ,CAAC,IAAc,EAAE,OAAiC;IAC/D,OAAO,CAAC,IAAI,CAAC,CAAC;IAEd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC;AAUD,SAAS,kBAAkB,CAAC,OAAgB,EAAE,IAAa,EAAE,IAAY;IACrE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,GAAwB,IAAI,CAAC;IACxC,OAAO,OAAO,EAAE,CAAC;QACb,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YAC/F,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;eAC/B,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAClD,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,IAAoB;IACzC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;QACjF,CAAC,CAAC,IAAI,CAAC,IAAI;QACX,CAAC,CAAC,IAAI,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAa;IACxC,OAAO,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QAChB,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC;YAChC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB,EAAE,IAAa,EAAE,IAAY;IACpE,IAAI,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,MAAM,GAAG,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC;QACpF,CAAC,CAAC,IAAI,CAAC,UAAU;QACjB,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,IAAI;WACpC,MAAM,KAAK,SAAS;WACpB,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CACnD,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAClD,CAAC,CAAC;AACX,CAAC;AASD,SAAS,iBAAiB,CAAC,OAAgB,EAAE,YAAoB;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;QAC/B,MAAM,EAAE,MAAM,GAAG,WAAW;KAC/B,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAC,OAAgB,EAAE,IAAa;IAChD,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACzE,CAAC;AASD,SAAS,UAAU,CAAC,OAAgB,EAAE,IAAmB;IACrD,IAAI,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC;WACnC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;WAC7B,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CACzD,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CACrD,CAAC,CAAC;AACX,CAAC;AASD,SAAS,aAAa,CAAC,IAAkB,EAAE,MAAc;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAC,sBAAsB,EAAE,IAAI,EAAC,CAAwB,CAAC;IAC7F,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ;eAC5C,IAAI,CAAC,YAAY,KAAK,8BAA8B,EACzD,CAAC;YACC,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5G,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,EAAE,SAAS,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE,WAAW,CAAC;QAEzD,IAAI,YAAY,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,QAAQ,CAAC;QAC9C,IAAI,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACD,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,oBAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;YACzE,CAAC;YACD,MAAM,CAAC;gBACH,YAAY,GAAG,KAAK,CAAC;YACzB,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;eACb,CAAC,YAAY;eACb,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,IAAI,KAAK,EAC7D,CAAC;YACC,OAAO;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,aAAa,CACvB,IAAI,CAAC,IAAI,EACT,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EACxB,MAAM,EACN,KAAK,CACR,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACnF,CAAC;AASD,SAAS,gBAAgB,CAAC,OAAgB,EAAE,IAAa;IACrD,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,IAAI,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;YACtD,OAAO;gBACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;gBAC7B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,iCAAiC;aAC7C,CAAC;QACN,CAAC;QAGD,IAAI,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;YAC1D,OAAO;gBACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;gBAC7B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,8BAA8B;aAC1C,CAAC;QACN,CAAC;QAGD,MAAM,SAAS,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CACzD,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CACpD,CAAC,CAAC;QACH,IAAI,SAAS,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3D,OAAO;gBACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;gBAC7B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,GAAG,SAAS,mBAAmB;aAC3C,CAAC;QACN,CAAC;QAGD,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;eAC9F,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;eAC3E,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,EACvE,CAAC;YACC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/E,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC1D,OAAO;oBACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;oBAC7B,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,sDAAsD;iBAClE,CAAC;YACN,CAAC;YACD,MAAM,WAAW,GAAG,MAAM;iBACrB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;iBACtE,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,IAAI,WAAW,EAAE,CAAC;gBACd,OAAO;oBACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;oBAC7B,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,4BAA4B,WAAW,kBAAkB;iBACrE,CAAC;YACN,CAAC;QACL,CAAC;QAGD,MAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9D,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;eAC9F,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC;eACnE,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,EACvE,CAAC;YACC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAC1C,cAAc,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7C,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,cAAc,KAAK,iBAAiB;gBAClD,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC,cAAc,CAAC;YAErB,IAAI,OAAO;mBACJ,SAAS,KAAK,cAAc;mBAC5B,2BAA2B,CAAC,GAAG,CAAC,OAAO,CAAC,EAC7C,CAAC;gBACC,OAAO;oBACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;oBAC7B,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,kBAAkB,cAAc,QAAQ,OAAO,kBAAkB;iBAC7E,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAGD,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;QACtF,OAAO;YACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;YAC7B,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,8BAA8B;SAC1C,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAQD,SAAS,WAAW,CAAC,OAAgB,EAAE,IAAa;IAChD,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;WACtB,CAAC,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAC9D,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CACpD,CAAC,EACJ,CAAC;QACC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO;QACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;QAC7B,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,0CAA0C;KACtD,CAAC;AACN,CAAC;AASD,SAAS,eAAe,CAAC,OAAgB,EAAE,IAAa;IACpD,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;WAC/E,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EACjE,CAAC;QACC,OAAO;YACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;YAC7B,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,oDAAoD;SAChE,CAAC;IACN,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAChF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;WAC1B,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC;WAC9C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe;WAC7C,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,EACxE,CAAC;QACC,OAAO;YACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;YAC7B,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,6BAA6B;SACzC,CAAC;IACN,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AASD,SAAS,eAAe,CAAC,OAAgB,EAAE,IAAa;IACpD,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;QACnF,OAAO;YACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;YAC7B,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,qCAAqC;SACjD,CAAC;IACN,CAAC;IAED,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAE7B,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;eAC3C,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;eACpC,MAAM,KAAK,IAAI;eACf,gBAAgB,CAAC,MAAM,CAAC,EAC7B,CAAC;YACC,OAAO;gBACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;gBAC7B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,kBAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,yBAAyB;aACrE,CAAC;QACN,CAAC;IACL,CAAC;IAED,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC;WACxB,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe;WACxD,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,EAC5D,CAAC;QACC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO;gBACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;gBAC7B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,yCAAyC;aACrD,CAAC;QACN,CAAC;QACD,IAAI,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;eACrC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;eACjD,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAC9C,CAAC;YACC,OAAO;gBACH,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;gBAC7B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,kBAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,2BAA2B;aAC5E,CAAC;QACN,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAQD,SAAS,OAAO,CAAC,OAAgB,EAAE,gBAAyB;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,UAE1B,CAAC;IACF,MAAM,QAAQ,GAAc,CAAC,UAAU,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC/E,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;QACpD,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,0BAA0B;KACtC,CAAC,CAAC,CAAC;IACJ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,IAAA,sBAAa,EAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,IAAI;SACV,CAAC,CAAC,CAAC,CAAC;IACT,CAAC;IAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG;QACX,gBAAgB;QAChB,eAAe;QACf,eAAe;QACf,WAAW;KACd,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpC,IAAI,MAAM,EAAE,CAAC;gBACT,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1B,OAAO,IAAA,sBAAa,EAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,IAAI;KACV,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AASD,SAAS,oBAAoB,CAAC,gBAAyB;IACnD,OAAO;QACH,EAAE,EAAE,YAAY;QAEhB,KAAK,CAAC,KAAK,CAAC,EAAC,QAAQ,EAAC;YAClB,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;uBACvB,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EACjC,CAAC;oBACC,SAAS;gBACb,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAQ,EAAC,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,CAAC;gBAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACxC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;oBAC7B,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;gBAEzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC7B,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACL,CAAC;YAED,OAAO,WAAW,CAAC;QACvB,CAAC;KACJ,CAAC;AACN,CAAC;AAGY,QAAA,cAAc,GAAS,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAGlD,QAAA,oBAAoB,GAAS,oBAAoB,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lite.d.ts","sourceRoot":"","sources":["../../../src/check/rules/lite.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AAGtC,eAAO,MAAM,SAAS,EAAE,IAAI,EAAmD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.liteRules = void 0;
|
|
4
|
+
const artifact_js_1 = require("./artifact.js");
|
|
5
|
+
const file_js_1 = require("./file.js");
|
|
6
|
+
const javascript_js_1 = require("./javascript.js");
|
|
7
|
+
exports.liteRules = [artifact_js_1.artifactRule, file_js_1.fileRule, javascript_js_1.javascriptSyntaxRule];
|
|
8
|
+
//# sourceMappingURL=lite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lite.js","sourceRoot":"","sources":["../../../src/check/rules/lite.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,uCAAmC;AACnC,mDAAqD;AAIxC,QAAA,SAAS,GAAW,CAAC,0BAAY,EAAE,kBAAQ,EAAE,oCAAoB,CAAC,CAAC"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import type { ArtifactFile, Diagnostic, Rule } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* 检查 ZIP 中独立的 .svg 资源;HTML 内联 SVG 由 htmlRule 检查
|
|
4
|
-
* 禁止 SVG 脚本、行内事件和 JavaScript URI
|
|
5
|
-
*/
|
|
6
2
|
export declare function checkSvg(file: ArtifactFile): Diagnostic[];
|
|
7
3
|
export declare const svgRule: Rule;
|
|
8
4
|
//# sourceMappingURL=svg.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../../src/check/rules/svg.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../../src/check/rules/svg.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,UAAU,CAAC;AAiC7D,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,EAAE,CAsCzD;AAED,eAAO,MAAM,OAAO,EAAE,IAOrB,CAAC"}
|
package/dist/check/rules/svg.js
CHANGED
|
@@ -51,10 +51,6 @@ function walk(node, visitor) {
|
|
|
51
51
|
walk(child, visitor);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
/**
|
|
55
|
-
* 检查 ZIP 中独立的 .svg 资源;HTML 内联 SVG 由 htmlRule 检查
|
|
56
|
-
* 禁止 SVG 脚本、行内事件和 JavaScript URI
|
|
57
|
-
*/
|
|
58
54
|
function checkSvg(file) {
|
|
59
55
|
const source = new TextDecoder('utf-8', { fatal: true }).decode(file.bytes);
|
|
60
56
|
const document = parse5.parseFragment(source, {
|
|
@@ -63,7 +59,6 @@ function checkSvg(file) {
|
|
|
63
59
|
const problems = [];
|
|
64
60
|
walk(document, node => {
|
|
65
61
|
const tagName = (node.tagName ?? '').toLowerCase();
|
|
66
|
-
// <script> 节点
|
|
67
62
|
if (tagName === 'script') {
|
|
68
63
|
problems.push({
|
|
69
64
|
severity: 'error',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../../../src/check/rules/svg.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,4BAsCC;AA1ED,+CAAiC;AACjC,qCAAiE;AAejE,SAAS,WAAW,CAAC,IAAa,EAAE,aAAsB;IACtD,MAAM,QAAQ,GAAG,aAAa;QAC1B,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC9B,OAAO,QAAQ,EAAE,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;QACvE,CAAC,CAAC,EAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAC;QACvD,CAAC,CAAC,EAAE,CAAC;AACb,CAAC;AAED,SAAS,IAAI,CAAC,IAAa,EAAE,OAAgC;IACzD,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;AACL,CAAC;
|
|
1
|
+
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../../../src/check/rules/svg.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -9,13 +9,13 @@ const node_fs_1 = require("node:fs");
|
|
|
9
9
|
const node_path_1 = require("node:path");
|
|
10
10
|
const USAGE = `Usage:
|
|
11
11
|
genui --version
|
|
12
|
-
genui preview [project-path] [-n <name>] [-d, --description <description>] [--qr-image]
|
|
13
|
-
genui check <artifact>
|
|
12
|
+
genui preview [project-path] [-n <name>] [-d, --description <description>] [--lite] [--qr-image]
|
|
13
|
+
genui check <artifact> [--lite]
|
|
14
14
|
genui login
|
|
15
15
|
genui logout
|
|
16
16
|
genui list
|
|
17
17
|
genui publish [-a <appkey>] [-p <project-path>] [-n <name>] [-l <logo>]
|
|
18
|
-
[-b <brief>] [-d, --description <summary>] [--dry-run] [--yes]
|
|
18
|
+
[-b <brief>] [-d, --description <summary>] [--lite] [--dry-run] [--yes]
|
|
19
19
|
|
|
20
20
|
Commands:
|
|
21
21
|
--version, -v 查看当前安装版本
|
|
@@ -24,7 +24,7 @@ Commands:
|
|
|
24
24
|
login 登录百度账户
|
|
25
25
|
logout 清除本机登录态
|
|
26
26
|
list 查看已有项目
|
|
27
|
-
publish
|
|
27
|
+
publish 检查并提交项目审核;--lite 使用 lite 模式提交`;
|
|
28
28
|
function getVersion() {
|
|
29
29
|
const packageJsonPath = (0, node_path_1.join)(__dirname, '../package.json');
|
|
30
30
|
const packageJson = JSON.parse((0, node_fs_1.readFileSync)(packageJsonPath, 'utf8'));
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AACA,gEAAmC;AACnC,qCAAqC;AACrC,yCAA+B;AAE/B,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AACA,gEAAmC;AACnC,qCAAqC;AACrC,yCAA+B;AAE/B,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;yCAiB2B,CAAC;AAE1C,SAAS,UAAU;IACf,MAAM,eAAe,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,eAAe,EAAE,MAAM,CAAC,CAAwB,CAAC;IAC7F,OAAO,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACrF,CAAC;AAED,KAAK,UAAU,IAAI;IACf,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,sBAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjD,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1B,OAAO;IACX,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO;IACX,CAAC;IAED,MAAM,QAAQ,GAAwC;QAClD,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QACpE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7D,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/D,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7D,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;KACjE,CAAC;IACF,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACjB,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,sBAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC"}
|
package/dist/preview.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export interface PreviewServer {
|
|
|
5
5
|
usingPlazaTemplate: boolean;
|
|
6
6
|
close: () => Promise<void>;
|
|
7
7
|
}
|
|
8
|
-
export declare function startPreview(projectPath: string, port?: number, appName?: string, appDescription?: string): Promise<PreviewServer>;
|
|
8
|
+
export declare function startPreview(projectPath: string, port?: number, appName?: string, appDescription?: string, lite?: boolean): Promise<PreviewServer>;
|
|
9
9
|
export declare function openPreview(url: string): void;
|
|
10
10
|
export declare function showPreview(preview: PreviewServer, qrImage?: boolean): Promise<void>;
|
|
11
11
|
interface PreviewOptions {
|
|
@@ -14,6 +14,7 @@ interface PreviewOptions {
|
|
|
14
14
|
name: string;
|
|
15
15
|
description: string;
|
|
16
16
|
qrImage: boolean;
|
|
17
|
+
lite: boolean;
|
|
17
18
|
}
|
|
18
19
|
export declare function resolvePreviewProjectPath(argv: string[]): PreviewOptions;
|
|
19
20
|
export declare function runPreview(argv: string[]): Promise<void>;
|
package/dist/preview.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAUA,OAAO,UAAU,CAAC;AAqBlB,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAUA,OAAO,UAAU,CAAC;AAqBlB,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AA2JD,wBAAsB,YAAY,CAC9B,WAAW,EAAE,MAAM,EACnB,IAAI,SAAI,EACR,OAAO,SAAmB,EAC1B,cAAc,SAA0B,EACxC,IAAI,UAAQ,GACb,OAAO,CAAC,aAAa,CAAC,CAgGxB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAQ7C;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBxF;AAED,UAAU,cAAc;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACjB;AA+BD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAkCxE;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9D"}
|
package/dist/preview.js
CHANGED
|
@@ -106,8 +106,9 @@ async function downloadPreviewTemplate() {
|
|
|
106
106
|
return null;
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
-
function injectPreviewData(template, origin, templateOrigin, name, description) {
|
|
109
|
+
function injectPreviewData(template, origin, templateOrigin, name, description, lite) {
|
|
110
110
|
const data = JSON.stringify({
|
|
111
|
+
params: lite ? { lite: '1' } : undefined,
|
|
111
112
|
currentApp: {
|
|
112
113
|
appId: 0,
|
|
113
114
|
name,
|
|
@@ -116,7 +117,31 @@ function injectPreviewData(template, origin, templateOrigin, name, description)
|
|
|
116
117
|
},
|
|
117
118
|
}).replaceAll('<', '\\u003c');
|
|
118
119
|
const shimOrigin = JSON.stringify(process.env.GENUI_PREVIEW_SHIM_ORIGIN || templateOrigin);
|
|
119
|
-
const localPreviewScript = `<script>(()=>{
|
|
120
|
+
const localPreviewScript = `<script>(()=>{
|
|
121
|
+
const p=value=>{try{
|
|
122
|
+
const url=new URL(String(value),location.href);
|
|
123
|
+
if(url.pathname!=="/pages/shim.html"&&url.pathname!=="/pages/shim-lite.html")return value;
|
|
124
|
+
const origin=${shimOrigin};
|
|
125
|
+
if(origin){
|
|
126
|
+
const target=new URL(origin);
|
|
127
|
+
if(target.hostname==='127.0.0.1'||target.hostname==='localhost'){
|
|
128
|
+
target.hostname=location.hostname;
|
|
129
|
+
}
|
|
130
|
+
url.protocol=target.protocol;
|
|
131
|
+
url.host=target.host;
|
|
132
|
+
}
|
|
133
|
+
url.searchParams.set('previewOrigin',location.origin);
|
|
134
|
+
return url.href;
|
|
135
|
+
}catch{return value}};
|
|
136
|
+
const descriptor=Object.getOwnPropertyDescriptor(HTMLIFrameElement.prototype,'src');
|
|
137
|
+
if(descriptor?.set&&descriptor?.get){Object.defineProperty(HTMLIFrameElement.prototype,'src',{
|
|
138
|
+
...descriptor,set(value){descriptor.set.call(this,p(value))}
|
|
139
|
+
})}
|
|
140
|
+
const setAttribute=HTMLIFrameElement.prototype.setAttribute;
|
|
141
|
+
HTMLIFrameElement.prototype.setAttribute=function(name,value){
|
|
142
|
+
return setAttribute.call(this,name,name.toLowerCase()==='src'?p(value):value);
|
|
143
|
+
};
|
|
144
|
+
})();</script>`;
|
|
120
145
|
return template.replace(/<head([^>]*)>/i, `<head$1>${LOCAL_PREVIEW_MARK}${localPreviewScript}`).replace(/(<script[^>]*id=["']server-data["'][^>]*>)[\s\S]*?(<\/script>)/i, (_match, open, close) => `${open}${data}${close}`);
|
|
121
146
|
}
|
|
122
147
|
function buildFallbackPreview(entry, origin) {
|
|
@@ -130,9 +155,13 @@ function localFile(root, relativePath) {
|
|
|
130
155
|
const requested = node_path_1.default.resolve(root, relativePath);
|
|
131
156
|
return requested === root || requested.startsWith(`${root}${node_path_1.default.sep}`) ? requested : null;
|
|
132
157
|
}
|
|
133
|
-
async function startPreview(projectPath, port = 0, appName = DEFAULT_APP_NAME, appDescription = DEFAULT_APP_DESCRIPTION) {
|
|
158
|
+
async function startPreview(projectPath, port = 0, appName = DEFAULT_APP_NAME, appDescription = DEFAULT_APP_DESCRIPTION, lite = false) {
|
|
134
159
|
const { root, entry, cleanup } = await preparePreviewProject(projectPath);
|
|
135
160
|
const template = await downloadPreviewTemplate();
|
|
161
|
+
if (lite && !template) {
|
|
162
|
+
cleanup();
|
|
163
|
+
throw new Error('lite 预览需要加载预览模板,请检查模板服务或 GENUI_PREVIEW_TEMPLATE_URL');
|
|
164
|
+
}
|
|
136
165
|
const server = node_http_1.default.createServer(async (request, response) => {
|
|
137
166
|
const requestUrl = new URL(request.url || '/', 'http://localhost');
|
|
138
167
|
const pathname = decodeURIComponent(requestUrl.pathname);
|
|
@@ -141,7 +170,7 @@ async function startPreview(projectPath, port = 0, appName = DEFAULT_APP_NAME, a
|
|
|
141
170
|
response.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
142
171
|
response.setHeader('Cache-Control', 'no-store');
|
|
143
172
|
response.end(template
|
|
144
|
-
? injectPreviewData(template.html, origin, template.origin, appName, appDescription)
|
|
173
|
+
? injectPreviewData(template.html, origin, template.origin, appName, appDescription, lite)
|
|
145
174
|
: buildFallbackPreview(entry, origin));
|
|
146
175
|
return;
|
|
147
176
|
}
|
|
@@ -263,7 +292,7 @@ function textValue(value) {
|
|
|
263
292
|
function resolvePreviewProjectPath(argv) {
|
|
264
293
|
const args = (0, minimist_1.default)(argv, {
|
|
265
294
|
alias: { p: 'project-path', n: 'name', d: 'description' },
|
|
266
|
-
boolean: ['qr-image'],
|
|
295
|
+
boolean: ['qr-image', 'lite'],
|
|
267
296
|
default: { port: 0 },
|
|
268
297
|
});
|
|
269
298
|
if (args._.length > 1) {
|
|
@@ -291,11 +320,12 @@ function resolvePreviewProjectPath(argv) {
|
|
|
291
320
|
name: name || DEFAULT_APP_NAME,
|
|
292
321
|
description: description || DEFAULT_APP_DESCRIPTION,
|
|
293
322
|
qrImage: args['qr-image'],
|
|
323
|
+
lite: args.lite,
|
|
294
324
|
};
|
|
295
325
|
}
|
|
296
326
|
async function runPreview(argv) {
|
|
297
|
-
const { projectPath, port, name, description, qrImage } = resolvePreviewProjectPath(argv);
|
|
298
|
-
const preview = await startPreview(projectPath, port, name, description);
|
|
327
|
+
const { projectPath, port, name, description, qrImage, lite } = resolvePreviewProjectPath(argv);
|
|
328
|
+
const preview = await startPreview(projectPath, port, name, description, lite);
|
|
299
329
|
await showPreview(preview, qrImage);
|
|
300
330
|
console.log('按 Ctrl+C 停止服务');
|
|
301
331
|
}
|