1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const tslib_1 = require("tslib");
|
4 | var GCloudModule_1;
|
5 | "use strict";
|
6 | const common_1 = require("@nestjs/common");
|
7 | const core_1 = require("@nestjs/core");
|
8 | const graphql_1 = require("@nestjs/graphql");
|
9 | const auth_configurer_1 = require("./auth/auth.configurer");
|
10 | const auth_controller_1 = require("./auth/auth.controller");
|
11 | const auth_graphql_1 = require("./auth/auth.graphql");
|
12 | const auth_guard_1 = require("./auth/auth.guard");
|
13 | const auth_repository_1 = require("./auth/auth.repository");
|
14 | const auth_service_1 = require("./auth/auth.service");
|
15 | const invite_user_service_1 = require("./auth/invite-user.service");
|
16 | const login_identifier_repository_1 = require("./auth/login-identifier.repository");
|
17 | const password_reset_service_1 = require("./auth/password-reset.service");
|
18 | const datastore_provider_1 = require("./datastore/datastore.provider");
|
19 | const filter_1 = require("./filter");
|
20 | const storage_provider_1 = require("./gcloud/storage.provider");
|
21 | const GraphQLMiddleware_1 = require("./graphql/GraphQLMiddleware");
|
22 | const interceptor_1 = require("./interceptor");
|
23 | const gmail_configurer_1 = require("./mail/gmail/gmail.configurer");
|
24 | const gmail_controller_1 = require("./mail/gmail/gmail.controller");
|
25 | const gmail_sender_1 = require("./mail/gmail/gmail.sender");
|
26 | const stored_credentials_repository_1 = require("./mail/gmail/stored.credentials.repository");
|
27 | const mail_diverter_1 = require("./mail/mail.diverter");
|
28 | const mail_logging_sender_1 = require("./mail/mail-logging.sender");
|
29 | const mail_sender_1 = require("./mail/mail.sender");
|
30 | const search_service_1 = require("./search/search.service");
|
31 | const mail_whitelist_sender_1 = require("./mail/mail-whitelist.sender");
|
32 | const mail_subject_sender_1 = require("./mail/mail-subject.sender");
|
33 | let GCloudModule = GCloudModule_1 = class GCloudModule {
|
34 | constructor(graphqlConfigurer) {
|
35 | this.graphqlConfigurer = graphqlConfigurer;
|
36 | }
|
37 | configure(consumer) {
|
38 | consumer.apply(interceptor_1.ContextMiddleware).forRoutes('*');
|
39 | consumer.apply(GraphQLMiddleware_1.GraphQLMiddleware).forRoutes('/api/graphql');
|
40 | }
|
41 | static forConfiguration(options) {
|
42 | return {
|
43 | module: GCloudModule_1,
|
44 | imports: [options.configurationModule, options.userModule, graphql_1.GraphQLModule],
|
45 | };
|
46 | }
|
47 | };
|
48 | GCloudModule = GCloudModule_1 = tslib_1.__decorate([
|
49 | common_1.Global(),
|
50 | common_1.Module({
|
51 | providers: [
|
52 | storage_provider_1.StorageProvider,
|
53 | datastore_provider_1.DatastoreProvider,
|
54 | auth_repository_1.CredentialRepository,
|
55 | login_identifier_repository_1.LoginIdentifierRepository,
|
56 | auth_repository_1.PasswordResetRepository,
|
57 | auth_repository_1.UserInviteRepository,
|
58 | stored_credentials_repository_1.StoredCredentialsRepository,
|
59 | auth_service_1.AuthService,
|
60 | auth_configurer_1.AuthConfigurer,
|
61 | auth_graphql_1.AuthResolver,
|
62 | password_reset_service_1.PasswordResetService,
|
63 | invite_user_service_1.InviteUserService,
|
64 | search_service_1.SearchService,
|
65 | gmail_configurer_1.GmailConfigurer,
|
66 | {
|
67 | provide: core_1.APP_FILTER,
|
68 | useClass: filter_1.NotFoundFilter,
|
69 | },
|
70 | interceptor_1.ContextMiddleware,
|
71 | {
|
72 | provide: mail_sender_1.MAIL_SENDER,
|
73 | useFactory: (config, gmailConfigurer) => {
|
74 | const disableMailLogger = !!config.devHooks && config.devHooks.disableLocalMailLogger;
|
75 | console.log(`Configuring mail sender with devHooks: `, config.devHooks);
|
76 | let mailSender;
|
77 | if (config.environment === 'development' && !disableMailLogger) {
|
78 | mailSender = new mail_logging_sender_1.MailLoggingSender();
|
79 | }
|
80 | else {
|
81 | mailSender = new gmail_sender_1.GmailSender(gmailConfigurer, config);
|
82 | }
|
83 | if (config.devHooks && config.devHooks.emailWhitelist) {
|
84 | mailSender = new mail_whitelist_sender_1.MailWhitelistSender(mailSender, config);
|
85 | }
|
86 | if (config.devHooks && config.devHooks.divertEmailTo) {
|
87 | mailSender = new mail_diverter_1.MailDiverter(mailSender, config);
|
88 | }
|
89 | if (config.devHooks && config.devHooks.emailSubjectPrefix) {
|
90 | mailSender = new mail_subject_sender_1.MailSubjectSender(mailSender, config);
|
91 | }
|
92 | return mailSender;
|
93 | },
|
94 | inject: ['Configuration', gmail_configurer_1.GmailConfigurer],
|
95 | },
|
96 | {
|
97 | provide: core_1.APP_GUARD,
|
98 | useClass: auth_guard_1.AuthGuard,
|
99 | },
|
100 | GraphQLMiddleware_1.GraphQLMiddleware,
|
101 | ],
|
102 | exports: [
|
103 | storage_provider_1.StorageProvider,
|
104 | datastore_provider_1.DatastoreProvider,
|
105 | auth_repository_1.CredentialRepository,
|
106 | login_identifier_repository_1.LoginIdentifierRepository,
|
107 | auth_repository_1.UserInviteRepository,
|
108 | auth_repository_1.PasswordResetRepository,
|
109 | password_reset_service_1.PasswordResetService,
|
110 | invite_user_service_1.InviteUserService,
|
111 | mail_sender_1.MAIL_SENDER,
|
112 | search_service_1.SearchService,
|
113 | ],
|
114 | controllers: [auth_controller_1.AuthController, gmail_controller_1.GmailController],
|
115 | }),
|
116 | tslib_1.__metadata("design:paramtypes", [GraphQLMiddleware_1.GraphQLMiddleware])
|
117 | ], GCloudModule);
|
118 | exports.GCloudModule = GCloudModule;
|
119 |
|
\ | No newline at end of file |