@punks/backend-entity-manager 0.0.33 → 0.0.35

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 (99) hide show
  1. package/dist/cjs/index.js +5247 -42
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/abstractions/email.d.ts +4 -4
  4. package/dist/cjs/types/index.d.ts +1 -0
  5. package/dist/cjs/types/platforms/nest/__test__/server/app/auth/auth.actions.d.ts +4 -4
  6. package/dist/cjs/types/platforms/nest/__test__/server/messaging/email/index.d.ts +2 -0
  7. package/dist/cjs/types/platforms/nest/__test__/server/messaging/email/registration.d.ts +2 -0
  8. package/dist/cjs/types/platforms/nest/__test__/server/messaging/module.d.ts +2 -0
  9. package/dist/cjs/types/platforms/nest/__test__/server/services/email-provider/index.d.ts +9 -5
  10. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/index.d.ts +10 -0
  11. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-password-reset-request/types.d.ts +2 -2
  12. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-register/types.d.ts +2 -2
  13. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-verify-request/index.d.ts +2 -2
  14. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-verify-request/types.d.ts +3 -3
  15. package/dist/cjs/types/platforms/nest/extensions/authentication/index.d.ts +1 -0
  16. package/dist/cjs/types/platforms/nest/extensions/authentication/services/authentication/index.d.ts +2 -2
  17. package/dist/cjs/types/platforms/nest/extensions/authentication/settings/index.d.ts +2 -2
  18. package/dist/cjs/types/platforms/nest/extensions/authentication/types/index.d.ts +1 -1
  19. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/abstractions/index.d.ts +9 -0
  20. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/base/index.d.ts +1 -0
  21. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/base/template.d.ts +6 -0
  22. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/decorators/index.d.ts +1 -0
  23. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/decorators/template.d.ts +2 -0
  24. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/index.d.ts +5 -0
  25. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/module.d.ts +5 -0
  26. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/provider/email/index.d.ts +8 -0
  27. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/settings/index.d.ts +10 -0
  28. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/symbols/index.d.ts +3 -0
  29. package/dist/cjs/types/platforms/nest/plugins/email/index.d.ts +2 -1
  30. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/abstractions/index.d.ts +16 -0
  31. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/base/index.d.ts +1 -0
  32. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/base/template.d.ts +6 -0
  33. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/decorators/index.d.ts +1 -0
  34. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/decorators/template.d.ts +2 -0
  35. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/index.d.ts +4 -0
  36. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/module.d.ts +5 -0
  37. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/provider/email/index.d.ts +7 -0
  38. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/settings/index.d.ts +8 -0
  39. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/symbols/index.d.ts +3 -0
  40. package/dist/cjs/types/platforms/nest/services/email/index.d.ts +2 -0
  41. package/dist/cjs/types/providers/services.d.ts +2 -2
  42. package/dist/cjs/types/reflection/decorators/decorator.test.d.ts +1 -0
  43. package/dist/cjs/types/reflection/decorators/index.d.ts +1 -0
  44. package/dist/cjs/types/reflection/index.d.ts +1 -1
  45. package/dist/cjs/types/reflection/types/index.d.ts +1 -0
  46. package/dist/cjs/types/settings/index.d.ts +6 -0
  47. package/dist/cjs/types/utils/index.d.ts +1 -0
  48. package/dist/cjs/types/utils/rendering.d.ts +4 -0
  49. package/dist/esm/index.js +5219 -43
  50. package/dist/esm/index.js.map +1 -1
  51. package/dist/esm/types/abstractions/email.d.ts +4 -4
  52. package/dist/esm/types/index.d.ts +1 -0
  53. package/dist/esm/types/platforms/nest/__test__/server/app/auth/auth.actions.d.ts +4 -4
  54. package/dist/esm/types/platforms/nest/__test__/server/messaging/email/index.d.ts +2 -0
  55. package/dist/esm/types/platforms/nest/__test__/server/messaging/email/registration.d.ts +2 -0
  56. package/dist/esm/types/platforms/nest/__test__/server/messaging/module.d.ts +2 -0
  57. package/dist/esm/types/platforms/nest/__test__/server/services/email-provider/index.d.ts +9 -5
  58. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/index.d.ts +10 -0
  59. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-password-reset-request/types.d.ts +2 -2
  60. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-register/types.d.ts +2 -2
  61. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-verify-request/index.d.ts +2 -2
  62. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-verify-request/types.d.ts +3 -3
  63. package/dist/esm/types/platforms/nest/extensions/authentication/index.d.ts +1 -0
  64. package/dist/esm/types/platforms/nest/extensions/authentication/services/authentication/index.d.ts +2 -2
  65. package/dist/esm/types/platforms/nest/extensions/authentication/settings/index.d.ts +2 -2
  66. package/dist/esm/types/platforms/nest/extensions/authentication/types/index.d.ts +1 -1
  67. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/abstractions/index.d.ts +9 -0
  68. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/base/index.d.ts +1 -0
  69. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/base/template.d.ts +6 -0
  70. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/decorators/index.d.ts +1 -0
  71. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/decorators/template.d.ts +2 -0
  72. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/index.d.ts +5 -0
  73. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/module.d.ts +5 -0
  74. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/provider/email/index.d.ts +8 -0
  75. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/settings/index.d.ts +10 -0
  76. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/symbols/index.d.ts +3 -0
  77. package/dist/esm/types/platforms/nest/plugins/email/index.d.ts +2 -1
  78. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/abstractions/index.d.ts +16 -0
  79. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/base/index.d.ts +1 -0
  80. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/base/template.d.ts +6 -0
  81. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/decorators/index.d.ts +1 -0
  82. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/decorators/template.d.ts +2 -0
  83. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/index.d.ts +4 -0
  84. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/module.d.ts +5 -0
  85. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/provider/email/index.d.ts +7 -0
  86. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/settings/index.d.ts +8 -0
  87. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/symbols/index.d.ts +3 -0
  88. package/dist/esm/types/platforms/nest/services/email/index.d.ts +2 -0
  89. package/dist/esm/types/providers/services.d.ts +2 -2
  90. package/dist/esm/types/reflection/decorators/decorator.test.d.ts +1 -0
  91. package/dist/esm/types/reflection/decorators/index.d.ts +1 -0
  92. package/dist/esm/types/reflection/index.d.ts +1 -1
  93. package/dist/esm/types/reflection/types/index.d.ts +1 -0
  94. package/dist/esm/types/settings/index.d.ts +6 -0
  95. package/dist/esm/types/utils/index.d.ts +1 -0
  96. package/dist/esm/types/utils/rendering.d.ts +4 -0
  97. package/dist/index.d.ts +190 -111
  98. package/package.json +6 -1
  99. package/readme.md +15 -1
package/dist/index.d.ts CHANGED
@@ -327,8 +327,8 @@ declare class EntitiesServiceLocator {
327
327
  getProvider(): ServiceLocator;
328
328
  resolveEventEmitter<TEventEmitter extends IEventEmitter>(): TEventEmitter;
329
329
  registerEventEmitter<TEventEmitter extends IEventEmitter>(instance: TEventEmitter): void;
330
- resolveEmailProvider<TEmailProvider extends IEmailProvider>(): TEmailProvider;
331
- registerEmailProvider<TEmailProvider extends IEmailProvider>(instance: TEmailProvider): void;
330
+ resolveEmailProvider<TEmailProvider extends IEmailProvider<unknown>>(): TEmailProvider;
331
+ registerEmailProvider<TEmailProvider extends IEmailProvider<unknown>>(instance: TEmailProvider): void;
332
332
  resolveEmailTemplatesCollection(): IEmailTemplatesCollection;
333
333
  registerEmailTemplatesCollection(instance: IEmailTemplatesCollection): void;
334
334
  resolveAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(): TAuthenticationContextProvider;
@@ -432,7 +432,7 @@ type TemplatedEmailInput<TPayload> = {
432
432
  to?: string[];
433
433
  cc?: string[];
434
434
  bcc?: string[];
435
- subject?: string;
435
+ subjectTemplate?: string;
436
436
  templateId: string;
437
437
  payload: TPayload;
438
438
  };
@@ -441,12 +441,12 @@ interface HtmlEmailInput<TPayload> {
441
441
  to?: string[];
442
442
  cc?: string[];
443
443
  bcc?: string[];
444
- subject: string;
444
+ subjectTemplate: string;
445
445
  htmlTemplate: string;
446
446
  payload: TPayload;
447
447
  }
448
- interface IEmailProvider {
449
- sendTemplatedEmail<TPayload>(input: TemplatedEmailInput<TPayload>): Promise<void>;
448
+ interface IEmailProvider<TTemplateData> {
449
+ sendTemplatedEmail<TPayload, TAugmentedPayload>(input: TemplatedEmailInput<TPayload>, template: IEmailTemplate<TTemplateData, TPayload, TAugmentedPayload>): Promise<void>;
450
450
  sendHtmlEmail<TPayload>(input: HtmlEmailInput<TPayload>): Promise<void>;
451
451
  }
452
452
 
@@ -760,6 +760,108 @@ type PasswordResetEmailPayload = {
760
760
  callbackUrl: string;
761
761
  };
762
762
 
763
+ interface UserDisableInput {
764
+ userId: string;
765
+ }
766
+
767
+ interface UserEnableInput {
768
+ userId: string;
769
+ }
770
+
771
+ interface UserLoginInput<TUserContext extends IUserContext> {
772
+ userName: string;
773
+ password: string;
774
+ context?: TUserContext;
775
+ }
776
+ interface UserLoginResult {
777
+ token?: string;
778
+ success: boolean;
779
+ }
780
+
781
+ interface UserPasswordChangeInput {
782
+ userId: string;
783
+ newPassword: string;
784
+ temporary: boolean;
785
+ }
786
+
787
+ interface UserPasswordResetCompleteInput {
788
+ token: string;
789
+ newPassword: string;
790
+ temporary?: boolean;
791
+ }
792
+
793
+ type UserPasswordResetRequestCallbackTemplate = {
794
+ urlTemplate: string;
795
+ tokenPlaceholder: string;
796
+ };
797
+ interface UserPasswordResetRequestInput<TUserContext extends IUserContext> {
798
+ email: string;
799
+ callback: UserPasswordResetRequestCallbackTemplate;
800
+ context?: TUserContext;
801
+ }
802
+ interface UserPasswordResetRequestResult {
803
+ success: boolean;
804
+ }
805
+
806
+ interface AuthenticationModuleSettings {
807
+ passwordSalt: string;
808
+ jwtSecret: string;
809
+ }
810
+ type UserPasswordResetTokenPayload = {
811
+ userId: string;
812
+ email: string;
813
+ timestamp: number;
814
+ };
815
+ type EmailVerifyTokenPayload = {
816
+ userId: string;
817
+ email: string;
818
+ timestamp: number;
819
+ };
820
+ declare enum UserRegistrationError {
821
+ UserAlreadyExists = "userAlreadyExists"
822
+ }
823
+
824
+ type UserRegisterCallbackTemplate = {
825
+ urlTemplate: string;
826
+ tokenPlaceholder: string;
827
+ };
828
+ interface UserRegistrationInput<TUserRegistrationInfo, TUserContext extends IUserContext> {
829
+ email: string;
830
+ password: string;
831
+ registrationInfo: TUserRegistrationInfo;
832
+ callback: UserRegisterCallbackTemplate;
833
+ context?: TUserContext;
834
+ }
835
+ interface UserRegistrationResult {
836
+ success: boolean;
837
+ error?: UserRegistrationError;
838
+ }
839
+
840
+ interface UserTokenVerifyResult<TUserContext extends IUserContext> {
841
+ isValid: boolean;
842
+ data: IUserTokenData<TUserContext>;
843
+ }
844
+ interface UserTokenVerifyInput {
845
+ token: string;
846
+ }
847
+
848
+ interface UserVerifyCompleteInput {
849
+ token: string;
850
+ }
851
+
852
+ interface UserVerifyRequestInput<TUserContext extends IUserContext> {
853
+ email: string;
854
+ callback: UserVerifyRequestCallbackTemplate;
855
+ context?: TUserContext;
856
+ }
857
+ interface UserVerifyRequestResult {
858
+ success: boolean;
859
+ }
860
+ type UserVerifyRequestCallbackTemplate = {
861
+ urlTemplate: string;
862
+ tokenPlaceholder: string;
863
+ };
864
+
763
865
  declare class AuthenticationError extends Error {
764
866
  constructor(message: string);
765
867
  }
@@ -796,6 +898,8 @@ declare class EmailService {
796
898
  constructor(registry: EntityManagerRegistry);
797
899
  sendTemplatedEmail<TPayload>(input: TemplatedEmailInput<TPayload>): Promise<void>;
798
900
  sendHtmlEmail<TPayload>(input: HtmlEmailInput<TPayload>): Promise<void>;
901
+ private getTemplate;
902
+ private get templates();
799
903
  private get provider();
800
904
  }
801
905
 
@@ -830,40 +934,6 @@ declare class PasswordHashingProvider {
830
934
  private buildUserSalt;
831
935
  }
832
936
 
833
- interface AuthenticationModuleSettings {
834
- passwordSalt: string;
835
- jwtSecret: string;
836
- }
837
- type UserPasswordResetTokenPayload = {
838
- userId: string;
839
- email: string;
840
- timestamp: number;
841
- };
842
- type EmailVerifyTokenPayload = {
843
- userId: string;
844
- email: string;
845
- timestamp: number;
846
- };
847
- declare enum UserRegistrationError {
848
- UserAlreadyExists = 0
849
- }
850
-
851
- type CallbackTemplate$2 = {
852
- urlTemplate: string;
853
- tokenPlaceholder: string;
854
- };
855
- interface UserRegistrationInput<TUserRegistrationInfo, TUserContext extends IUserContext> {
856
- email: string;
857
- password: string;
858
- registrationInfo: TUserRegistrationInfo;
859
- callback: CallbackTemplate$2;
860
- context?: TUserContext;
861
- }
862
- interface UserRegistrationResult {
863
- success: boolean;
864
- error?: UserRegistrationError;
865
- }
866
-
867
937
  declare class UserRegistrationHandler {
868
938
  private readonly services;
869
939
  private readonly passwordHashingProvider;
@@ -878,36 +948,18 @@ declare class UserRegistrationHandler {
878
948
  private resolveUser;
879
949
  }
880
950
 
881
- interface UserDisableInput {
882
- userId: string;
883
- }
884
-
885
951
  declare class UserDisableHandler {
886
952
  private readonly services;
887
953
  constructor(services: AuthenticationServicesResolver);
888
954
  execute(input: UserDisableInput): Promise<void>;
889
955
  }
890
956
 
891
- interface UserEnableInput {
892
- userId: string;
893
- }
894
-
895
957
  declare class UserEnableHandler {
896
958
  private readonly services;
897
959
  constructor(services: AuthenticationServicesResolver);
898
960
  execute(input: UserEnableInput): Promise<void>;
899
961
  }
900
962
 
901
- interface UserLoginInput<TUserContext extends IUserContext> {
902
- userName: string;
903
- password: string;
904
- context?: TUserContext;
905
- }
906
- interface UserLoginResult {
907
- token?: string;
908
- success: boolean;
909
- }
910
-
911
963
  declare class UserLoginHandler {
912
964
  private readonly services;
913
965
  private readonly passwordHashingProvider;
@@ -918,12 +970,6 @@ declare class UserLoginHandler {
918
970
  private resolveUser;
919
971
  }
920
972
 
921
- interface UserPasswordChangeInput {
922
- userId: string;
923
- newPassword: string;
924
- temporary: boolean;
925
- }
926
-
927
973
  declare class UserPasswordChangeHandler {
928
974
  private readonly services;
929
975
  private readonly passwordHashingProvider;
@@ -931,12 +977,6 @@ declare class UserPasswordChangeHandler {
931
977
  execute(input: UserPasswordChangeInput): Promise<void>;
932
978
  }
933
979
 
934
- interface UserPasswordResetCompleteInput {
935
- token: string;
936
- newPassword: string;
937
- temporary?: boolean;
938
- }
939
-
940
980
  declare class UserPasswordResetCompleteHandler {
941
981
  private readonly services;
942
982
  private readonly passwordHashingProvider;
@@ -948,19 +988,6 @@ declare class UserPasswordResetCompleteHandler {
948
988
  private getUser;
949
989
  }
950
990
 
951
- type CallbackTemplate$1 = {
952
- urlTemplate: string;
953
- tokenPlaceholder: string;
954
- };
955
- interface UserPasswordResetRequestInput<TUserContext extends IUserContext> {
956
- email: string;
957
- callback: CallbackTemplate$1;
958
- context?: TUserContext;
959
- }
960
- interface UserPasswordResetRequestResult {
961
- success: boolean;
962
- }
963
-
964
991
  declare class UserPasswordResetRequestHandler {
965
992
  private readonly services;
966
993
  private readonly emailService;
@@ -972,10 +999,6 @@ declare class UserPasswordResetRequestHandler {
972
999
  private resolveUser;
973
1000
  }
974
1001
 
975
- interface UserVerifyCompleteInput {
976
- token: string;
977
- }
978
-
979
1002
  declare class UserVerifyCompleteHandler {
980
1003
  private readonly services;
981
1004
  private readonly jwtProvider;
@@ -986,14 +1009,6 @@ declare class UserVerifyCompleteHandler {
986
1009
  private getUser;
987
1010
  }
988
1011
 
989
- interface UserTokenVerifyResult<TUserContext extends IUserContext> {
990
- isValid: boolean;
991
- data: IUserTokenData<TUserContext>;
992
- }
993
- interface UserTokenVerifyInput {
994
- token: string;
995
- }
996
-
997
1012
  declare class UserTokenVerifyHandler {
998
1013
  private readonly jwtProvider;
999
1014
  constructor(jwtProvider: JwtProvider);
@@ -1001,25 +1016,12 @@ declare class UserTokenVerifyHandler {
1001
1016
  private decodeUserJwtToken;
1002
1017
  }
1003
1018
 
1004
- interface UserVerifyRequestInput<TUserContext extends IUserContext> {
1005
- email: string;
1006
- callback: CallbackTemplate;
1007
- context?: TUserContext;
1008
- }
1009
- interface UserVerifyResetRequestResult {
1010
- success: boolean;
1011
- }
1012
- type CallbackTemplate = {
1013
- urlTemplate: string;
1014
- tokenPlaceholder: string;
1015
- };
1016
-
1017
1019
  declare class UserVerifyRequestHandler {
1018
1020
  private readonly services;
1019
1021
  private readonly emailService;
1020
1022
  private readonly jwtProvider;
1021
1023
  constructor(services: AuthenticationServicesResolver, emailService: EmailService, jwtProvider: JwtProvider);
1022
- execute<TUserContext extends IUserContext>(input: UserVerifyRequestInput<TUserContext>): Promise<UserVerifyResetRequestResult>;
1024
+ execute<TUserContext extends IUserContext>(input: UserVerifyRequestInput<TUserContext>): Promise<UserVerifyRequestResult>;
1023
1025
  private sendEmailVerifyEmail;
1024
1026
  private generateEmailVerifyToken;
1025
1027
  private resolveUser;
@@ -1044,7 +1046,7 @@ declare class AuthenticationService implements IAuthenticationService {
1044
1046
  userPasswordResetFinalize(input: UserPasswordResetCompleteInput): Promise<void>;
1045
1047
  userPasswordResetRequest<TUserContext extends IUserContext>(input: UserPasswordResetRequestInput<TUserContext>): Promise<UserPasswordResetRequestResult>;
1046
1048
  userRegister<TUserRegistrationInfo, TUserContext extends IUserContext>(input: UserRegistrationInput<TUserRegistrationInfo, TUserContext>): Promise<UserRegistrationResult>;
1047
- userVerifyRequest<TUserContext extends IUserContext>(input: UserVerifyRequestInput<TUserContext>): Promise<UserVerifyResetRequestResult>;
1049
+ userVerifyRequest<TUserContext extends IUserContext>(input: UserVerifyRequestInput<TUserContext>): Promise<UserVerifyRequestResult>;
1048
1050
  userVerifyComplete(input: UserVerifyCompleteInput): Promise<void>;
1049
1051
  userTokenVerify<TUserContext extends IUserContext>(input: UserTokenVerifyInput): Promise<UserTokenVerifyResult<TUserContext>>;
1050
1052
  }
@@ -1124,6 +1126,78 @@ declare abstract class AppExceptionsFilterBase implements ExceptionFilter {
1124
1126
  protected abstract getCustomErrorStatusCode(exception: any): number | undefined;
1125
1127
  }
1126
1128
 
1129
+ type AwsSesEmailTemplateData = {
1130
+ subjectTemplate: string;
1131
+ htmlTemplate: string;
1132
+ from?: string;
1133
+ to?: string[];
1134
+ cc?: string[];
1135
+ bcc?: string[];
1136
+ replyTo?: string;
1137
+ };
1138
+
1139
+ declare abstract class AwsSesEmailTemplate<TPayload, TAugmentedPayload = TPayload> implements IEmailTemplate<AwsSesEmailTemplateData, TPayload, TAugmentedPayload> {
1140
+ processPayload(payload: TPayload): Promise<TAugmentedPayload>;
1141
+ getTemplateData(payload: TAugmentedPayload): Promise<AwsSesEmailTemplateData>;
1142
+ }
1143
+
1144
+ declare const WpAwsSesEmailTemplate: (templateId: string, sendgridTemplateData: AwsSesEmailTemplateData) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
1145
+
1146
+ declare class AppInMemorySettings<T> {
1147
+ private _instance;
1148
+ constructor();
1149
+ initialize(value: T): void;
1150
+ get value(): T;
1151
+ }
1152
+
1153
+ type AwsSesSettings = {
1154
+ awsAccessKeyId?: string;
1155
+ awsSecretAccessKey?: string;
1156
+ region?: string;
1157
+ defaultSender: string;
1158
+ defaultCc?: string[];
1159
+ defaultBcc?: string[];
1160
+ };
1161
+
1162
+ declare class AwsEmailModule {
1163
+ static forRoot(input: AwsSesSettings): DynamicModule;
1164
+ }
1165
+
1166
+ type SendgridTemplateType = "template" | "html";
1167
+ type SendgridTemplateBaseData = {
1168
+ from?: string;
1169
+ to?: string[];
1170
+ cc?: string[];
1171
+ bcc?: string[];
1172
+ replyTo?: string;
1173
+ };
1174
+ type SendgridEmailTemplateData = SendgridTemplateBaseData & ({
1175
+ type: "template";
1176
+ sendgridTemplateId: string;
1177
+ } | {
1178
+ type: "html";
1179
+ subjectTemplate: string;
1180
+ bodyTemplate: string;
1181
+ });
1182
+
1183
+ declare abstract class SendgridEmailTemplate<TPayload, TAugmentedPayload = TPayload> implements IEmailTemplate<SendgridEmailTemplateData, TPayload, TAugmentedPayload> {
1184
+ processPayload(payload: TPayload): Promise<TAugmentedPayload>;
1185
+ getTemplateData(payload: TAugmentedPayload): Promise<SendgridEmailTemplateData>;
1186
+ }
1187
+
1188
+ declare const WpSendgridEmailTemplate: (templateId: string, sendgridTemplateData: SendgridEmailTemplateData) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
1189
+
1190
+ type SendgridSettings = {
1191
+ apiKey: string;
1192
+ defaultSender: string;
1193
+ defaultCc?: string[];
1194
+ defaultBcc?: string[];
1195
+ };
1196
+
1197
+ declare class SendgridEmailModule {
1198
+ static forRoot(input: SendgridSettings): DynamicModule;
1199
+ }
1200
+
1127
1201
  declare class NestEventEmitter implements IEventEmitter {
1128
1202
  private eventEmitter;
1129
1203
  constructor();
@@ -1168,4 +1242,9 @@ declare class EntityManagerModule {
1168
1242
 
1169
1243
  declare const newUuid: () => string;
1170
1244
 
1171
- export { AppExceptionsFilterBase, AppHashingService, AppSessionMiddleware, AppSessionService, AuthenticationEmailTemplates, AuthenticationError, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationModuleSettings, AuthenticationService, EmailService, EmailTemplateProps, EmailVerifyEmailPayload, EmailVerifyTokenPayload, EntityActionsProps, EntityAdapterProps, EntityAuthMiddlewareProps, EntityConnectorProps, EntityConverterProps, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerProps, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntityProps, EntityQueryBuilderProps, EntityRepositoryProps, FilterExpression, HtmlEmailInput, IAuthenticationContext, IAuthenticationContextProvider, IAuthenticationService, IAuthorizationResult, IEmailProvider, IEmailTemplate, IEmailTemplatesCollection, IEntitiesQueryBuilder, IEntitiesSearchAction, IEntitiesSearchQuery, IEntitiesSearchResults, IEntitiesSearchResultsPaging, IEntityActions, IEntityAdapter, IEntityAuthorizationMiddleware, IEntityConverter, IEntityCreateAction, IEntityCreateCommand, IEntityDeleteAction, IEntityDeleteCommand, IEntityEventsManager, IEntityGetAction, IEntityGetQuery, IEntityManager, IEntityManagerServiceCollection, IEntityManagerServiceRoot, IEntityMapper, IEntityReplicaDeleteManager, IEntityReplicaSyncManager, IEntityRepository, IEntitySearchParameters, IEntitySearchResults, IEntityUpdateAction, IEntityUpdateCommand, IEntityUpsertAction, IEntityUpsertCommand, IReplicasConfiguration, ISearchFilters, ISearchOptions, ISearchRequestPaging, ISearchResultsPaging, ISearchSorting, ISearchSortingField, IUser, IUserContext, IUserOrganization, IUserProfile, IUserService, IUserTokenData, InvalidCredentialsError, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestTypeOrmQueryBuilder, NestTypeOrmRepository, OperationTokenMismatchError, PasswordResetEmailPayload, QueryBuilderBase, RegistrationEmailPayload, ReplicaConfiguration, ReplicaOptions, ReplicationMode, RuntimeErrorInformation, SortDirection, SortingType, TemplatedEmailInput, UserPasswordResetTokenPayload, UserRegistrationError, WpAppInitializer, WpEmailTemplate, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpUserService, newUuid };
1245
+ declare const renderHandlebarsTemplate: <TContext extends object>(input: {
1246
+ template: string;
1247
+ context: TContext;
1248
+ }) => string;
1249
+
1250
+ export { AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSessionMiddleware, AppSessionService, AuthenticationEmailTemplates, AuthenticationError, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationModuleSettings, AuthenticationService, AwsEmailModule, AwsSesEmailTemplate, AwsSesEmailTemplateData, AwsSesSettings, EmailService, EmailTemplateProps, EmailVerifyEmailPayload, EmailVerifyTokenPayload, EntityActionsProps, EntityAdapterProps, EntityAuthMiddlewareProps, EntityConnectorProps, EntityConverterProps, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerProps, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntityProps, EntityQueryBuilderProps, EntityRepositoryProps, FilterExpression, HtmlEmailInput, IAuthenticationContext, IAuthenticationContextProvider, IAuthenticationService, IAuthorizationResult, IEmailProvider, IEmailTemplate, IEmailTemplatesCollection, IEntitiesQueryBuilder, IEntitiesSearchAction, IEntitiesSearchQuery, IEntitiesSearchResults, IEntitiesSearchResultsPaging, IEntityActions, IEntityAdapter, IEntityAuthorizationMiddleware, IEntityConverter, IEntityCreateAction, IEntityCreateCommand, IEntityDeleteAction, IEntityDeleteCommand, IEntityEventsManager, IEntityGetAction, IEntityGetQuery, IEntityManager, IEntityManagerServiceCollection, IEntityManagerServiceRoot, IEntityMapper, IEntityReplicaDeleteManager, IEntityReplicaSyncManager, IEntityRepository, IEntitySearchParameters, IEntitySearchResults, IEntityUpdateAction, IEntityUpdateCommand, IEntityUpsertAction, IEntityUpsertCommand, IReplicasConfiguration, ISearchFilters, ISearchOptions, ISearchRequestPaging, ISearchResultsPaging, ISearchSorting, ISearchSortingField, IUser, IUserContext, IUserOrganization, IUserProfile, IUserService, IUserTokenData, InvalidCredentialsError, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestTypeOrmQueryBuilder, NestTypeOrmRepository, OperationTokenMismatchError, PasswordResetEmailPayload, QueryBuilderBase, RegistrationEmailPayload, ReplicaConfiguration, ReplicaOptions, ReplicationMode, RuntimeErrorInformation, SendgridEmailModule, SendgridEmailTemplate, SendgridEmailTemplateData, SendgridTemplateBaseData, SendgridTemplateType, SortDirection, SortingType, TemplatedEmailInput, UserDisableInput, UserEnableInput, UserLoginInput, UserLoginResult, UserPasswordChangeInput, UserPasswordResetCompleteInput, UserPasswordResetRequestCallbackTemplate, UserPasswordResetRequestInput, UserPasswordResetRequestResult, UserPasswordResetTokenPayload, UserRegisterCallbackTemplate, UserRegistrationError, UserRegistrationInput, UserRegistrationResult, UserTokenVerifyInput, UserTokenVerifyResult, UserVerifyCompleteInput, UserVerifyRequestCallbackTemplate, UserVerifyRequestInput, UserVerifyRequestResult as UserVerifyResetRequestResult, WpAppInitializer, WpAwsSesEmailTemplate, WpEmailTemplate, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpSendgridEmailTemplate, WpUserService, newUuid, renderHandlebarsTemplate };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@punks/backend-entity-manager",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "description": "",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -25,6 +25,7 @@
25
25
  "author": "WebPunks",
26
26
  "license": "ISC",
27
27
  "devDependencies": {
28
+ "@aws-sdk/client-ses": "^3.370.0",
28
29
  "@babel/core": "^7.21.0",
29
30
  "@nestjs/common": "^10.1.0",
30
31
  "@nestjs/core": "^10.1.0",
@@ -39,6 +40,7 @@
39
40
  "@rollup/plugin-json": "^6.0.0",
40
41
  "@rollup/plugin-node-resolve": "^13.0.6",
41
42
  "@rollup/plugin-typescript": "^11.0.0",
43
+ "@sendgrid/mail": "^7.7.0",
42
44
  "@types/bcrypt": "^5.0.0",
43
45
  "@types/express": "^4.17.17",
44
46
  "@types/jest": "^29.5.2",
@@ -49,6 +51,7 @@
49
51
  "class-transformer": "^0.5.1",
50
52
  "class-validator": "^0.14.0",
51
53
  "express": "^4.18.2",
54
+ "handlebars": "^4.7.7",
52
55
  "jest": "^29.6.1",
53
56
  "lodash": "^4.17.21",
54
57
  "pg": "^8.11.1",
@@ -66,6 +69,7 @@
66
69
  "typescript": "^5.1.6"
67
70
  },
68
71
  "peerDependencies": {
72
+ "@aws-sdk/client-ses": "^3.370.0",
69
73
  "@nestjs/common": "^10.1.0",
70
74
  "@nestjs/core": "^10.1.0",
71
75
  "@nestjs/event-emitter": "^2.0.0",
@@ -75,6 +79,7 @@
75
79
  "@nestjs/testing": "^10.1.0",
76
80
  "@nestjs/typeorm": "^10.0.0",
77
81
  "@punks/backend-core": "0.0.12",
82
+ "@sendgrid/mail": "^7.7.0",
78
83
  "bcrypt": "^5.1.0",
79
84
  "typeorm": "^0.3.17"
80
85
  },
package/readme.md CHANGED
@@ -11,7 +11,7 @@ npm install @punks/backend-entity-manager @punks/backend-core class-transformer
11
11
  ## Add authentication
12
12
 
13
13
  ```bash
14
- npm install express async_hooks @nestjs/platform-express @nestjs/jwt
14
+ npm install express async_hooks bcrypt @nestjs/platform-express @nestjs/jwt
15
15
  ```
16
16
 
17
17
  ## Supported ORMs:
@@ -22,6 +22,20 @@ npm install express async_hooks @nestjs/platform-express @nestjs/jwt
22
22
  npm install typeorm
23
23
  ```
24
24
 
25
+ ## Supported email providers:
26
+
27
+ - [SendGrid](https://sendgrid.com/)
28
+
29
+ ```bash
30
+ mpm install @sendgrid/mail
31
+ ```
32
+
33
+ - [AWS SES](https://aws.amazon.com/ses/)
34
+
35
+ ```bash
36
+ npm install @aws-sdk/client-ses
37
+ ```
38
+
25
39
  ## Supported platforms:
26
40
 
27
41
  - [NestJS](https://nestjs.com/)