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.
Files changed (89) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +68 -0
  3. package/lib/cache/cache.d.ts +2 -2
  4. package/lib/cache/types/redis-cache.d.ts +3 -3
  5. package/lib/cache/types/redis-cache.js +7 -12
  6. package/lib/db/_instance.d.ts +39 -0
  7. package/lib/db/_instance.js +65 -0
  8. package/lib/db/debezium.d.ts +10 -0
  9. package/lib/db/debezium.js +11 -0
  10. package/lib/db/index.d.ts +2 -0
  11. package/lib/{mongoose → db}/index.js +0 -7
  12. package/lib/db/mongoose/changes.d.ts +8 -0
  13. package/lib/db/mongoose/changes.js +99 -0
  14. package/lib/db/mongoose/index.d.ts +15 -0
  15. package/lib/db/mongoose/index.js +73 -0
  16. package/lib/db/mongoose/query.d.ts +3 -0
  17. package/lib/{mongoose → db/mongoose}/query.js +14 -30
  18. package/lib/{mongoose → db}/query.d.ts +21 -24
  19. package/lib/db/query.js +20 -0
  20. package/lib/errors/customError.d.ts +1 -1
  21. package/lib/errors/index.d.ts +4 -4
  22. package/lib/errors/index.js +4 -4
  23. package/lib/errors/types/accessTokenExpired.js +2 -2
  24. package/lib/errors/types/accountNotVerifiedError.js +2 -2
  25. package/lib/errors/types/badRequestError.js +2 -2
  26. package/lib/errors/types/invalidToken.js +2 -2
  27. package/lib/errors/types/notAuthenticatedError.js +2 -2
  28. package/lib/errors/types/notAuthorizedError.js +2 -2
  29. package/lib/errors/types/notFoundError.js +2 -2
  30. package/lib/errors/types/refreshTokenMisusedError.js +2 -2
  31. package/lib/errors/types/validationError.js +2 -2
  32. package/lib/events/index.d.ts +22 -0
  33. package/lib/events/index.js +15 -0
  34. package/lib/events/kafka.d.ts +11 -0
  35. package/lib/events/kafka.js +85 -0
  36. package/lib/events/rabbit.d.ts +11 -4
  37. package/lib/events/rabbit.js +72 -38
  38. package/lib/exit.d.ts +1 -0
  39. package/lib/exit.js +7 -2
  40. package/lib/index.d.ts +4 -3
  41. package/lib/index.js +6 -4
  42. package/lib/instance/index.d.ts +24 -0
  43. package/lib/instance/index.js +92 -0
  44. package/lib/instance/settings.d.ts +26 -0
  45. package/lib/instance/settings.js +28 -0
  46. package/lib/listeners/emitter.d.ts +1 -0
  47. package/lib/listeners/emitter.js +20 -12
  48. package/lib/logger/index.d.ts +1 -4
  49. package/lib/logger/index.js +12 -5
  50. package/lib/server/app.d.ts +11 -0
  51. package/lib/{express → server}/app.js +12 -28
  52. package/lib/server/controllers/index.js +39 -0
  53. package/lib/{express → server}/controllers/request.d.ts +7 -3
  54. package/lib/server/controllers/request.js +74 -0
  55. package/lib/{express → server}/index.d.ts +2 -1
  56. package/lib/{express → server}/index.js +3 -0
  57. package/lib/{express/app.d.ts → server/routes.d.ts} +2 -8
  58. package/lib/server/routes.js +36 -0
  59. package/lib/utils/json.d.ts +1 -0
  60. package/lib/utils/json.js +12 -0
  61. package/lib/utils/retry.d.ts +2 -0
  62. package/lib/utils/retry.js +16 -0
  63. package/lib/utils/tokens.js +2 -2
  64. package/lib/validations/index.d.ts +26 -25
  65. package/package.json +24 -16
  66. package/lib/events/events.d.ts +0 -17
  67. package/lib/events/events.js +0 -26
  68. package/lib/express/controllers/index.js +0 -76
  69. package/lib/express/controllers/request.js +0 -48
  70. package/lib/instance.d.ts +0 -43
  71. package/lib/instance.js +0 -115
  72. package/lib/mongoose/changeStreams.d.ts +0 -25
  73. package/lib/mongoose/changeStreams.js +0 -93
  74. package/lib/mongoose/index.d.ts +0 -4
  75. package/lib/{express → server}/controllers/index.d.ts +0 -0
  76. package/lib/{express → server}/middlewares/errorHandler.d.ts +0 -0
  77. package/lib/{express → server}/middlewares/errorHandler.js +0 -0
  78. package/lib/{express → server}/middlewares/index.d.ts +2 -2
  79. package/lib/{express → server}/middlewares/index.js +2 -2
  80. package/lib/{express → server}/middlewares/notFoundHandler.d.ts +0 -0
  81. package/lib/{express → server}/middlewares/notFoundHandler.js +1 -1
  82. package/lib/{express → server}/middlewares/parseAuthUser.d.ts +0 -0
  83. package/lib/{express → server}/middlewares/parseAuthUser.js +2 -2
  84. /package/lib/{express → server}/middlewares/requireAuthUser.d.ts +0 -0
  85. /package/lib/{express → server}/middlewares/requireAuthUser.js +0 -0
  86. /package/lib/{express → server}/middlewares/requireRefreshUser.d.ts +0 -0
  87. /package/lib/{express → server}/middlewares/requireRefreshUser.js +0 -0
  88. /package/lib/{express → server}/statusCodes.d.ts +0 -0
  89. /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, {});
@@ -1,4 +0,0 @@
1
- import mongoose from 'mongoose';
2
- export * from './query';
3
- export * from './changeStreams';
4
- export { mongoose };
File without changes
@@ -1,4 +1,4 @@
1
+ export * from './errorHandler';
2
+ export * from './notFoundHandler';
1
3
  export * from './requireAuthUser';
2
4
  export * from './requireRefreshUser';
3
- export * from './notFoundHandler';
4
- export * from './errorHandler';
@@ -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);
@@ -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
  });
@@ -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