@solidstarters/solid-core 1.2.58 → 1.2.59

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 (48) hide show
  1. package/dist/config/iam.config.d.ts +2 -0
  2. package/dist/config/iam.config.d.ts.map +1 -1
  3. package/dist/config/iam.config.js +1 -0
  4. package/dist/config/iam.config.js.map +1 -1
  5. package/dist/controllers/setting.controller.d.ts +3 -0
  6. package/dist/controllers/setting.controller.d.ts.map +1 -1
  7. package/dist/controllers/setting.controller.js +23 -0
  8. package/dist/controllers/setting.controller.js.map +1 -1
  9. package/dist/dtos/create-setting.dto.d.ts +2 -15
  10. package/dist/dtos/create-setting.dto.d.ts.map +1 -1
  11. package/dist/dtos/create-setting.dto.js +6 -77
  12. package/dist/dtos/create-setting.dto.js.map +1 -1
  13. package/dist/dtos/update-setting.dto.d.ts +2 -15
  14. package/dist/dtos/update-setting.dto.d.ts.map +1 -1
  15. package/dist/dtos/update-setting.dto.js +6 -77
  16. package/dist/dtos/update-setting.dto.js.map +1 -1
  17. package/dist/dtos/update-settings.dto.d.ts +4 -0
  18. package/dist/dtos/update-settings.dto.d.ts.map +1 -0
  19. package/dist/dtos/update-settings.dto.js +26 -0
  20. package/dist/dtos/update-settings.dto.js.map +1 -0
  21. package/dist/entities/setting.entity.d.ts +2 -15
  22. package/dist/entities/setting.entity.d.ts.map +1 -1
  23. package/dist/entities/setting.entity.js +4 -65
  24. package/dist/entities/setting.entity.js.map +1 -1
  25. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  26. package/dist/seeders/module-metadata-seeder.service.js +1 -18
  27. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  28. package/dist/seeders/seed-data/solid-core-metadata.json +7 -174
  29. package/dist/services/authentication.service.d.ts +3 -1
  30. package/dist/services/authentication.service.d.ts.map +1 -1
  31. package/dist/services/authentication.service.js +11 -8
  32. package/dist/services/authentication.service.js.map +1 -1
  33. package/dist/services/setting.service.d.ts +4 -0
  34. package/dist/services/setting.service.d.ts.map +1 -1
  35. package/dist/services/setting.service.js +139 -7
  36. package/dist/services/setting.service.js.map +1 -1
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +1 -1
  39. package/src/config/iam.config.ts +1 -0
  40. package/src/controllers/setting.controller.ts +13 -1
  41. package/src/dtos/create-setting.dto.ts +10 -59
  42. package/src/dtos/update-setting.dto.ts +10 -60
  43. package/src/dtos/update-settings.dto.ts +7 -0
  44. package/src/entities/setting.entity.ts +8 -46
  45. package/src/seeders/module-metadata-seeder.service.ts +1 -19
  46. package/src/seeders/seed-data/solid-core-metadata.json +7 -174
  47. package/src/services/authentication.service.ts +8 -6
  48. package/src/services/setting.service.ts +163 -14
@@ -44,25 +44,77 @@ let SettingService = class SettingService extends crud_service_1.CRUDService {
44
44
  this.repo = repo;
45
45
  this.moduleRef = moduleRef;
46
46
  }
47
+ async seedDefaultSettings() {
48
+ const settingsSeederData = {
49
+ allowPublicRegistration: this.iamConfiguration.allowPublicRegistration,
50
+ iamPasswordRegistrationEnabled: this.iamConfiguration.iamPasswordRegistrationEnabled,
51
+ passwordlessRegistration: this.iamConfiguration.passwordlessRegistration,
52
+ activateUserOnRegistration: this.iamConfiguration.activateUserOnRegistration,
53
+ iamGoogleOAuthEnabled: false,
54
+ authPagesLayout: "center",
55
+ authPagesTheme: "light",
56
+ appTitle: process.env.SOLID_APP_NAME || "Solid App",
57
+ appLogo: "",
58
+ appDescription: "",
59
+ appTnc: "",
60
+ appPrivacyPolicy: "",
61
+ defaultRole: this.iamConfiguration.defaultRole,
62
+ shouldQueueEmails: this.commonConfiguration.shouldQueueEmails,
63
+ shouldQueueSms: this.commonConfiguration.shouldQueueSms
64
+ };
65
+ const existingSettings = await this.repo.find();
66
+ const existingKeys = new Set(existingSettings.map(s => s.key));
67
+ const settingsToInsert = [];
68
+ for (const [key, value] of Object.entries(settingsSeederData)) {
69
+ if (!existingKeys.has(key)) {
70
+ const setting = new setting_entity_1.Setting();
71
+ setting.key = key;
72
+ setting.value = typeof value === 'boolean' ? value.toString() :
73
+ Array.isArray(value) ? value.join(',') :
74
+ value === null || value === undefined ? '' : String(value);
75
+ settingsToInsert.push(setting);
76
+ }
77
+ }
78
+ if (settingsToInsert.length > 0) {
79
+ await this.repo.save(settingsToInsert);
80
+ }
81
+ }
47
82
  async wrapSettings() {
48
83
  const settingsArray = await this.repo.find();
49
84
  if (!settingsArray || settingsArray.length === 0) {
50
85
  return this.getDefaultSettings();
51
86
  }
52
- const settings = settingsArray[0];
87
+ const settingsMap = {};
88
+ for (const setting of settingsArray) {
89
+ if (setting.key && setting.value !== undefined && setting.value !== null) {
90
+ let value = setting.value;
91
+ if (value === 'true' || value === 'false') {
92
+ settingsMap[setting.key] = value === 'true';
93
+ }
94
+ else if (!isNaN(Number(value)) && value.trim() !== '') {
95
+ settingsMap[setting.key] = Number(value);
96
+ }
97
+ else if (value.includes(',')) {
98
+ settingsMap[setting.key] = value.split(',').map(item => item.trim());
99
+ }
100
+ else {
101
+ settingsMap[setting.key] = value;
102
+ }
103
+ }
104
+ }
53
105
  const defaultSettings = this.getDefaultSettings();
54
106
  const mergedSettings = Object.keys(defaultSettings).reduce((acc, key) => {
55
- acc[key] = settings[key] !== null && settings[key] !== undefined ? settings[key] : defaultSettings[key];
107
+ acc[key] = settingsMap[key] !== undefined ? settingsMap[key] : defaultSettings[key];
56
108
  return acc;
57
109
  }, {});
58
110
  return mergedSettings;
59
111
  }
60
112
  getDefaultSettings() {
61
113
  return {
62
- iamAllowPublicRegistration: this.iamConfiguration.allowPublicRegistration,
63
- iamPasswordRegistrationEnabled: false,
64
- iamPasswordLessRegistrationEnabled: this.iamConfiguration.passwordlessRegistration,
65
- iamActivateUserOnRegistration: this.iamConfiguration.activateUserOnRegistration,
114
+ allowPublicRegistration: this.iamConfiguration.allowPublicRegistration,
115
+ iamPasswordRegistrationEnabled: this.iamConfiguration.iamPasswordRegistrationEnabled,
116
+ passwordlessRegistration: this.iamConfiguration.passwordlessRegistration,
117
+ activateUserOnRegistration: this.iamConfiguration.activateUserOnRegistration,
66
118
  iamGoogleOAuthEnabled: false,
67
119
  authPagesLayout: "center",
68
120
  authPagesTheme: "light",
@@ -71,11 +123,91 @@ let SettingService = class SettingService extends crud_service_1.CRUDService {
71
123
  appDescription: "",
72
124
  appTnc: "",
73
125
  appPrivacyPolicy: "",
74
- iamDefaultRole: this.iamConfiguration.defaultRole,
126
+ defaultRole: this.iamConfiguration.defaultRole,
75
127
  shouldQueueEmails: this.commonConfiguration.shouldQueueEmails,
76
128
  shouldQueueSms: this.commonConfiguration.shouldQueueSms
77
129
  };
78
130
  }
131
+ async getConfigValue(settingKey) {
132
+ try {
133
+ const settingsArray = await this.repo.find();
134
+ const settingEntry = settingsArray.find(setting => setting.key === settingKey);
135
+ if (settingEntry && settingEntry.value !== null && settingEntry.value !== undefined) {
136
+ const value = settingEntry.value;
137
+ if (value === 'true' || value === 'false') {
138
+ return value === 'true';
139
+ }
140
+ else if (!isNaN(Number(value)) && value.trim() !== '') {
141
+ return Number(value);
142
+ }
143
+ else if (value.includes(',')) {
144
+ return value.split(',').map(item => item.trim());
145
+ }
146
+ else {
147
+ return value;
148
+ }
149
+ }
150
+ const defaultSettings = this.getDefaultSettings();
151
+ return defaultSettings[settingKey];
152
+ }
153
+ catch (error) {
154
+ const defaultSettings = this.getDefaultSettings();
155
+ return defaultSettings[settingKey];
156
+ }
157
+ }
158
+ async updateSettings(settings) {
159
+ const existingSettings = await this.repo.find();
160
+ const existingKeys = new Set(existingSettings.map(s => s.key));
161
+ const settingsToUpdate = [];
162
+ const settingsToCreate = [];
163
+ for (const [key, value] of Object.entries(settings)) {
164
+ const stringValue = typeof value === 'boolean' ? value.toString() :
165
+ Array.isArray(value) ? value.join(',') :
166
+ value === null || value === undefined ? '' : String(value);
167
+ if (existingKeys.has(key)) {
168
+ const existingSetting = existingSettings.find(s => s.key === key);
169
+ if (existingSetting) {
170
+ existingSetting.value = stringValue;
171
+ settingsToUpdate.push(existingSetting);
172
+ }
173
+ }
174
+ else {
175
+ const newSetting = new setting_entity_1.Setting();
176
+ newSetting.key = key;
177
+ newSetting.value = stringValue;
178
+ settingsToCreate.push(newSetting);
179
+ }
180
+ }
181
+ if (settingsToUpdate.length > 0) {
182
+ await this.repo.save(settingsToUpdate);
183
+ }
184
+ if (settingsToCreate.length > 0) {
185
+ await this.repo.save(settingsToCreate);
186
+ }
187
+ return [...settingsToUpdate, ...settingsToCreate];
188
+ }
189
+ async getAllSettings() {
190
+ const settingsArray = await this.repo.find();
191
+ const settingsMap = {};
192
+ for (const setting of settingsArray) {
193
+ if (setting.key && setting.value !== undefined && setting.value !== null) {
194
+ const value = setting.value;
195
+ if (value === 'true' || value === 'false') {
196
+ settingsMap[setting.key] = value === 'true';
197
+ }
198
+ else if (!isNaN(Number(value)) && value.trim() !== '') {
199
+ settingsMap[setting.key] = Number(value);
200
+ }
201
+ else if (value.includes(',')) {
202
+ settingsMap[setting.key] = value.split(',').map(item => item.trim());
203
+ }
204
+ else {
205
+ settingsMap[setting.key] = value;
206
+ }
207
+ }
208
+ }
209
+ return settingsMap;
210
+ }
79
211
  };
80
212
  exports.SettingService = SettingService;
81
213
  exports.SettingService = SettingService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"setting.service.js","sourceRoot":"","sources":["../../src/services/setting.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setting.service.js","sourceRoot":"","sources":["../../src/services/setting.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,uCAA2D;AAC3D,6CAAwE;AACxE,qCAAoD;AAEpD,2CAA2D;AAC3D,+DAAqE;AACrE,iDAAwD;AACxD,iDAAwD;AACxD,qEAA2E;AAC3E,uEAA6E;AAG7E,4EAAoD;AACpD,qDAAkD;AAClD,+DAAqD;AAG9C,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,0BAAoB;IACtD,YACW,oBAA0C,EAC1C,qBAA4C,EAC5C,aAA4B,EAC5B,WAAwB,EACxB,gBAAkC,EAClC,iBAAoC,EACL,gBAA8C,EAErE,mBAAoD,EAE5D,aAA4B,EAE5B,IAAyB,EACzB,SAAoB;QAG7B,KAAK,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAC1K,CAAC;QAjBO,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACL,qBAAgB,GAAhB,gBAAgB,CAA8B;QAErE,wBAAmB,GAAnB,mBAAmB,CAAiC;QAE5D,kBAAa,GAAb,aAAa,CAAe;QAE5B,SAAI,GAAJ,IAAI,CAAqB;QACzB,cAAS,GAAT,SAAS,CAAW;IAK/B,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,kBAAkB,GAAG;YACzB,uBAAuB,EAAE,IAAI,CAAC,gBAAgB,CAAC,uBAAuB;YACtE,8BAA8B,EAAE,IAAI,CAAC,gBAAgB,CAAC,8BAA8B;YACpF,wBAAwB,EAAE,IAAI,CAAC,gBAAgB,CAAC,wBAAwB;YACxE,0BAA0B,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B;YAC5E,qBAAqB,EAAE,KAAK;YAC5B,eAAe,EAAE,QAAQ;YACzB,cAAc,EAAE,OAAO;YACvB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW;YACnD,OAAO,EAAE,EAAE;YACX,cAAc,EAAE,EAAE;YAClB,MAAM,EAAE,EAAE;YACV,gBAAgB,EAAE,EAAE;YACpB,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW;YAC9C,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB;YAC7D,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,cAAc;SACxD,CAAC;QAEF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/D,MAAM,gBAAgB,GAAc,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,IAAI,wBAAO,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;gBAClB,OAAO,CAAC,KAAK,GAAG,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC/C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;wBACxC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3E,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,aAAa,GAAc,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAExD,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACnC,CAAC;QAED,MAAM,WAAW,GAAwB,EAAE,CAAC;QAC5C,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACzE,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAE1B,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBAC1C,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC;gBAC9C,CAAC;qBACI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACtD,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3C,CAAC;qBACI,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvE,CAAC;qBACI,CAAC;oBACJ,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAElD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACtE,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACpF,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAyB,CAAC,CAAC;QAE9B,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,kBAAkB;QACxB,OAAO;YACL,uBAAuB,EAAE,IAAI,CAAC,gBAAgB,CAAC,uBAAuB;YACtE,8BAA8B,EAAE,IAAI,CAAC,gBAAgB,CAAC,8BAA8B;YACpF,wBAAwB,EAAE,IAAI,CAAC,gBAAgB,CAAC,wBAAwB;YACxE,0BAA0B,EAAE,IAAI,CAAC,gBAAgB,CAAC,0BAA0B;YAC5E,qBAAqB,EAAE,KAAK;YAC5B,eAAe,EAAE,QAAQ;YACzB,cAAc,EAAE,OAAO;YACvB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW;YACnD,OAAO,EAAE,EAAE;YACX,cAAc,EAAE,EAAE;YAClB,MAAM,EAAE,EAAE;YACV,gBAAgB,EAAE,EAAE;YACpB,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW;YAC9C,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB;YAC7D,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,cAAc;SACxD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,UAAkB;QACrC,IAAI,CAAC;YACD,MAAM,aAAa,GAAc,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;YAE/E,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,KAAK,IAAI,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAClF,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;gBAEjC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBACxC,OAAO,KAAK,KAAK,MAAM,CAAC;gBAC5B,CAAC;qBACI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACpD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC;qBACI,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrD,CAAC;qBACI,CAAC;oBACF,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClD,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClD,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAA6B;QAChD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/D,MAAM,gBAAgB,GAAc,EAAE,CAAC;QACvC,MAAM,gBAAgB,GAAc,EAAE,CAAC;QAEvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAChD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAE9E,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;gBAClE,IAAI,eAAe,EAAE,CAAC;oBACpB,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC;oBACpC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,IAAI,wBAAO,EAAE,CAAC;gBACjC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC;gBACrB,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC;gBAC/B,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,CAAC,GAAG,gBAAgB,EAAE,GAAG,gBAAgB,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAwB,EAAE,CAAC;QAE5C,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACzE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAE5B,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBAC1C,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC;gBAC9C,CAAC;qBACI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACtD,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3C,CAAC;qBACI,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvE,CAAC;qBACI,CAAC;oBACJ,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAA;AAlNY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,eAAM,EAAC,sBAAS,CAAC,GAAG,CAAC,CAAA;IACrB,WAAA,IAAA,eAAM,EAAC,uBAAY,CAAC,GAAG,CAAC,CAAA;IAExB,WAAA,IAAA,6BAAmB,GAAE,CAAA;IAErB,WAAA,IAAA,0BAAgB,EAAC,wBAAO,EAAE,SAAS,CAAC,CAAA;qCAXN,6CAAoB;QACnB,+CAAqB;QAC7B,sBAAa;QACf,0BAAW;QACN,uBAAgB;QACf,uCAAiB,kBAKrB,uBAAa;QAEtB,oBAAU;QACL,gBAAS;GAfpB,cAAc,CAkN1B"}