@yartsun/chat-widget-types 1.0.2 → 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/README.md +214 -115
- package/dist/config.types.d.ts +111 -44
- package/dist/config.types.d.ts.map +1 -1
- package/dist/config.types.js +2 -67
- package/dist/config.types.js.map +1 -1
- 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 -127
- package/dist/utils.js.map +1 -1
- package/package.json +13 -4
- package/src/config.types.ts +132 -118
- 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 -143
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Стратегии миграции конфигураций виджета чата
|
|
3
|
+
*/
|
|
4
|
+
import { DEFAULT_CONFIG } from '../config.types';
|
|
5
|
+
/** Базовый класс для стратегий миграции */
|
|
6
|
+
export class BaseMigrationStrategy {
|
|
7
|
+
canApply(context) {
|
|
8
|
+
return context.fromVersion === this.appliesTo.from &&
|
|
9
|
+
context.toVersion === this.appliesTo.to;
|
|
10
|
+
}
|
|
11
|
+
rollback(_context) {
|
|
12
|
+
return {
|
|
13
|
+
success: false,
|
|
14
|
+
errors: [`Rollback not implemented for strategy: ${this.name}`],
|
|
15
|
+
warnings: [],
|
|
16
|
+
modified: false
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
createSuccessResult(data, warnings = []) {
|
|
20
|
+
return {
|
|
21
|
+
success: true,
|
|
22
|
+
data,
|
|
23
|
+
errors: [],
|
|
24
|
+
warnings,
|
|
25
|
+
modified: true
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
createErrorResult(errors, data) {
|
|
29
|
+
return {
|
|
30
|
+
success: false,
|
|
31
|
+
data,
|
|
32
|
+
errors,
|
|
33
|
+
warnings: [],
|
|
34
|
+
modified: false
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/** Стратегия добавления новых полей в settings для V1->V2 */
|
|
39
|
+
export class AddSettingsFieldsV1toV2Strategy extends BaseMigrationStrategy {
|
|
40
|
+
constructor() {
|
|
41
|
+
super(...arguments);
|
|
42
|
+
this.name = 'AddSettingsFieldsV1toV2';
|
|
43
|
+
this.description = 'Добавляет новые поля loader, buttonStyle, buttonType в settings';
|
|
44
|
+
this.appliesTo = { from: '1.0', to: '2.0' };
|
|
45
|
+
}
|
|
46
|
+
apply(context) {
|
|
47
|
+
try {
|
|
48
|
+
const config = { ...context.config };
|
|
49
|
+
const warnings = [];
|
|
50
|
+
// Добавляем новые поля в settings
|
|
51
|
+
const newSettings = {
|
|
52
|
+
...config.settings,
|
|
53
|
+
loader: DEFAULT_CONFIG.settings.loader, // 'dots'
|
|
54
|
+
};
|
|
55
|
+
warnings.push(`Добавлены поля loader: '${newSettings.loader}'`);
|
|
56
|
+
return this.createSuccessResult({ ...config, settings: newSettings }, warnings);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
return this.createErrorResult([`Ошибка при добавлении полей settings: ${error}`]);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** Стратегия добавления chipStyle в top.params для V1->V2 */
|
|
64
|
+
export class AddChipStyleV1toV2Strategy extends BaseMigrationStrategy {
|
|
65
|
+
constructor() {
|
|
66
|
+
super(...arguments);
|
|
67
|
+
this.name = 'AddChipStyleV1toV2';
|
|
68
|
+
this.description = 'Добавляет поле chipStyle в sections.top.params';
|
|
69
|
+
this.appliesTo = { from: '1.0', to: '2.0' };
|
|
70
|
+
}
|
|
71
|
+
apply(context) {
|
|
72
|
+
try {
|
|
73
|
+
const config = { ...context.config };
|
|
74
|
+
const warnings = [];
|
|
75
|
+
// Добавляем chipStyle в top.params
|
|
76
|
+
config.sections.top.params = {
|
|
77
|
+
...config.sections.top.params,
|
|
78
|
+
chipStyle: DEFAULT_CONFIG.sections.top.params.chipStyle // 'filled'
|
|
79
|
+
};
|
|
80
|
+
warnings.push(`Добавлено поле chipStyle: '${DEFAULT_CONFIG.sections.top.params.chipStyle}' в sections.top.params`);
|
|
81
|
+
return this.createSuccessResult(config, warnings);
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
return this.createErrorResult([`Ошибка при добавлении chipStyle: ${error}`]);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/** Стратегия добавления bgType для сообщений в V1->V2 */
|
|
89
|
+
export class AddMessageBgTypeV1toV2Strategy extends BaseMigrationStrategy {
|
|
90
|
+
constructor() {
|
|
91
|
+
super(...arguments);
|
|
92
|
+
this.name = 'AddMessageBgTypeV1toV2';
|
|
93
|
+
this.description = 'Добавляет поле bgType в messageUser и messageBot';
|
|
94
|
+
this.appliesTo = { from: '1.0', to: '2.0' };
|
|
95
|
+
}
|
|
96
|
+
apply(context) {
|
|
97
|
+
try {
|
|
98
|
+
const config = { ...context.config };
|
|
99
|
+
const warnings = [];
|
|
100
|
+
// Добавляем bgType в messageUser и messageBot
|
|
101
|
+
config.sections.inside.messageUser = {
|
|
102
|
+
...config.sections.inside.messageUser,
|
|
103
|
+
bgType: DEFAULT_CONFIG.sections.inside.messageUser.bgType // 'bubble'
|
|
104
|
+
};
|
|
105
|
+
config.sections.inside.messageBot = {
|
|
106
|
+
...config.sections.inside.messageBot,
|
|
107
|
+
bgType: DEFAULT_CONFIG.sections.inside.messageBot.bgType // 'plain'
|
|
108
|
+
};
|
|
109
|
+
warnings.push('Добавлены поля bgType для messageUser и messageBot');
|
|
110
|
+
return this.createSuccessResult(config, warnings);
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
return this.createErrorResult([`Ошибка при добавлении bgType для сообщений: ${error}`]);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** Стратегия добавления новых кнопок approve/reject в V1->V2 */
|
|
118
|
+
export class AddActionButtonsV1toV2Strategy extends BaseMigrationStrategy {
|
|
119
|
+
constructor() {
|
|
120
|
+
super(...arguments);
|
|
121
|
+
this.name = 'AddActionButtonsV1toV2';
|
|
122
|
+
this.description = 'Добавляет кнопки aprooveButton и rejectButton в inside секцию';
|
|
123
|
+
this.appliesTo = { from: '1.0', to: '2.0' };
|
|
124
|
+
}
|
|
125
|
+
apply(context) {
|
|
126
|
+
try {
|
|
127
|
+
const config = { ...context.config };
|
|
128
|
+
const warnings = [];
|
|
129
|
+
// Добавляем новые кнопки
|
|
130
|
+
config.sections.inside = {
|
|
131
|
+
...config.sections.inside
|
|
132
|
+
};
|
|
133
|
+
warnings.push('Добавлены кнопки aprooveButton и rejectButton');
|
|
134
|
+
return this.createSuccessResult(config, warnings);
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
return this.createErrorResult([`Ошибка при добавлении кнопок действий: ${error}`]);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/** Стратегия расширения inputSend для V1->V2 */
|
|
142
|
+
export class EnhanceInputSendV1toV2Strategy extends BaseMigrationStrategy {
|
|
143
|
+
constructor() {
|
|
144
|
+
super(...arguments);
|
|
145
|
+
this.name = 'EnhanceInputSendV1toV2';
|
|
146
|
+
this.description = 'Добавляет borderStyle, inputStyle, bgType в inputSend';
|
|
147
|
+
this.appliesTo = { from: '1.0', to: '2.0' };
|
|
148
|
+
}
|
|
149
|
+
apply(context) {
|
|
150
|
+
try {
|
|
151
|
+
const config = { ...context.config };
|
|
152
|
+
const warnings = [];
|
|
153
|
+
// Расширяем inputSend
|
|
154
|
+
config.sections.bottom.inputSend = {
|
|
155
|
+
...config.sections.bottom.inputSend,
|
|
156
|
+
borderStyle: DEFAULT_CONFIG.sections.bottom.inputSend.borderStyle,
|
|
157
|
+
inputStyle: DEFAULT_CONFIG.sections.bottom.inputSend.inputStyle, // 'inside'
|
|
158
|
+
bgType: DEFAULT_CONFIG.sections.bottom.inputSend.bgType // 'plain'
|
|
159
|
+
};
|
|
160
|
+
warnings.push('Расширен inputSend с новыми полями borderStyle, inputStyle, bgType');
|
|
161
|
+
return this.createSuccessResult(config, warnings);
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
return this.createErrorResult([`Ошибка при расширении inputSend: ${error}`]);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/** Стратегия добавления warningAlert и disclaimer в V1->V2 */
|
|
169
|
+
export class AddBottomElementsV1toV2Strategy extends BaseMigrationStrategy {
|
|
170
|
+
constructor() {
|
|
171
|
+
super(...arguments);
|
|
172
|
+
this.name = 'AddBottomElementsV1toV2';
|
|
173
|
+
this.description = 'Добавляет warningAlert и disclaimer в bottom секцию';
|
|
174
|
+
this.appliesTo = { from: '1.0', to: '2.0' };
|
|
175
|
+
}
|
|
176
|
+
apply(context) {
|
|
177
|
+
try {
|
|
178
|
+
const config = { ...context.config };
|
|
179
|
+
const warnings = [];
|
|
180
|
+
// Добавляем новые элементы в bottom
|
|
181
|
+
config.sections.bottom = {
|
|
182
|
+
...config.sections.bottom,
|
|
183
|
+
warningAlert: DEFAULT_CONFIG.sections.bottom.warningAlert
|
|
184
|
+
};
|
|
185
|
+
warnings.push('Добавлены warningAlert и disclaimer в bottom секцию');
|
|
186
|
+
return this.createSuccessResult(config, warnings);
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
return this.createErrorResult([`Ошибка при добавлении элементов bottom: ${error}`]);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/** Реестр всех стратегий миграции V1->V2 */
|
|
194
|
+
export const V1_TO_V2_STRATEGIES = [
|
|
195
|
+
new AddSettingsFieldsV1toV2Strategy(),
|
|
196
|
+
new AddChipStyleV1toV2Strategy(),
|
|
197
|
+
new AddMessageBgTypeV1toV2Strategy(),
|
|
198
|
+
new AddActionButtonsV1toV2Strategy(),
|
|
199
|
+
new EnhanceInputSendV1toV2Strategy(),
|
|
200
|
+
new AddBottomElementsV1toV2Strategy()
|
|
201
|
+
];
|
|
202
|
+
/** Получить все стратегии для конкретного перехода версий */
|
|
203
|
+
export function getStrategiesForMigration(from, to) {
|
|
204
|
+
const allStrategies = [
|
|
205
|
+
...V1_TO_V2_STRATEGIES
|
|
206
|
+
// Здесь можно добавить стратегии для других версий: V2_TO_V3_STRATEGIES и т.д.
|
|
207
|
+
];
|
|
208
|
+
return allStrategies.filter(strategy => strategy.appliesTo.from === from && strategy.appliesTo.to === to);
|
|
209
|
+
}
|
|
210
|
+
/** Получить все доступные стратегии */
|
|
211
|
+
export function getAllStrategies() {
|
|
212
|
+
return [
|
|
213
|
+
...V1_TO_V2_STRATEGIES
|
|
214
|
+
// Добавляйте сюда новые группы стратегий для других версий
|
|
215
|
+
];
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=strategies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/migration/strategies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Типы для системы миграции конфигураций виджета чата
|
|
3
|
+
*/
|
|
4
|
+
import { WidgetConfig } from '../config.types';
|
|
5
|
+
/** Версии конфигурации */
|
|
6
|
+
export type ConfigVersion = '1.0' | '2.0' | '3.0';
|
|
7
|
+
/** Результат миграции */
|
|
8
|
+
export interface MigrationResult<T = WidgetConfig> {
|
|
9
|
+
success: boolean;
|
|
10
|
+
data?: T;
|
|
11
|
+
errors: string[];
|
|
12
|
+
warnings: string[];
|
|
13
|
+
fromVersion: ConfigVersion;
|
|
14
|
+
toVersion: ConfigVersion;
|
|
15
|
+
appliedStrategies: string[];
|
|
16
|
+
}
|
|
17
|
+
/** Контекст миграции */
|
|
18
|
+
export interface MigrationContext {
|
|
19
|
+
fromVersion: ConfigVersion;
|
|
20
|
+
toVersion: ConfigVersion;
|
|
21
|
+
config: any;
|
|
22
|
+
options?: MigrationOptions;
|
|
23
|
+
}
|
|
24
|
+
/** Опции миграции */
|
|
25
|
+
export interface MigrationOptions {
|
|
26
|
+
/** Строгий режим - останавливаться на ошибках */
|
|
27
|
+
strict?: boolean;
|
|
28
|
+
/** Сохранять неизвестные поля */
|
|
29
|
+
preserveUnknown?: boolean;
|
|
30
|
+
/** Логировать процесс миграции */
|
|
31
|
+
verbose?: boolean;
|
|
32
|
+
/** Применить только определенные стратегии */
|
|
33
|
+
onlyStrategies?: string[];
|
|
34
|
+
/** Исключить определенные стратегии */
|
|
35
|
+
excludeStrategies?: string[];
|
|
36
|
+
}
|
|
37
|
+
/** Абстрактная стратегия миграции */
|
|
38
|
+
export interface MigrationStrategy {
|
|
39
|
+
/** Уникальное имя стратегии */
|
|
40
|
+
name: string;
|
|
41
|
+
/** Описание что делает стратегия */
|
|
42
|
+
description: string;
|
|
43
|
+
/** Версии для которых применяется */
|
|
44
|
+
appliesTo: {
|
|
45
|
+
from: ConfigVersion;
|
|
46
|
+
to: ConfigVersion;
|
|
47
|
+
};
|
|
48
|
+
/** Проверка применимости стратегии */
|
|
49
|
+
canApply(context: MigrationContext): boolean;
|
|
50
|
+
/** Применение стратегии */
|
|
51
|
+
apply(context: MigrationContext): MigrationStepResult;
|
|
52
|
+
/** Откат стратегии (если возможен) */
|
|
53
|
+
rollback?(context: MigrationContext): MigrationStepResult;
|
|
54
|
+
}
|
|
55
|
+
/** Результат шага миграции */
|
|
56
|
+
export interface MigrationStepResult {
|
|
57
|
+
success: boolean;
|
|
58
|
+
data?: any;
|
|
59
|
+
errors: string[];
|
|
60
|
+
warnings: string[];
|
|
61
|
+
modified: boolean;
|
|
62
|
+
}
|
|
63
|
+
/** Команда миграции */
|
|
64
|
+
export interface MigrationCommand {
|
|
65
|
+
/** Имя команды */
|
|
66
|
+
name: string;
|
|
67
|
+
/** Описание команды */
|
|
68
|
+
description: string;
|
|
69
|
+
/** Выполнить команду */
|
|
70
|
+
execute(config: any, options?: any): MigrationStepResult;
|
|
71
|
+
}
|
|
72
|
+
/** Детектор версии конфигурации */
|
|
73
|
+
export interface VersionDetector {
|
|
74
|
+
/** Определить версию конфигурации */
|
|
75
|
+
detect(config: any): ConfigVersion | null;
|
|
76
|
+
}
|
|
77
|
+
/** Валидатор конфигурации */
|
|
78
|
+
export interface ConfigValidator {
|
|
79
|
+
/** Валидировать конфигурацию для версии */
|
|
80
|
+
validate(config: any, version: ConfigVersion): {
|
|
81
|
+
isValid: boolean;
|
|
82
|
+
errors: string[];
|
|
83
|
+
warnings: string[];
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** Схема конфигурации для конкретной версии */
|
|
87
|
+
export interface ConfigSchema {
|
|
88
|
+
version: ConfigVersion;
|
|
89
|
+
schema: any;
|
|
90
|
+
required: string[];
|
|
91
|
+
optional: string[];
|
|
92
|
+
}
|
|
93
|
+
/** Отчет о миграции */
|
|
94
|
+
export interface MigrationReport {
|
|
95
|
+
timestamp: Date;
|
|
96
|
+
fromVersion: ConfigVersion;
|
|
97
|
+
toVersion: ConfigVersion;
|
|
98
|
+
success: boolean;
|
|
99
|
+
duration: number;
|
|
100
|
+
appliedStrategies: Array<{
|
|
101
|
+
name: string;
|
|
102
|
+
success: boolean;
|
|
103
|
+
errors: string[];
|
|
104
|
+
warnings: string[];
|
|
105
|
+
}>;
|
|
106
|
+
totalErrors: number;
|
|
107
|
+
totalWarnings: number;
|
|
108
|
+
summary: string;
|
|
109
|
+
}
|
|
110
|
+
/** Логгер для миграции */
|
|
111
|
+
export interface MigrationLogger {
|
|
112
|
+
info(message: string, context?: any): void;
|
|
113
|
+
warn(message: string, context?: any): void;
|
|
114
|
+
error(message: string, context?: any): void;
|
|
115
|
+
debug(message: string, context?: any): void;
|
|
116
|
+
}
|
|
117
|
+
/** Базовые типы для различных версий конфигурации */
|
|
118
|
+
/** Конфигурация V1 */
|
|
119
|
+
export interface ConfigV1 {
|
|
120
|
+
settings: {
|
|
121
|
+
widgetTitle: string;
|
|
122
|
+
welcomeMessage: string;
|
|
123
|
+
bgChat: string;
|
|
124
|
+
gapMessageLine: number;
|
|
125
|
+
paddingChat: number;
|
|
126
|
+
fontFamily: string;
|
|
127
|
+
borderRadius: string;
|
|
128
|
+
launchView: string;
|
|
129
|
+
letterSpacing: number;
|
|
130
|
+
logo: string;
|
|
131
|
+
fontWeight: number;
|
|
132
|
+
};
|
|
133
|
+
sections: {
|
|
134
|
+
top: {
|
|
135
|
+
params: {
|
|
136
|
+
size: string;
|
|
137
|
+
};
|
|
138
|
+
chipWidgetTitle: {
|
|
139
|
+
color: string;
|
|
140
|
+
bgColor: string;
|
|
141
|
+
};
|
|
142
|
+
btnClose: {
|
|
143
|
+
color: string;
|
|
144
|
+
bgColor: string;
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
inside: {
|
|
148
|
+
params: {
|
|
149
|
+
size: string;
|
|
150
|
+
};
|
|
151
|
+
messageUser: {
|
|
152
|
+
color: string;
|
|
153
|
+
bgColor: string;
|
|
154
|
+
};
|
|
155
|
+
messageBot: {
|
|
156
|
+
color: string;
|
|
157
|
+
bgColor: string;
|
|
158
|
+
};
|
|
159
|
+
welcomeMessage: {
|
|
160
|
+
color: string;
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
bottom: {
|
|
164
|
+
params: {
|
|
165
|
+
size: string;
|
|
166
|
+
};
|
|
167
|
+
inputSend: {
|
|
168
|
+
color: string;
|
|
169
|
+
bgColor: string;
|
|
170
|
+
};
|
|
171
|
+
btnSend: {
|
|
172
|
+
color: string;
|
|
173
|
+
bgColor: string;
|
|
174
|
+
type: string;
|
|
175
|
+
};
|
|
176
|
+
activeBtn: {
|
|
177
|
+
color: string;
|
|
178
|
+
bgColor: string;
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/** Конфигурация V2 - расширенная версия */
|
|
184
|
+
export interface ConfigV2 extends WidgetConfig {
|
|
185
|
+
}
|
|
186
|
+
/** Маппинг типов конфигурации по версиям */
|
|
187
|
+
export type ConfigByVersion = {
|
|
188
|
+
'1.0': ConfigV1;
|
|
189
|
+
'2.0': ConfigV2;
|
|
190
|
+
'3.0': WidgetConfig;
|
|
191
|
+
};
|
|
192
|
+
/** Фабрика для создания пустых конфигураций */
|
|
193
|
+
export type ConfigFactory = {
|
|
194
|
+
[V in ConfigVersion]: () => ConfigByVersion[V];
|
|
195
|
+
};
|
|
196
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/migration/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/migration/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const extractSettings: (config: WidgetConfig) => {
|
|
3
|
-
general: GeneralSettings;
|
|
4
|
-
shapes: ShapesSettings;
|
|
5
|
-
colors: EmittedColorElement;
|
|
6
|
-
font: FontSettings;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Функция для сборки полного конфига из отдельных частей
|
|
10
|
-
*/
|
|
11
|
-
export declare function buildWidgetConfig(general: GeneralSettings, shapes: ShapesSettings, colors: EmittedColorElement, fonts: FontSettings): WidgetConfig;
|
|
1
|
+
export declare const getIcon: (icon: string) => string;
|
|
12
2
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,WAEnC,CAAA"}
|
package/dist/utils.js
CHANGED
|
@@ -1,128 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
general: {
|
|
5
|
-
widgetTitle: config.settings.widgetTitle,
|
|
6
|
-
welcomeMessage: config.settings.welcomeMessage,
|
|
7
|
-
launchView: config.settings.launchView,
|
|
8
|
-
logo: config.settings.logo,
|
|
9
|
-
},
|
|
10
|
-
// Настройки форм и размеров
|
|
11
|
-
shapes: {
|
|
12
|
-
gapMessageLine: config.settings.gapMessageLine,
|
|
13
|
-
paddingChat: config.settings.paddingChat,
|
|
14
|
-
fontFamily: config.settings.fontFamily,
|
|
15
|
-
borderRadius: config.settings.borderRadius,
|
|
16
|
-
bottomSize: config.sections.bottom.params.size,
|
|
17
|
-
sendButtonType: config.sections.bottom.btnSend.type,
|
|
18
|
-
headerSize: config.sections.top.params.size,
|
|
19
|
-
messageSize: config.sections.inside.params.size,
|
|
20
|
-
},
|
|
21
|
-
// Настройки цветов
|
|
22
|
-
colors: {
|
|
23
|
-
bgChat: { bgColor: config.settings.bgChat },
|
|
24
|
-
welcomeMessage: { color: config.sections.inside?.welcomeMessage?.color || '#fff' },
|
|
25
|
-
chipWidgetTitle: {
|
|
26
|
-
color: config.sections.top.chipWidgetTitle.color,
|
|
27
|
-
bgColor: config.sections.top.chipWidgetTitle.bgColor,
|
|
28
|
-
},
|
|
29
|
-
btnClose: {
|
|
30
|
-
color: config.sections.top.btnClose.color,
|
|
31
|
-
bgColor: config.sections.top.btnClose.bgColor,
|
|
32
|
-
},
|
|
33
|
-
messageUser: {
|
|
34
|
-
color: config.sections.inside.messageUser.color,
|
|
35
|
-
bgColor: config.sections.inside.messageUser.bgColor,
|
|
36
|
-
},
|
|
37
|
-
messageBot: {
|
|
38
|
-
color: config.sections.inside.messageBot.color,
|
|
39
|
-
bgColor: config.sections.inside.messageBot.bgColor,
|
|
40
|
-
},
|
|
41
|
-
inputSend: {
|
|
42
|
-
color: config.sections.bottom.inputSend.color,
|
|
43
|
-
bgColor: config.sections.bottom.inputSend.bgColor,
|
|
44
|
-
},
|
|
45
|
-
btnSend: {
|
|
46
|
-
color: config.sections.bottom.btnSend.color,
|
|
47
|
-
bgColor: config.sections.bottom.btnSend.bgColor,
|
|
48
|
-
},
|
|
49
|
-
activeBtn: {
|
|
50
|
-
color: config.sections.bottom.activeBtn.color,
|
|
51
|
-
bgColor: config.sections.bottom.activeBtn.bgColor,
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
// Шрифт отдельно
|
|
55
|
-
font: {
|
|
56
|
-
fontFamily: config.settings.fontFamily,
|
|
57
|
-
letterSpacing: config.settings.letterSpacing,
|
|
58
|
-
},
|
|
59
|
-
});
|
|
60
|
-
/**
|
|
61
|
-
* Функция для сборки полного конфига из отдельных частей
|
|
62
|
-
*/
|
|
63
|
-
export function buildWidgetConfig(general, shapes, colors, fonts) {
|
|
64
|
-
return {
|
|
65
|
-
settings: {
|
|
66
|
-
widgetTitle: general.widgetTitle,
|
|
67
|
-
welcomeMessage: general.welcomeMessage,
|
|
68
|
-
launchView: general.launchView,
|
|
69
|
-
bgChat: colors.bgChat.bgColor || colors.bgChat.color || DEFAULT_CONFIG.settings.bgChat,
|
|
70
|
-
gapMessageLine: shapes.gapMessageLine,
|
|
71
|
-
paddingChat: shapes.paddingChat,
|
|
72
|
-
borderRadius: shapes.borderRadius,
|
|
73
|
-
fontFamily: fonts.fontFamily,
|
|
74
|
-
letterSpacing: fonts.letterSpacing,
|
|
75
|
-
logo: general.logo,
|
|
76
|
-
},
|
|
77
|
-
sections: {
|
|
78
|
-
top: {
|
|
79
|
-
params: {
|
|
80
|
-
size: shapes.headerSize,
|
|
81
|
-
},
|
|
82
|
-
chipWidgetTitle: {
|
|
83
|
-
color: colors.chipWidgetTitle.color || DEFAULT_CONFIG.sections.top.chipWidgetTitle.color,
|
|
84
|
-
bgColor: colors.chipWidgetTitle.bgColor || DEFAULT_CONFIG.sections.top.chipWidgetTitle.bgColor,
|
|
85
|
-
},
|
|
86
|
-
btnClose: {
|
|
87
|
-
color: colors.btnClose.color || DEFAULT_CONFIG.sections.top.btnClose.color,
|
|
88
|
-
bgColor: colors.btnClose.bgColor || DEFAULT_CONFIG.sections.top.btnClose.bgColor,
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
inside: {
|
|
92
|
-
params: {
|
|
93
|
-
size: shapes.messageSize,
|
|
94
|
-
},
|
|
95
|
-
messageUser: {
|
|
96
|
-
color: colors.messageUser.color || DEFAULT_CONFIG.sections.inside.messageUser.color,
|
|
97
|
-
bgColor: colors.messageUser.bgColor || DEFAULT_CONFIG.sections.inside.messageUser.bgColor,
|
|
98
|
-
},
|
|
99
|
-
messageBot: {
|
|
100
|
-
color: colors.messageBot.color || DEFAULT_CONFIG.sections.inside.messageBot.color,
|
|
101
|
-
bgColor: colors.messageBot.bgColor || DEFAULT_CONFIG.sections.inside.messageBot.bgColor,
|
|
102
|
-
},
|
|
103
|
-
welcomeMessage: {
|
|
104
|
-
color: colors.welcomeMessage.color || DEFAULT_CONFIG.sections.inside.welcomeMessage.color,
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
|
-
bottom: {
|
|
108
|
-
params: {
|
|
109
|
-
size: shapes.bottomSize,
|
|
110
|
-
},
|
|
111
|
-
inputSend: {
|
|
112
|
-
color: colors.inputSend.color || DEFAULT_CONFIG.sections.bottom.inputSend.color,
|
|
113
|
-
bgColor: colors.inputSend.bgColor || DEFAULT_CONFIG.sections.bottom.inputSend.bgColor,
|
|
114
|
-
},
|
|
115
|
-
btnSend: {
|
|
116
|
-
color: colors.btnSend.color || DEFAULT_CONFIG.sections.bottom.btnSend.color,
|
|
117
|
-
bgColor: colors.btnSend.bgColor || DEFAULT_CONFIG.sections.bottom.btnSend.bgColor,
|
|
118
|
-
type: shapes.sendButtonType,
|
|
119
|
-
},
|
|
120
|
-
activeBtn: {
|
|
121
|
-
color: colors.activeBtn.color || DEFAULT_CONFIG.sections.bottom.activeBtn.color,
|
|
122
|
-
bgColor: colors.activeBtn.bgColor || DEFAULT_CONFIG.sections.bottom.activeBtn.bgColor,
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
};
|
|
127
|
-
}
|
|
1
|
+
export const getIcon = (icon) => {
|
|
2
|
+
return icon;
|
|
3
|
+
};
|
|
128
4
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE;IACtC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yartsun/chat-widget-types",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "TypeScript definitions for HyperShadow Chat Widget",
|
|
3
|
+
"version": "1.0.5",
|
|
4
|
+
"description": "TypeScript definitions and professional migration system for HyperShadow Chat Widget configurations",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -12,7 +12,11 @@
|
|
|
12
12
|
"build": "tsc",
|
|
13
13
|
"build:watch": "tsc --watch",
|
|
14
14
|
"clean": "rm -rf dist",
|
|
15
|
-
"prepublishOnly": "npm run clean && npm run build"
|
|
15
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
16
|
+
"migrate": "npx tsx migrator/cli.ts",
|
|
17
|
+
"migrate:demo": "npx tsx migrator/demo.ts",
|
|
18
|
+
"migrate:examples": "npx tsx -e \"import('./src/migration/examples.js').then(m => m.runAllExamples())\"",
|
|
19
|
+
"migrate:help": "npx tsx migrator/cli.ts --help"
|
|
16
20
|
},
|
|
17
21
|
"keywords": [
|
|
18
22
|
"typescript",
|
|
@@ -20,12 +24,17 @@
|
|
|
20
24
|
"chat",
|
|
21
25
|
"widget",
|
|
22
26
|
"microfrontend",
|
|
23
|
-
"module-federation"
|
|
27
|
+
"module-federation",
|
|
28
|
+
"migration",
|
|
29
|
+
"config-migration",
|
|
30
|
+
"schema-migration",
|
|
31
|
+
"version-upgrade"
|
|
24
32
|
],
|
|
25
33
|
"author": "HyperShadow Team",
|
|
26
34
|
"license": "MIT",
|
|
27
35
|
"devDependencies": {
|
|
28
36
|
"@types/node": "^24.0.13",
|
|
37
|
+
"ts-node": "^10.9.2",
|
|
29
38
|
"typescript": "^5.8.3"
|
|
30
39
|
},
|
|
31
40
|
"repository": {
|