gemcap-be-common 1.2.133 → 1.2.134

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.
@@ -0,0 +1,52 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ import mongoose, { Document } from 'mongoose';
26
+ import { IBorrowerItemDocument, IEmailRecipient } from '../models/ComplianceItem.model';
27
+ export interface IComplianceNote {
28
+ note: string;
29
+ date: Date;
30
+ user?: string;
31
+ }
32
+ export interface IComplianceBorrowerDocument extends Document {
33
+ isVisible: boolean;
34
+ borrower: any;
35
+ complianceNotes?: IComplianceNote[];
36
+ borrowerNotes?: IComplianceNote[];
37
+ email?: string;
38
+ mainEmails?: IEmailRecipient[];
39
+ financialEmails?: IEmailRecipient[];
40
+ isEmailingActive?: boolean;
41
+ isDailyTransactionsEmailingActive?: boolean;
42
+ plaidAccessToken?: string;
43
+ fundingStatus?: string;
44
+ lastEmailSentAt?: Date;
45
+ items?: IBorrowerItemDocument[];
46
+ }
47
+ export interface IComplianceBorrowerDocumentFull extends Omit<IComplianceBorrowerDocument, 'items'> {
48
+ items: IBorrowerItemDocument[];
49
+ }
50
+ export declare const BorrowerCompliance: mongoose.Model<IComplianceBorrowerDocument, {}, {}, {}, mongoose.Document<unknown, {}, IComplianceBorrowerDocument> & IComplianceBorrowerDocument & {
51
+ _id: mongoose.Types.ObjectId;
52
+ }, any>;
@@ -0,0 +1,191 @@
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.BorrowerCompliance = void 0;
7
+ const mongoose_1 = __importDefault(require("mongoose"));
8
+ const _models_1 = require("../models/_models");
9
+ const mongooseLeanId = require('../plugins/id.plugin');
10
+ const BorrowerComplianceInstanceSchema = new mongoose_1.default.Schema({
11
+ nextDate: {
12
+ type: Date,
13
+ required: false,
14
+ },
15
+ submittedDate: {
16
+ type: Date,
17
+ required: false,
18
+ },
19
+ status: {
20
+ type: String,
21
+ trim: true,
22
+ required: false,
23
+ },
24
+ files: [{
25
+ fileId: {
26
+ type: String,
27
+ trim: true,
28
+ required: true,
29
+ },
30
+ name: {
31
+ type: String,
32
+ trim: true,
33
+ required: true,
34
+ },
35
+ isFileNew: {
36
+ type: Boolean,
37
+ required: false,
38
+ default: true,
39
+ },
40
+ uploadedAt: {
41
+ type: Date,
42
+ required: false,
43
+ },
44
+ uploadedBy: {
45
+ type: mongoose_1.default.Schema.Types.ObjectId,
46
+ ref: _models_1.MODEL_NAMES.users,
47
+ required: false,
48
+ },
49
+ }]
50
+ }, { timestamps: true });
51
+ const BorrowerComplianceItemSchema = new mongoose_1.default.Schema({
52
+ item: {
53
+ type: mongoose_1.default.Schema.Types.ObjectId,
54
+ ref: _models_1.MODEL_NAMES.complianceItems,
55
+ required: false,
56
+ },
57
+ startDate: {
58
+ type: Date,
59
+ required: false,
60
+ },
61
+ frequency: {
62
+ type: String,
63
+ trim: true,
64
+ required: false,
65
+ },
66
+ emailAddresses: [{
67
+ email: {
68
+ type: String,
69
+ trim: true,
70
+ required: false,
71
+ },
72
+ title: {
73
+ type: String,
74
+ trim: true,
75
+ required: false,
76
+ },
77
+ isActive: {
78
+ type: Boolean,
79
+ required: false,
80
+ },
81
+ }],
82
+ instances: [BorrowerComplianceInstanceSchema]
83
+ }, { timestamps: true });
84
+ const BorrowerComplianceSchema = new mongoose_1.default.Schema({
85
+ isVisible: {
86
+ type: Boolean,
87
+ },
88
+ borrower: {
89
+ type: mongoose_1.default.Schema.Types.ObjectId,
90
+ ref: _models_1.MODEL_NAMES.borrowers,
91
+ required: true,
92
+ },
93
+ complianceNotes: [{
94
+ note: {
95
+ type: String,
96
+ trim: true,
97
+ required: true,
98
+ },
99
+ date: {
100
+ type: Date,
101
+ required: true,
102
+ },
103
+ user: {
104
+ type: String,
105
+ trim: true,
106
+ required: false,
107
+ },
108
+ }],
109
+ borrowerNotes: [{
110
+ note: {
111
+ type: String,
112
+ trim: true,
113
+ required: true,
114
+ },
115
+ date: {
116
+ type: Date,
117
+ required: true,
118
+ },
119
+ user: {
120
+ type: String,
121
+ trim: true,
122
+ required: false,
123
+ },
124
+ }],
125
+ email: {
126
+ type: String,
127
+ trim: true,
128
+ required: false,
129
+ },
130
+ mainEmails: [{
131
+ email: {
132
+ type: String,
133
+ trim: true,
134
+ required: false,
135
+ },
136
+ title: {
137
+ type: String,
138
+ trim: true,
139
+ required: false,
140
+ },
141
+ isActive: {
142
+ type: Boolean,
143
+ required: false,
144
+ },
145
+ }],
146
+ financialEmails: [{
147
+ email: {
148
+ type: String,
149
+ trim: true,
150
+ required: false,
151
+ },
152
+ title: {
153
+ type: String,
154
+ trim: true,
155
+ required: false,
156
+ },
157
+ isActive: {
158
+ type: Boolean,
159
+ required: false,
160
+ },
161
+ }],
162
+ isEmailingActive: {
163
+ type: Boolean,
164
+ required: false,
165
+ default: false,
166
+ },
167
+ isDailyTransactionsEmailingActive: {
168
+ type: Boolean,
169
+ required: false,
170
+ default: false,
171
+ },
172
+ plaidAccessToken: {
173
+ type: String,
174
+ trim: true,
175
+ required: false,
176
+ select: false,
177
+ },
178
+ fundingStatus: {
179
+ type: String,
180
+ trim: true,
181
+ required: false,
182
+ },
183
+ lastEmailSentAt: {
184
+ type: Date,
185
+ required: false,
186
+ },
187
+ items: [BorrowerComplianceItemSchema],
188
+ __v: { type: Number, select: false },
189
+ }, { timestamps: true });
190
+ BorrowerComplianceSchema.plugin(mongooseLeanId);
191
+ exports.BorrowerCompliance = mongoose_1.default.model(_models_1.MODEL_NAMES.complianceBorrowers, BorrowerComplianceSchema);
@@ -0,0 +1,225 @@
1
+ import mongoose, { Document } from 'mongoose';
2
+
3
+ import {
4
+ IBorrowerItemDocument,
5
+ IEmailRecipient,
6
+ } from '../models/ComplianceItem.model';
7
+ import { MODEL_NAMES } from '../models/_models';
8
+
9
+ const mongooseLeanId = require('../plugins/id.plugin');
10
+
11
+ export interface IComplianceNote {
12
+ note: string;
13
+ date: Date;
14
+ user?: string;
15
+ }
16
+
17
+ export interface IComplianceBorrowerDocument extends Document {
18
+ isVisible: boolean;
19
+ borrower: any;
20
+ complianceNotes?: IComplianceNote[];
21
+ borrowerNotes?: IComplianceNote[];
22
+ email?: string;
23
+ mainEmails?: IEmailRecipient[];
24
+ financialEmails?: IEmailRecipient[];
25
+ isEmailingActive?: boolean;
26
+ isDailyTransactionsEmailingActive? :boolean;
27
+ plaidAccessToken?: string;
28
+ fundingStatus?: string;
29
+ lastEmailSentAt?: Date;
30
+ items?: IBorrowerItemDocument[];
31
+ }
32
+
33
+ export interface IComplianceBorrowerDocumentFull extends Omit<IComplianceBorrowerDocument, 'items'> {
34
+ items: IBorrowerItemDocument[];
35
+ }
36
+
37
+ const BorrowerComplianceInstanceSchema = new mongoose.Schema({
38
+ nextDate: {
39
+ type: Date,
40
+ required: false,
41
+ },
42
+ submittedDate: {
43
+ type: Date,
44
+ required: false,
45
+ },
46
+ status: {
47
+ type: String,
48
+ trim: true,
49
+ required: false,
50
+ },
51
+ files: [{
52
+ fileId: {
53
+ type: String,
54
+ trim: true,
55
+ required: true,
56
+ },
57
+ name: {
58
+ type: String,
59
+ trim: true,
60
+ required: true,
61
+ },
62
+ isFileNew: {
63
+ type: Boolean,
64
+ required: false,
65
+ default: true,
66
+ },
67
+ uploadedAt: {
68
+ type: Date,
69
+ required: false,
70
+ },
71
+ uploadedBy: {
72
+ type: mongoose.Schema.Types.ObjectId,
73
+ ref: MODEL_NAMES.users,
74
+ required: false,
75
+ },
76
+ }]
77
+ }, { timestamps: true });
78
+
79
+ const BorrowerComplianceItemSchema = new mongoose.Schema({
80
+ item: {
81
+ type: mongoose.Schema.Types.ObjectId,
82
+ ref: MODEL_NAMES.complianceItems,
83
+ required: false,
84
+ },
85
+ startDate: {
86
+ type: Date,
87
+ required: false,
88
+ },
89
+ frequency: {
90
+ type: String,
91
+ trim: true,
92
+ required: false,
93
+ },
94
+ emailAddresses: [{
95
+ email: {
96
+ type: String,
97
+ trim: true,
98
+ required: false,
99
+ },
100
+ title: {
101
+ type: String,
102
+ trim: true,
103
+ required: false,
104
+ },
105
+ isActive: {
106
+ type: Boolean,
107
+ required: false,
108
+ },
109
+ }],
110
+ instances: [BorrowerComplianceInstanceSchema]
111
+ }, { timestamps: true });
112
+
113
+ const BorrowerComplianceSchema = new mongoose.Schema(
114
+ {
115
+ isVisible: {
116
+ type: Boolean,
117
+ },
118
+ borrower: {
119
+ type: mongoose.Schema.Types.ObjectId,
120
+ ref: MODEL_NAMES.borrowers,
121
+ required: true,
122
+ },
123
+ complianceNotes: [{
124
+ note: {
125
+ type: String,
126
+ trim: true,
127
+ required: true,
128
+ },
129
+ date: {
130
+ type: Date,
131
+ required: true,
132
+ },
133
+ user: {
134
+ type: String,
135
+ trim: true,
136
+ required: false,
137
+ },
138
+ }],
139
+ borrowerNotes: [{
140
+ note: {
141
+ type: String,
142
+ trim: true,
143
+ required: true,
144
+ },
145
+ date: {
146
+ type: Date,
147
+ required: true,
148
+ },
149
+ user: {
150
+ type: String,
151
+ trim: true,
152
+ required: false,
153
+ },
154
+ }],
155
+ email: {
156
+ type: String,
157
+ trim: true,
158
+ required: false,
159
+ },
160
+ mainEmails: [{
161
+ email: {
162
+ type: String,
163
+ trim: true,
164
+ required: false,
165
+ },
166
+ title: {
167
+ type: String,
168
+ trim: true,
169
+ required: false,
170
+ },
171
+ isActive: {
172
+ type: Boolean,
173
+ required: false,
174
+ },
175
+ }],
176
+ financialEmails: [{
177
+ email: {
178
+ type: String,
179
+ trim: true,
180
+ required: false,
181
+ },
182
+ title: {
183
+ type: String,
184
+ trim: true,
185
+ required: false,
186
+ },
187
+ isActive: {
188
+ type: Boolean,
189
+ required: false,
190
+ },
191
+ }],
192
+ isEmailingActive: {
193
+ type: Boolean,
194
+ required: false,
195
+ default: false,
196
+ },
197
+ isDailyTransactionsEmailingActive: {
198
+ type: Boolean,
199
+ required: false,
200
+ default: false,
201
+ },
202
+ plaidAccessToken: {
203
+ type: String,
204
+ trim: true,
205
+ required: false,
206
+ select: false,
207
+ },
208
+ fundingStatus: {
209
+ type: String,
210
+ trim: true,
211
+ required: false,
212
+ },
213
+ lastEmailSentAt: {
214
+ type: Date,
215
+ required: false,
216
+ },
217
+ items: [BorrowerComplianceItemSchema],
218
+ __v: { type: Number, select: false },
219
+ },
220
+ { timestamps: true },
221
+ );
222
+
223
+ BorrowerComplianceSchema.plugin(mongooseLeanId);
224
+
225
+ export const BorrowerCompliance = mongoose.model<IComplianceBorrowerDocument>(MODEL_NAMES.complianceBorrowers, BorrowerComplianceSchema);
@@ -0,0 +1,34 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
25
+ import mongoose, { Model } from 'mongoose';
26
+ export interface IUserMobileAccess {
27
+ _id?: mongoose.Types.ObjectId;
28
+ keycloakUserId?: string;
29
+ hasAccess: boolean;
30
+ canSignDocument: boolean;
31
+ }
32
+ type UserMobileAccessModel = Model<IUserMobileAccess, {}, {}>;
33
+ export declare const UserMobileAccess: UserMobileAccessModel;
34
+ export {};
@@ -0,0 +1,26 @@
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.UserMobileAccess = void 0;
7
+ const mongoose_1 = __importDefault(require("mongoose"));
8
+ const _models_1 = require("../models/_models");
9
+ const UserMobileAccessSchema = new mongoose_1.default.Schema({
10
+ keycloakUserId: {
11
+ type: String,
12
+ trim: true,
13
+ required: true,
14
+ },
15
+ hasAccess: {
16
+ type: Boolean,
17
+ default: false,
18
+ },
19
+ canSignDocument: {
20
+ type: Boolean,
21
+ default: false,
22
+ },
23
+ }, {
24
+ timestamps: { createdAt: true, updatedAt: false },
25
+ });
26
+ exports.UserMobileAccess = mongoose_1.default.model(_models_1.MODEL_NAMES.userMobileAccess, UserMobileAccessSchema);
@@ -0,0 +1,34 @@
1
+ import mongoose, { Model } from 'mongoose';
2
+ import { MODEL_NAMES } from '../models/_models';
3
+
4
+ export interface IUserMobileAccess {
5
+ _id?: mongoose.Types.ObjectId;
6
+ keycloakUserId?: string;
7
+ hasAccess: boolean;
8
+ canSignDocument: boolean;
9
+ }
10
+
11
+ type UserMobileAccessModel = Model<IUserMobileAccess, {}, {}>;
12
+
13
+ const UserMobileAccessSchema = new mongoose.Schema<IUserMobileAccess, UserMobileAccessModel>(
14
+ {
15
+ keycloakUserId: {
16
+ type: String,
17
+ trim: true,
18
+ required: true,
19
+ },
20
+ hasAccess: {
21
+ type: Boolean,
22
+ default: false,
23
+ },
24
+ canSignDocument: {
25
+ type: Boolean,
26
+ default: false,
27
+ },
28
+ },
29
+ {
30
+ timestamps: { createdAt: true, updatedAt: false },
31
+ },
32
+ );
33
+
34
+ export const UserMobileAccess = mongoose.model<IUserMobileAccess, UserMobileAccessModel>(MODEL_NAMES.userMobileAccess, UserMobileAccessSchema);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemcap-be-common",
3
- "version": "1.2.133",
3
+ "version": "1.2.134",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -16,6 +16,7 @@
16
16
  "exceljs": "^4.4.0",
17
17
  "express": "^4.21.0",
18
18
  "joi": "^17.13.3",
19
+ "jwt-decode": "^4.0.0",
19
20
  "keycloak-connect": "^24.0.5",
20
21
  "lodash": "^4.17.21",
21
22
  "mongoose": "^8.3.1",