@yartsun/chat-widget-types 1.0.3 → 1.0.6
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.md +214 -115
- package/dist/config.types.d.ts +111 -46
- package/dist/config.types.d.ts.map +1 -1
- package/dist/config.types.js +2 -66
- package/dist/config.types.js.map +1 -1
- package/dist/default-config.d.ts +3 -0
- package/dist/default-config.d.ts.map +1 -0
- package/dist/default-config.js +3 -0
- package/dist/default-config.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/migration/commands.d.ts +59 -0
- package/dist/migration/commands.d.ts.map +1 -0
- package/dist/migration/commands.js +286 -0
- package/dist/migration/commands.js.map +1 -0
- package/dist/migration/examples.d.ts +198 -0
- package/dist/migration/examples.d.ts.map +1 -0
- package/dist/migration/examples.js +439 -0
- package/dist/migration/examples.js.map +1 -0
- package/dist/migration/facade.d.ts +85 -0
- package/dist/migration/facade.d.ts.map +1 -0
- package/dist/migration/facade.js +168 -0
- package/dist/migration/facade.js.map +1 -0
- package/dist/migration/migrator.d.ts +49 -0
- package/dist/migration/migrator.d.ts.map +1 -0
- package/dist/migration/migrator.js +245 -0
- package/dist/migration/migrator.js.map +1 -0
- package/dist/migration/strategies.d.ts +85 -0
- package/dist/migration/strategies.d.ts.map +1 -0
- package/dist/migration/strategies.js +217 -0
- package/dist/migration/strategies.js.map +1 -0
- package/dist/migration/types.d.ts +196 -0
- package/dist/migration/types.d.ts.map +1 -0
- package/dist/migration/types.js +5 -0
- package/dist/migration/types.js.map +1 -0
- package/dist/utils.d.ts +1 -11
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -129
- package/dist/utils.js.map +1 -1
- package/package.json +13 -4
- package/src/config.types.ts +131 -121
- package/src/default-config.ts +6 -0
- package/src/index.ts +26 -0
- package/src/migration/commands.ts +314 -0
- package/src/migration/examples.ts +471 -0
- package/src/migration/facade.ts +196 -0
- package/src/migration/migrator.ts +361 -0
- package/src/migration/strategies.ts +249 -0
- package/src/migration/types.ts +182 -0
- package/src/utils.ts +3 -145
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Примеры использования системы миграции конфигураций
|
|
3
|
+
*/
|
|
4
|
+
import { ConfigV1, ConfigV2 } from './types';
|
|
5
|
+
/** Пример простой миграции V1 -> V2 */
|
|
6
|
+
export declare function exampleSimpleMigration(): Promise<ConfigV2 | null>;
|
|
7
|
+
/** Пример детальной миграции с отчетами */
|
|
8
|
+
export declare function exampleDetailedMigration(): Promise<ConfigV2 | null | undefined>;
|
|
9
|
+
/** Пример пакетной миграции нескольких конфигураций */
|
|
10
|
+
export declare function exampleBatchMigration(): Promise<({
|
|
11
|
+
id: string;
|
|
12
|
+
originalVersion: "1.0";
|
|
13
|
+
migrated: boolean;
|
|
14
|
+
result: ConfigV2 | null;
|
|
15
|
+
} | {
|
|
16
|
+
id: string;
|
|
17
|
+
originalVersion: "2.0";
|
|
18
|
+
migrated: boolean;
|
|
19
|
+
result: {
|
|
20
|
+
settings: {
|
|
21
|
+
widgetTitle: string;
|
|
22
|
+
welcomeMessage: string;
|
|
23
|
+
bgChat: string;
|
|
24
|
+
gapMessageLine: number;
|
|
25
|
+
paddingChat: number;
|
|
26
|
+
fontFamily: string;
|
|
27
|
+
borderRadius: string;
|
|
28
|
+
launchView: string;
|
|
29
|
+
letterSpacing: number;
|
|
30
|
+
logo: string;
|
|
31
|
+
fontWeight: number;
|
|
32
|
+
loader?: undefined;
|
|
33
|
+
buttonStyle?: undefined;
|
|
34
|
+
buttonType?: undefined;
|
|
35
|
+
};
|
|
36
|
+
sections: {
|
|
37
|
+
top: {
|
|
38
|
+
params: {
|
|
39
|
+
size: string;
|
|
40
|
+
chipStyle?: undefined;
|
|
41
|
+
};
|
|
42
|
+
chipWidgetTitle: {
|
|
43
|
+
color: string;
|
|
44
|
+
bgColor: string;
|
|
45
|
+
};
|
|
46
|
+
btnClose: {
|
|
47
|
+
color: string;
|
|
48
|
+
bgColor: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
inside: {
|
|
52
|
+
params: {
|
|
53
|
+
size: string;
|
|
54
|
+
};
|
|
55
|
+
messageUser: {
|
|
56
|
+
color: string;
|
|
57
|
+
bgColor: string;
|
|
58
|
+
bgType?: undefined;
|
|
59
|
+
};
|
|
60
|
+
messageBot: {
|
|
61
|
+
color: string;
|
|
62
|
+
bgColor: string;
|
|
63
|
+
bgType?: undefined;
|
|
64
|
+
};
|
|
65
|
+
welcomeMessage: {
|
|
66
|
+
color: string;
|
|
67
|
+
};
|
|
68
|
+
aprooveButton?: undefined;
|
|
69
|
+
rejectButton?: undefined;
|
|
70
|
+
};
|
|
71
|
+
bottom: {
|
|
72
|
+
params: {
|
|
73
|
+
size: string;
|
|
74
|
+
};
|
|
75
|
+
inputSend: {
|
|
76
|
+
color: string;
|
|
77
|
+
bgColor: string;
|
|
78
|
+
borderStyle?: undefined;
|
|
79
|
+
inputStyle?: undefined;
|
|
80
|
+
bgType?: undefined;
|
|
81
|
+
};
|
|
82
|
+
btnSend: {
|
|
83
|
+
color: string;
|
|
84
|
+
bgColor: string;
|
|
85
|
+
type: string;
|
|
86
|
+
};
|
|
87
|
+
activeBtn: {
|
|
88
|
+
color: string;
|
|
89
|
+
bgColor: string;
|
|
90
|
+
};
|
|
91
|
+
warningAlert?: undefined;
|
|
92
|
+
disclaimer?: undefined;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
} | {
|
|
96
|
+
settings: {
|
|
97
|
+
widgetTitle: string;
|
|
98
|
+
welcomeMessage: string;
|
|
99
|
+
bgChat: string;
|
|
100
|
+
gapMessageLine: number;
|
|
101
|
+
paddingChat: number;
|
|
102
|
+
fontFamily: string;
|
|
103
|
+
borderRadius: string;
|
|
104
|
+
launchView: string;
|
|
105
|
+
letterSpacing: number;
|
|
106
|
+
logo: string;
|
|
107
|
+
fontWeight: number;
|
|
108
|
+
loader: string;
|
|
109
|
+
buttonStyle: string;
|
|
110
|
+
buttonType: string;
|
|
111
|
+
};
|
|
112
|
+
sections: {
|
|
113
|
+
top: {
|
|
114
|
+
params: {
|
|
115
|
+
size: string;
|
|
116
|
+
chipStyle: string;
|
|
117
|
+
};
|
|
118
|
+
chipWidgetTitle: {
|
|
119
|
+
color: string;
|
|
120
|
+
bgColor: string;
|
|
121
|
+
};
|
|
122
|
+
btnClose: {
|
|
123
|
+
color: string;
|
|
124
|
+
bgColor: string;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
inside: {
|
|
128
|
+
params: {
|
|
129
|
+
size: string;
|
|
130
|
+
};
|
|
131
|
+
messageUser: {
|
|
132
|
+
color: string;
|
|
133
|
+
bgColor: string;
|
|
134
|
+
bgType: string;
|
|
135
|
+
};
|
|
136
|
+
messageBot: {
|
|
137
|
+
color: string;
|
|
138
|
+
bgColor: string;
|
|
139
|
+
bgType: string;
|
|
140
|
+
};
|
|
141
|
+
welcomeMessage: {
|
|
142
|
+
color: string;
|
|
143
|
+
};
|
|
144
|
+
aprooveButton: {
|
|
145
|
+
color: string;
|
|
146
|
+
bgColor: string;
|
|
147
|
+
};
|
|
148
|
+
rejectButton: {
|
|
149
|
+
color: string;
|
|
150
|
+
bgColor: string;
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
bottom: {
|
|
154
|
+
params: {
|
|
155
|
+
size: string;
|
|
156
|
+
};
|
|
157
|
+
inputSend: {
|
|
158
|
+
color: string;
|
|
159
|
+
bgColor: string;
|
|
160
|
+
borderStyle: {
|
|
161
|
+
borderColor: string;
|
|
162
|
+
borderWidth: number;
|
|
163
|
+
};
|
|
164
|
+
inputStyle: string;
|
|
165
|
+
bgType: string;
|
|
166
|
+
};
|
|
167
|
+
btnSend: {
|
|
168
|
+
color: string;
|
|
169
|
+
bgColor: string;
|
|
170
|
+
type: string;
|
|
171
|
+
};
|
|
172
|
+
activeBtn: {
|
|
173
|
+
color: string;
|
|
174
|
+
bgColor: string;
|
|
175
|
+
};
|
|
176
|
+
warningAlert: {
|
|
177
|
+
color: string;
|
|
178
|
+
bgColor: string;
|
|
179
|
+
};
|
|
180
|
+
disclaimer: string;
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
} | {
|
|
185
|
+
id: string;
|
|
186
|
+
originalVersion: "3.0" | null;
|
|
187
|
+
migrated: boolean;
|
|
188
|
+
result: null;
|
|
189
|
+
})[]>;
|
|
190
|
+
/** Пример с обработкой ошибок */
|
|
191
|
+
export declare function exampleErrorHandling(): Promise<void>;
|
|
192
|
+
/** Демонстрация всех примеров */
|
|
193
|
+
export declare function runAllExamples(): Promise<void>;
|
|
194
|
+
export declare const SAMPLE_CONFIGS: {
|
|
195
|
+
V1_BASIC: ConfigV1;
|
|
196
|
+
V2_COMPLETE: ConfigV2;
|
|
197
|
+
};
|
|
198
|
+
//# sourceMappingURL=examples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../../src/migration/examples.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAE5C,uCAAuC;AACvC,wBAAsB,sBAAsB,6BAuD3C;AAED,2CAA2C;AAC3C,wBAAsB,wBAAwB,yCAsE7C;AAED,uDAAuD;AACvD,wBAAsB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA0I1C;AAED,iCAAiC;AACjC,wBAAsB,oBAAoB,kBAsCzC;AAED,iCAAiC;AACjC,wBAAsB,cAAc,kBAanC;AAGD,eAAO,MAAM,cAAc;cAkCpB,QAAQ;iBA6FR,QAAQ;CACd,CAAA"}
|
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Примеры использования системы миграции конфигураций
|
|
3
|
+
*/
|
|
4
|
+
import { quickMigrateV1toV2, MigrationFacade, MigrationPresets, ConfigHelpers } from './facade';
|
|
5
|
+
/** Пример простой миграции V1 -> V2 */
|
|
6
|
+
export async function exampleSimpleMigration() {
|
|
7
|
+
const configV1 = {
|
|
8
|
+
settings: {
|
|
9
|
+
widgetTitle: "HyperShadow",
|
|
10
|
+
welcomeMessage: "🖖 Hi there — I'm your assistant for finding documents, tracking access, and making sense of your files. \n\nHow can I help?",
|
|
11
|
+
bgChat: "rgba(47, 47, 49, 0.90)",
|
|
12
|
+
gapMessageLine: 12,
|
|
13
|
+
paddingChat: 8,
|
|
14
|
+
fontFamily: "MacPaw Fixel",
|
|
15
|
+
borderRadius: "lg",
|
|
16
|
+
launchView: "closed",
|
|
17
|
+
letterSpacing: 0,
|
|
18
|
+
logo: "",
|
|
19
|
+
fontWeight: 400
|
|
20
|
+
},
|
|
21
|
+
sections: {
|
|
22
|
+
top: {
|
|
23
|
+
params: { size: "md" },
|
|
24
|
+
chipWidgetTitle: { color: "#BEB6E9", bgColor: "#5E4AC6" },
|
|
25
|
+
btnClose: { color: "#BBBBBD", bgColor: "#2F2F31" }
|
|
26
|
+
},
|
|
27
|
+
inside: {
|
|
28
|
+
params: { size: "md" },
|
|
29
|
+
messageUser: { color: "#F9F8F8", bgColor: "#F8F8F933" },
|
|
30
|
+
messageBot: { color: "#fff", bgColor: "#5E4AC6" },
|
|
31
|
+
welcomeMessage: { color: "#fff" }
|
|
32
|
+
},
|
|
33
|
+
bottom: {
|
|
34
|
+
params: { size: "sm" },
|
|
35
|
+
inputSend: { color: "#EEECEC", bgColor: "#1E1E1E" },
|
|
36
|
+
btnSend: { color: "#1E1E1E", bgColor: "rgba(255, 255, 255, 0.50)", type: "both" },
|
|
37
|
+
activeBtn: { color: "#fff", bgColor: "#F8F8F933" }
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
console.log('🔄 Миграция V1 -> V2...');
|
|
42
|
+
// Быстрая миграция
|
|
43
|
+
const migratedConfig = await quickMigrateV1toV2(configV1);
|
|
44
|
+
if (migratedConfig) {
|
|
45
|
+
console.log('✅ Миграция успешна!');
|
|
46
|
+
console.log('📋 Добавленные поля V2:');
|
|
47
|
+
console.log('- settings.loader:', migratedConfig.settings.loader);
|
|
48
|
+
console.log('- sections.top.params.buttonStyle:', migratedConfig.sections.top.params.buttonStyle);
|
|
49
|
+
console.log('- sections.top.params.buttonType:', migratedConfig.sections.top.params.buttonType);
|
|
50
|
+
console.log('- sections.top.params.chipStyle:', migratedConfig.sections.top.params.chipStyle);
|
|
51
|
+
console.log('- sections.bottom.warningAlert:', migratedConfig.sections.bottom.warningAlert);
|
|
52
|
+
console.log('- texts.disclaimer:', migratedConfig.texts.disclaimer);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.log('❌ Ошибка миграции');
|
|
56
|
+
}
|
|
57
|
+
return migratedConfig;
|
|
58
|
+
}
|
|
59
|
+
/** Пример детальной миграции с отчетами */
|
|
60
|
+
export async function exampleDetailedMigration() {
|
|
61
|
+
const facade = new MigrationFacade(true); // включаем подробные логи
|
|
62
|
+
const configV1 = {
|
|
63
|
+
settings: {
|
|
64
|
+
widgetTitle: "Test Widget",
|
|
65
|
+
welcomeMessage: "Welcome!",
|
|
66
|
+
bgChat: "#000000",
|
|
67
|
+
gapMessageLine: 10,
|
|
68
|
+
paddingChat: 5,
|
|
69
|
+
fontFamily: "Arial",
|
|
70
|
+
borderRadius: "md",
|
|
71
|
+
launchView: "compact",
|
|
72
|
+
letterSpacing: 1,
|
|
73
|
+
logo: "logo.png",
|
|
74
|
+
fontWeight: 300
|
|
75
|
+
},
|
|
76
|
+
sections: {
|
|
77
|
+
top: {
|
|
78
|
+
params: { size: "lg" },
|
|
79
|
+
chipWidgetTitle: { color: "#111", bgColor: "#222" },
|
|
80
|
+
btnClose: { color: "#333", bgColor: "#444" }
|
|
81
|
+
},
|
|
82
|
+
inside: {
|
|
83
|
+
params: { size: "sm" },
|
|
84
|
+
messageUser: { color: "#555", bgColor: "#666" },
|
|
85
|
+
messageBot: { color: "#777", bgColor: "#888" },
|
|
86
|
+
welcomeMessage: { color: "#999" }
|
|
87
|
+
},
|
|
88
|
+
bottom: {
|
|
89
|
+
params: { size: "md" },
|
|
90
|
+
inputSend: { color: "#AAA", bgColor: "#BBB" },
|
|
91
|
+
btnSend: { color: "#CCC", bgColor: "#DDD", type: "icon" },
|
|
92
|
+
activeBtn: { color: "#EEE", bgColor: "#FFF" }
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
console.log('\n🔍 Предварительный просмотр миграции...');
|
|
97
|
+
// Предварительный просмотр
|
|
98
|
+
const preview = await facade.preview(configV1, '2.0', MigrationPresets.DEBUG);
|
|
99
|
+
console.log('📊 Отчет о планируемой миграции:');
|
|
100
|
+
console.log(`- Исходная версия: ${preview.fromVersion}`);
|
|
101
|
+
console.log(`- Целевая версия: ${preview.toVersion}`);
|
|
102
|
+
console.log(`- Стратегий будет применено: ${preview.appliedStrategies.length}`);
|
|
103
|
+
console.log(`- Ожидаемое время выполнения: ${preview.duration}ms`);
|
|
104
|
+
console.log(`- Описание: ${preview.summary}`);
|
|
105
|
+
console.log('\n🔄 Выполняем миграцию...');
|
|
106
|
+
// Полная миграция
|
|
107
|
+
const result = await facade.migrateV1toV2(configV1, MigrationPresets.DEBUG);
|
|
108
|
+
if (result.success) {
|
|
109
|
+
console.log('✅ Миграция завершена успешно!');
|
|
110
|
+
console.log(`📈 Применено стратегий: ${result.appliedStrategies.length}`);
|
|
111
|
+
console.log(`⚠️ Предупреждений: ${result.warnings.length}`);
|
|
112
|
+
if (result.warnings.length > 0) {
|
|
113
|
+
console.log('⚠️ Предупреждения:');
|
|
114
|
+
result.warnings.forEach(warning => console.log(` - ${warning}`));
|
|
115
|
+
}
|
|
116
|
+
return result.data;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
console.log('❌ Ошибки при миграции:');
|
|
120
|
+
result.errors.forEach(error => console.log(` - ${error}`));
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/** Пример пакетной миграции нескольких конфигураций */
|
|
125
|
+
export async function exampleBatchMigration() {
|
|
126
|
+
const configs = [
|
|
127
|
+
// Конфигурация 1 - V1
|
|
128
|
+
{
|
|
129
|
+
id: 'config1',
|
|
130
|
+
data: {
|
|
131
|
+
settings: {
|
|
132
|
+
widgetTitle: "Config 1",
|
|
133
|
+
welcomeMessage: "Hello from config 1",
|
|
134
|
+
bgChat: "#111",
|
|
135
|
+
gapMessageLine: 5,
|
|
136
|
+
paddingChat: 10,
|
|
137
|
+
fontFamily: "Roboto",
|
|
138
|
+
borderRadius: "sm",
|
|
139
|
+
launchView: "closed",
|
|
140
|
+
letterSpacing: 0,
|
|
141
|
+
logo: "",
|
|
142
|
+
fontWeight: 400
|
|
143
|
+
},
|
|
144
|
+
sections: {
|
|
145
|
+
top: {
|
|
146
|
+
params: { size: "md" },
|
|
147
|
+
chipWidgetTitle: { color: "#AAA", bgColor: "#BBB" },
|
|
148
|
+
btnClose: { color: "#CCC", bgColor: "#DDD" }
|
|
149
|
+
},
|
|
150
|
+
inside: {
|
|
151
|
+
params: { size: "md" },
|
|
152
|
+
messageUser: { color: "#EEE", bgColor: "#FFF" },
|
|
153
|
+
messageBot: { color: "#000", bgColor: "#111" },
|
|
154
|
+
welcomeMessage: { color: "#222" }
|
|
155
|
+
},
|
|
156
|
+
bottom: {
|
|
157
|
+
params: { size: "sm" },
|
|
158
|
+
inputSend: { color: "#333", bgColor: "#444" },
|
|
159
|
+
btnSend: { color: "#555", bgColor: "#666", type: "text" },
|
|
160
|
+
activeBtn: { color: "#777", bgColor: "#888" }
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
// Конфигурация 2 - уже V2
|
|
166
|
+
{
|
|
167
|
+
id: 'config2',
|
|
168
|
+
data: {
|
|
169
|
+
settings: {
|
|
170
|
+
widgetTitle: "Config 2",
|
|
171
|
+
welcomeMessage: "Hello from config 2",
|
|
172
|
+
bgChat: "#222",
|
|
173
|
+
gapMessageLine: 8,
|
|
174
|
+
paddingChat: 12,
|
|
175
|
+
fontFamily: "Inter",
|
|
176
|
+
borderRadius: "lg",
|
|
177
|
+
launchView: "compact",
|
|
178
|
+
letterSpacing: 1,
|
|
179
|
+
logo: "logo2.png",
|
|
180
|
+
fontWeight: 500,
|
|
181
|
+
loader: "circle-pulse",
|
|
182
|
+
buttonStyle: "outlined",
|
|
183
|
+
buttonType: "icon"
|
|
184
|
+
},
|
|
185
|
+
sections: {
|
|
186
|
+
top: {
|
|
187
|
+
params: { size: "lg", chipStyle: "outlined" },
|
|
188
|
+
chipWidgetTitle: { color: "#999", bgColor: "#AAA" },
|
|
189
|
+
btnClose: { color: "#BBB", bgColor: "#CCC" }
|
|
190
|
+
},
|
|
191
|
+
inside: {
|
|
192
|
+
params: { size: "lg" },
|
|
193
|
+
messageUser: { color: "#DDD", bgColor: "#EEE", bgType: "bubble" },
|
|
194
|
+
messageBot: { color: "#FFF", bgColor: "#000", bgType: "plain" },
|
|
195
|
+
welcomeMessage: { color: "#111" },
|
|
196
|
+
aprooveButton: { color: "#222", bgColor: "#333" },
|
|
197
|
+
rejectButton: { color: "#444", bgColor: "#555" }
|
|
198
|
+
},
|
|
199
|
+
bottom: {
|
|
200
|
+
params: { size: "md" },
|
|
201
|
+
inputSend: {
|
|
202
|
+
color: "#666",
|
|
203
|
+
bgColor: "#777",
|
|
204
|
+
borderStyle: { borderColor: "#888", borderWidth: 2 },
|
|
205
|
+
inputStyle: "stacked",
|
|
206
|
+
bgType: "bubble"
|
|
207
|
+
},
|
|
208
|
+
btnSend: { color: "#999", bgColor: "#AAA", type: "both" },
|
|
209
|
+
activeBtn: { color: "#BBB", bgColor: "#CCC" },
|
|
210
|
+
warningAlert: { color: "#DDD", bgColor: "#EEE" },
|
|
211
|
+
disclaimer: "Custom disclaimer"
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
];
|
|
217
|
+
console.log('\n🔄 Пакетная миграция нескольких конфигураций...');
|
|
218
|
+
const results = [];
|
|
219
|
+
for (const config of configs) {
|
|
220
|
+
console.log(`\n📋 Обрабатываем ${config.id}...`);
|
|
221
|
+
// Определяем версию
|
|
222
|
+
const version = ConfigHelpers.getConfigVersion(config.data);
|
|
223
|
+
console.log(` Версия: ${version || 'неизвестна'}`);
|
|
224
|
+
if (version === '1.0') {
|
|
225
|
+
console.log(' 🔄 Миграция V1 -> V2...');
|
|
226
|
+
const migrated = await quickMigrateV1toV2(config.data);
|
|
227
|
+
results.push({
|
|
228
|
+
id: config.id,
|
|
229
|
+
originalVersion: version,
|
|
230
|
+
migrated: !!migrated,
|
|
231
|
+
result: migrated
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
else if (version === '2.0') {
|
|
235
|
+
console.log(' ✅ Уже V2, пропускаем');
|
|
236
|
+
results.push({
|
|
237
|
+
id: config.id,
|
|
238
|
+
originalVersion: version,
|
|
239
|
+
migrated: false,
|
|
240
|
+
result: config.data
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
console.log(' ❌ Неизвестная версия');
|
|
245
|
+
results.push({
|
|
246
|
+
id: config.id,
|
|
247
|
+
originalVersion: version,
|
|
248
|
+
migrated: false,
|
|
249
|
+
result: null
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
console.log('\n📊 Результаты пакетной миграции:');
|
|
254
|
+
results.forEach(result => {
|
|
255
|
+
console.log(`- ${result.id}: ${result.originalVersion} -> ${result.migrated ? 'V2 (мигрировано)' : 'без изменений'}`);
|
|
256
|
+
});
|
|
257
|
+
return results;
|
|
258
|
+
}
|
|
259
|
+
/** Пример с обработкой ошибок */
|
|
260
|
+
export async function exampleErrorHandling() {
|
|
261
|
+
console.log('\n🧪 Тестирование обработки ошибок...');
|
|
262
|
+
// Некорректная конфигурация
|
|
263
|
+
const brokenConfig = {
|
|
264
|
+
settings: {
|
|
265
|
+
// Отсутствуют обязательные поля
|
|
266
|
+
fontFamily: "Arial"
|
|
267
|
+
},
|
|
268
|
+
// Отсутствует sections
|
|
269
|
+
};
|
|
270
|
+
const facade = new MigrationFacade(true);
|
|
271
|
+
try {
|
|
272
|
+
console.log('🔄 Попытка миграции некорректной конфигурации...');
|
|
273
|
+
const result = await facade.migrate(brokenConfig, '2.0', MigrationPresets.STRICT);
|
|
274
|
+
if (result.success) {
|
|
275
|
+
console.log('✅ Неожиданно успешно');
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
console.log('❌ Ожидаемые ошибки:');
|
|
279
|
+
result.errors.forEach(error => console.log(` - ${error}`));
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
283
|
+
console.log('💥 Критическая ошибка:', error);
|
|
284
|
+
}
|
|
285
|
+
// Тестируем мягкий режим
|
|
286
|
+
console.log('\n🔄 Повторная попытка в мягком режиме...');
|
|
287
|
+
const softResult = await facade.migrate(brokenConfig, '2.0', MigrationPresets.SOFT);
|
|
288
|
+
if (softResult.success) {
|
|
289
|
+
console.log('✅ Успешно в мягком режиме');
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
console.log('❌ Ошибки даже в мягком режиме:');
|
|
293
|
+
softResult.errors.forEach(error => console.log(` - ${error}`));
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
/** Демонстрация всех примеров */
|
|
297
|
+
export async function runAllExamples() {
|
|
298
|
+
console.log('🚀 Запуск всех примеров миграции...\n');
|
|
299
|
+
try {
|
|
300
|
+
await exampleSimpleMigration();
|
|
301
|
+
await exampleDetailedMigration();
|
|
302
|
+
await exampleBatchMigration();
|
|
303
|
+
await exampleErrorHandling();
|
|
304
|
+
console.log('\n🎉 Все примеры выполнены!');
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
console.error('💥 Критическая ошибка в примерах:', error);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
// Экспортируем готовые конфигурации для тестирования
|
|
311
|
+
export const SAMPLE_CONFIGS = {
|
|
312
|
+
V1_BASIC: {
|
|
313
|
+
settings: {
|
|
314
|
+
widgetTitle: "Sample V1",
|
|
315
|
+
welcomeMessage: "Welcome to V1",
|
|
316
|
+
bgChat: "#000",
|
|
317
|
+
gapMessageLine: 10,
|
|
318
|
+
paddingChat: 8,
|
|
319
|
+
fontFamily: "Arial",
|
|
320
|
+
borderRadius: "md",
|
|
321
|
+
launchView: "closed",
|
|
322
|
+
letterSpacing: 0,
|
|
323
|
+
logo: "",
|
|
324
|
+
fontWeight: 400
|
|
325
|
+
},
|
|
326
|
+
sections: {
|
|
327
|
+
top: {
|
|
328
|
+
params: { size: "md" },
|
|
329
|
+
chipWidgetTitle: { color: "#FFF", bgColor: "#000" },
|
|
330
|
+
btnClose: { color: "#000", bgColor: "#FFF" }
|
|
331
|
+
},
|
|
332
|
+
inside: {
|
|
333
|
+
params: { size: "md" },
|
|
334
|
+
messageUser: { color: "#333", bgColor: "#EEE" },
|
|
335
|
+
messageBot: { color: "#FFF", bgColor: "#007AFF" },
|
|
336
|
+
welcomeMessage: { color: "#333" }
|
|
337
|
+
},
|
|
338
|
+
bottom: {
|
|
339
|
+
params: { size: "sm" },
|
|
340
|
+
inputSend: { color: "#333", bgColor: "#FFF" },
|
|
341
|
+
btnSend: { color: "#FFF", bgColor: "#007AFF", type: "both" },
|
|
342
|
+
activeBtn: { color: "#007AFF", bgColor: "#EEE" }
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
V2_COMPLETE: {
|
|
347
|
+
schema: {
|
|
348
|
+
version: "2.0",
|
|
349
|
+
required: ["settings", "texts", "sections"]
|
|
350
|
+
},
|
|
351
|
+
settings: {
|
|
352
|
+
bgChat: "#111",
|
|
353
|
+
gapMessageLine: 12,
|
|
354
|
+
fontFamily: "Inter",
|
|
355
|
+
borderRadius: "lg",
|
|
356
|
+
launchView: "compact",
|
|
357
|
+
letterSpacing: 1,
|
|
358
|
+
logo: "logo.svg",
|
|
359
|
+
fontWeight: 500,
|
|
360
|
+
loader: "dots-pulse"
|
|
361
|
+
},
|
|
362
|
+
texts: {
|
|
363
|
+
widgetTitle: "Sample V2",
|
|
364
|
+
welcomeMessage: "Welcome to V2",
|
|
365
|
+
launchIssueTitle: "Launch Issue",
|
|
366
|
+
launchIssueText: "Please restart",
|
|
367
|
+
issueText: "Something went wrong",
|
|
368
|
+
reconnectText: "Reconnecting...",
|
|
369
|
+
inputPlaceholder: "Type your message",
|
|
370
|
+
disableInputText: "Please wait",
|
|
371
|
+
disclaimer: "This is a sample V2 configuration"
|
|
372
|
+
},
|
|
373
|
+
sections: {
|
|
374
|
+
warnings: {
|
|
375
|
+
launchIssue: {
|
|
376
|
+
params: { warningStyle: "gradient", showIcon: true, icon: "⚠️" },
|
|
377
|
+
iconColor: "#FFF",
|
|
378
|
+
bgColor: "#FF3B30",
|
|
379
|
+
headlineColor: "#FFF",
|
|
380
|
+
color: "#FFF",
|
|
381
|
+
resetButton: { color: "#FFF", bgColor: "#FF3B30" }
|
|
382
|
+
},
|
|
383
|
+
connectionIssue: {
|
|
384
|
+
params: { warningStyle: "gradient", showIcon: true, icon: "📡" },
|
|
385
|
+
iconColor: "#FFF",
|
|
386
|
+
bgColor: "#FF9500",
|
|
387
|
+
color: "#FFF",
|
|
388
|
+
resetButton: { color: "#FFF", bgColor: "#FF9500" }
|
|
389
|
+
},
|
|
390
|
+
reconnectIssue: {
|
|
391
|
+
params: { warningStyle: "gradient", showIcon: true, icon: "🔄" },
|
|
392
|
+
iconColor: "#FFF",
|
|
393
|
+
bgColor: "#007AFF",
|
|
394
|
+
color: "#FFF"
|
|
395
|
+
},
|
|
396
|
+
disableInputIssue: {
|
|
397
|
+
iconColor: "#FFF",
|
|
398
|
+
bgColor: "#8E8E93",
|
|
399
|
+
color: "#FFF"
|
|
400
|
+
}
|
|
401
|
+
},
|
|
402
|
+
loader: {
|
|
403
|
+
completeStep: "#34C759",
|
|
404
|
+
activeStep: "#007AFF"
|
|
405
|
+
},
|
|
406
|
+
top: {
|
|
407
|
+
params: {
|
|
408
|
+
size: "lg",
|
|
409
|
+
chipStyle: "filled",
|
|
410
|
+
chipType: "both",
|
|
411
|
+
buttonStyle: "filled",
|
|
412
|
+
buttonType: "both"
|
|
413
|
+
},
|
|
414
|
+
chipWidgetTitle: { color: "#FFF", bgColor: "#007AFF" },
|
|
415
|
+
buttons: { color: "#666", bgColor: "#EEE" }
|
|
416
|
+
},
|
|
417
|
+
inside: {
|
|
418
|
+
params: { size: "md" },
|
|
419
|
+
messageUser: { color: "#333", bgColor: "#F0F0F0", bgType: "bubble" },
|
|
420
|
+
messageBot: { color: "#FFF", bgColor: "#007AFF", bgType: "plain" },
|
|
421
|
+
welcomeMessage: { color: "#333" }
|
|
422
|
+
},
|
|
423
|
+
bottom: {
|
|
424
|
+
params: { size: "md", disclaimerShow: true },
|
|
425
|
+
inputSend: {
|
|
426
|
+
color: "#333",
|
|
427
|
+
bgColor: "#FFF",
|
|
428
|
+
borderStyle: { borderColor: "#DDD", borderWidth: 1 },
|
|
429
|
+
inputStyle: "inside",
|
|
430
|
+
bgType: "plain"
|
|
431
|
+
},
|
|
432
|
+
btnSend: { color: "#FFF", bgColor: "#007AFF", type: "both" },
|
|
433
|
+
activeBtn: { color: "#007AFF", bgColor: "#E3F2FD" },
|
|
434
|
+
warningAlert: { color: "#FFF", bgColor: "#FF9500" }
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
};
|
|
439
|
+
//# sourceMappingURL=examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples.js","sourceRoot":"","sources":["../../src/migration/examples.ts"],"names":[],"mappings":"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"}
|