@royalinvest/dto 0.74.0 → 0.74.2

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.
@@ -2,6 +2,7 @@ import { IAddress } from "../address";
2
2
  import { IAnsweredQuestionnaire } from "./screeningQuestionnaireAnswered";
3
3
  import { LocaleType } from "../types";
4
4
  import { CountryEnum, CurrencyEnum, RentCycleEnum } from "../enum";
5
+ export type TPaymentBy = "landlord" | "tenant";
5
6
  export type TBureau = "transunion" | "equifax";
6
7
  export type TCreditCheckStatus = "pass" | "fail" | "review" | "not_found";
7
8
  export type TCreditScoreTier = "a_plus" | "a" | "b_plus" | "b" | "c_plus" | "c" | "d" | "f";
@@ -103,6 +104,7 @@ export interface ICreditCheckRequestList {
103
104
  rent_amount_minor?: string;
104
105
  rent_cycle?: RentCycleEnum;
105
106
  currency?: CurrencyEnum;
107
+ paid_by?: TPaymentBy;
106
108
  }
107
109
  export interface ISubjectAddress extends IAddress {
108
110
  isCurrent: boolean;
@@ -123,6 +125,8 @@ export interface ICreditCheckSubjectRequest {
123
125
  credit_type?: string;
124
126
  credit_number?: string;
125
127
  addons?: string[];
128
+ paid_by?: TPaymentBy | null;
129
+ credit_bureau?: TBureau | null;
126
130
  }
127
131
  export interface ICreditCheckConsentRequest {
128
132
  credit_check_subject_id: string;
@@ -159,6 +163,8 @@ export interface ICreditCheckSubjectResponse {
159
163
  service_type: TScreeningServiceType;
160
164
  created_at: Date;
161
165
  updated_at: Date;
166
+ paid_by?: TPaymentBy | null;
167
+ credit_bureau?: TBureau | null;
162
168
  }
163
169
  export interface ICreditCheckResult {
164
170
  id: string;
@@ -269,6 +275,7 @@ export interface ICreditCheckConsentExtendedResponse {
269
275
  export interface ICreditCheckConsentTenantInfoResponse {
270
276
  id: string;
271
277
  consent_id: string;
278
+ subject_id: string;
272
279
  tenant_first_name: string;
273
280
  tenant_last_name: string;
274
281
  sender_first_name: string;
@@ -278,6 +285,8 @@ export interface ICreditCheckConsentTenantInfoResponse {
278
285
  rental_address: IAddress;
279
286
  tenant_email: string;
280
287
  user_id?: string;
288
+ paid_by?: TPaymentBy | null;
289
+ credit_bureau?: TBureau | null;
281
290
  }
282
291
  export interface ICreditCheckReportFileDownload {
283
292
  id: string;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Uses pino's default error serializer for Error typed data.
3
+ *
4
+ * Also handles untyped third-party library errors and errors escaped
5
+ * ESLint "@typescript-eslint/prefer-promise-reject-errors" rule
6
+ * by ensuring consistent error object structure.
7
+ * This is necessary for log processing tools to properly index the error.
8
+ */
9
+ export declare const errorSerializer: (error: unknown) => import("pino-std-serializers").SerializedError | {
10
+ message: unknown;
11
+ details: string;
12
+ is_native_error: boolean;
13
+ } | {
14
+ message: string;
15
+ is_native_error: boolean;
16
+ details?: undefined;
17
+ };
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.errorSerializer = void 0;
7
+ const pino_1 = __importDefault(require("pino"));
8
+ const MAX_DETAILS_LENGTH = 1000;
9
+ /**
10
+ * Uses pino's default error serializer for Error typed data.
11
+ *
12
+ * Also handles untyped third-party library errors and errors escaped
13
+ * ESLint "@typescript-eslint/prefer-promise-reject-errors" rule
14
+ * by ensuring consistent error object structure.
15
+ * This is necessary for log processing tools to properly index the error.
16
+ */
17
+ const errorSerializer = (error) => {
18
+ if (error instanceof Error) {
19
+ return pino_1.default.stdSerializers.err(error);
20
+ }
21
+ // Adds is_native_error flag to differentiate native errors from others
22
+ if (error && typeof error === "object") {
23
+ let details;
24
+ try {
25
+ details = JSON.stringify(error);
26
+ }
27
+ catch {
28
+ details = "[Unserializable Object]";
29
+ }
30
+ if (details.length > MAX_DETAILS_LENGTH) {
31
+ details = details.substring(0, MAX_DETAILS_LENGTH) + "...";
32
+ }
33
+ let message;
34
+ if ("message" in error)
35
+ message = error.message;
36
+ else if ("msg" in error)
37
+ message = error.msg;
38
+ if (!message || typeof message !== "string") {
39
+ message = "Error with unknown type";
40
+ }
41
+ return {
42
+ message,
43
+ details,
44
+ is_native_error: false,
45
+ };
46
+ }
47
+ return {
48
+ message: String(error),
49
+ is_native_error: false,
50
+ };
51
+ };
52
+ exports.errorSerializer = errorSerializer;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.baseLogger = void 0;
7
7
  exports.createScopedLogger = createScopedLogger;
8
8
  const pino_1 = __importDefault(require("pino"));
9
+ const errorSerializer_1 = require("./errorSerializer");
9
10
  const isDev = process.env.NODE_ENV === "development";
10
11
  const LOG_LEVEL = process.env.LOG_LEVEL || "info";
11
12
  exports.baseLogger = (0, pino_1.default)({
@@ -26,6 +27,12 @@ exports.baseLogger = (0, pino_1.default)({
26
27
  },
27
28
  }
28
29
  : undefined,
30
+ serializers: {
31
+ // Includes "error" in error serializing
32
+ // Uses custom serializer to handle more error types
33
+ err: errorSerializer_1.errorSerializer,
34
+ error: errorSerializer_1.errorSerializer,
35
+ }
29
36
  });
30
37
  function createScopedLogger(context) {
31
38
  return exports.baseLogger.child(context);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@royalinvest/dto",
3
- "version": "0.74.0",
3
+ "version": "0.74.2",
4
4
  "description": "Data Transfer Objects (DTOs) to carry data between frontend and backend processes.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -79,8 +79,10 @@
79
79
  "dependencies": {
80
80
  "amqplib": "^0.10.3",
81
81
  "dayjs": "^1.11.19",
82
- "pino": "^9.7.0",
83
- "pino-pretty": "^13.0.0",
84
82
  "prom-client": "^15.1.3"
83
+ },
84
+ "peerDependencies": {
85
+ "pino": "^9.7.0",
86
+ "pino-pretty": "^13.0.0"
85
87
  }
86
88
  }
@@ -1 +0,0 @@
1
- export type UILanguage = "en" | "fr" | "de" | "es" | "nl";
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +0,0 @@
1
- export interface IMessageBrokerEvent<TPayload> {
2
- http_request_id: string;
3
- user_id: string;
4
- payload: TPayload;
5
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,57 +0,0 @@
1
- import { LeaseTypeEnum } from "./enum";
2
- import { ICertificateFormData } from "./certificateFormData";
3
- import { IContractParty } from "./contractParty";
4
- import { IDocumentDrawingInstructions } from "./documentDrawingInstructions";
5
- import { IFileMetadata } from "./fileMetadata";
6
- import { ISignaturePartySigned } from "./signaturePartySigned";
7
- import { IInvoiceRenderData } from "./invoiceRenderData";
8
- import { ICreditCheckReportData } from "./creditCheckReport";
9
- export interface IMessageGenerate {
10
- contract_id: string;
11
- details: JSON;
12
- user_id: string;
13
- template_variant_file_name: string;
14
- template_variant_name: string;
15
- template_variant_language: string;
16
- template_variant_mime_type: string;
17
- template_variant_id: string;
18
- template_name: LeaseTypeEnum;
19
- file_id?: string;
20
- isEdit?: boolean;
21
- contract_parties?: IContractParty[];
22
- drawing_instructions?: IDocumentDrawingInstructions;
23
- metadata?: IFileMetadata;
24
- }
25
- export interface IMessageGenerateSigned {
26
- party: ISignaturePartySigned;
27
- generate_hash?: boolean;
28
- }
29
- export interface IMessageGenerateVoided {
30
- user_id: string;
31
- contract_id: string;
32
- file_id: string;
33
- file_name: string;
34
- notify_party_email: boolean;
35
- generate_hash?: boolean;
36
- }
37
- export interface IMessageGenerateCertificate {
38
- file_id: string;
39
- blob_path: string;
40
- form_data: ICertificateFormData;
41
- form_instructions: JSON;
42
- language: string;
43
- }
44
- export interface IMessageGenerateInvoice {
45
- user_id: string;
46
- billing_id: string;
47
- blob_path: string;
48
- invoice_number: string;
49
- language: string;
50
- data: IInvoiceRenderData;
51
- }
52
- export interface IMessageGenerateCreditCheckReport {
53
- report_data: ICreditCheckReportData;
54
- subject_id: string;
55
- blob_path: string;
56
- language: string;
57
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,45 +0,0 @@
1
- import { IPhysicalFileDetails } from "./physicalFileDetails";
2
- import { IPlaceholderCollection } from "./placeholderCollection";
3
- import { ISignaturePartyBasic } from "./signaturePartyBasic";
4
- export interface IGeneratedNotification {
5
- contract_id: string;
6
- user_id: string;
7
- file_name: string;
8
- file_language: string;
9
- mime_type: string;
10
- template_name: string;
11
- template_variant_id: string;
12
- file_id?: string;
13
- isEdit?: boolean;
14
- generated_placeholders?: IPlaceholderCollection;
15
- generated_file_details?: IPhysicalFileDetails;
16
- }
17
- export interface ISignedNotification {
18
- file_id: string;
19
- party: ISignaturePartyBasic;
20
- generated_file_details?: IPhysicalFileDetails;
21
- }
22
- export interface IVoidedNotification {
23
- user_id: string;
24
- file_id: string;
25
- contract_id: string;
26
- notify_party_email: boolean;
27
- generated_file_details?: IPhysicalFileDetails;
28
- }
29
- export interface IGeneratedCertificateNotification {
30
- file_id: string;
31
- blob_path: string;
32
- }
33
- export interface IGeneratedInvoiceNotification {
34
- user_id: string;
35
- billing_id: string;
36
- blob_path: string;
37
- invoice_number: string;
38
- language: string;
39
- }
40
- export interface IGeneratedCreditCheckReportNotification {
41
- subject_id: string;
42
- blob_path: string;
43
- hash: string;
44
- language: string;
45
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });