@superdangerous/app-framework 4.14.0 → 4.15.1
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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/middleware/validation.d.ts +12 -12
- package/dist/services/emailService.d.ts +146 -0
- package/dist/services/emailService.d.ts.map +1 -0
- package/dist/services/emailService.js +649 -0
- package/dist/services/emailService.js.map +1 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -1
- package/package.json +9 -1
- package/src/index.ts +14 -0
- package/src/services/emailService.ts +812 -0
- package/src/services/index.ts +14 -0
- package/ui/data-table/components/BatchActionsBar.tsx +53 -0
- package/ui/data-table/components/ColumnVisibility.tsx +111 -0
- package/ui/data-table/components/DataTable.tsx +492 -0
- package/ui/data-table/components/DataTablePage.tsx +238 -0
- package/ui/data-table/components/Pagination.tsx +203 -0
- package/ui/data-table/components/PaginationControls.tsx +122 -0
- package/ui/data-table/components/TableFilters.tsx +139 -0
- package/ui/data-table/components/index.ts +41 -0
- package/ui/data-table/components/types.ts +181 -0
- package/ui/data-table/hooks/index.ts +17 -0
- package/ui/data-table/hooks/useColumnOrder.ts +233 -0
- package/ui/data-table/hooks/useColumnVisibility.ts +128 -0
- package/ui/data-table/hooks/usePagination.ts +160 -0
- package/ui/data-table/hooks/useResizableColumns.ts +280 -0
- package/ui/data-table/index.ts +84 -0
- package/ui/dist/index.d.mts +207 -5
- package/ui/dist/index.d.ts +207 -5
- package/ui/dist/index.js +36 -43
- package/ui/dist/index.js.map +1 -1
- package/ui/dist/index.mjs +36 -43
- package/ui/dist/index.mjs.map +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export type { LogEntry as RouterLogEntry, LogFile } from "./api/logsRouter.js";
|
|
|
23
23
|
export * from "./desktop/index.js";
|
|
24
24
|
export { getSystemMonitor } from "./services/systemMonitor.js";
|
|
25
25
|
export type { SystemHealth, CPUInfo, MemoryInfo, DiskInfo, SystemInfo, ProcessInfo, } from "./services/systemMonitor.js";
|
|
26
|
+
export { EmailService, getEmailService, createEmailService, } from "./services/emailService.js";
|
|
27
|
+
export type { EmailConfig, EmailOptions, EmailServiceStatus, NotificationEvent, NotificationEventType, } from "./services/emailService.js";
|
|
26
28
|
export { createHealthCheckRouter, getHealthCheckService, type SystemHealth as HealthStatus, type SystemMetrics, type HealthCheckOptions, type CustomHealthCheck, type HealthCheckResult, type DependencyHealth, } from "./core/healthCheck.js";
|
|
27
29
|
export { createSettingsSchema, flattenSettings, unflattenSettings, flattenSettingsValues, unflattenSettingsValues, getRestartRequiredSettings, validateSettings, validateSetting, validateAllSettings, getSettingByKey, getDefaultSettingsValues, evaluateFieldVisibility, groupFields, applyToStorageTransform, applyFromStorageTransform, createSettingsFormState, Validators, type SettingsSchema, type SettingsCategory, type SettingDefinition, type SettingOption, type SettingsFormState, type SettingsValidationResult, } from "./settings/SettingsSchema.js";
|
|
28
30
|
export { LogLevels, defaultLogViewerConfig, parseLogEntry, formatLogEntry, calculateLogStats, filterLogEntries, type LogCategory, type LogFilter, type LogViewerConfig, type LogEntry, type LogStats, } from "./logging/LogCategories.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EACL,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,YAAY,EACZ,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,uBAAuB,CAAC;AAG/B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,aAAa,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGvF,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChF,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAG/D,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EAAE,QAAQ,IAAI,cAAc,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG/E,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,YAAY,EACV,YAAY,EACZ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,GACZ,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,YAAY,IAAI,YAAY,EACjC,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,WAAW,EACX,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,QAAQ,GACd,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -28,6 +28,8 @@ export { default as logsRouter } from "./api/logsRouter.js";
|
|
|
28
28
|
export * from "./desktop/index.js";
|
|
29
29
|
// System monitoring exports
|
|
30
30
|
export { getSystemMonitor } from "./services/systemMonitor.js";
|
|
31
|
+
// Email service exports
|
|
32
|
+
export { EmailService, getEmailService, createEmailService, } from "./services/emailService.js";
|
|
31
33
|
// Health check exports
|
|
32
34
|
export { createHealthCheckRouter, getHealthCheckService, } from "./core/healthCheck.js";
|
|
33
35
|
// WebSocket Manager exports
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAe;AACf,cAAc,iBAAiB,CAAC;AAChC,oEAAoE;AACpE,OAAO,EACL,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,YAAY,EACZ,eAAe,GAIhB,MAAM,uBAAuB,CAAC;AAE/B,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,qBAAqB;AACrB,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAGjC,kBAAkB;AAClB,cAAc,kBAAkB,CAAC;AAEjC,6CAA6C;AAC7C,OAAO,EAAE,YAAY,EAA8B,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE/D,oBAAoB;AACpB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,aAAa,GACd,MAAM,yBAAyB,CAAC;AAGjC,2BAA2B;AAC3B,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG5D,8BAA8B;AAC9B,cAAc,oBAAoB,CAAC;AAEnC,4BAA4B;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAU/D,uBAAuB;AACvB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GAOtB,MAAM,uBAAuB,CAAC;AAE/B,4BAA4B;AAE5B,yDAAyD;AAEzD,wDAAwD;AACxD,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,WAAW,EACX,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,UAAU,GAOX,MAAM,8BAA8B,CAAC;AAEtC,yBAAyB;AACzB,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GAMjB,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAe;AACf,cAAc,iBAAiB,CAAC;AAChC,oEAAoE;AACpE,OAAO,EACL,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,YAAY,EACZ,eAAe,GAIhB,MAAM,uBAAuB,CAAC;AAE/B,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,qBAAqB;AACrB,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAGjC,kBAAkB;AAClB,cAAc,kBAAkB,CAAC;AAEjC,6CAA6C;AAC7C,OAAO,EAAE,YAAY,EAA8B,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE/D,oBAAoB;AACpB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,aAAa,GACd,MAAM,yBAAyB,CAAC;AAGjC,2BAA2B;AAC3B,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG5D,8BAA8B;AAC9B,cAAc,oBAAoB,CAAC;AAEnC,4BAA4B;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAU/D,wBAAwB;AACxB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AASpC,uBAAuB;AACvB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GAOtB,MAAM,uBAAuB,CAAC;AAE/B,4BAA4B;AAE5B,yDAAyD;AAEzD,wDAAwD;AACxD,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,WAAW,EACX,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,UAAU,GAOX,MAAM,8BAA8B,CAAC;AAEtC,yBAAyB;AACzB,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GAMjB,MAAM,4BAA4B,CAAC"}
|
|
@@ -55,11 +55,11 @@ export declare const schemas: {
|
|
|
55
55
|
category?: string | undefined;
|
|
56
56
|
manufacturer?: string | undefined;
|
|
57
57
|
version?: string | undefined;
|
|
58
|
+
tags?: string[] | undefined;
|
|
58
59
|
models?: {
|
|
59
60
|
name: string;
|
|
60
61
|
variants?: string[] | undefined;
|
|
61
62
|
}[] | undefined;
|
|
62
|
-
tags?: string[] | undefined;
|
|
63
63
|
lastUpdated?: string | undefined;
|
|
64
64
|
author?: string | undefined;
|
|
65
65
|
}, {
|
|
@@ -67,11 +67,11 @@ export declare const schemas: {
|
|
|
67
67
|
category?: string | undefined;
|
|
68
68
|
manufacturer?: string | undefined;
|
|
69
69
|
version?: string | undefined;
|
|
70
|
+
tags?: string[] | undefined;
|
|
70
71
|
models?: {
|
|
71
72
|
name: string;
|
|
72
73
|
variants?: string[] | undefined;
|
|
73
74
|
}[] | undefined;
|
|
74
|
-
tags?: string[] | undefined;
|
|
75
75
|
lastUpdated?: string | undefined;
|
|
76
76
|
author?: string | undefined;
|
|
77
77
|
}>>;
|
|
@@ -245,11 +245,11 @@ export declare const schemas: {
|
|
|
245
245
|
category?: string | undefined;
|
|
246
246
|
manufacturer?: string | undefined;
|
|
247
247
|
version?: string | undefined;
|
|
248
|
+
tags?: string[] | undefined;
|
|
248
249
|
models?: {
|
|
249
250
|
name: string;
|
|
250
251
|
variants?: string[] | undefined;
|
|
251
252
|
}[] | undefined;
|
|
252
|
-
tags?: string[] | undefined;
|
|
253
253
|
lastUpdated?: string | undefined;
|
|
254
254
|
author?: string | undefined;
|
|
255
255
|
} | undefined;
|
|
@@ -310,11 +310,11 @@ export declare const schemas: {
|
|
|
310
310
|
category?: string | undefined;
|
|
311
311
|
manufacturer?: string | undefined;
|
|
312
312
|
version?: string | undefined;
|
|
313
|
+
tags?: string[] | undefined;
|
|
313
314
|
models?: {
|
|
314
315
|
name: string;
|
|
315
316
|
variants?: string[] | undefined;
|
|
316
317
|
}[] | undefined;
|
|
317
|
-
tags?: string[] | undefined;
|
|
318
318
|
lastUpdated?: string | undefined;
|
|
319
319
|
author?: string | undefined;
|
|
320
320
|
} | undefined;
|
|
@@ -607,14 +607,14 @@ export declare const schemas: {
|
|
|
607
607
|
status?: "error" | "active" | "inactive" | undefined;
|
|
608
608
|
search?: string | undefined;
|
|
609
609
|
category?: string | undefined;
|
|
610
|
-
protocol?: "modbus" | "bacnet" | undefined;
|
|
611
610
|
tags?: string[] | undefined;
|
|
611
|
+
protocol?: "modbus" | "bacnet" | undefined;
|
|
612
612
|
}, {
|
|
613
613
|
status?: "error" | "active" | "inactive" | undefined;
|
|
614
614
|
search?: string | undefined;
|
|
615
615
|
category?: string | undefined;
|
|
616
|
-
protocol?: "modbus" | "bacnet" | undefined;
|
|
617
616
|
tags?: string[] | undefined;
|
|
617
|
+
protocol?: "modbus" | "bacnet" | undefined;
|
|
618
618
|
}>;
|
|
619
619
|
};
|
|
620
620
|
/**
|
|
@@ -732,11 +732,11 @@ declare const _default: {
|
|
|
732
732
|
category?: string | undefined;
|
|
733
733
|
manufacturer?: string | undefined;
|
|
734
734
|
version?: string | undefined;
|
|
735
|
+
tags?: string[] | undefined;
|
|
735
736
|
models?: {
|
|
736
737
|
name: string;
|
|
737
738
|
variants?: string[] | undefined;
|
|
738
739
|
}[] | undefined;
|
|
739
|
-
tags?: string[] | undefined;
|
|
740
740
|
lastUpdated?: string | undefined;
|
|
741
741
|
author?: string | undefined;
|
|
742
742
|
}, {
|
|
@@ -744,11 +744,11 @@ declare const _default: {
|
|
|
744
744
|
category?: string | undefined;
|
|
745
745
|
manufacturer?: string | undefined;
|
|
746
746
|
version?: string | undefined;
|
|
747
|
+
tags?: string[] | undefined;
|
|
747
748
|
models?: {
|
|
748
749
|
name: string;
|
|
749
750
|
variants?: string[] | undefined;
|
|
750
751
|
}[] | undefined;
|
|
751
|
-
tags?: string[] | undefined;
|
|
752
752
|
lastUpdated?: string | undefined;
|
|
753
753
|
author?: string | undefined;
|
|
754
754
|
}>>;
|
|
@@ -922,11 +922,11 @@ declare const _default: {
|
|
|
922
922
|
category?: string | undefined;
|
|
923
923
|
manufacturer?: string | undefined;
|
|
924
924
|
version?: string | undefined;
|
|
925
|
+
tags?: string[] | undefined;
|
|
925
926
|
models?: {
|
|
926
927
|
name: string;
|
|
927
928
|
variants?: string[] | undefined;
|
|
928
929
|
}[] | undefined;
|
|
929
|
-
tags?: string[] | undefined;
|
|
930
930
|
lastUpdated?: string | undefined;
|
|
931
931
|
author?: string | undefined;
|
|
932
932
|
} | undefined;
|
|
@@ -987,11 +987,11 @@ declare const _default: {
|
|
|
987
987
|
category?: string | undefined;
|
|
988
988
|
manufacturer?: string | undefined;
|
|
989
989
|
version?: string | undefined;
|
|
990
|
+
tags?: string[] | undefined;
|
|
990
991
|
models?: {
|
|
991
992
|
name: string;
|
|
992
993
|
variants?: string[] | undefined;
|
|
993
994
|
}[] | undefined;
|
|
994
|
-
tags?: string[] | undefined;
|
|
995
995
|
lastUpdated?: string | undefined;
|
|
996
996
|
author?: string | undefined;
|
|
997
997
|
} | undefined;
|
|
@@ -1284,14 +1284,14 @@ declare const _default: {
|
|
|
1284
1284
|
status?: "error" | "active" | "inactive" | undefined;
|
|
1285
1285
|
search?: string | undefined;
|
|
1286
1286
|
category?: string | undefined;
|
|
1287
|
-
protocol?: "modbus" | "bacnet" | undefined;
|
|
1288
1287
|
tags?: string[] | undefined;
|
|
1288
|
+
protocol?: "modbus" | "bacnet" | undefined;
|
|
1289
1289
|
}, {
|
|
1290
1290
|
status?: "error" | "active" | "inactive" | undefined;
|
|
1291
1291
|
search?: string | undefined;
|
|
1292
1292
|
category?: string | undefined;
|
|
1293
|
-
protocol?: "modbus" | "bacnet" | undefined;
|
|
1294
1293
|
tags?: string[] | undefined;
|
|
1294
|
+
protocol?: "modbus" | "bacnet" | undefined;
|
|
1295
1295
|
}>;
|
|
1296
1296
|
};
|
|
1297
1297
|
compose: {
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email Service supporting Resend API and Nodemailer SMTP
|
|
3
|
+
* A generic, reusable email service for the app framework.
|
|
4
|
+
* Resend is preferred when API key is configured.
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from "events";
|
|
7
|
+
export interface EmailOptions {
|
|
8
|
+
to: string | string[];
|
|
9
|
+
subject: string;
|
|
10
|
+
text?: string;
|
|
11
|
+
html?: string;
|
|
12
|
+
attachments?: Array<{
|
|
13
|
+
filename: string;
|
|
14
|
+
content?: string | Buffer;
|
|
15
|
+
path?: string;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
export interface EmailConfig {
|
|
19
|
+
enabled?: boolean;
|
|
20
|
+
provider?: "resend" | "smtp";
|
|
21
|
+
resend?: {
|
|
22
|
+
apiKey: string;
|
|
23
|
+
};
|
|
24
|
+
smtp?: {
|
|
25
|
+
host: string;
|
|
26
|
+
port: number;
|
|
27
|
+
secure?: boolean;
|
|
28
|
+
auth?: {
|
|
29
|
+
user: string;
|
|
30
|
+
pass: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
from?: string;
|
|
34
|
+
to?: string[];
|
|
35
|
+
appName?: string;
|
|
36
|
+
appTitle?: string;
|
|
37
|
+
logoUrl?: string;
|
|
38
|
+
brandColor?: string;
|
|
39
|
+
footerText?: string;
|
|
40
|
+
footerLink?: string;
|
|
41
|
+
}
|
|
42
|
+
export type NotificationEventType = "startup" | "shutdown" | "error" | "warning" | "info" | "success" | "custom";
|
|
43
|
+
export interface NotificationEvent {
|
|
44
|
+
type: NotificationEventType;
|
|
45
|
+
title?: string;
|
|
46
|
+
data: Record<string, unknown>;
|
|
47
|
+
timestamp: Date;
|
|
48
|
+
}
|
|
49
|
+
export interface EmailServiceStatus {
|
|
50
|
+
enabled: boolean;
|
|
51
|
+
provider: "Resend" | "SMTP" | "None";
|
|
52
|
+
recipients: string[];
|
|
53
|
+
}
|
|
54
|
+
export declare class EmailService extends EventEmitter {
|
|
55
|
+
private transporter?;
|
|
56
|
+
private resend?;
|
|
57
|
+
private enabled;
|
|
58
|
+
private useResend;
|
|
59
|
+
private notificationQueue;
|
|
60
|
+
private processingInterval?;
|
|
61
|
+
private fromAddress;
|
|
62
|
+
private defaultRecipients;
|
|
63
|
+
private config;
|
|
64
|
+
private appName;
|
|
65
|
+
private appTitle;
|
|
66
|
+
private logoUrl?;
|
|
67
|
+
private brandColor;
|
|
68
|
+
private footerText?;
|
|
69
|
+
private footerLink?;
|
|
70
|
+
constructor(config?: EmailConfig);
|
|
71
|
+
/**
|
|
72
|
+
* Initialize the email service
|
|
73
|
+
*/
|
|
74
|
+
initialize(): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Update branding configuration
|
|
77
|
+
*/
|
|
78
|
+
setBranding(options: {
|
|
79
|
+
appName?: string;
|
|
80
|
+
appTitle?: string;
|
|
81
|
+
logoUrl?: string;
|
|
82
|
+
brandColor?: string;
|
|
83
|
+
footerText?: string;
|
|
84
|
+
footerLink?: string;
|
|
85
|
+
}): void;
|
|
86
|
+
/**
|
|
87
|
+
* Send an email
|
|
88
|
+
*/
|
|
89
|
+
sendEmail(options: EmailOptions): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Queue a notification event
|
|
92
|
+
*/
|
|
93
|
+
queueNotification(event: NotificationEvent): void;
|
|
94
|
+
/**
|
|
95
|
+
* Send immediate notification (bypasses queue)
|
|
96
|
+
*/
|
|
97
|
+
sendImmediateNotification(event: NotificationEvent): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Send a notification with custom type and data
|
|
100
|
+
*/
|
|
101
|
+
notify(type: NotificationEventType, title: string, data: Record<string, unknown>, immediate?: boolean): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Send startup notification
|
|
104
|
+
*/
|
|
105
|
+
notifyStartup(data?: Record<string, unknown>): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Send error notification
|
|
108
|
+
*/
|
|
109
|
+
notifyError(errorMessage: string, details?: Record<string, unknown>): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Send test email
|
|
112
|
+
*/
|
|
113
|
+
sendTestEmail(): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Get service status
|
|
116
|
+
*/
|
|
117
|
+
getStatus(): EmailServiceStatus;
|
|
118
|
+
/**
|
|
119
|
+
* Shutdown the service
|
|
120
|
+
*/
|
|
121
|
+
shutdown(): Promise<void>;
|
|
122
|
+
private startNotificationProcessor;
|
|
123
|
+
private processNotificationQueue;
|
|
124
|
+
private groupNotificationsByType;
|
|
125
|
+
private sendNotificationEmail;
|
|
126
|
+
private getNotificationSubject;
|
|
127
|
+
private getNotificationIcon;
|
|
128
|
+
private getAccentColor;
|
|
129
|
+
private formatDateTime;
|
|
130
|
+
private formatEventDataHtml;
|
|
131
|
+
private formatNotificationHtml;
|
|
132
|
+
private formatNotificationText;
|
|
133
|
+
private formatEventDataText;
|
|
134
|
+
private getNotificationTitle;
|
|
135
|
+
private generateTestEmailHtml;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get the email service instance (singleton)
|
|
139
|
+
*/
|
|
140
|
+
export declare function getEmailService(): EmailService | null;
|
|
141
|
+
/**
|
|
142
|
+
* Create and initialize the email service
|
|
143
|
+
*/
|
|
144
|
+
export declare function createEmailService(config: EmailConfig): Promise<EmailService>;
|
|
145
|
+
export default EmailService;
|
|
146
|
+
//# sourceMappingURL=emailService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailService.d.ts","sourceRoot":"","sources":["../../src/services/emailService.ts"],"names":[],"mappings":"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"}
|