@venturialstd/slack 0.1.4 → 0.1.5

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 (75) hide show
  1. package/dist/auth/constants/role.constant.d.ts +6 -0
  2. package/dist/auth/constants/role.constant.d.ts.map +1 -0
  3. package/dist/auth/constants/role.constant.js +10 -0
  4. package/dist/auth/constants/role.constant.js.map +1 -0
  5. package/dist/auth/constants/strategy.constant.d.ts +6 -0
  6. package/dist/auth/constants/strategy.constant.d.ts.map +1 -0
  7. package/dist/auth/constants/strategy.constant.js +9 -0
  8. package/dist/auth/constants/strategy.constant.js.map +1 -0
  9. package/dist/auth/decorators/role.decorator.d.ts +5 -0
  10. package/dist/auth/decorators/role.decorator.d.ts.map +1 -0
  11. package/dist/auth/decorators/role.decorator.js +8 -0
  12. package/dist/auth/decorators/role.decorator.js.map +1 -0
  13. package/dist/auth/guards/auth0.guard.d.ts +9 -0
  14. package/dist/auth/guards/auth0.guard.d.ts.map +1 -0
  15. package/dist/auth/guards/auth0.guard.js +28 -0
  16. package/dist/auth/guards/auth0.guard.js.map +1 -0
  17. package/dist/auth/guards/roles.guard.d.ts +8 -0
  18. package/dist/auth/guards/roles.guard.d.ts.map +1 -0
  19. package/dist/auth/guards/roles.guard.js +40 -0
  20. package/dist/auth/guards/roles.guard.js.map +1 -0
  21. package/dist/settings/constants/settings.constant.d.ts +12 -0
  22. package/dist/settings/constants/settings.constant.d.ts.map +1 -0
  23. package/dist/settings/constants/settings.constant.js +16 -0
  24. package/dist/settings/constants/settings.constant.js.map +1 -0
  25. package/dist/settings/controllers/admin/settings.admin.controller.d.ts +12 -0
  26. package/dist/settings/controllers/admin/settings.admin.controller.d.ts.map +1 -0
  27. package/dist/settings/controllers/admin/settings.admin.controller.js +75 -0
  28. package/dist/settings/controllers/admin/settings.admin.controller.js.map +1 -0
  29. package/dist/settings/entities/settings.entity.d.ts +17 -0
  30. package/dist/settings/entities/settings.entity.d.ts.map +1 -0
  31. package/dist/settings/entities/settings.entity.js +103 -0
  32. package/dist/settings/entities/settings.entity.js.map +1 -0
  33. package/dist/settings/services/settings.service.d.ts +13 -0
  34. package/dist/settings/services/settings.service.d.ts.map +1 -0
  35. package/dist/settings/services/settings.service.js +150 -0
  36. package/dist/settings/services/settings.service.js.map +1 -0
  37. package/dist/settings/settings.module.d.ts +3 -0
  38. package/dist/settings/settings.module.d.ts.map +1 -0
  39. package/dist/settings/settings.module.js +26 -0
  40. package/dist/settings/settings.module.js.map +1 -0
  41. package/dist/shared/constants/crud.d.ts +83 -0
  42. package/dist/shared/constants/crud.d.ts.map +1 -0
  43. package/dist/shared/constants/crud.js +132 -0
  44. package/dist/shared/constants/crud.js.map +1 -0
  45. package/dist/shared/logger/logger.service.d.ts +13 -0
  46. package/dist/shared/logger/logger.service.d.ts.map +1 -0
  47. package/dist/shared/logger/logger.service.js +75 -0
  48. package/dist/shared/logger/logger.service.js.map +1 -0
  49. package/dist/slack/clients/slack.client.d.ts.map +1 -0
  50. package/dist/slack/constants/slack.constants.d.ts.map +1 -0
  51. package/dist/slack/constants/slack.event.constant.d.ts.map +1 -0
  52. package/dist/slack/controllers/slack.webhook.controller.d.ts +13 -0
  53. package/dist/slack/controllers/slack.webhook.controller.d.ts.map +1 -0
  54. package/dist/slack/controllers/slack.webhook.controller.js +61 -0
  55. package/dist/slack/controllers/slack.webhook.controller.js.map +1 -0
  56. package/dist/slack/dtos/slack-webhook-event.dto.d.ts.map +1 -0
  57. package/dist/slack/index.d.ts.map +1 -0
  58. package/dist/slack/index.js.map +1 -1
  59. package/dist/slack/interfaces/logger.interface.js.map +1 -1
  60. package/dist/slack/services/slack-channel.service.d.ts +11 -0
  61. package/dist/slack/services/slack-channel.service.d.ts.map +1 -0
  62. package/dist/slack/services/slack-channel.service.js +57 -0
  63. package/dist/slack/services/slack-channel.service.js.map +1 -0
  64. package/dist/slack/services/slack-message.service.d.ts +10 -0
  65. package/dist/slack/services/slack-message.service.d.ts.map +1 -0
  66. package/dist/slack/services/slack-message.service.js +48 -0
  67. package/dist/slack/services/slack-message.service.js.map +1 -0
  68. package/dist/slack/settings/slack.settings.d.ts +3 -0
  69. package/dist/slack/settings/slack.settings.d.ts.map +1 -0
  70. package/dist/slack/settings/slack.settings.js +19 -0
  71. package/dist/slack/settings/slack.settings.js.map +1 -0
  72. package/dist/slack/slack.module.d.ts.map +1 -0
  73. package/dist/slack/tsconfig.build.tsbuildinfo +1 -1
  74. package/dist/slack/types/slack.event.type.d.ts.map +1 -0
  75. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.service.js","sourceRoot":"","sources":["../../../../settings/services/settings.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { CrudRequest } from '@dataui/crud';\r\nimport { TypeOrmCrudService } from '@dataui/crud-typeorm';\r\nimport { Injectable } from '@nestjs/common';\r\nimport { InjectRepository } from '@nestjs/typeorm';\r\nimport * as glob from 'glob';\r\nimport * as path from 'path';\r\nimport { DeepPartial, Repository } from 'typeorm';\r\n\r\nimport { Settings } from '../entities/settings.entity';\r\n\r\n@Injectable()\r\nexport class SettingsService extends TypeOrmCrudService<Settings> {\r\n constructor(@InjectRepository(Settings) repo: Repository<Settings>) {\r\n super(repo);\r\n }\r\n\r\n async getModulesSettings() {\r\n const pattern = path.join(__dirname, '../../../src/*/settings/*.settings.js');\r\n const files = glob.sync(pattern);\r\n\r\n const allSettings = [];\r\n for (const file of files) {\r\n try {\r\n const mod = await import(file);\r\n if (mod.SETTINGS) {\r\n allSettings.push(...mod.SETTINGS);\r\n }\r\n } catch (e) {\r\n console.error(`Error loading settings from ${file}:`, e);\r\n }\r\n }\r\n return allSettings;\r\n }\r\n\r\n async getAllWithDefaults(req: CrudRequest) {\r\n const dbConfigs = (await this.getMany(req)) as Settings[];\r\n\r\n // Create a map to override defaults with database entries\r\n const dbConfigMap = new Map<string, Settings>(\r\n dbConfigs.map((config) => [\r\n `${config.scope}:${config.module}:${config.section}:${config.key}`,\r\n config,\r\n ]),\r\n );\r\n\r\n const SETTINGS_DEFAULT = await this.getModulesSettings();\r\n\r\n // Merge defaults with database entries\r\n const mergedConfigs = SETTINGS_DEFAULT.map((defaultConfig) => {\r\n const key = `${defaultConfig.scope}:${defaultConfig.module}:${defaultConfig.section}:${defaultConfig.key}`;\r\n return dbConfigMap.get(key) || defaultConfig;\r\n });\r\n\r\n // Include any additional database entries not in defaults\r\n const additionalDbConfigs = dbConfigs.filter(\r\n (dbConfig) =>\r\n !SETTINGS_DEFAULT.some(\r\n (defaultConfig) =>\r\n dbConfig.scope === defaultConfig.scope &&\r\n defaultConfig.module === dbConfig.module &&\r\n defaultConfig.section === dbConfig.section &&\r\n defaultConfig.key === dbConfig.key,\r\n ),\r\n );\r\n\r\n return [...mergedConfigs, ...additionalDbConfigs];\r\n }\r\n\r\n async createOneOverride(req: CrudRequest, dto: DeepPartial<Settings>): Promise<Settings> {\r\n const existingConfig = await this.repo.findOne({\r\n where: {\r\n module: dto.module,\r\n section: dto.section,\r\n key: dto.key,\r\n },\r\n });\r\n\r\n if (existingConfig) {\r\n return this.repo.save({ ...existingConfig, ...dto });\r\n }\r\n\r\n return this.repo.save(dto);\r\n }\r\n\r\n async get(key: string): Promise<string | undefined> {\r\n const keyParts = key.split(':');\r\n if (keyParts.length !== 4) {\r\n throw new Error('Invalid key format. Expected format: module:section:key');\r\n }\r\n const [scope, module, section, configKey] = keyParts;\r\n\r\n const config = await this.repo.findOne({\r\n where: {\r\n scope,\r\n module,\r\n section,\r\n key: configKey,\r\n },\r\n });\r\n\r\n const SETTINGS_DEFAULT = await this.getModulesSettings();\r\n\r\n const defaultConfig = SETTINGS_DEFAULT.find(\r\n (config) =>\r\n config.module === module && config.section === section && config.key === configKey,\r\n );\r\n\r\n if (config) {\r\n return config.value;\r\n } else if (defaultConfig) {\r\n return defaultConfig.value;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n async getManyWithDefaults(keys: string[]): Promise<Record<string, string>> {\r\n const results: Record<string, string> = {};\r\n for (const key of keys) {\r\n const value = await this.get(key);\r\n if (value !== undefined) {\r\n results[key] = value;\r\n }\r\n }\r\n return results;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,3 @@
1
+ export declare class SettingsModule {
2
+ }
3
+ //# sourceMappingURL=settings.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.module.d.ts","sourceRoot":"","sources":["../../../settings/settings.module.ts"],"names":[],"mappings":"AAOA,qBAMa,cAAc;CAAG"}
@@ -0,0 +1,26 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.SettingsModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const typeorm_1 = require("@nestjs/typeorm");
12
+ const settings_admin_controller_1 = require("./controllers/admin/settings.admin.controller");
13
+ const settings_entity_1 = require("./entities/settings.entity");
14
+ const settings_service_1 = require("./services/settings.service");
15
+ let SettingsModule = class SettingsModule {
16
+ };
17
+ exports.SettingsModule = SettingsModule;
18
+ exports.SettingsModule = SettingsModule = __decorate([
19
+ (0, common_1.Module)({
20
+ imports: [typeorm_1.TypeOrmModule.forFeature([settings_entity_1.Settings])],
21
+ providers: [settings_service_1.SettingsService],
22
+ controllers: [settings_admin_controller_1.SettingsAdminController],
23
+ exports: [settings_service_1.SettingsService],
24
+ })
25
+ ], SettingsModule);
26
+ //# sourceMappingURL=settings.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.module.js","sourceRoot":"","sources":["../../../settings/settings.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAEhD,6FAAwF;AACxF,gEAAsD;AACtD,kEAA8D;AAQvD,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAN1B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,0BAAQ,CAAC,CAAC,CAAC;QAC/C,SAAS,EAAE,CAAC,kCAAe,CAAC;QAC5B,WAAW,EAAE,CAAC,mDAAuB,CAAC;QACtC,OAAO,EAAE,CAAC,kCAAe,CAAC;KAC3B,CAAC;GACW,cAAc,CAAG","sourcesContent":["import { Module } from '@nestjs/common';\r\nimport { TypeOrmModule } from '@nestjs/typeorm';\r\n\r\nimport { SettingsAdminController } from './controllers/admin/settings.admin.controller';\r\nimport { Settings } from './entities/settings.entity';\r\nimport { SettingsService } from './services/settings.service';\r\n\r\n@Module({\r\n imports: [TypeOrmModule.forFeature([Settings])],\r\n providers: [SettingsService],\r\n controllers: [SettingsAdminController],\r\n exports: [SettingsService],\r\n})\r\nexport class SettingsModule {}\r\n"]}
@@ -0,0 +1,83 @@
1
+ import { BaseRouteName, CrudRequest } from '@dataui/crud';
2
+ import { ParamsOptions } from '@dataui/crud-request';
3
+ import { ClassSerializerInterceptor } from '@nestjs/common';
4
+ export declare const BASE_DECORATORS: (MethodDecorator & ClassDecorator)[];
5
+ export declare const BASE_INTERCEPTORS: (typeof ClassSerializerInterceptor)[];
6
+ export declare const BASE_ADMIN_DECORATORS: (MethodDecorator & ClassDecorator)[];
7
+ export declare const CRUD_ALL_ROUTES: BaseRouteName[];
8
+ export declare const CRUD_BASE_CONFIG: {
9
+ params: ParamsOptions;
10
+ routes: {
11
+ getManyBase: {
12
+ decorators: (MethodDecorator & ClassDecorator)[];
13
+ interceptors: (typeof ClassSerializerInterceptor)[];
14
+ };
15
+ getOneBase: {
16
+ decorators: (MethodDecorator & ClassDecorator)[];
17
+ interceptors: (typeof ClassSerializerInterceptor)[];
18
+ };
19
+ createOneBase: {
20
+ decorators: (MethodDecorator & ClassDecorator)[];
21
+ interceptors: (typeof ClassSerializerInterceptor)[];
22
+ };
23
+ createManyBase: {
24
+ decorators: (MethodDecorator & ClassDecorator)[];
25
+ interceptors: (typeof ClassSerializerInterceptor)[];
26
+ };
27
+ updateOneBase: {
28
+ decorators: (MethodDecorator & ClassDecorator)[];
29
+ interceptors: (typeof ClassSerializerInterceptor)[];
30
+ };
31
+ replaceOneBase: {
32
+ decorators: (MethodDecorator & ClassDecorator)[];
33
+ interceptors: (typeof ClassSerializerInterceptor)[];
34
+ };
35
+ deleteOneBase: {
36
+ decorators: (MethodDecorator & ClassDecorator)[];
37
+ interceptors: (typeof ClassSerializerInterceptor)[];
38
+ returnDeleted: boolean;
39
+ };
40
+ };
41
+ };
42
+ export declare const CRUD_ADMIN_BASE_CONFIG: {
43
+ params: {
44
+ id: {
45
+ field: string;
46
+ type: string;
47
+ primary: boolean;
48
+ };
49
+ };
50
+ routes: {
51
+ getManyBase: {
52
+ decorators: (MethodDecorator & ClassDecorator)[];
53
+ interceptors: (typeof ClassSerializerInterceptor)[];
54
+ };
55
+ getOneBase: {
56
+ decorators: (MethodDecorator & ClassDecorator)[];
57
+ interceptors: (typeof ClassSerializerInterceptor)[];
58
+ };
59
+ createOneBase: {
60
+ decorators: (MethodDecorator & ClassDecorator)[];
61
+ interceptors: (typeof ClassSerializerInterceptor)[];
62
+ };
63
+ createManyBase: {
64
+ decorators: (MethodDecorator & ClassDecorator)[];
65
+ interceptors: (typeof ClassSerializerInterceptor)[];
66
+ };
67
+ updateOneBase: {
68
+ decorators: (MethodDecorator & ClassDecorator)[];
69
+ interceptors: (typeof ClassSerializerInterceptor)[];
70
+ };
71
+ replaceOneBase: {
72
+ decorators: (MethodDecorator & ClassDecorator)[];
73
+ interceptors: (typeof ClassSerializerInterceptor)[];
74
+ };
75
+ deleteOneBase: {
76
+ decorators: (MethodDecorator & ClassDecorator)[];
77
+ interceptors: (typeof ClassSerializerInterceptor)[];
78
+ returnDeleted: boolean;
79
+ };
80
+ };
81
+ };
82
+ export declare const cleanCrudRequest: CrudRequest;
83
+ //# sourceMappingURL=crud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../../../shared/constants/crud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAa,MAAM,gBAAgB,CAAC;AAQvE,eAAO,MAAM,eAAe,sCAAuD,CAAC;AACpF,eAAO,MAAM,iBAAiB,uCAA+B,CAAC;AAC9D,eAAO,MAAM,qBAAqB,sCAA0C,CAAC;AAC7E,eAAO,MAAM,eAAe,EAAE,aAAa,EAQ1C,CAAC;AAEF,eAAO,MAAM,gBAAgB;YAOtB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCnB,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuClC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,WA6B9B,CAAC"}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cleanCrudRequest = exports.CRUD_ADMIN_BASE_CONFIG = exports.CRUD_BASE_CONFIG = exports.CRUD_ALL_ROUTES = exports.BASE_ADMIN_DECORATORS = exports.BASE_INTERCEPTORS = exports.BASE_DECORATORS = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const swagger_1 = require("@nestjs/swagger");
6
+ const role_constant_1 = require("../../auth/constants/role.constant");
7
+ const role_decorator_1 = require("../../auth/decorators/role.decorator");
8
+ const auth0_guard_1 = require("../../auth/guards/auth0.guard");
9
+ const roles_guard_1 = require("../../auth/guards/roles.guard");
10
+ exports.BASE_DECORATORS = [(0, common_1.UseGuards)(auth0_guard_1.Auth0Guard, roles_guard_1.RolesGuard), (0, swagger_1.ApiBearerAuth)()];
11
+ exports.BASE_INTERCEPTORS = [common_1.ClassSerializerInterceptor];
12
+ exports.BASE_ADMIN_DECORATORS = [...exports.BASE_DECORATORS, (0, role_decorator_1.Roles)(role_constant_1.ROLE.ADMIN)];
13
+ exports.CRUD_ALL_ROUTES = [
14
+ 'getManyBase',
15
+ 'getOneBase',
16
+ 'createOneBase',
17
+ 'createManyBase',
18
+ 'updateOneBase',
19
+ 'replaceOneBase',
20
+ 'deleteOneBase',
21
+ ];
22
+ exports.CRUD_BASE_CONFIG = {
23
+ params: {
24
+ id: {
25
+ field: 'id',
26
+ type: 'uuid',
27
+ primary: true,
28
+ },
29
+ },
30
+ routes: {
31
+ getManyBase: {
32
+ decorators: exports.BASE_DECORATORS,
33
+ interceptors: exports.BASE_INTERCEPTORS,
34
+ },
35
+ getOneBase: {
36
+ decorators: exports.BASE_DECORATORS,
37
+ interceptors: exports.BASE_INTERCEPTORS,
38
+ },
39
+ createOneBase: {
40
+ decorators: exports.BASE_DECORATORS,
41
+ interceptors: exports.BASE_INTERCEPTORS,
42
+ },
43
+ createManyBase: {
44
+ decorators: exports.BASE_DECORATORS,
45
+ interceptors: exports.BASE_INTERCEPTORS,
46
+ },
47
+ updateOneBase: {
48
+ decorators: exports.BASE_DECORATORS,
49
+ interceptors: exports.BASE_INTERCEPTORS,
50
+ },
51
+ replaceOneBase: {
52
+ decorators: exports.BASE_DECORATORS,
53
+ interceptors: exports.BASE_INTERCEPTORS,
54
+ },
55
+ deleteOneBase: {
56
+ decorators: exports.BASE_DECORATORS,
57
+ interceptors: exports.BASE_INTERCEPTORS,
58
+ returnDeleted: true,
59
+ },
60
+ },
61
+ };
62
+ exports.CRUD_ADMIN_BASE_CONFIG = {
63
+ params: {
64
+ id: {
65
+ field: 'id',
66
+ type: 'uuid',
67
+ primary: true,
68
+ },
69
+ },
70
+ routes: {
71
+ getManyBase: {
72
+ decorators: exports.BASE_ADMIN_DECORATORS,
73
+ interceptors: exports.BASE_INTERCEPTORS,
74
+ },
75
+ getOneBase: {
76
+ decorators: exports.BASE_ADMIN_DECORATORS,
77
+ interceptors: exports.BASE_INTERCEPTORS,
78
+ },
79
+ createOneBase: {
80
+ decorators: exports.BASE_ADMIN_DECORATORS,
81
+ interceptors: exports.BASE_INTERCEPTORS,
82
+ },
83
+ createManyBase: {
84
+ decorators: exports.BASE_ADMIN_DECORATORS,
85
+ interceptors: exports.BASE_INTERCEPTORS,
86
+ },
87
+ updateOneBase: {
88
+ decorators: exports.BASE_ADMIN_DECORATORS,
89
+ interceptors: exports.BASE_INTERCEPTORS,
90
+ },
91
+ replaceOneBase: {
92
+ decorators: exports.BASE_ADMIN_DECORATORS,
93
+ interceptors: exports.BASE_INTERCEPTORS,
94
+ },
95
+ deleteOneBase: {
96
+ decorators: exports.BASE_ADMIN_DECORATORS,
97
+ interceptors: exports.BASE_INTERCEPTORS,
98
+ returnDeleted: true,
99
+ },
100
+ },
101
+ };
102
+ exports.cleanCrudRequest = {
103
+ parsed: {
104
+ fields: [],
105
+ paramsFilter: [],
106
+ filter: [],
107
+ or: [],
108
+ join: [],
109
+ sort: [],
110
+ limit: 1000,
111
+ offset: 0,
112
+ authPersist: {},
113
+ classTransformOptions: {},
114
+ search: {},
115
+ page: 0,
116
+ cache: 0,
117
+ includeDeleted: 0,
118
+ },
119
+ options: {
120
+ params: exports.CRUD_BASE_CONFIG.params,
121
+ query: {
122
+ filter: [],
123
+ exclude: [],
124
+ },
125
+ routes: {
126
+ exclude: [],
127
+ only: exports.CRUD_ALL_ROUTES,
128
+ ...exports.CRUD_BASE_CONFIG.routes,
129
+ },
130
+ },
131
+ };
132
+ //# sourceMappingURL=crud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud.js","sourceRoot":"","sources":["../../../../shared/constants/crud.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseRouteName, CrudRequest } from '@dataui/crud';\r\nimport { ParamsOptions } from '@dataui/crud-request';\r\nimport { ClassSerializerInterceptor, UseGuards } from '@nestjs/common';\r\nimport { ApiBearerAuth } from '@nestjs/swagger';\r\n\r\nimport { ROLE } from '../../auth/constants/role.constant';\r\nimport { Roles } from '../../auth/decorators/role.decorator';\r\nimport { Auth0Guard } from '../../auth/guards/auth0.guard';\r\nimport { RolesGuard } from '../../auth/guards/roles.guard';\r\n\r\nexport const BASE_DECORATORS = [UseGuards(Auth0Guard, RolesGuard), ApiBearerAuth()];\r\nexport const BASE_INTERCEPTORS = [ClassSerializerInterceptor];\r\nexport const BASE_ADMIN_DECORATORS = [...BASE_DECORATORS, Roles(ROLE.ADMIN)];\r\nexport const CRUD_ALL_ROUTES: BaseRouteName[] = [\r\n 'getManyBase',\r\n 'getOneBase',\r\n 'createOneBase',\r\n 'createManyBase',\r\n 'updateOneBase',\r\n 'replaceOneBase',\r\n 'deleteOneBase',\r\n];\r\n\r\nexport const CRUD_BASE_CONFIG = {\r\n params: {\r\n id: {\r\n field: 'id',\r\n type: 'uuid',\r\n primary: true,\r\n },\r\n } as ParamsOptions,\r\n routes: {\r\n getManyBase: {\r\n decorators: BASE_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n },\r\n getOneBase: {\r\n decorators: BASE_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n },\r\n createOneBase: {\r\n decorators: BASE_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n },\r\n createManyBase: {\r\n decorators: BASE_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n },\r\n updateOneBase: {\r\n decorators: BASE_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n },\r\n replaceOneBase: {\r\n decorators: BASE_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n },\r\n deleteOneBase: {\r\n decorators: BASE_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n returnDeleted: true,\r\n },\r\n },\r\n};\r\n\r\nexport const CRUD_ADMIN_BASE_CONFIG = {\r\n params: {\r\n id: {\r\n field: 'id',\r\n type: 'uuid',\r\n primary: true,\r\n },\r\n },\r\n routes: {\r\n getManyBase: {\r\n decorators: BASE_ADMIN_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n },\r\n getOneBase: {\r\n decorators: BASE_ADMIN_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n },\r\n createOneBase: {\r\n decorators: BASE_ADMIN_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n },\r\n createManyBase: {\r\n decorators: BASE_ADMIN_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n },\r\n updateOneBase: {\r\n decorators: BASE_ADMIN_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n },\r\n replaceOneBase: {\r\n decorators: BASE_ADMIN_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n },\r\n deleteOneBase: {\r\n decorators: BASE_ADMIN_DECORATORS,\r\n interceptors: BASE_INTERCEPTORS,\r\n returnDeleted: true,\r\n },\r\n },\r\n};\r\n\r\nexport const cleanCrudRequest: CrudRequest = {\r\n parsed: {\r\n fields: [],\r\n paramsFilter: [],\r\n filter: [],\r\n or: [],\r\n join: [],\r\n sort: [],\r\n limit: 1000,\r\n offset: 0,\r\n authPersist: {},\r\n classTransformOptions: {},\r\n search: {},\r\n page: 0,\r\n cache: 0,\r\n includeDeleted: 0,\r\n },\r\n options: {\r\n params: CRUD_BASE_CONFIG.params as ParamsOptions,\r\n query: {\r\n filter: [],\r\n exclude: [],\r\n },\r\n routes: {\r\n exclude: [],\r\n only: CRUD_ALL_ROUTES,\r\n ...CRUD_BASE_CONFIG.routes,\r\n },\r\n },\r\n};\r\n"]}
@@ -0,0 +1,13 @@
1
+ import { Logger } from 'winston';
2
+ export declare class AppLogger {
3
+ private context?;
4
+ private logger;
5
+ setContext(context: string): void;
6
+ constructor();
7
+ error(message: string, meta?: Record<string, any>): Logger;
8
+ warn(message: string, meta?: Record<string, any>): Logger;
9
+ debug(message: string, meta?: Record<string, any>): Logger;
10
+ verbose(message: string, meta?: Record<string, any>): Logger;
11
+ log(message: string, meta?: Record<string, any>): Logger;
12
+ }
13
+ //# sourceMappingURL=logger.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../../../shared/logger/logger.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,MAAM,EAAc,MAAM,SAAS,CAAC;AAE3D,qBACa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IAEhB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;;IAWxC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAY1D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAYzD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAY1D,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAY5D,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;CAUzD"}
@@ -0,0 +1,75 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AppLogger = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const winston_1 = require("winston");
15
+ let AppLogger = class AppLogger {
16
+ setContext(context) {
17
+ this.context = context;
18
+ }
19
+ constructor() {
20
+ this.logger = (0, winston_1.createLogger)({
21
+ transports: [new winston_1.transports.Console()],
22
+ });
23
+ }
24
+ error(message, meta) {
25
+ const timestamp = new Date().toISOString();
26
+ return this.logger.error({
27
+ message,
28
+ contextName: this.context,
29
+ timestamp,
30
+ ...meta,
31
+ });
32
+ }
33
+ warn(message, meta) {
34
+ const timestamp = new Date().toISOString();
35
+ return this.logger.warn({
36
+ message,
37
+ contextName: this.context,
38
+ timestamp,
39
+ ...meta,
40
+ });
41
+ }
42
+ debug(message, meta) {
43
+ const timestamp = new Date().toISOString();
44
+ return this.logger.debug({
45
+ message,
46
+ contextName: this.context,
47
+ timestamp,
48
+ ...meta,
49
+ });
50
+ }
51
+ verbose(message, meta) {
52
+ const timestamp = new Date().toISOString();
53
+ return this.logger.verbose({
54
+ message,
55
+ contextName: this.context,
56
+ timestamp,
57
+ ...meta,
58
+ });
59
+ }
60
+ log(message, meta) {
61
+ const timestamp = new Date().toISOString();
62
+ return this.logger.info({
63
+ message,
64
+ contextName: this.context,
65
+ timestamp,
66
+ ...meta,
67
+ });
68
+ }
69
+ };
70
+ exports.AppLogger = AppLogger;
71
+ exports.AppLogger = AppLogger = __decorate([
72
+ (0, common_1.Injectable)({ scope: common_1.Scope.TRANSIENT }),
73
+ __metadata("design:paramtypes", [])
74
+ ], AppLogger);
75
+ //# sourceMappingURL=logger.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.service.js","sourceRoot":"","sources":["../../../../shared/logger/logger.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmD;AACnD,qCAA2D;AAGpD,IAAM,SAAS,GAAf,MAAM,SAAS;IAIb,UAAU,CAAC,OAAe;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;QACE,IAAI,CAAC,MAAM,GAAG,IAAA,sBAAY,EAAC;YACzB,UAAU,EAAE,CAAC,IAAI,oBAAU,CAAC,OAAO,EAAE,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAGD,KAAK,CAAC,OAAe,EAAE,IAA0B;QAC/C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACvB,OAAO;YACP,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,SAAS;YACT,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;IAGD,IAAI,CAAC,OAAe,EAAE,IAA0B;QAC9C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,OAAO;YACP,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,SAAS;YACT,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;IAGD,KAAK,CAAC,OAAe,EAAE,IAA0B;QAC/C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACvB,OAAO;YACP,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,SAAS;YACT,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;IAGD,OAAO,CAAC,OAAe,EAAE,IAA0B;QACjD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,OAAO;YACP,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,SAAS;YACT,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;IAGD,GAAG,CAAC,OAAe,EAAE,IAA0B;QAC7C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,OAAO;YACP,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,SAAS;YACT,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAzEY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,cAAK,CAAC,SAAS,EAAE,CAAC;;GAC1B,SAAS,CAyErB","sourcesContent":["import { Injectable, Scope } from '@nestjs/common';\r\nimport { createLogger, Logger, transports } from 'winston';\r\n\r\n@Injectable({ scope: Scope.TRANSIENT })\r\nexport class AppLogger {\r\n private context?: string;\r\n private logger: Logger;\r\n\r\n public setContext(context: string): void {\r\n this.context = context;\r\n }\r\n\r\n constructor() {\r\n this.logger = createLogger({\r\n transports: [new transports.Console()],\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n error(message: string, meta?: Record<string, any>): Logger {\r\n const timestamp = new Date().toISOString();\r\n\r\n return this.logger.error({\r\n message,\r\n contextName: this.context,\r\n timestamp,\r\n ...meta,\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n warn(message: string, meta?: Record<string, any>): Logger {\r\n const timestamp = new Date().toISOString();\r\n\r\n return this.logger.warn({\r\n message,\r\n contextName: this.context,\r\n timestamp,\r\n ...meta,\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n debug(message: string, meta?: Record<string, any>): Logger {\r\n const timestamp = new Date().toISOString();\r\n\r\n return this.logger.debug({\r\n message,\r\n contextName: this.context,\r\n timestamp,\r\n ...meta,\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n verbose(message: string, meta?: Record<string, any>): Logger {\r\n const timestamp = new Date().toISOString();\r\n\r\n return this.logger.verbose({\r\n message,\r\n contextName: this.context,\r\n timestamp,\r\n ...meta,\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n log(message: string, meta?: Record<string, any>): Logger {\r\n const timestamp = new Date().toISOString();\r\n\r\n return this.logger.info({\r\n message,\r\n contextName: this.context,\r\n timestamp,\r\n ...meta,\r\n });\r\n }\r\n}\r\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.client.d.ts","sourceRoot":"","sources":["../../../clients/slack.client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAG3E,qBACa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,SAAS;YAKtB,gBAAgB;IAmBxB,YAAY;IAOZ,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAQ3C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAS/D,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IASlE,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW;IAQvD,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAO3D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.constants.d.ts","sourceRoot":"","sources":["../../../constants/slack.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;CAE9B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.event.constant.d.ts","sourceRoot":"","sources":["../../../constants/slack.event.constant.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B;;CAE7B,CAAC;AAEX,eAAO,MAAM,YAAY;;;CAGxB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { EventEmitter2 } from '@nestjs/event-emitter';
2
+ import { AppLogger } from '../../shared/logger/logger.service';
3
+ import { SlackWebhookEventDto } from '../dtos/slack-webhook-event.dto';
4
+ import { SlackChallengeResponse, SlackOkResponse } from '../types/slack.event.type';
5
+ type SlackWebhookResponse = SlackChallengeResponse | SlackOkResponse;
6
+ export declare class SlackWebhookController {
7
+ private readonly eventEmitter;
8
+ private readonly logger;
9
+ constructor(eventEmitter: EventEmitter2, logger: AppLogger);
10
+ handleWebhook(data: SlackWebhookEventDto): Promise<SlackWebhookResponse>;
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=slack.webhook.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.webhook.controller.d.ts","sourceRoot":"","sources":["../../../controllers/slack.webhook.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEpF,KAAK,oBAAoB,GAAG,sBAAsB,GAAG,eAAe,CAAC;AACrE,qBAEa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,YAAY,EAAE,aAAa,EAC3B,MAAM,EAAE,SAAS;IAQ9B,aAAa,CAAS,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAwBvF"}
@@ -0,0 +1,61 @@
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
+ var SlackWebhookController_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.SlackWebhookController = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const event_emitter_1 = require("@nestjs/event-emitter");
19
+ const swagger_1 = require("@nestjs/swagger");
20
+ const logger_service_1 = require("../../shared/logger/logger.service");
21
+ const slack_event_constant_1 = require("../constants/slack.event.constant");
22
+ const slack_webhook_event_dto_1 = require("../dtos/slack-webhook-event.dto");
23
+ let SlackWebhookController = SlackWebhookController_1 = class SlackWebhookController {
24
+ constructor(eventEmitter, logger) {
25
+ this.eventEmitter = eventEmitter;
26
+ this.logger = logger;
27
+ this.logger.setContext(SlackWebhookController_1.name);
28
+ }
29
+ async handleWebhook(data) {
30
+ this.logger.log(`Webhook ${data.type}`);
31
+ if (data.type === slack_event_constant_1.SLACK_EVENTS.URL_VERIFICATION) {
32
+ this.logger.log(`Webhook ${data.type}`);
33
+ return { challenge: data.challenge };
34
+ }
35
+ if (data.type === slack_event_constant_1.SLACK_EVENTS.EVENT_CALLBACK && data.event) {
36
+ const eventType = data.event.type;
37
+ this.logger.log(`Event received: ${eventType} from user ${data.event.user}`);
38
+ this.eventEmitter.emit(slack_event_constant_1.EVENT_EMITTER_SLACK_EVENTS.WEBHOOK_INCOMING_MESSAGE, { data: data.event }, { async: true });
39
+ return { ok: true };
40
+ }
41
+ this.logger.warn(`Type of event is not supported: ${data.type}`);
42
+ return { ok: true };
43
+ }
44
+ };
45
+ exports.SlackWebhookController = SlackWebhookController;
46
+ __decorate([
47
+ (0, common_1.Post)(),
48
+ (0, common_1.HttpCode)(200),
49
+ (0, swagger_1.ApiOperation)({ summary: 'Receive webhooks from Slack' }),
50
+ __param(0, (0, common_1.Body)()),
51
+ __metadata("design:type", Function),
52
+ __metadata("design:paramtypes", [slack_webhook_event_dto_1.SlackWebhookEventDto]),
53
+ __metadata("design:returntype", Promise)
54
+ ], SlackWebhookController.prototype, "handleWebhook", null);
55
+ exports.SlackWebhookController = SlackWebhookController = SlackWebhookController_1 = __decorate([
56
+ (0, swagger_1.ApiTags)('general/slack/webhook'),
57
+ (0, common_1.Controller)('general/slack/webhook'),
58
+ __metadata("design:paramtypes", [event_emitter_1.EventEmitter2,
59
+ logger_service_1.AppLogger])
60
+ ], SlackWebhookController);
61
+ //# sourceMappingURL=slack.webhook.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.webhook.controller.js","sourceRoot":"","sources":["../../../controllers/slack.webhook.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAkE;AAClE,yDAAsD;AACtD,6CAAwD;AAExD,uEAA+D;AAC/D,4EAA6F;AAC7F,6EAAuE;AAMhE,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IACjC,YACmB,YAA2B,EAC3B,MAAiB;QADjB,iBAAY,GAAZ,YAAY,CAAe;QAC3B,WAAM,GAAN,MAAM,CAAW;QAElC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAsB,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAKK,AAAN,KAAK,CAAC,aAAa,CAAS,IAA0B;QACpD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAExC,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAY,CAAC,gBAAgB,EAAE,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAU,EAAE,CAAC;QACxC,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAY,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,SAAS,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAE7E,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,iDAA0B,CAAC,wBAAwB,EACnD,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,EACpB,EAAE,KAAK,EAAE,IAAI,EAAE,CAChB,CAAC;YAEF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;CACF,CAAA;AAnCY,wDAAsB;AAW3B;IAHL,IAAA,aAAI,GAAE;IACN,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACb,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IACpC,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAO,8CAAoB;;2DAuBrD;iCAlCU,sBAAsB;IAFlC,IAAA,iBAAO,EAAC,uBAAuB,CAAC;IAChC,IAAA,mBAAU,EAAC,uBAAuB,CAAC;qCAGD,6BAAa;QACnB,0BAAS;GAHzB,sBAAsB,CAmClC","sourcesContent":["import { Body, Controller, HttpCode, Post } from '@nestjs/common';\r\nimport { EventEmitter2 } from '@nestjs/event-emitter';\r\nimport { ApiOperation, ApiTags } from '@nestjs/swagger';\r\n\r\nimport { AppLogger } from '../../shared/logger/logger.service';\r\nimport { EVENT_EMITTER_SLACK_EVENTS, SLACK_EVENTS } from '../constants/slack.event.constant';\r\nimport { SlackWebhookEventDto } from '../dtos/slack-webhook-event.dto';\r\nimport { SlackChallengeResponse, SlackOkResponse } from '../types/slack.event.type';\r\n\r\ntype SlackWebhookResponse = SlackChallengeResponse | SlackOkResponse;\r\n@ApiTags('general/slack/webhook')\r\n@Controller('general/slack/webhook')\r\nexport class SlackWebhookController {\r\n constructor(\r\n private readonly eventEmitter: EventEmitter2,\r\n private readonly logger: AppLogger,\r\n ) {\r\n this.logger.setContext(SlackWebhookController.name);\r\n }\r\n\r\n @Post()\r\n @HttpCode(200)\r\n @ApiOperation({ summary: 'Receive webhooks from Slack' })\r\n async handleWebhook(@Body() data: SlackWebhookEventDto): Promise<SlackWebhookResponse> {\r\n this.logger.log(`Webhook ${data.type}`);\r\n\r\n if (data.type === SLACK_EVENTS.URL_VERIFICATION) {\r\n this.logger.log(`Webhook ${data.type}`);\r\n return { challenge: data.challenge! };\r\n }\r\n\r\n if (data.type === SLACK_EVENTS.EVENT_CALLBACK && data.event) {\r\n const eventType = data.event.type;\r\n this.logger.log(`Event received: ${eventType} from user ${data.event.user}`);\r\n\r\n this.eventEmitter.emit(\r\n EVENT_EMITTER_SLACK_EVENTS.WEBHOOK_INCOMING_MESSAGE,\r\n { data: data.event },\r\n { async: true },\r\n );\r\n\r\n return { ok: true };\r\n }\r\n\r\n this.logger.warn(`Type of event is not supported: ${data.type}`);\r\n return { ok: true };\r\n }\r\n}\r\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-webhook-event.dto.d.ts","sourceRoot":"","sources":["../../../dtos/slack-webhook-event.dto.ts"],"names":[],"mappings":"AAIA,qBAAa,aAAa;IAGxB,IAAI,EAAE,MAAM,CAAC;IAKb,IAAI,CAAC,EAAE,MAAM,CAAC;IAKd,IAAI,CAAC,EAAE,MAAM,CAAC;IAId,OAAO,EAAE,MAAM,CAAC;IAIhB,EAAE,EAAE,MAAM,CAAC;IAKX,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,IAAI,CAAC,EAAE,MAAM,CAAC;IAKd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB;AAED,qBAAa,oBAAoB;IAG/B,IAAI,EAAE,MAAM,CAAC;IAKb,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,OAAO,CAAC,EAAE,MAAM,CAAC;IAOjB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAA5C,2GAAA,WAAW,OAAA;AAEpB,+CAA6C;AAApC,2GAAA,WAAW,OAAA","sourcesContent":["export { SlackClient } from './clients/slack.client';\nexport { ILogger } from './interfaces/logger.interface';\nexport { SlackModule } from './slack.module';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAA5C,2GAAA,WAAW,OAAA;AAEpB,+CAA6C;AAApC,2GAAA,WAAW,OAAA","sourcesContent":["export { SlackClient } from './clients/slack.client';\r\nexport { ILogger } from './interfaces/logger.interface';\r\nexport { SlackModule } from './slack.module';\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.interface.js","sourceRoot":"","sources":["../../../interfaces/logger.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface ILogger {\n setContext(context: string): void;\n error(message: string, meta?: Record<string, any>): any;\n warn(message: string, meta?: Record<string, any>): any;\n debug(message: string, meta?: Record<string, any>): any;\n verbose(message: string, meta?: Record<string, any>): any;\n log(message: string, meta?: Record<string, any>): any;\n}\n"]}
1
+ {"version":3,"file":"logger.interface.js","sourceRoot":"","sources":["../../../interfaces/logger.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface ILogger {\r\n setContext(context: string): void;\r\n error(message: string, meta?: Record<string, any>): any;\r\n warn(message: string, meta?: Record<string, any>): any;\r\n debug(message: string, meta?: Record<string, any>): any;\r\n verbose(message: string, meta?: Record<string, any>): any;\r\n log(message: string, meta?: Record<string, any>): any;\r\n}\r\n"]}
@@ -0,0 +1,11 @@
1
+ import { AppLogger } from '../../shared/logger/logger.service';
2
+ import { SlackClient } from '../clients/slack.client';
3
+ export declare class SlackChannelService {
4
+ private readonly slackClient;
5
+ private readonly logger;
6
+ constructor(slackClient: SlackClient, logger: AppLogger);
7
+ listChannels(): Promise<import("@slack/web-api").ConversationsListResponse>;
8
+ getChannelHistory(channelId: string, limit?: number): Promise<import("@slack/web-api").ConversationsHistoryResponse>;
9
+ getThreadReplies(channelId: string, threadTs: string): Promise<import("@slack/web-api").ConversationsRepliesResponse>;
10
+ }
11
+ //# sourceMappingURL=slack-channel.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-channel.service.d.ts","sourceRoot":"","sources":["../../../services/slack-channel.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,qBACa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,SAAS;IAK9B,YAAY;IAQZ,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW;IASvD,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAQ3D"}
@@ -0,0 +1,57 @@
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 SlackChannelService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.SlackChannelService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const logger_service_1 = require("../../shared/logger/logger.service");
16
+ const slack_client_1 = require("../clients/slack.client");
17
+ let SlackChannelService = SlackChannelService_1 = class SlackChannelService {
18
+ constructor(slackClient, logger) {
19
+ this.slackClient = slackClient;
20
+ this.logger = logger;
21
+ this.logger.setContext(SlackChannelService_1.name);
22
+ }
23
+ async listChannels() {
24
+ try {
25
+ return await this.slackClient.listChannels();
26
+ }
27
+ catch (error) {
28
+ this.logger.error('Error listing Slack channels', error);
29
+ throw error;
30
+ }
31
+ }
32
+ async getChannelHistory(channelId, limit = 10) {
33
+ try {
34
+ return await this.slackClient.getChannelHistory(channelId, limit);
35
+ }
36
+ catch (error) {
37
+ this.logger.error('Error getting Slack channel history', error);
38
+ throw error;
39
+ }
40
+ }
41
+ async getThreadReplies(channelId, threadTs) {
42
+ try {
43
+ return await this.slackClient.getThreadReplies(channelId, threadTs);
44
+ }
45
+ catch (error) {
46
+ this.logger.error('Error getting Slack thread replies', error);
47
+ throw error;
48
+ }
49
+ }
50
+ };
51
+ exports.SlackChannelService = SlackChannelService;
52
+ exports.SlackChannelService = SlackChannelService = SlackChannelService_1 = __decorate([
53
+ (0, common_1.Injectable)(),
54
+ __metadata("design:paramtypes", [slack_client_1.SlackClient,
55
+ logger_service_1.AppLogger])
56
+ ], SlackChannelService);
57
+ //# sourceMappingURL=slack-channel.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-channel.service.js","sourceRoot":"","sources":["../../../services/slack-channel.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,uEAA+D;AAC/D,0DAAsD;AAG/C,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAC9B,YACmB,WAAwB,EACxB,MAAiB;QADjB,gBAAW,GAAX,WAAW,CAAa;QACxB,WAAM,GAAN,MAAM,CAAW;QAElC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAc,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,QAAgB,EAAE;QAC3D,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAc,CAAC,CAAC;YACzE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,QAAgB;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAc,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAjCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAGqB,0BAAW;QAChB,0BAAS;GAHzB,mBAAmB,CAiC/B","sourcesContent":["import { Injectable } from '@nestjs/common';\r\n\r\nimport { AppLogger } from '../../shared/logger/logger.service';\r\nimport { SlackClient } from '../clients/slack.client';\r\n\r\n@Injectable()\r\nexport class SlackChannelService {\r\n constructor(\r\n private readonly slackClient: SlackClient,\r\n private readonly logger: AppLogger,\r\n ) {\r\n this.logger.setContext(SlackChannelService.name);\r\n }\r\n\r\n async listChannels() {\r\n try {\r\n return await this.slackClient.listChannels();\r\n } catch (error) {\r\n this.logger.error('Error listing Slack channels', error as Error);\r\n throw error;\r\n }\r\n }\r\n async getChannelHistory(channelId: string, limit: number = 10) {\r\n try {\r\n return await this.slackClient.getChannelHistory(channelId, limit);\r\n } catch (error) {\r\n this.logger.error('Error getting Slack channel history', error as Error);\r\n throw error;\r\n }\r\n }\r\n\r\n async getThreadReplies(channelId: string, threadTs: string) {\r\n try {\r\n return await this.slackClient.getThreadReplies(channelId, threadTs);\r\n } catch (error) {\r\n this.logger.error('Error getting Slack thread replies', error as Error);\r\n throw error;\r\n }\r\n }\r\n}\r\n"]}
@@ -0,0 +1,10 @@
1
+ import { AppLogger } from '../../shared/logger/logger.service';
2
+ import { SlackClient } from '../clients/slack.client';
3
+ export declare class SlackMessageService {
4
+ private readonly slackClient;
5
+ private readonly logger;
6
+ constructor(slackClient: SlackClient, logger: AppLogger);
7
+ sendMessage(channelId: string, text: string): Promise<import("@slack/web-api").ChatPostMessageResponse>;
8
+ replyToThread(channelId: string, threadTs: string, text: string): Promise<import("@slack/web-api").ChatPostMessageResponse>;
9
+ }
10
+ //# sourceMappingURL=slack-message.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-message.service.d.ts","sourceRoot":"","sources":["../../../services/slack-message.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,qBACa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,SAAS;IAK9B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAS3C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAQtE"}