equipped 4.0.2 → 4.1.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/CHANGELOG.md +38 -0
- package/README.md +68 -0
- package/lib/cache/cache.d.ts +2 -2
- package/lib/cache/types/redis-cache.d.ts +3 -3
- package/lib/cache/types/redis-cache.js +7 -12
- package/lib/db/_instance.d.ts +39 -0
- package/lib/db/_instance.js +65 -0
- package/lib/db/debezium.d.ts +10 -0
- package/lib/db/debezium.js +11 -0
- package/lib/db/index.d.ts +2 -0
- package/lib/{mongoose → db}/index.js +0 -7
- package/lib/db/mongoose/changes.d.ts +8 -0
- package/lib/db/mongoose/changes.js +99 -0
- package/lib/db/mongoose/index.d.ts +15 -0
- package/lib/db/mongoose/index.js +73 -0
- package/lib/db/mongoose/query.d.ts +3 -0
- package/lib/{mongoose → db/mongoose}/query.js +14 -30
- package/lib/{mongoose → db}/query.d.ts +21 -24
- package/lib/db/query.js +20 -0
- package/lib/errors/customError.d.ts +1 -1
- package/lib/errors/index.d.ts +4 -4
- package/lib/errors/index.js +4 -4
- package/lib/errors/types/accessTokenExpired.js +2 -2
- package/lib/errors/types/accountNotVerifiedError.js +2 -2
- package/lib/errors/types/badRequestError.js +2 -2
- package/lib/errors/types/invalidToken.js +2 -2
- package/lib/errors/types/notAuthenticatedError.js +2 -2
- package/lib/errors/types/notAuthorizedError.js +2 -2
- package/lib/errors/types/notFoundError.js +2 -2
- package/lib/errors/types/refreshTokenMisusedError.js +2 -2
- package/lib/errors/types/validationError.js +2 -2
- package/lib/events/index.d.ts +22 -0
- package/lib/events/index.js +15 -0
- package/lib/events/kafka.d.ts +11 -0
- package/lib/events/kafka.js +85 -0
- package/lib/events/rabbit.d.ts +11 -4
- package/lib/events/rabbit.js +72 -38
- package/lib/exit.d.ts +1 -0
- package/lib/exit.js +7 -2
- package/lib/index.d.ts +4 -3
- package/lib/index.js +6 -4
- package/lib/instance/index.d.ts +24 -0
- package/lib/instance/index.js +92 -0
- package/lib/instance/settings.d.ts +26 -0
- package/lib/instance/settings.js +28 -0
- package/lib/listeners/emitter.d.ts +1 -0
- package/lib/listeners/emitter.js +20 -12
- package/lib/logger/index.d.ts +1 -4
- package/lib/logger/index.js +12 -5
- package/lib/server/app.d.ts +11 -0
- package/lib/{express → server}/app.js +12 -28
- package/lib/server/controllers/index.js +39 -0
- package/lib/{express → server}/controllers/request.d.ts +7 -3
- package/lib/server/controllers/request.js +74 -0
- package/lib/{express → server}/index.d.ts +2 -1
- package/lib/{express → server}/index.js +3 -0
- package/lib/{express/app.d.ts → server/routes.d.ts} +2 -8
- package/lib/server/routes.js +36 -0
- package/lib/utils/json.d.ts +1 -0
- package/lib/utils/json.js +12 -0
- package/lib/utils/retry.d.ts +2 -0
- package/lib/utils/retry.js +16 -0
- package/lib/utils/tokens.js +2 -2
- package/lib/validations/index.d.ts +26 -25
- package/package.json +24 -16
- package/lib/events/events.d.ts +0 -17
- package/lib/events/events.js +0 -26
- package/lib/express/controllers/index.js +0 -76
- package/lib/express/controllers/request.js +0 -48
- package/lib/instance.d.ts +0 -43
- package/lib/instance.js +0 -115
- package/lib/mongoose/changeStreams.d.ts +0 -25
- package/lib/mongoose/changeStreams.js +0 -93
- package/lib/mongoose/index.d.ts +0 -4
- package/lib/{express → server}/controllers/index.d.ts +0 -0
- package/lib/{express → server}/middlewares/errorHandler.d.ts +0 -0
- package/lib/{express → server}/middlewares/errorHandler.js +0 -0
- package/lib/{express → server}/middlewares/index.d.ts +2 -2
- package/lib/{express → server}/middlewares/index.js +2 -2
- package/lib/{express → server}/middlewares/notFoundHandler.d.ts +0 -0
- package/lib/{express → server}/middlewares/notFoundHandler.js +1 -1
- package/lib/{express → server}/middlewares/parseAuthUser.d.ts +0 -0
- package/lib/{express → server}/middlewares/parseAuthUser.js +2 -2
- /package/lib/{express → server}/middlewares/requireAuthUser.d.ts +0 -0
- /package/lib/{express → server}/middlewares/requireAuthUser.js +0 -0
- /package/lib/{express → server}/middlewares/requireRefreshUser.d.ts +0 -0
- /package/lib/{express → server}/middlewares/requireRefreshUser.js +0 -0
- /package/lib/{express → server}/statusCodes.d.ts +0 -0
- /package/lib/{express → server}/statusCodes.js +0 -0
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.startAllChangeStreams = exports.generateChangeStreams = void 0;
|
|
4
|
-
const exit_1 = require("../exit");
|
|
5
|
-
const instance_1 = require("../instance");
|
|
6
|
-
const collections = [];
|
|
7
|
-
const startChangeStream = async (collection, callbacks, mapper, skipResume = false) => {
|
|
8
|
-
const dbName = collection.collection.collectionName;
|
|
9
|
-
const cloneName = dbName + '_streams_clone';
|
|
10
|
-
const getClone = () => collection.collection.conn.db.collection(cloneName);
|
|
11
|
-
const getStreamTokens = () => collection.collection.conn.db.collection('stream-tokens');
|
|
12
|
-
const res = await getStreamTokens().findOne({ _id: dbName });
|
|
13
|
-
const resumeToken = skipResume ? undefined : res?.resumeToken;
|
|
14
|
-
const changeStream = collection
|
|
15
|
-
.watch([], { fullDocument: 'updateLookup', startAfter: resumeToken })
|
|
16
|
-
.on('change', async (data) => {
|
|
17
|
-
const streamId = data._id._data;
|
|
18
|
-
const cacheName = `streams-${streamId}`;
|
|
19
|
-
const cached = await instance_1.Instance.get().cache.setInTransaction(cacheName, streamId, 15);
|
|
20
|
-
if (cached[0])
|
|
21
|
-
return;
|
|
22
|
-
(0, exit_1.addWaitBeforeExit)((async () => {
|
|
23
|
-
await getStreamTokens().findOneAndUpdate({ _id: dbName }, { $set: { resumeToken: data._id } }, { upsert: true });
|
|
24
|
-
if (data.operationType === 'insert') {
|
|
25
|
-
const _id = data.documentKey._id;
|
|
26
|
-
const after = data.fullDocument;
|
|
27
|
-
const { value } = await getClone().findOneAndUpdate({ _id }, { $set: { ...after, _id } }, {
|
|
28
|
-
upsert: true,
|
|
29
|
-
returnDocument: 'after'
|
|
30
|
-
});
|
|
31
|
-
if (value)
|
|
32
|
-
callbacks.created?.({
|
|
33
|
-
before: null,
|
|
34
|
-
after: mapper(new collection(after))
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
if (data.operationType === 'delete') {
|
|
38
|
-
const _id = data.documentKey._id;
|
|
39
|
-
const { value: before } = await getClone().findOneAndDelete({ _id });
|
|
40
|
-
if (before)
|
|
41
|
-
callbacks.deleted?.({
|
|
42
|
-
before: mapper(new collection(before)),
|
|
43
|
-
after: null
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
if (data.operationType === 'update') {
|
|
47
|
-
const _id = data.documentKey._id;
|
|
48
|
-
const after = data.fullDocument;
|
|
49
|
-
const { value: before } = await getClone().findOneAndUpdate({ _id }, { $set: after }, { returnDocument: 'before' });
|
|
50
|
-
const { updatedFields = {}, removedFields = [], truncatedArrays = [] } = data.updateDescription ?? {};
|
|
51
|
-
const changed = removedFields
|
|
52
|
-
.map((f) => f.toString())
|
|
53
|
-
.concat(truncatedArrays.map((a) => a.field))
|
|
54
|
-
.concat(Object.keys(updatedFields));
|
|
55
|
-
const changes = getObjectsFromKeys(changed);
|
|
56
|
-
if (before)
|
|
57
|
-
callbacks.updated?.({
|
|
58
|
-
before: mapper(new collection(before)),
|
|
59
|
-
after: mapper(new collection(after)),
|
|
60
|
-
changes
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
})());
|
|
64
|
-
})
|
|
65
|
-
.on('error', async (err) => {
|
|
66
|
-
await instance_1.Instance.get().logger.error(`Change Stream errored out: ${dbName}: ${err.message}`);
|
|
67
|
-
changeStream.close();
|
|
68
|
-
return startChangeStream(collection, callbacks, mapper, true);
|
|
69
|
-
});
|
|
70
|
-
(0, exit_1.addWaitBeforeExit)(() => changeStream.close());
|
|
71
|
-
await instance_1.Instance.get().logger.info(`${dbName} changestream started`);
|
|
72
|
-
};
|
|
73
|
-
const generateChangeStreams = async (collection, callbacks, mapper) => {
|
|
74
|
-
collections.push({ collection, callbacks, mapper });
|
|
75
|
-
};
|
|
76
|
-
exports.generateChangeStreams = generateChangeStreams;
|
|
77
|
-
const startAllChangeStreams = async () => {
|
|
78
|
-
await Promise.all(collections.map(async ({ collection, callbacks, mapper }) => {
|
|
79
|
-
await startChangeStream(collection, callbacks, mapper);
|
|
80
|
-
}));
|
|
81
|
-
};
|
|
82
|
-
exports.startAllChangeStreams = startAllChangeStreams;
|
|
83
|
-
const deepMerge = (objFrom, objTo) => Object.keys(objFrom)
|
|
84
|
-
.reduce((merged, key) => {
|
|
85
|
-
merged[key] = objFrom[key] instanceof Object && !Array.isArray(objFrom[key])
|
|
86
|
-
? deepMerge(objFrom[key], merged[key] ?? {})
|
|
87
|
-
: objFrom[key];
|
|
88
|
-
return merged;
|
|
89
|
-
}, { ...objTo });
|
|
90
|
-
const formObject = (key) => key.split('.').reverse().reduce((acc, value) => {
|
|
91
|
-
return { [value]: acc ?? true };
|
|
92
|
-
}, null);
|
|
93
|
-
const getObjectsFromKeys = (keys) => keys.map(formObject).reduce(deepMerge, {});
|
package/lib/mongoose/index.d.ts
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./errorHandler"), exports);
|
|
18
|
+
__exportStar(require("./notFoundHandler"), exports);
|
|
17
19
|
__exportStar(require("./requireAuthUser"), exports);
|
|
18
20
|
__exportStar(require("./requireRefreshUser"), exports);
|
|
19
|
-
__exportStar(require("./notFoundHandler"), exports);
|
|
20
|
-
__exportStar(require("./errorHandler"), exports);
|
|
File without changes
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.notFoundHandler = void 0;
|
|
4
|
-
const controllers_1 = require("../controllers");
|
|
5
4
|
const errors_1 = require("../../errors");
|
|
5
|
+
const controllers_1 = require("../controllers");
|
|
6
6
|
exports.notFoundHandler = (0, controllers_1.makeMiddleware)(async (_) => {
|
|
7
7
|
throw new errors_1.NotFoundError('Route not found');
|
|
8
8
|
});
|
|
File without changes
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseAuthUser = void 0;
|
|
4
|
-
const controllers_1 = require("../controllers");
|
|
5
|
-
const tokens_1 = require("../../utils/tokens");
|
|
6
4
|
const errors_1 = require("../../errors");
|
|
5
|
+
const tokens_1 = require("../../utils/tokens");
|
|
6
|
+
const controllers_1 = require("../controllers");
|
|
7
7
|
exports.parseAuthUser = (0, controllers_1.makeMiddleware)(async (request) => {
|
|
8
8
|
const accessToken = request.headers.AccessToken;
|
|
9
9
|
if (accessToken)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|