manifest 5.8.0 → 5.9.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.
- package/dist/backend/analytics/controllers/agents.controller.js +3 -0
- package/dist/backend/analytics/controllers/agents.controller.js.map +1 -1
- package/dist/backend/database/database.module.js +6 -0
- package/dist/backend/database/database.module.js.map +1 -1
- package/dist/backend/database/migrations/1771700000000-EmailProviderConfigs.d.ts +6 -0
- package/dist/backend/database/migrations/1771700000000-EmailProviderConfigs.js +31 -0
- package/dist/backend/database/migrations/1771700000000-EmailProviderConfigs.js.map +1 -0
- package/dist/backend/database/migrations/1771800000000-AddNotificationEmailAndOptionalDomain.d.ts +6 -0
- package/dist/backend/database/migrations/1771800000000-AddNotificationEmailAndOptionalDomain.js +16 -0
- package/dist/backend/database/migrations/1771800000000-AddNotificationEmailAndOptionalDomain.js.map +1 -0
- package/dist/backend/entities/email-provider-config.entity.d.ts +11 -0
- package/dist/backend/entities/email-provider-config.entity.js +67 -0
- package/dist/backend/entities/email-provider-config.entity.js.map +1 -0
- package/dist/backend/notifications/dto/set-email-provider.dto.d.ts +12 -0
- package/dist/backend/notifications/dto/set-email-provider.dto.js +76 -0
- package/dist/backend/notifications/dto/set-email-provider.dto.js.map +1 -0
- package/dist/backend/notifications/notifications.controller.d.ts +36 -1
- package/dist/backend/notifications/notifications.controller.js +104 -4
- package/dist/backend/notifications/notifications.controller.js.map +1 -1
- package/dist/backend/notifications/notifications.module.js +2 -0
- package/dist/backend/notifications/notifications.module.js.map +1 -1
- package/dist/backend/notifications/services/email-provider-config.service.d.ts +43 -0
- package/dist/backend/notifications/services/email-provider-config.service.js +156 -0
- package/dist/backend/notifications/services/email-provider-config.service.js.map +1 -0
- package/dist/backend/notifications/services/email-provider-validation.d.ts +10 -0
- package/dist/backend/notifications/services/email-provider-validation.js +39 -0
- package/dist/backend/notifications/services/email-provider-validation.js.map +1 -0
- package/dist/backend/notifications/services/notification-cron.service.d.ts +3 -1
- package/dist/backend/notifications/services/notification-cron.service.js +11 -3
- package/dist/backend/notifications/services/notification-cron.service.js.map +1 -1
- package/dist/backend/notifications/services/notification-email.service.d.ts +5 -1
- package/dist/backend/notifications/services/notification-email.service.js +21 -2
- package/dist/backend/notifications/services/notification-email.service.js.map +1 -1
- package/dist/index.js +2 -2
- package/package.json +1 -1
- package/public/assets/index-TCQMdxIL.js +7 -0
- package/public/assets/index-nMEuPURg.css +1 -0
- package/public/index.html +2 -2
- package/public/logos/mailgun.svg +13 -0
- package/public/logos/resend.svg +4 -0
- package/public/logos/sendgrid.svg +18 -0
- package/public/assets/EmailProviderConfig-epdTuKJu.js +0 -1
- package/public/assets/NotificationEmailSection-BRwt_15v.js +0 -1
- package/public/assets/index-BZTRuQmX.css +0 -1
- package/public/assets/index-DFS0O5rP.js +0 -7
|
@@ -65,6 +65,9 @@ let AgentsController = class AgentsController {
|
|
|
65
65
|
return { apiKey: result.apiKey };
|
|
66
66
|
}
|
|
67
67
|
async deleteAgent(user, agentName) {
|
|
68
|
+
if (process.env['MANIFEST_MODE'] === 'local') {
|
|
69
|
+
throw new common_1.ForbiddenException('Cannot delete agents in local mode');
|
|
70
|
+
}
|
|
68
71
|
await this.aggregation.deleteAgent(user.id, agentName);
|
|
69
72
|
return { deleted: true };
|
|
70
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.controller.js","sourceRoot":"","sources":["../../../src/analytics/controllers/agents.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"agents.controller.js","sourceRoot":"","sources":["../../../src/analytics/controllers/agents.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ const agent_entity_1 = require("../entities/agent.entity");
|
|
|
27
27
|
const agent_api_key_entity_1 = require("../entities/agent-api-key.entity");
|
|
28
28
|
const notification_rule_entity_1 = require("../entities/notification-rule.entity");
|
|
29
29
|
const notification_log_entity_1 = require("../entities/notification-log.entity");
|
|
30
|
+
const email_provider_config_entity_1 = require("../entities/email-provider-config.entity");
|
|
30
31
|
const user_provider_entity_1 = require("../entities/user-provider.entity");
|
|
31
32
|
const tier_assignment_entity_1 = require("../entities/tier-assignment.entity");
|
|
32
33
|
const database_seeder_service_1 = require("./database-seeder.service");
|
|
@@ -35,6 +36,8 @@ const model_prices_module_1 = require("../model-prices/model-prices.module");
|
|
|
35
36
|
const _1771464895790_InitialSchema_1 = require("./migrations/1771464895790-InitialSchema");
|
|
36
37
|
const _1771500000000_HashApiKeys_1 = require("./migrations/1771500000000-HashApiKeys");
|
|
37
38
|
const _1771600000000_ModelPricingImprovements_1 = require("./migrations/1771600000000-ModelPricingImprovements");
|
|
39
|
+
const _1771700000000_EmailProviderConfigs_1 = require("./migrations/1771700000000-EmailProviderConfigs");
|
|
40
|
+
const _1771800000000_AddNotificationEmailAndOptionalDomain_1 = require("./migrations/1771800000000-AddNotificationEmailAndOptionalDomain");
|
|
38
41
|
const _1771600000000_AddModelCapabilities_1 = require("./migrations/1771600000000-AddModelCapabilities");
|
|
39
42
|
const _1771700000000_AddRoutingTables_1 = require("./migrations/1771700000000-AddRoutingTables");
|
|
40
43
|
const _1771800000000_AddQualityScore_1 = require("./migrations/1771800000000-AddQualityScore");
|
|
@@ -48,12 +51,15 @@ const entities = [
|
|
|
48
51
|
token_usage_snapshot_entity_1.TokenUsageSnapshot, cost_snapshot_entity_1.CostSnapshot, agent_log_entity_1.AgentLog,
|
|
49
52
|
api_key_entity_1.ApiKey, tenant_entity_1.Tenant, agent_entity_1.Agent, agent_api_key_entity_1.AgentApiKey,
|
|
50
53
|
notification_rule_entity_1.NotificationRule, notification_log_entity_1.NotificationLog,
|
|
54
|
+
email_provider_config_entity_1.EmailProviderConfig,
|
|
51
55
|
user_provider_entity_1.UserProvider, tier_assignment_entity_1.TierAssignment,
|
|
52
56
|
];
|
|
53
57
|
const migrations = [
|
|
54
58
|
_1771464895790_InitialSchema_1.InitialSchema1771464895790,
|
|
55
59
|
_1771500000000_HashApiKeys_1.HashApiKeys1771500000000,
|
|
56
60
|
_1771600000000_ModelPricingImprovements_1.ModelPricingImprovements1771600000000,
|
|
61
|
+
_1771700000000_EmailProviderConfigs_1.EmailProviderConfigs1771700000000,
|
|
62
|
+
_1771800000000_AddNotificationEmailAndOptionalDomain_1.AddNotificationEmailAndOptionalDomain1771800000000,
|
|
57
63
|
_1771600000000_AddModelCapabilities_1.AddModelCapabilities1771600000000,
|
|
58
64
|
_1771700000000_AddRoutingTables_1.AddRoutingTables1771700000000,
|
|
59
65
|
_1771800000000_AddQualityScore_1.AddQualityScore1771800000000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.module.js","sourceRoot":"","sources":["../../src/database/database.module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"database.module.js","sourceRoot":"","sources":["../../src/database/database.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmailProviderConfigs1771700000000 = void 0;
|
|
4
|
+
class EmailProviderConfigs1771700000000 {
|
|
5
|
+
name = 'EmailProviderConfigs1771700000000';
|
|
6
|
+
async up(queryRunner) {
|
|
7
|
+
await queryRunner.query(`
|
|
8
|
+
CREATE TABLE "email_provider_configs" (
|
|
9
|
+
"id" character varying NOT NULL,
|
|
10
|
+
"user_id" character varying NOT NULL,
|
|
11
|
+
"provider" character varying NOT NULL,
|
|
12
|
+
"api_key_encrypted" character varying NOT NULL,
|
|
13
|
+
"domain" character varying NOT NULL,
|
|
14
|
+
"is_active" boolean NOT NULL DEFAULT true,
|
|
15
|
+
"created_at" TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
16
|
+
"updated_at" TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
17
|
+
CONSTRAINT "PK_email_provider_configs" PRIMARY KEY ("id")
|
|
18
|
+
)
|
|
19
|
+
`);
|
|
20
|
+
await queryRunner.query(`
|
|
21
|
+
CREATE UNIQUE INDEX "IDX_email_provider_configs_user_id"
|
|
22
|
+
ON "email_provider_configs" ("user_id")
|
|
23
|
+
`);
|
|
24
|
+
}
|
|
25
|
+
async down(queryRunner) {
|
|
26
|
+
await queryRunner.query(`DROP INDEX "IDX_email_provider_configs_user_id"`);
|
|
27
|
+
await queryRunner.query(`DROP TABLE "email_provider_configs"`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.EmailProviderConfigs1771700000000 = EmailProviderConfigs1771700000000;
|
|
31
|
+
//# sourceMappingURL=1771700000000-EmailProviderConfigs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1771700000000-EmailProviderConfigs.js","sourceRoot":"","sources":["../../../src/database/migrations/1771700000000-EmailProviderConfigs.ts"],"names":[],"mappings":";;;AAEA,MAAa,iCAAiC;IAC5C,IAAI,GAAG,mCAAmC,CAAC;IAEpC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CAAC;;;;;;;;;;;;KAYvB,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;;KAGvB,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC3E,MAAM,WAAW,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACjE,CAAC;CACF;AA5BD,8EA4BC"}
|
package/dist/backend/database/migrations/1771800000000-AddNotificationEmailAndOptionalDomain.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
2
|
+
export declare class AddNotificationEmailAndOptionalDomain1771800000000 implements MigrationInterface {
|
|
3
|
+
name: string;
|
|
4
|
+
up(queryRunner: QueryRunner): Promise<void>;
|
|
5
|
+
down(queryRunner: QueryRunner): Promise<void>;
|
|
6
|
+
}
|
package/dist/backend/database/migrations/1771800000000-AddNotificationEmailAndOptionalDomain.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AddNotificationEmailAndOptionalDomain1771800000000 = void 0;
|
|
4
|
+
class AddNotificationEmailAndOptionalDomain1771800000000 {
|
|
5
|
+
name = 'AddNotificationEmailAndOptionalDomain1771800000000';
|
|
6
|
+
async up(queryRunner) {
|
|
7
|
+
await queryRunner.query(`ALTER TABLE "email_provider_configs" ADD COLUMN "notification_email" character varying`);
|
|
8
|
+
await queryRunner.query(`ALTER TABLE "email_provider_configs" ALTER COLUMN "domain" DROP NOT NULL`);
|
|
9
|
+
}
|
|
10
|
+
async down(queryRunner) {
|
|
11
|
+
await queryRunner.query(`ALTER TABLE "email_provider_configs" ALTER COLUMN "domain" SET NOT NULL`);
|
|
12
|
+
await queryRunner.query(`ALTER TABLE "email_provider_configs" DROP COLUMN "notification_email"`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.AddNotificationEmailAndOptionalDomain1771800000000 = AddNotificationEmailAndOptionalDomain1771800000000;
|
|
16
|
+
//# sourceMappingURL=1771800000000-AddNotificationEmailAndOptionalDomain.js.map
|
package/dist/backend/database/migrations/1771800000000-AddNotificationEmailAndOptionalDomain.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1771800000000-AddNotificationEmailAndOptionalDomain.js","sourceRoot":"","sources":["../../../src/database/migrations/1771800000000-AddNotificationEmailAndOptionalDomain.ts"],"names":[],"mappings":";;;AAEA,MAAa,kDAAkD;IAC7D,IAAI,GAAG,oDAAoD,CAAC;IAErD,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,wFAAwF,CACzF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,yEAAyE,CAC1E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,uEAAuE,CACxE,CAAC;IACJ,CAAC;CACF;AApBD,gHAoBC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.EmailProviderConfig = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const sql_dialect_1 = require("../common/utils/sql-dialect");
|
|
15
|
+
let EmailProviderConfig = class EmailProviderConfig {
|
|
16
|
+
id;
|
|
17
|
+
user_id;
|
|
18
|
+
provider;
|
|
19
|
+
api_key_encrypted;
|
|
20
|
+
domain;
|
|
21
|
+
notification_email;
|
|
22
|
+
is_active;
|
|
23
|
+
created_at;
|
|
24
|
+
updated_at;
|
|
25
|
+
};
|
|
26
|
+
exports.EmailProviderConfig = EmailProviderConfig;
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, typeorm_1.PrimaryColumn)('varchar'),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], EmailProviderConfig.prototype, "id", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, typeorm_1.Column)('varchar'),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], EmailProviderConfig.prototype, "user_id", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, typeorm_1.Column)('varchar'),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], EmailProviderConfig.prototype, "provider", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, typeorm_1.Column)('varchar'),
|
|
41
|
+
__metadata("design:type", String)
|
|
42
|
+
], EmailProviderConfig.prototype, "api_key_encrypted", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, typeorm_1.Column)('varchar', { nullable: true }),
|
|
45
|
+
__metadata("design:type", Object)
|
|
46
|
+
], EmailProviderConfig.prototype, "domain", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, typeorm_1.Column)('varchar', { nullable: true }),
|
|
49
|
+
__metadata("design:type", Object)
|
|
50
|
+
], EmailProviderConfig.prototype, "notification_email", void 0);
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, typeorm_1.Column)('boolean', { default: true }),
|
|
53
|
+
__metadata("design:type", Boolean)
|
|
54
|
+
], EmailProviderConfig.prototype, "is_active", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, typeorm_1.Column)((0, sql_dialect_1.timestampType)(), { default: (0, sql_dialect_1.timestampDefault)() }),
|
|
57
|
+
__metadata("design:type", String)
|
|
58
|
+
], EmailProviderConfig.prototype, "created_at", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, typeorm_1.Column)((0, sql_dialect_1.timestampType)(), { default: (0, sql_dialect_1.timestampDefault)() }),
|
|
61
|
+
__metadata("design:type", String)
|
|
62
|
+
], EmailProviderConfig.prototype, "updated_at", void 0);
|
|
63
|
+
exports.EmailProviderConfig = EmailProviderConfig = __decorate([
|
|
64
|
+
(0, typeorm_1.Entity)('email_provider_configs'),
|
|
65
|
+
(0, typeorm_1.Index)(['user_id'], { unique: true })
|
|
66
|
+
], EmailProviderConfig);
|
|
67
|
+
//# sourceMappingURL=email-provider-config.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-provider-config.entity.js","sourceRoot":"","sources":["../../src/entities/email-provider-config.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAKiB;AACjB,6DAA8E;AAIvE,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE9B,EAAE,CAAU;IAGZ,OAAO,CAAU;IAGjB,QAAQ,CAAU;IAGlB,iBAAiB,CAAU;IAG3B,MAAM,CAAiB;IAGvB,kBAAkB,CAAiB;IAGnC,SAAS,CAAW;IAGpB,UAAU,CAAU;IAGpB,UAAU,CAAU;CACrB,CAAA;AA3BY,kDAAmB;AAE9B;IADC,IAAA,uBAAa,EAAC,SAAS,CAAC;;+CACb;AAGZ;IADC,IAAA,gBAAM,EAAC,SAAS,CAAC;;oDACD;AAGjB;IADC,IAAA,gBAAM,EAAC,SAAS,CAAC;;qDACA;AAGlB;IADC,IAAA,gBAAM,EAAC,SAAS,CAAC;;8DACS;AAG3B;IADC,IAAA,gBAAM,EAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACf;AAGvB;IADC,IAAA,gBAAM,EAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+DACH;AAGnC;IADC,IAAA,gBAAM,EAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;sDACjB;AAGpB;IADC,IAAA,gBAAM,EAAC,IAAA,2BAAa,GAAE,EAAE,EAAE,OAAO,EAAE,IAAA,8BAAgB,GAAE,EAAE,CAAC;;uDACrC;AAGpB;IADC,IAAA,gBAAM,EAAC,IAAA,2BAAa,GAAE,EAAE,EAAE,OAAO,EAAE,IAAA,8BAAgB,GAAE,EAAE,CAAC;;uDACrC;8BA1BT,mBAAmB;IAF/B,IAAA,gBAAM,EAAC,wBAAwB,CAAC;IAChC,IAAA,eAAK,EAAC,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;GACxB,mBAAmB,CA2B/B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class SetEmailProviderDto {
|
|
2
|
+
provider: string;
|
|
3
|
+
apiKey?: string;
|
|
4
|
+
domain?: string;
|
|
5
|
+
notificationEmail?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class TestEmailProviderDto {
|
|
8
|
+
provider: string;
|
|
9
|
+
apiKey: string;
|
|
10
|
+
domain?: string;
|
|
11
|
+
to: string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TestEmailProviderDto = exports.SetEmailProviderDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
class SetEmailProviderDto {
|
|
16
|
+
provider;
|
|
17
|
+
apiKey;
|
|
18
|
+
domain;
|
|
19
|
+
notificationEmail;
|
|
20
|
+
}
|
|
21
|
+
exports.SetEmailProviderDto = SetEmailProviderDto;
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsString)(),
|
|
24
|
+
(0, class_validator_1.IsIn)(['resend', 'mailgun', 'sendgrid']),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], SetEmailProviderDto.prototype, "provider", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsOptional)(),
|
|
29
|
+
(0, class_validator_1.IsString)(),
|
|
30
|
+
(0, class_validator_1.MinLength)(8),
|
|
31
|
+
(0, class_transformer_1.Transform)(({ value }) => typeof value === 'string' ? value.trim() : value),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], SetEmailProviderDto.prototype, "apiKey", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, class_validator_1.ValidateIf)((o) => o.provider === 'mailgun'),
|
|
36
|
+
(0, class_validator_1.IsString)(),
|
|
37
|
+
(0, class_validator_1.MinLength)(1),
|
|
38
|
+
(0, class_transformer_1.Transform)(({ value }) => typeof value === 'string' ? value.trim().toLowerCase() : value),
|
|
39
|
+
__metadata("design:type", String)
|
|
40
|
+
], SetEmailProviderDto.prototype, "domain", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, class_validator_1.IsOptional)(),
|
|
43
|
+
(0, class_validator_1.IsEmail)(),
|
|
44
|
+
(0, class_transformer_1.Transform)(({ value }) => typeof value === 'string' ? value.trim().toLowerCase() : value),
|
|
45
|
+
__metadata("design:type", String)
|
|
46
|
+
], SetEmailProviderDto.prototype, "notificationEmail", void 0);
|
|
47
|
+
class TestEmailProviderDto {
|
|
48
|
+
provider;
|
|
49
|
+
apiKey;
|
|
50
|
+
domain;
|
|
51
|
+
to;
|
|
52
|
+
}
|
|
53
|
+
exports.TestEmailProviderDto = TestEmailProviderDto;
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, class_validator_1.IsString)(),
|
|
56
|
+
(0, class_validator_1.IsIn)(['resend', 'mailgun', 'sendgrid']),
|
|
57
|
+
__metadata("design:type", String)
|
|
58
|
+
], TestEmailProviderDto.prototype, "provider", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, class_validator_1.IsString)(),
|
|
61
|
+
(0, class_validator_1.MinLength)(8),
|
|
62
|
+
(0, class_transformer_1.Transform)(({ value }) => typeof value === 'string' ? value.trim() : value),
|
|
63
|
+
__metadata("design:type", String)
|
|
64
|
+
], TestEmailProviderDto.prototype, "apiKey", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, class_validator_1.ValidateIf)((o) => o.provider === 'mailgun'),
|
|
67
|
+
(0, class_validator_1.IsString)(),
|
|
68
|
+
(0, class_validator_1.MinLength)(1),
|
|
69
|
+
(0, class_transformer_1.Transform)(({ value }) => typeof value === 'string' ? value.trim().toLowerCase() : value),
|
|
70
|
+
__metadata("design:type", String)
|
|
71
|
+
], TestEmailProviderDto.prototype, "domain", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, class_validator_1.IsString)(),
|
|
74
|
+
__metadata("design:type", String)
|
|
75
|
+
], TestEmailProviderDto.prototype, "to", void 0);
|
|
76
|
+
//# sourceMappingURL=set-email-provider.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-email-provider.dto.js","sourceRoot":"","sources":["../../../src/notifications/dto/set-email-provider.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA6F;AAC7F,yDAA8C;AAE9C,MAAa,mBAAmB;IAG9B,QAAQ,CAAU;IAMlB,MAAM,CAAU;IAMhB,MAAM,CAAU;IAKhB,iBAAiB,CAAU;CAC5B;AArBD,kDAqBC;AAlBC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,sBAAI,EAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;;qDACtB;AAMlB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,CAAC,CAAC;IACZ,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;;mDAC3D;AAMhB;IAJC,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;IAC3C,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,CAAC,CAAC;IACZ,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;;mDACzE;AAKhB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;;8DAC9D;AAG7B,MAAa,oBAAoB;IAG/B,QAAQ,CAAU;IAKlB,MAAM,CAAU;IAMhB,MAAM,CAAU;IAGhB,EAAE,CAAU;CACb;AAlBD,oDAkBC;AAfC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,sBAAI,EAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;;sDACtB;AAKlB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,CAAC,CAAC;IACZ,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;;oDAC3D;AAMhB;IAJC,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;IAC3C,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,CAAC,CAAC;IACZ,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;;oDACzE;AAGhB;IADC,IAAA,0BAAQ,GAAE;;gDACC"}
|
|
@@ -1,9 +1,44 @@
|
|
|
1
1
|
import { AuthUser } from '../auth/auth.instance';
|
|
2
2
|
import { NotificationRulesService } from './services/notification-rules.service';
|
|
3
|
+
import { EmailProviderConfigService } from './services/email-provider-config.service';
|
|
4
|
+
import { NotificationCronService } from './services/notification-cron.service';
|
|
3
5
|
import { CreateNotificationRuleDto, UpdateNotificationRuleDto } from './dto/notification-rule.dto';
|
|
6
|
+
import { SetEmailProviderDto, TestEmailProviderDto } from './dto/set-email-provider.dto';
|
|
4
7
|
export declare class NotificationsController {
|
|
5
8
|
private readonly rulesService;
|
|
6
|
-
|
|
9
|
+
private readonly emailProviderConfigService;
|
|
10
|
+
private readonly cronService;
|
|
11
|
+
private readonly logger;
|
|
12
|
+
constructor(rulesService: NotificationRulesService, emailProviderConfigService: EmailProviderConfigService, cronService: NotificationCronService);
|
|
13
|
+
getEmailProvider(user: AuthUser): Promise<import("./services/email-provider-config.service").EmailProviderPublicConfig | {
|
|
14
|
+
configured: boolean;
|
|
15
|
+
}>;
|
|
16
|
+
testEmailProvider(user: AuthUser, body: TestEmailProviderDto): Promise<{
|
|
17
|
+
success: boolean;
|
|
18
|
+
error?: string;
|
|
19
|
+
}>;
|
|
20
|
+
testSavedEmailProvider(user: AuthUser, body: {
|
|
21
|
+
to: string;
|
|
22
|
+
}): Promise<{
|
|
23
|
+
success: boolean;
|
|
24
|
+
error?: string;
|
|
25
|
+
}>;
|
|
26
|
+
setEmailProvider(user: AuthUser, body: SetEmailProviderDto): Promise<import("./services/email-provider-config.service").EmailProviderPublicConfig>;
|
|
27
|
+
removeEmailProvider(user: AuthUser): Promise<{
|
|
28
|
+
ok: boolean;
|
|
29
|
+
}>;
|
|
30
|
+
getNotificationEmail(user: AuthUser): Promise<{
|
|
31
|
+
email: string | null;
|
|
32
|
+
}>;
|
|
33
|
+
setNotificationEmail(user: AuthUser, body: {
|
|
34
|
+
email: string;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
saved: boolean;
|
|
37
|
+
}>;
|
|
38
|
+
triggerCheck(): Promise<{
|
|
39
|
+
triggered: number;
|
|
40
|
+
message: string;
|
|
41
|
+
}>;
|
|
7
42
|
listRules(agentName: string, user: AuthUser): Promise<any>;
|
|
8
43
|
createRule(dto: CreateNotificationRuleDto, user: AuthUser): Promise<any>;
|
|
9
44
|
updateRule(id: string, dto: UpdateNotificationRuleDto, user: AuthUser): Promise<any>;
|
|
@@ -11,16 +11,55 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
|
+
var NotificationsController_1;
|
|
14
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
16
|
exports.NotificationsController = void 0;
|
|
16
17
|
const common_1 = require("@nestjs/common");
|
|
17
18
|
const current_user_decorator_1 = require("../auth/current-user.decorator");
|
|
18
19
|
const notification_rules_service_1 = require("./services/notification-rules.service");
|
|
20
|
+
const email_provider_config_service_1 = require("./services/email-provider-config.service");
|
|
21
|
+
const notification_cron_service_1 = require("./services/notification-cron.service");
|
|
19
22
|
const notification_rule_dto_1 = require("./dto/notification-rule.dto");
|
|
20
|
-
|
|
23
|
+
const set_email_provider_dto_1 = require("./dto/set-email-provider.dto");
|
|
24
|
+
let NotificationsController = NotificationsController_1 = class NotificationsController {
|
|
21
25
|
rulesService;
|
|
22
|
-
|
|
26
|
+
emailProviderConfigService;
|
|
27
|
+
cronService;
|
|
28
|
+
logger = new common_1.Logger(NotificationsController_1.name);
|
|
29
|
+
constructor(rulesService, emailProviderConfigService, cronService) {
|
|
23
30
|
this.rulesService = rulesService;
|
|
31
|
+
this.emailProviderConfigService = emailProviderConfigService;
|
|
32
|
+
this.cronService = cronService;
|
|
33
|
+
}
|
|
34
|
+
async getEmailProvider(user) {
|
|
35
|
+
const config = await this.emailProviderConfigService.getConfig(user.id);
|
|
36
|
+
return config ?? { configured: false };
|
|
37
|
+
}
|
|
38
|
+
async testEmailProvider(user, body) {
|
|
39
|
+
return this.emailProviderConfigService.testConfig({ provider: body.provider, apiKey: body.apiKey, domain: body.domain }, body.to);
|
|
40
|
+
}
|
|
41
|
+
async testSavedEmailProvider(user, body) {
|
|
42
|
+
return this.emailProviderConfigService.testSavedConfig(user.id, body.to);
|
|
43
|
+
}
|
|
44
|
+
async setEmailProvider(user, body) {
|
|
45
|
+
return this.emailProviderConfigService.upsert(user.id, body);
|
|
46
|
+
}
|
|
47
|
+
async removeEmailProvider(user) {
|
|
48
|
+
await this.emailProviderConfigService.remove(user.id);
|
|
49
|
+
return { ok: true };
|
|
50
|
+
}
|
|
51
|
+
async getNotificationEmail(user) {
|
|
52
|
+
const email = await this.emailProviderConfigService.getNotificationEmail(user.id);
|
|
53
|
+
return { email };
|
|
54
|
+
}
|
|
55
|
+
async setNotificationEmail(user, body) {
|
|
56
|
+
await this.emailProviderConfigService.setNotificationEmail(user.id, body.email);
|
|
57
|
+
return { saved: true };
|
|
58
|
+
}
|
|
59
|
+
async triggerCheck() {
|
|
60
|
+
this.logger.log('Manual notification check triggered');
|
|
61
|
+
const triggered = await this.cronService.checkThresholds();
|
|
62
|
+
return { triggered, message: `${triggered} notification(s) triggered` };
|
|
24
63
|
}
|
|
25
64
|
async listRules(agentName, user) {
|
|
26
65
|
return this.rulesService.listRules(user.id, agentName);
|
|
@@ -37,6 +76,65 @@ let NotificationsController = class NotificationsController {
|
|
|
37
76
|
}
|
|
38
77
|
};
|
|
39
78
|
exports.NotificationsController = NotificationsController;
|
|
79
|
+
__decorate([
|
|
80
|
+
(0, common_1.Get)('email-provider'),
|
|
81
|
+
__param(0, (0, current_user_decorator_1.CurrentUser)()),
|
|
82
|
+
__metadata("design:type", Function),
|
|
83
|
+
__metadata("design:paramtypes", [Object]),
|
|
84
|
+
__metadata("design:returntype", Promise)
|
|
85
|
+
], NotificationsController.prototype, "getEmailProvider", null);
|
|
86
|
+
__decorate([
|
|
87
|
+
(0, common_1.Post)('email-provider/test'),
|
|
88
|
+
__param(0, (0, current_user_decorator_1.CurrentUser)()),
|
|
89
|
+
__param(1, (0, common_1.Body)()),
|
|
90
|
+
__metadata("design:type", Function),
|
|
91
|
+
__metadata("design:paramtypes", [Object, set_email_provider_dto_1.TestEmailProviderDto]),
|
|
92
|
+
__metadata("design:returntype", Promise)
|
|
93
|
+
], NotificationsController.prototype, "testEmailProvider", null);
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, common_1.Post)('email-provider/test-saved'),
|
|
96
|
+
__param(0, (0, current_user_decorator_1.CurrentUser)()),
|
|
97
|
+
__param(1, (0, common_1.Body)()),
|
|
98
|
+
__metadata("design:type", Function),
|
|
99
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
100
|
+
__metadata("design:returntype", Promise)
|
|
101
|
+
], NotificationsController.prototype, "testSavedEmailProvider", null);
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, common_1.Post)('email-provider'),
|
|
104
|
+
__param(0, (0, current_user_decorator_1.CurrentUser)()),
|
|
105
|
+
__param(1, (0, common_1.Body)()),
|
|
106
|
+
__metadata("design:type", Function),
|
|
107
|
+
__metadata("design:paramtypes", [Object, set_email_provider_dto_1.SetEmailProviderDto]),
|
|
108
|
+
__metadata("design:returntype", Promise)
|
|
109
|
+
], NotificationsController.prototype, "setEmailProvider", null);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, common_1.Delete)('email-provider'),
|
|
112
|
+
__param(0, (0, current_user_decorator_1.CurrentUser)()),
|
|
113
|
+
__metadata("design:type", Function),
|
|
114
|
+
__metadata("design:paramtypes", [Object]),
|
|
115
|
+
__metadata("design:returntype", Promise)
|
|
116
|
+
], NotificationsController.prototype, "removeEmailProvider", null);
|
|
117
|
+
__decorate([
|
|
118
|
+
(0, common_1.Get)('notification-email'),
|
|
119
|
+
__param(0, (0, current_user_decorator_1.CurrentUser)()),
|
|
120
|
+
__metadata("design:type", Function),
|
|
121
|
+
__metadata("design:paramtypes", [Object]),
|
|
122
|
+
__metadata("design:returntype", Promise)
|
|
123
|
+
], NotificationsController.prototype, "getNotificationEmail", null);
|
|
124
|
+
__decorate([
|
|
125
|
+
(0, common_1.Post)('notification-email'),
|
|
126
|
+
__param(0, (0, current_user_decorator_1.CurrentUser)()),
|
|
127
|
+
__param(1, (0, common_1.Body)()),
|
|
128
|
+
__metadata("design:type", Function),
|
|
129
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
130
|
+
__metadata("design:returntype", Promise)
|
|
131
|
+
], NotificationsController.prototype, "setNotificationEmail", null);
|
|
132
|
+
__decorate([
|
|
133
|
+
(0, common_1.Post)('trigger-check'),
|
|
134
|
+
__metadata("design:type", Function),
|
|
135
|
+
__metadata("design:paramtypes", []),
|
|
136
|
+
__metadata("design:returntype", Promise)
|
|
137
|
+
], NotificationsController.prototype, "triggerCheck", null);
|
|
40
138
|
__decorate([
|
|
41
139
|
(0, common_1.Get)(),
|
|
42
140
|
__param(0, (0, common_1.Query)('agent_name')),
|
|
@@ -70,8 +168,10 @@ __decorate([
|
|
|
70
168
|
__metadata("design:paramtypes", [String, Object]),
|
|
71
169
|
__metadata("design:returntype", Promise)
|
|
72
170
|
], NotificationsController.prototype, "deleteRule", null);
|
|
73
|
-
exports.NotificationsController = NotificationsController = __decorate([
|
|
171
|
+
exports.NotificationsController = NotificationsController = NotificationsController_1 = __decorate([
|
|
74
172
|
(0, common_1.Controller)('api/v1/notifications'),
|
|
75
|
-
__metadata("design:paramtypes", [notification_rules_service_1.NotificationRulesService
|
|
173
|
+
__metadata("design:paramtypes", [notification_rules_service_1.NotificationRulesService,
|
|
174
|
+
email_provider_config_service_1.EmailProviderConfigService,
|
|
175
|
+
notification_cron_service_1.NotificationCronService])
|
|
76
176
|
], NotificationsController);
|
|
77
177
|
//# sourceMappingURL=notifications.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.controller.js","sourceRoot":"","sources":["../../src/notifications/notifications.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notifications.controller.js","sourceRoot":"","sources":["../../src/notifications/notifications.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ const notification_cron_service_1 = require("./services/notification-cron.servic
|
|
|
15
15
|
const notification_email_service_1 = require("./services/notification-email.service");
|
|
16
16
|
const email_config_service_1 = require("./services/email-config.service");
|
|
17
17
|
const notification_email_address_service_1 = require("./services/notification-email-address.service");
|
|
18
|
+
const email_provider_config_service_1 = require("./services/email-provider-config.service");
|
|
18
19
|
let NotificationsModule = class NotificationsModule {
|
|
19
20
|
};
|
|
20
21
|
exports.NotificationsModule = NotificationsModule;
|
|
@@ -27,6 +28,7 @@ exports.NotificationsModule = NotificationsModule = __decorate([
|
|
|
27
28
|
notification_email_service_1.NotificationEmailService,
|
|
28
29
|
email_config_service_1.EmailConfigService,
|
|
29
30
|
notification_email_address_service_1.NotificationEmailAddressService,
|
|
31
|
+
email_provider_config_service_1.EmailProviderConfigService,
|
|
30
32
|
],
|
|
31
33
|
})
|
|
32
34
|
], NotificationsModule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.module.js","sourceRoot":"","sources":["../../src/notifications/notifications.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,yEAAqE;AACrE,uEAAkE;AAClE,sFAAiF;AACjF,oFAA+E;AAC/E,sFAAiF;AACjF,0EAAqE;AACrE,sGAAgG;
|
|
1
|
+
{"version":3,"file":"notifications.module.js","sourceRoot":"","sources":["../../src/notifications/notifications.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,yEAAqE;AACrE,uEAAkE;AAClE,sFAAiF;AACjF,oFAA+E;AAC/E,sFAAiF;AACjF,0EAAqE;AACrE,sGAAgG;AAChG,4FAAsF;AAa/E,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAAG,CAAA;AAAtB,kDAAmB;8BAAnB,mBAAmB;IAX/B,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,kDAAuB,EAAE,+CAAqB,CAAC;QAC7D,SAAS,EAAE;YACT,qDAAwB;YACxB,mDAAuB;YACvB,qDAAwB;YACxB,yCAAkB;YAClB,oEAA+B;YAC/B,0DAA0B;SAC3B;KACF,CAAC;GACW,mBAAmB,CAAG"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
export interface EmailProviderPublicConfig {
|
|
3
|
+
provider: string;
|
|
4
|
+
domain: string | null;
|
|
5
|
+
keyPrefix: string;
|
|
6
|
+
is_active: boolean;
|
|
7
|
+
notificationEmail: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface EmailProviderFullConfig {
|
|
10
|
+
provider: string;
|
|
11
|
+
apiKey: string;
|
|
12
|
+
domain: string | null;
|
|
13
|
+
notificationEmail: string | null;
|
|
14
|
+
}
|
|
15
|
+
export declare class EmailProviderConfigService {
|
|
16
|
+
private readonly ds;
|
|
17
|
+
private readonly dialect;
|
|
18
|
+
constructor(ds: DataSource);
|
|
19
|
+
private sql;
|
|
20
|
+
getConfig(userId: string): Promise<EmailProviderPublicConfig | null>;
|
|
21
|
+
upsert(userId: string, dto: {
|
|
22
|
+
provider: string;
|
|
23
|
+
apiKey?: string;
|
|
24
|
+
domain?: string;
|
|
25
|
+
notificationEmail?: string;
|
|
26
|
+
}): Promise<EmailProviderPublicConfig>;
|
|
27
|
+
remove(userId: string): Promise<void>;
|
|
28
|
+
getFullConfig(userId: string): Promise<EmailProviderFullConfig | null>;
|
|
29
|
+
getNotificationEmail(userId: string): Promise<string | null>;
|
|
30
|
+
setNotificationEmail(userId: string, email: string): Promise<void>;
|
|
31
|
+
testSavedConfig(userId: string, toEmail: string): Promise<{
|
|
32
|
+
success: boolean;
|
|
33
|
+
error?: string;
|
|
34
|
+
}>;
|
|
35
|
+
testConfig(dto: {
|
|
36
|
+
provider: string;
|
|
37
|
+
apiKey: string;
|
|
38
|
+
domain?: string;
|
|
39
|
+
}, toEmail: string): Promise<{
|
|
40
|
+
success: boolean;
|
|
41
|
+
error?: string;
|
|
42
|
+
}>;
|
|
43
|
+
}
|