@punks/backend-entity-manager 0.0.34 → 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 (83) 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/messaging/email/index.d.ts +2 -0
  6. package/dist/cjs/types/platforms/nest/__test__/server/messaging/email/registration.d.ts +2 -0
  7. package/dist/cjs/types/platforms/nest/__test__/server/messaging/module.d.ts +2 -0
  8. package/dist/cjs/types/platforms/nest/__test__/server/services/email-provider/index.d.ts +9 -5
  9. package/dist/cjs/types/platforms/nest/extensions/authentication/settings/index.d.ts +2 -2
  10. package/dist/cjs/types/platforms/nest/extensions/authentication/types/index.d.ts +1 -1
  11. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/abstractions/index.d.ts +9 -0
  12. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/base/index.d.ts +1 -0
  13. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/base/template.d.ts +6 -0
  14. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/decorators/index.d.ts +1 -0
  15. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/decorators/template.d.ts +2 -0
  16. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/index.d.ts +5 -0
  17. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/module.d.ts +5 -0
  18. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/provider/email/index.d.ts +8 -0
  19. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/settings/index.d.ts +10 -0
  20. package/dist/cjs/types/platforms/nest/plugins/email/aws-ses/symbols/index.d.ts +3 -0
  21. package/dist/cjs/types/platforms/nest/plugins/email/index.d.ts +2 -1
  22. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/abstractions/index.d.ts +16 -0
  23. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/base/index.d.ts +1 -0
  24. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/base/template.d.ts +6 -0
  25. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/decorators/index.d.ts +1 -0
  26. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/decorators/template.d.ts +2 -0
  27. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/index.d.ts +4 -0
  28. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/module.d.ts +5 -0
  29. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/provider/email/index.d.ts +7 -0
  30. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/settings/index.d.ts +8 -0
  31. package/dist/cjs/types/platforms/nest/plugins/email/sendgrid/symbols/index.d.ts +3 -0
  32. package/dist/cjs/types/platforms/nest/services/email/index.d.ts +2 -0
  33. package/dist/cjs/types/providers/services.d.ts +2 -2
  34. package/dist/cjs/types/reflection/decorators/decorator.test.d.ts +1 -0
  35. package/dist/cjs/types/reflection/decorators/index.d.ts +1 -0
  36. package/dist/cjs/types/reflection/index.d.ts +1 -1
  37. package/dist/cjs/types/reflection/types/index.d.ts +1 -0
  38. package/dist/cjs/types/settings/index.d.ts +6 -0
  39. package/dist/cjs/types/utils/index.d.ts +1 -0
  40. package/dist/cjs/types/utils/rendering.d.ts +4 -0
  41. package/dist/esm/index.js +5219 -43
  42. package/dist/esm/index.js.map +1 -1
  43. package/dist/esm/types/abstractions/email.d.ts +4 -4
  44. package/dist/esm/types/index.d.ts +1 -0
  45. package/dist/esm/types/platforms/nest/__test__/server/messaging/email/index.d.ts +2 -0
  46. package/dist/esm/types/platforms/nest/__test__/server/messaging/email/registration.d.ts +2 -0
  47. package/dist/esm/types/platforms/nest/__test__/server/messaging/module.d.ts +2 -0
  48. package/dist/esm/types/platforms/nest/__test__/server/services/email-provider/index.d.ts +9 -5
  49. package/dist/esm/types/platforms/nest/extensions/authentication/settings/index.d.ts +2 -2
  50. package/dist/esm/types/platforms/nest/extensions/authentication/types/index.d.ts +1 -1
  51. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/abstractions/index.d.ts +9 -0
  52. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/base/index.d.ts +1 -0
  53. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/base/template.d.ts +6 -0
  54. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/decorators/index.d.ts +1 -0
  55. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/decorators/template.d.ts +2 -0
  56. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/index.d.ts +5 -0
  57. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/module.d.ts +5 -0
  58. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/provider/email/index.d.ts +8 -0
  59. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/settings/index.d.ts +10 -0
  60. package/dist/esm/types/platforms/nest/plugins/email/aws-ses/symbols/index.d.ts +3 -0
  61. package/dist/esm/types/platforms/nest/plugins/email/index.d.ts +2 -1
  62. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/abstractions/index.d.ts +16 -0
  63. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/base/index.d.ts +1 -0
  64. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/base/template.d.ts +6 -0
  65. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/decorators/index.d.ts +1 -0
  66. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/decorators/template.d.ts +2 -0
  67. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/index.d.ts +4 -0
  68. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/module.d.ts +5 -0
  69. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/provider/email/index.d.ts +7 -0
  70. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/settings/index.d.ts +8 -0
  71. package/dist/esm/types/platforms/nest/plugins/email/sendgrid/symbols/index.d.ts +3 -0
  72. package/dist/esm/types/platforms/nest/services/email/index.d.ts +2 -0
  73. package/dist/esm/types/providers/services.d.ts +2 -2
  74. package/dist/esm/types/reflection/decorators/decorator.test.d.ts +1 -0
  75. package/dist/esm/types/reflection/decorators/index.d.ts +1 -0
  76. package/dist/esm/types/reflection/index.d.ts +1 -1
  77. package/dist/esm/types/reflection/types/index.d.ts +1 -0
  78. package/dist/esm/types/settings/index.d.ts +6 -0
  79. package/dist/esm/types/utils/index.d.ts +1 -0
  80. package/dist/esm/types/utils/rendering.d.ts +4 -0
  81. package/dist/index.d.ts +87 -8
  82. package/package.json +6 -1
  83. package/readme.md +15 -1
@@ -11,7 +11,7 @@ export type TemplatedEmailInput<TPayload> = {
11
11
  to?: string[];
12
12
  cc?: string[];
13
13
  bcc?: string[];
14
- subject?: string;
14
+ subjectTemplate?: string;
15
15
  templateId: string;
16
16
  payload: TPayload;
17
17
  };
@@ -20,11 +20,11 @@ export interface HtmlEmailInput<TPayload> {
20
20
  to?: string[];
21
21
  cc?: string[];
22
22
  bcc?: string[];
23
- subject: string;
23
+ subjectTemplate: string;
24
24
  htmlTemplate: string;
25
25
  payload: TPayload;
26
26
  }
27
- export interface IEmailProvider {
28
- sendTemplatedEmail<TPayload>(input: TemplatedEmailInput<TPayload>): Promise<void>;
27
+ export interface IEmailProvider<TTemplateData> {
28
+ sendTemplatedEmail<TPayload, TAugmentedPayload>(input: TemplatedEmailInput<TPayload>, template: IEmailTemplate<TTemplateData, TPayload, TAugmentedPayload>): Promise<void>;
29
29
  sendHtmlEmail<TPayload>(input: HtmlEmailInput<TPayload>): Promise<void>;
30
30
  }
@@ -2,4 +2,5 @@ export * from "./abstractions";
2
2
  export * from "./models";
3
3
  export * from "./platforms";
4
4
  export * from "./templates";
5
+ export * from "./settings";
5
6
  export * from "./utils";
@@ -0,0 +1,2 @@
1
+ import { RegistrationEmailTemplate } from "./registration";
2
+ export declare const EmailTemplates: (typeof RegistrationEmailTemplate)[];
@@ -0,0 +1,2 @@
1
+ export declare class RegistrationEmailTemplate {
2
+ }
@@ -0,0 +1,2 @@
1
+ export declare class MessagingModule {
2
+ }
@@ -1,11 +1,15 @@
1
- import { HtmlEmailInput, IEmailProvider, TemplatedEmailInput } from "../../../../../../abstractions";
1
+ import { HtmlEmailInput, IEmailProvider, IEmailTemplate, TemplatedEmailInput } from "../../../../../../abstractions";
2
2
  type SentEmail = {
3
- input: TemplatedEmailInput<unknown> | HtmlEmailInput<unknown>;
4
- type: "html" | "templated";
3
+ input: TemplatedEmailInput<unknown>;
4
+ template: IEmailTemplate<void, unknown, unknown>;
5
+ type: "templated";
6
+ } | {
7
+ input: HtmlEmailInput<unknown>;
8
+ type: "html";
5
9
  };
6
- export declare class InMemoryEmailProvider implements IEmailProvider {
10
+ export declare class InMemoryEmailProvider implements IEmailProvider<void> {
7
11
  private readonly sentEmails;
8
- sendTemplatedEmail<TPayload>(input: TemplatedEmailInput<TPayload>): Promise<void>;
12
+ sendTemplatedEmail<TPayload, TAugmentedPayload>(input: TemplatedEmailInput<TPayload>, template: IEmailTemplate<void, TPayload, TAugmentedPayload>): Promise<void>;
9
13
  sendHtmlEmail<TPayload>(input: HtmlEmailInput<TPayload>): Promise<void>;
10
14
  getSentEmails(): SentEmail[];
11
15
  }
@@ -1,3 +1,3 @@
1
+ import { AppInMemorySettings } from "../../../../../settings";
1
2
  import { AuthenticationModuleSettings } from "../types";
2
- export declare const setAuthSettings: (input: AuthenticationModuleSettings) => void;
3
- export declare const getAuthSettings: () => AuthenticationModuleSettings;
3
+ export declare const authSettings: AppInMemorySettings<AuthenticationModuleSettings>;
@@ -13,5 +13,5 @@ export type EmailVerifyTokenPayload = {
13
13
  timestamp: number;
14
14
  };
15
15
  export declare enum UserRegistrationError {
16
- UserAlreadyExists = 0
16
+ UserAlreadyExists = "userAlreadyExists"
17
17
  }
@@ -0,0 +1,9 @@
1
+ export type AwsSesEmailTemplateData = {
2
+ subjectTemplate: string;
3
+ htmlTemplate: string;
4
+ from?: string;
5
+ to?: string[];
6
+ cc?: string[];
7
+ bcc?: string[];
8
+ replyTo?: string;
9
+ };
@@ -0,0 +1 @@
1
+ export { AwsSesEmailTemplate } from "./template";
@@ -0,0 +1,6 @@
1
+ import { IEmailTemplate } from "../../../../../../abstractions";
2
+ import { AwsSesEmailTemplateData } from "../abstractions";
3
+ export declare abstract class AwsSesEmailTemplate<TPayload, TAugmentedPayload = TPayload> implements IEmailTemplate<AwsSesEmailTemplateData, TPayload, TAugmentedPayload> {
4
+ processPayload(payload: TPayload): Promise<TAugmentedPayload>;
5
+ getTemplateData(payload: TAugmentedPayload): Promise<AwsSesEmailTemplateData>;
6
+ }
@@ -0,0 +1 @@
1
+ export * from "./template";
@@ -0,0 +1,2 @@
1
+ import { AwsSesEmailTemplateData } from "../abstractions";
2
+ export declare const WpAwsSesEmailTemplate: (templateId: string, sendgridTemplateData: AwsSesEmailTemplateData) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
@@ -0,0 +1,5 @@
1
+ export * from "./abstractions";
2
+ export * from "./base";
3
+ export * from "./decorators";
4
+ export { AwsSesSettings } from "./settings";
5
+ export { AwsEmailModule } from "./module";
@@ -0,0 +1,5 @@
1
+ import { DynamicModule } from "@nestjs/common";
2
+ import { AwsSesSettings } from "./settings";
3
+ export declare class AwsEmailModule {
4
+ static forRoot(input: AwsSesSettings): DynamicModule;
5
+ }
@@ -0,0 +1,8 @@
1
+ import { HtmlEmailInput, IEmailProvider, IEmailTemplate, TemplatedEmailInput } from "../../../../../../../abstractions";
2
+ import { AwsSesEmailTemplateData } from "../../abstractions";
3
+ export declare class AwsSesEmailProvider implements IEmailProvider<AwsSesEmailTemplateData> {
4
+ private readonly client;
5
+ constructor();
6
+ sendTemplatedEmail<TPayload, TAugmentedPayload>(input: TemplatedEmailInput<TPayload>, template: IEmailTemplate<AwsSesEmailTemplateData, TPayload, TAugmentedPayload>): Promise<void>;
7
+ sendHtmlEmail<TPayload>(input: HtmlEmailInput<TPayload>): Promise<void>;
8
+ }
@@ -0,0 +1,10 @@
1
+ import { AppInMemorySettings } from "../../../../../../settings";
2
+ export type AwsSesSettings = {
3
+ awsAccessKeyId?: string;
4
+ awsSecretAccessKey?: string;
5
+ region?: string;
6
+ defaultSender: string;
7
+ defaultCc?: string[];
8
+ defaultBcc?: string[];
9
+ };
10
+ export declare const awsSesSettings: AppInMemorySettings<AwsSesSettings>;
@@ -0,0 +1,3 @@
1
+ export declare const AwsSesModuleSymbols: {
2
+ EmailTemplate: symbol;
3
+ };
@@ -1 +1,2 @@
1
- export {};
1
+ export * from "./aws-ses";
2
+ export * from "./sendgrid";
@@ -0,0 +1,16 @@
1
+ export type SendgridTemplateType = "template" | "html";
2
+ export type SendgridTemplateBaseData = {
3
+ from?: string;
4
+ to?: string[];
5
+ cc?: string[];
6
+ bcc?: string[];
7
+ replyTo?: string;
8
+ };
9
+ export type SendgridEmailTemplateData = SendgridTemplateBaseData & ({
10
+ type: "template";
11
+ sendgridTemplateId: string;
12
+ } | {
13
+ type: "html";
14
+ subjectTemplate: string;
15
+ bodyTemplate: string;
16
+ });
@@ -0,0 +1 @@
1
+ export { SendgridEmailTemplate } from "./template";
@@ -0,0 +1,6 @@
1
+ import { IEmailTemplate } from "../../../../../../abstractions";
2
+ import { SendgridEmailTemplateData } from "../abstractions";
3
+ export declare abstract class SendgridEmailTemplate<TPayload, TAugmentedPayload = TPayload> implements IEmailTemplate<SendgridEmailTemplateData, TPayload, TAugmentedPayload> {
4
+ processPayload(payload: TPayload): Promise<TAugmentedPayload>;
5
+ getTemplateData(payload: TAugmentedPayload): Promise<SendgridEmailTemplateData>;
6
+ }
@@ -0,0 +1 @@
1
+ export * from "./template";
@@ -0,0 +1,2 @@
1
+ import { SendgridEmailTemplateData } from "../abstractions";
2
+ export declare const WpSendgridEmailTemplate: (templateId: string, sendgridTemplateData: SendgridEmailTemplateData) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
@@ -0,0 +1,4 @@
1
+ export * from "./abstractions";
2
+ export * from "./base";
3
+ export * from "./decorators";
4
+ export { SendgridEmailModule } from "./module";
@@ -0,0 +1,5 @@
1
+ import { DynamicModule } from "@nestjs/common";
2
+ import { SendgridSettings } from "./settings";
3
+ export declare class SendgridEmailModule {
4
+ static forRoot(input: SendgridSettings): DynamicModule;
5
+ }
@@ -0,0 +1,7 @@
1
+ import { HtmlEmailInput, IEmailProvider, IEmailTemplate, TemplatedEmailInput } from "../../../../../../../abstractions";
2
+ import { SendgridEmailTemplateData } from "../../abstractions";
3
+ export declare class SendgridEmailProvider implements IEmailProvider<SendgridEmailTemplateData> {
4
+ constructor();
5
+ sendTemplatedEmail<TPayload, TAugmentedPayload>(input: TemplatedEmailInput<TPayload>, template: IEmailTemplate<SendgridEmailTemplateData, TPayload, TAugmentedPayload>): Promise<void>;
6
+ sendHtmlEmail<TPayload>(input: HtmlEmailInput<TPayload>): Promise<void>;
7
+ }
@@ -0,0 +1,8 @@
1
+ import { AppInMemorySettings } from "../../../../../../settings";
2
+ export type SendgridSettings = {
3
+ apiKey: string;
4
+ defaultSender: string;
5
+ defaultCc?: string[];
6
+ defaultBcc?: string[];
7
+ };
8
+ export declare const sendgridSettings: AppInMemorySettings<SendgridSettings>;
@@ -0,0 +1,3 @@
1
+ export declare const SendgridModuleSymbols: {
2
+ EmailTemplate: symbol;
3
+ };
@@ -5,5 +5,7 @@ export declare class EmailService {
5
5
  constructor(registry: EntityManagerRegistry);
6
6
  sendTemplatedEmail<TPayload>(input: TemplatedEmailInput<TPayload>): Promise<void>;
7
7
  sendHtmlEmail<TPayload>(input: HtmlEmailInput<TPayload>): Promise<void>;
8
+ private getTemplate;
9
+ private get templates();
8
10
  private get provider();
9
11
  }
@@ -53,8 +53,8 @@ export declare class EntitiesServiceLocator {
53
53
  getProvider(): ServiceLocator;
54
54
  resolveEventEmitter<TEventEmitter extends IEventEmitter>(): TEventEmitter;
55
55
  registerEventEmitter<TEventEmitter extends IEventEmitter>(instance: TEventEmitter): void;
56
- resolveEmailProvider<TEmailProvider extends IEmailProvider>(): TEmailProvider;
57
- registerEmailProvider<TEmailProvider extends IEmailProvider>(instance: TEmailProvider): void;
56
+ resolveEmailProvider<TEmailProvider extends IEmailProvider<unknown>>(): TEmailProvider;
57
+ registerEmailProvider<TEmailProvider extends IEmailProvider<unknown>>(instance: TEmailProvider): void;
58
58
  resolveEmailTemplatesCollection(): IEmailTemplatesCollection;
59
59
  registerEmailTemplatesCollection(instance: IEmailTemplatesCollection): void;
60
60
  resolveAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(): TAuthenticationContextProvider;
@@ -0,0 +1 @@
1
+ export declare const getInstanceDecoratorData: <T>(metadataKey: any, instance: Object) => any;
@@ -1 +1 @@
1
- export declare const getTypeName: (type: any) => string;
1
+ export * from "./types";
@@ -0,0 +1 @@
1
+ export declare const getTypeName: (type: any) => string;
@@ -0,0 +1,6 @@
1
+ export declare class AppInMemorySettings<T> {
2
+ private _instance;
3
+ constructor();
4
+ initialize(value: T): void;
5
+ get value(): T;
6
+ }
@@ -1 +1,2 @@
1
1
  export { newUuid } from "./uid";
2
+ export { renderHandlebarsTemplate } from "./rendering";
@@ -0,0 +1,4 @@
1
+ export declare const renderHandlebarsTemplate: <TContext extends object>(input: {
2
+ template: string;
3
+ context: TContext;
4
+ }) => string;