@bsb/base 9.0.5 → 9.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 (196) hide show
  1. package/lib/base/BSBConfig.d.ts +3 -3
  2. package/lib/base/BSBConfig.js +9 -14
  3. package/lib/base/BSBConfig.js.map +1 -1
  4. package/lib/base/BSBEvents.d.ts +3 -3
  5. package/lib/base/BSBEvents.js +12 -17
  6. package/lib/base/BSBEvents.js.map +1 -1
  7. package/lib/base/BSBObservable.d.ts +4 -4
  8. package/lib/base/BSBObservable.js +17 -22
  9. package/lib/base/BSBObservable.js.map +1 -1
  10. package/lib/base/BSBService.d.ts +7 -8
  11. package/lib/base/BSBService.js +17 -22
  12. package/lib/base/BSBService.js.map +1 -1
  13. package/lib/base/BSBServiceClient.d.ts +4 -4
  14. package/lib/base/BSBServiceClient.js +12 -18
  15. package/lib/base/BSBServiceClient.js.map +1 -1
  16. package/lib/base/EventValidator.d.ts +16 -17
  17. package/lib/base/EventValidator.js +13 -34
  18. package/lib/base/EventValidator.js.map +1 -1
  19. package/lib/base/ObservableBackend.d.ts +2 -2
  20. package/lib/base/ObservableBackend.js +21 -26
  21. package/lib/base/ObservableBackend.js.map +1 -1
  22. package/lib/base/PluginConfig.d.ts +9 -5
  23. package/lib/base/PluginConfig.js +4 -11
  24. package/lib/base/PluginConfig.js.map +1 -1
  25. package/lib/base/PluginEvents.d.ts +4 -4
  26. package/lib/base/PluginEvents.js +4 -9
  27. package/lib/base/PluginEvents.js.map +1 -1
  28. package/lib/base/PluginObservable.d.ts +13 -14
  29. package/lib/base/PluginObservable.js +4 -8
  30. package/lib/base/PluginObservable.js.map +1 -1
  31. package/lib/base/ResourceContext.d.ts +1 -1
  32. package/lib/base/ResourceContext.js +1 -5
  33. package/lib/base/ResourceContext.js.map +1 -1
  34. package/lib/base/base.d.ts +3 -3
  35. package/lib/base/base.js +10 -18
  36. package/lib/base/base.js.map +1 -1
  37. package/lib/base/errorMessages.d.ts +1 -1
  38. package/lib/base/errorMessages.js +6 -11
  39. package/lib/base/errorMessages.js.map +1 -1
  40. package/lib/base/factory.d.ts +1 -1
  41. package/lib/base/factory.js +19 -22
  42. package/lib/base/factory.js.map +1 -1
  43. package/lib/base/functions.d.ts +19 -14
  44. package/lib/base/functions.js +19 -26
  45. package/lib/base/functions.js.map +1 -1
  46. package/lib/base/index.d.ts +18 -18
  47. package/lib/base/index.js +18 -37
  48. package/lib/base/index.js.map +1 -1
  49. package/lib/base/logFormatter.d.ts +1 -1
  50. package/lib/base/logFormatter.js +10 -14
  51. package/lib/base/logFormatter.js.map +1 -1
  52. package/lib/base/module-runtime.d.ts +3 -0
  53. package/lib/base/module-runtime.js +15 -0
  54. package/lib/base/module-runtime.js.map +1 -0
  55. package/lib/base/tools.d.ts +1 -1
  56. package/lib/base/tools.js +9 -13
  57. package/lib/base/tools.js.map +1 -1
  58. package/lib/cli.js +13 -12
  59. package/lib/cli.js.map +1 -1
  60. package/lib/dev.js +22 -11
  61. package/lib/dev.js.map +1 -1
  62. package/lib/index.d.ts +3 -3
  63. package/lib/index.js +3 -19
  64. package/lib/index.js.map +1 -1
  65. package/lib/interfaces/events.d.ts +2 -2
  66. package/lib/interfaces/events.js +1 -4
  67. package/lib/interfaces/events.js.map +1 -1
  68. package/lib/interfaces/index.d.ts +13 -12
  69. package/lib/interfaces/index.js +12 -32
  70. package/lib/interfaces/index.js.map +1 -1
  71. package/lib/interfaces/logging.d.ts +3 -3
  72. package/lib/interfaces/logging.js +1 -4
  73. package/lib/interfaces/logging.js.map +1 -1
  74. package/lib/interfaces/metrics.d.ts +2 -2
  75. package/lib/interfaces/metrics.js +1 -5
  76. package/lib/interfaces/metrics.js.map +1 -1
  77. package/lib/interfaces/observable-types.d.ts +1 -1
  78. package/lib/interfaces/observable-types.js +1 -4
  79. package/lib/interfaces/observable-types.js.map +1 -1
  80. package/lib/interfaces/observable.d.ts +8 -9
  81. package/lib/interfaces/observable.js +1 -2
  82. package/lib/interfaces/observable.js.map +1 -1
  83. package/lib/interfaces/options.d.ts +15 -6
  84. package/lib/interfaces/options.js +2 -5
  85. package/lib/interfaces/options.js.map +1 -1
  86. package/lib/interfaces/plugins.d.ts +2 -2
  87. package/lib/interfaces/plugins.js +1 -4
  88. package/lib/interfaces/plugins.js.map +1 -1
  89. package/lib/interfaces/result.js +8 -18
  90. package/lib/interfaces/result.js.map +1 -1
  91. package/lib/interfaces/schema-events.d.ts +4 -19
  92. package/lib/interfaces/schema-events.js +6 -13
  93. package/lib/interfaces/schema-events.js.map +1 -1
  94. package/lib/interfaces/schema-types.d.ts +32 -352
  95. package/lib/interfaces/schema-types.js +77 -512
  96. package/lib/interfaces/schema-types.js.map +1 -1
  97. package/lib/interfaces/service.d.ts +1 -1
  98. package/lib/interfaces/service.js +1 -2
  99. package/lib/interfaces/service.js.map +1 -1
  100. package/lib/interfaces/tools.js +8 -13
  101. package/lib/interfaces/tools.js.map +1 -1
  102. package/lib/plugins/config-default/index.d.ts +16 -14
  103. package/lib/plugins/config-default/index.js +66 -49
  104. package/lib/plugins/config-default/index.js.map +1 -1
  105. package/lib/plugins/config-default/interfaces.d.ts +1 -1
  106. package/lib/plugins/config-default/interfaces.js +1 -2
  107. package/lib/plugins/config-default/interfaces.js.map +1 -1
  108. package/lib/plugins/events-default/events/broadcast.d.ts +1 -1
  109. package/lib/plugins/events-default/events/broadcast.js +2 -6
  110. package/lib/plugins/events-default/events/broadcast.js.map +1 -1
  111. package/lib/plugins/events-default/events/emit.d.ts +1 -1
  112. package/lib/plugins/events-default/events/emit.js +4 -8
  113. package/lib/plugins/events-default/events/emit.js.map +1 -1
  114. package/lib/plugins/events-default/events/emitAndReturn.d.ts +1 -1
  115. package/lib/plugins/events-default/events/emitAndReturn.js +4 -8
  116. package/lib/plugins/events-default/events/emitAndReturn.js.map +1 -1
  117. package/lib/plugins/events-default/events/emitStreamAndReceiveStream.d.ts +1 -1
  118. package/lib/plugins/events-default/events/emitStreamAndReceiveStream.js +8 -12
  119. package/lib/plugins/events-default/events/emitStreamAndReceiveStream.js.map +1 -1
  120. package/lib/plugins/events-default/events/index.d.ts +4 -4
  121. package/lib/plugins/events-default/events/index.js +4 -11
  122. package/lib/plugins/events-default/events/index.js.map +1 -1
  123. package/lib/plugins/events-default/index.d.ts +5 -5
  124. package/lib/plugins/events-default/index.js +10 -14
  125. package/lib/plugins/events-default/index.js.map +1 -1
  126. package/lib/plugins/observable-default/index.d.ts +5 -5
  127. package/lib/plugins/observable-default/index.js +8 -12
  128. package/lib/plugins/observable-default/index.js.map +1 -1
  129. package/lib/plugins/service-benchmarkify/index.d.ts +69 -185
  130. package/lib/plugins/service-benchmarkify/index.js +39 -43
  131. package/lib/plugins/service-benchmarkify/index.js.map +1 -1
  132. package/lib/plugins/service-default0/index.d.ts +73 -171
  133. package/lib/plugins/service-default0/index.js +36 -40
  134. package/lib/plugins/service-default0/index.js.map +1 -1
  135. package/lib/plugins/service-default1/client.d.ts +3 -3
  136. package/lib/plugins/service-default1/client.js +2 -6
  137. package/lib/plugins/service-default1/client.js.map +1 -1
  138. package/lib/plugins/service-default1/index.d.ts +75 -177
  139. package/lib/plugins/service-default1/index.js +41 -45
  140. package/lib/plugins/service-default1/index.js.map +1 -1
  141. package/lib/plugins/service-default2/index.d.ts +89 -231
  142. package/lib/plugins/service-default2/index.js +47 -51
  143. package/lib/plugins/service-default2/index.js.map +1 -1
  144. package/lib/plugins/service-default3/index.d.ts +23 -51
  145. package/lib/plugins/service-default3/index.js +16 -20
  146. package/lib/plugins/service-default3/index.js.map +1 -1
  147. package/lib/plugins/service-default4/index.d.ts +13 -27
  148. package/lib/plugins/service-default4/index.js +12 -16
  149. package/lib/plugins/service-default4/index.js.map +1 -1
  150. package/lib/schemas/config-default.json +24 -16
  151. package/lib/schemas/config-default.plugin.json +24 -16
  152. package/lib/schemas/events-default.json +1 -1
  153. package/lib/schemas/events-default.plugin.json +1 -1
  154. package/lib/schemas/observable-default.json +15 -5
  155. package/lib/schemas/observable-default.plugin.json +15 -5
  156. package/lib/schemas/service-benchmarkify.json +232 -147
  157. package/lib/schemas/service-default0.json +205 -142
  158. package/lib/schemas/service-default1.json +245 -160
  159. package/lib/schemas/service-default2.json +270 -183
  160. package/lib/schemas/service-default3.json +78 -36
  161. package/lib/schemas/service-default4.json +45 -15
  162. package/lib/scripts/bsb-client-cli.js +9 -9
  163. package/lib/scripts/bsb-client-cli.js.map +1 -1
  164. package/lib/scripts/bsb-plugin-cli.js +48 -50
  165. package/lib/scripts/bsb-plugin-cli.js.map +1 -1
  166. package/lib/scripts/export-schemas.js +8 -10
  167. package/lib/scripts/export-schemas.js.map +1 -1
  168. package/lib/scripts/extract-schemas-from-source.js +73 -56
  169. package/lib/scripts/extract-schemas-from-source.js.map +1 -1
  170. package/lib/scripts/generate-client-types.d.ts +1 -16
  171. package/lib/scripts/generate-client-types.js +120 -313
  172. package/lib/scripts/generate-client-types.js.map +1 -1
  173. package/lib/scripts/generate-plugin-json.js +9 -10
  174. package/lib/scripts/generate-plugin-json.js.map +1 -1
  175. package/lib/serviceBase/config.d.ts +4 -4
  176. package/lib/serviceBase/config.js +33 -35
  177. package/lib/serviceBase/config.js.map +1 -1
  178. package/lib/serviceBase/events.d.ts +6 -6
  179. package/lib/serviceBase/events.js +42 -44
  180. package/lib/serviceBase/events.js.map +1 -1
  181. package/lib/serviceBase/index.d.ts +7 -7
  182. package/lib/serviceBase/index.js +7 -23
  183. package/lib/serviceBase/index.js.map +1 -1
  184. package/lib/serviceBase/observable.d.ts +5 -5
  185. package/lib/serviceBase/observable.js +21 -25
  186. package/lib/serviceBase/observable.js.map +1 -1
  187. package/lib/serviceBase/plugins.d.ts +3 -3
  188. package/lib/serviceBase/plugins.js +47 -53
  189. package/lib/serviceBase/plugins.js.map +1 -1
  190. package/lib/serviceBase/serviceBase.d.ts +3 -3
  191. package/lib/serviceBase/serviceBase.js +40 -44
  192. package/lib/serviceBase/serviceBase.js.map +1 -1
  193. package/lib/serviceBase/services.d.ts +6 -6
  194. package/lib/serviceBase/services.js +21 -22
  195. package/lib/serviceBase/services.js.map +1 -1
  196. package/package.json +18 -11
@@ -24,70 +24,40 @@
24
24
  * You should have received a copy of the GNU Affero General Public License
25
25
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
26
26
  */
27
- import { Observable } from "../../index";
28
- import { BSBService, BSBServiceConstructor } from "../../base";
29
- import { z } from "zod";
30
- export declare const Config: import("../../index").BSBPluginConfigClass<z.ZodNull>;
27
+ import { Observable } from "../../index.js";
28
+ import { BSBService, BSBServiceConstructor } from "../../base/index.js";
29
+ import * as av from "@anyvali/js";
30
+ export declare const Config: import("../../index.js").BSBPluginConfigClass<av.OptionalSchema<av.ObjectSchema<{}>>>;
31
31
  export declare const EventSchemas: {
32
32
  readonly emitEvents: {
33
33
  readonly 'benchmark.started': {
34
- input: {
35
- _bsb: "object";
36
- properties: {
37
- readonly name: import("../../index").BSBStringType;
38
- readonly timestamp: import("../../index").BSBStringType;
39
- };
40
- required: string[];
41
- description?: string;
42
- optional?: boolean;
43
- nullable?: boolean;
44
- };
34
+ input: av.ObjectSchema<{
35
+ name: av.StringSchema;
36
+ timestamp: av.StringSchema;
37
+ }>;
45
38
  description?: string;
46
39
  readonly __brand: "fire-and-forget";
47
40
  };
48
41
  };
49
42
  readonly onEvents: {
50
43
  readonly 'benchmark.trigger': {
51
- input: {
52
- _bsb: "object";
53
- properties: {
54
- readonly testName: import("../../index").BSBStringType & {
55
- optional: true;
56
- };
57
- };
58
- required: string[];
59
- description?: string;
60
- optional?: boolean;
61
- nullable?: boolean;
62
- };
44
+ input: av.ObjectSchema<{
45
+ testName: av.OptionalSchema<av.StringSchema>;
46
+ }>;
63
47
  description?: string;
64
48
  readonly __brand: "fire-and-forget";
65
49
  };
66
50
  };
67
51
  readonly emitReturnableEvents: {
68
52
  readonly 'performance.test': {
69
- input: {
70
- _bsb: "object";
71
- properties: {
72
- readonly iterations: import("../../index").BSBNumberType;
73
- readonly warmup: import("../../index").BSBBooleanType;
74
- };
75
- required: string[];
76
- description?: string;
77
- optional?: boolean;
78
- nullable?: boolean;
79
- };
80
- output: {
81
- _bsb: "object";
82
- properties: {
83
- readonly duration: import("../../index").BSBNumberType;
84
- readonly opsPerSecond: import("../../index").BSBNumberType;
85
- };
86
- required: string[];
87
- description?: string;
88
- optional?: boolean;
89
- nullable?: boolean;
90
- };
53
+ input: av.ObjectSchema<{
54
+ iterations: import("../../index.js").BSBType;
55
+ warmup: av.BoolSchema;
56
+ }>;
57
+ output: av.ObjectSchema<{
58
+ duration: import("../../index.js").BSBType;
59
+ opsPerSecond: import("../../index.js").BSBType;
60
+ }>;
91
61
  description?: string;
92
62
  defaultTimeout?: number;
93
63
  readonly __brand: "returnable";
@@ -95,32 +65,18 @@ export declare const EventSchemas: {
95
65
  };
96
66
  readonly onReturnableEvents: {
97
67
  readonly add: {
98
- input: {
99
- _bsb: "object";
100
- properties: {
101
- readonly a: import("../../index").BSBNumberType;
102
- readonly b: import("../../index").BSBNumberType;
103
- };
104
- required: string[];
105
- description?: string;
106
- optional?: boolean;
107
- nullable?: boolean;
108
- };
109
- output: import("../../index").BSBNumberType;
68
+ input: av.ObjectSchema<{
69
+ a: import("../../index.js").BSBType;
70
+ b: import("../../index.js").BSBType;
71
+ }>;
72
+ output: import("../../index.js").BSBType;
110
73
  description?: string;
111
74
  defaultTimeout?: number;
112
75
  readonly __brand: "returnable";
113
76
  };
114
77
  readonly void: {
115
- input: {
116
- _bsb: "object";
117
- properties: {};
118
- required: string[];
119
- description?: string;
120
- optional?: boolean;
121
- nullable?: boolean;
122
- };
123
- output: import("../../index").BSBType;
78
+ input: av.ObjectSchema<{}>;
79
+ output: av.UnknownSchema;
124
80
  description?: string;
125
81
  defaultTimeout?: number;
126
82
  readonly __brand: "returnable";
@@ -128,103 +84,59 @@ export declare const EventSchemas: {
128
84
  };
129
85
  readonly emitBroadcast: {
130
86
  readonly 'benchmark.results': {
131
- input: {
132
- _bsb: "object";
133
- properties: {
134
- readonly testName: import("../../index").BSBStringType;
135
- readonly results: import("../../index").BSBArrayType;
136
- readonly timestamp: import("../../index").BSBStringType;
137
- };
138
- required: string[];
139
- description?: string;
140
- optional?: boolean;
141
- nullable?: boolean;
142
- };
87
+ input: av.ObjectSchema<{
88
+ testName: av.StringSchema;
89
+ results: av.ArraySchema<import("../../index.js").BSBType>;
90
+ timestamp: av.StringSchema;
91
+ }>;
143
92
  description?: string;
144
93
  readonly __brand: "broadcast";
145
94
  };
146
95
  };
147
96
  readonly onBroadcast: {
148
97
  readonly 'system.load': {
149
- input: {
150
- _bsb: "object";
151
- properties: {
152
- readonly cpuUsage: import("../../index").BSBNumberType;
153
- readonly memoryUsage: import("../../index").BSBNumberType;
154
- readonly timestamp: import("../../index").BSBStringType;
155
- };
156
- required: string[];
157
- description?: string;
158
- optional?: boolean;
159
- nullable?: boolean;
160
- };
98
+ input: av.ObjectSchema<{
99
+ cpuUsage: import("../../index.js").BSBType;
100
+ memoryUsage: import("../../index.js").BSBType;
101
+ timestamp: av.StringSchema;
102
+ }>;
161
103
  description?: string;
162
104
  readonly __brand: "broadcast";
163
105
  };
164
106
  };
165
107
  };
166
108
  export declare class Plugin extends BSBService<InstanceType<typeof Config>, typeof EventSchemas> {
167
- static Config: import("../../index").BSBPluginConfigClass<z.ZodNull>;
109
+ static Config: import("../../index.js").BSBPluginConfigClass<av.OptionalSchema<av.ObjectSchema<{}>>>;
168
110
  static EventSchemas: {
169
111
  readonly emitEvents: {
170
112
  readonly 'benchmark.started': {
171
- input: {
172
- _bsb: "object";
173
- properties: {
174
- readonly name: import("../../index").BSBStringType;
175
- readonly timestamp: import("../../index").BSBStringType;
176
- };
177
- required: string[];
178
- description?: string;
179
- optional?: boolean;
180
- nullable?: boolean;
181
- };
113
+ input: av.ObjectSchema<{
114
+ name: av.StringSchema;
115
+ timestamp: av.StringSchema;
116
+ }>;
182
117
  description?: string;
183
118
  readonly __brand: "fire-and-forget";
184
119
  };
185
120
  };
186
121
  readonly onEvents: {
187
122
  readonly 'benchmark.trigger': {
188
- input: {
189
- _bsb: "object";
190
- properties: {
191
- readonly testName: import("../../index").BSBStringType & {
192
- optional: true;
193
- };
194
- };
195
- required: string[];
196
- description?: string;
197
- optional?: boolean;
198
- nullable?: boolean;
199
- };
123
+ input: av.ObjectSchema<{
124
+ testName: av.OptionalSchema<av.StringSchema>;
125
+ }>;
200
126
  description?: string;
201
127
  readonly __brand: "fire-and-forget";
202
128
  };
203
129
  };
204
130
  readonly emitReturnableEvents: {
205
131
  readonly 'performance.test': {
206
- input: {
207
- _bsb: "object";
208
- properties: {
209
- readonly iterations: import("../../index").BSBNumberType;
210
- readonly warmup: import("../../index").BSBBooleanType;
211
- };
212
- required: string[];
213
- description?: string;
214
- optional?: boolean;
215
- nullable?: boolean;
216
- };
217
- output: {
218
- _bsb: "object";
219
- properties: {
220
- readonly duration: import("../../index").BSBNumberType;
221
- readonly opsPerSecond: import("../../index").BSBNumberType;
222
- };
223
- required: string[];
224
- description?: string;
225
- optional?: boolean;
226
- nullable?: boolean;
227
- };
132
+ input: av.ObjectSchema<{
133
+ iterations: import("../../index.js").BSBType;
134
+ warmup: av.BoolSchema;
135
+ }>;
136
+ output: av.ObjectSchema<{
137
+ duration: import("../../index.js").BSBType;
138
+ opsPerSecond: import("../../index.js").BSBType;
139
+ }>;
228
140
  description?: string;
229
141
  defaultTimeout?: number;
230
142
  readonly __brand: "returnable";
@@ -232,32 +144,18 @@ export declare class Plugin extends BSBService<InstanceType<typeof Config>, type
232
144
  };
233
145
  readonly onReturnableEvents: {
234
146
  readonly add: {
235
- input: {
236
- _bsb: "object";
237
- properties: {
238
- readonly a: import("../../index").BSBNumberType;
239
- readonly b: import("../../index").BSBNumberType;
240
- };
241
- required: string[];
242
- description?: string;
243
- optional?: boolean;
244
- nullable?: boolean;
245
- };
246
- output: import("../../index").BSBNumberType;
147
+ input: av.ObjectSchema<{
148
+ a: import("../../index.js").BSBType;
149
+ b: import("../../index.js").BSBType;
150
+ }>;
151
+ output: import("../../index.js").BSBType;
247
152
  description?: string;
248
153
  defaultTimeout?: number;
249
154
  readonly __brand: "returnable";
250
155
  };
251
156
  readonly void: {
252
- input: {
253
- _bsb: "object";
254
- properties: {};
255
- required: string[];
256
- description?: string;
257
- optional?: boolean;
258
- nullable?: boolean;
259
- };
260
- output: import("../../index").BSBType;
157
+ input: av.ObjectSchema<{}>;
158
+ output: av.UnknownSchema;
261
159
  description?: string;
262
160
  defaultTimeout?: number;
263
161
  readonly __brand: "returnable";
@@ -265,36 +163,22 @@ export declare class Plugin extends BSBService<InstanceType<typeof Config>, type
265
163
  };
266
164
  readonly emitBroadcast: {
267
165
  readonly 'benchmark.results': {
268
- input: {
269
- _bsb: "object";
270
- properties: {
271
- readonly testName: import("../../index").BSBStringType;
272
- readonly results: import("../../index").BSBArrayType;
273
- readonly timestamp: import("../../index").BSBStringType;
274
- };
275
- required: string[];
276
- description?: string;
277
- optional?: boolean;
278
- nullable?: boolean;
279
- };
166
+ input: av.ObjectSchema<{
167
+ testName: av.StringSchema;
168
+ results: av.ArraySchema<import("../../index.js").BSBType>;
169
+ timestamp: av.StringSchema;
170
+ }>;
280
171
  description?: string;
281
172
  readonly __brand: "broadcast";
282
173
  };
283
174
  };
284
175
  readonly onBroadcast: {
285
176
  readonly 'system.load': {
286
- input: {
287
- _bsb: "object";
288
- properties: {
289
- readonly cpuUsage: import("../../index").BSBNumberType;
290
- readonly memoryUsage: import("../../index").BSBNumberType;
291
- readonly timestamp: import("../../index").BSBStringType;
292
- };
293
- required: string[];
294
- description?: string;
295
- optional?: boolean;
296
- nullable?: boolean;
297
- };
177
+ input: av.ObjectSchema<{
178
+ cpuUsage: import("../../index.js").BSBType;
179
+ memoryUsage: import("../../index.js").BSBType;
180
+ timestamp: av.StringSchema;
181
+ }>;
298
182
  description?: string;
299
183
  readonly __brand: "broadcast";
300
184
  };
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * BSB (Better-Service-Base) is an event-bus based microservice framework.
4
3
  * Copyright (C) 2016 - 2025 BetterCorp (PTY) Ltd
@@ -25,75 +24,73 @@
25
24
  * You should have received a copy of the GNU Affero General Public License
26
25
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
27
26
  */
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.Plugin = exports.EventSchemas = exports.Config = void 0;
30
- const index_1 = require("../../index");
31
- const base_1 = require("../../base");
32
- const schema_events_1 = require("../../interfaces/schema-events");
33
- const zod_1 = require("zod");
34
- const Benchmarkify = require("benchmarkify");
35
- exports.Config = (0, base_1.createConfigSchema)({
27
+ import { ServiceClient } from "../../index.js";
28
+ import { BSBService, createConfigSchema, bsb, optional } from "../../base/index.js";
29
+ import { createEventSchemas, createReturnableEvent, createFireAndForgetEvent, createBroadcastEvent } from "../../interfaces/schema-events.js";
30
+ import * as av from "@anyvali/js";
31
+ import Benchmarkify from "benchmarkify";
32
+ export const Config = createConfigSchema({
36
33
  name: 'service-benchmarkify',
37
34
  description: 'Benchmarking service for performance testing',
38
35
  image: '../docs/public/assets/images/bsb-logo.png',
39
36
  tags: ['benchmark', 'performance', 'test'],
40
- }, zod_1.z.null());
41
- exports.EventSchemas = (0, schema_events_1.createEventSchemas)({
37
+ }, av.optional(av.object({}, { unknownKeys: "strip" })).default({}));
38
+ export const EventSchemas = createEventSchemas({
42
39
  // Events this service emits (fire-and-forget, first listener receives)
43
40
  emitEvents: {
44
- 'benchmark.started': (0, schema_events_1.createFireAndForgetEvent)(base_1.bsb.object({
45
- name: base_1.bsb.string({ description: 'Benchmark name' }),
46
- timestamp: base_1.bsb.datetime('Start timestamp')
41
+ 'benchmark.started': createFireAndForgetEvent(bsb.object({
42
+ name: bsb.string({ description: 'Benchmark name' }),
43
+ timestamp: bsb.datetime('Start timestamp')
47
44
  }, 'Benchmark start parameters'), 'Benchmark test started')
48
45
  },
49
46
  // Events this service listens to (fire-and-forget)
50
47
  onEvents: {
51
- 'benchmark.trigger': (0, schema_events_1.createFireAndForgetEvent)(base_1.bsb.object({
52
- testName: (0, base_1.optional)(base_1.bsb.string({ description: 'Name of test to run' }))
48
+ 'benchmark.trigger': createFireAndForgetEvent(bsb.object({
49
+ testName: optional(bsb.string({ description: 'Name of test to run' }))
53
50
  }, 'Benchmark trigger parameters'), 'Trigger benchmark execution')
54
51
  },
55
52
  // Returnable events this service emits (requests from this service)
56
53
  emitReturnableEvents: {
57
- 'performance.test': (0, schema_events_1.createReturnableEvent)(base_1.bsb.object({
58
- iterations: base_1.bsb.number({ description: 'Number of iterations to run' }),
59
- warmup: base_1.bsb.boolean('Whether to run warmup iterations')
60
- }, 'Performance test parameters'), base_1.bsb.object({
61
- duration: base_1.bsb.number({ description: 'Test duration in milliseconds' }),
62
- opsPerSecond: base_1.bsb.number({ description: 'Operations per second' })
54
+ 'performance.test': createReturnableEvent(bsb.object({
55
+ iterations: bsb.number({ description: 'Number of iterations to run' }),
56
+ warmup: bsb.boolean('Whether to run warmup iterations')
57
+ }, 'Performance test parameters'), bsb.object({
58
+ duration: bsb.number({ description: 'Test duration in milliseconds' }),
59
+ opsPerSecond: bsb.number({ description: 'Operations per second' })
63
60
  }, 'Performance test results'), 'Request performance test execution')
64
61
  },
65
62
  // Returnable events this service listens to (requests to this service)
66
63
  onReturnableEvents: {
67
- add: (0, schema_events_1.createReturnableEvent)(base_1.bsb.object({
68
- a: base_1.bsb.number({ description: 'First number' }),
69
- b: base_1.bsb.number({ description: 'Second number' })
70
- }, 'Add input parameters'), base_1.bsb.number({ description: 'Sum of numbers' }), 'Add two numbers'),
71
- void: (0, schema_events_1.createReturnableEvent)(base_1.bsb.object({}, 'Empty parameters'), base_1.bsb.void(), 'Void event for benchmarking')
64
+ add: createReturnableEvent(bsb.object({
65
+ a: bsb.number({ description: 'First number' }),
66
+ b: bsb.number({ description: 'Second number' })
67
+ }, 'Add input parameters'), bsb.number({ description: 'Sum of numbers' }), 'Add two numbers'),
68
+ void: createReturnableEvent(bsb.object({}, 'Empty parameters'), bsb.void(), 'Void event for benchmarking')
72
69
  },
73
70
  // Broadcast events this service emits (all listeners receive)
74
71
  emitBroadcast: {
75
- 'benchmark.results': (0, schema_events_1.createBroadcastEvent)(base_1.bsb.object({
76
- testName: base_1.bsb.string({ description: 'Test name' }),
77
- results: base_1.bsb.array(base_1.bsb.object({
78
- operation: base_1.bsb.string({ description: 'Operation name' }),
79
- opsPerSecond: base_1.bsb.number({ description: 'Operations per second' }),
80
- duration: base_1.bsb.number({ description: 'Duration in milliseconds' })
72
+ 'benchmark.results': createBroadcastEvent(bsb.object({
73
+ testName: bsb.string({ description: 'Test name' }),
74
+ results: bsb.array(bsb.object({
75
+ operation: bsb.string({ description: 'Operation name' }),
76
+ opsPerSecond: bsb.number({ description: 'Operations per second' }),
77
+ duration: bsb.number({ description: 'Duration in milliseconds' })
81
78
  }, 'Benchmark result entry'), { description: 'Array of benchmark results' }),
82
- timestamp: base_1.bsb.datetime('Results timestamp')
79
+ timestamp: bsb.datetime('Results timestamp')
83
80
  }, 'Benchmark results parameters'), 'Broadcast benchmark results to all interested parties')
84
81
  },
85
82
  // Broadcast events this service listens to
86
83
  onBroadcast: {
87
- 'system.load': (0, schema_events_1.createBroadcastEvent)(base_1.bsb.object({
88
- cpuUsage: base_1.bsb.number({ description: 'CPU usage percentage' }),
89
- memoryUsage: base_1.bsb.number({ description: 'Memory usage percentage' }),
90
- timestamp: base_1.bsb.datetime('Load measurement timestamp')
84
+ 'system.load': createBroadcastEvent(bsb.object({
85
+ cpuUsage: bsb.number({ description: 'CPU usage percentage' }),
86
+ memoryUsage: bsb.number({ description: 'Memory usage percentage' }),
87
+ timestamp: bsb.datetime('Load measurement timestamp')
91
88
  }, 'System load parameters'), 'Listen for system load updates')
92
89
  }
93
90
  });
94
- class Plugin extends base_1.BSBService {
95
- static Config = exports.Config;
96
- static EventSchemas = exports.EventSchemas;
91
+ export class Plugin extends BSBService {
92
+ static Config = Config;
93
+ static EventSchemas = EventSchemas;
97
94
  // PLUGIN_CLIENT auto-generated from Config.metadata
98
95
  initBeforePlugins;
99
96
  runBeforePlugins;
@@ -115,7 +112,7 @@ class Plugin extends base_1.BSBService {
115
112
  ;
116
113
  constructor(config) {
117
114
  super(config);
118
- this.self = new index_1.ServiceClient(Plugin, this);
115
+ this.self = new ServiceClient(Plugin, this);
119
116
  }
120
117
  async run(obs) {
121
118
  obs.log.info("Running service-benchmarkify");
@@ -133,5 +130,4 @@ class Plugin extends base_1.BSBService {
133
130
  await benchmark.run();
134
131
  }
135
132
  }
136
- exports.Plugin = Plugin;
137
133
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-benchmarkify/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-benchmarkify/index.ts"],"names":[],"mappings":"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"}