prime-sdk 1.0.0 → 1.1.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.
Files changed (117) hide show
  1. package/README.md +106 -12
  2. package/dist/app.module.js +36 -0
  3. package/dist/app.module.js.map +1 -1
  4. package/dist/app.service.d.ts +5 -1
  5. package/dist/app.service.js +20 -2
  6. package/dist/app.service.js.map +1 -1
  7. package/dist/external/aws/kms/kms.provider.d.ts +12 -0
  8. package/dist/external/aws/kms/kms.provider.js +31 -0
  9. package/dist/external/aws/kms/kms.provider.js.map +1 -0
  10. package/dist/external/aws/kms/kms.service.d.ts +9 -0
  11. package/dist/external/aws/{sqs.service.js → kms/kms.service.js} +20 -30
  12. package/dist/external/aws/kms/kms.service.js.map +1 -0
  13. package/dist/external/aws/{sqs.provider.d.ts → s3/s3.provider.d.ts} +4 -4
  14. package/dist/external/aws/s3/s3.provider.js +31 -0
  15. package/dist/external/aws/s3/s3.provider.js.map +1 -0
  16. package/dist/external/aws/s3/s3.service.d.ts +12 -0
  17. package/dist/external/aws/s3/s3.service.js +73 -0
  18. package/dist/external/aws/s3/s3.service.js.map +1 -0
  19. package/dist/external/aws/ses/ses.provider.d.ts +12 -0
  20. package/dist/external/aws/ses/ses.provider.js +31 -0
  21. package/dist/external/aws/ses/ses.provider.js.map +1 -0
  22. package/dist/external/aws/ses/ses.service.d.ts +9 -0
  23. package/dist/external/aws/ses/ses.service.js +60 -0
  24. package/dist/external/aws/ses/ses.service.js.map +1 -0
  25. package/dist/external/aws/sns/sns.provider.d.ts +12 -0
  26. package/dist/external/aws/sns/sns.provider.js +31 -0
  27. package/dist/external/aws/sns/sns.provider.js.map +1 -0
  28. package/dist/external/aws/sns/sns.service.d.ts +9 -0
  29. package/dist/external/aws/sns/sns.service.js +43 -0
  30. package/dist/external/aws/sns/sns.service.js.map +1 -0
  31. package/dist/lib/crypto/crypto.d.ts +9 -0
  32. package/dist/lib/crypto/crypto.js +35 -0
  33. package/dist/lib/crypto/crypto.js.map +1 -0
  34. package/dist/lib/crypto/crypto.module.d.ts +5 -0
  35. package/dist/lib/crypto/crypto.module.js +30 -0
  36. package/dist/lib/crypto/crypto.module.js.map +1 -0
  37. package/dist/lib/crypto/interfaces/crypto.interface.d.ts +7 -0
  38. package/dist/lib/crypto/interfaces/crypto.interface.js +5 -0
  39. package/dist/lib/crypto/interfaces/crypto.interface.js.map +1 -0
  40. package/dist/lib/crypto/types/crypto.type.d.ts +9 -0
  41. package/dist/lib/crypto/types/crypto.type.js +3 -0
  42. package/dist/lib/crypto/types/crypto.type.js.map +1 -0
  43. package/dist/lib/email/email.d.ts +9 -0
  44. package/dist/lib/email/email.js +35 -0
  45. package/dist/lib/email/email.js.map +1 -0
  46. package/dist/lib/email/email.module.d.ts +5 -0
  47. package/dist/lib/email/email.module.js +30 -0
  48. package/dist/lib/email/email.module.js.map +1 -0
  49. package/dist/lib/email/email.type.d.ts +0 -0
  50. package/dist/lib/email/email.type.js +1 -0
  51. package/dist/lib/email/email.type.js.map +1 -0
  52. package/dist/lib/email/interfaces/email.interface.d.ts +7 -0
  53. package/dist/lib/email/interfaces/email.interface.js +5 -0
  54. package/dist/lib/email/interfaces/email.interface.js.map +1 -0
  55. package/dist/lib/email/types/email.type.d.ts +11 -0
  56. package/dist/lib/email/types/email.type.js +3 -0
  57. package/dist/lib/email/types/email.type.js.map +1 -0
  58. package/dist/lib/email/types.type.d.ts +0 -0
  59. package/dist/lib/email/types.type.js +1 -0
  60. package/dist/lib/email/types.type.js.map +1 -0
  61. package/dist/lib/events/event.module.d.ts +5 -0
  62. package/dist/lib/events/event.module.js +30 -0
  63. package/dist/lib/events/event.module.js.map +1 -0
  64. package/dist/lib/events/events.d.ts +7 -0
  65. package/dist/lib/events/events.js +19 -1
  66. package/dist/lib/events/events.js.map +1 -1
  67. package/dist/lib/events/interfaces/event.interface.d.ts +7 -0
  68. package/dist/lib/events/interfaces/event.interface.js +5 -0
  69. package/dist/lib/events/interfaces/event.interface.js.map +1 -0
  70. package/dist/lib/events/types/event.type.d.ts +8 -0
  71. package/dist/lib/events/types/event.type.js +3 -0
  72. package/dist/lib/events/types/event.type.js.map +1 -0
  73. package/dist/lib/storage/interfaces/storage.interface.d.ts +10 -0
  74. package/dist/lib/storage/interfaces/storage.interface.js +5 -0
  75. package/dist/lib/storage/interfaces/storage.interface.js.map +1 -0
  76. package/dist/lib/storage/storage.d.ts +10 -0
  77. package/dist/lib/storage/storage.js +28 -1
  78. package/dist/lib/storage/storage.js.map +1 -1
  79. package/dist/lib/storage/storage.module.d.ts +5 -0
  80. package/dist/lib/storage/storage.module.js +30 -0
  81. package/dist/lib/storage/storage.module.js.map +1 -0
  82. package/dist/lib/storage/types/storage.type.d.ts +22 -0
  83. package/dist/lib/storage/types/storage.type.js +3 -0
  84. package/dist/lib/storage/types/storage.type.js.map +1 -0
  85. package/dist/tsconfig.build.tsbuildinfo +1 -1
  86. package/package.json +7 -2
  87. package/queue.bash +3 -3
  88. package/src/app.module.ts +37 -0
  89. package/src/app.service.ts +24 -1
  90. package/src/external/aws/kms/kms.provider.ts +39 -0
  91. package/src/external/aws/kms/kms.service.ts +33 -0
  92. package/src/external/aws/s3/s3.provider.ts +39 -0
  93. package/src/external/aws/s3/s3.service.ts +86 -0
  94. package/src/external/aws/ses/ses.provider.ts +39 -0
  95. package/src/external/aws/ses/ses.service.ts +52 -0
  96. package/src/external/aws/sns/sns.provider.ts +39 -0
  97. package/src/external/aws/sns/sns.service.ts +31 -0
  98. package/src/lib/crypto/crypto.module.ts +17 -0
  99. package/src/lib/crypto/crypto.ts +20 -0
  100. package/src/lib/crypto/interfaces/crypto.interface.ts +12 -0
  101. package/src/lib/crypto/types/crypto.type.ts +3 -0
  102. package/src/lib/email/email.module.ts +17 -0
  103. package/src/lib/email/email.ts +20 -0
  104. package/src/lib/email/interfaces/email.interface.ts +12 -0
  105. package/src/lib/email/types/email.type.ts +12 -0
  106. package/src/lib/events/event.module.ts +17 -0
  107. package/src/lib/events/events.ts +15 -2
  108. package/src/lib/events/interfaces/event.interface.ts +9 -0
  109. package/src/lib/events/types/event.type.ts +9 -0
  110. package/src/lib/storage/interfaces/storage.interface.ts +22 -0
  111. package/src/lib/storage/storage.module.ts +17 -0
  112. package/src/lib/storage/storage.ts +37 -2
  113. package/src/lib/storage/types/storage.type.ts +24 -0
  114. package/dist/external/aws/sqs.provider.js +0 -31
  115. package/dist/external/aws/sqs.provider.js.map +0 -1
  116. package/dist/external/aws/sqs.service.d.ts +0 -17
  117. package/dist/external/aws/sqs.service.js.map +0 -1
package/README.md CHANGED
@@ -2,15 +2,17 @@
2
2
 
3
3
  ```bash
4
4
  yarn add prime-sdk
5
+
6
+ or
7
+
8
+ npm install prime-sdk
5
9
  ```
6
10
 
7
- ### SQS
11
+ ### Queue (Sqs)
12
+
13
+ Install the module
8
14
 
9
- Instale no modulo da aplicação
10
15
  ```bash
11
- import { Module } from '@nestjs/common';
12
- import { AppService } from './app.service';
13
- import { QueueModule } from './lib/queue/queue.module';
14
16
 
15
17
  @Module({
16
18
  imports: [
@@ -30,13 +32,9 @@ export class AppModule {}
30
32
 
31
33
  ```
32
34
 
33
- Adicione a trigger no local que desejar
34
- ```bash
35
+ example of usage
35
36
 
36
- import { Injectable } from '@nestjs/common';
37
- import { IConsumer } from './lib/queue/interfaces/consumer.interface';
38
- import { Message } from '@aws-sdk/client-sqs';
39
- import { Queue } from './lib/queue/queue';
37
+ ```bash
40
38
 
41
39
  @Injectable()
42
40
  export class AppService implements IConsumer {
@@ -60,4 +58,100 @@ export class AppService implements IConsumer {
60
58
  }
61
59
  }
62
60
 
63
- ```
61
+ ```
62
+
63
+ ### Events (Sns)
64
+
65
+ Install the module
66
+
67
+ ```bash
68
+
69
+ @Module({
70
+ imports: [
71
+ EventModule.forRoot({
72
+ credentials: {
73
+ accessKeyId: '000000000',
74
+ secretAccessKey: '000000000',
75
+ },
76
+ endpoint: 'http://localhost:4566/',
77
+ region: 'us-east-1',
78
+ }),
79
+ ],
80
+ providers: [AppService],
81
+ exports: [],
82
+ })
83
+ export class AppModule {}
84
+
85
+ ```
86
+
87
+ example of usage
88
+
89
+ ```bash
90
+
91
+ @Injectable()
92
+ export class AppService implements IConsumer {
93
+ constructor(private readonly event: Events) {}
94
+
95
+ public async trigger() {
96
+ this.event.triggerEvent({
97
+ topic: "arn:aws:sns:us-east-1:000000000000:teste-topic",
98
+ message: 'teste',
99
+ });
100
+ }
101
+ }
102
+
103
+ ```
104
+
105
+ ### Storage (S3)
106
+
107
+ Install the module
108
+
109
+ ```bash
110
+
111
+ @Module({
112
+ imports: [
113
+ StorageModule.forRoot({
114
+ credentials: {
115
+ accessKeyId: '000000000',
116
+ secretAccessKey: '000000000',
117
+ },
118
+ endpoint: 'http://localhost:4566/sample-bucket',
119
+ region: 'us-east-1',
120
+ })
121
+ ],
122
+ providers: [AppService],
123
+ exports: [],
124
+ })
125
+ export class AppModule {}
126
+
127
+ ```
128
+
129
+ Example of usage
130
+
131
+ ```bash
132
+
133
+ @Injectable()
134
+ export class AppService implements IConsumer {
135
+ constructor(private readonly storage: Storage) {}
136
+
137
+ public async trigger() {
138
+
139
+ const data = JSON.stringify({ teste: new Date().toISOString() });
140
+
141
+ const file = Buffer.from(data, 'utf-8');
142
+
143
+ this.storage.uploadFile({
144
+ bucket: 'sample-bucket',
145
+ file: file,
146
+ nameFile: 'teste.txt',
147
+ path: 'prime-sdk',
148
+ });
149
+ }
150
+ }
151
+
152
+ ```
153
+
154
+
155
+ #### Next steps
156
+
157
+ - Interface for Class to facilite test
@@ -10,6 +10,10 @@ exports.AppModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  const app_service_1 = require("./app.service");
12
12
  const queue_module_1 = require("./lib/queue/queue.module");
13
+ const storage_module_1 = require("./lib/storage/storage.module");
14
+ const event_module_1 = require("./lib/events/event.module");
15
+ const crypto_module_1 = require("./lib/crypto/crypto.module");
16
+ const email_module_1 = require("./lib/email/email.module");
13
17
  let AppModule = class AppModule {
14
18
  };
15
19
  exports.AppModule = AppModule;
@@ -24,6 +28,38 @@ exports.AppModule = AppModule = __decorate([
24
28
  endpoint: 'http://localhost:4566/',
25
29
  region: 'us-east-1',
26
30
  }),
31
+ storage_module_1.StorageModule.forRoot({
32
+ credentials: {
33
+ accessKeyId: '000000000',
34
+ secretAccessKey: '000000000',
35
+ },
36
+ endpoint: 'http://localhost:4566/sample-bucket',
37
+ region: 'us-east-1',
38
+ }),
39
+ event_module_1.EventModule.forRoot({
40
+ credentials: {
41
+ accessKeyId: '000000000',
42
+ secretAccessKey: '000000000',
43
+ },
44
+ endpoint: 'http://localhost:4566/',
45
+ region: 'us-east-1',
46
+ }),
47
+ crypto_module_1.CryptoModule.forRoot({
48
+ credentials: {
49
+ accessKeyId: '000000000',
50
+ secretAccessKey: '000000000',
51
+ },
52
+ endpoint: 'http://localhost:4566/',
53
+ region: 'us-east-1',
54
+ }),
55
+ email_module_1.EmailModule.forRoot({
56
+ credentials: {
57
+ accessKeyId: '000000000',
58
+ secretAccessKey: '000000000',
59
+ },
60
+ endpoint: 'http://localhost:4566/',
61
+ region: 'us-east-1',
62
+ }),
27
63
  ],
28
64
  providers: [app_service_1.AppService],
29
65
  exports: [],
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,+CAA2C;AAC3C,2DAAuD;AAgBhD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAdrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,0BAAW,CAAC,OAAO,CAAC;gBAClB,WAAW,EAAE;oBACX,WAAW,EAAE,WAAW;oBACxB,eAAe,EAAE,WAAW;iBAC7B;gBACD,QAAQ,EAAE,wBAAwB;gBAClC,MAAM,EAAE,WAAW;aACpB,CAAC;SACH;QACD,SAAS,EAAE,CAAC,wBAAU,CAAC;QACvB,OAAO,EAAE,EAAE;KACZ,CAAC;GACW,SAAS,CAAG"}
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,+CAA2C;AAC3C,2DAAuD;AACvD,iEAA6D;AAC7D,4DAAwD;AACxD,8DAA0D;AAC1D,2DAAuD;AAiDhD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IA9CrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,0BAAW,CAAC,OAAO,CAAC;gBAClB,WAAW,EAAE;oBACX,WAAW,EAAE,WAAW;oBACxB,eAAe,EAAE,WAAW;iBAC7B;gBACD,QAAQ,EAAE,wBAAwB;gBAClC,MAAM,EAAE,WAAW;aACpB,CAAC;YACF,8BAAa,CAAC,OAAO,CAAC;gBACpB,WAAW,EAAE;oBACX,WAAW,EAAE,WAAW;oBACxB,eAAe,EAAE,WAAW;iBAC7B;gBACD,QAAQ,EAAE,qCAAqC;gBAC/C,MAAM,EAAE,WAAW;aACpB,CAAC;YACF,0BAAW,CAAC,OAAO,CAAC;gBAClB,WAAW,EAAE;oBACX,WAAW,EAAE,WAAW;oBACxB,eAAe,EAAE,WAAW;iBAC7B;gBACD,QAAQ,EAAE,wBAAwB;gBAClC,MAAM,EAAE,WAAW;aACpB,CAAC;YACF,4BAAY,CAAC,OAAO,CAAC;gBACnB,WAAW,EAAE;oBACX,WAAW,EAAE,WAAW;oBACxB,eAAe,EAAE,WAAW;iBAC7B;gBACD,QAAQ,EAAE,wBAAwB;gBAClC,MAAM,EAAE,WAAW;aACpB,CAAC;YACF,0BAAW,CAAC,OAAO,CAAC;gBAClB,WAAW,EAAE;oBACX,WAAW,EAAE,WAAW;oBACxB,eAAe,EAAE,WAAW;iBAC7B;gBACD,QAAQ,EAAE,wBAAwB;gBAClC,MAAM,EAAE,WAAW;aACpB,CAAC;SACH;QACD,SAAS,EAAE,CAAC,wBAAU,CAAC;QACvB,OAAO,EAAE,EAAE;KACZ,CAAC;GACW,SAAS,CAAG"}
@@ -1,9 +1,13 @@
1
1
  import { IConsumer } from './lib/queue/interfaces/consumer.interface';
2
2
  import { Message } from '@aws-sdk/client-sqs';
3
3
  import { Queue } from './lib/queue/queue';
4
+ import { Storage } from './lib/storage/storage';
5
+ import { Events } from './lib/events/events';
4
6
  export declare class AppService implements IConsumer {
5
7
  private readonly queueHandler;
6
- constructor(queueHandler: Queue);
8
+ private readonly storage;
9
+ private readonly event;
10
+ constructor(queueHandler: Queue, storage: Storage, event: Events);
7
11
  handleMessage(message: Message | Message[]): Promise<void>;
8
12
  handleError(error: unknown): Promise<void>;
9
13
  }
@@ -12,9 +12,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.AppService = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const queue_1 = require("./lib/queue/queue");
15
+ const storage_1 = require("./lib/storage/storage");
16
+ const events_1 = require("./lib/events/events");
15
17
  let AppService = class AppService {
16
- constructor(queueHandler) {
18
+ constructor(queueHandler, storage, event) {
17
19
  this.queueHandler = queueHandler;
20
+ this.storage = storage;
21
+ this.event = event;
18
22
  this.queueHandler.handler({
19
23
  QueueUrl: `${'teste'}`,
20
24
  context: this,
@@ -24,6 +28,18 @@ let AppService = class AppService {
24
28
  }
25
29
  handleMessage(message) {
26
30
  console.log(message);
31
+ const data = JSON.stringify({ teste: new Date().toISOString() });
32
+ this.event.triggerEvent({
33
+ topic: 'arn:aws:sns:us-east-1:000000000000:teste-topic',
34
+ message: data,
35
+ });
36
+ const file = Buffer.from(data, 'utf-8');
37
+ this.storage.uploadFile({
38
+ bucket: 'sample-bucket',
39
+ file: file,
40
+ nameFile: 'teste.txt',
41
+ path: 'prime-sdk',
42
+ });
27
43
  return;
28
44
  }
29
45
  handleError(error) {
@@ -34,6 +50,8 @@ let AppService = class AppService {
34
50
  exports.AppService = AppService;
35
51
  exports.AppService = AppService = __decorate([
36
52
  (0, common_1.Injectable)(),
37
- __metadata("design:paramtypes", [queue_1.Queue])
53
+ __metadata("design:paramtypes", [queue_1.Queue,
54
+ storage_1.Storage,
55
+ events_1.Events])
38
56
  ], AppService);
39
57
  //# sourceMappingURL=app.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.service.js","sourceRoot":"","sources":["../src/app.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,6CAA0C;AAGnC,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,YAA6B,YAAmB;QAAnB,iBAAY,GAAZ,YAAY,CAAO;QAC9C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YACxB,QAAQ,EAAE,GAAG,OAAO,EAAE;YACtB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,CAAC;YACP,eAAe,EAAE,EAAE;SACpB,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,OAA4B;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;CACF,CAAA;AAnBY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAEgC,aAAK;GADrC,UAAU,CAmBtB"}
1
+ {"version":3,"file":"app.service.js","sourceRoot":"","sources":["../src/app.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,6CAA0C;AAC1C,mDAAgD;AAChD,gDAA6C;AAGtC,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,YACmB,YAAmB,EACnB,OAAgB,EAChB,KAAa;QAFb,iBAAY,GAAZ,YAAY,CAAO;QACnB,YAAO,GAAP,OAAO,CAAS;QAChB,UAAK,GAAL,KAAK,CAAQ;QAE9B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YACxB,QAAQ,EAAE,GAAG,OAAO,EAAE;YACtB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,CAAC;YACP,eAAe,EAAE,EAAE;SACpB,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,OAA4B;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAErB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;YACtB,KAAK,EAAE,gDAAgD;YACvD,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACtB,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QAEH,OAAO;IACT,CAAC;IAED,WAAW,CAAC,KAAc;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;CACF,CAAA;AAxCY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAGsB,aAAK;QACV,iBAAO;QACT,eAAM;GAJrB,UAAU,CAwCtB"}
@@ -0,0 +1,12 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ export type KMSSetup = {
3
+ region: string;
4
+ endpoint?: string;
5
+ credentials: {
6
+ accessKeyId: string;
7
+ secretAccessKey: string;
8
+ };
9
+ };
10
+ export declare class KMSModule {
11
+ static forRoot(params: KMSSetup): DynamicModule;
12
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KMSModule = void 0;
4
+ const client_kms_1 = require("@aws-sdk/client-kms");
5
+ const KMSProvider = (params) => {
6
+ return {
7
+ provide: 'CONNECTION_KMS',
8
+ useFactory: () => {
9
+ return new client_kms_1.KMSClient({
10
+ credentials: {
11
+ accessKeyId: params.credentials.accessKeyId,
12
+ secretAccessKey: params.credentials.secretAccessKey,
13
+ },
14
+ ...(params.endpoint && { endpoint: params.endpoint }),
15
+ region: params.region,
16
+ });
17
+ },
18
+ };
19
+ };
20
+ class KMSModule {
21
+ static forRoot(params) {
22
+ const kmsProvider = KMSProvider(params);
23
+ return {
24
+ module: KMSModule,
25
+ providers: [kmsProvider],
26
+ exports: [kmsProvider],
27
+ };
28
+ }
29
+ }
30
+ exports.KMSModule = KMSModule;
31
+ //# sourceMappingURL=kms.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kms.provider.js","sourceRoot":"","sources":["../../../../src/external/aws/kms/kms.provider.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAYhD,MAAM,WAAW,GAAG,CAAC,MAAgB,EAAE,EAAE;IACvC,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,GAAG,EAAE;YACf,OAAO,IAAI,sBAAS,CAAC;gBACnB,WAAW,EAAE;oBACX,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW;oBAC3C,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,eAAe;iBACpD;gBACD,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrD,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAa,SAAS;IACpB,MAAM,CAAC,OAAO,CAAC,MAAgB;QAC7B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAExC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,CAAC,WAAW,CAAC;YACxB,OAAO,EAAE,CAAC,WAAW,CAAC;SACvB,CAAC;IACJ,CAAC;CACF;AAVD,8BAUC"}
@@ -0,0 +1,9 @@
1
+ import { DecryptCommandOutput, EncryptCommandOutput, KMSClient } from '@aws-sdk/client-kms';
2
+ import { ICrypto } from 'src/lib/crypto/interfaces/crypto.interface';
3
+ import { DecryptData, EncryptData } from 'src/lib/crypto/types/crypto.type';
4
+ export declare class KMS implements ICrypto {
5
+ private readonly client;
6
+ constructor(client: KMSClient);
7
+ encrypt(data: EncryptData): Promise<EncryptCommandOutput>;
8
+ decrypt(data: DecryptData): Promise<DecryptCommandOutput>;
9
+ }
@@ -12,42 +12,32 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.Sqs = void 0;
16
- const client_sqs_1 = require("@aws-sdk/client-sqs");
15
+ exports.KMS = void 0;
17
16
  const common_1 = require("@nestjs/common");
18
- let Sqs = class Sqs {
17
+ const client_kms_1 = require("@aws-sdk/client-kms");
18
+ let KMS = class KMS {
19
19
  constructor(client) {
20
20
  this.client = client;
21
21
  }
22
- setup({ waitTimeSeconds, bulk, queueUrl }) {
23
- this.waitTimeSeconds = waitTimeSeconds;
24
- this.bulk = bulk;
25
- this.queueUrl = queueUrl;
26
- }
27
- async sendCommand(command) {
28
- return this.client.send(command);
29
- }
30
- async receiveMessages() {
31
- const input = {
32
- QueueUrl: this.queueUrl,
33
- MaxNumberOfMessages: this.bulk,
34
- WaitTimeSeconds: this.waitTimeSeconds,
35
- };
36
- const command = new client_sqs_1.ReceiveMessageCommand(input);
37
- return (await this.sendCommand(command));
22
+ async encrypt(data) {
23
+ const command = new client_kms_1.EncryptCommand({
24
+ KeyId: data.keyId,
25
+ Plaintext: data.value,
26
+ });
27
+ return await this.client.send(command);
38
28
  }
39
- async deleteMessage(receiptHandle) {
40
- const deleteCommand = new client_sqs_1.DeleteMessageCommand({
41
- QueueUrl: this.queueUrl,
42
- ReceiptHandle: receiptHandle,
29
+ async decrypt(data) {
30
+ const command = new client_kms_1.DecryptCommand({
31
+ CiphertextBlob: data.value,
32
+ KeyId: data.keyId,
43
33
  });
44
- return await this.sendCommand(deleteCommand);
34
+ return await this.client.send(command);
45
35
  }
46
36
  };
47
- exports.Sqs = Sqs;
48
- exports.Sqs = Sqs = __decorate([
37
+ exports.KMS = KMS;
38
+ exports.KMS = KMS = __decorate([
49
39
  (0, common_1.Injectable)(),
50
- __param(0, (0, common_1.Inject)('CONNECTION_SQS')),
51
- __metadata("design:paramtypes", [client_sqs_1.SQSClient])
52
- ], Sqs);
53
- //# sourceMappingURL=sqs.service.js.map
40
+ __param(0, (0, common_1.Inject)('CONNECTION_KMS')),
41
+ __metadata("design:paramtypes", [client_kms_1.KMSClient])
42
+ ], KMS);
43
+ //# sourceMappingURL=kms.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kms.service.js","sourceRoot":"","sources":["../../../../src/external/aws/kms/kms.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,oDAM6B;AAKtB,IAAM,GAAG,GAAT,MAAM,GAAG;IACd,YAAuD,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAE5E,KAAK,CAAC,OAAO,CAAC,IAAiB;QAC7B,MAAM,OAAO,GAAG,IAAI,2BAAc,CAAC;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,KAAK;SACtB,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAiB;QAC7B,MAAM,OAAO,GAAG,IAAI,2BAAc,CAAC;YACjC,cAAc,EAAE,IAAI,CAAC,KAAK;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;CACF,CAAA;AApBY,kBAAG;cAAH,GAAG;IADf,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,gBAAgB,CAAC,CAAA;qCAA0B,sBAAS;GAD7D,GAAG,CAoBf"}
@@ -1,12 +1,12 @@
1
1
  import { DynamicModule } from '@nestjs/common';
2
- export type SqsSetup = {
2
+ export type S3Setup = {
3
3
  region: string;
4
- endpoint: string;
4
+ endpoint?: string;
5
5
  credentials: {
6
6
  accessKeyId: string;
7
7
  secretAccessKey: string;
8
8
  };
9
9
  };
10
- export declare class SqsModule {
11
- static forRoot(params: SqsSetup): DynamicModule;
10
+ export declare class S3Module {
11
+ static forRoot(params: S3Setup): DynamicModule;
12
12
  }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.S3Module = void 0;
4
+ const client_s3_1 = require("@aws-sdk/client-s3");
5
+ const S3Provider = (params) => {
6
+ return {
7
+ provide: 'CONNECTION_S3',
8
+ useFactory: () => {
9
+ return new client_s3_1.S3Client({
10
+ credentials: {
11
+ accessKeyId: params.credentials.accessKeyId,
12
+ secretAccessKey: params.credentials.secretAccessKey,
13
+ },
14
+ ...(params.endpoint && { endpoint: params.endpoint }),
15
+ region: params.region,
16
+ });
17
+ },
18
+ };
19
+ };
20
+ class S3Module {
21
+ static forRoot(params) {
22
+ const s3Provider = S3Provider(params);
23
+ return {
24
+ module: S3Module,
25
+ providers: [s3Provider],
26
+ exports: [s3Provider],
27
+ };
28
+ }
29
+ }
30
+ exports.S3Module = S3Module;
31
+ //# sourceMappingURL=s3.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.provider.js","sourceRoot":"","sources":["../../../../src/external/aws/s3/s3.provider.ts"],"names":[],"mappings":";;;AAAA,kDAA8C;AAY9C,MAAM,UAAU,GAAG,CAAC,MAAe,EAAE,EAAE;IACrC,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,GAAG,EAAE;YACf,OAAO,IAAI,oBAAQ,CAAC;gBAClB,WAAW,EAAE;oBACX,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW;oBAC3C,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,eAAe;iBACpD;gBACD,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrD,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAa,QAAQ;IACnB,MAAM,CAAC,OAAO,CAAC,MAAe;QAC5B,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAEtC,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,CAAC,UAAU,CAAC;YACvB,OAAO,EAAE,CAAC,UAAU,CAAC;SACtB,CAAC;IACJ,CAAC;CACF;AAVD,4BAUC"}
@@ -0,0 +1,12 @@
1
+ import { DeleteObjectCommandOutput, GetObjectCommandOutput, ListObjectsV2CommandOutput, PutObjectCommandOutput, S3Client } from '@aws-sdk/client-s3';
2
+ import { IStorage } from '../../../lib/storage/interfaces/storage.interface';
3
+ import { DeleteFile, GetFile, ListFiles, UploadFile } from '../../../lib/storage/types/storage.type';
4
+ export declare class S3 implements IStorage {
5
+ private readonly client;
6
+ constructor(client: S3Client);
7
+ uploadFile(file: UploadFile): Promise<PutObjectCommandOutput>;
8
+ generateSignUrlFile(file: GetFile): Promise<string>;
9
+ getFile(file: GetFile): Promise<GetObjectCommandOutput>;
10
+ listFiles(data: ListFiles): Promise<ListObjectsV2CommandOutput>;
11
+ deleteFile(file: DeleteFile): Promise<DeleteObjectCommandOutput>;
12
+ }
@@ -0,0 +1,73 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.S3 = void 0;
16
+ const client_s3_1 = require("@aws-sdk/client-s3");
17
+ const common_1 = require("@nestjs/common");
18
+ const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
19
+ let S3 = class S3 {
20
+ constructor(client) {
21
+ this.client = client;
22
+ }
23
+ async uploadFile(file) {
24
+ const command = new client_s3_1.PutObjectCommand({
25
+ Bucket: file.bucket,
26
+ Key: `${file.path}/${file.nameFile}`,
27
+ Body: file.file,
28
+ });
29
+ const response = await this.client.send(command);
30
+ return response;
31
+ }
32
+ async generateSignUrlFile(file) {
33
+ const params = {
34
+ Bucket: file.bucket,
35
+ Key: file.key,
36
+ ResponseContentType: file.responseContentType,
37
+ };
38
+ const command = new client_s3_1.GetObjectCommand(params);
39
+ const url = await (0, s3_request_presigner_1.getSignedUrl)(this.client, command, { expiresIn: 3600 });
40
+ return url;
41
+ }
42
+ async getFile(file) {
43
+ const params = {
44
+ Bucket: file.bucket,
45
+ Key: file.key,
46
+ ResponseContentType: file.responseContentType,
47
+ };
48
+ const command = new client_s3_1.GetObjectCommand(params);
49
+ const response = await this.client.send(command);
50
+ return response;
51
+ }
52
+ async listFiles(data) {
53
+ const params = { Bucket: data.bucket, Prefix: data.folder };
54
+ const command = new client_s3_1.ListObjectsV2Command(params);
55
+ const response = await this.client.send(command);
56
+ return response;
57
+ }
58
+ async deleteFile(file) {
59
+ const params = {
60
+ Bucket: file.bucket,
61
+ Key: file.key,
62
+ };
63
+ const command = new client_s3_1.DeleteObjectCommand(params);
64
+ return await this.client.send(command);
65
+ }
66
+ };
67
+ exports.S3 = S3;
68
+ exports.S3 = S3 = __decorate([
69
+ (0, common_1.Injectable)(),
70
+ __param(0, (0, common_1.Inject)('CONNECTION_S3')),
71
+ __metadata("design:paramtypes", [client_s3_1.S3Client])
72
+ ], S3);
73
+ //# sourceMappingURL=s3.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.service.js","sourceRoot":"","sources":["../../../../src/external/aws/s3/s3.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAU4B;AAC5B,2CAAoD;AACpD,wEAA6D;AAUtD,IAAM,EAAE,GAAR,MAAM,EAAE;IACb,YAAsD,MAAgB;QAAhB,WAAM,GAAN,MAAM,CAAU;IAAG,CAAC;IAE1E,KAAK,CAAC,UAAU,CAAC,IAAgB;QAC/B,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpC,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAa;QACrC,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;SAC9C,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,GAAG,GAAG,MAAM,IAAA,mCAAY,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1E,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAa;QACzB,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;SAC9C,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAe;QAC7B,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAE5D,MAAM,OAAO,GAAG,IAAI,gCAAoB,CAAC,MAAM,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAgB;QAC/B,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,+BAAmB,CAAC,MAAM,CAAC,CAAC;QAEhD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;CACF,CAAA;AA/DY,gBAAE;aAAF,EAAE;IADd,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,eAAe,CAAC,CAAA;qCAA0B,oBAAQ;GAD3D,EAAE,CA+Dd"}
@@ -0,0 +1,12 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ export type SESSetup = {
3
+ region: string;
4
+ endpoint?: string;
5
+ credentials: {
6
+ accessKeyId: string;
7
+ secretAccessKey: string;
8
+ };
9
+ };
10
+ export declare class SESModule {
11
+ static forRoot(params: SESSetup): DynamicModule;
12
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SESModule = void 0;
4
+ const client_ses_1 = require("@aws-sdk/client-ses");
5
+ const SESProvider = (params) => {
6
+ return {
7
+ provide: 'CONNECTION_SES',
8
+ useFactory: () => {
9
+ return new client_ses_1.SESClient({
10
+ credentials: {
11
+ accessKeyId: params.credentials.accessKeyId,
12
+ secretAccessKey: params.credentials.secretAccessKey,
13
+ },
14
+ ...(params.endpoint && { endpoint: params.endpoint }),
15
+ region: params.region,
16
+ });
17
+ },
18
+ };
19
+ };
20
+ class SESModule {
21
+ static forRoot(params) {
22
+ const sesProvider = SESProvider(params);
23
+ return {
24
+ module: SESModule,
25
+ providers: [sesProvider],
26
+ exports: [sesProvider],
27
+ };
28
+ }
29
+ }
30
+ exports.SESModule = SESModule;
31
+ //# sourceMappingURL=ses.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ses.provider.js","sourceRoot":"","sources":["../../../../src/external/aws/ses/ses.provider.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAYhD,MAAM,WAAW,GAAG,CAAC,MAAgB,EAAE,EAAE;IACvC,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,GAAG,EAAE;YACf,OAAO,IAAI,sBAAS,CAAC;gBACnB,WAAW,EAAE;oBACX,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW;oBAC3C,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,eAAe;iBACpD;gBACD,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrD,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAa,SAAS;IACpB,MAAM,CAAC,OAAO,CAAC,MAAgB;QAC7B,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAExC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,CAAC,WAAW,CAAC;YACxB,OAAO,EAAE,CAAC,WAAW,CAAC;SACvB,CAAC;IACJ,CAAC;CACF;AAVD,8BAUC"}
@@ -0,0 +1,9 @@
1
+ import { SendEmailCommandOutput, SendRawEmailCommandOutput, SESClient } from '@aws-sdk/client-ses';
2
+ import { IEmail } from 'src/lib/email/interfaces/email.interface';
3
+ import { SendMail, SendRawMail } from 'src/lib/email/types/email.type';
4
+ export declare class SES implements IEmail {
5
+ private readonly client;
6
+ constructor(client: SESClient);
7
+ sendRawEmail(data: SendRawMail): Promise<SendRawEmailCommandOutput>;
8
+ sendEmail(data: SendMail): Promise<SendEmailCommandOutput>;
9
+ }
@@ -0,0 +1,60 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.SES = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const client_ses_1 = require("@aws-sdk/client-ses");
18
+ let SES = class SES {
19
+ constructor(client) {
20
+ this.client = client;
21
+ }
22
+ async sendRawEmail(data) {
23
+ const resEncodedMessage = new TextEncoder().encode(data.message);
24
+ const params = {
25
+ Source: data.from,
26
+ Destination: data.to,
27
+ RawMessage: {
28
+ Data: resEncodedMessage,
29
+ },
30
+ };
31
+ const command = new client_ses_1.SendRawEmailCommand(params);
32
+ return await this.client.send(command);
33
+ }
34
+ async sendEmail(data) {
35
+ const command = new client_ses_1.SendEmailCommand({
36
+ Source: data.source,
37
+ Destination: { ToAddresses: data.destination },
38
+ Message: {
39
+ Body: {
40
+ Html: {
41
+ Charset: 'UTF-8',
42
+ Data: data.message,
43
+ },
44
+ },
45
+ Subject: {
46
+ Charset: 'UTF-8',
47
+ Data: data.message,
48
+ },
49
+ },
50
+ });
51
+ return await this.client.send(command);
52
+ }
53
+ };
54
+ exports.SES = SES;
55
+ exports.SES = SES = __decorate([
56
+ (0, common_1.Injectable)(),
57
+ __param(0, (0, common_1.Inject)('CONNECTION_SES')),
58
+ __metadata("design:paramtypes", [client_ses_1.SESClient])
59
+ ], SES);
60
+ //# sourceMappingURL=ses.service.js.map