ngx-brevo 0.0.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/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "ngx-brevo",
3
+ "version": "0.0.1",
4
+ "description": "An Angular library for integrating Brevo email platform features.",
5
+ "keywords": [
6
+ "angular",
7
+ "brevo",
8
+ "email",
9
+ "sendinblue"
10
+ ],
11
+ "author": "Nishant",
12
+ "license": "MIT",
13
+ "peerDependencies": {
14
+ "@angular/common": "^21.2.0",
15
+ "@angular/core": "^21.2.0"
16
+ },
17
+ "dependencies": {
18
+ "tslib": "^2.3.0"
19
+ },
20
+ "sideEffects": false,
21
+ "module": "fesm2022/ngx-brevo.mjs",
22
+ "typings": "types/ngx-brevo.d.ts",
23
+ "exports": {
24
+ "./package.json": {
25
+ "default": "./package.json"
26
+ },
27
+ ".": {
28
+ "types": "./types/ngx-brevo.d.ts",
29
+ "default": "./fesm2022/ngx-brevo.mjs"
30
+ }
31
+ },
32
+ "type": "module"
33
+ }
@@ -0,0 +1,384 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, Provider } from '@angular/core';
3
+ import * as ngx_brevo from 'ngx-brevo';
4
+ import { HttpInterceptorFn } from '@angular/common/http';
5
+
6
+ interface EmailTemplate {
7
+ id: string | number;
8
+ name: string;
9
+ subject: string;
10
+ sender: {
11
+ name: string;
12
+ email: string;
13
+ };
14
+ htmlContent: string;
15
+ isActive: boolean;
16
+ createdAt: string;
17
+ updatedAt: string;
18
+ tags?: string[];
19
+ }
20
+ interface AccountInfo {
21
+ email: string;
22
+ firstName: string;
23
+ lastName: string;
24
+ companyName: string;
25
+ plan: Array<{
26
+ type: string;
27
+ credits: number;
28
+ creditsType: string;
29
+ }>;
30
+ }
31
+ interface EmailStats {
32
+ requests: number;
33
+ delivered: number;
34
+ opened: number;
35
+ uniqueOpens: number;
36
+ clicked: number;
37
+ uniqueClicks: number;
38
+ complaints: number;
39
+ hardBounces: number;
40
+ softBounces: number;
41
+ blocked: number;
42
+ unsubscribed: number;
43
+ }
44
+ interface SmtpLog {
45
+ messageId: string;
46
+ email: string;
47
+ event: string;
48
+ reason?: string;
49
+ date: string;
50
+ subject?: string;
51
+ templateId?: number;
52
+ }
53
+ interface TemplateUpdatePayload {
54
+ name?: string;
55
+ subject?: string;
56
+ sender?: {
57
+ name: string;
58
+ email: string;
59
+ };
60
+ htmlContent?: string;
61
+ isActive?: boolean;
62
+ }
63
+ interface Sender {
64
+ id: number;
65
+ name: string;
66
+ email: string;
67
+ active: boolean;
68
+ ips?: Array<{
69
+ ip: string;
70
+ weight: number;
71
+ }>;
72
+ }
73
+ interface Domain {
74
+ domain: string;
75
+ authenticated: boolean;
76
+ verified: boolean;
77
+ active: boolean;
78
+ }
79
+ interface Webhook {
80
+ id: number;
81
+ url: string;
82
+ description: string;
83
+ events: string[];
84
+ type: 'marketing' | 'transactional';
85
+ createdAt: string;
86
+ modifiedAt: string;
87
+ }
88
+ interface Process {
89
+ id: number;
90
+ status: 'queued' | 'in_process' | 'completed' | 'suspended';
91
+ name: string;
92
+ export_url?: string;
93
+ }
94
+ interface BrevoUser {
95
+ email: string;
96
+ firstName: string;
97
+ lastName: string;
98
+ status: string;
99
+ privileges: string[];
100
+ }
101
+ interface OrganizationActivity {
102
+ id: string;
103
+ user: string;
104
+ action: string;
105
+ date: string;
106
+ details?: any;
107
+ }
108
+ interface BulkOperation {
109
+ type: 'subject_replace' | 'sender_update' | 'variable_rename' | 'toggle_status' | 'export';
110
+ templateIds: string[];
111
+ config: any;
112
+ }
113
+ interface EmailProvider {
114
+ listTemplates(): Promise<EmailTemplate[]>;
115
+ getTemplate(id: string | number): Promise<EmailTemplate>;
116
+ updateTemplate(id: string | number, payload: TemplateUpdatePayload): Promise<EmailTemplate>;
117
+ createTemplate(payload: Partial<EmailTemplate>): Promise<EmailTemplate>;
118
+ deleteTemplate(id: string | number): Promise<void>;
119
+ sendTestEmail(id: string | number, email: string): Promise<void>;
120
+ getAccountInfo(): Promise<AccountInfo>;
121
+ getStatistics(startDate?: string, endDate?: string): Promise<EmailStats>;
122
+ getSmtpLogs(limit?: number, offset?: number, event?: string): Promise<SmtpLog[]>;
123
+ getSenders(): Promise<Sender[]>;
124
+ createSender(sender: Partial<Sender>): Promise<Sender>;
125
+ getDomains(): Promise<Domain[]>;
126
+ getWebhooks(): Promise<Webhook[]>;
127
+ getProcesses(): Promise<Process[]>;
128
+ getUsers(): Promise<BrevoUser[]>;
129
+ getOrganizationActivities(startDate?: string, endDate?: string, limit?: number): Promise<OrganizationActivity[]>;
130
+ }
131
+
132
+ declare const EMAIL_PROVIDER: InjectionToken<EmailProvider>;
133
+ interface EmailOpsConfig {
134
+ provider: 'brevo' | 'sendgrid' | 'resend' | 'ses';
135
+ apiKey: string;
136
+ }
137
+ declare const EMAIL_OPS_CONFIG: InjectionToken<EmailOpsConfig>;
138
+
139
+ interface AuthCredentials {
140
+ username?: string;
141
+ password?: string;
142
+ [key: string]: any;
143
+ }
144
+ interface AuthResponse {
145
+ success: boolean;
146
+ user?: any;
147
+ error?: string;
148
+ }
149
+ interface AuthProvider {
150
+ login(credentials: AuthCredentials): Promise<AuthResponse>;
151
+ logout(): Promise<void>;
152
+ isAuthenticated(): Promise<boolean>;
153
+ }
154
+ declare const AUTH_PROVIDER: InjectionToken<AuthProvider>;
155
+ interface AuthConfig {
156
+ enabled: boolean;
157
+ defaultCredentials?: {
158
+ username: string;
159
+ password: string;
160
+ };
161
+ }
162
+ declare const AUTH_CONFIG: InjectionToken<AuthConfig>;
163
+
164
+ interface EmailOpsRootConfig extends EmailOpsConfig {
165
+ auth?: AuthConfig;
166
+ }
167
+ declare function provideEmailOps(config: EmailOpsRootConfig): Provider[];
168
+
169
+ declare class AuthStore {
170
+ private provider;
171
+ private _user;
172
+ private _loading;
173
+ private _error;
174
+ user: i0.Signal<any>;
175
+ isAuthenticated: i0.Signal<boolean>;
176
+ loading: i0.Signal<boolean>;
177
+ error: i0.Signal<string | null>;
178
+ constructor();
179
+ login(credentials: AuthCredentials): Promise<void>;
180
+ logout(): Promise<void>;
181
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthStore, never>;
182
+ static ɵprov: i0.ɵɵInjectableDeclaration<AuthStore>;
183
+ }
184
+
185
+ declare class ThemeService {
186
+ private platformId;
187
+ theme: i0.WritableSignal<"light" | "dark">;
188
+ constructor();
189
+ toggle(): void;
190
+ static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
191
+ static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
192
+ }
193
+
194
+ declare class NgxBrevoDashboardComponent {
195
+ auth: AuthStore;
196
+ themeService: ThemeService;
197
+ activeTab: i0.WritableSignal<"editor" | "list" | "dashboard" | "settings" | "bulk" | "profile" | "infra" | "activity" | "analytics" | "logs">;
198
+ editingId: i0.WritableSignal<string | number | null>;
199
+ mobileSidebarActive: i0.WritableSignal<boolean>;
200
+ menuItems: {
201
+ id: string;
202
+ label: string;
203
+ icon: string;
204
+ }[];
205
+ constructor();
206
+ onResize(): void;
207
+ isMobile(): boolean;
208
+ checkBreakpoint(): void;
209
+ onMenuButtonClick(): void;
210
+ setTab(tab: any): void;
211
+ handleNavigation(event: any): void;
212
+ closeMobileMenu(): void;
213
+ onEdit(id: string | number): void;
214
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxBrevoDashboardComponent, never>;
215
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgxBrevoDashboardComponent, "lib-ngx-brevo-dashboard", never, {}, {}, never, never, true, never>;
216
+ }
217
+
218
+ declare class EmailService {
219
+ private provider;
220
+ listTemplates(): Promise<EmailTemplate[]>;
221
+ getTemplate(id: string | number): Promise<EmailTemplate>;
222
+ updateTemplate(id: string | number, payload: TemplateUpdatePayload): Promise<EmailTemplate>;
223
+ createTemplate(payload: Partial<EmailTemplate>): Promise<EmailTemplate>;
224
+ deleteTemplate(id: string | number): Promise<void>;
225
+ sendTestEmail(id: string | number, email: string): Promise<void>;
226
+ getAccountInfo(): Promise<AccountInfo>;
227
+ getStatistics(startDate?: string, endDate?: string): Promise<EmailStats>;
228
+ getSmtpLogs(limit?: number, offset?: number, event?: string): Promise<ngx_brevo.SmtpLog[]>;
229
+ getSenders(): Promise<ngx_brevo.Sender[]>;
230
+ createSender(sender: any): Promise<ngx_brevo.Sender>;
231
+ getDomains(): Promise<ngx_brevo.Domain[]>;
232
+ getWebhooks(): Promise<ngx_brevo.Webhook[]>;
233
+ getProcesses(): Promise<ngx_brevo.Process[]>;
234
+ getUsers(): Promise<ngx_brevo.BrevoUser[]>;
235
+ getOrganizationActivities(startDate?: string, endDate?: string, limit?: number): Promise<ngx_brevo.OrganizationActivity[]>;
236
+ static ɵfac: i0.ɵɵFactoryDeclaration<EmailService, never>;
237
+ static ɵprov: i0.ɵɵInjectableDeclaration<EmailService>;
238
+ }
239
+
240
+ declare class BrevoProvider implements EmailProvider {
241
+ private http;
242
+ private config;
243
+ private templatesUrl;
244
+ private accountUrl;
245
+ private statsUrl;
246
+ private logsUrl;
247
+ private sendersUrl;
248
+ private webhooksUrl;
249
+ private domainsUrl;
250
+ private processesUrl;
251
+ private usersUrl;
252
+ private activitiesUrl;
253
+ private get headers();
254
+ listTemplates(): Promise<EmailTemplate[]>;
255
+ getTemplate(id: string | number): Promise<EmailTemplate>;
256
+ updateTemplate(id: string | number, payload: TemplateUpdatePayload): Promise<EmailTemplate>;
257
+ createTemplate(payload: Partial<EmailTemplate>): Promise<EmailTemplate>;
258
+ deleteTemplate(id: string | number): Promise<void>;
259
+ sendTestEmail(id: string | number, email: string): Promise<void>;
260
+ getAccountInfo(): Promise<AccountInfo>;
261
+ getStatistics(startDate?: string, endDate?: string): Promise<EmailStats>;
262
+ getSmtpLogs(limit?: number, offset?: number, event?: string): Promise<any[]>;
263
+ getSenders(): Promise<any[]>;
264
+ createSender(sender: any): Promise<any>;
265
+ getDomains(): Promise<any[]>;
266
+ getWebhooks(): Promise<any[]>;
267
+ getProcesses(): Promise<any[]>;
268
+ getUsers(): Promise<any[]>;
269
+ getOrganizationActivities(startDate?: string, endDate?: string, limit?: number): Promise<any[]>;
270
+ private mapToInternal;
271
+ private mapToBrevo;
272
+ static ɵfac: i0.ɵɵFactoryDeclaration<BrevoProvider, never>;
273
+ static ɵprov: i0.ɵɵInjectableDeclaration<BrevoProvider>;
274
+ }
275
+
276
+ declare class DefaultAuthProvider implements AuthProvider {
277
+ private config;
278
+ login(credentials: AuthCredentials): Promise<AuthResponse>;
279
+ logout(): Promise<void>;
280
+ isAuthenticated(): Promise<boolean>;
281
+ static ɵfac: i0.ɵɵFactoryDeclaration<DefaultAuthProvider, never>;
282
+ static ɵprov: i0.ɵɵInjectableDeclaration<DefaultAuthProvider>;
283
+ }
284
+
285
+ declare class TemplateStore {
286
+ private emailService;
287
+ private _templates;
288
+ private _loading;
289
+ private _error;
290
+ private _searchQuery;
291
+ templates: i0.Signal<EmailTemplate[]>;
292
+ loading: i0.Signal<boolean>;
293
+ error: i0.Signal<string | null>;
294
+ loadTemplates(): Promise<void>;
295
+ setSearchQuery(query: string): void;
296
+ updateLocalTemplate(template: EmailTemplate): void;
297
+ static ɵfac: i0.ɵɵFactoryDeclaration<TemplateStore, never>;
298
+ static ɵprov: i0.ɵɵInjectableDeclaration<TemplateStore>;
299
+ }
300
+
301
+ interface BulkJob {
302
+ id: string;
303
+ type: string;
304
+ total: number;
305
+ current: number;
306
+ status: 'idle' | 'running' | 'paused' | 'completed' | 'failed';
307
+ results: {
308
+ id: string | number;
309
+ success: boolean;
310
+ error?: string;
311
+ }[];
312
+ }
313
+ declare class BulkStore {
314
+ private emailService;
315
+ private _activeJob;
316
+ activeJob: i0.Signal<BulkJob | null>;
317
+ runBulkOperation(type: string, templateIds: (string | number)[], config: any): Promise<void>;
318
+ private executeOperation;
319
+ private updateJobProgress;
320
+ cancelJob(): void;
321
+ clearJob(): void;
322
+ static ɵfac: i0.ɵɵFactoryDeclaration<BulkStore, never>;
323
+ static ɵprov: i0.ɵɵInjectableDeclaration<BulkStore>;
324
+ }
325
+
326
+ declare class EditorStore {
327
+ private emailService;
328
+ private db;
329
+ private _activeTemplate;
330
+ private _view;
331
+ private _previewMode;
332
+ private _saving;
333
+ activeTemplate: i0.Signal<EmailTemplate | null>;
334
+ view: i0.Signal<"code" | "preview">;
335
+ previewMode: i0.Signal<"desktop" | "mobile">;
336
+ saving: i0.Signal<boolean>;
337
+ detectedVariables: i0.Signal<string[]>;
338
+ loadTemplate(id: string | number): Promise<void>;
339
+ updateHtml(html: string): void;
340
+ updateFields(fields: Partial<EmailTemplate>): void;
341
+ setView(view: 'code' | 'preview'): void;
342
+ setPreviewMode(mode: 'desktop' | 'mobile'): void;
343
+ save(): Promise<void>;
344
+ static ɵfac: i0.ɵɵFactoryDeclaration<EditorStore, never>;
345
+ static ɵprov: i0.ɵɵInjectableDeclaration<EditorStore>;
346
+ }
347
+
348
+ declare class LoginComponent {
349
+ private authStore;
350
+ themeService: ThemeService;
351
+ appVersion: string;
352
+ appBuild: string;
353
+ orgName: string;
354
+ showPassword: i0.WritableSignal<boolean>;
355
+ username: string;
356
+ password: string;
357
+ loading: i0.Signal<boolean>;
358
+ error: i0.Signal<string | null>;
359
+ onSubmit(event: Event): Promise<void>;
360
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoginComponent, never>;
361
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoginComponent, "lib-login", never, {}, {}, never, never, true, never>;
362
+ }
363
+
364
+ declare const errorInterceptor: HttpInterceptorFn;
365
+
366
+ declare const loaderInterceptor: HttpInterceptorFn;
367
+
368
+ declare class LoaderService {
369
+ private activeRequests;
370
+ loading: i0.WritableSignal<boolean>;
371
+ show(): void;
372
+ hide(): void;
373
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoaderService, never>;
374
+ static ɵprov: i0.ɵɵInjectableDeclaration<LoaderService>;
375
+ }
376
+
377
+ declare class LoaderComponent {
378
+ loaderService: LoaderService;
379
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoaderComponent, never>;
380
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoaderComponent, "lib-loader", never, {}, {}, never, never, true, never>;
381
+ }
382
+
383
+ export { AUTH_CONFIG, AUTH_PROVIDER, AuthStore, BrevoProvider, BulkStore, DefaultAuthProvider, EMAIL_OPS_CONFIG, EMAIL_PROVIDER, EditorStore, EmailService, LoaderComponent, LoaderService, LoginComponent, NgxBrevoDashboardComponent, TemplateStore, errorInterceptor, loaderInterceptor, provideEmailOps };
384
+ export type { AccountInfo, AuthConfig, AuthCredentials, AuthProvider, AuthResponse, BrevoUser, BulkJob, BulkOperation, Domain, EmailOpsConfig, EmailOpsRootConfig, EmailProvider, EmailStats, EmailTemplate, OrganizationActivity, Process, Sender, SmtpLog, TemplateUpdatePayload, Webhook };