@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.
- package/dist/config/iam.config.d.ts +2 -0
- package/dist/config/iam.config.d.ts.map +1 -1
- package/dist/config/iam.config.js +1 -0
- package/dist/config/iam.config.js.map +1 -1
- package/dist/controllers/setting.controller.d.ts +3 -0
- package/dist/controllers/setting.controller.d.ts.map +1 -1
- package/dist/controllers/setting.controller.js +23 -0
- package/dist/controllers/setting.controller.js.map +1 -1
- package/dist/dtos/create-setting.dto.d.ts +2 -15
- package/dist/dtos/create-setting.dto.d.ts.map +1 -1
- package/dist/dtos/create-setting.dto.js +6 -77
- package/dist/dtos/create-setting.dto.js.map +1 -1
- package/dist/dtos/update-setting.dto.d.ts +2 -15
- package/dist/dtos/update-setting.dto.d.ts.map +1 -1
- package/dist/dtos/update-setting.dto.js +6 -77
- package/dist/dtos/update-setting.dto.js.map +1 -1
- package/dist/dtos/update-settings.dto.d.ts +4 -0
- package/dist/dtos/update-settings.dto.d.ts.map +1 -0
- package/dist/dtos/update-settings.dto.js +26 -0
- package/dist/dtos/update-settings.dto.js.map +1 -0
- package/dist/entities/setting.entity.d.ts +2 -15
- package/dist/entities/setting.entity.d.ts.map +1 -1
- package/dist/entities/setting.entity.js +4 -65
- package/dist/entities/setting.entity.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +1 -18
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +7 -174
- package/dist/services/authentication.service.d.ts +3 -1
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +11 -8
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/setting.service.d.ts +4 -0
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +139 -7
- package/dist/services/setting.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/config/iam.config.ts +1 -0
- package/src/controllers/setting.controller.ts +13 -1
- package/src/dtos/create-setting.dto.ts +10 -59
- package/src/dtos/update-setting.dto.ts +10 -60
- package/src/dtos/update-settings.dto.ts +7 -0
- package/src/entities/setting.entity.ts +8 -46
- package/src/seeders/module-metadata-seeder.service.ts +1 -19
- package/src/seeders/seed-data/solid-core-metadata.json +7 -174
- package/src/services/authentication.service.ts +8 -6
- 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
|
|
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] =
|
|
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
|
-
|
|
63
|
-
iamPasswordRegistrationEnabled:
|
|
64
|
-
|
|
65
|
-
|
|
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
|
-
|
|
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":";;;;;;;;;;;;;;;;;;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,YAAY;QAChB,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"setting.service.js","sourceRoot":"","sources":["../../src/services/setting.service.ts"],"names":[],"mappings":"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"}
|