@veritas-lex/contract-analysis-package 1.2.3

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 (214) hide show
  1. package/README.md +181 -0
  2. package/dist/auth/auth-core.module.d.ts +21 -0
  3. package/dist/auth/auth-core.module.d.ts.map +1 -0
  4. package/dist/auth/auth-core.module.js +56 -0
  5. package/dist/auth/auth-core.module.js.map +1 -0
  6. package/dist/auth/decorators/current-user.decorator.d.ts +2 -0
  7. package/dist/auth/decorators/current-user.decorator.d.ts.map +1 -0
  8. package/dist/auth/decorators/current-user.decorator.js +9 -0
  9. package/dist/auth/decorators/current-user.decorator.js.map +1 -0
  10. package/dist/auth/decorators/public.decorator.d.ts +3 -0
  11. package/dist/auth/decorators/public.decorator.d.ts.map +1 -0
  12. package/dist/auth/decorators/public.decorator.js +8 -0
  13. package/dist/auth/decorators/public.decorator.js.map +1 -0
  14. package/dist/auth/guards/jwt-auth.guard.d.ts +11 -0
  15. package/dist/auth/guards/jwt-auth.guard.d.ts.map +1 -0
  16. package/dist/auth/guards/jwt-auth.guard.js +39 -0
  17. package/dist/auth/guards/jwt-auth.guard.js.map +1 -0
  18. package/dist/auth/index.d.ts +7 -0
  19. package/dist/auth/index.d.ts.map +1 -0
  20. package/dist/auth/index.js +15 -0
  21. package/dist/auth/index.js.map +1 -0
  22. package/dist/auth/interfaces/jwt-payload.interface.d.ts +24 -0
  23. package/dist/auth/interfaces/jwt-payload.interface.d.ts.map +1 -0
  24. package/dist/auth/interfaces/jwt-payload.interface.js +3 -0
  25. package/dist/auth/interfaces/jwt-payload.interface.js.map +1 -0
  26. package/dist/auth/strategies/base-jwt.strategy.d.ts +47 -0
  27. package/dist/auth/strategies/base-jwt.strategy.d.ts.map +1 -0
  28. package/dist/auth/strategies/base-jwt.strategy.js +162 -0
  29. package/dist/auth/strategies/base-jwt.strategy.js.map +1 -0
  30. package/dist/bootstrap/configure-app.d.ts +50 -0
  31. package/dist/bootstrap/configure-app.d.ts.map +1 -0
  32. package/dist/bootstrap/configure-app.js +117 -0
  33. package/dist/bootstrap/configure-app.js.map +1 -0
  34. package/dist/bootstrap/index.d.ts +3 -0
  35. package/dist/bootstrap/index.d.ts.map +1 -0
  36. package/dist/bootstrap/index.js +6 -0
  37. package/dist/bootstrap/index.js.map +1 -0
  38. package/dist/config/app.config.d.ts +37 -0
  39. package/dist/config/app.config.d.ts.map +1 -0
  40. package/dist/config/app.config.js +28 -0
  41. package/dist/config/app.config.js.map +1 -0
  42. package/dist/config/database.config.d.ts +48 -0
  43. package/dist/config/database.config.d.ts.map +1 -0
  44. package/dist/config/database.config.js +34 -0
  45. package/dist/config/database.config.js.map +1 -0
  46. package/dist/config/doc.config.d.ts +31 -0
  47. package/dist/config/doc.config.d.ts.map +1 -0
  48. package/dist/config/doc.config.js +22 -0
  49. package/dist/config/doc.config.js.map +1 -0
  50. package/dist/config/index.d.ts +17 -0
  51. package/dist/config/index.d.ts.map +1 -0
  52. package/dist/config/index.js +26 -0
  53. package/dist/config/index.js.map +1 -0
  54. package/dist/config/jwt.config.d.ts +19 -0
  55. package/dist/config/jwt.config.d.ts.map +1 -0
  56. package/dist/config/jwt.config.js +28 -0
  57. package/dist/config/jwt.config.js.map +1 -0
  58. package/dist/config/logging.config.d.ts +33 -0
  59. package/dist/config/logging.config.d.ts.map +1 -0
  60. package/dist/config/logging.config.js +106 -0
  61. package/dist/config/logging.config.js.map +1 -0
  62. package/dist/config/redis.config.d.ts +19 -0
  63. package/dist/config/redis.config.d.ts.map +1 -0
  64. package/dist/config/redis.config.js +16 -0
  65. package/dist/config/redis.config.js.map +1 -0
  66. package/dist/config/security.config.d.ts +66 -0
  67. package/dist/config/security.config.d.ts.map +1 -0
  68. package/dist/config/security.config.js +66 -0
  69. package/dist/config/security.config.js.map +1 -0
  70. package/dist/config/storage.config.d.ts +20 -0
  71. package/dist/config/storage.config.d.ts.map +1 -0
  72. package/dist/config/storage.config.js +17 -0
  73. package/dist/config/storage.config.js.map +1 -0
  74. package/dist/config/validation.config.d.ts +62 -0
  75. package/dist/config/validation.config.d.ts.map +1 -0
  76. package/dist/config/validation.config.js +139 -0
  77. package/dist/config/validation.config.js.map +1 -0
  78. package/dist/constants/enums.d.ts +76 -0
  79. package/dist/constants/enums.d.ts.map +1 -0
  80. package/dist/constants/enums.js +92 -0
  81. package/dist/constants/enums.js.map +1 -0
  82. package/dist/constants/file-validation.constants.d.ts +28 -0
  83. package/dist/constants/file-validation.constants.d.ts.map +1 -0
  84. package/dist/constants/file-validation.constants.js +81 -0
  85. package/dist/constants/file-validation.constants.js.map +1 -0
  86. package/dist/constants/index.d.ts +6 -0
  87. package/dist/constants/index.d.ts.map +1 -0
  88. package/dist/constants/index.js +26 -0
  89. package/dist/constants/index.js.map +1 -0
  90. package/dist/constants/pii-classifications.constants.d.ts +27 -0
  91. package/dist/constants/pii-classifications.constants.d.ts.map +1 -0
  92. package/dist/constants/pii-classifications.constants.js +68 -0
  93. package/dist/constants/pii-classifications.constants.js.map +1 -0
  94. package/dist/database/base.entity.d.ts +6 -0
  95. package/dist/database/base.entity.d.ts.map +1 -0
  96. package/dist/database/base.entity.js +32 -0
  97. package/dist/database/base.entity.js.map +1 -0
  98. package/dist/database/database.module.d.ts +32 -0
  99. package/dist/database/database.module.d.ts.map +1 -0
  100. package/dist/database/database.module.js +69 -0
  101. package/dist/database/database.module.js.map +1 -0
  102. package/dist/database/entities/base-audit-log.entity.d.ts +21 -0
  103. package/dist/database/entities/base-audit-log.entity.d.ts.map +1 -0
  104. package/dist/database/entities/base-audit-log.entity.js +90 -0
  105. package/dist/database/entities/base-audit-log.entity.js.map +1 -0
  106. package/dist/database/entities/base-contract-chunk.entity.d.ts +18 -0
  107. package/dist/database/entities/base-contract-chunk.entity.d.ts.map +1 -0
  108. package/dist/database/entities/base-contract-chunk.entity.js +71 -0
  109. package/dist/database/entities/base-contract-chunk.entity.js.map +1 -0
  110. package/dist/database/entities/base-contract-event.entity.d.ts +16 -0
  111. package/dist/database/entities/base-contract-event.entity.d.ts.map +1 -0
  112. package/dist/database/entities/base-contract-event.entity.js +66 -0
  113. package/dist/database/entities/base-contract-event.entity.js.map +1 -0
  114. package/dist/database/entities/base-contract-key-date-rule.entity.d.ts +31 -0
  115. package/dist/database/entities/base-contract-key-date-rule.entity.d.ts.map +1 -0
  116. package/dist/database/entities/base-contract-key-date-rule.entity.js +140 -0
  117. package/dist/database/entities/base-contract-key-date-rule.entity.js.map +1 -0
  118. package/dist/database/entities/base-contract-pii-replacement.entity.d.ts +18 -0
  119. package/dist/database/entities/base-contract-pii-replacement.entity.d.ts.map +1 -0
  120. package/dist/database/entities/base-contract-pii-replacement.entity.js +67 -0
  121. package/dist/database/entities/base-contract-pii-replacement.entity.js.map +1 -0
  122. package/dist/database/entities/base-contract-red-flag.entity.d.ts +27 -0
  123. package/dist/database/entities/base-contract-red-flag.entity.d.ts.map +1 -0
  124. package/dist/database/entities/base-contract-red-flag.entity.js +114 -0
  125. package/dist/database/entities/base-contract-red-flag.entity.js.map +1 -0
  126. package/dist/database/entities/base-contract-task.entity.d.ts +20 -0
  127. package/dist/database/entities/base-contract-task.entity.d.ts.map +1 -0
  128. package/dist/database/entities/base-contract-task.entity.js +87 -0
  129. package/dist/database/entities/base-contract-task.entity.js.map +1 -0
  130. package/dist/database/entities/base-contract-text.entity.d.ts +19 -0
  131. package/dist/database/entities/base-contract-text.entity.d.ts.map +1 -0
  132. package/dist/database/entities/base-contract-text.entity.js +77 -0
  133. package/dist/database/entities/base-contract-text.entity.js.map +1 -0
  134. package/dist/database/entities/base-contract.entity.d.ts +56 -0
  135. package/dist/database/entities/base-contract.entity.d.ts.map +1 -0
  136. package/dist/database/entities/base-contract.entity.js +221 -0
  137. package/dist/database/entities/base-contract.entity.js.map +1 -0
  138. package/dist/database/entities/base-job.entity.d.ts +21 -0
  139. package/dist/database/entities/base-job.entity.d.ts.map +1 -0
  140. package/dist/database/entities/base-job.entity.js +89 -0
  141. package/dist/database/entities/base-job.entity.js.map +1 -0
  142. package/dist/database/entities/base-qna-question.entity.d.ts +22 -0
  143. package/dist/database/entities/base-qna-question.entity.d.ts.map +1 -0
  144. package/dist/database/entities/base-qna-question.entity.js +92 -0
  145. package/dist/database/entities/base-qna-question.entity.js.map +1 -0
  146. package/dist/database/entities/base-scoring-criteria.entity.d.ts +57 -0
  147. package/dist/database/entities/base-scoring-criteria.entity.d.ts.map +1 -0
  148. package/dist/database/entities/base-scoring-criteria.entity.js +376 -0
  149. package/dist/database/entities/base-scoring-criteria.entity.js.map +1 -0
  150. package/dist/database/entities/base-users-profile.entity.d.ts +32 -0
  151. package/dist/database/entities/base-users-profile.entity.d.ts.map +1 -0
  152. package/dist/database/entities/base-users-profile.entity.js +91 -0
  153. package/dist/database/entities/base-users-profile.entity.js.map +1 -0
  154. package/dist/database/entities/index.d.ts +16 -0
  155. package/dist/database/entities/index.d.ts.map +1 -0
  156. package/dist/database/entities/index.js +37 -0
  157. package/dist/database/entities/index.js.map +1 -0
  158. package/dist/database/entities/qna-question-template.entity.d.ts +30 -0
  159. package/dist/database/entities/qna-question-template.entity.d.ts.map +1 -0
  160. package/dist/database/entities/qna-question-template.entity.js +145 -0
  161. package/dist/database/entities/qna-question-template.entity.js.map +1 -0
  162. package/dist/database/entities/qna-response.entity.d.ts +29 -0
  163. package/dist/database/entities/qna-response.entity.d.ts.map +1 -0
  164. package/dist/database/entities/qna-response.entity.js +129 -0
  165. package/dist/database/entities/qna-response.entity.js.map +1 -0
  166. package/dist/database/index.d.ts +7 -0
  167. package/dist/database/index.d.ts.map +1 -0
  168. package/dist/database/index.js +32 -0
  169. package/dist/database/index.js.map +1 -0
  170. package/dist/database/redis.module.d.ts +12 -0
  171. package/dist/database/redis.module.d.ts.map +1 -0
  172. package/dist/database/redis.module.js +40 -0
  173. package/dist/database/redis.module.js.map +1 -0
  174. package/dist/database/redis.provider.d.ts +15 -0
  175. package/dist/database/redis.provider.d.ts.map +1 -0
  176. package/dist/database/redis.provider.js +42 -0
  177. package/dist/database/redis.provider.js.map +1 -0
  178. package/dist/dto/api-response.dto.d.ts +36 -0
  179. package/dist/dto/api-response.dto.d.ts.map +1 -0
  180. package/dist/dto/api-response.dto.js +88 -0
  181. package/dist/dto/api-response.dto.js.map +1 -0
  182. package/dist/dto/index.d.ts +2 -0
  183. package/dist/dto/index.d.ts.map +1 -0
  184. package/dist/dto/index.js +6 -0
  185. package/dist/dto/index.js.map +1 -0
  186. package/dist/filters/all-exceptions.filter.d.ts +43 -0
  187. package/dist/filters/all-exceptions.filter.d.ts.map +1 -0
  188. package/dist/filters/all-exceptions.filter.js +123 -0
  189. package/dist/filters/all-exceptions.filter.js.map +1 -0
  190. package/dist/filters/index.d.ts +3 -0
  191. package/dist/filters/index.d.ts.map +1 -0
  192. package/dist/filters/index.js +6 -0
  193. package/dist/filters/index.js.map +1 -0
  194. package/dist/helpers/crypto.service.d.ts +53 -0
  195. package/dist/helpers/crypto.service.d.ts.map +1 -0
  196. package/dist/helpers/crypto.service.js +153 -0
  197. package/dist/helpers/crypto.service.js.map +1 -0
  198. package/dist/helpers/index.d.ts +2 -0
  199. package/dist/helpers/index.d.ts.map +1 -0
  200. package/dist/helpers/index.js +6 -0
  201. package/dist/helpers/index.js.map +1 -0
  202. package/dist/index.d.ts +17 -0
  203. package/dist/index.d.ts.map +1 -0
  204. package/dist/index.js +86 -0
  205. package/dist/index.js.map +1 -0
  206. package/dist/swagger/index.d.ts +2 -0
  207. package/dist/swagger/index.d.ts.map +1 -0
  208. package/dist/swagger/index.js +6 -0
  209. package/dist/swagger/index.js.map +1 -0
  210. package/dist/swagger/swagger.d.ts +16 -0
  211. package/dist/swagger/swagger.d.ts.map +1 -0
  212. package/dist/swagger/swagger.js +59 -0
  213. package/dist/swagger/swagger.js.map +1 -0
  214. package/package.json +63 -0
@@ -0,0 +1,145 @@
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.QnaQuestionTemplate = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ /**
15
+ * Q&A Question Template Entity (Global Master Templates)
16
+ *
17
+ * Stores master question templates filtered by contract type.
18
+ * Questions are copied to `contract_qna_questions` based on detected contract type.
19
+ *
20
+ * This entity is identical across both APIs and is exported directly
21
+ * from the shared package — no API-specific extensions needed.
22
+ */
23
+ let QnaQuestionTemplate = class QnaQuestionTemplate {
24
+ id;
25
+ contractTypeKey;
26
+ category;
27
+ questionKey;
28
+ language;
29
+ questionText;
30
+ responseSchema;
31
+ isActive;
32
+ isMandatory;
33
+ displayOrder;
34
+ version;
35
+ description;
36
+ // ── Processing Strategy Fields ─────────────────────────────────────
37
+ processingStrategy;
38
+ clauseTypeHints;
39
+ questionGroup;
40
+ groupOrder;
41
+ createdAt;
42
+ updatedAt;
43
+ };
44
+ exports.QnaQuestionTemplate = QnaQuestionTemplate;
45
+ __decorate([
46
+ (0, typeorm_1.PrimaryGeneratedColumn)("uuid"),
47
+ __metadata("design:type", String)
48
+ ], QnaQuestionTemplate.prototype, "id", void 0);
49
+ __decorate([
50
+ (0, typeorm_1.Column)({
51
+ type: "varchar",
52
+ name: "contract_type_key",
53
+ length: 100,
54
+ nullable: true,
55
+ }),
56
+ __metadata("design:type", String)
57
+ ], QnaQuestionTemplate.prototype, "contractTypeKey", void 0);
58
+ __decorate([
59
+ (0, typeorm_1.Column)({ type: "text", nullable: false }),
60
+ __metadata("design:type", String)
61
+ ], QnaQuestionTemplate.prototype, "category", void 0);
62
+ __decorate([
63
+ (0, typeorm_1.Column)({ type: "text", name: "question_key", nullable: false }),
64
+ __metadata("design:type", String)
65
+ ], QnaQuestionTemplate.prototype, "questionKey", void 0);
66
+ __decorate([
67
+ (0, typeorm_1.Column)({ type: "text", nullable: false }),
68
+ __metadata("design:type", String)
69
+ ], QnaQuestionTemplate.prototype, "language", void 0);
70
+ __decorate([
71
+ (0, typeorm_1.Column)({ type: "text", name: "question_text", nullable: false }),
72
+ __metadata("design:type", String)
73
+ ], QnaQuestionTemplate.prototype, "questionText", void 0);
74
+ __decorate([
75
+ (0, typeorm_1.Column)({ type: "jsonb", name: "response_schema", nullable: true }),
76
+ __metadata("design:type", Object)
77
+ ], QnaQuestionTemplate.prototype, "responseSchema", void 0);
78
+ __decorate([
79
+ (0, typeorm_1.Column)({ type: "boolean", name: "is_active", default: true }),
80
+ __metadata("design:type", Boolean)
81
+ ], QnaQuestionTemplate.prototype, "isActive", void 0);
82
+ __decorate([
83
+ (0, typeorm_1.Column)({ type: "boolean", name: "is_mandatory", default: false }),
84
+ __metadata("design:type", Boolean)
85
+ ], QnaQuestionTemplate.prototype, "isMandatory", void 0);
86
+ __decorate([
87
+ (0, typeorm_1.Column)({ type: "int", name: "display_order", default: 50 }),
88
+ __metadata("design:type", Number)
89
+ ], QnaQuestionTemplate.prototype, "displayOrder", void 0);
90
+ __decorate([
91
+ (0, typeorm_1.Column)({ type: "int", default: 1 }),
92
+ __metadata("design:type", Number)
93
+ ], QnaQuestionTemplate.prototype, "version", void 0);
94
+ __decorate([
95
+ (0, typeorm_1.Column)({ type: "text", nullable: true }),
96
+ __metadata("design:type", String)
97
+ ], QnaQuestionTemplate.prototype, "description", void 0);
98
+ __decorate([
99
+ (0, typeorm_1.Column)({
100
+ type: "varchar",
101
+ name: "processing_strategy",
102
+ length: 50,
103
+ default: "rag",
104
+ }),
105
+ __metadata("design:type", String)
106
+ ], QnaQuestionTemplate.prototype, "processingStrategy", void 0);
107
+ __decorate([
108
+ (0, typeorm_1.Column)({
109
+ type: "text",
110
+ name: "clause_type_hints",
111
+ array: true,
112
+ nullable: true,
113
+ }),
114
+ __metadata("design:type", Object)
115
+ ], QnaQuestionTemplate.prototype, "clauseTypeHints", void 0);
116
+ __decorate([
117
+ (0, typeorm_1.Column)({
118
+ type: "varchar",
119
+ name: "question_group",
120
+ length: 100,
121
+ nullable: true,
122
+ }),
123
+ __metadata("design:type", Object)
124
+ ], QnaQuestionTemplate.prototype, "questionGroup", void 0);
125
+ __decorate([
126
+ (0, typeorm_1.Column)({ type: "int", name: "group_order", default: 1 }),
127
+ __metadata("design:type", Number)
128
+ ], QnaQuestionTemplate.prototype, "groupOrder", void 0);
129
+ __decorate([
130
+ (0, typeorm_1.CreateDateColumn)({ type: "timestamptz", name: "created_at" }),
131
+ __metadata("design:type", Date)
132
+ ], QnaQuestionTemplate.prototype, "createdAt", void 0);
133
+ __decorate([
134
+ (0, typeorm_1.UpdateDateColumn)({ type: "timestamptz", name: "updated_at" }),
135
+ __metadata("design:type", Date)
136
+ ], QnaQuestionTemplate.prototype, "updatedAt", void 0);
137
+ exports.QnaQuestionTemplate = QnaQuestionTemplate = __decorate([
138
+ (0, typeorm_1.Entity)("contract_qna_question_templates"),
139
+ (0, typeorm_1.Index)(["contractTypeKey", "category", "questionKey", "language", "version"], {
140
+ unique: true,
141
+ }),
142
+ (0, typeorm_1.Index)(["contractTypeKey", "language", "isActive"]),
143
+ (0, typeorm_1.Index)(["contractTypeKey", "displayOrder"])
144
+ ], QnaQuestionTemplate);
145
+ //# sourceMappingURL=qna-question-template.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qna-question-template.entity.js","sourceRoot":"","sources":["../../../src/database/entities/qna-question-template.entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Q&A Response Entity matching `contract_qna_responses` in database.sql.
3
+ *
4
+ * Stores all Q&A responses from AI for contracts.
5
+ *
6
+ * This entity is identical across both APIs and is exported directly
7
+ * from the shared package — no API-specific extensions needed.
8
+ */
9
+ export declare class QnaResponse {
10
+ id: string;
11
+ contractId: string;
12
+ userId: string;
13
+ questionId: string | null;
14
+ category: string;
15
+ questionKey: string | null;
16
+ language: string;
17
+ questionText: string;
18
+ responseText: string | null;
19
+ responseJson: Record<string, unknown> | null;
20
+ confidenceScore: number | null;
21
+ modelUsed: string | null;
22
+ tokensUsed: number | null;
23
+ processingTimeMs: number | null;
24
+ status: string;
25
+ errorMessage: string | null;
26
+ createdAt: Date;
27
+ updatedAt: Date;
28
+ }
29
+ //# sourceMappingURL=qna-response.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qna-response.entity.d.ts","sourceRoot":"","sources":["../../../src/database/entities/qna-response.entity.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,qBACa,WAAW;IAEtB,EAAE,EAAE,MAAM,CAAC;IAGX,UAAU,EAAE,MAAM,CAAC;IAGnB,MAAM,EAAE,MAAM,CAAC;IAGf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAG1B,QAAQ,EAAE,MAAM,CAAC;IAQjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAG3B,QAAQ,EAAE,MAAM,CAAC;IAGjB,YAAY,EAAE,MAAM,CAAC;IAGrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAG5B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAS7C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAG/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAG1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAGhC,MAAM,EAAE,MAAM,CAAC;IAGf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAG5B,SAAS,EAAE,IAAI,CAAC;IAGhB,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -0,0 +1,129 @@
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.QnaResponse = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ /**
15
+ * Q&A Response Entity matching `contract_qna_responses` in database.sql.
16
+ *
17
+ * Stores all Q&A responses from AI for contracts.
18
+ *
19
+ * This entity is identical across both APIs and is exported directly
20
+ * from the shared package — no API-specific extensions needed.
21
+ */
22
+ let QnaResponse = class QnaResponse {
23
+ id;
24
+ contractId;
25
+ userId;
26
+ questionId;
27
+ category;
28
+ questionKey;
29
+ language;
30
+ questionText;
31
+ responseText;
32
+ responseJson;
33
+ confidenceScore;
34
+ modelUsed;
35
+ tokensUsed;
36
+ processingTimeMs;
37
+ status;
38
+ errorMessage;
39
+ createdAt;
40
+ updatedAt;
41
+ };
42
+ exports.QnaResponse = QnaResponse;
43
+ __decorate([
44
+ (0, typeorm_1.PrimaryGeneratedColumn)("uuid"),
45
+ __metadata("design:type", String)
46
+ ], QnaResponse.prototype, "id", void 0);
47
+ __decorate([
48
+ (0, typeorm_1.Column)({ name: "contract_id", type: "uuid" }),
49
+ __metadata("design:type", String)
50
+ ], QnaResponse.prototype, "contractId", void 0);
51
+ __decorate([
52
+ (0, typeorm_1.Column)({ name: "user_id", type: "uuid" }),
53
+ __metadata("design:type", String)
54
+ ], QnaResponse.prototype, "userId", void 0);
55
+ __decorate([
56
+ (0, typeorm_1.Column)({ name: "question_id", type: "uuid", nullable: true }),
57
+ __metadata("design:type", Object)
58
+ ], QnaResponse.prototype, "questionId", void 0);
59
+ __decorate([
60
+ (0, typeorm_1.Column)({ type: "varchar", length: 100 }),
61
+ __metadata("design:type", String)
62
+ ], QnaResponse.prototype, "category", void 0);
63
+ __decorate([
64
+ (0, typeorm_1.Column)({
65
+ name: "question_key",
66
+ type: "varchar",
67
+ length: 100,
68
+ nullable: true,
69
+ }),
70
+ __metadata("design:type", Object)
71
+ ], QnaResponse.prototype, "questionKey", void 0);
72
+ __decorate([
73
+ (0, typeorm_1.Column)({ type: "varchar", length: 10 }),
74
+ __metadata("design:type", String)
75
+ ], QnaResponse.prototype, "language", void 0);
76
+ __decorate([
77
+ (0, typeorm_1.Column)({ name: "question_text", type: "text" }),
78
+ __metadata("design:type", String)
79
+ ], QnaResponse.prototype, "questionText", void 0);
80
+ __decorate([
81
+ (0, typeorm_1.Column)({ name: "response_text", type: "text", nullable: true }),
82
+ __metadata("design:type", Object)
83
+ ], QnaResponse.prototype, "responseText", void 0);
84
+ __decorate([
85
+ (0, typeorm_1.Column)({ name: "response_json", type: "jsonb", nullable: true }),
86
+ __metadata("design:type", Object)
87
+ ], QnaResponse.prototype, "responseJson", void 0);
88
+ __decorate([
89
+ (0, typeorm_1.Column)({
90
+ name: "confidence_score",
91
+ type: "decimal",
92
+ precision: 5,
93
+ scale: 2,
94
+ nullable: true,
95
+ }),
96
+ __metadata("design:type", Object)
97
+ ], QnaResponse.prototype, "confidenceScore", void 0);
98
+ __decorate([
99
+ (0, typeorm_1.Column)({ name: "model_used", type: "varchar", length: 100, nullable: true }),
100
+ __metadata("design:type", Object)
101
+ ], QnaResponse.prototype, "modelUsed", void 0);
102
+ __decorate([
103
+ (0, typeorm_1.Column)({ name: "tokens_used", type: "int", nullable: true }),
104
+ __metadata("design:type", Object)
105
+ ], QnaResponse.prototype, "tokensUsed", void 0);
106
+ __decorate([
107
+ (0, typeorm_1.Column)({ name: "processing_time_ms", type: "int", nullable: true }),
108
+ __metadata("design:type", Object)
109
+ ], QnaResponse.prototype, "processingTimeMs", void 0);
110
+ __decorate([
111
+ (0, typeorm_1.Column)({ type: "varchar", length: 50, default: "completed" }),
112
+ __metadata("design:type", String)
113
+ ], QnaResponse.prototype, "status", void 0);
114
+ __decorate([
115
+ (0, typeorm_1.Column)({ name: "error_message", type: "text", nullable: true }),
116
+ __metadata("design:type", Object)
117
+ ], QnaResponse.prototype, "errorMessage", void 0);
118
+ __decorate([
119
+ (0, typeorm_1.CreateDateColumn)({ name: "created_at", type: "timestamp with time zone" }),
120
+ __metadata("design:type", Date)
121
+ ], QnaResponse.prototype, "createdAt", void 0);
122
+ __decorate([
123
+ (0, typeorm_1.UpdateDateColumn)({ name: "updated_at", type: "timestamp with time zone" }),
124
+ __metadata("design:type", Date)
125
+ ], QnaResponse.prototype, "updatedAt", void 0);
126
+ exports.QnaResponse = QnaResponse = __decorate([
127
+ (0, typeorm_1.Entity)("contract_qna_responses")
128
+ ], QnaResponse);
129
+ //# sourceMappingURL=qna-response.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qna-response.entity.js","sourceRoot":"","sources":["../../../src/database/entities/qna-response.entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { BaseEntity } from "./base.entity";
2
+ export { DatabaseModule } from "./database.module";
3
+ export type { DatabaseModuleOptions } from "./database.module";
4
+ export { RedisModule } from "./redis.module";
5
+ export { RedisProvider } from "./redis.provider";
6
+ export { BaseUsersProfileEntity, UserTier, BaseContractEntity, PiiEntity, BaseJobEntity, BaseContractTextEntity, BaseContractChunkEntity, BaseContractRedFlagEntity, BaseContractPiiReplacementEntity, BaseContractTaskEntity, BaseContractKeyDateRuleEntity, BaseContractEventEntity, BaseAuditLogEntity, BaseQnaQuestionEntity, BaseScoringCriteriaEntity, QnaQuestionTemplate, QnaResponse, } from "./entities";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAEL,sBAAsB,EACtB,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,gCAAgC,EAChC,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EAEzB,mBAAmB,EACnB,WAAW,GACZ,MAAM,YAAY,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QnaResponse = exports.QnaQuestionTemplate = exports.BaseScoringCriteriaEntity = exports.BaseQnaQuestionEntity = exports.BaseAuditLogEntity = exports.BaseContractEventEntity = exports.BaseContractKeyDateRuleEntity = exports.BaseContractTaskEntity = exports.BaseContractPiiReplacementEntity = exports.BaseContractRedFlagEntity = exports.BaseContractChunkEntity = exports.BaseContractTextEntity = exports.BaseJobEntity = exports.BaseContractEntity = exports.UserTier = exports.BaseUsersProfileEntity = exports.RedisProvider = exports.RedisModule = exports.DatabaseModule = exports.BaseEntity = void 0;
4
+ var base_entity_1 = require("./base.entity");
5
+ Object.defineProperty(exports, "BaseEntity", { enumerable: true, get: function () { return base_entity_1.BaseEntity; } });
6
+ var database_module_1 = require("./database.module");
7
+ Object.defineProperty(exports, "DatabaseModule", { enumerable: true, get: function () { return database_module_1.DatabaseModule; } });
8
+ var redis_module_1 = require("./redis.module");
9
+ Object.defineProperty(exports, "RedisModule", { enumerable: true, get: function () { return redis_module_1.RedisModule; } });
10
+ var redis_provider_1 = require("./redis.provider");
11
+ Object.defineProperty(exports, "RedisProvider", { enumerable: true, get: function () { return redis_provider_1.RedisProvider; } });
12
+ // ── Shared entities ──────────────────────────────────────────────────
13
+ var entities_1 = require("./entities");
14
+ // Abstract bases
15
+ Object.defineProperty(exports, "BaseUsersProfileEntity", { enumerable: true, get: function () { return entities_1.BaseUsersProfileEntity; } });
16
+ Object.defineProperty(exports, "UserTier", { enumerable: true, get: function () { return entities_1.UserTier; } });
17
+ Object.defineProperty(exports, "BaseContractEntity", { enumerable: true, get: function () { return entities_1.BaseContractEntity; } });
18
+ Object.defineProperty(exports, "BaseJobEntity", { enumerable: true, get: function () { return entities_1.BaseJobEntity; } });
19
+ Object.defineProperty(exports, "BaseContractTextEntity", { enumerable: true, get: function () { return entities_1.BaseContractTextEntity; } });
20
+ Object.defineProperty(exports, "BaseContractChunkEntity", { enumerable: true, get: function () { return entities_1.BaseContractChunkEntity; } });
21
+ Object.defineProperty(exports, "BaseContractRedFlagEntity", { enumerable: true, get: function () { return entities_1.BaseContractRedFlagEntity; } });
22
+ Object.defineProperty(exports, "BaseContractPiiReplacementEntity", { enumerable: true, get: function () { return entities_1.BaseContractPiiReplacementEntity; } });
23
+ Object.defineProperty(exports, "BaseContractTaskEntity", { enumerable: true, get: function () { return entities_1.BaseContractTaskEntity; } });
24
+ Object.defineProperty(exports, "BaseContractKeyDateRuleEntity", { enumerable: true, get: function () { return entities_1.BaseContractKeyDateRuleEntity; } });
25
+ Object.defineProperty(exports, "BaseContractEventEntity", { enumerable: true, get: function () { return entities_1.BaseContractEventEntity; } });
26
+ Object.defineProperty(exports, "BaseAuditLogEntity", { enumerable: true, get: function () { return entities_1.BaseAuditLogEntity; } });
27
+ Object.defineProperty(exports, "BaseQnaQuestionEntity", { enumerable: true, get: function () { return entities_1.BaseQnaQuestionEntity; } });
28
+ Object.defineProperty(exports, "BaseScoringCriteriaEntity", { enumerable: true, get: function () { return entities_1.BaseScoringCriteriaEntity; } });
29
+ // Concrete entities
30
+ Object.defineProperty(exports, "QnaQuestionTemplate", { enumerable: true, get: function () { return entities_1.QnaQuestionTemplate; } });
31
+ Object.defineProperty(exports, "QnaResponse", { enumerable: true, get: function () { return entities_1.QnaResponse; } });
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAEvB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAEtB,wEAAwE;AACxE,uCAoBoB;AAnBlB,iBAAiB;AACjB,kHAAA,sBAAsB,OAAA;AACtB,oGAAA,QAAQ,OAAA;AACR,8GAAA,kBAAkB,OAAA;AAElB,yGAAA,aAAa,OAAA;AACb,kHAAA,sBAAsB,OAAA;AACtB,mHAAA,uBAAuB,OAAA;AACvB,qHAAA,yBAAyB,OAAA;AACzB,4HAAA,gCAAgC,OAAA;AAChC,kHAAA,sBAAsB,OAAA;AACtB,yHAAA,6BAA6B,OAAA;AAC7B,mHAAA,uBAAuB,OAAA;AACvB,8GAAA,kBAAkB,OAAA;AAClB,iHAAA,qBAAqB,OAAA;AACrB,qHAAA,yBAAyB,OAAA;AACzB,oBAAoB;AACpB,+GAAA,mBAAmB,OAAA;AACnB,uGAAA,WAAW,OAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Redis Module
3
+ *
4
+ * Registers BullMQ with the application-wide Redis connection.
5
+ * Mirrors the {@link DatabaseModule} pattern.
6
+ *
7
+ * Individual queues are registered in their own feature modules
8
+ * via `BullModule.registerQueue()`.
9
+ */
10
+ export declare class RedisModule {
11
+ }
12
+ //# sourceMappingURL=redis.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.module.d.ts","sourceRoot":"","sources":["../../src/database/redis.module.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,qBAaa,WAAW;CAAG"}
@@ -0,0 +1,40 @@
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.RedisModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const config_1 = require("@nestjs/config");
12
+ const bullmq_1 = require("@nestjs/bullmq");
13
+ const redis_provider_1 = require("./redis.provider");
14
+ /**
15
+ * Redis Module
16
+ *
17
+ * Registers BullMQ with the application-wide Redis connection.
18
+ * Mirrors the {@link DatabaseModule} pattern.
19
+ *
20
+ * Individual queues are registered in their own feature modules
21
+ * via `BullModule.registerQueue()`.
22
+ */
23
+ let RedisModule = class RedisModule {
24
+ };
25
+ exports.RedisModule = RedisModule;
26
+ exports.RedisModule = RedisModule = __decorate([
27
+ (0, common_1.Global)(),
28
+ (0, common_1.Module)({
29
+ imports: [
30
+ config_1.ConfigModule,
31
+ bullmq_1.BullModule.forRootAsync({
32
+ useFactory: (redisProvider) => redisProvider.createSharedConfiguration(),
33
+ inject: [redis_provider_1.RedisProvider],
34
+ }),
35
+ ],
36
+ providers: [redis_provider_1.RedisProvider],
37
+ exports: [redis_provider_1.RedisProvider],
38
+ })
39
+ ], RedisModule);
40
+ //# sourceMappingURL=redis.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.module.js","sourceRoot":"","sources":["../../src/database/redis.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,2CAA8C;AAC9C,2CAA4C;AAC5C,qDAAiD;AAEjD;;;;;;;;GAQG;AAcI,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IAbvB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,qBAAY;YACZ,mBAAU,CAAC,YAAY,CAAC;gBACtB,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE,CAC3C,aAAa,CAAC,yBAAyB,EAAE;gBAC3C,MAAM,EAAE,CAAC,8BAAa,CAAC;aACxB,CAAC;SACH;QACD,SAAS,EAAE,CAAC,8BAAa,CAAC;QAC1B,OAAO,EAAE,CAAC,8BAAa,CAAC;KACzB,CAAC;GACW,WAAW,CAAG"}
@@ -0,0 +1,15 @@
1
+ import { ConfigService } from "@nestjs/config";
2
+ import { SharedBullConfigurationFactory } from "@nestjs/bullmq";
3
+ import { QueueOptions } from "bullmq";
4
+ /**
5
+ * Redis/BullMQ Connection Provider
6
+ *
7
+ * Provides a centralised, reusable Redis connection configuration
8
+ * for BullMQ queues.
9
+ */
10
+ export declare class RedisProvider implements SharedBullConfigurationFactory {
11
+ private readonly configService;
12
+ constructor(configService: ConfigService);
13
+ createSharedConfiguration(): QueueOptions;
14
+ }
15
+ //# sourceMappingURL=redis.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.provider.d.ts","sourceRoot":"","sources":["../../src/database/redis.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC;;;;;GAKG;AACH,qBACa,aAAc,YAAW,8BAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEzD,yBAAyB,IAAI,YAAY;CAU1C"}
@@ -0,0 +1,42 @@
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.RedisProvider = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const config_1 = require("@nestjs/config");
15
+ /**
16
+ * Redis/BullMQ Connection Provider
17
+ *
18
+ * Provides a centralised, reusable Redis connection configuration
19
+ * for BullMQ queues.
20
+ */
21
+ let RedisProvider = class RedisProvider {
22
+ configService;
23
+ constructor(configService) {
24
+ this.configService = configService;
25
+ }
26
+ createSharedConfiguration() {
27
+ return {
28
+ connection: {
29
+ host: this.configService.get("redis.host", "localhost"),
30
+ port: this.configService.get("redis.port", 6379),
31
+ password: this.configService.get("redis.password") || undefined,
32
+ db: this.configService.get("redis.db", 0),
33
+ },
34
+ };
35
+ }
36
+ };
37
+ exports.RedisProvider = RedisProvider;
38
+ exports.RedisProvider = RedisProvider = __decorate([
39
+ (0, common_1.Injectable)(),
40
+ __metadata("design:paramtypes", [config_1.ConfigService])
41
+ ], RedisProvider);
42
+ //# sourceMappingURL=redis.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.provider.js","sourceRoot":"","sources":["../../src/database/redis.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;AAI/C;;;;;GAKG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAa;IACK;IAA7B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,yBAAyB;QACvB,OAAO;YACL,UAAU,EAAE;gBACV,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,YAAY,EAAE,WAAW,CAAC;gBAC/D,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,YAAY,EAAE,IAAI,CAAC;gBACxD,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,gBAAgB,CAAC,IAAI,SAAS;gBACvE,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,UAAU,EAAE,CAAC,CAAC;aAClD;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAbY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;qCAEiC,sBAAa;GAD9C,aAAa,CAazB"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Standard API Response Wrapper
3
+ *
4
+ * Provides a consistent response format across all API endpoints.
5
+ *
6
+ * @example Success response:
7
+ * {
8
+ * "success": true,
9
+ * "message": "Operation completed successfully",
10
+ * "data": { ... },
11
+ * "timestamp": "2026-01-20T12:00:00.000Z"
12
+ * }
13
+ *
14
+ * @example Error response (from AllExceptionsFilter):
15
+ * {
16
+ * "success": false,
17
+ * "message": "Validation failed",
18
+ * "error": { "statusCode": 400, "details": [...] },
19
+ * "timestamp": "2026-01-20T12:00:00.000Z"
20
+ * }
21
+ */
22
+ export declare class ApiResponseDto<T = any> {
23
+ success: boolean;
24
+ message?: string;
25
+ data?: T;
26
+ timestamp: string;
27
+ /**
28
+ * Create a successful response
29
+ */
30
+ static success<T>(data: T, message?: string): ApiResponseDto<T>;
31
+ /**
32
+ * Create an error response
33
+ */
34
+ static error(message: string, error?: any): ApiResponseDto<null>;
35
+ }
36
+ //# sourceMappingURL=api-response.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-response.dto.d.ts","sourceRoot":"","sources":["../../src/dto/api-response.dto.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAc,CAAC,CAAC,GAAG,GAAG;IAKjC,OAAO,EAAE,OAAO,CAAC;IAKjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,IAAI,CAAC,EAAE,CAAC,CAAC;IAMT,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC;IAS/D;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC;CAQjE"}
@@ -0,0 +1,88 @@
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.ApiResponseDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ /**
15
+ * Standard API Response Wrapper
16
+ *
17
+ * Provides a consistent response format across all API endpoints.
18
+ *
19
+ * @example Success response:
20
+ * {
21
+ * "success": true,
22
+ * "message": "Operation completed successfully",
23
+ * "data": { ... },
24
+ * "timestamp": "2026-01-20T12:00:00.000Z"
25
+ * }
26
+ *
27
+ * @example Error response (from AllExceptionsFilter):
28
+ * {
29
+ * "success": false,
30
+ * "message": "Validation failed",
31
+ * "error": { "statusCode": 400, "details": [...] },
32
+ * "timestamp": "2026-01-20T12:00:00.000Z"
33
+ * }
34
+ */
35
+ class ApiResponseDto {
36
+ success;
37
+ message;
38
+ data;
39
+ timestamp;
40
+ /**
41
+ * Create a successful response
42
+ */
43
+ static success(data, message) {
44
+ const response = new ApiResponseDto();
45
+ response.success = true;
46
+ response.message = message;
47
+ response.data = data;
48
+ response.timestamp = new Date().toISOString();
49
+ return response;
50
+ }
51
+ /**
52
+ * Create an error response
53
+ */
54
+ static error(message, error) {
55
+ const response = new ApiResponseDto();
56
+ response.success = false;
57
+ response.message = message;
58
+ response.data = error || null;
59
+ response.timestamp = new Date().toISOString();
60
+ return response;
61
+ }
62
+ }
63
+ exports.ApiResponseDto = ApiResponseDto;
64
+ __decorate([
65
+ (0, swagger_1.ApiProperty)({
66
+ description: "Indicates if the operation was successful",
67
+ example: true,
68
+ }),
69
+ __metadata("design:type", Boolean)
70
+ ], ApiResponseDto.prototype, "success", void 0);
71
+ __decorate([
72
+ (0, swagger_1.ApiPropertyOptional)({
73
+ description: "Human-readable message about the operation",
74
+ }),
75
+ __metadata("design:type", String)
76
+ ], ApiResponseDto.prototype, "message", void 0);
77
+ __decorate([
78
+ (0, swagger_1.ApiPropertyOptional)({ description: "Response payload data" }),
79
+ __metadata("design:type", Object)
80
+ ], ApiResponseDto.prototype, "data", void 0);
81
+ __decorate([
82
+ (0, swagger_1.ApiProperty)({
83
+ description: "ISO timestamp of the response",
84
+ example: "2026-01-20T12:00:00.000Z",
85
+ }),
86
+ __metadata("design:type", String)
87
+ ], ApiResponseDto.prototype, "timestamp", void 0);
88
+ //# sourceMappingURL=api-response.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-response.dto.js","sourceRoot":"","sources":["../../src/dto/api-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AAEnE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,cAAc;IAKzB,OAAO,CAAU;IAKjB,OAAO,CAAU;IAGjB,IAAI,CAAK;IAMT,SAAS,CAAS;IAElB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAI,IAAO,EAAE,OAAgB;QACzC,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAK,CAAC;QACzC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,QAAQ,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,KAAW;QACvC,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAQ,CAAC;QAC5C,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3B,QAAQ,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC;QAC9B,QAAQ,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA5CD,wCA4CC;AAvCC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,2CAA2C;QACxD,OAAO,EAAE,IAAI;KACd,CAAC;;+CACe;AAKjB;IAHC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,4CAA4C;KAC1D,CAAC;;+CACe;AAGjB;IADC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;;4CACrD;AAMT;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,0BAA0B;KACpC,CAAC;;iDACgB"}
@@ -0,0 +1,2 @@
1
+ export { ApiResponseDto } from "./api-response.dto";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}