akeyless-server-commons 1.0.205 → 1.0.207

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 (113) hide show
  1. package/dist/cjs/helpers/postponed_actions.d.ts +7 -17
  2. package/dist/cjs/helpers/postponed_actions.js +25 -26
  3. package/dist/cjs/helpers/postponed_actions.js.map +1 -1
  4. package/dist/cjs/helpers/tasks.d.ts +12 -0
  5. package/dist/cjs/helpers/tasks.js +62 -0
  6. package/dist/cjs/helpers/tasks.js.map +1 -0
  7. package/dist/cjs/helpers/tasks_helpers.d.ts +2 -1
  8. package/dist/cjs/helpers/tasks_helpers.js +1 -0
  9. package/dist/cjs/helpers/tasks_helpers.js.map +1 -1
  10. package/dist/cjs/managers/cacche_manager2.d.ts +18 -0
  11. package/dist/cjs/managers/cacche_manager2.js +41 -0
  12. package/dist/cjs/managers/cacche_manager2.js.map +1 -0
  13. package/dist/cjs/managers/socket_manager.js +245 -0
  14. package/dist/cjs/managers/socket_manager.js.map +1 -0
  15. package/dist/esm/helpers/postponed_actions.d.ts +7 -17
  16. package/dist/esm/helpers/postponed_actions.js +12 -12
  17. package/dist/esm/helpers/postponed_actions.js.map +1 -1
  18. package/dist/esm/helpers/tasks.d.ts +12 -0
  19. package/dist/esm/helpers/tasks.js +58 -0
  20. package/dist/esm/helpers/tasks.js.map +1 -0
  21. package/dist/esm/helpers/tasks_helpers.d.ts +2 -1
  22. package/dist/esm/helpers/tasks_helpers.js +1 -0
  23. package/dist/esm/helpers/tasks_helpers.js.map +1 -1
  24. package/dist/esm/managers/cacche_manager2.d.ts +18 -0
  25. package/dist/esm/managers/cacche_manager2.js +37 -0
  26. package/dist/esm/managers/cacche_manager2.js.map +1 -0
  27. package/dist/esm/managers/socket_manager.js +243 -0
  28. package/dist/esm/managers/socket_manager.js.map +1 -0
  29. package/package.json +1 -1
  30. package/dist/cjs/helpers/rabbitmq_helpers.d.ts +0 -64
  31. package/dist/cjs/helpers/rabbitmq_helpers.js +0 -193
  32. package/dist/cjs/helpers/rabbitmq_helpers.js.map +0 -1
  33. package/dist/esm/helpers/rabbitmq_helpers.d.ts +0 -64
  34. package/dist/esm/helpers/rabbitmq_helpers.js +0 -186
  35. package/dist/esm/helpers/rabbitmq_helpers.js.map +0 -1
  36. package/dist/helpers/boards_helpers.js +0 -62
  37. package/dist/helpers/email_helpers.js +0 -153
  38. package/dist/helpers/firebase_helpers.js +0 -601
  39. package/dist/helpers/global_helpers.js +0 -147
  40. package/dist/helpers/index.js +0 -13
  41. package/dist/helpers/location_helpers.js +0 -15
  42. package/dist/helpers/login_helpers.js +0 -18
  43. package/dist/helpers/notification_helpers.js +0 -248
  44. package/dist/helpers/phone_number_helpers.js +0 -96
  45. package/dist/helpers/postponed_actions.js +0 -358
  46. package/dist/helpers/redis/helpers.js +0 -215
  47. package/dist/helpers/redis/index.js +0 -4
  48. package/dist/helpers/redis/initialize.js +0 -139
  49. package/dist/helpers/redis/keys.js +0 -23
  50. package/dist/helpers/redis/snapshot.js +0 -166
  51. package/dist/helpers/start.js +0 -83
  52. package/dist/helpers/tasks_helpers.js +0 -139
  53. package/dist/helpers/time_helpers.js +0 -167
  54. package/dist/index.js +0 -5
  55. package/dist/managers/cache_manager.js +0 -37
  56. package/dist/managers/index.js +0 -4
  57. package/dist/managers/logger_manager.js +0 -68
  58. package/dist/managers/rabbitmq_manager.js +0 -182
  59. package/dist/managers/translation_manager.js +0 -38
  60. package/dist/middlewares/auth_mw.js +0 -50
  61. package/dist/middlewares/error_handling.js +0 -20
  62. package/dist/middlewares/global_mw.js +0 -119
  63. package/dist/middlewares/index.js +0 -4
  64. package/dist/middlewares/trim_mw.js +0 -7
  65. package/dist/test.js +0 -1
  66. package/dist/types/enums/global.js +0 -8
  67. package/dist/types/enums/index.js +0 -1
  68. package/dist/types/helpers/boards_helpers.d.ts +0 -10
  69. package/dist/types/helpers/email_helpers.d.ts +0 -12
  70. package/dist/types/helpers/firebase_helpers.d.ts +0 -56
  71. package/dist/types/helpers/global_helpers.d.ts +0 -16
  72. package/dist/types/helpers/index.d.ts +0 -13
  73. package/dist/types/helpers/location_helpers.d.ts +0 -3
  74. package/dist/types/helpers/login_helpers.d.ts +0 -4
  75. package/dist/types/helpers/notification_helpers.d.ts +0 -11
  76. package/dist/types/helpers/phone_number_helpers.d.ts +0 -19
  77. package/dist/types/helpers/postponed_actions.d.ts +0 -113
  78. package/dist/types/helpers/redis/helpers.d.ts +0 -11
  79. package/dist/types/helpers/redis/index.d.ts +0 -4
  80. package/dist/types/helpers/redis/initialize.d.ts +0 -6
  81. package/dist/types/helpers/redis/keys.d.ts +0 -5
  82. package/dist/types/helpers/redis/snapshot.d.ts +0 -2
  83. package/dist/types/helpers/start.d.ts +0 -4
  84. package/dist/types/helpers/tasks_helpers.d.ts +0 -25
  85. package/dist/types/helpers/time_helpers.d.ts +0 -40
  86. package/dist/types/index.d.ts +0 -5
  87. package/dist/types/index.js +0 -3
  88. package/dist/types/interfaces/index.js +0 -2
  89. package/dist/types/managers/cache_manager.d.ts +0 -12
  90. package/dist/types/managers/index.d.ts +0 -4
  91. package/dist/types/managers/logger_manager.d.ts +0 -14
  92. package/dist/types/managers/rabbitmq_manager.d.ts +0 -60
  93. package/dist/types/managers/translation_manager.d.ts +0 -14
  94. package/dist/types/middlewares/auth_mw.d.ts +0 -4
  95. package/dist/types/middlewares/error_handling.d.ts +0 -11
  96. package/dist/types/middlewares/global_mw.d.ts +0 -5
  97. package/dist/types/middlewares/index.d.ts +0 -4
  98. package/dist/types/middlewares/trim_mw.d.ts +0 -2
  99. package/dist/types/test.d.ts +0 -0
  100. package/dist/types/types/enums/global.d.ts +0 -9
  101. package/dist/types/types/enums/index.d.ts +0 -1
  102. package/dist/types/types/firebase_types.js +0 -1
  103. package/dist/types/types/global.js +0 -1
  104. package/dist/types/types/index.d.ts +0 -3
  105. package/dist/types/types/index.js +0 -2
  106. package/dist/types/types/interfaces/email.d.ts +0 -33
  107. package/dist/types/types/interfaces/global.d.ts +0 -27
  108. package/dist/types/types/interfaces/index.d.ts +0 -2
  109. package/dist/types/types/types/firebase_types.d.ts +0 -50
  110. package/dist/types/types/types/global.d.ts +0 -17
  111. package/dist/types/types/types/index.d.ts +0 -2
  112. /package/dist/{types/interfaces/email.js → cjs/managers/socket_manager.d.ts} +0 -0
  113. /package/dist/{types/interfaces/global.js → esm/managers/socket_manager.d.ts} +0 -0
@@ -0,0 +1,243 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { io } from "socket.io-client";
11
+ import { get_custom_fb_token, init_env_variables } from "../helpers";
12
+ import { logger } from "./logger_manager";
13
+ class SocketService {
14
+ constructor() {
15
+ this.socket = null;
16
+ this.connect_callbacks = [];
17
+ this.disconnect_callbacks = [];
18
+ this.auth_token = null;
19
+ }
20
+ /// Initialize the socket connection
21
+ init_socket() {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ if (!this.socket) {
24
+ const token = yield get_custom_fb_token();
25
+ this.auth_token = token;
26
+ const { mode } = init_env_variables(["mode"]) || {};
27
+ const is_qa = mode === "qa";
28
+ const socket_server_url = is_qa ? "https://nx-api.xyz" : "https://nx-api.info";
29
+ this.socket = io(socket_server_url, {
30
+ path: "/api/data-socket/connect",
31
+ auth: (cb) => {
32
+ const auth_payload = {};
33
+ if (this.auth_token)
34
+ auth_payload.token = this.auth_token;
35
+ cb(auth_payload);
36
+ },
37
+ transports: ["websocket"],
38
+ reconnection: true,
39
+ reconnectionAttempts: 30,
40
+ reconnectionDelay: 2 * 1000,
41
+ });
42
+ this.socket.on("connect", () => {
43
+ var _a, _b;
44
+ logger.log(`🟢 Socket connected: ${(_a = this.socket) === null || _a === void 0 ? void 0 : _a.id} (recovered - ${(_b = this.socket) === null || _b === void 0 ? void 0 : _b.recovered})`);
45
+ this.connect_callbacks.forEach((cb) => cb());
46
+ });
47
+ this.socket.on("disconnect", (reason) => {
48
+ logger.log("Socket disconnected: " + reason);
49
+ this.disconnect_callbacks.forEach((cb) => cb());
50
+ });
51
+ this.socket.on("connect_error", (error) => {
52
+ console.error("Socket connection error:", error);
53
+ });
54
+ }
55
+ });
56
+ }
57
+ static get_instance() {
58
+ if (!SocketService.instance) {
59
+ SocketService.instance = new SocketService();
60
+ }
61
+ return SocketService.instance;
62
+ }
63
+ /// get socket instance
64
+ get_socket_instance() {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ if (!this.socket) {
67
+ yield this.init_socket();
68
+ }
69
+ if (!this.socket) {
70
+ throw new Error("Socket not initialized");
71
+ }
72
+ if (!this.socket.connected) {
73
+ this.socket.connect();
74
+ }
75
+ return this.socket;
76
+ });
77
+ }
78
+ on_connect(callback) {
79
+ var _a;
80
+ if (!this.connect_callbacks.includes(callback)) {
81
+ this.connect_callbacks.push(callback);
82
+ }
83
+ if ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) {
84
+ callback();
85
+ }
86
+ return () => this.off_connect(callback);
87
+ }
88
+ off_connect(callback) {
89
+ this.connect_callbacks = this.connect_callbacks.filter((cb) => cb !== callback);
90
+ }
91
+ on_disconnect(callback) {
92
+ if (!this.disconnect_callbacks.includes(callback)) {
93
+ this.disconnect_callbacks.push(callback);
94
+ }
95
+ if (this.socket && !this.socket.connected) {
96
+ callback();
97
+ }
98
+ return () => this.off_disconnect(callback);
99
+ }
100
+ off_disconnect(callback) {
101
+ this.disconnect_callbacks = this.disconnect_callbacks.filter((cb) => cb !== callback);
102
+ }
103
+ is_connected() {
104
+ var _a;
105
+ return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.connected) || false;
106
+ }
107
+ set_auth_token(token) {
108
+ this.auth_token = token;
109
+ if (this.socket) {
110
+ this.socket.connect();
111
+ }
112
+ }
113
+ disconnect_socket() {
114
+ if (this.socket) {
115
+ logger.log("Manually disconnecting socket: " + this.socket.id);
116
+ this.socket.io.engine.close();
117
+ }
118
+ }
119
+ /// subscribe to collections
120
+ subscribe_to_collections(config) {
121
+ return __awaiter(this, void 0, void 0, function* () {
122
+ return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
123
+ if (config.length === 0) {
124
+ resolve(() => { });
125
+ }
126
+ // Obtain socket instance but delay the first connection until listeners are attached.
127
+ const s = yield this.get_socket_instance();
128
+ const collection_names = config.map((c) => c.collection_name);
129
+ const event_handlers = [];
130
+ config.forEach((configuration) => {
131
+ const { collection_name, on_add, on_first_time, on_modify, on_remove, extra_parsers } = configuration;
132
+ // Before attaching, make sure the specific handler is NOT already registered.
133
+ const attach = (event_name, handler) => {
134
+ if (!handler) {
135
+ return;
136
+ }
137
+ this.socket.off(event_name); // Remove all previous listeners
138
+ this.socket.on(event_name, handler);
139
+ event_handlers.push({ event_name, handler });
140
+ };
141
+ attach(`initial:${collection_name}`, on_first_time);
142
+ attach(`add:${collection_name}`, on_add);
143
+ attach(`update:${collection_name}`, on_modify);
144
+ attach(`delete:${collection_name}`, on_remove);
145
+ extra_parsers === null || extra_parsers === void 0 ? void 0 : extra_parsers.forEach((parsers) => {
146
+ const { on_add: extra_on_add, on_first_time: extra_on_first_time, on_modify: extra_on_modify, on_remove: extra_on_remove, } = parsers;
147
+ attach(`initial:${collection_name}`, extra_on_first_time);
148
+ attach(`add:${collection_name}`, extra_on_add);
149
+ attach(`update:${collection_name}`, extra_on_modify);
150
+ attach(`delete:${collection_name}`, extra_on_remove);
151
+ });
152
+ });
153
+ s.emit("subscribe_collections", collection_names, (callback) => {
154
+ if (callback.success) {
155
+ logger.log(`Successfully subscribed to: ${collection_names.join(", ")}`);
156
+ }
157
+ else {
158
+ console.error(`Failed to subscribe to ${collection_names.join(", ")}: ${callback.message}`);
159
+ }
160
+ });
161
+ resolve(() => {
162
+ logger.log(`Cleaning up subscriptions for: ${collection_names.join(", ")}`);
163
+ s.emit("unsubscribe_collections", collection_names);
164
+ event_handlers.forEach((eh) => {
165
+ s.off(eh.event_name, eh.handler);
166
+ });
167
+ });
168
+ }));
169
+ });
170
+ }
171
+ /// set data
172
+ set_data(payload) {
173
+ return __awaiter(this, void 0, void 0, function* () {
174
+ const s = yield this.get_socket_instance();
175
+ return new Promise((resolve, reject) => {
176
+ s.emit("set_data", payload, (callback) => {
177
+ if (callback.success) {
178
+ logger.log("Data saved successfully:", payload);
179
+ logger.log("ack", callback);
180
+ resolve(callback);
181
+ }
182
+ else {
183
+ reject(new Error(callback.message || "Save operation failed"));
184
+ }
185
+ });
186
+ });
187
+ });
188
+ }
189
+ /// get data
190
+ get_collection_data(payload) {
191
+ this.get_socket_instance()
192
+ .then((s) => {
193
+ s.emit("get_data", { collection_name: payload.collection_name }, (socket_callback) => {
194
+ if (socket_callback.success && socket_callback.data) {
195
+ payload.callback(socket_callback.data);
196
+ }
197
+ else {
198
+ payload.callback(payload.default_value);
199
+ }
200
+ });
201
+ })
202
+ .catch(() => {
203
+ payload.callback(payload.default_value);
204
+ });
205
+ }
206
+ get_document_data(payload) {
207
+ this.get_socket_instance()
208
+ .then((s) => {
209
+ s.emit("get_data", { collection_name: payload.collection_name, key: payload.key }, (socket_callback) => {
210
+ if (socket_callback.success && socket_callback.data) {
211
+ payload.callback(socket_callback.data);
212
+ }
213
+ else {
214
+ payload.callback(payload.default_value);
215
+ }
216
+ });
217
+ })
218
+ .catch(() => {
219
+ payload.callback(payload.default_value);
220
+ });
221
+ }
222
+ /// delete data
223
+ delete_data(payload) {
224
+ return __awaiter(this, void 0, void 0, function* () {
225
+ const s = yield this.get_socket_instance();
226
+ return new Promise((resolve, reject) => {
227
+ s.emit("delete_data", payload, (callback) => {
228
+ if (callback.success) {
229
+ logger.log("Data deleted successfully:", payload);
230
+ logger.log("delete ack", callback);
231
+ resolve(callback);
232
+ }
233
+ else {
234
+ reject(new Error(callback.message || "Delete operation failed"));
235
+ }
236
+ });
237
+ });
238
+ });
239
+ }
240
+ }
241
+ // Export a singleton instance of the service
242
+ // export const socket_manager = SocketService.get_instance();
243
+ //# sourceMappingURL=socket_manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket_manager.js","sourceRoot":"","sources":["../../../src/managers/socket_manager.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,EAAE,EAAU,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAkC,MAAM,YAAY,CAAC;AACrG,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQ1C,MAAM,aAAa;IAMf;QAJQ,WAAM,GAAkC,IAAI,CAAC;QAC7C,sBAAiB,GAAsB,EAAE,CAAC;QAC1C,yBAAoB,GAAsB,EAAE,CAAC;QAC7C,eAAU,GAAkB,IAAI,CAAC;IAClB,CAAC;IAExB,oCAAoC;IACtB,WAAW;;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,KAAK,GAAG,MAAM,mBAAmB,EAAE,CAAC;gBAC1C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;gBAC5B,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC;gBAC/E,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,iBAAiB,EAAE;oBAChC,IAAI,EAAE,0BAA0B;oBAChC,IAAI,EAAE,CAAC,EAAO,EAAE,EAAE;wBACd,MAAM,YAAY,GAA2B,EAAE,CAAC;wBAChD,IAAI,IAAI,CAAC,UAAU;4BAAE,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;wBAC1D,EAAE,CAAC,YAAY,CAAC,CAAC;oBACrB,CAAC;oBACD,UAAU,EAAE,CAAC,WAAW,CAAC;oBACzB,YAAY,EAAE,IAAI;oBAClB,oBAAoB,EAAE,EAAE;oBACxB,iBAAiB,EAAE,CAAC,GAAG,IAAI;iBAC9B,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;;oBAC3B,MAAM,CAAC,GAAG,CAAC,wBAAwB,MAAA,IAAI,CAAC,MAAM,0CAAE,EAAE,iBAAiB,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,GAAG,CAAC,CAAC;oBAC9F,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjD,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAA+B,EAAE,EAAE;oBAC7D,MAAM,CAAC,GAAG,CAAC,uBAAuB,GAAG,MAAM,CAAC,CAAC;oBAC7C,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,KAAY,EAAE,EAAE;oBAC7C,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;KAAA;IAEM,MAAM,CAAC,YAAY;QACtB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC1B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,uBAAuB;IACV,mBAAmB;;YAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;KAAA;IAEM,UAAU,CAAC,QAAoB;;QAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,EAAE,CAAC;YACzB,QAAQ,EAAE,CAAC;QACf,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAEM,WAAW,CAAC,QAAoB;QACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IACpF,CAAC;IAEM,aAAa,CAAC,QAAoB;QACrC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,QAAQ,EAAE,CAAC;QACf,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAEM,cAAc,CAAC,QAAoB;QACtC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IAC1F,CAAC;IAEM,YAAY;;QACf,OAAO,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,KAAI,KAAK,CAAC;IAC3C,CAAC;IAEM,cAAc,CAAC,KAAa;QAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;IACL,CAAC;IAEM,iBAAiB;QACpB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,iCAAiC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC;IACL,CAAC;IAED,4BAA4B;IACf,wBAAwB,CAAC,MAA0B;;YAC5D,OAAO,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,EAAE;gBACjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACtB,CAAC;gBACD,sFAAsF;gBACtF,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3C,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;gBAE9D,MAAM,cAAc,GAA+D,EAAE,CAAC;gBAEtF,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;oBAC7B,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;oBAEtG,8EAA8E;oBAC9E,MAAM,MAAM,GAAG,CAAC,UAAkB,EAAE,OAAuC,EAAE,EAAE;wBAC3E,IAAI,CAAC,OAAO,EAAE,CAAC;4BACX,OAAO;wBACX,CAAC;wBACD,IAAI,CAAC,MAAO,CAAC,GAAG,CAAC,UAAiB,CAAC,CAAC,CAAC,gCAAgC;wBACrE,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,UAAiB,EAAE,OAAO,CAAC,CAAC;wBAC5C,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;oBACjD,CAAC,CAAC;oBAEF,MAAM,CAAC,WAAW,eAAe,EAAE,EAAE,aAAa,CAAC,CAAC;oBACpD,MAAM,CAAC,OAAO,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC;oBACzC,MAAM,CAAC,UAAU,eAAe,EAAE,EAAE,SAAS,CAAC,CAAC;oBAC/C,MAAM,CAAC,UAAU,eAAe,EAAE,EAAE,SAAS,CAAC,CAAC;oBAE/C,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC/B,MAAM,EACF,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,mBAAmB,EAClC,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,eAAe,GAC7B,GAAG,OAAO,CAAC;wBACZ,MAAM,CAAC,WAAW,eAAe,EAAE,EAAE,mBAAmB,CAAC,CAAC;wBAC1D,MAAM,CAAC,OAAO,eAAe,EAAE,EAAE,YAAY,CAAC,CAAC;wBAC/C,MAAM,CAAC,UAAU,eAAe,EAAE,EAAE,eAAe,CAAC,CAAC;wBACrD,MAAM,CAAC,UAAU,eAAe,EAAE,EAAE,eAAe,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBAEH,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,gBAAgB,EAAE,CAAC,QAAgC,EAAE,EAAE;oBACnF,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,CAAC,GAAG,CAAC,+BAA+B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC7E,CAAC;yBAAM,CAAC;wBACJ,OAAO,CAAC,KAAK,CAAC,0BAA0B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;oBAChG,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,EAAE;oBACT,MAAM,CAAC,GAAG,CAAC,kCAAkC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC5E,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;oBACpD,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;wBAC1B,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;oBACrC,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;YACP,CAAC,CAAA,CAAC,CAAC;QACP,CAAC;KAAA;IAED,YAAY;IACC,QAAQ,CACjB,OAAiD;;YAEjD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,QAAgC,EAAE,EAAE;oBAC7D,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;wBAChD,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;wBAC5B,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC,CAAC;oBACnE,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAED,YAAY;IACL,mBAAmB,CAAI,OAAuC;QACjE,IAAI,CAAC,mBAAmB,EAAE;aACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACR,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,eAAuC,EAAE,EAAE;gBACzG,IAAI,eAAe,CAAC,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;oBAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAS,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACR,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACX,CAAC;IAEM,iBAAiB,CAAI,OAA0B;QAClD,IAAI,CAAC,mBAAmB,EAAE;aACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACR,CAAC,CAAC,IAAI,CACF,UAAU,EACV,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAC9D,CAAC,eAAuC,EAAE,EAAE;gBACxC,IAAI,eAAe,CAAC,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;oBAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAS,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC,CACJ,CAAC;QACN,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACR,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACX,CAAC;IAED,eAAe;IACF,WAAW,CAAC,OAAiD;;YACtE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,QAAgC,EAAE,EAAE;oBAChE,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;wBAClD,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;wBACnC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,IAAI,yBAAyB,CAAC,CAAC,CAAC;oBACrE,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;CACJ;AAED,6CAA6C;AAC7C,8DAA8D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akeyless-server-commons",
3
- "version": "1.0.205",
3
+ "version": "1.0.207",
4
4
  "scripts": {
5
5
  "build:cjs": "tsc --project tsconfig.cjs.json",
6
6
  "build:esm": "tsc --project tsconfig.esm.json",
@@ -1,64 +0,0 @@
1
- export type JsonValue = null | boolean | number | string | JsonValue[] | {
2
- [key: string]: JsonValue;
3
- };
4
- export type EventHeaderValue = string | number | boolean;
5
- export interface RabbitEvent<T extends JsonValue = JsonValue> {
6
- body: T;
7
- event_id?: string;
8
- created_at?: string;
9
- redelivered: boolean;
10
- headers: Record<string, unknown>;
11
- }
12
- export interface PushEventOptions {
13
- /** RabbitMQ message time-to-live, in seconds. */
14
- ttl_seconds?: number;
15
- headers?: Record<string, EventHeaderValue>;
16
- }
17
- export interface SubscribeOptions {
18
- /** Requeue messages when the handler throws or rejects. Defaults to true. */
19
- requeue_on_error?: boolean;
20
- }
21
- export interface Subscription {
22
- queue_name: string;
23
- consumer_tag: string;
24
- cancel(): Promise<void>;
25
- }
26
- export type EventHandler<T extends JsonValue = JsonValue> = (event: RabbitEvent<T>) => void | Promise<void>;
27
- /**
28
- * JSON event transport backed by durable fanout exchanges and durable queues.
29
- *
30
- * Each channel name maps to an exchange. Each distinct subscriber name gets a
31
- * queue and therefore its own copy of every event. Instances sharing the same
32
- * subscriber name compete for work, which supports horizontal scaling.
33
- */
34
- export declare class RabbitMQHelper {
35
- readonly url: string;
36
- readonly prefetch_count: number;
37
- private connection;
38
- private channel;
39
- private connecting;
40
- constructor(options?: {
41
- url?: string;
42
- prefetch_count?: number;
43
- });
44
- connect(): Promise<void>;
45
- close(): Promise<void>;
46
- push_event<T extends JsonValue>(channel_name: string, payload: T, options?: PushEventOptions): Promise<string>;
47
- private subscriptions;
48
- subscribe_for_channel<T extends JsonValue>(channel_name: string, subscriber_name: string, handler: EventHandler<T>, options?: SubscribeOptions): Promise<Subscription>;
49
- cancel_subscriptions(): Promise<void>;
50
- pull_and_delete<T extends JsonValue>(channel_name: string, subscriber_name: string): Promise<RabbitEvent<T> | undefined>;
51
- /**
52
- * Diagnostic peek implemented as get + nack + requeue.
53
- * It is not a reliable queue browser: the same event can repeat or move.
54
- */
55
- pull_and_leave<T extends JsonValue>(channel_name: string, subscriber_name: string): Promise<RabbitEvent<T> | undefined>;
56
- private open_connection;
57
- private get_channel;
58
- private declare_exchange;
59
- private declare_subscription;
60
- private handle_message;
61
- private to_event;
62
- private validate_name;
63
- }
64
- export declare const rabbitmq: RabbitMQHelper;
@@ -1,193 +0,0 @@
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.rabbitmq = exports.RabbitMQHelper = void 0;
7
- const amqplib_1 = __importDefault(require("amqplib"));
8
- const node_crypto_1 = require("node:crypto");
9
- const logger_manager_1 = require("../managers/logger_manager");
10
- const SAFE_NAME = /^[A-Za-z0-9_.:-]{1,120}$/;
11
- /**
12
- * JSON event transport backed by durable fanout exchanges and durable queues.
13
- *
14
- * Each channel name maps to an exchange. Each distinct subscriber name gets a
15
- * queue and therefore its own copy of every event. Instances sharing the same
16
- * subscriber name compete for work, which supports horizontal scaling.
17
- */
18
- class RabbitMQHelper {
19
- url;
20
- prefetch_count;
21
- connection;
22
- channel;
23
- connecting;
24
- constructor(options = {}) {
25
- this.url = process.env.RABBITMQ_URL ?? "";
26
- if (!this.url) {
27
- logger_manager_1.logger.warn("Missing ENV parameter RABBITMQ_URL");
28
- }
29
- this.prefetch_count = options.prefetch_count ?? 10;
30
- if (!Number.isInteger(this.prefetch_count) || this.prefetch_count <= 0) {
31
- throw new Error("prefetch_count must be a positive integer");
32
- }
33
- }
34
- async connect() {
35
- if (this.connection && this.channel)
36
- return;
37
- this.connecting ??= this.open_connection().finally(() => {
38
- this.connecting = undefined;
39
- });
40
- await this.connecting;
41
- }
42
- async close() {
43
- const channel = this.channel;
44
- const connection = this.connection;
45
- this.channel = undefined;
46
- this.connection = undefined;
47
- if (channel)
48
- await channel.close().catch(() => undefined);
49
- if (connection)
50
- await connection.close().catch(() => undefined);
51
- }
52
- async push_event(channel_name, payload, options = {}) {
53
- const channel = await this.declare_exchange(channel_name);
54
- const { ttl_seconds, headers = {} } = options;
55
- if (ttl_seconds !== undefined && (!Number.isFinite(ttl_seconds) || ttl_seconds <= 0)) {
56
- throw new Error("ttl_seconds must be a finite number greater than zero");
57
- }
58
- let encoded;
59
- try {
60
- encoded = JSON.stringify(payload);
61
- }
62
- catch (error) {
63
- throw new Error("payload must be JSON serializable", { cause: error });
64
- }
65
- if (encoded === undefined)
66
- throw new Error("payload must be JSON serializable");
67
- const event_id = (0, node_crypto_1.randomUUID)();
68
- const created_at = new Date().toISOString();
69
- channel.publish(channel_name, "", Buffer.from(encoded, "utf8"), {
70
- contentType: "application/json",
71
- contentEncoding: "utf-8",
72
- persistent: true,
73
- messageId: event_id,
74
- timestamp: Math.floor(Date.now() / 1_000),
75
- ...(ttl_seconds === undefined ? {} : { expiration: String(Math.round(ttl_seconds * 1_000)) }),
76
- headers: { created_at, ...headers },
77
- });
78
- await channel.waitForConfirms();
79
- return event_id;
80
- }
81
- subscriptions = [];
82
- async subscribe_for_channel(channel_name, subscriber_name, handler, options = {}) {
83
- const { channel, queue_name } = await this.declare_subscription(channel_name, subscriber_name);
84
- const requeue_on_error = options.requeue_on_error ?? true;
85
- const reply = await channel.consume(queue_name, (message) => {
86
- if (!message)
87
- return;
88
- void this.handle_message(channel, message, handler, requeue_on_error);
89
- }, { noAck: false });
90
- const subscription = {
91
- queue_name,
92
- consumer_tag: reply.consumerTag,
93
- cancel: async () => {
94
- await channel.cancel(reply.consumerTag);
95
- },
96
- };
97
- this.subscriptions.push(subscription);
98
- return subscription;
99
- }
100
- async cancel_subscriptions() {
101
- await Promise.all(this.subscriptions.map((subscription) => subscription.cancel()));
102
- }
103
- async pull_and_delete(channel_name, subscriber_name) {
104
- const { channel, queue_name } = await this.declare_subscription(channel_name, subscriber_name);
105
- const message = await channel.get(queue_name, { noAck: false });
106
- if (!message)
107
- return undefined;
108
- const event = this.to_event(message);
109
- channel.ack(message);
110
- return event;
111
- }
112
- /**
113
- * Diagnostic peek implemented as get + nack + requeue.
114
- * It is not a reliable queue browser: the same event can repeat or move.
115
- */
116
- async pull_and_leave(channel_name, subscriber_name) {
117
- const { channel, queue_name } = await this.declare_subscription(channel_name, subscriber_name);
118
- const message = await channel.get(queue_name, { noAck: false });
119
- if (!message)
120
- return undefined;
121
- const event = this.to_event(message);
122
- channel.nack(message, false, true);
123
- return event;
124
- }
125
- async open_connection() {
126
- const connection_url = new URL(this.url);
127
- if (!connection_url.searchParams.has("heartbeat")) {
128
- connection_url.searchParams.set("heartbeat", "30");
129
- }
130
- const connection = await amqplib_1.default.connect(connection_url.toString(), { timeout: 30_000 });
131
- const channel = await connection.createConfirmChannel();
132
- await channel.prefetch(this.prefetch_count);
133
- this.connection = connection;
134
- this.channel = channel;
135
- }
136
- async get_channel() {
137
- await this.connect();
138
- if (!this.channel)
139
- throw new Error("RabbitMQ channel is not available");
140
- return this.channel;
141
- }
142
- async declare_exchange(channel_name) {
143
- this.validate_name(channel_name, "channel_name");
144
- const channel = await this.get_channel();
145
- await channel.assertExchange(channel_name, "fanout", { durable: true });
146
- return channel;
147
- }
148
- async declare_subscription(channel_name, subscriber_name) {
149
- this.validate_name(channel_name, "channel_name");
150
- this.validate_name(subscriber_name, "subscriber_name");
151
- const channel = await this.declare_exchange(channel_name);
152
- const queue_name = `${channel_name}.${subscriber_name}`;
153
- await channel.assertQueue(queue_name, { durable: true });
154
- await channel.bindQueue(queue_name, channel_name, "");
155
- return { channel, queue_name };
156
- }
157
- async handle_message(channel, message, handler, requeue_on_error) {
158
- try {
159
- await handler(this.to_event(message));
160
- channel.ack(message);
161
- }
162
- catch (error) {
163
- console.error(`RabbitMQ handler failed for ${message.properties.messageId ?? "unknown"}`, error);
164
- channel.nack(message, false, requeue_on_error);
165
- }
166
- }
167
- to_event(message) {
168
- let body;
169
- try {
170
- body = JSON.parse(message.content.toString("utf8"));
171
- }
172
- catch (error) {
173
- throw new Error("received a message that is not valid JSON", { cause: error });
174
- }
175
- const headers = { ...message.properties.headers };
176
- const created_at = headers.created_at;
177
- return {
178
- body,
179
- redelivered: message.fields.redelivered,
180
- headers,
181
- ...(message.properties.messageId ? { event_id: message.properties.messageId } : {}),
182
- ...(typeof created_at === "string" ? { created_at } : {}),
183
- };
184
- }
185
- validate_name(value, parameter) {
186
- if (!SAFE_NAME.test(value)) {
187
- throw new Error(`${parameter} must be 1-120 characters using letters, digits, _, ., :, or -`);
188
- }
189
- }
190
- }
191
- exports.RabbitMQHelper = RabbitMQHelper;
192
- exports.rabbitmq = new RabbitMQHelper();
193
- //# sourceMappingURL=rabbitmq_helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rabbitmq_helpers.js","sourceRoot":"","sources":["../../../src/helpers/rabbitmq_helpers.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- export type JsonValue = null | boolean | number | string | JsonValue[] | {
2
- [key: string]: JsonValue;
3
- };
4
- export type EventHeaderValue = string | number | boolean;
5
- export interface RabbitEvent<T extends JsonValue = JsonValue> {
6
- body: T;
7
- event_id?: string;
8
- created_at?: string;
9
- redelivered: boolean;
10
- headers: Record<string, unknown>;
11
- }
12
- export interface PushEventOptions {
13
- /** RabbitMQ message time-to-live, in seconds. */
14
- ttl_seconds?: number;
15
- headers?: Record<string, EventHeaderValue>;
16
- }
17
- export interface SubscribeOptions {
18
- /** Requeue messages when the handler throws or rejects. Defaults to true. */
19
- requeue_on_error?: boolean;
20
- }
21
- export interface Subscription {
22
- queue_name: string;
23
- consumer_tag: string;
24
- cancel(): Promise<void>;
25
- }
26
- export type EventHandler<T extends JsonValue = JsonValue> = (event: RabbitEvent<T>) => void | Promise<void>;
27
- /**
28
- * JSON event transport backed by durable fanout exchanges and durable queues.
29
- *
30
- * Each channel name maps to an exchange. Each distinct subscriber name gets a
31
- * queue and therefore its own copy of every event. Instances sharing the same
32
- * subscriber name compete for work, which supports horizontal scaling.
33
- */
34
- export declare class RabbitMQHelper {
35
- readonly url: string;
36
- readonly prefetch_count: number;
37
- private connection;
38
- private channel;
39
- private connecting;
40
- constructor(options?: {
41
- url?: string;
42
- prefetch_count?: number;
43
- });
44
- connect(): Promise<void>;
45
- close(): Promise<void>;
46
- push_event<T extends JsonValue>(channel_name: string, payload: T, options?: PushEventOptions): Promise<string>;
47
- private subscriptions;
48
- subscribe_for_channel<T extends JsonValue>(channel_name: string, subscriber_name: string, handler: EventHandler<T>, options?: SubscribeOptions): Promise<Subscription>;
49
- cancel_subscriptions(): Promise<void>;
50
- pull_and_delete<T extends JsonValue>(channel_name: string, subscriber_name: string): Promise<RabbitEvent<T> | undefined>;
51
- /**
52
- * Diagnostic peek implemented as get + nack + requeue.
53
- * It is not a reliable queue browser: the same event can repeat or move.
54
- */
55
- pull_and_leave<T extends JsonValue>(channel_name: string, subscriber_name: string): Promise<RabbitEvent<T> | undefined>;
56
- private open_connection;
57
- private get_channel;
58
- private declare_exchange;
59
- private declare_subscription;
60
- private handle_message;
61
- private to_event;
62
- private validate_name;
63
- }
64
- export declare const rabbitmq: RabbitMQHelper;