@optima-chat/commerce-cli 1.11.2 → 1.12.0
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/api/rest/commerce.d.ts +5 -1
- package/dist/api/rest/commerce.d.ts.map +1 -1
- package/dist/api/rest/commerce.js.map +1 -1
- package/dist/commands/collection/set-cover.js +1 -1
- package/dist/commands/collection/set-cover.js.map +1 -1
- package/dist/commands/collection/update.js +7 -15
- package/dist/commands/collection/update.js.map +1 -1
- package/dist/commands/homepage/create-banner.d.ts +3 -0
- package/dist/commands/homepage/create-banner.d.ts.map +1 -0
- package/dist/commands/homepage/create-banner.js +142 -0
- package/dist/commands/homepage/create-banner.js.map +1 -0
- package/dist/commands/homepage/create-collection-products.d.ts +3 -0
- package/dist/commands/homepage/create-collection-products.d.ts.map +1 -0
- package/dist/commands/homepage/create-collection-products.js +124 -0
- package/dist/commands/homepage/create-collection-products.js.map +1 -0
- package/dist/commands/homepage/create-collections.d.ts +3 -0
- package/dist/commands/homepage/create-collections.d.ts.map +1 -0
- package/dist/commands/homepage/create-collections.js +121 -0
- package/dist/commands/homepage/create-collections.js.map +1 -0
- package/dist/commands/homepage/create-featured.d.ts +3 -0
- package/dist/commands/homepage/create-featured.d.ts.map +1 -0
- package/dist/commands/homepage/create-featured.js +151 -0
- package/dist/commands/homepage/create-featured.js.map +1 -0
- package/dist/commands/homepage/index.d.ts.map +1 -1
- package/dist/commands/homepage/index.js +8 -2
- package/dist/commands/homepage/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/commands/homepage/create.d.ts +0 -3
- package/dist/commands/homepage/create.d.ts.map +0 -1
- package/dist/commands/homepage/create.js +0 -174
- package/dist/commands/homepage/create.js.map +0 -1
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import inquirer from 'inquirer';
|
|
4
|
-
import { commerceApi } from '../../api/rest/commerce.js';
|
|
5
|
-
import { handleError, createApiError, ValidationError } from '../../utils/error.js';
|
|
6
|
-
import { output } from '../../utils/output.js';
|
|
7
|
-
import { addEnhancedHelp } from '../../utils/helpText.js';
|
|
8
|
-
import { isInteractiveEnvironment } from '../../utils/interactive.js';
|
|
9
|
-
const cmd = new Command('create')
|
|
10
|
-
.description('Create a new homepage section')
|
|
11
|
-
.option('--type <type>', 'Section type: banner|collections|collection_products|featured (required)')
|
|
12
|
-
.option('--title <title>', 'Section title for display (required)')
|
|
13
|
-
.option('--description <text>', 'Section description for display (optional)')
|
|
14
|
-
.option('--lang <code>', 'Language code for title/description (default: en-US)', 'en-US')
|
|
15
|
-
.option('--settings <json>', 'Section settings as JSON string (optional)')
|
|
16
|
-
.action(async (options) => {
|
|
17
|
-
try {
|
|
18
|
-
await createSection(options);
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
handleError(error);
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
addEnhancedHelp(cmd, {
|
|
25
|
-
examples: [
|
|
26
|
-
'# Create a banner section (English, default)',
|
|
27
|
-
'$ commerce homepage create --type banner --title "Main Banner"',
|
|
28
|
-
'',
|
|
29
|
-
'# Create with description',
|
|
30
|
-
'$ commerce homepage create --type banner --title "Sale Banner" --description "Limited time offer"',
|
|
31
|
-
'',
|
|
32
|
-
'# Create with Chinese content',
|
|
33
|
-
'$ commerce homepage create --type banner --title "主横幅" --description "限时优惠" --lang zh-CN',
|
|
34
|
-
'',
|
|
35
|
-
'# Create with settings',
|
|
36
|
-
'$ commerce homepage create --type collections --title "Featured" --settings \'{"layout":"grid"}\'',
|
|
37
|
-
],
|
|
38
|
-
output: {
|
|
39
|
-
example: JSON.stringify({
|
|
40
|
-
success: true,
|
|
41
|
-
data: {
|
|
42
|
-
id: 'section-123',
|
|
43
|
-
type: 'banner',
|
|
44
|
-
title: 'Main Banner',
|
|
45
|
-
position: 0,
|
|
46
|
-
handle: 'banner-0',
|
|
47
|
-
settings: {},
|
|
48
|
-
created_at: '2025-11-11T00:00:00Z',
|
|
49
|
-
},
|
|
50
|
-
message: '首页区块创建成功',
|
|
51
|
-
}, null, 2),
|
|
52
|
-
},
|
|
53
|
-
relatedCommands: [
|
|
54
|
-
{ command: 'homepage list', description: 'View all sections' },
|
|
55
|
-
{ command: 'homepage update', description: 'Update section' },
|
|
56
|
-
{ command: 'homepage delete', description: 'Delete section' },
|
|
57
|
-
],
|
|
58
|
-
notes: [
|
|
59
|
-
'Section types: banner (图片轮播), collections (集合列表), collection_products (集合产品), featured (特色推荐)',
|
|
60
|
-
'Position is auto-assigned (appends to end)',
|
|
61
|
-
'Handle is auto-generated in format: {type}-{counter}',
|
|
62
|
-
'Settings format varies by section type',
|
|
63
|
-
],
|
|
64
|
-
});
|
|
65
|
-
export const createSectionCommand = cmd;
|
|
66
|
-
async function createSection(options) {
|
|
67
|
-
let { type, title, settings } = options;
|
|
68
|
-
// 非交互模式下验证必需参数
|
|
69
|
-
if (!isInteractiveEnvironment()) {
|
|
70
|
-
if (!type || type.trim().length === 0) {
|
|
71
|
-
throw new ValidationError('缺少必需参数: --type (区块类型)', 'type');
|
|
72
|
-
}
|
|
73
|
-
if (!title || title.trim().length === 0) {
|
|
74
|
-
throw new ValidationError('缺少必需参数: --title (区块标题)', 'title');
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
// 交互模式:提示缺失的字段
|
|
79
|
-
const answers = await inquirer.prompt([
|
|
80
|
-
{
|
|
81
|
-
type: 'list',
|
|
82
|
-
name: 'type',
|
|
83
|
-
message: '区块类型:',
|
|
84
|
-
choices: [
|
|
85
|
-
{ name: 'Banner (图片轮播)', value: 'banner' },
|
|
86
|
-
{ name: 'Collections (集合列表)', value: 'collections' },
|
|
87
|
-
{ name: 'Collection Products (集合产品)', value: 'collection_products' },
|
|
88
|
-
{ name: 'Featured (特色推荐)', value: 'featured' },
|
|
89
|
-
],
|
|
90
|
-
when: !type,
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
type: 'input',
|
|
94
|
-
name: 'title',
|
|
95
|
-
message: '区块标题:',
|
|
96
|
-
when: !title,
|
|
97
|
-
validate: (input) => (input.trim().length > 0 ? true : '标题不能为空'),
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
type: 'input',
|
|
101
|
-
name: 'description',
|
|
102
|
-
message: '区块描述 (可选):',
|
|
103
|
-
when: !options.description,
|
|
104
|
-
},
|
|
105
|
-
]);
|
|
106
|
-
type = type || answers.type;
|
|
107
|
-
title = title || answers.title;
|
|
108
|
-
if (answers.description) {
|
|
109
|
-
options.description = answers.description;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
// 验证 type 值
|
|
113
|
-
const validTypes = ['banner', 'collections', 'collection_products', 'featured'];
|
|
114
|
-
if (!validTypes.includes(type)) {
|
|
115
|
-
throw new ValidationError(`无效的区块类型: ${type}。有效值: ${validTypes.join(', ')}`, 'type');
|
|
116
|
-
}
|
|
117
|
-
// 解析 settings
|
|
118
|
-
let parsedSettings;
|
|
119
|
-
if (settings) {
|
|
120
|
-
try {
|
|
121
|
-
parsedSettings = JSON.parse(settings);
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
throw new ValidationError('settings 必须是有效的 JSON 字符串', 'settings');
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
const spinner = output.spinner('正在创建首页区块...');
|
|
128
|
-
try {
|
|
129
|
-
const lang = options.lang || 'en-US';
|
|
130
|
-
const translationContent = {};
|
|
131
|
-
if (title) {
|
|
132
|
-
translationContent.title = title;
|
|
133
|
-
}
|
|
134
|
-
if (options.description) {
|
|
135
|
-
translationContent.description = options.description;
|
|
136
|
-
}
|
|
137
|
-
const data = {
|
|
138
|
-
type,
|
|
139
|
-
translations: {
|
|
140
|
-
[lang]: translationContent,
|
|
141
|
-
},
|
|
142
|
-
};
|
|
143
|
-
if (parsedSettings) {
|
|
144
|
-
data.settings = parsedSettings;
|
|
145
|
-
}
|
|
146
|
-
const result = await commerceApi.homepage.sections.create(data);
|
|
147
|
-
spinner.succeed('首页区块创建成功!');
|
|
148
|
-
if (output.isJson()) {
|
|
149
|
-
output.success(result, '首页区块创建成功');
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
console.log();
|
|
153
|
-
console.log(chalk.green('✓ 首页区块创建成功!'));
|
|
154
|
-
console.log();
|
|
155
|
-
console.log(chalk.gray('区块ID: ') + chalk.cyan(result.id));
|
|
156
|
-
console.log(chalk.gray('类型: ') + chalk.white(result.type));
|
|
157
|
-
console.log(chalk.gray('标题: ') + chalk.white(result.title || 'N/A'));
|
|
158
|
-
if (result.description) {
|
|
159
|
-
console.log(chalk.gray('描述: ') + chalk.white(result.description));
|
|
160
|
-
}
|
|
161
|
-
console.log(chalk.gray('位置: ') + chalk.white(result.position?.toString() || 'N/A'));
|
|
162
|
-
console.log(chalk.gray('Handle: ') + chalk.white(result.handle || 'N/A'));
|
|
163
|
-
if (result.settings && Object.keys(result.settings).length > 0) {
|
|
164
|
-
console.log(chalk.gray('设置: ') + chalk.white(JSON.stringify(result.settings, null, 2)));
|
|
165
|
-
}
|
|
166
|
-
console.log();
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
catch (error) {
|
|
170
|
-
spinner.fail('创建首页区块失败');
|
|
171
|
-
throw createApiError(error);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
//# sourceMappingURL=create.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/homepage/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAUtE,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC9B,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,eAAe,EAAE,0EAA0E,CAAC;KACnG,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;KACjE,MAAM,CAAC,sBAAsB,EAAE,4CAA4C,CAAC;KAC5E,MAAM,CAAC,eAAe,EAAE,sDAAsD,EAAE,OAAO,CAAC;KACxF,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,CAAC;KACzE,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;IAC9C,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe,CAAC,GAAG,EAAE;IACnB,QAAQ,EAAE;QACR,8CAA8C;QAC9C,gEAAgE;QAChE,EAAE;QACF,2BAA2B;QAC3B,mGAAmG;QACnG,EAAE;QACF,+BAA+B;QAC/B,0FAA0F;QAC1F,EAAE;QACF,wBAAwB;QACxB,mGAAmG;KACpG;IACD,MAAM,EAAE;QACN,OAAO,EAAE,IAAI,CAAC,SAAS,CACrB;YACE,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,sBAAsB;aACnC;YACD,OAAO,EAAE,UAAU;SACpB,EACD,IAAI,EACJ,CAAC,CACF;KACF;IACD,eAAe,EAAE;QACf,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,EAAE;QAC9D,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE;QAC7D,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE;KAC9D;IACD,KAAK,EAAE;QACL,+FAA+F;QAC/F,4CAA4C;QAC5C,sDAAsD;QACtD,wCAAwC;KACzC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,KAAK,UAAU,aAAa,CAAC,OAA6B;IACxD,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAExC,eAAe;IACf,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,eAAe,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,eAAe,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAC1C,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,aAAa,EAAE;oBACpD,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,qBAAqB,EAAE;oBACpE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE;iBAC/C;gBACD,IAAI,EAAE,CAAC,IAAI;aACZ;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,CAAC,KAAK;gBACZ,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;aACzE;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW;aAC3B;SACF,CAAC,CAAC;QAEH,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;QAC5B,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QAC/B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,YAAY;IACZ,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,qBAAqB,EAAE,UAAU,CAAC,CAAC;IAChF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,eAAe,CAAC,YAAY,IAAI,SAAS,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,cAAc;IACd,IAAI,cAA+C,CAAC;IACpD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;QACrC,MAAM,kBAAkB,GAA2B,EAAE,CAAC;QACtD,IAAI,KAAK,EAAE,CAAC;YACV,kBAAkB,CAAC,KAAK,GAAG,KAAK,CAAC;QACnC,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,kBAAkB,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvD,CAAC;QAED,MAAM,IAAI,GAAQ;YAChB,IAAI;YACJ,YAAY,EAAE;gBACZ,CAAC,IAAI,CAAC,EAAE,kBAAkB;aAC3B;SACF,CAAC;QAEF,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;QACjC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE7B,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;YACrE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC;YACpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;YAC1E,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1F,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
|