@bsb/base 9.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.
Files changed (182) hide show
  1. package/LICENSE +665 -0
  2. package/LICENSE.commercial +32 -0
  3. package/README.md +263 -0
  4. package/bsb-plugin.json +62 -0
  5. package/lib/base/BSBConfig.d.ts +130 -0
  6. package/lib/base/BSBConfig.js +95 -0
  7. package/lib/base/BSBConfig.js.map +1 -0
  8. package/lib/base/BSBEvents.d.ts +207 -0
  9. package/lib/base/BSBEvents.js +101 -0
  10. package/lib/base/BSBEvents.js.map +1 -0
  11. package/lib/base/BSBObservable.d.ts +178 -0
  12. package/lib/base/BSBObservable.js +91 -0
  13. package/lib/base/BSBObservable.js.map +1 -0
  14. package/lib/base/BSBService.d.ts +277 -0
  15. package/lib/base/BSBService.js +366 -0
  16. package/lib/base/BSBService.js.map +1 -0
  17. package/lib/base/BSBServiceClient.d.ts +135 -0
  18. package/lib/base/BSBServiceClient.js +130 -0
  19. package/lib/base/BSBServiceClient.js.map +1 -0
  20. package/lib/base/EventValidator.d.ts +137 -0
  21. package/lib/base/EventValidator.js +210 -0
  22. package/lib/base/EventValidator.js.map +1 -0
  23. package/lib/base/ObservableBackend.d.ts +281 -0
  24. package/lib/base/ObservableBackend.js +515 -0
  25. package/lib/base/ObservableBackend.js.map +1 -0
  26. package/lib/base/PluginConfig.d.ts +196 -0
  27. package/lib/base/PluginConfig.js +96 -0
  28. package/lib/base/PluginConfig.js.map +1 -0
  29. package/lib/base/PluginEvents.d.ts +140 -0
  30. package/lib/base/PluginEvents.js +268 -0
  31. package/lib/base/PluginEvents.js.map +1 -0
  32. package/lib/base/PluginObservable.d.ts +196 -0
  33. package/lib/base/PluginObservable.js +250 -0
  34. package/lib/base/PluginObservable.js.map +1 -0
  35. package/lib/base/ResourceContext.d.ts +70 -0
  36. package/lib/base/ResourceContext.js +54 -0
  37. package/lib/base/ResourceContext.js.map +1 -0
  38. package/lib/base/base.d.ts +264 -0
  39. package/lib/base/base.js +182 -0
  40. package/lib/base/base.js.map +1 -0
  41. package/lib/base/errorMessages.d.ts +56 -0
  42. package/lib/base/errorMessages.js +70 -0
  43. package/lib/base/errorMessages.js.map +1 -0
  44. package/lib/base/factory.d.ts +58 -0
  45. package/lib/base/factory.js +167 -0
  46. package/lib/base/factory.js.map +1 -0
  47. package/lib/base/functions.d.ts +117 -0
  48. package/lib/base/functions.js +152 -0
  49. package/lib/base/functions.js.map +1 -0
  50. package/lib/base/index.d.ts +44 -0
  51. package/lib/base/index.js +64 -0
  52. package/lib/base/index.js.map +1 -0
  53. package/lib/base/logFormatter.d.ts +50 -0
  54. package/lib/base/logFormatter.js +105 -0
  55. package/lib/base/logFormatter.js.map +1 -0
  56. package/lib/base/tools.d.ts +316 -0
  57. package/lib/base/tools.js +666 -0
  58. package/lib/base/tools.js.map +1 -0
  59. package/lib/cli.d.ts +28 -0
  60. package/lib/cli.js +254 -0
  61. package/lib/cli.js.map +1 -0
  62. package/lib/dev.d.ts +27 -0
  63. package/lib/dev.js +200 -0
  64. package/lib/dev.js.map +1 -0
  65. package/lib/index.d.ts +32 -0
  66. package/lib/index.js +49 -0
  67. package/lib/index.js.map +1 -0
  68. package/lib/interfaces/events.d.ts +67 -0
  69. package/lib/interfaces/events.js +44 -0
  70. package/lib/interfaces/events.js.map +1 -0
  71. package/lib/interfaces/index.d.ts +38 -0
  72. package/lib/interfaces/index.js +59 -0
  73. package/lib/interfaces/index.js.map +1 -0
  74. package/lib/interfaces/logging.d.ts +106 -0
  75. package/lib/interfaces/logging.js +39 -0
  76. package/lib/interfaces/logging.js.map +1 -0
  77. package/lib/interfaces/metrics.d.ts +365 -0
  78. package/lib/interfaces/metrics.js +46 -0
  79. package/lib/interfaces/metrics.js.map +1 -0
  80. package/lib/interfaces/observable-types.d.ts +63 -0
  81. package/lib/interfaces/observable-types.js +49 -0
  82. package/lib/interfaces/observable-types.js.map +1 -0
  83. package/lib/interfaces/observable.d.ts +297 -0
  84. package/lib/interfaces/observable.js +29 -0
  85. package/lib/interfaces/observable.js.map +1 -0
  86. package/lib/interfaces/options.d.ts +164 -0
  87. package/lib/interfaces/options.js +56 -0
  88. package/lib/interfaces/options.js.map +1 -0
  89. package/lib/interfaces/plugins.d.ts +143 -0
  90. package/lib/interfaces/plugins.js +45 -0
  91. package/lib/interfaces/plugins.js.map +1 -0
  92. package/lib/interfaces/result.d.ts +129 -0
  93. package/lib/interfaces/result.js +162 -0
  94. package/lib/interfaces/result.js.map +1 -0
  95. package/lib/interfaces/schema-events.d.ts +378 -0
  96. package/lib/interfaces/schema-events.js +247 -0
  97. package/lib/interfaces/schema-events.js.map +1 -0
  98. package/lib/interfaces/schema-types.d.ts +407 -0
  99. package/lib/interfaces/schema-types.js +581 -0
  100. package/lib/interfaces/schema-types.js.map +1 -0
  101. package/lib/interfaces/service.d.ts +48 -0
  102. package/lib/interfaces/service.js +29 -0
  103. package/lib/interfaces/service.js.map +1 -0
  104. package/lib/interfaces/tools.d.ts +65 -0
  105. package/lib/interfaces/tools.js +50 -0
  106. package/lib/interfaces/tools.js.map +1 -0
  107. package/lib/plugins/config-default/index.d.ts +59 -0
  108. package/lib/plugins/config-default/index.js +197 -0
  109. package/lib/plugins/config-default/index.js.map +1 -0
  110. package/lib/plugins/config-default/interfaces.d.ts +92 -0
  111. package/lib/plugins/config-default/interfaces.js +36 -0
  112. package/lib/plugins/config-default/interfaces.js.map +1 -0
  113. package/lib/plugins/events-default/events/broadcast.d.ts +36 -0
  114. package/lib/plugins/events-default/events/broadcast.js +85 -0
  115. package/lib/plugins/events-default/events/broadcast.js.map +1 -0
  116. package/lib/plugins/events-default/events/emit.d.ts +38 -0
  117. package/lib/plugins/events-default/events/emit.js +104 -0
  118. package/lib/plugins/events-default/events/emit.js.map +1 -0
  119. package/lib/plugins/events-default/events/emitAndReturn.d.ts +36 -0
  120. package/lib/plugins/events-default/events/emitAndReturn.js +100 -0
  121. package/lib/plugins/events-default/events/emitAndReturn.js.map +1 -0
  122. package/lib/plugins/events-default/events/emitStreamAndReceiveStream.d.ts +38 -0
  123. package/lib/plugins/events-default/events/emitStreamAndReceiveStream.js +134 -0
  124. package/lib/plugins/events-default/events/emitStreamAndReceiveStream.js.map +1 -0
  125. package/lib/plugins/events-default/events/index.d.ts +30 -0
  126. package/lib/plugins/events-default/events/index.js +38 -0
  127. package/lib/plugins/events-default/events/index.js.map +1 -0
  128. package/lib/plugins/events-default/index.d.ts +57 -0
  129. package/lib/plugins/events-default/index.js +86 -0
  130. package/lib/plugins/events-default/index.js.map +1 -0
  131. package/lib/plugins/observable-default/index.d.ts +43 -0
  132. package/lib/plugins/observable-default/index.js +151 -0
  133. package/lib/plugins/observable-default/index.js.map +1 -0
  134. package/lib/schemas/config-default.json +34 -0
  135. package/lib/schemas/config-default.plugin.json +36 -0
  136. package/lib/schemas/events-default.json +18 -0
  137. package/lib/schemas/events-default.plugin.json +17 -0
  138. package/lib/schemas/observable-default.json +33 -0
  139. package/lib/schemas/observable-default.plugin.json +24 -0
  140. package/lib/scripts/bsb-client-cli.d.ts +21 -0
  141. package/lib/scripts/bsb-client-cli.js +701 -0
  142. package/lib/scripts/bsb-client-cli.js.map +1 -0
  143. package/lib/scripts/bsb-plugin-cli.d.ts +15 -0
  144. package/lib/scripts/bsb-plugin-cli.js +547 -0
  145. package/lib/scripts/bsb-plugin-cli.js.map +1 -0
  146. package/lib/scripts/export-schemas.d.ts +17 -0
  147. package/lib/scripts/export-schemas.js +205 -0
  148. package/lib/scripts/export-schemas.js.map +1 -0
  149. package/lib/scripts/extract-schemas-from-source.d.ts +23 -0
  150. package/lib/scripts/extract-schemas-from-source.js +604 -0
  151. package/lib/scripts/extract-schemas-from-source.js.map +1 -0
  152. package/lib/scripts/generate-client-types.d.ts +22 -0
  153. package/lib/scripts/generate-client-types.js +537 -0
  154. package/lib/scripts/generate-client-types.js.map +1 -0
  155. package/lib/scripts/generate-plugin-json.d.ts +17 -0
  156. package/lib/scripts/generate-plugin-json.js +219 -0
  157. package/lib/scripts/generate-plugin-json.js.map +1 -0
  158. package/lib/serviceBase/config.d.ts +83 -0
  159. package/lib/serviceBase/config.js +236 -0
  160. package/lib/serviceBase/config.js.map +1 -0
  161. package/lib/serviceBase/events.d.ts +91 -0
  162. package/lib/serviceBase/events.js +519 -0
  163. package/lib/serviceBase/events.js.map +1 -0
  164. package/lib/serviceBase/index.d.ts +33 -0
  165. package/lib/serviceBase/index.js +50 -0
  166. package/lib/serviceBase/index.js.map +1 -0
  167. package/lib/serviceBase/observable.d.ts +249 -0
  168. package/lib/serviceBase/observable.js +551 -0
  169. package/lib/serviceBase/observable.js.map +1 -0
  170. package/lib/serviceBase/plugins.d.ts +48 -0
  171. package/lib/serviceBase/plugins.js +184 -0
  172. package/lib/serviceBase/plugins.js.map +1 -0
  173. package/lib/serviceBase/serviceBase.d.ts +228 -0
  174. package/lib/serviceBase/serviceBase.js +420 -0
  175. package/lib/serviceBase/serviceBase.js.map +1 -0
  176. package/lib/serviceBase/services.d.ts +63 -0
  177. package/lib/serviceBase/services.js +346 -0
  178. package/lib/serviceBase/services.js.map +1 -0
  179. package/lib/tests.d.ts +27 -0
  180. package/lib/tests.js +44 -0
  181. package/lib/tests.js.map +1 -0
  182. package/package.json +91 -0
@@ -0,0 +1,519 @@
1
+ "use strict";
2
+ /**
3
+ * BSB (Better-Service-Base) is an event-bus based microservice framework.
4
+ * Copyright (C) 2016 - 2025 BetterCorp (PTY) Ltd
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License as published
8
+ * by the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * Alternatively, you may obtain a commercial license for this program.
12
+ * The commercial license allows you to use the Program in a closed-source manner,
13
+ * including the right to create derivative works that are not subject to the terms
14
+ * of the AGPL.
15
+ *
16
+ * To obtain a commercial license, please contact the copyright holders at
17
+ * https://www.bettercorp.dev. The terms and conditions of the commercial license
18
+ * will be provided upon request.
19
+ *
20
+ * This program is distributed in the hope that it will be useful,
21
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
22
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
+ * GNU Affero General Public License for more details.
24
+ *
25
+ * You should have received a copy of the GNU Affero General Public License
26
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
27
+ */
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.SBEvents = void 0;
30
+ const base_1 = require("../base");
31
+ const interfaces_1 = require("../interfaces");
32
+ const index_1 = require("../plugins/events-default/index");
33
+ const base_2 = require("../base/base");
34
+ /**
35
+ * @hidden
36
+ */
37
+ function internalTrace(span) {
38
+ return (0, interfaces_1.createFakeDTrace)("serviceBase/SBEvents", span);
39
+ }
40
+ /**
41
+ * BSB Events Controller
42
+ *
43
+ * This class is responsible for managing the events in the BSB framework.
44
+ * If you have a specific way of managing events, you can extend this class and then use your own class when creating the ServiceBase instance.
45
+ *
46
+ * @group Events
47
+ * @category Core
48
+ */
49
+ class SBEvents {
50
+ /**
51
+ * @see {@link https://bsbcode.dev/languages/nodejs/types/classes/SBEvents.html | API: SBEvents}
52
+ */
53
+ events = [];
54
+ mode = "development";
55
+ appId;
56
+ cwd;
57
+ sbPlugins;
58
+ observableBackend;
59
+ metricCounters;
60
+ metricGauges;
61
+ createObservable;
62
+ constructor(appId, mode, cwd, sbPlugins, sbObservable, createObservable) {
63
+ this.appId = appId;
64
+ this.mode = mode;
65
+ this.cwd = cwd;
66
+ this.sbPlugins = sbPlugins;
67
+ this.createObservable = createObservable;
68
+ const eventsPluginName = "core-events";
69
+ this.observableBackend = new base_1.ObservableBackend(this.mode, appId, eventsPluginName, sbObservable);
70
+ }
71
+ dispose() {
72
+ for (let eventsIndex = 0; eventsIndex < this.events.length; eventsIndex++) {
73
+ if (this.events[eventsIndex].plugin.dispose !== undefined) {
74
+ (0, base_1.SmartFunctionCallSync)(this.events[eventsIndex].plugin, this.events[eventsIndex].plugin.dispose);
75
+ }
76
+ }
77
+ }
78
+ getPluginsMatchingTriggerEvent(event, plugin) {
79
+ return this.events.find((eventPlugin) => {
80
+ if (base_1.Tools.isNullOrUndefined(eventPlugin.plugin)) {
81
+ return false;
82
+ }
83
+ if (base_1.Tools.isNullOrUndefined(eventPlugin.on)) {
84
+ return true;
85
+ }
86
+ switch (eventPlugin.onTypeof) {
87
+ case "all":
88
+ return true;
89
+ case "events":
90
+ return eventPlugin.on.includes(event);
91
+ case "eventsState":
92
+ if (base_1.Tools.isNullOrUndefined(eventPlugin.on[event])) {
93
+ return false;
94
+ }
95
+ return eventPlugin.on[event];
96
+ case "eventsPlugins":
97
+ if (base_1.Tools.isNullOrUndefined(eventPlugin.on[event])) {
98
+ return false;
99
+ }
100
+ return eventPlugin.on[event].includes(plugin);
101
+ case "eventsDetailed":
102
+ if (base_1.Tools.isNullOrUndefined(eventPlugin.on[event])) {
103
+ return false;
104
+ }
105
+ if (eventPlugin.on[event].enabled !== true) {
106
+ return false;
107
+ }
108
+ return eventPlugin.on[event].plugins.includes(plugin);
109
+ }
110
+ });
111
+ }
112
+ getPluginForEvent(eventAs, plugin, event) {
113
+ const matchingEvent = this.getPluginsMatchingTriggerEvent(eventAs, plugin);
114
+ if (matchingEvent === undefined) {
115
+ throw new base_1.BSBError(internalTrace(`getPluginForEvent:${eventAs}:${plugin}:${event}`), "No plugins found to match event: plugin: {plugin} - eventAs: {eventAs} - event: {event}", { eventAs, plugin, event });
116
+ }
117
+ return {
118
+ plugin: matchingEvent.plugin,
119
+ pluginName: matchingEvent.name,
120
+ };
121
+ }
122
+ async init(sbConfig, sbObservable) {
123
+ const tTrace = internalTrace("init");
124
+ this.observableBackend.debug(tTrace, "INIT SBEvents");
125
+ this.metricCounters = {};
126
+ this.metricGauges = {};
127
+ for (const event of Object.keys(interfaces_1.EventsEventTypesBase)) {
128
+ this.metricCounters[event] = this.observableBackend.createCounter(event, 'BSB Internal Events ' + event, 'Internal metrics for BSB events');
129
+ this.metricGauges[event] = this.observableBackend.createGauge(event, 'BSB Internal Events ' + event, 'Internal metrics for BSB events');
130
+ }
131
+ const plugins = await sbConfig.getEventsPlugins(tTrace);
132
+ for (const plugin of Object.keys(plugins)) {
133
+ await this.addEvents(sbConfig, sbObservable, {
134
+ name: plugin,
135
+ package: plugins[plugin].package,
136
+ plugin: plugins[plugin].plugin,
137
+ version: "",
138
+ }, plugins[plugin].filter);
139
+ }
140
+ this.observableBackend.info(tTrace, "Adding \"events-default\" as events");
141
+ this.events.push({
142
+ name: "events-default",
143
+ plugin: new index_1.Plugin({
144
+ appId: this.appId,
145
+ mode: this.mode,
146
+ pluginName: "events-default",
147
+ cwd: this.cwd,
148
+ packageCwd: this.cwd,
149
+ pluginCwd: this.cwd,
150
+ config: undefined,
151
+ sbObservable,
152
+ pluginVersion: "0.0.0"
153
+ }),
154
+ on: undefined,
155
+ onTypeof: "all",
156
+ });
157
+ }
158
+ async run() {
159
+ if (this.events.length === 1) {
160
+ return;
161
+ }
162
+ // we want to see if any plugins (ignore events-default) are listening to all events - it so, there is no reason to keep the events-default plugin, so we can dispose and remove it
163
+ const events = this.events.filter((x) => x.name !== "events-default");
164
+ const allEvents = events.filter((x) => x.onTypeof === "all");
165
+ if (allEvents.length > 0) {
166
+ const defaultEvents = this.events.find((x) => x.name === "events-default");
167
+ if (defaultEvents !== undefined) {
168
+ if (defaultEvents.plugin.dispose !== undefined) {
169
+ (0, base_1.SmartFunctionCallSync)(defaultEvents.plugin, defaultEvents.plugin.dispose);
170
+ }
171
+ this.events = this.events.filter((x) => x.name !== "events-default");
172
+ }
173
+ }
174
+ }
175
+ async addPlugin(sbObservable, plugin, reference, config, filter) {
176
+ const tTrace = internalTrace(`addPlugin`);
177
+ this.observableBackend.debug(tTrace, `Get plugin config: {name}`, {
178
+ name: plugin.name,
179
+ });
180
+ this.observableBackend.debug(tTrace, `Construct events plugin: {name}`, {
181
+ name: plugin.name,
182
+ });
183
+ const eventsPlugin = new reference.plugin({
184
+ appId: this.appId,
185
+ mode: this.mode,
186
+ pluginName: reference.name,
187
+ cwd: this.cwd,
188
+ packageCwd: reference.packageCwd,
189
+ pluginCwd: reference.pluginCwd,
190
+ config: config,
191
+ sbObservable,
192
+ pluginVersion: reference.version
193
+ });
194
+ this.observableBackend.info(tTrace, "Adding {pluginName} as events with filter: ", {
195
+ pluginName: plugin.name,
196
+ //filters: filter
197
+ });
198
+ let eventAsType = "all";
199
+ if (filter) {
200
+ if (Array.isArray(filter)) {
201
+ eventAsType = "events";
202
+ }
203
+ else if (typeof filter === "object") {
204
+ const methods = Object.keys(interfaces_1.EventsEventTypesBase);
205
+ for (const method of methods) {
206
+ if (filter[method] !== undefined) {
207
+ const methodValue = filter[method];
208
+ if (typeof methodValue === "boolean") {
209
+ eventAsType = "eventsState";
210
+ }
211
+ else if (Array.isArray(methodValue)) {
212
+ eventAsType = "eventsPlugins";
213
+ }
214
+ else if (typeof methodValue === "object") {
215
+ eventAsType = "eventsDetailed";
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
221
+ this.events.unshift({
222
+ plugin: eventsPlugin,
223
+ on: filter,
224
+ onTypeof: eventAsType,
225
+ name: plugin.name,
226
+ });
227
+ this.observableBackend.info(tTrace, "Ready {pluginName} ({mappedName})", {
228
+ pluginName: plugin.plugin,
229
+ mappedName: plugin.name,
230
+ });
231
+ const obs = this.createObservable(tTrace, "events");
232
+ await (0, base_1.SmartFunctionCallAsync)(eventsPlugin, eventsPlugin.init, obs);
233
+ return eventsPlugin;
234
+ }
235
+ async addEvents(sbConfig, sbObservable, plugin, filter) {
236
+ const tTrace = internalTrace(`addEvents`);
237
+ this.observableBackend.debug(tTrace, "Add events {name} from ({package}){file}", {
238
+ package: plugin.package ?? "this project",
239
+ name: plugin.name,
240
+ file: plugin.plugin,
241
+ });
242
+ if (plugin.name === "events-default") {
243
+ return;
244
+ }
245
+ this.observableBackend.debug(tTrace, `Import events plugin: {name} from ({package}){file}`, {
246
+ package: plugin.package ?? "this project",
247
+ name: plugin.name,
248
+ file: plugin.plugin,
249
+ });
250
+ const newPlugin = await this.sbPlugins.loadPlugin(this.observableBackend, plugin.package ?? null, plugin.plugin, plugin.name);
251
+ if (newPlugin === null || !newPlugin.success) {
252
+ this.observableBackend.error(tTrace, "Failed to import events plugin: {name} from ({package}){file}", {
253
+ package: plugin.package ?? "this project",
254
+ name: plugin.name,
255
+ file: plugin.plugin,
256
+ });
257
+ return;
258
+ }
259
+ let pluginConfig = (await sbConfig.getPluginConfig(tTrace, "events", plugin.name)) ?? null;
260
+ if (!base_1.Tools.isNullOrUndefined(newPlugin.data.serviceConfig) &&
261
+ base_1.Tools.isObject(newPlugin.data.serviceConfig) &&
262
+ !base_1.Tools.isNullOrUndefined(newPlugin.data.serviceConfig.validationSchema)) {
263
+ this.observableBackend.debug(tTrace, "Validate plugin config: {name}", { name: plugin.name });
264
+ pluginConfig =
265
+ newPlugin.data.serviceConfig.validationSchema.parse(pluginConfig ?? undefined);
266
+ }
267
+ await this.addPlugin(sbObservable, plugin, newPlugin.data, pluginConfig, filter);
268
+ }
269
+ async handleOnBroadcast(trace, eventsPluginName, pluginName, event, context, listener, iargs) {
270
+ const start = process.hrtime();
271
+ try {
272
+ await (0, base_1.SmartFunctionCallAsync)(context, listener, trace, ...iargs);
273
+ const diff = process.hrtime(start);
274
+ const time = (diff[0] * base_2.NS_PER_SEC + diff[1]) * base_2.MS_PER_NS;
275
+ this.observableBackend.debug(trace, "on-broadcast-{eventsPluginName}-{pluginName}-{event}:{time}", {
276
+ eventsPluginName,
277
+ pluginName,
278
+ event,
279
+ time
280
+ });
281
+ this.metricCounters["onBroadcast"].increment(1, { pluginName, event });
282
+ this.metricGauges["onBroadcast"].set(time, { pluginName, event });
283
+ }
284
+ catch (exc) {
285
+ this.observableBackend.error(trace, "[{eventsPluginName}:{pluginName}:{event}:handleOnBroadcast] error occured: ${error}", {
286
+ error: exc.message ?? exc,
287
+ eventsPluginName,
288
+ pluginName,
289
+ event,
290
+ });
291
+ throw exc;
292
+ }
293
+ }
294
+ async onBroadcast(context, trace, pluginName, event, listener) {
295
+ const self = this;
296
+ const plugin = this.getPluginForEvent("onBroadcast", pluginName, event);
297
+ const obs = this.createObservable(trace, "events");
298
+ return await plugin.plugin.onBroadcast(obs, pluginName, event, async (iObs, iargs) => self.handleOnBroadcast.call(self, iObs.trace, plugin.pluginName, pluginName, event, context, listener, iargs));
299
+ }
300
+ async emitBroadcast(trace, pluginName, event, ...args) {
301
+ const plugin = this.getPluginForEvent("emitBroadcast", pluginName, event);
302
+ this.observableBackend.debug(trace, "emit-broadcast-{pluginName}-{event}:{time}", {
303
+ pluginName,
304
+ event,
305
+ time: 1,
306
+ });
307
+ const obs = this.createObservable(trace, "events");
308
+ await (0, base_1.SmartFunctionCallAsync)(plugin.plugin, plugin.plugin.emitBroadcast, obs, pluginName, event, args);
309
+ }
310
+ async handleOnEvent(trace, eventsPluginName, pluginName, event, context, listener, iargs) {
311
+ const start = process.hrtime();
312
+ try {
313
+ await (0, base_1.SmartFunctionCallAsync)(context, listener, trace, ...iargs);
314
+ const diff = process.hrtime(start);
315
+ const time = (diff[0] * base_2.NS_PER_SEC + diff[1]) * base_2.MS_PER_NS;
316
+ this.observableBackend.debug(trace, "on-event-{eventsPluginName}-{pluginName}-{event}:{time}", {
317
+ eventsPluginName,
318
+ pluginName,
319
+ event,
320
+ time
321
+ });
322
+ this.metricCounters["onEvent"].increment(1, { pluginName, event });
323
+ this.metricGauges["onEvent"].set(time, { pluginName, event });
324
+ }
325
+ catch (exc) {
326
+ this.observableBackend.error(trace, "[{eventsPluginName}:{pluginName}:{event}:handleOnEvent] error occured: ${error}", {
327
+ error: exc.message ?? exc,
328
+ eventsPluginName,
329
+ pluginName,
330
+ event,
331
+ });
332
+ throw exc;
333
+ }
334
+ }
335
+ async onEvent(trace, context, pluginName, event, listener) {
336
+ const self = this;
337
+ const plugin = this.getPluginForEvent("onEvent", pluginName, event);
338
+ const obs = this.createObservable(trace, "events");
339
+ return await plugin.plugin.onEvent(obs, plugin.pluginName, event, async (iObs, iargs) => self.handleOnEvent.call(self, iObs.trace, plugin.pluginName, pluginName, event, context, listener, iargs));
340
+ }
341
+ async onEventSpecific(trace, serverId, context, pluginName, event, listener) {
342
+ const self = this;
343
+ const plugin = this.getPluginForEvent("onEvent", pluginName, event);
344
+ const obs = this.createObservable(trace, "events");
345
+ return await plugin.plugin.onEvent(obs, pluginName, event + "-" + serverId, async (iObs, iargs) => self.handleOnEvent.call(self, iObs.trace, plugin.pluginName, pluginName, event + "-" + serverId, context, listener, iargs));
346
+ }
347
+ async emitEvent(trace, pluginName, event, ...args) {
348
+ const plugin = this.getPluginForEvent("emitEvent", pluginName, event);
349
+ this.observableBackend.debug(trace, "emit-event-{pluginName}-{event}:{time}", {
350
+ pluginName,
351
+ event,
352
+ time: 1,
353
+ });
354
+ const obs = this.createObservable(trace, "events");
355
+ await (0, base_1.SmartFunctionCallAsync)(plugin.plugin, plugin.plugin.emitEvent, obs, pluginName, event, args);
356
+ }
357
+ async emitEventSpecific(trace, serverId, pluginName, event, ...args) {
358
+ const plugin = this.getPluginForEvent("emitEvent", pluginName, event);
359
+ this.observableBackend.debug(trace, "emit-event-{pluginName}-{event}:{time}", {
360
+ pluginName,
361
+ event,
362
+ time: 1,
363
+ });
364
+ const obs = this.createObservable(trace, "events");
365
+ await (0, base_1.SmartFunctionCallAsync)(plugin.plugin, plugin.plugin.emitEvent, obs, pluginName, event + "-" + serverId, args);
366
+ }
367
+ async handleOnReturnableEvent(trace, eventsPluginName, pluginName, event, context, listener, iargs) {
368
+ const start = process.hrtime();
369
+ try {
370
+ const resp = await (0, base_1.SmartFunctionCallAsync)(context, listener, trace, ...iargs);
371
+ const diff = process.hrtime(start);
372
+ const time = (diff[0] * base_2.NS_PER_SEC + diff[1]) * base_2.MS_PER_NS;
373
+ this.observableBackend.debug(trace, "on-returnableevent-{eventsPluginName}-{pluginName}-{event}:{time}", {
374
+ eventsPluginName,
375
+ pluginName,
376
+ event,
377
+ time,
378
+ });
379
+ this.metricCounters["onReturnableEvent"].increment(1, { pluginName, event });
380
+ this.metricGauges["onReturnableEvent"].set(time, { pluginName, event });
381
+ return resp;
382
+ }
383
+ catch (exc) {
384
+ this.observableBackend.error(trace, "[{eventsPluginName}:{pluginName}:{event}:handleOnReturnableEvent] error occured: ${error}", {
385
+ error: exc.message ?? exc,
386
+ eventsPluginName,
387
+ pluginName,
388
+ event,
389
+ });
390
+ throw exc;
391
+ }
392
+ }
393
+ async onReturnableEvent(trace, context, pluginName, event, listener) {
394
+ const self = this;
395
+ const plugin = this.getPluginForEvent("onReturnableEvent", pluginName, event);
396
+ const obs = this.createObservable(trace, "events");
397
+ return await plugin.plugin.onReturnableEvent(obs, pluginName, event, async (iObs, iargs) => self.handleOnReturnableEvent.call(self, iObs.trace, plugin.pluginName, pluginName, event, context, listener, iargs));
398
+ }
399
+ async onReturnableEventSpecific(trace, serverId, context, pluginName, event, listener) {
400
+ const self = this;
401
+ const plugin = this.getPluginForEvent("onReturnableEvent", pluginName, event);
402
+ const obs = this.createObservable(trace, "events");
403
+ return await plugin.plugin.onReturnableEvent(obs, pluginName, event + "-" + serverId, async (iObs, iargs) => self.handleOnReturnableEvent.call(self, iObs.trace, plugin.pluginName, pluginName, event + "-" + serverId, context, listener, iargs));
404
+ }
405
+ async emitEventAndReturn(trace, pluginName, event, timeoutSeconds, ...args) {
406
+ const start = process.hrtime();
407
+ const plugin = this.getPluginForEvent("emitEventAndReturn", pluginName, event);
408
+ try {
409
+ const obs = this.createObservable(trace, "events");
410
+ const resp = await (0, base_1.SmartFunctionCallAsync)(plugin.plugin, plugin.plugin.emitEventAndReturn, obs, pluginName, event, timeoutSeconds, args);
411
+ const diff = process.hrtime(start);
412
+ const time = (diff[0] * base_2.NS_PER_SEC + diff[1]) * base_2.MS_PER_NS;
413
+ this.observableBackend.debug(trace, "emit-eventandreturn-{pluginName}-{event}:{time}", {
414
+ pluginName,
415
+ event,
416
+ time,
417
+ });
418
+ this.metricCounters["emitEventAndReturn"].increment(1, { pluginName, event });
419
+ this.metricGauges["emitEventAndReturn"].set(time, { pluginName, event });
420
+ return resp;
421
+ }
422
+ catch (exc) {
423
+ this.observableBackend.error(trace, "[{eventsPluginName}:{pluginName}:{event}:emitEventAndReturn] error occured: ${error}", {
424
+ error: exc.message ?? exc,
425
+ eventsPluginName: plugin.pluginName,
426
+ pluginName,
427
+ event,
428
+ });
429
+ throw exc;
430
+ }
431
+ }
432
+ async emitEventAndReturnSpecific(trace, serverId, pluginName, event, timeoutSeconds, ...args) {
433
+ const start = process.hrtime();
434
+ const plugin = this.getPluginForEvent("emitEventAndReturn", pluginName, event);
435
+ try {
436
+ const obs = this.createObservable(trace, "events");
437
+ const resp = await (0, base_1.SmartFunctionCallAsync)(plugin.plugin, plugin.plugin.emitEventAndReturn, obs, pluginName, event + "-" + serverId, timeoutSeconds, args);
438
+ const diff = process.hrtime(start);
439
+ const time = (diff[0] * base_2.NS_PER_SEC + diff[1]) * base_2.MS_PER_NS;
440
+ this.observableBackend.debug(trace, "emit-eventandreturn-{pluginName}-{event}:{time}", {
441
+ pluginName,
442
+ event,
443
+ time,
444
+ });
445
+ this.metricCounters["emitEventAndReturnSpecific"].increment(1, { pluginName, event });
446
+ this.metricGauges["emitEventAndReturnSpecific"].set(time, { pluginName, event });
447
+ return resp;
448
+ }
449
+ catch (exc) {
450
+ this.observableBackend.error(trace, "[{eventsPluginName}:{pluginName}:{event}:emitEventAndReturnSpecific] error occured: ${error}", {
451
+ error: exc.message ?? exc,
452
+ eventsPluginName: plugin.pluginName,
453
+ pluginName,
454
+ event,
455
+ });
456
+ throw exc;
457
+ }
458
+ }
459
+ async handleOnReceiveStream(trace, eventsPluginName, pluginName, event, context, listener, error, stream) {
460
+ const start = process.hrtime();
461
+ try {
462
+ const resp = await (0, base_1.SmartFunctionCallAsync)(context, listener, error, stream);
463
+ const diff = process.hrtime(start);
464
+ const time = (diff[0] * base_2.NS_PER_SEC + diff[1]) * base_2.MS_PER_NS;
465
+ this.observableBackend.debug(trace, "receivestream-{eventsPluginName}-{pluginName}-{event}:{time}", {
466
+ eventsPluginName,
467
+ pluginName,
468
+ event,
469
+ time,
470
+ });
471
+ this.metricCounters["receiveStream"].increment(1, { pluginName, event });
472
+ this.metricGauges["receiveStream"].set(time, { pluginName, event });
473
+ return resp;
474
+ }
475
+ catch (exc) {
476
+ this.observableBackend.error(trace, "[{eventsPluginName}:{pluginName}:{event}:handleOnReceiveStream] error occured: ${error}", {
477
+ error: exc.message ?? exc,
478
+ eventsPluginName,
479
+ pluginName,
480
+ event,
481
+ });
482
+ throw exc;
483
+ }
484
+ }
485
+ async receiveStream(trace, context, pluginName, event, listener, timeoutSeconds) {
486
+ const self = this;
487
+ const plugin = this.getPluginForEvent("receiveStream", pluginName, event);
488
+ const obs = this.createObservable(trace, "events");
489
+ return await plugin.plugin.receiveStream(obs, plugin.pluginName, event, async (iObs, error, stream) => self.handleOnReceiveStream.call(self, trace, plugin.pluginName, pluginName, event, context, listener, error, stream), timeoutSeconds);
490
+ }
491
+ async sendStream(trace, pluginName, event, streamId, stream) {
492
+ const start = process.hrtime();
493
+ const plugin = this.getPluginForEvent("sendStream", pluginName, event);
494
+ try {
495
+ const obs = this.createObservable(trace, "events");
496
+ await (0, base_1.SmartFunctionCallAsync)(plugin.plugin, plugin.plugin.sendStream, obs, plugin.pluginName, event, streamId, stream);
497
+ const diff = process.hrtime(start);
498
+ const time = (diff[0] * base_2.NS_PER_SEC + diff[1]) * base_2.MS_PER_NS;
499
+ this.observableBackend.debug(trace, "sendstream-{pluginName}-{event}:{time}", {
500
+ pluginName,
501
+ event,
502
+ time,
503
+ });
504
+ this.metricCounters["sendStream"].increment(1, { pluginName, event });
505
+ this.metricGauges["sendStream"].set(time, { pluginName, event });
506
+ }
507
+ catch (exc) {
508
+ this.observableBackend.error(trace, "[{eventsPluginName}:{pluginName}:{streamId}:sendStream] error occured: ${error}", {
509
+ error: exc.message ?? exc,
510
+ eventsPluginName: plugin.pluginName,
511
+ pluginName,
512
+ streamId,
513
+ });
514
+ throw exc;
515
+ }
516
+ }
517
+ }
518
+ exports.SBEvents = SBEvents;
519
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/serviceBase/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * BSB (Better-Service-Base) is an event-bus based microservice framework.
3
+ * Copyright (C) 2016 - 2025 BetterCorp (PTY) Ltd
4
+ *
5
+ * This program is free software: you can redistribute it and/or modify
6
+ * it under the terms of the GNU Affero General Public License as published
7
+ * by the Free Software Foundation, either version 3 of the License, or
8
+ * (at your option) any later version.
9
+ *
10
+ * Alternatively, you may obtain a commercial license for this program.
11
+ * The commercial license allows you to use the Program in a closed-source manner,
12
+ * including the right to create derivative works that are not subject to the terms
13
+ * of the AGPL.
14
+ *
15
+ * To obtain a commercial license, please contact the copyright holders at
16
+ * https://www.bettercorp.dev. The terms and conditions of the commercial license
17
+ * will be provided upon request.
18
+ *
19
+ * This program is distributed in the hope that it will be useful,
20
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
21
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22
+ * GNU Affero General Public License for more details.
23
+ *
24
+ * You should have received a copy of the GNU Affero General Public License
25
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
26
+ */
27
+ export * from "./config";
28
+ export * from "./events";
29
+ export * from "../base/functions";
30
+ export * from "./observable";
31
+ export * from "./plugins";
32
+ export * from "./serviceBase";
33
+ export * from "./services";
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * BSB (Better-Service-Base) is an event-bus based microservice framework.
4
+ * Copyright (C) 2016 - 2025 BetterCorp (PTY) Ltd
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License as published
8
+ * by the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * Alternatively, you may obtain a commercial license for this program.
12
+ * The commercial license allows you to use the Program in a closed-source manner,
13
+ * including the right to create derivative works that are not subject to the terms
14
+ * of the AGPL.
15
+ *
16
+ * To obtain a commercial license, please contact the copyright holders at
17
+ * https://www.bettercorp.dev. The terms and conditions of the commercial license
18
+ * will be provided upon request.
19
+ *
20
+ * This program is distributed in the hope that it will be useful,
21
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
22
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23
+ * GNU Affero General Public License for more details.
24
+ *
25
+ * You should have received a copy of the GNU Affero General Public License
26
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
27
+ */
28
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ var desc = Object.getOwnPropertyDescriptor(m, k);
31
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
32
+ desc = { enumerable: true, get: function() { return m[k]; } };
33
+ }
34
+ Object.defineProperty(o, k2, desc);
35
+ }) : (function(o, m, k, k2) {
36
+ if (k2 === undefined) k2 = k;
37
+ o[k2] = m[k];
38
+ }));
39
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
40
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ __exportStar(require("./config"), exports);
44
+ __exportStar(require("./events"), exports);
45
+ __exportStar(require("../base/functions"), exports);
46
+ __exportStar(require("./observable"), exports);
47
+ __exportStar(require("./plugins"), exports);
48
+ __exportStar(require("./serviceBase"), exports);
49
+ __exportStar(require("./services"), exports);
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serviceBase/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,2CAAyB;AACzB,oDAAkC;AAClC,+CAA6B;AAC7B,4CAA0B;AAC1B,gDAA8B;AAC9B,6CAA2B"}