@cakemail-org/cakemail-cli 1.3.0 → 1.7.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.
Files changed (103) hide show
  1. package/README.md +312 -12
  2. package/dist/cli.js +59 -8
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client.d.ts +2 -0
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js +15 -7
  7. package/dist/client.js.map +1 -1
  8. package/dist/commands/account.d.ts +5 -0
  9. package/dist/commands/account.d.ts.map +1 -0
  10. package/dist/commands/account.js +231 -0
  11. package/dist/commands/account.js.map +1 -0
  12. package/dist/commands/attributes.d.ts.map +1 -1
  13. package/dist/commands/attributes.js +43 -15
  14. package/dist/commands/attributes.js.map +1 -1
  15. package/dist/commands/campaigns.d.ts.map +1 -1
  16. package/dist/commands/campaigns.js +255 -26
  17. package/dist/commands/campaigns.js.map +1 -1
  18. package/dist/commands/config.d.ts +8 -0
  19. package/dist/commands/config.d.ts.map +1 -0
  20. package/dist/commands/config.js +294 -0
  21. package/dist/commands/config.js.map +1 -0
  22. package/dist/commands/contacts.d.ts.map +1 -1
  23. package/dist/commands/contacts.js +321 -47
  24. package/dist/commands/contacts.js.map +1 -1
  25. package/dist/commands/interests.d.ts +5 -0
  26. package/dist/commands/interests.d.ts.map +1 -0
  27. package/dist/commands/interests.js +172 -0
  28. package/dist/commands/interests.js.map +1 -0
  29. package/dist/commands/lists.d.ts.map +1 -1
  30. package/dist/commands/lists.js +165 -30
  31. package/dist/commands/lists.js.map +1 -1
  32. package/dist/commands/logs.d.ts +5 -0
  33. package/dist/commands/logs.d.ts.map +1 -0
  34. package/dist/commands/logs.js +237 -0
  35. package/dist/commands/logs.js.map +1 -0
  36. package/dist/commands/reports.d.ts.map +1 -1
  37. package/dist/commands/reports.js +90 -13
  38. package/dist/commands/reports.js.map +1 -1
  39. package/dist/commands/segments.d.ts.map +1 -1
  40. package/dist/commands/segments.js +59 -21
  41. package/dist/commands/segments.js.map +1 -1
  42. package/dist/commands/senders.d.ts.map +1 -1
  43. package/dist/commands/senders.js +46 -12
  44. package/dist/commands/senders.js.map +1 -1
  45. package/dist/commands/suppressed.d.ts.map +1 -1
  46. package/dist/commands/suppressed.js +20 -6
  47. package/dist/commands/suppressed.js.map +1 -1
  48. package/dist/commands/tags.d.ts +5 -0
  49. package/dist/commands/tags.d.ts.map +1 -0
  50. package/dist/commands/tags.js +124 -0
  51. package/dist/commands/tags.js.map +1 -0
  52. package/dist/commands/templates.d.ts.map +1 -1
  53. package/dist/commands/templates.js +11 -3
  54. package/dist/commands/templates.js.map +1 -1
  55. package/dist/commands/transactional-templates.d.ts +5 -0
  56. package/dist/commands/transactional-templates.d.ts.map +1 -0
  57. package/dist/commands/transactional-templates.js +354 -0
  58. package/dist/commands/transactional-templates.js.map +1 -0
  59. package/dist/types/profile.d.ts +92 -0
  60. package/dist/types/profile.d.ts.map +1 -0
  61. package/dist/types/profile.js +119 -0
  62. package/dist/types/profile.js.map +1 -0
  63. package/dist/utils/auth.d.ts +33 -0
  64. package/dist/utils/auth.d.ts.map +1 -0
  65. package/dist/utils/auth.js +226 -0
  66. package/dist/utils/auth.js.map +1 -0
  67. package/dist/utils/config-file.d.ts +99 -0
  68. package/dist/utils/config-file.d.ts.map +1 -0
  69. package/dist/utils/config-file.js +259 -0
  70. package/dist/utils/config-file.js.map +1 -0
  71. package/dist/utils/config.d.ts +13 -2
  72. package/dist/utils/config.d.ts.map +1 -1
  73. package/dist/utils/config.js +82 -8
  74. package/dist/utils/config.js.map +1 -1
  75. package/dist/utils/confirm.d.ts +38 -0
  76. package/dist/utils/confirm.d.ts.map +1 -0
  77. package/dist/utils/confirm.js +124 -0
  78. package/dist/utils/confirm.js.map +1 -0
  79. package/dist/utils/defaults.d.ts +39 -0
  80. package/dist/utils/defaults.d.ts.map +1 -0
  81. package/dist/utils/defaults.js +195 -0
  82. package/dist/utils/defaults.js.map +1 -0
  83. package/dist/utils/errors.d.ts +67 -0
  84. package/dist/utils/errors.d.ts.map +1 -0
  85. package/dist/utils/errors.js +395 -0
  86. package/dist/utils/errors.js.map +1 -0
  87. package/dist/utils/interactive.d.ts +97 -0
  88. package/dist/utils/interactive.d.ts.map +1 -0
  89. package/dist/utils/interactive.js +265 -0
  90. package/dist/utils/interactive.js.map +1 -0
  91. package/dist/utils/list-defaults.d.ts +33 -0
  92. package/dist/utils/list-defaults.d.ts.map +1 -0
  93. package/dist/utils/list-defaults.js +52 -0
  94. package/dist/utils/list-defaults.js.map +1 -0
  95. package/dist/utils/output.d.ts +72 -2
  96. package/dist/utils/output.d.ts.map +1 -1
  97. package/dist/utils/output.js +407 -38
  98. package/dist/utils/output.js.map +1 -1
  99. package/dist/utils/progress.d.ts +139 -0
  100. package/dist/utils/progress.d.ts.map +1 -0
  101. package/dist/utils/progress.js +216 -0
  102. package/dist/utils/progress.js.map +1 -0
  103. package/package.json +19 -3
@@ -0,0 +1,294 @@
1
+ /**
2
+ * Config Management Commands
3
+ *
4
+ * Manage profile settings and configuration
5
+ */
6
+ import chalk from 'chalk';
7
+ import inquirer from 'inquirer';
8
+ import { getCurrentProfile, setCurrentProfile, getProfileConfig, setProfileConfigValue, resetProfileConfig, loadConfigFile, deleteConfigFile } from '../utils/config-file.js';
9
+ import { PROFILE_DESCRIPTIONS } from '../types/profile.js';
10
+ export function registerConfigCommands(program) {
11
+ const config = program
12
+ .command('config')
13
+ .description('Manage CLI configuration and profiles');
14
+ // Show current profile
15
+ config
16
+ .command('profile')
17
+ .description('Show current profile and settings')
18
+ .action(showProfile);
19
+ // Switch profile
20
+ config
21
+ .command('profile-set <type>')
22
+ .description('Switch to a different profile (developer|marketer|balanced)')
23
+ .action(switchProfile);
24
+ // Set custom config value
25
+ config
26
+ .command('set <key> <value>')
27
+ .description('Set a custom configuration value (e.g., output.format table)')
28
+ .action(setConfigValue);
29
+ // Reset to profile defaults
30
+ config
31
+ .command('reset')
32
+ .description('Reset all custom settings to profile defaults')
33
+ .action(resetConfig);
34
+ // Show all config
35
+ config
36
+ .command('show')
37
+ .description('Show complete configuration')
38
+ .action(showAllConfig);
39
+ // Preview profile
40
+ config
41
+ .command('preview <type>')
42
+ .description('Preview settings for a profile without switching (developer|marketer|balanced)')
43
+ .action(previewProfile);
44
+ // Logout command
45
+ program
46
+ .command('logout')
47
+ .description('Log out and clear authentication tokens')
48
+ .option('-f, --force', 'Skip confirmation prompt')
49
+ .action(logout);
50
+ }
51
+ /**
52
+ * Show current profile and active settings
53
+ */
54
+ function showProfile() {
55
+ const profile = getCurrentProfile();
56
+ const config = getProfileConfig();
57
+ console.log(chalk.cyan('\n📋 Current Profile\n'));
58
+ console.log(chalk.white(`Profile: ${chalk.bold(profile)}`));
59
+ console.log(chalk.gray(`(${PROFILE_DESCRIPTIONS[profile].name})\n`));
60
+ console.log(chalk.cyan('Active Settings:\n'));
61
+ console.log(chalk.gray('Output:'));
62
+ console.log(` Format: ${chalk.white(config.output.format)}`);
63
+ console.log(` Colors: ${chalk.white(config.output.colors)}`);
64
+ console.log(` Pretty print: ${chalk.white(config.output.pretty_print ? 'enabled' : 'disabled')}`);
65
+ console.log(` Show tips: ${chalk.white(config.output.show_tips ? 'enabled' : 'disabled')}`);
66
+ console.log(chalk.gray('\nBehavior:'));
67
+ console.log(` Interactive prompts: ${chalk.white(config.behavior.interactive_prompts === true ? 'enabled' : config.behavior.interactive_prompts === false ? 'disabled' : 'auto')}`);
68
+ console.log(` Confirm destructive: ${chalk.white(config.behavior.confirm_destructive ? 'enabled' : 'disabled')}`);
69
+ console.log(` Auto open browser: ${chalk.white(config.behavior.auto_open_browser ? 'enabled' : 'disabled')}`);
70
+ console.log(` Show progress: ${chalk.white(config.behavior.show_progress ? 'enabled' : 'disabled')}`);
71
+ console.log(chalk.gray('\nDisplay:'));
72
+ console.log(` Date format: ${chalk.white(config.display.date_format)}`);
73
+ console.log(` Show IDs: ${chalk.white(config.display.show_ids ? 'yes' : 'no')}`);
74
+ console.log(` Show API details: ${chalk.white(config.display.show_api_details ? 'yes' : 'no')}`);
75
+ console.log(` Verbose errors: ${chalk.white(config.display.verbose_errors ? 'yes' : 'no')}`);
76
+ console.log(chalk.gray('\n' + '─'.repeat(50)));
77
+ console.log(chalk.gray('\nQuick actions:'));
78
+ console.log(chalk.gray(` Change profile: ${chalk.cyan('cakemail config profile-set <type>')}`));
79
+ console.log(chalk.gray(` Customize: ${chalk.cyan('cakemail config set <key> <value>')}`));
80
+ console.log(chalk.gray(` Reset: ${chalk.cyan('cakemail config reset')}`));
81
+ console.log(chalk.gray(` View all: ${chalk.cyan('cakemail config show')}`));
82
+ console.log(chalk.gray(` Logout: ${chalk.cyan('cakemail logout')}\n`));
83
+ }
84
+ /**
85
+ * Switch to a different profile
86
+ */
87
+ function switchProfile(type) {
88
+ const validProfiles = ['developer', 'marketer', 'balanced'];
89
+ if (!validProfiles.includes(type)) {
90
+ console.error(chalk.red(`\n✗ Invalid profile type: ${type}`));
91
+ console.log(chalk.gray(`\nValid profiles: ${validProfiles.join(', ')}\n`));
92
+ process.exit(1);
93
+ }
94
+ const oldProfile = getCurrentProfile();
95
+ const newProfile = type;
96
+ setCurrentProfile(newProfile);
97
+ console.log(chalk.green(`\n✓ Switched to ${chalk.bold(newProfile)} profile\n`));
98
+ // Show changes
99
+ const oldConfig = getProfileConfig(oldProfile);
100
+ const newConfig = getProfileConfig(newProfile);
101
+ console.log(chalk.cyan('Changes applied:\n'));
102
+ if (oldConfig.output.format !== newConfig.output.format) {
103
+ console.log(` ${chalk.gray('•')} Output format: ${chalk.yellow(oldConfig.output.format)} → ${chalk.green(newConfig.output.format)}`);
104
+ }
105
+ if (oldConfig.output.colors !== newConfig.output.colors) {
106
+ console.log(` ${chalk.gray('•')} Colors: ${chalk.yellow(oldConfig.output.colors)} → ${chalk.green(newConfig.output.colors)}`);
107
+ }
108
+ if (oldConfig.behavior.interactive_prompts !== newConfig.behavior.interactive_prompts) {
109
+ const oldValue = oldConfig.behavior.interactive_prompts === true ? 'enabled' : oldConfig.behavior.interactive_prompts === false ? 'disabled' : 'auto';
110
+ const newValue = newConfig.behavior.interactive_prompts === true ? 'enabled' : newConfig.behavior.interactive_prompts === false ? 'disabled' : 'auto';
111
+ console.log(` ${chalk.gray('•')} Interactive mode: ${chalk.yellow(oldValue)} → ${chalk.green(newValue)}`);
112
+ }
113
+ if (oldConfig.output.show_tips !== newConfig.output.show_tips) {
114
+ console.log(` ${chalk.gray('•')} Show tips: ${chalk.yellow(oldConfig.output.show_tips ? 'enabled' : 'disabled')} → ${chalk.green(newConfig.output.show_tips ? 'enabled' : 'disabled')}`);
115
+ }
116
+ console.log(chalk.gray(`\nTry it: ${chalk.cyan('cakemail campaigns list')}\n`));
117
+ }
118
+ /**
119
+ * Set a custom config value
120
+ */
121
+ function setConfigValue(key, value) {
122
+ // Parse value to appropriate type
123
+ let parsedValue = value;
124
+ if (value === 'true')
125
+ parsedValue = true;
126
+ else if (value === 'false')
127
+ parsedValue = false;
128
+ else if (value === 'null')
129
+ parsedValue = null;
130
+ else if (!isNaN(Number(value)))
131
+ parsedValue = Number(value);
132
+ try {
133
+ setProfileConfigValue(key, parsedValue);
134
+ console.log(chalk.green(`\n✓ Set ${chalk.cyan(key)} to ${chalk.bold(String(parsedValue))}\n`));
135
+ console.log(chalk.gray(`This overrides your profile default.\n`));
136
+ console.log(chalk.gray(`Reset with: ${chalk.cyan('cakemail config reset')}\n`));
137
+ }
138
+ catch (error) {
139
+ console.error(chalk.red(`\n✗ Failed to set config value: ${error}\n`));
140
+ process.exit(1);
141
+ }
142
+ }
143
+ /**
144
+ * Reset custom config to profile defaults
145
+ */
146
+ function resetConfig() {
147
+ const profile = getCurrentProfile();
148
+ resetProfileConfig();
149
+ console.log(chalk.green(`\n✓ Settings reset to ${chalk.bold(profile)} profile defaults\n`));
150
+ console.log(chalk.gray(`View settings: ${chalk.cyan('cakemail config profile')}\n`));
151
+ }
152
+ /**
153
+ * Show all configuration including auth and defaults
154
+ */
155
+ function showAllConfig() {
156
+ const configFile = loadConfigFile();
157
+ if (!configFile) {
158
+ console.log(chalk.yellow('\n⚠ No configuration file found\n'));
159
+ console.log(chalk.gray(`Run ${chalk.cyan('cakemail auth')} to set up authentication.\n`));
160
+ return;
161
+ }
162
+ console.log(chalk.cyan('\n📋 Complete Configuration\n'));
163
+ // Profile
164
+ console.log(chalk.white('Profile:'));
165
+ console.log(` ${chalk.gray('Type:')} ${chalk.white(configFile.profile || 'balanced')}`);
166
+ // Auth
167
+ if (configFile.auth) {
168
+ console.log(chalk.white('\nAuthentication:'));
169
+ if (configFile.auth.email) {
170
+ console.log(` ${chalk.gray('Email:')} ${chalk.white(configFile.auth.email)}`);
171
+ }
172
+ if (configFile.auth.base_url) {
173
+ console.log(` ${chalk.gray('API Base URL:')} ${chalk.white(configFile.auth.base_url)}`);
174
+ }
175
+ if (configFile.auth.token) {
176
+ console.log(` ${chalk.gray('Token:')} ${chalk.gray('[stored]')}`);
177
+ }
178
+ }
179
+ // Defaults
180
+ if (configFile.defaults) {
181
+ console.log(chalk.white('\nDefaults:'));
182
+ if (configFile.defaults.list_id) {
183
+ console.log(` ${chalk.gray('List ID:')} ${chalk.white(configFile.defaults.list_id)}`);
184
+ }
185
+ if (configFile.defaults.sender_id) {
186
+ console.log(` ${chalk.gray('Sender ID:')} ${chalk.white(configFile.defaults.sender_id)}`);
187
+ }
188
+ if (configFile.defaults.account_id) {
189
+ console.log(` ${chalk.gray('Account ID:')} ${chalk.white(configFile.defaults.account_id)}`);
190
+ }
191
+ }
192
+ // Profile settings
193
+ const profileConfig = getProfileConfig();
194
+ console.log(chalk.white('\nProfile Settings:'));
195
+ console.log(chalk.gray(' (see "cakemail config profile" for details)'));
196
+ console.log(chalk.gray('\n' + '─'.repeat(50)));
197
+ console.log(chalk.gray(`\nConfig file: ${chalk.cyan('~/.cakemail/config.json')}\n`));
198
+ }
199
+ /**
200
+ * Preview a profile's settings without switching
201
+ */
202
+ function previewProfile(type) {
203
+ const validProfiles = ['developer', 'marketer', 'balanced'];
204
+ if (!validProfiles.includes(type)) {
205
+ console.error(chalk.red(`\n✗ Invalid profile type: ${type}`));
206
+ console.log(chalk.gray(`\nValid profiles: ${validProfiles.join(', ')}\n`));
207
+ process.exit(1);
208
+ }
209
+ const profile = type;
210
+ const config = getProfileConfig(profile);
211
+ const currentProfile = getCurrentProfile();
212
+ console.log(chalk.cyan(`\n👁️ Preview: ${chalk.bold(profile)} Profile\n`));
213
+ console.log(chalk.gray(`${PROFILE_DESCRIPTIONS[profile].name}`));
214
+ // Show description
215
+ console.log(chalk.white('\nDescription:'));
216
+ PROFILE_DESCRIPTIONS[profile].description.forEach(line => {
217
+ console.log(chalk.gray(` • ${line}`));
218
+ });
219
+ console.log(chalk.cyan('\n⚙️ Settings:\n'));
220
+ console.log(chalk.gray('Output:'));
221
+ console.log(` Format: ${chalk.white(config.output.format)}`);
222
+ console.log(` Colors: ${chalk.white(config.output.colors)}`);
223
+ console.log(` Pretty print: ${chalk.white(config.output.pretty_print ? 'enabled' : 'disabled')}`);
224
+ console.log(` Show tips: ${chalk.white(config.output.show_tips ? 'enabled' : 'disabled')}`);
225
+ console.log(chalk.gray('\nBehavior:'));
226
+ console.log(` Interactive prompts: ${chalk.white(config.behavior.interactive_prompts === true ? 'enabled' : config.behavior.interactive_prompts === false ? 'disabled' : 'auto')}`);
227
+ console.log(` Confirm destructive: ${chalk.white(config.behavior.confirm_destructive ? 'enabled' : 'disabled')}`);
228
+ console.log(` Auto open browser: ${chalk.white(config.behavior.auto_open_browser ? 'enabled' : 'disabled')}`);
229
+ console.log(` Show progress: ${chalk.white(config.behavior.show_progress ? 'enabled' : 'disabled')}`);
230
+ console.log(chalk.gray('\nDisplay:'));
231
+ console.log(` Date format: ${chalk.white(config.display.date_format)}`);
232
+ console.log(` Show IDs: ${chalk.white(config.display.show_ids ? 'yes' : 'no')}`);
233
+ console.log(` Show API details: ${chalk.white(config.display.show_api_details ? 'yes' : 'no')}`);
234
+ console.log(` Verbose errors: ${chalk.white(config.display.verbose_errors ? 'yes' : 'no')}`);
235
+ console.log(chalk.gray('\n' + '─'.repeat(50)));
236
+ if (currentProfile === profile) {
237
+ console.log(chalk.green(`\n✓ This is your current profile\n`));
238
+ }
239
+ else {
240
+ console.log(chalk.gray(`\nCurrent profile: ${chalk.white(currentProfile)}`));
241
+ console.log(chalk.gray(`Switch to this profile: ${chalk.cyan(`cakemail config profile-set ${profile}`)}`));
242
+ console.log(chalk.gray(`Try it once: ${chalk.cyan(`cakemail --profile ${profile} campaigns list`)}\n`));
243
+ }
244
+ }
245
+ /**
246
+ * Logout and clear authentication
247
+ */
248
+ async function logout(options) {
249
+ const configFile = loadConfigFile();
250
+ if (!configFile) {
251
+ console.log(chalk.yellow('\n⚠ Not logged in\n'));
252
+ return;
253
+ }
254
+ // Show what will be deleted
255
+ console.log(chalk.cyan('\n🚪 Logout\n'));
256
+ if (configFile.auth?.email) {
257
+ console.log(chalk.gray(`Currently logged in as: ${chalk.white(configFile.auth.email)}`));
258
+ }
259
+ console.log(chalk.gray('\nThis will remove:'));
260
+ console.log(chalk.gray(' • Authentication tokens'));
261
+ console.log(chalk.gray(' • Profile settings'));
262
+ console.log(chalk.gray(' • All saved configuration\n'));
263
+ // Confirm unless --force is used
264
+ if (!options.force) {
265
+ const answer = await inquirer.prompt([
266
+ {
267
+ type: 'confirm',
268
+ name: 'confirmed',
269
+ message: 'Are you sure you want to log out?',
270
+ default: false
271
+ }
272
+ ]);
273
+ if (!answer.confirmed) {
274
+ console.log(chalk.gray('\nLogout cancelled\n'));
275
+ return;
276
+ }
277
+ }
278
+ // Delete the config file
279
+ try {
280
+ const deleted = deleteConfigFile();
281
+ if (deleted) {
282
+ console.log(chalk.green('\n✓ Logged out successfully\n'));
283
+ console.log(chalk.gray('Run any command to log in again.\n'));
284
+ }
285
+ else {
286
+ console.log(chalk.yellow('\n⚠ No configuration file found\n'));
287
+ }
288
+ }
289
+ catch (error) {
290
+ console.error(chalk.red(`\n✗ Failed to logout: ${error.message}\n`));
291
+ process.exit(1);
292
+ }
293
+ }
294
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAe,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAExE,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uCAAuC,CAAC,CAAC;IAExD,uBAAuB;IACvB,MAAM;SACH,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvB,iBAAiB;IACjB,MAAM;SACH,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,6DAA6D,CAAC;SAC1E,MAAM,CAAC,aAAa,CAAC,CAAC;IAEzB,0BAA0B;IAC1B,MAAM;SACH,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,cAAc,CAAC,CAAC;IAE1B,4BAA4B;IAC5B,MAAM;SACH,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvB,kBAAkB;IAClB,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,aAAa,CAAC,CAAC;IAEzB,kBAAkB;IAClB,MAAM;SACH,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,gFAAgF,CAAC;SAC7F,MAAM,CAAC,cAAc,CAAC,CAAC;IAE1B,iBAAiB;IACjB,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;SACjD,MAAM,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,WAAW;IAClB,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAElC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IAErE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC1G,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAEvG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrL,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACnH,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACjH,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAE7G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEnG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,aAAa,GAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAE3E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAmB,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,IAAmB,CAAC;IAEvC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAE9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IAEhF,eAAe;IACf,MAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE9C,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7I,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7I,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,mBAAmB,KAAK,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QACtF,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;QACtJ,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;QACtJ,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACrM,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW,EAAE,KAAa;IAChD,kCAAkC;IAClC,IAAI,WAAW,GAAQ,KAAK,CAAC;IAE7B,IAAI,KAAK,KAAK,MAAM;QAAE,WAAW,GAAG,IAAI,CAAC;SACpC,IAAI,KAAK,KAAK,OAAO;QAAE,WAAW,GAAG,KAAK,CAAC;SAC3C,IAAI,KAAK,KAAK,MAAM;QAAE,WAAW,GAAG,IAAI,CAAC;SACzC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAE,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,qBAAqB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,KAAK,IAAI,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW;IAClB,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IAEpC,kBAAkB,EAAE,CAAC;IAErB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;AACvF,CAAC;AAED;;GAEG;AACH,SAAS,aAAa;IACpB,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IAEpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAC1F,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAEzD,UAAU;IACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAErG,OAAO;IACP,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,WAAW;IACX,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACxC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAEzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;AACvF,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,aAAa,GAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAE3E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAmB,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,IAAmB,CAAC;IACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEjE,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3C,oBAAoB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC1G,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAEvG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrL,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACnH,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACjH,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAE7G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEnG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,+BAA+B,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,sBAAsB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,MAAM,CAAC,OAAY;IAChC,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IAEpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,4BAA4B;IAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAEzC,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAEzD,iCAAiC;IACjC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACnC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,mCAAmC;gBAC5C,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QAEnC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/commands/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIrD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAiYjG"}
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/commands/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AASrD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAisBjG"}