zync-nest-data-module 1.0.0
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.
- package/README.md +672 -0
- package/dist/backup/backup.config.d.ts +4 -0
- package/dist/backup/backup.config.js +84 -0
- package/dist/backup/backup.config.js.map +1 -0
- package/dist/backup/backup.interface.d.ts +21 -0
- package/dist/backup/backup.interface.js +3 -0
- package/dist/backup/backup.interface.js.map +1 -0
- package/dist/backup/backup.module.d.ts +2 -0
- package/dist/backup/backup.module.js +24 -0
- package/dist/backup/backup.module.js.map +1 -0
- package/dist/backup/backup.service.d.ts +19 -0
- package/dist/backup/backup.service.js +229 -0
- package/dist/backup/backup.service.js.map +1 -0
- package/dist/backup/index.d.ts +4 -0
- package/dist/backup/index.js +21 -0
- package/dist/backup/index.js.map +1 -0
- package/dist/database/database.module.d.ts +2 -0
- package/dist/database/database.module.js +34 -0
- package/dist/database/database.module.js.map +1 -0
- package/dist/database/database.repository.d.ts +62 -0
- package/dist/database/database.repository.js +259 -0
- package/dist/database/database.repository.js.map +1 -0
- package/dist/database/database.scheme.d.ts +45 -0
- package/dist/database/database.scheme.js +187 -0
- package/dist/database/database.scheme.js.map +1 -0
- package/dist/database/database.service.d.ts +7 -0
- package/dist/database/database.service.js +39 -0
- package/dist/database/database.service.js.map +1 -0
- package/dist/database/database.sync.d.ts +10 -0
- package/dist/database/database.sync.js +44 -0
- package/dist/database/database.sync.js.map +1 -0
- package/dist/database/database.transaction.d.ts +17 -0
- package/dist/database/database.transaction.js +101 -0
- package/dist/database/database.transaction.js.map +1 -0
- package/dist/database/database.uniqueId.d.ts +25 -0
- package/dist/database/database.uniqueId.js +68 -0
- package/dist/database/database.uniqueId.js.map +1 -0
- package/dist/database/database.utils.d.ts +10 -0
- package/dist/database/database.utils.js +119 -0
- package/dist/database/database.utils.js.map +1 -0
- package/dist/database/index.d.ts +8 -0
- package/dist/database/index.js +25 -0
- package/dist/database/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/service/index.d.ts +1 -0
- package/dist/service/index.js +18 -0
- package/dist/service/index.js.map +1 -0
- package/dist/service/service.d.ts +40 -0
- package/dist/service/service.js +182 -0
- package/dist/service/service.js.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/libs/src/app.controller.ts +84 -0
- package/libs/src/app.module.ts +31 -0
- package/libs/src/backup/backup.config.ts +45 -0
- package/libs/src/backup/backup.interface.ts +21 -0
- package/libs/src/backup/backup.module.ts +11 -0
- package/libs/src/backup/backup.service.ts +283 -0
- package/libs/src/backup/index.ts +4 -0
- package/libs/src/database/database.module.ts +26 -0
- package/libs/src/database/database.repository.ts +358 -0
- package/libs/src/database/database.scheme.ts +128 -0
- package/libs/src/database/database.service.ts +36 -0
- package/libs/src/database/database.sync.ts +61 -0
- package/libs/src/database/database.transaction.ts +101 -0
- package/libs/src/database/database.uniqueId.ts +59 -0
- package/libs/src/database/database.utils.ts +99 -0
- package/libs/src/database/index.ts +8 -0
- package/libs/src/index.ts +3 -0
- package/libs/src/main.ts +62 -0
- package/libs/src/service/index.ts +1 -0
- package/libs/src/service/service.ts +201 -0
- package/libs/src/test/test.dto.ts +41 -0
- package/libs/src/test/test.module.ts +20 -0
- package/libs/src/test/test.repository.ts +44 -0
- package/libs/src/test/test.resolver.ts +44 -0
- package/libs/src/test/test.schema.ts +21 -0
- package/libs/src/test/test.service.ts +19 -0
- package/libs/tsconfig.lib.json +19 -0
- package/nest-cli.json +16 -0
- package/package.json +89 -0
- package/tsconfig.json +29 -0
- package/update-links.js +159 -0
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
17
|
+
var _a;
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.AbstractBaseRepository = void 0;
|
|
20
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
21
|
+
const moment_1 = __importDefault(require("moment"));
|
|
22
|
+
const mongoose_2 = require("mongoose");
|
|
23
|
+
const mongoose_delete_1 = require("mongoose-delete");
|
|
24
|
+
const database_scheme_1 = require("./database.scheme");
|
|
25
|
+
const database_uniqueId_1 = require("./database.uniqueId");
|
|
26
|
+
const database_utils_1 = require("./database.utils");
|
|
27
|
+
const common_1 = require("@nestjs/common");
|
|
28
|
+
let AbstractBaseRepository = class AbstractBaseRepository {
|
|
29
|
+
constructor(dbModel) {
|
|
30
|
+
this.dbModel = dbModel;
|
|
31
|
+
this._session = null;
|
|
32
|
+
}
|
|
33
|
+
set session(v) {
|
|
34
|
+
this._session = v;
|
|
35
|
+
}
|
|
36
|
+
get session() {
|
|
37
|
+
return this._session;
|
|
38
|
+
}
|
|
39
|
+
get hasSession() {
|
|
40
|
+
return !!this._session && !this._session.hasEnded;
|
|
41
|
+
}
|
|
42
|
+
mapIds(query) {
|
|
43
|
+
return database_utils_1.DbUtils.mapToObjectIds(query);
|
|
44
|
+
}
|
|
45
|
+
async create(data) {
|
|
46
|
+
return await this._create(data);
|
|
47
|
+
}
|
|
48
|
+
async findById(id) {
|
|
49
|
+
return await this._findById(id);
|
|
50
|
+
}
|
|
51
|
+
async findOne(query) {
|
|
52
|
+
return await this._findOne(query);
|
|
53
|
+
}
|
|
54
|
+
async find(query) {
|
|
55
|
+
return await this._find(query);
|
|
56
|
+
}
|
|
57
|
+
async update(id, data) {
|
|
58
|
+
return this._update(id, data);
|
|
59
|
+
}
|
|
60
|
+
async updateMany(query, model) {
|
|
61
|
+
await this._updateMany(query, model);
|
|
62
|
+
}
|
|
63
|
+
async delete(id) {
|
|
64
|
+
await this._delete(id);
|
|
65
|
+
}
|
|
66
|
+
async deleteMany(query) {
|
|
67
|
+
await this._deleteMany(query);
|
|
68
|
+
}
|
|
69
|
+
async aggregate(pipeline) {
|
|
70
|
+
if (!this.hasSession)
|
|
71
|
+
return await this.dbModel.aggregate(pipeline).session(this.session);
|
|
72
|
+
return await this.dbModel.aggregate(pipeline).session(this.session);
|
|
73
|
+
}
|
|
74
|
+
async page(page) {
|
|
75
|
+
return await this._page(page);
|
|
76
|
+
}
|
|
77
|
+
async findLast(query) {
|
|
78
|
+
return await this._findLast(query);
|
|
79
|
+
}
|
|
80
|
+
async count(query) {
|
|
81
|
+
return this._count(query);
|
|
82
|
+
}
|
|
83
|
+
async _count(query) {
|
|
84
|
+
query = this.mapIds(query);
|
|
85
|
+
return this.dbModel.countDocuments(query);
|
|
86
|
+
}
|
|
87
|
+
async _create(data) {
|
|
88
|
+
const payload = await this.mapData(data, true);
|
|
89
|
+
payload._id = payload._id
|
|
90
|
+
? new mongoose_2.Types.ObjectId(payload._id?.toString())
|
|
91
|
+
: this.getObjectId();
|
|
92
|
+
const created = new this.dbModel(payload);
|
|
93
|
+
if (!this.hasSession) {
|
|
94
|
+
const saved = await created.save();
|
|
95
|
+
return await this.findById(saved._id);
|
|
96
|
+
}
|
|
97
|
+
const saved = await created.save({ session: this.session });
|
|
98
|
+
return await this.findById(saved._id);
|
|
99
|
+
}
|
|
100
|
+
async _findById(id) {
|
|
101
|
+
const findQuery = this.dbModel.findById(new mongoose_2.Types.ObjectId(id?.toString()));
|
|
102
|
+
if (this.hasSession) {
|
|
103
|
+
findQuery.session(this.session);
|
|
104
|
+
}
|
|
105
|
+
return findQuery.exec().then((res) => res?._doc || res);
|
|
106
|
+
}
|
|
107
|
+
async _findOne(query) {
|
|
108
|
+
query = this.mapIds(query);
|
|
109
|
+
const findQuery = this.dbModel.findOne(query);
|
|
110
|
+
if (this.hasSession) {
|
|
111
|
+
findQuery.session(this.session);
|
|
112
|
+
}
|
|
113
|
+
return findQuery.exec().then((res) => res?._doc || res);
|
|
114
|
+
}
|
|
115
|
+
async _find(query) {
|
|
116
|
+
if (query._id) {
|
|
117
|
+
query._id = new mongoose_2.Types.ObjectId(query._id);
|
|
118
|
+
}
|
|
119
|
+
query = this.mapIds(query);
|
|
120
|
+
const findQuery = this.dbModel
|
|
121
|
+
.find(query)
|
|
122
|
+
.sort({ createdAt: -1 });
|
|
123
|
+
if (this.hasSession) {
|
|
124
|
+
findQuery.session(this.session);
|
|
125
|
+
}
|
|
126
|
+
return findQuery.exec().then((res) => res?._doc || res);
|
|
127
|
+
}
|
|
128
|
+
async _update(id, data) {
|
|
129
|
+
delete data._id;
|
|
130
|
+
const payload = await this.mapData(data, false);
|
|
131
|
+
await this.dbModel
|
|
132
|
+
.updateOne({ _id: new mongoose_2.Types.ObjectId(id) }, { $set: payload }, {
|
|
133
|
+
...(this.hasSession && { session: this.session }),
|
|
134
|
+
})
|
|
135
|
+
.exec();
|
|
136
|
+
return await this.findById(id);
|
|
137
|
+
}
|
|
138
|
+
async _updateMany(query, model) {
|
|
139
|
+
delete model._id;
|
|
140
|
+
query = this.mapIds(query);
|
|
141
|
+
model = this.mapIds(model);
|
|
142
|
+
await this.dbModel
|
|
143
|
+
.updateMany(query, {
|
|
144
|
+
...model,
|
|
145
|
+
updatedAt: Date.now(),
|
|
146
|
+
}, this.hasSession ? { new: true, session: this.session } : {})
|
|
147
|
+
.exec();
|
|
148
|
+
}
|
|
149
|
+
async _delete(id) {
|
|
150
|
+
const deleteQuery = this.dbModel.findByIdAndDelete(new mongoose_2.Types.ObjectId(id));
|
|
151
|
+
if (this.hasSession) {
|
|
152
|
+
deleteQuery.session(this.session);
|
|
153
|
+
}
|
|
154
|
+
await deleteQuery.exec();
|
|
155
|
+
}
|
|
156
|
+
async _deleteMany(query) {
|
|
157
|
+
query = this.mapIds(query);
|
|
158
|
+
const deleteQuery = this.dbModel.deleteMany(query);
|
|
159
|
+
if (this.hasSession) {
|
|
160
|
+
deleteQuery.session(this.session);
|
|
161
|
+
}
|
|
162
|
+
await deleteQuery.exec();
|
|
163
|
+
}
|
|
164
|
+
async _findLast(query) {
|
|
165
|
+
query = this.mapIds(query);
|
|
166
|
+
const findQuery = this.dbModel
|
|
167
|
+
.find(query)
|
|
168
|
+
.limit(1)
|
|
169
|
+
.sort({ createdAt: -1 });
|
|
170
|
+
if (this.hasSession) {
|
|
171
|
+
findQuery.session(this.session);
|
|
172
|
+
}
|
|
173
|
+
const result = await findQuery.exec();
|
|
174
|
+
return result.length === 0 ? null : result[0];
|
|
175
|
+
}
|
|
176
|
+
async _page(page, $lookups) {
|
|
177
|
+
const query = this.buildQuery(page);
|
|
178
|
+
return this.aggregate([
|
|
179
|
+
...(!!$lookups?.length ? $lookups : []),
|
|
180
|
+
...(Array.isArray(query) ? query : [query]),
|
|
181
|
+
{ $sort: { createdAt: -1 } },
|
|
182
|
+
{ ...(0, database_scheme_1.handlePageFacet)(page) },
|
|
183
|
+
]).then((database_scheme_1.handlePageResult));
|
|
184
|
+
}
|
|
185
|
+
schemaKeysQuery(schema, options, addMatchCondition) {
|
|
186
|
+
const { query, ignoreKeys } = options;
|
|
187
|
+
Object.keys(schema.obj).forEach((key) => {
|
|
188
|
+
if (query[key] && !ignoreKeys?.includes(key)) {
|
|
189
|
+
addMatchCondition({
|
|
190
|
+
[key]: schema.path(key).instance === "Mixed"
|
|
191
|
+
? this.toObjectId(query[key])
|
|
192
|
+
: query[key],
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
if (query?.keyword && options.searchKeys?.length) {
|
|
197
|
+
const keywordValue = query?.keyword;
|
|
198
|
+
const globalSearchConditions = options.searchKeys?.map((field) => ({
|
|
199
|
+
[field]: { $regex: keywordValue, $options: "i" },
|
|
200
|
+
}));
|
|
201
|
+
if (globalSearchConditions.length > 0) {
|
|
202
|
+
addMatchCondition({ $or: globalSearchConditions });
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
if (query?.fromDate && query?.toDate) {
|
|
206
|
+
addMatchCondition({
|
|
207
|
+
createdAt: {
|
|
208
|
+
$gte: (0, moment_1.default)(query.fromDate).startOf("day").valueOf(),
|
|
209
|
+
$lte: (0, moment_1.default)(query.toDate).endOf("day").valueOf(),
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
if (query?.ref) {
|
|
214
|
+
addMatchCondition({
|
|
215
|
+
ref: { $regex: query.ref?.toUpperCase(), $options: "i" },
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
cleanupQuery(andConditions) {
|
|
220
|
+
if (andConditions.length === 0) {
|
|
221
|
+
return { $match: {} };
|
|
222
|
+
}
|
|
223
|
+
if (andConditions.length === 1) {
|
|
224
|
+
return { $match: andConditions[0] };
|
|
225
|
+
}
|
|
226
|
+
return { $match: { $and: andConditions } };
|
|
227
|
+
}
|
|
228
|
+
getObjectId() {
|
|
229
|
+
return this.uniqueIdGenerator.getObjectId();
|
|
230
|
+
}
|
|
231
|
+
toObjectId(value) {
|
|
232
|
+
return new mongoose_2.Types.ObjectId(value?.toString());
|
|
233
|
+
}
|
|
234
|
+
async generateUniqueId(key) {
|
|
235
|
+
return await this.uniqueIdGenerator.getNextUniqueId(key);
|
|
236
|
+
}
|
|
237
|
+
async generateRef(ref) {
|
|
238
|
+
const key = ref?.key || "uniqueId";
|
|
239
|
+
const prefix = ref?.prefix;
|
|
240
|
+
try {
|
|
241
|
+
const newRefNumber = await this.uniqueIdGenerator.getNextUniqueId(key);
|
|
242
|
+
return prefix ? `${prefix}-${newRefNumber}` : `${newRefNumber}`;
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
console.error("Error generating reference:", error);
|
|
246
|
+
throw new Error("Failed to generate reference");
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
exports.AbstractBaseRepository = AbstractBaseRepository;
|
|
251
|
+
__decorate([
|
|
252
|
+
(0, common_1.Inject)(database_uniqueId_1.ApUniqueIdGenerator),
|
|
253
|
+
__metadata("design:type", database_uniqueId_1.ApUniqueIdGenerator)
|
|
254
|
+
], AbstractBaseRepository.prototype, "uniqueIdGenerator", void 0);
|
|
255
|
+
exports.AbstractBaseRepository = AbstractBaseRepository = __decorate([
|
|
256
|
+
__param(0, (0, mongoose_1.InjectModel)("MODEL_NAME")),
|
|
257
|
+
__metadata("design:paramtypes", [typeof (_a = typeof mongoose_delete_1.SoftDeleteModel !== "undefined" && mongoose_delete_1.SoftDeleteModel) === "function" ? _a : Object])
|
|
258
|
+
], AbstractBaseRepository);
|
|
259
|
+
//# sourceMappingURL=database.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.repository.js","sourceRoot":"","sources":["../../libs/src/database/database.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Types } from "mongoose";
|
|
2
|
+
export declare class BaseSchema {
|
|
3
|
+
_id: Types.ObjectId;
|
|
4
|
+
ref: string;
|
|
5
|
+
branchId: Types.ObjectId;
|
|
6
|
+
createdAt: number;
|
|
7
|
+
createdBy: Types.ObjectId;
|
|
8
|
+
updatedAt: number;
|
|
9
|
+
updatedBy: Types.ObjectId;
|
|
10
|
+
deletedAt: number;
|
|
11
|
+
deletedBy: Types.ObjectId;
|
|
12
|
+
deleted: boolean;
|
|
13
|
+
documentDate: number;
|
|
14
|
+
documentNumber: string;
|
|
15
|
+
canDelete: boolean;
|
|
16
|
+
canUpdate: boolean;
|
|
17
|
+
storeId: Types.ObjectId;
|
|
18
|
+
companyId: Types.ObjectId;
|
|
19
|
+
employeeId: Types.ObjectId;
|
|
20
|
+
static toObjectId(value: string): string | any[] | Types.ObjectId;
|
|
21
|
+
static toUnixTimestamp(value: number | string): number;
|
|
22
|
+
}
|
|
23
|
+
export interface IPageParams extends BaseSchema {
|
|
24
|
+
skip: number;
|
|
25
|
+
take: number;
|
|
26
|
+
}
|
|
27
|
+
export interface IPageResult<T> {
|
|
28
|
+
totalRecords: number;
|
|
29
|
+
data: Array<T>;
|
|
30
|
+
}
|
|
31
|
+
export declare const handlePageFacet: (page: any) => {
|
|
32
|
+
$facet: {
|
|
33
|
+
data: ({
|
|
34
|
+
$skip: number;
|
|
35
|
+
$limit?: undefined;
|
|
36
|
+
} | {
|
|
37
|
+
$limit: number;
|
|
38
|
+
$skip?: undefined;
|
|
39
|
+
})[];
|
|
40
|
+
totalRecords: {
|
|
41
|
+
$count: string;
|
|
42
|
+
}[];
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export declare const handlePageResult: <T>(res: any) => IPageResult<T>;
|
|
@@ -0,0 +1,187 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
45
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
|
+
};
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.handlePageResult = exports.handlePageFacet = exports.BaseSchema = void 0;
|
|
49
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
50
|
+
const moment_1 = __importDefault(require("moment"));
|
|
51
|
+
const mongoose_2 = __importStar(require("mongoose"));
|
|
52
|
+
class BaseSchema {
|
|
53
|
+
static toObjectId(value) {
|
|
54
|
+
try {
|
|
55
|
+
if (Array.isArray(value)) {
|
|
56
|
+
return value.map((v) => mongoose_2.default.Types.ObjectId.isValid(v)
|
|
57
|
+
? new mongoose_2.default.Types.ObjectId(v)
|
|
58
|
+
: v);
|
|
59
|
+
}
|
|
60
|
+
else if (mongoose_2.default.Types.ObjectId.isValid(value)) {
|
|
61
|
+
return new mongoose_2.default.Types.ObjectId(value);
|
|
62
|
+
}
|
|
63
|
+
else if (typeof value === "string") {
|
|
64
|
+
return new mongoose_2.default.Types.ObjectId(value);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
return value;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
static toUnixTimestamp(value) {
|
|
72
|
+
if (!value) {
|
|
73
|
+
return (0, moment_1.default)().valueOf();
|
|
74
|
+
}
|
|
75
|
+
if (typeof value === "number" && !Number.isNaN(value)) {
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
const momentDate = (0, moment_1.default)(value);
|
|
79
|
+
if (momentDate.isValid()) {
|
|
80
|
+
return momentDate.valueOf();
|
|
81
|
+
}
|
|
82
|
+
return (0, moment_1.default)().valueOf();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.BaseSchema = BaseSchema;
|
|
86
|
+
__decorate([
|
|
87
|
+
(0, mongoose_1.Prop)({ set: (val) => BaseSchema.toObjectId(val) }),
|
|
88
|
+
__metadata("design:type", mongoose_2.Types.ObjectId)
|
|
89
|
+
], BaseSchema.prototype, "_id", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
(0, mongoose_1.Prop)({ required: true, unique: true }),
|
|
92
|
+
__metadata("design:type", String)
|
|
93
|
+
], BaseSchema.prototype, "ref", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, mongoose_1.Prop)({ set: (val) => BaseSchema.toObjectId(val) }),
|
|
96
|
+
__metadata("design:type", mongoose_2.Types.ObjectId)
|
|
97
|
+
], BaseSchema.prototype, "branchId", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
(0, mongoose_1.Prop)({ set: (val) => (0, moment_1.default)(val).valueOf() }),
|
|
100
|
+
__metadata("design:type", Number)
|
|
101
|
+
], BaseSchema.prototype, "createdAt", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, mongoose_1.Prop)({ set: (val) => new mongoose_2.Types.ObjectId(val) }),
|
|
104
|
+
__metadata("design:type", mongoose_2.Types.ObjectId)
|
|
105
|
+
], BaseSchema.prototype, "createdBy", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
(0, mongoose_1.Prop)({ set: (val) => (0, moment_1.default)(val).valueOf() }),
|
|
108
|
+
__metadata("design:type", Number)
|
|
109
|
+
], BaseSchema.prototype, "updatedAt", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, mongoose_1.Prop)({ set: (val) => new mongoose_2.Types.ObjectId(val) }),
|
|
112
|
+
__metadata("design:type", mongoose_2.Types.ObjectId)
|
|
113
|
+
], BaseSchema.prototype, "updatedBy", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, mongoose_1.Prop)({ set: (val) => (0, moment_1.default)(val).valueOf() }),
|
|
116
|
+
__metadata("design:type", Number)
|
|
117
|
+
], BaseSchema.prototype, "deletedAt", void 0);
|
|
118
|
+
__decorate([
|
|
119
|
+
(0, mongoose_1.Prop)({ set: (val) => new mongoose_2.Types.ObjectId(val) }),
|
|
120
|
+
__metadata("design:type", mongoose_2.Types.ObjectId)
|
|
121
|
+
], BaseSchema.prototype, "deletedBy", void 0);
|
|
122
|
+
__decorate([
|
|
123
|
+
(0, mongoose_1.Prop)({ set: (val) => (0, moment_1.default)(val).valueOf() }),
|
|
124
|
+
__metadata("design:type", Boolean)
|
|
125
|
+
], BaseSchema.prototype, "deleted", void 0);
|
|
126
|
+
__decorate([
|
|
127
|
+
(0, mongoose_1.Prop)({ set: (val) => (0, moment_1.default)(val).valueOf() }),
|
|
128
|
+
__metadata("design:type", Number)
|
|
129
|
+
], BaseSchema.prototype, "documentDate", void 0);
|
|
130
|
+
__decorate([
|
|
131
|
+
(0, mongoose_1.Prop)({
|
|
132
|
+
validate: {
|
|
133
|
+
validator: function (v) {
|
|
134
|
+
return (v === undefined ||
|
|
135
|
+
v === null ||
|
|
136
|
+
v === "" ||
|
|
137
|
+
this.model(this.constructor.modelName)
|
|
138
|
+
.countDocuments({
|
|
139
|
+
documentNumber: v,
|
|
140
|
+
_id: { $ne: BaseSchema.toObjectId(this._id) },
|
|
141
|
+
})
|
|
142
|
+
.then((count) => count === 0));
|
|
143
|
+
},
|
|
144
|
+
message: "documentNumber must be unique if not empty",
|
|
145
|
+
},
|
|
146
|
+
}),
|
|
147
|
+
__metadata("design:type", String)
|
|
148
|
+
], BaseSchema.prototype, "documentNumber", void 0);
|
|
149
|
+
__decorate([
|
|
150
|
+
(0, mongoose_1.Prop)({ default: false }),
|
|
151
|
+
__metadata("design:type", Boolean)
|
|
152
|
+
], BaseSchema.prototype, "canDelete", void 0);
|
|
153
|
+
__decorate([
|
|
154
|
+
(0, mongoose_1.Prop)({ default: false }),
|
|
155
|
+
__metadata("design:type", Boolean)
|
|
156
|
+
], BaseSchema.prototype, "canUpdate", void 0);
|
|
157
|
+
__decorate([
|
|
158
|
+
(0, mongoose_1.Prop)({ set: (val) => (val === "" ? undefined : new mongoose_2.Types.ObjectId(val)) }),
|
|
159
|
+
__metadata("design:type", mongoose_2.Types.ObjectId)
|
|
160
|
+
], BaseSchema.prototype, "storeId", void 0);
|
|
161
|
+
__decorate([
|
|
162
|
+
(0, mongoose_1.Prop)({ set: (val) => new mongoose_2.Types.ObjectId(val) }),
|
|
163
|
+
__metadata("design:type", mongoose_2.Types.ObjectId)
|
|
164
|
+
], BaseSchema.prototype, "companyId", void 0);
|
|
165
|
+
__decorate([
|
|
166
|
+
(0, mongoose_1.Prop)({ set: (val) => new mongoose_2.Types.ObjectId(val) }),
|
|
167
|
+
__metadata("design:type", mongoose_2.Types.ObjectId)
|
|
168
|
+
], BaseSchema.prototype, "employeeId", void 0);
|
|
169
|
+
const handlePageFacet = (page) => {
|
|
170
|
+
return {
|
|
171
|
+
$facet: {
|
|
172
|
+
data: [{ $skip: Number(page.skip) }, { $limit: Number(page.take) }],
|
|
173
|
+
totalRecords: [{ $count: "count" }],
|
|
174
|
+
},
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
exports.handlePageFacet = handlePageFacet;
|
|
178
|
+
const handlePageResult = (res) => {
|
|
179
|
+
let rs = res[0];
|
|
180
|
+
if (rs.totalRecords.length)
|
|
181
|
+
rs = { ...rs, totalRecords: rs.totalRecords[0].count };
|
|
182
|
+
else
|
|
183
|
+
rs = { ...rs, totalRecords: 0 };
|
|
184
|
+
return rs;
|
|
185
|
+
};
|
|
186
|
+
exports.handlePageResult = handlePageResult;
|
|
187
|
+
//# sourceMappingURL=database.scheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.scheme.js","sourceRoot":"","sources":["../../libs/src/database/database.scheme.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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.DatabaseService = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const mongoose_1 = require("mongoose");
|
|
12
|
+
let DatabaseService = class DatabaseService {
|
|
13
|
+
constructor() {
|
|
14
|
+
this._connectionId = process.env.mongodb_default_db_name;
|
|
15
|
+
this.connections = new Map();
|
|
16
|
+
}
|
|
17
|
+
setConnection(companyId) {
|
|
18
|
+
this._connectionId = companyId
|
|
19
|
+
? companyId
|
|
20
|
+
: process.env.mongodb_default_db_name;
|
|
21
|
+
if (this.connections.has(companyId)) {
|
|
22
|
+
return this.connections.get(companyId);
|
|
23
|
+
}
|
|
24
|
+
const connection = (0, mongoose_1.createConnection)(process.env.mongodb_url?.replace("{{db_name}}", companyId));
|
|
25
|
+
this.connections.set(companyId, connection);
|
|
26
|
+
return connection;
|
|
27
|
+
}
|
|
28
|
+
getConnection() {
|
|
29
|
+
if (this.connections.has(this._connectionId)) {
|
|
30
|
+
return this.connections.get(this._connectionId);
|
|
31
|
+
}
|
|
32
|
+
return this.setConnection(this._connectionId);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.DatabaseService = DatabaseService;
|
|
36
|
+
exports.DatabaseService = DatabaseService = __decorate([
|
|
37
|
+
(0, common_1.Injectable)({})
|
|
38
|
+
], DatabaseService);
|
|
39
|
+
//# sourceMappingURL=database.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.service.js","sourceRoot":"","sources":["../../libs/src/database/database.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,uCAAwD;AAGjD,IAAM,eAAe,GAArB,MAAM,eAAe;IAArB;QACG,kBAAa,GAAW,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;QAC5D,gBAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;IA6B3D,CAAC;IA3BQ,aAAa,CAAC,SAAiB;QACpC,IAAI,CAAC,aAAa,GAAG,SAAS;YAC5B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;QAGxC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QAGD,MAAM,UAAU,GAAG,IAAA,2BAAgB,EACjC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAC3D,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAE5C,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,aAAa;QAElB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC;CACF,CAAA;AA/BY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,EAAC,EAAE,CAAC;GACF,eAAe,CA+B3B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MongoClient } from "mongodb";
|
|
2
|
+
interface RealtimeSyncOptions {
|
|
3
|
+
sourceUri: string;
|
|
4
|
+
targetUri: string;
|
|
5
|
+
collection: string;
|
|
6
|
+
sourceClient: MongoClient;
|
|
7
|
+
targetClient: MongoClient;
|
|
8
|
+
}
|
|
9
|
+
export declare function realtimeSync(options: RealtimeSyncOptions): Promise<void>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.realtimeSync = realtimeSync;
|
|
4
|
+
const dotenv_1 = require("dotenv");
|
|
5
|
+
(0, dotenv_1.config)();
|
|
6
|
+
async function realtimeSync(options) {
|
|
7
|
+
const { sourceUri, targetUri, collection, sourceClient, targetClient } = options;
|
|
8
|
+
await sourceClient.connect();
|
|
9
|
+
await targetClient.connect();
|
|
10
|
+
const getDbName = (uri) => {
|
|
11
|
+
const match = uri.match(/\/(\w+)(\?|$)/);
|
|
12
|
+
return match ? match[1] : undefined;
|
|
13
|
+
};
|
|
14
|
+
const sourceDB = getDbName(sourceUri);
|
|
15
|
+
const targetDB = getDbName(targetUri);
|
|
16
|
+
console.log(`🔗 Connected to source DB: ${sourceDB}`);
|
|
17
|
+
console.log(`🔗 Connected to target DB: ${targetDB}`);
|
|
18
|
+
if (!sourceDB || !targetDB) {
|
|
19
|
+
throw new Error("Database name must be specified in both connection strings.");
|
|
20
|
+
}
|
|
21
|
+
const source = sourceClient.db(sourceDB).collection(collection);
|
|
22
|
+
const target = targetClient.db(targetDB).collection(collection);
|
|
23
|
+
const changeStream = source.watch([], { fullDocument: "updateLookup" });
|
|
24
|
+
console.log(`📡 Watching changes on ${sourceDB}.${collection}...`);
|
|
25
|
+
changeStream.on("change", async (change) => {
|
|
26
|
+
const { operationType, fullDocument, documentKey } = change;
|
|
27
|
+
try {
|
|
28
|
+
if (operationType === "insert" && fullDocument) {
|
|
29
|
+
await target.replaceOne({ _id: fullDocument._id }, fullDocument, { upsert: true });
|
|
30
|
+
}
|
|
31
|
+
else if ((operationType === "update" || operationType === "replace") && fullDocument) {
|
|
32
|
+
await target.replaceOne({ _id: documentKey._id }, fullDocument, { upsert: true });
|
|
33
|
+
}
|
|
34
|
+
else if (operationType === "delete") {
|
|
35
|
+
await target.deleteOne({ _id: documentKey._id });
|
|
36
|
+
}
|
|
37
|
+
console.log(`🔄 Synced ${operationType} for _id=${documentKey._id}`);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.error(`❌ Error syncing ${operationType} for _id=${documentKey._id}:`, error);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=database.sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.sync.js","sourceRoot":"","sources":["../../libs/src/database/database.sync.ts"],"names":[],"mappings":";;AAYA,oCAgDC;AA5DD,mCAAgC;AAEhC,IAAA,eAAM,GAAE,CAAC;AAUF,KAAK,UAAU,YAAY,CAAC,OAA4B;IAC7D,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAIjF,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;IAG7B,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE;QAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtC,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IAEtD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAEhE,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;IAExE,OAAO,CAAC,GAAG,CAAC,0BAA0B,QAAQ,IAAI,UAAU,KAAK,CAAC,CAAC;IAEnE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAA8C,EAAE,EAAE;QACjF,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAQ,MAAM,CAAC;QAEjE,IAAI,CAAC;YACH,IAAI,aAAa,KAAK,QAAQ,IAAI,YAAY,EAAE,CAAC;gBAE/C,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACrF,CAAC;iBAAM,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,SAAS,CAAC,IAAI,YAAY,EAAE,CAAC;gBACvF,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACpF,CAAC;iBAAM,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;YACnD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,YAAY,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,aAAa,YAAY,WAAW,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;QACvF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import mongodb, { Connection } from "mongoose";
|
|
2
|
+
import { DatabaseService } from "./database.service";
|
|
3
|
+
export type TransactionSession = mongodb.ClientSession;
|
|
4
|
+
export declare class TransactionManager {
|
|
5
|
+
private readonly connection;
|
|
6
|
+
private dbSvc;
|
|
7
|
+
private _session;
|
|
8
|
+
private _sessionName;
|
|
9
|
+
constructor(connection: Connection, dbSvc: DatabaseService);
|
|
10
|
+
private getSession;
|
|
11
|
+
startTransaction(): Promise<TransactionSession>;
|
|
12
|
+
commitTransaction(retries?: number): Promise<void>;
|
|
13
|
+
abortTransaction(): Promise<void>;
|
|
14
|
+
endTransaction(): Promise<void>;
|
|
15
|
+
get sessionName(): string;
|
|
16
|
+
set sessionName(name: string);
|
|
17
|
+
}
|