@venturialstd/slack 0.1.24 → 0.1.26

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 (172) hide show
  1. package/dist/core/src/auth/auth.module.d.ts +2 -0
  2. package/dist/core/src/auth/auth.module.js +26 -0
  3. package/dist/core/src/auth/auth.module.js.map +1 -0
  4. package/dist/core/src/auth/constants/role.constant.d.ts +5 -0
  5. package/dist/core/src/auth/constants/role.constant.js +10 -0
  6. package/dist/core/src/auth/constants/role.constant.js.map +1 -0
  7. package/dist/core/src/auth/constants/strategy.constant.d.ts +5 -0
  8. package/dist/core/src/auth/constants/strategy.constant.js +9 -0
  9. package/dist/core/src/auth/constants/strategy.constant.js.map +1 -0
  10. package/dist/core/src/auth/controllers/auth.controller.d.ts +5 -0
  11. package/dist/core/src/auth/controllers/auth.controller.js +40 -0
  12. package/dist/core/src/auth/controllers/auth.controller.js.map +1 -0
  13. package/dist/core/src/auth/decorators/role.decorator.d.ts +4 -0
  14. package/dist/core/src/auth/decorators/role.decorator.js +8 -0
  15. package/dist/core/src/auth/decorators/role.decorator.js.map +1 -0
  16. package/dist/core/src/auth/dtos/auth-login-input.dto.d.ts +4 -0
  17. package/dist/core/src/auth/dtos/auth-login-input.dto.js +33 -0
  18. package/dist/core/src/auth/dtos/auth-login-input.dto.js.map +1 -0
  19. package/dist/core/src/auth/dtos/auth-refresh-token-input.dto.d.ts +3 -0
  20. package/dist/core/src/auth/dtos/auth-refresh-token-input.dto.js +24 -0
  21. package/dist/core/src/auth/dtos/auth-refresh-token-input.dto.js.map +1 -0
  22. package/dist/core/src/auth/dtos/auth-register-input.dto.d.ts +9 -0
  23. package/dist/core/src/auth/dtos/auth-register-input.dto.js +54 -0
  24. package/dist/core/src/auth/dtos/auth-register-input.dto.js.map +1 -0
  25. package/dist/core/src/auth/dtos/auth-register-output.dto.d.ts +11 -0
  26. package/dist/core/src/auth/dtos/auth-register-output.dto.js +67 -0
  27. package/dist/core/src/auth/dtos/auth-register-output.dto.js.map +1 -0
  28. package/dist/core/src/auth/dtos/auth-token-output.dto.d.ts +13 -0
  29. package/dist/core/src/auth/dtos/auth-token-output.dto.js +52 -0
  30. package/dist/core/src/auth/dtos/auth-token-output.dto.js.map +1 -0
  31. package/dist/core/src/auth/guards/auth0.guard.d.ts +8 -0
  32. package/dist/core/src/auth/guards/auth0.guard.js +28 -0
  33. package/dist/core/src/auth/guards/auth0.guard.js.map +1 -0
  34. package/dist/core/src/auth/guards/firebase.guard.d.ts +8 -0
  35. package/dist/core/src/auth/guards/firebase.guard.js +28 -0
  36. package/dist/core/src/auth/guards/firebase.guard.js.map +1 -0
  37. package/dist/core/src/auth/guards/jwt-auth.guard.d.ts +8 -0
  38. package/dist/core/src/auth/guards/jwt-auth.guard.js +28 -0
  39. package/dist/core/src/auth/guards/jwt-auth.guard.js.map +1 -0
  40. package/dist/core/src/auth/guards/jwt-refresh.guard.d.ts +8 -0
  41. package/dist/core/src/auth/guards/jwt-refresh.guard.js +28 -0
  42. package/dist/core/src/auth/guards/jwt-refresh.guard.js.map +1 -0
  43. package/dist/core/src/auth/guards/jwt.guard.d.ts +8 -0
  44. package/dist/core/src/auth/guards/jwt.guard.js +28 -0
  45. package/dist/core/src/auth/guards/jwt.guard.js.map +1 -0
  46. package/dist/core/src/auth/guards/local-auth.guard.d.ts +4 -0
  47. package/dist/core/src/auth/guards/local-auth.guard.js +19 -0
  48. package/dist/core/src/auth/guards/local-auth.guard.js.map +1 -0
  49. package/dist/core/src/auth/guards/roles.guard.d.ts +7 -0
  50. package/dist/core/src/auth/guards/roles.guard.js +41 -0
  51. package/dist/core/src/auth/guards/roles.guard.js.map +1 -0
  52. package/dist/core/src/auth/services/auth.service.d.ts +7 -0
  53. package/dist/core/src/auth/services/auth.service.js +32 -0
  54. package/dist/core/src/auth/services/auth.service.js.map +1 -0
  55. package/dist/core/src/auth/types/auth.type.d.ts +4 -0
  56. package/dist/core/src/auth/types/auth.type.js +3 -0
  57. package/dist/core/src/auth/types/auth.type.js.map +1 -0
  58. package/dist/core/src/index.d.ts +44 -0
  59. package/dist/core/src/index.js +61 -0
  60. package/dist/core/src/index.js.map +1 -0
  61. package/dist/core/src/settings/constants/settings.constant.d.ts +11 -0
  62. package/dist/core/src/settings/constants/settings.constant.js +16 -0
  63. package/dist/core/src/settings/constants/settings.constant.js.map +1 -0
  64. package/dist/core/src/settings/controllers/admin/settings.admin.controller.d.ts +11 -0
  65. package/dist/core/src/settings/controllers/admin/settings.admin.controller.js +74 -0
  66. package/dist/core/src/settings/controllers/admin/settings.admin.controller.js.map +1 -0
  67. package/dist/core/src/settings/entities/settings.entity.d.ts +16 -0
  68. package/dist/core/src/settings/entities/settings.entity.js +116 -0
  69. package/dist/core/src/settings/entities/settings.entity.js.map +1 -0
  70. package/dist/core/src/settings/services/settings.service.d.ts +12 -0
  71. package/dist/core/src/settings/services/settings.service.js +150 -0
  72. package/dist/core/src/settings/services/settings.service.js.map +1 -0
  73. package/dist/core/src/settings/settings.module.d.ts +2 -0
  74. package/dist/core/src/settings/settings.module.js +26 -0
  75. package/dist/core/src/settings/settings.module.js.map +1 -0
  76. package/dist/core/src/shared/acl/action.constant.d.ts +8 -0
  77. package/dist/core/src/shared/acl/action.constant.js +13 -0
  78. package/dist/core/src/shared/acl/action.constant.js.map +1 -0
  79. package/dist/core/src/shared/acl/actor.constant.d.ts +4 -0
  80. package/dist/core/src/shared/acl/actor.constant.js +3 -0
  81. package/dist/core/src/shared/acl/actor.constant.js.map +1 -0
  82. package/dist/core/src/shared/configs/configuration.d.ts +2 -0
  83. package/dist/core/src/shared/configs/configuration.js +23 -0
  84. package/dist/core/src/shared/configs/configuration.js.map +1 -0
  85. package/dist/core/src/shared/configs/module-options.d.ts +2 -0
  86. package/dist/core/src/shared/configs/module-options.js +65 -0
  87. package/dist/core/src/shared/configs/module-options.js.map +1 -0
  88. package/dist/core/src/shared/constants/cache.d.ts +6 -0
  89. package/dist/core/src/shared/constants/cache.js +11 -0
  90. package/dist/core/src/shared/constants/cache.js.map +1 -0
  91. package/dist/core/src/shared/constants/common.d.ts +6 -0
  92. package/dist/core/src/shared/constants/common.js +7 -0
  93. package/dist/core/src/shared/constants/common.js.map +1 -0
  94. package/dist/core/src/shared/constants/crud.d.ts +82 -0
  95. package/dist/core/src/shared/constants/crud.js +132 -0
  96. package/dist/core/src/shared/constants/crud.js.map +1 -0
  97. package/dist/core/src/shared/constants/index.d.ts +3 -0
  98. package/dist/core/src/shared/constants/index.js +20 -0
  99. package/dist/core/src/shared/constants/index.js.map +1 -0
  100. package/dist/core/src/shared/dtos/base-api-response.dto.d.ts +21 -0
  101. package/dist/core/src/shared/dtos/base-api-response.dto.js +88 -0
  102. package/dist/core/src/shared/dtos/base-api-response.dto.js.map +1 -0
  103. package/dist/core/src/shared/dtos/empty.dto.d.ts +3 -0
  104. package/dist/core/src/shared/dtos/empty.dto.js +25 -0
  105. package/dist/core/src/shared/dtos/empty.dto.js.map +1 -0
  106. package/dist/core/src/shared/dtos/pagination-params.dto.d.ts +6 -0
  107. package/dist/core/src/shared/dtos/pagination-params.dto.js +61 -0
  108. package/dist/core/src/shared/dtos/pagination-params.dto.js.map +1 -0
  109. package/dist/core/src/shared/exceptions/base-api.exception.d.ts +6 -0
  110. package/dist/core/src/shared/exceptions/base-api.exception.js +16 -0
  111. package/dist/core/src/shared/exceptions/base-api.exception.js.map +1 -0
  112. package/dist/core/src/shared/filters/all-exceptions.filter.d.ts +9 -0
  113. package/dist/core/src/shared/filters/all-exceptions.filter.js +91 -0
  114. package/dist/core/src/shared/filters/all-exceptions.filter.js.map +1 -0
  115. package/dist/core/src/shared/interceptors/logging.interceptor.d.ts +8 -0
  116. package/dist/core/src/shared/interceptors/logging.interceptor.js +52 -0
  117. package/dist/core/src/shared/interceptors/logging.interceptor.js.map +1 -0
  118. package/dist/core/src/shared/logger/logger.module.d.ts +2 -0
  119. package/dist/core/src/shared/logger/logger.module.js +22 -0
  120. package/dist/core/src/shared/logger/logger.module.js.map +1 -0
  121. package/dist/core/src/shared/logger/logger.service.d.ts +12 -0
  122. package/dist/core/src/shared/logger/logger.service.js +77 -0
  123. package/dist/core/src/shared/logger/logger.service.js.map +1 -0
  124. package/dist/core/src/shared/middlewares/request-id/request-id.middleware.d.ts +2 -0
  125. package/dist/core/src/shared/middlewares/request-id/request-id.middleware.js +15 -0
  126. package/dist/core/src/shared/middlewares/request-id/request-id.middleware.js.map +1 -0
  127. package/dist/core/src/shared/request-context/req-context.decorator.d.ts +1 -0
  128. package/dist/core/src/shared/request-context/req-context.decorator.js +10 -0
  129. package/dist/core/src/shared/request-context/req-context.decorator.js.map +1 -0
  130. package/dist/core/src/shared/request-context/request-context.dto.d.ts +12 -0
  131. package/dist/core/src/shared/request-context/request-context.dto.js +14 -0
  132. package/dist/core/src/shared/request-context/request-context.dto.js.map +1 -0
  133. package/dist/core/src/shared/request-context/util/index.d.ts +3 -0
  134. package/dist/core/src/shared/request-context/util/index.js +16 -0
  135. package/dist/core/src/shared/request-context/util/index.js.map +1 -0
  136. package/dist/core/src/shared/services/cache.service.d.ts +12 -0
  137. package/dist/core/src/shared/services/cache.service.js +64 -0
  138. package/dist/core/src/shared/services/cache.service.js.map +1 -0
  139. package/dist/core/src/shared/shared.module.d.ts +8 -0
  140. package/dist/core/src/shared/shared.module.js +81 -0
  141. package/dist/core/src/shared/shared.module.js.map +1 -0
  142. package/dist/core/src/shared/utils/phone.util.d.ts +5 -0
  143. package/dist/core/src/shared/utils/phone.util.js +17 -0
  144. package/dist/core/src/shared/utils/phone.util.js.map +1 -0
  145. package/dist/core/src/shared/utils/user.util.d.ts +4 -0
  146. package/dist/core/src/shared/utils/user.util.js +11 -0
  147. package/dist/core/src/shared/utils/user.util.js.map +1 -0
  148. package/dist/slack/clients/slack.client.d.ts +3 -3
  149. package/dist/slack/clients/slack.client.js +8 -10
  150. package/dist/slack/clients/slack.client.js.map +1 -1
  151. package/dist/slack/constants/slack.constants.d.ts +3 -0
  152. package/dist/slack/constants/slack.constants.js +7 -0
  153. package/dist/slack/constants/slack.constants.js.map +1 -0
  154. package/dist/slack/controllers/slack.webhook.controller.d.ts +2 -2
  155. package/dist/slack/controllers/slack.webhook.controller.js +3 -2
  156. package/dist/slack/controllers/slack.webhook.controller.js.map +1 -1
  157. package/dist/slack/index.d.ts +1 -0
  158. package/dist/slack/index.js +3 -1
  159. package/dist/slack/index.js.map +1 -1
  160. package/dist/slack/interfaces/slack-interface.d.ts +5 -5
  161. package/dist/slack/interfaces/slack-interface.js.map +1 -1
  162. package/dist/slack/services/slack-channel.service.d.ts +2 -2
  163. package/dist/slack/services/slack-channel.service.js +3 -5
  164. package/dist/slack/services/slack-channel.service.js.map +1 -1
  165. package/dist/slack/services/slack-message.service.d.ts +2 -2
  166. package/dist/slack/services/slack-message.service.js +3 -5
  167. package/dist/slack/services/slack-message.service.js.map +1 -1
  168. package/dist/slack/slack.module.d.ts +0 -3
  169. package/dist/slack/slack.module.js +10 -24
  170. package/dist/slack/slack.module.js.map +1 -1
  171. package/dist/slack/tsconfig.build.tsbuildinfo +1 -1
  172. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.entity.js","sourceRoot":"","sources":["../../../../../../core/src/settings/entities/settings.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAA4C;AAC5C,qDAAyD;AACzD,qCAMiB;AAEjB,sEAA+D;AAGxD,IAAM,QAAQ,GAAd,MAAM,QAAQ;IAGnB,EAAE,CAAS;IAIX,KAAK,CAAS;IAId,WAAW,CAAS;IAIpB,KAAK,CAAS;IAId,MAAM,CAAS;IAIf,OAAO,CAAS;IAIhB,GAAG,CAAS;IAIZ,KAAK,CAAS;IAQd,IAAI,CAAgB;IAMpB,OAAO,CAAyB;IAGhC,SAAS,CAAS;IASlB,SAAS,CAAO;IAShB,SAAS,CAAO;CACjB,CAAA;AAnEY,4BAAQ;AAGnB;IAFC,IAAA,2BAAO,GAAE;IACT,IAAA,gCAAsB,EAAC,MAAM,CAAC;;oCACpB;AAIX;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,GAAE;;uCACK;AAId;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,GAAE;;6CACW;AAIpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,GAAE;;uCACK;AAId;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,GAAE;;wCACM;AAIf;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,GAAE;;yCACO;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,GAAE;;qCACG;AAIZ;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,GAAE;;uCACK;AAQd;IANC,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,iCAAa;QACnB,OAAO,EAAE,CAAC,iCAAa,CAAC,IAAI,CAAC;KAC9B,CAAC;;sCACkB;AAMpB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,gBAAM,EAAC,OAAO,EAAE;QACf,QAAQ,EAAE,IAAI;KACf,CAAC;;yCAC8B;AAGhC;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;2CACL;AASlB;IAPC,IAAA,2BAAO,GAAE;IACT,IAAA,0BAAgB,EAAC;QAChB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB;KACnC,CAAC;8BACS,IAAI;2CAAC;AAShB;IAPC,IAAA,2BAAO,GAAE;IACT,IAAA,0BAAgB,EAAC;QAChB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB;KACnC,CAAC;8BACS,IAAI;2CAAC;mBAlEL,QAAQ;IADpB,IAAA,gBAAM,EAAC,UAAU,CAAC;GACN,QAAQ,CAmEpB","sourcesContent":["import { Exclude } from 'class-transformer';\r\nimport { IsNotEmpty, IsOptional } from 'class-validator';\r\nimport {\r\n Column,\r\n CreateDateColumn,\r\n Entity,\r\n PrimaryGeneratedColumn,\r\n UpdateDateColumn,\r\n} from 'typeorm';\r\n\r\nimport { SETTINGS_TYPE } from '../constants/settings.constant';\r\n\r\n@Entity('settings')\r\nexport class Settings {\r\n @Exclude()\r\n @PrimaryGeneratedColumn('uuid')\r\n id: string;\r\n\r\n @IsNotEmpty()\r\n @Column()\r\n label: string;\r\n\r\n @IsOptional()\r\n @Column()\r\n description: string;\r\n\r\n @IsNotEmpty()\r\n @Column()\r\n scope: string;\r\n\r\n @IsNotEmpty()\r\n @Column()\r\n module: string;\r\n\r\n @IsNotEmpty()\r\n @Column()\r\n section: string;\r\n\r\n @IsNotEmpty()\r\n @Column()\r\n key: string;\r\n\r\n @IsNotEmpty()\r\n @Column()\r\n value: string;\r\n\r\n @IsNotEmpty()\r\n @Column({\r\n type: 'enum',\r\n enum: SETTINGS_TYPE,\r\n default: [SETTINGS_TYPE.TEXT],\r\n })\r\n type: SETTINGS_TYPE;\r\n\r\n @IsOptional()\r\n @Column('jsonb', {\r\n nullable: true,\r\n })\r\n options: object | null | string;\r\n\r\n @Column({ default: 0 })\r\n sortOrder: number;\r\n\r\n @Exclude()\r\n @CreateDateColumn({\r\n name: 'createdAt',\r\n nullable: false,\r\n type: 'timestamptz',\r\n default: () => 'CURRENT_TIMESTAMP',\r\n })\r\n createdAt: Date;\r\n\r\n @Exclude()\r\n @UpdateDateColumn({\r\n name: 'updatedAt',\r\n nullable: false,\r\n type: 'timestamptz',\r\n default: () => 'CURRENT_TIMESTAMP',\r\n })\r\n updatedAt: Date;\r\n}\r\n"]}
@@ -0,0 +1,12 @@
1
+ import { CrudRequest } from '@dataui/crud';
2
+ import { TypeOrmCrudService } from '@dataui/crud-typeorm';
3
+ import { DeepPartial, Repository } from 'typeorm';
4
+ import { Settings } from '../entities/settings.entity';
5
+ export declare class SettingsService extends TypeOrmCrudService<Settings> {
6
+ constructor(repo: Repository<Settings>);
7
+ getModulesSettings(): Promise<any[]>;
8
+ getAllWithDefaults(req: CrudRequest): Promise<any[]>;
9
+ createOneOverride(req: CrudRequest, dto: DeepPartial<Settings>): Promise<Settings>;
10
+ get(key: string): Promise<string | undefined>;
11
+ getManyWithDefaults(keys: string[]): Promise<Record<string, string>>;
12
+ }
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
45
+ return function (target, key) { decorator(target, key, paramIndex); }
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.SettingsService = void 0;
49
+ const crud_typeorm_1 = require("@dataui/crud-typeorm");
50
+ const common_1 = require("@nestjs/common");
51
+ const typeorm_1 = require("@nestjs/typeorm");
52
+ const glob = __importStar(require("glob"));
53
+ const path = __importStar(require("path"));
54
+ const typeorm_2 = require("typeorm");
55
+ const settings_entity_1 = require("../entities/settings.entity");
56
+ let SettingsService = class SettingsService extends crud_typeorm_1.TypeOrmCrudService {
57
+ constructor(repo) {
58
+ super(repo);
59
+ }
60
+ async getModulesSettings() {
61
+ const pattern = path.join(__dirname, '../../../src/*/settings/*.settings.js');
62
+ const files = glob.sync(pattern);
63
+ const allSettings = [];
64
+ for (const file of files) {
65
+ try {
66
+ const mod = await Promise.resolve(`${file}`).then(s => __importStar(require(s)));
67
+ if (mod.SETTINGS) {
68
+ allSettings.push(...mod.SETTINGS);
69
+ }
70
+ }
71
+ catch (e) {
72
+ console.error(`Error loading settings from ${file}:`, e);
73
+ }
74
+ }
75
+ return allSettings;
76
+ }
77
+ async getAllWithDefaults(req) {
78
+ const dbConfigs = (await this.getMany(req));
79
+ const dbConfigMap = new Map(dbConfigs.map((config) => [
80
+ `${config.scope}:${config.module}:${config.section}:${config.key}`,
81
+ config,
82
+ ]));
83
+ const SETTINGS_DEFAULT = await this.getModulesSettings();
84
+ const mergedConfigs = SETTINGS_DEFAULT.map((defaultConfig) => {
85
+ const key = `${defaultConfig.scope}:${defaultConfig.module}:${defaultConfig.section}:${defaultConfig.key}`;
86
+ return dbConfigMap.get(key) || defaultConfig;
87
+ });
88
+ const additionalDbConfigs = dbConfigs.filter((dbConfig) => !SETTINGS_DEFAULT.some((defaultConfig) => dbConfig.scope === defaultConfig.scope &&
89
+ defaultConfig.module === dbConfig.module &&
90
+ defaultConfig.section === dbConfig.section &&
91
+ defaultConfig.key === dbConfig.key));
92
+ return [...mergedConfigs, ...additionalDbConfigs];
93
+ }
94
+ async createOneOverride(req, dto) {
95
+ const existingConfig = await this.repo.findOne({
96
+ where: {
97
+ module: dto.module,
98
+ section: dto.section,
99
+ key: dto.key,
100
+ },
101
+ });
102
+ if (existingConfig) {
103
+ return this.repo.save({ ...existingConfig, ...dto });
104
+ }
105
+ return this.repo.save(dto);
106
+ }
107
+ async get(key) {
108
+ const keyParts = key.split(':');
109
+ if (keyParts.length !== 4) {
110
+ throw new Error('Invalid key format. Expected format: module:section:key');
111
+ }
112
+ const [scope, module, section, configKey] = keyParts;
113
+ const config = await this.repo.findOne({
114
+ where: {
115
+ scope,
116
+ module,
117
+ section,
118
+ key: configKey,
119
+ },
120
+ });
121
+ const SETTINGS_DEFAULT = await this.getModulesSettings();
122
+ const defaultConfig = SETTINGS_DEFAULT.find((config) => config.module === module && config.section === section && config.key === configKey);
123
+ if (config) {
124
+ return config.value;
125
+ }
126
+ else if (defaultConfig) {
127
+ return defaultConfig.value;
128
+ }
129
+ else {
130
+ return undefined;
131
+ }
132
+ }
133
+ async getManyWithDefaults(keys) {
134
+ const results = {};
135
+ for (const key of keys) {
136
+ const value = await this.get(key);
137
+ if (value !== undefined) {
138
+ results[key] = value;
139
+ }
140
+ }
141
+ return results;
142
+ }
143
+ };
144
+ exports.SettingsService = SettingsService;
145
+ exports.SettingsService = SettingsService = __decorate([
146
+ (0, common_1.Injectable)(),
147
+ __param(0, (0, typeorm_1.InjectRepository)(settings_entity_1.Settings)),
148
+ __metadata("design:paramtypes", [typeorm_2.Repository])
149
+ ], SettingsService);
150
+ //# sourceMappingURL=settings.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.service.js","sourceRoot":"","sources":["../../../../../../core/src/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,2 @@
1
+ export declare class SettingsModule {
2
+ }
@@ -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":["../../../../../core/src/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,8 @@
1
+ export declare enum Action {
2
+ Create = "create",
3
+ Read = "read",
4
+ Update = "update",
5
+ Delete = "delete",
6
+ Manage = "manage",
7
+ List = "list"
8
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Action = void 0;
4
+ var Action;
5
+ (function (Action) {
6
+ Action["Create"] = "create";
7
+ Action["Read"] = "read";
8
+ Action["Update"] = "update";
9
+ Action["Delete"] = "delete";
10
+ Action["Manage"] = "manage";
11
+ Action["List"] = "list";
12
+ })(Action || (exports.Action = Action = {}));
13
+ //# sourceMappingURL=action.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.constant.js","sourceRoot":"","sources":["../../../../../../core/src/shared/acl/action.constant.ts"],"names":[],"mappings":";;;AAGA,IAAY,MAOX;AAPD,WAAY,MAAM;IAChB,2BAAiB,CAAA;IACjB,uBAAa,CAAA;IACb,2BAAiB,CAAA;IACjB,2BAAiB,CAAA;IACjB,2BAAiB,CAAA;IACjB,uBAAa,CAAA;AACf,CAAC,EAPW,MAAM,sBAAN,MAAM,QAOjB","sourcesContent":["/**\r\n * ACL action list\r\n */\r\nexport enum Action {\r\n Create = 'create',\r\n Read = 'read',\r\n Update = 'update',\r\n Delete = 'delete',\r\n Manage = 'manage',\r\n List = 'list',\r\n}\r\n"]}
@@ -0,0 +1,4 @@
1
+ export interface Actor {
2
+ id: number;
3
+ roles: string[];
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=actor.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actor.constant.js","sourceRoot":"","sources":["../../../../../../core/src/shared/acl/actor.constant.ts"],"names":[],"mappings":"","sourcesContent":["/**\r\n * The actor who is perfoming the action\r\n */\r\nexport interface Actor {\r\n id: number;\r\n\r\n roles: string[];\r\n}\r\n"]}
@@ -0,0 +1,2 @@
1
+ declare const _default: () => any;
2
+ export default _default;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = () => ({
4
+ env: process.env.APP_ENV,
5
+ port: process.env.APP_PORT,
6
+ database: {
7
+ host: process.env.DB_HOST,
8
+ port: process.env.DB_PORT ? parseInt(process.env.DB_PORT, 10) : undefined,
9
+ name: process.env.DB_NAME,
10
+ user: process.env.DB_USER,
11
+ pass: process.env.DB_PASS,
12
+ },
13
+ auth0: {
14
+ domain: process.env.AUTH0_DOMAIN,
15
+ audience: process.env.AUTH0_AUDIENCE,
16
+ },
17
+ redis: {
18
+ url: process.env.REDIS_URL,
19
+ password: process.env.REDIS_PASSWORD,
20
+ namespace: process.env.REDIS_NAMESPACE,
21
+ },
22
+ });
23
+ //# sourceMappingURL=configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../../../../core/src/shared/configs/configuration.ts"],"names":[],"mappings":";;AACA,kBAAe,GAAQ,EAAE,CAAC,CAAC;IACzB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;IACxB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;IAC1B,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;QACzB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACzE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;QACzB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;QACzB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;KAC1B;IACD,KAAK,EAAE;QACL,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QAChC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;KACrC;IACD,KAAK,EAAE;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;QAC1B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QACpC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;KACvC;CACF,CAAC,CAAC","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport default (): any => ({\r\n env: process.env.APP_ENV,\r\n port: process.env.APP_PORT,\r\n database: {\r\n host: process.env.DB_HOST,\r\n port: process.env.DB_PORT ? parseInt(process.env.DB_PORT, 10) : undefined,\r\n name: process.env.DB_NAME,\r\n user: process.env.DB_USER,\r\n pass: process.env.DB_PASS,\r\n },\r\n auth0: {\r\n domain: process.env.AUTH0_DOMAIN,\r\n audience: process.env.AUTH0_AUDIENCE,\r\n },\r\n redis: {\r\n url: process.env.REDIS_URL,\r\n password: process.env.REDIS_PASSWORD,\r\n namespace: process.env.REDIS_NAMESPACE,\r\n },\r\n});\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { ConfigModuleOptions } from '@nestjs/config/dist/interfaces';
2
+ export declare const configModuleOptions: ConfigModuleOptions;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.configModuleOptions = void 0;
40
+ const Joi = __importStar(require("joi"));
41
+ const configuration_1 = __importDefault(require("./configuration"));
42
+ exports.configModuleOptions = {
43
+ envFilePath: '.env',
44
+ load: [configuration_1.default],
45
+ validationSchema: Joi.object({
46
+ APP_ENV: Joi.string().valid('development', 'production', 'test').default('development'),
47
+ APP_PORT: Joi.number().required(),
48
+ DB_HOST: Joi.string().required(),
49
+ DB_PORT: Joi.number().optional(),
50
+ DB_NAME: Joi.string().required(),
51
+ DB_USER: Joi.string().required(),
52
+ DB_PASS: Joi.string().required(),
53
+ AUTH0_DOMAIN: Joi.string().allow('').optional(),
54
+ AUTH0_AUDIENCE: Joi.string().allow('').optional(),
55
+ SENTRY_DSN: Joi.string().allow('').optional(),
56
+ SENTRY_ENVIRONMENT: Joi.string().allow('').optional(),
57
+ NEW_RELIC_APP_NAME: Joi.string().allow('').optional(),
58
+ NEW_RELIC_LICENSE_KEY: Joi.string().allow('').optional(),
59
+ NEW_RELIC_LABELS: Joi.string().allow('').optional(),
60
+ REDIS_URL: Joi.string().allow('').optional(),
61
+ REDIS_PASSWORD: Joi.string().empty('').optional(),
62
+ REDIS_NAMESPACE: Joi.string().empty('').optional().default('NAMESPACE'),
63
+ }),
64
+ };
65
+ //# sourceMappingURL=module-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-options.js","sourceRoot":"","sources":["../../../../../../core/src/shared/configs/module-options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yCAA2B;AAE3B,oEAA4C;AAE/B,QAAA,mBAAmB,GAAwB;IACtD,WAAW,EAAE,MAAM;IACnB,IAAI,EAAE,CAAC,uBAAa,CAAC;IACrB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC;QAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QACvF,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC/C,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACjD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC7C,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACrD,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACrD,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACxD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACnD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC5C,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACjD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;KACxE,CAAC;CACH,CAAC","sourcesContent":["import { ConfigModuleOptions } from '@nestjs/config/dist/interfaces';\r\nimport * as Joi from 'joi';\r\n\r\nimport configuration from './configuration';\r\n\r\nexport const configModuleOptions: ConfigModuleOptions = {\r\n envFilePath: '.env',\r\n load: [configuration],\r\n validationSchema: Joi.object({\r\n APP_ENV: Joi.string().valid('development', 'production', 'test').default('development'),\r\n APP_PORT: Joi.number().required(),\r\n DB_HOST: Joi.string().required(),\r\n DB_PORT: Joi.number().optional(),\r\n DB_NAME: Joi.string().required(),\r\n DB_USER: Joi.string().required(),\r\n DB_PASS: Joi.string().required(),\r\n AUTH0_DOMAIN: Joi.string().allow('').optional(),\r\n AUTH0_AUDIENCE: Joi.string().allow('').optional(),\r\n SENTRY_DSN: Joi.string().allow('').optional(),\r\n SENTRY_ENVIRONMENT: Joi.string().allow('').optional(),\r\n NEW_RELIC_APP_NAME: Joi.string().allow('').optional(),\r\n NEW_RELIC_LICENSE_KEY: Joi.string().allow('').optional(),\r\n NEW_RELIC_LABELS: Joi.string().allow('').optional(),\r\n REDIS_URL: Joi.string().allow('').optional(),\r\n REDIS_PASSWORD: Joi.string().empty('').optional(),\r\n REDIS_NAMESPACE: Joi.string().empty('').optional().default('NAMESPACE'),\r\n }),\r\n};\r\n"]}
@@ -0,0 +1,6 @@
1
+ export declare enum CACHE_KEY {
2
+ AUTH = "auth:*sub",
3
+ USER = "user:*id",
4
+ CHAT_USER_CHAT_BOT_SESSION = "user:*userId:chat_bot_session",
5
+ CHAT_USER_PROVIDER = "chat_user_provider:*provider:*providerId"
6
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CACHE_KEY = void 0;
4
+ var CACHE_KEY;
5
+ (function (CACHE_KEY) {
6
+ CACHE_KEY["AUTH"] = "auth:*sub";
7
+ CACHE_KEY["USER"] = "user:*id";
8
+ CACHE_KEY["CHAT_USER_CHAT_BOT_SESSION"] = "user:*userId:chat_bot_session";
9
+ CACHE_KEY["CHAT_USER_PROVIDER"] = "chat_user_provider:*provider:*providerId";
10
+ })(CACHE_KEY || (exports.CACHE_KEY = CACHE_KEY = {}));
11
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../../../core/src/shared/constants/cache.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,+BAAkB,CAAA;IAClB,8BAAiB,CAAA;IACjB,yEAA4D,CAAA;IAC5D,4EAA+D,CAAA;AACjE,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB","sourcesContent":["export enum CACHE_KEY {\r\n AUTH = 'auth:*sub',\r\n USER = 'user:*id',\r\n CHAT_USER_CHAT_BOT_SESSION = 'user:*userId:chat_bot_session',\r\n CHAT_USER_PROVIDER = 'chat_user_provider:*provider:*providerId',\r\n}\r\n"]}
@@ -0,0 +1,6 @@
1
+ export declare const REQUEST_ID_TOKEN_HEADER = "x-request-id";
2
+ export declare const FORWARDED_FOR_TOKEN_HEADER = "x-forwarded-for";
3
+ export declare const VALIDATION_PIPE_OPTIONS: {
4
+ transform: boolean;
5
+ whitelist: boolean;
6
+ };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VALIDATION_PIPE_OPTIONS = exports.FORWARDED_FOR_TOKEN_HEADER = exports.REQUEST_ID_TOKEN_HEADER = void 0;
4
+ exports.REQUEST_ID_TOKEN_HEADER = 'x-request-id';
5
+ exports.FORWARDED_FOR_TOKEN_HEADER = 'x-forwarded-for';
6
+ exports.VALIDATION_PIPE_OPTIONS = { transform: true, whitelist: true };
7
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../../../core/src/shared/constants/common.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,cAAc,CAAC;AAEzC,QAAA,0BAA0B,GAAG,iBAAiB,CAAC;AAE/C,QAAA,uBAAuB,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC","sourcesContent":["export const REQUEST_ID_TOKEN_HEADER = 'x-request-id';\r\n\r\nexport const FORWARDED_FOR_TOKEN_HEADER = 'x-forwarded-for';\r\n\r\nexport const VALIDATION_PIPE_OPTIONS = { transform: true, whitelist: true };\r\n"]}
@@ -0,0 +1,82 @@
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;
@@ -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