@social-mail/social-mail-web-server 1.4.803 → 1.4.805
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/server/model/entities/Configuration.d.ts +6 -0
- package/dist/server/model/entities/Configuration.d.ts.map +1 -1
- package/dist/server/model/entities/Configuration.js +20 -0
- package/dist/server/model/entities/Configuration.js.map +1 -1
- package/dist/server/model/events/ConfigurationEvents.d.ts +1 -0
- package/dist/server/model/events/ConfigurationEvents.d.ts.map +1 -1
- package/dist/server/model/events/ConfigurationEvents.js +13 -0
- package/dist/server/model/events/ConfigurationEvents.js.map +1 -1
- package/dist/server/seed/ui/seed-ui.js +2 -2
- package/dist/server/seed/ui/seed-ui.js.map +1 -1
- package/dist/server/services/DBConfig.d.ts +10 -5
- package/dist/server/services/DBConfig.d.ts.map +1 -1
- package/dist/server/services/DBConfig.js +29 -31
- package/dist/server/services/DBConfig.js.map +1 -1
- package/dist/server/services/ui/renderUIClient.js +1 -1
- package/dist/server/services/ui/renderUIClient.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/wwwroot/routes/callback/smtp/otp-in/textlocal.in/post.d.ts +7 -0
- package/dist/wwwroot/routes/callback/smtp/otp-in/textlocal.in/post.d.ts.map +1 -0
- package/dist/wwwroot/routes/callback/smtp/otp-in/textlocal.in/post.js +34 -0
- package/dist/wwwroot/routes/callback/smtp/otp-in/textlocal.in/post.js.map +1 -0
- package/dist/wwwroot/routes/pwa/index.js +1 -1
- package/dist/wwwroot/routes/pwa/index.js.map +1 -1
- package/dist/wwwroot/routes/pwa/manifest.json/index.js +1 -1
- package/dist/wwwroot/routes/pwa/manifest.json/index.js.map +1 -1
- package/dist/wwwroot/routes/pwa-sw.js/index.js +1 -1
- package/dist/wwwroot/routes/pwa-sw.js/index.js.map +1 -1
- package/package.json +2 -2
- package/src/server/model/entities/Configuration.ts +18 -0
- package/src/server/model/events/ConfigurationEvents.ts +13 -0
- package/src/server/seed/ui/seed-ui.ts +2 -2
- package/src/server/services/DBConfig.ts +31 -33
- package/src/server/services/ui/renderUIClient.tsx +1 -1
- package/src/wwwroot/routes/callback/smtp/otp-in/textlocal.in/post.tsx +25 -0
- package/src/wwwroot/routes/pwa/index.ts +1 -1
- package/src/wwwroot/routes/pwa/manifest.json/index.ts +1 -1
- package/src/wwwroot/routes/pwa-sw.js/index.ts +1 -1
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
|
|
1
2
|
export default class Configuration<T = any> {
|
|
2
3
|
name: string;
|
|
4
|
+
username: string;
|
|
5
|
+
password: string;
|
|
6
|
+
savePassword: string;
|
|
7
|
+
dateUpdated: DateTime;
|
|
8
|
+
decryptedPassword: string;
|
|
3
9
|
get value(): T;
|
|
4
10
|
set value(v: T);
|
|
5
11
|
private configValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Configuration.d.ts","sourceRoot":"","sources":["../../../../src/server/model/entities/Configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Configuration.d.ts","sourceRoot":"","sources":["../../../../src/server/model/entities/Configuration.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAI3E,MAAM,CAAC,OAAO,OAAO,aAAa,CAAC,CAAC,GAAG,GAAG;IAGtC,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,EAAE,MAAM,CAAC;IAIjB,QAAQ,EAAE,MAAM,CAAC;IAGjB,YAAY,EAAE,MAAM,CAAC;IAGrB,WAAW,EAAE,QAAQ,CAAC;IAEtB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,IAAW,KAAK,IAAI,CAAC,CAEpB;IAED,IAAW,KAAK,CAAC,CAAC,EAAE,CAAC,EAEpB;IAGD,OAAO,CAAC,WAAW,CAAS;CAE/B"}
|
|
@@ -9,6 +9,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import Column from "@entity-access/entity-access/dist/decorators/Column.js";
|
|
11
11
|
import Table from "@entity-access/entity-access/dist/decorators/Table.js";
|
|
12
|
+
import Sql from "@entity-access/entity-access/dist/sql/Sql.js";
|
|
13
|
+
import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
|
|
14
|
+
import { IgnoreJsonProperty, JsonProperty } from "@entity-access/server-pages/dist/services/ModelService.js";
|
|
12
15
|
let Configuration = class Configuration {
|
|
13
16
|
get value() {
|
|
14
17
|
return (this.configValue && JSON.parse(this.configValue)) || null;
|
|
@@ -21,6 +24,23 @@ __decorate([
|
|
|
21
24
|
Column({ key: true, dataType: "Char", length: 200 }),
|
|
22
25
|
__metadata("design:type", String)
|
|
23
26
|
], Configuration.prototype, "name", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
Column({ nullable: true }),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], Configuration.prototype, "username", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
Column({ nullable: true }),
|
|
33
|
+
IgnoreJsonProperty,
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], Configuration.prototype, "password", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
JsonProperty(),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], Configuration.prototype, "savePassword", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
Column({ default: () => Sql.date.now() }),
|
|
42
|
+
__metadata("design:type", DateTime)
|
|
43
|
+
], Configuration.prototype, "dateUpdated", void 0);
|
|
24
44
|
__decorate([
|
|
25
45
|
Column({ dataType: "Char", columnName: "value", nullable: true }),
|
|
26
46
|
__metadata("design:type", String)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../../../src/server/model/entities/Configuration.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,wDAAwD,CAAC;AAC5E,OAAO,KAAK,MAAM,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../../../src/server/model/entities/Configuration.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,wDAAwD,CAAC;AAC5E,OAAO,KAAK,MAAM,uDAAuD,CAAC;AAC1E,OAAO,GAAG,MAAM,8CAA8C,CAAC;AAC/D,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;AAG9F,IAAM,aAAa,GAAnB,MAAM,aAAa;IAoB9B,IAAW,KAAK;QACZ,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC;IACtE,CAAC;IAED,IAAW,KAAK,CAAC,CAAI;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;CAKJ,CAAA;AA5BG;IADC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC;;2CACvC;AAGb;IADC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACV;AAIjB;IAFC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,kBAAkB;;+CACF;AAGjB;IADC,YAAY,EAAE;;mDACM;AAGrB;IADC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAC,CAAC;8BAC5B,QAAQ;kDAAC;AAad;IADP,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;;kDACrC;AA7BX,aAAa;IADjC,KAAK,CAAC,eAAe,CAAC;GACF,aAAa,CA+BjC;eA/BoB,aAAa"}
|
|
@@ -9,5 +9,6 @@ export default class ConfigurationEvents extends AuthenticatedEvents<Configurati
|
|
|
9
9
|
beforeInsert(entity: Configuration, entry: ChangeEntry): void | Promise<void>;
|
|
10
10
|
beforeUpdate(entity: Configuration, entry: ChangeEntry): void | Promise<void>;
|
|
11
11
|
beforeDelete(entity: Configuration, entry: ChangeEntry): void | Promise<void>;
|
|
12
|
+
encryptPassword(entity: Configuration<any>): void;
|
|
12
13
|
}
|
|
13
14
|
//# sourceMappingURL=ConfigurationEvents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigurationEvents.d.ts","sourceRoot":"","sources":["../../../../src/server/model/events/ConfigurationEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iEAAiE,CAAC;AAC/F,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,WAAW,MAAM,gEAAgE,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigurationEvents.d.ts","sourceRoot":"","sources":["../../../../src/server/model/events/ConfigurationEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iEAAiE,CAAC;AAC/F,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,WAAW,MAAM,gEAAgE,CAAC;AAKzF,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAE/E,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC;IAKvE,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC;IAKvE,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC;IAKvE,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7E,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7E,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7E,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC;CAK7C"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import AuthenticatedEvents from "./AuthenticatedEvents.js";
|
|
2
|
+
import EntityAccessError from "@entity-access/entity-access/dist/common/EntityAccessError.js";
|
|
3
|
+
import { ServiceProvider } from "@entity-access/entity-access/dist/di/di.js";
|
|
4
|
+
import EncryptionService from "../../services/encryption/EncryptionService.js";
|
|
2
5
|
export default class ConfigurationEvents extends AuthenticatedEvents {
|
|
3
6
|
filter(query) {
|
|
4
7
|
this.sessionUser.ensureIsAdmin();
|
|
@@ -14,12 +17,22 @@ export default class ConfigurationEvents extends AuthenticatedEvents {
|
|
|
14
17
|
}
|
|
15
18
|
beforeInsert(entity, entry) {
|
|
16
19
|
this.sessionUser.ensureIsAdmin();
|
|
20
|
+
this.encryptPassword(entity);
|
|
17
21
|
}
|
|
18
22
|
beforeUpdate(entity, entry) {
|
|
19
23
|
this.sessionUser.ensureIsAdmin();
|
|
24
|
+
if (entry.isModified("password")) {
|
|
25
|
+
throw new EntityAccessError(`Password cannot be modified`);
|
|
26
|
+
}
|
|
27
|
+
this.encryptPassword(entity);
|
|
20
28
|
}
|
|
21
29
|
beforeDelete(entity, entry) {
|
|
22
30
|
this.sessionUser.ensureIsAdmin();
|
|
23
31
|
}
|
|
32
|
+
encryptPassword(entity) {
|
|
33
|
+
if (entity.savePassword) {
|
|
34
|
+
entity.password = ServiceProvider.resolve(this, EncryptionService).encrypt(entity.savePassword);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
24
37
|
}
|
|
25
38
|
//# sourceMappingURL=ConfigurationEvents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigurationEvents.js","sourceRoot":"","sources":["../../../../src/server/model/events/ConfigurationEvents.ts"],"names":[],"mappings":"AAEA,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigurationEvents.js","sourceRoot":"","sources":["../../../../src/server/model/events/ConfigurationEvents.ts"],"names":[],"mappings":"AAEA,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,OAAO,iBAAiB,MAAM,+DAA+D,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,iBAAiB,MAAM,gDAAgD,CAAC;AAE/E,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,mBAAkC;IAE/E,MAAM,CAAC,KAAkC;QACrC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAkC;QACrC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAkC;QACrC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,YAAY,CAAC,MAAqB,EAAE,KAAkB;QAClD,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,YAAY,CAAC,MAAqB,EAAE,KAAkB;QAClD,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,iBAAiB,CAAC,6BAA6B,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,YAAY,CAAC,MAAqB,EAAE,KAAkB;QAClD,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,MAA0B;QACtC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,CAAC,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACpG,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { UIPackageConfig } from "../../services/DBConfig.js";
|
|
2
2
|
import semver from "semver";
|
|
3
3
|
export default async function seedUI(config) {
|
|
4
|
-
const version = "1.2.
|
|
5
|
-
const existing = await config.
|
|
4
|
+
const version = "1.2.315";
|
|
5
|
+
const existing = await config.getValue(UIPackageConfig, false);
|
|
6
6
|
if (existing) {
|
|
7
7
|
if (semver.gte(existing.version, version)) {
|
|
8
8
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed-ui.js","sourceRoot":"","sources":["../../../../src/server/seed/ui/seed-ui.ts"],"names":[],"mappings":"AAAA,OAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,MAAM,CAAC,MAAgB;IAEjD,MAAM,OAAO,GAAG,SAAS,CAAC;IAE1B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"seed-ui.js","sourceRoot":"","sources":["../../../../src/server/seed/ui/seed-ui.ts"],"names":[],"mappings":"AAAA,OAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,MAAM,CAAC,MAAgB;IAEjD,MAAM,OAAO,GAAG,SAAS,CAAC;IAE1B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAC/D,IAAI,QAAQ,EAAE,CAAC;QACX,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACxC,OAAO;QACX,CAAC;IACL,CAAC;IACD,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;QAC/B,OAAO,EAAE,iCAAiC;QAC1C,IAAI,EAAE,mBAAmB;QACzB,OAAO;KACV,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -5,8 +5,10 @@ export declare class UIPackageConfig {
|
|
|
5
5
|
version: string;
|
|
6
6
|
view: string;
|
|
7
7
|
}
|
|
8
|
+
export declare class CredentialsConfig {
|
|
9
|
+
}
|
|
8
10
|
export declare class ConfigItem<T> {
|
|
9
|
-
|
|
11
|
+
readonly item: Configuration;
|
|
10
12
|
private config;
|
|
11
13
|
private type;
|
|
12
14
|
get value(): Partial<T>;
|
|
@@ -16,9 +18,12 @@ export declare class ConfigItem<T> {
|
|
|
16
18
|
}
|
|
17
19
|
export default class DBConfig {
|
|
18
20
|
private context;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
private encryptionService;
|
|
22
|
+
getOrCreate<T>(type: IClassOf<T>, defaults?: Partial<T>, name?: string): Promise<ConfigItem<T>>;
|
|
23
|
+
get<T>(type: IClassOf<T>, throwIfNotFound?: boolean, name?: string): Promise<ConfigItem<T>>;
|
|
24
|
+
getValue<T>(type: IClassOf<T>, throwIfNotFound?: boolean, name?: string): Promise<Partial<T>>;
|
|
25
|
+
set<T>(values: T): Promise<ConfigItem<unknown>>;
|
|
26
|
+
seed<T>(c: IClassOf<T>, values: Partial<T>, name?: string): Promise<ConfigItem<T>>;
|
|
27
|
+
save<T>(type: IClassOf<T>, values: Partial<T>, seed?: boolean, name?: string): Promise<ConfigItem<T>>;
|
|
23
28
|
}
|
|
24
29
|
//# sourceMappingURL=DBConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DBConfig.d.ts","sourceRoot":"","sources":["../../../src/server/services/DBConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0DAA0D,CAAC;AAIpF,OAAO,aAAa,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"DBConfig.d.ts","sourceRoot":"","sources":["../../../src/server/services/DBConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0DAA0D,CAAC;AAIpF,OAAO,aAAa,MAAM,oCAAoC,CAAC;AAG/D,qBAAa,eAAe;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,iBAAiB;CAC7B;AAED,qBAAa,UAAU,CAAC,CAAC;aAWD,IAAI,EAAE,aAAa;IACnC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IAXhB,IAAW,KAAK,IAII,OAAO,CAAC,CAAC,CAAC,CAF7B;IAED,IAAW,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAE7B;gBAGmB,IAAI,EAAE,aAAa,EAC3B,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAKhB,MAAM;CAGtB;AAGD,MAAM,CAAC,OAAO,OAAO,QAAQ;IAIzB,OAAO,CAAC,OAAO,CAAoB;IAGnC,OAAO,CAAC,iBAAiB,CAAoB;IAEhC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAE,OAAO,CAAC,CAAC,CAAM,EAAE,IAAI,SAAY;IAS7E,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,UAAO,EAAE,IAAI,SAAY;IAYlE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,UAAO,EAAE,IAAI,SAAY;IAIvE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IAQhB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS;IAIzD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,UAAQ,EAAE,IAAI,SAAY;CAc7F"}
|
|
@@ -10,8 +10,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import Inject, { RegisterScoped } from "@entity-access/entity-access/dist/di/di.js";
|
|
11
11
|
import SocialMailContext from "../model/SocialMailContext.js";
|
|
12
12
|
import EntityAccessError from "@entity-access/entity-access/dist/common/EntityAccessError.js";
|
|
13
|
+
import EncryptionService from "./encryption/EncryptionService.js";
|
|
13
14
|
export class UIPackageConfig {
|
|
14
15
|
}
|
|
16
|
+
export class CredentialsConfig {
|
|
17
|
+
}
|
|
15
18
|
export class ConfigItem {
|
|
16
19
|
get value() {
|
|
17
20
|
return this.item.value;
|
|
@@ -29,26 +32,15 @@ export class ConfigItem {
|
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
34
|
let DBConfig = class DBConfig {
|
|
32
|
-
async getOrCreate(type, defaults = {}) {
|
|
33
|
-
const name = type.name;
|
|
35
|
+
async getOrCreate(type, defaults = {}, name = type.name) {
|
|
34
36
|
const c = await this.context.configurations.statements.selectOrInsert({
|
|
35
37
|
name,
|
|
36
|
-
configValue:
|
|
38
|
+
configValue: JSON.stringify(defaults, void 0, 4)
|
|
37
39
|
});
|
|
38
|
-
|
|
39
|
-
// keys: {
|
|
40
|
-
// name
|
|
41
|
-
// },
|
|
42
|
-
// mode: "selectOrInsert",
|
|
43
|
-
// changes: {
|
|
44
|
-
// name,
|
|
45
|
-
// configValue: "{}"
|
|
46
|
-
// } as any
|
|
47
|
-
// });
|
|
40
|
+
c.decryptedPassword = this.encryptionService.decrypt(c.password);
|
|
48
41
|
return new ConfigItem(c, this, type);
|
|
49
42
|
}
|
|
50
|
-
async get(type, throwIfNotFound = true) {
|
|
51
|
-
const name = type.name;
|
|
43
|
+
async get(type, throwIfNotFound = true, name = type.name) {
|
|
52
44
|
const c = await this.context.configurations.where({ name }, (p) => (x) => x.name === p.name).first();
|
|
53
45
|
if (!c) {
|
|
54
46
|
if (throwIfNotFound) {
|
|
@@ -56,7 +48,11 @@ let DBConfig = class DBConfig {
|
|
|
56
48
|
}
|
|
57
49
|
return null;
|
|
58
50
|
}
|
|
59
|
-
|
|
51
|
+
c.decryptedPassword = this.encryptionService.decrypt(c.password);
|
|
52
|
+
return new ConfigItem(c, this, type);
|
|
53
|
+
}
|
|
54
|
+
async getValue(type, throwIfNotFound = true, name = type.name) {
|
|
55
|
+
return (await this.get(type, throwIfNotFound, name)).value;
|
|
60
56
|
}
|
|
61
57
|
async set(values) {
|
|
62
58
|
const c = Object.getPrototypeOf(values)?.constructor;
|
|
@@ -65,30 +61,32 @@ let DBConfig = class DBConfig {
|
|
|
65
61
|
}
|
|
66
62
|
return this.save(c, values);
|
|
67
63
|
}
|
|
68
|
-
async
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
});
|
|
75
|
-
await this.context.saveChanges();
|
|
64
|
+
async seed(c, values, name = c.name) {
|
|
65
|
+
return this.save(c, values, true, name);
|
|
66
|
+
}
|
|
67
|
+
async save(type, values, seed = false, name = type.name) {
|
|
68
|
+
let config;
|
|
69
|
+
if (seed) {
|
|
70
|
+
config = await this.context.configurations.statements.selectOrInsert({ name, configValue: JSON.stringify(values, void 0, 4) }, { name });
|
|
76
71
|
}
|
|
77
72
|
else {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
73
|
+
config = await this.context.configurations.statements.upsert({
|
|
74
|
+
name,
|
|
75
|
+
configValue: JSON.stringify(values, void 0, 4)
|
|
76
|
+
}, void 0, { name });
|
|
81
77
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
.update(config, (p) => (x) => ({ configValue: p.configValue }));
|
|
85
|
-
return c;
|
|
78
|
+
const ci = new ConfigItem(config, this, type);
|
|
79
|
+
return ci;
|
|
86
80
|
}
|
|
87
81
|
};
|
|
88
82
|
__decorate([
|
|
89
83
|
Inject,
|
|
90
84
|
__metadata("design:type", SocialMailContext)
|
|
91
85
|
], DBConfig.prototype, "context", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
Inject,
|
|
88
|
+
__metadata("design:type", EncryptionService)
|
|
89
|
+
], DBConfig.prototype, "encryptionService", void 0);
|
|
92
90
|
DBConfig = __decorate([
|
|
93
91
|
RegisterScoped
|
|
94
92
|
], DBConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DBConfig.js","sourceRoot":"","sources":["../../../src/server/services/DBConfig.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAC9D,OAAO,iBAAiB,MAAM,+DAA+D,CAAC;
|
|
1
|
+
{"version":3,"file":"DBConfig.js","sourceRoot":"","sources":["../../../src/server/services/DBConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { globalEnv } from "../../../common/globalEnv.js";
|
|
|
7
7
|
import DBConfig, { UIPackageConfig } from "../DBConfig.js";
|
|
8
8
|
export const renderUIClient = async (page, view) => {
|
|
9
9
|
const config = ServiceProvider.resolve(page, DBConfig);
|
|
10
|
-
const uiPackage = await config.
|
|
10
|
+
const uiPackage = await config.getValue(UIPackageConfig);
|
|
11
11
|
const uiVersion = page.query?.["ui-version"] ?? uiPackage.version;
|
|
12
12
|
// const packageRoot = `https://www.unpkg.com/${uiPackage.package}@${uiVersion}`;
|
|
13
13
|
const packageRoot = `https://cdn.jsdelivr.net/npm/${uiPackage.package}@${uiVersion}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderUIClient.js","sourceRoot":"","sources":["../../../../src/server/services/ui/renderUIClient.tsx"],"names":[],"mappings":"AAAA,OAAe,EAAqB,eAAe,EAAE,MAAM,4CAA4C,CAAC;AACxG,OAAO,OAAO,MAAM,6CAA6C,CAAC;AAClE,OAAO,YAAY,MAAM,uDAAuD,CAAC;AACjF,OAAO,YAAY,MAAM,uDAAuD,CAAC;AACjF,OAAO,KAAK,MAAM,gDAAgD,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,QAAQ,EAAE,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAG3D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,IAAU,EAAE,IAAa,EAAG,EAAE;IAE/D,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEvD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"renderUIClient.js","sourceRoot":"","sources":["../../../../src/server/services/ui/renderUIClient.tsx"],"names":[],"mappings":"AAAA,OAAe,EAAqB,eAAe,EAAE,MAAM,4CAA4C,CAAC;AACxG,OAAO,OAAO,MAAM,6CAA6C,CAAC;AAClE,OAAO,YAAY,MAAM,uDAAuD,CAAC;AACjF,OAAO,YAAY,MAAM,uDAAuD,CAAC;AACjF,OAAO,KAAK,MAAM,gDAAgD,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,QAAQ,EAAE,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAG3D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,IAAU,EAAE,IAAa,EAAG,EAAE;IAE/D,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEvD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAEzD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC;IAElE,iFAAiF;IACjF,MAAM,WAAW,GAAG,gCAAgC,SAAS,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;IAErF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACnD,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAE7D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,EAAE,EAAE;YACA,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,SAAS;SACrB;QACD,MAAM,EAAE;YACJ,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,oBAAoB;SAChC;KACJ,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,IAAI,CAAC,aAAC,YAAY;QAC7B;YACI,uBAAM,OAAO,EAAC,OAAO,GAAE;YACvB,uBAAM,IAAI,EAAC,UAAU,EAAC,OAAO,EAAC,+FAA+F,GAAE;YAC/H,4BAAQ,SAAS,CAAC,IAAI,CAAS;YAC/B;;gBACsB,UAAU;;gBACV,IAAI,CAAC,SAAS,CAAC;oBAC7B,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,GAAG,EAAE,SAAS,CAAC,GAAG;oBAClB,aAAa,EAAE,SAAS,CAAC,aAAa;iBACzC,CAAC;oBACG;YACT,uBAAM,GAAG,EAAC,UAAU,EAAC,IAAI,EAAC,oBAAoB,GAAE;YAChD,4BACK;;;;kBAIC,CACE,CACL;QACP;YACI,aAAC,YAAY,OAAE;YACf,sBAAK,EAAE,EAAC,gBAAgB,EAAC,KAAK,EAAC,wFAAwF;gBACnH,sBAAK,KAAK,EAAC,iFAAiF,iBAEtF,CACJ;YAEN,yCACkB,SAAS,CAAC,OAAO,uBACZ,WAAW,eACnB,IAAI,IAAI,SAAS,CAAC,IAAI,EACjC,GAAG,EAAE,GAAG,WAAW,WAAW,GACpB,CACX,CACI,CAAC,CAAC;AACrB,CAAC,CAAC"}
|