@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,79 +24,45 @@
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 'task.completed': {
34
- input: {
35
- _bsb: "object";
36
- properties: {
37
- readonly taskId: import("../../index").BSBStringType;
38
- readonly duration: import("../../index").BSBNumberType;
39
- readonly success: import("../../index").BSBBooleanType;
40
- };
41
- required: string[];
42
- description?: string;
43
- optional?: boolean;
44
- nullable?: boolean;
45
- };
34
+ input: av.ObjectSchema<{
35
+ taskId: av.StringSchema;
36
+ duration: import("../../index.js").BSBType;
37
+ success: av.BoolSchema;
38
+ }>;
46
39
  description?: string;
47
40
  readonly __brand: "fire-and-forget";
48
41
  };
49
42
  };
50
43
  readonly onEvents: {
51
44
  readonly 'task.assigned': {
52
- input: {
53
- _bsb: "object";
54
- properties: {
55
- readonly taskId: import("../../index").BSBStringType;
56
- readonly type: import("../../index").BSBStringType;
57
- readonly priority: import("../../index").BSBEnumType;
58
- };
59
- required: string[];
60
- description?: string;
61
- optional?: boolean;
62
- nullable?: boolean;
63
- };
45
+ input: av.ObjectSchema<{
46
+ taskId: av.StringSchema;
47
+ type: av.StringSchema;
48
+ priority: av.EnumSchema<readonly (string | number)[]>;
49
+ }>;
64
50
  description?: string;
65
51
  readonly __brand: "fire-and-forget";
66
52
  };
67
53
  };
68
54
  readonly emitReturnableEvents: {
69
55
  readonly 'resource.request': {
70
- input: {
71
- _bsb: "object";
72
- properties: {
73
- readonly resourceType: import("../../index").BSBStringType;
74
- readonly amount: import("../../index").BSBNumberType;
75
- readonly timeout: import("../../index").BSBNumberType & {
76
- optional: true;
77
- };
78
- };
79
- required: string[];
80
- description?: string;
81
- optional?: boolean;
82
- nullable?: boolean;
83
- };
84
- output: {
85
- _bsb: "object";
86
- properties: {
87
- readonly allocated: import("../../index").BSBBooleanType;
88
- readonly resourceId: import("../../index").BSBStringType & {
89
- optional: true;
90
- };
91
- readonly waitTime: import("../../index").BSBNumberType & {
92
- optional: true;
93
- };
94
- };
95
- required: string[];
96
- description?: string;
97
- optional?: boolean;
98
- nullable?: boolean;
99
- };
56
+ input: av.ObjectSchema<{
57
+ resourceType: av.StringSchema;
58
+ amount: import("../../index.js").BSBType;
59
+ timeout: av.OptionalSchema<import("../../index.js").BSBType>;
60
+ }>;
61
+ output: av.ObjectSchema<{
62
+ allocated: av.BoolSchema;
63
+ resourceId: av.OptionalSchema<av.StringSchema>;
64
+ waitTime: av.OptionalSchema<import("../../index.js").BSBType>;
65
+ }>;
100
66
  description?: string;
101
67
  defaultTimeout?: number;
102
68
  readonly __brand: "returnable";
@@ -104,47 +70,24 @@ export declare const EventSchemas: {
104
70
  };
105
71
  readonly onReturnableEvents: {
106
72
  readonly calculate: {
107
- input: {
108
- _bsb: "object";
109
- properties: {
110
- readonly a: import("../../index").BSBNumberType;
111
- readonly b: import("../../index").BSBNumberType;
112
- };
113
- required: string[];
114
- description?: string;
115
- optional?: boolean;
116
- nullable?: boolean;
117
- };
118
- output: import("../../index").BSBNumberType;
73
+ input: av.ObjectSchema<{
74
+ a: import("../../index.js").BSBType;
75
+ b: import("../../index.js").BSBType;
76
+ }>;
77
+ output: import("../../index.js").BSBType;
119
78
  description?: string;
120
79
  defaultTimeout?: number;
121
80
  readonly __brand: "returnable";
122
81
  };
123
82
  readonly 'health.check': {
124
- input: {
125
- _bsb: "object";
126
- properties: {
127
- readonly includeDetails: import("../../index").BSBBooleanType;
128
- };
129
- required: string[];
130
- description?: string;
131
- optional?: boolean;
132
- nullable?: boolean;
133
- };
134
- output: {
135
- _bsb: "object";
136
- properties: {
137
- readonly status: import("../../index").BSBEnumType;
138
- readonly uptime: import("../../index").BSBNumberType;
139
- readonly details: import("../../index").BSBType & {
140
- optional: true;
141
- };
142
- };
143
- required: string[];
144
- description?: string;
145
- optional?: boolean;
146
- nullable?: boolean;
147
- };
83
+ input: av.ObjectSchema<{
84
+ includeDetails: av.BoolSchema;
85
+ }>;
86
+ output: av.ObjectSchema<{
87
+ status: av.EnumSchema<readonly (string | number)[]>;
88
+ uptime: import("../../index.js").BSBType;
89
+ details: av.OptionalSchema<av.RecordSchema<av.UnknownSchema>>;
90
+ }>;
148
91
  description?: string;
149
92
  defaultTimeout?: number;
150
93
  readonly __brand: "returnable";
@@ -152,111 +95,63 @@ export declare const EventSchemas: {
152
95
  };
153
96
  readonly emitBroadcast: {
154
97
  readonly 'metrics.report': {
155
- input: {
156
- _bsb: "object";
157
- properties: {
158
- readonly timestamp: import("../../index").BSBStringType;
159
- readonly metrics: import("../../index").BSBType;
160
- readonly period: import("../../index").BSBStringType;
161
- };
162
- required: string[];
163
- description?: string;
164
- optional?: boolean;
165
- nullable?: boolean;
166
- };
98
+ input: av.ObjectSchema<{
99
+ timestamp: av.StringSchema;
100
+ metrics: av.RecordSchema<import("../../index.js").BSBType>;
101
+ period: av.StringSchema;
102
+ }>;
167
103
  description?: string;
168
104
  readonly __brand: "broadcast";
169
105
  };
170
106
  };
171
107
  readonly onBroadcast: {
172
108
  readonly 'emergency.stop': {
173
- input: {
174
- _bsb: "object";
175
- properties: {
176
- readonly reason: import("../../index").BSBStringType;
177
- readonly immediate: import("../../index").BSBBooleanType;
178
- };
179
- required: string[];
180
- description?: string;
181
- optional?: boolean;
182
- nullable?: boolean;
183
- };
109
+ input: av.ObjectSchema<{
110
+ reason: av.StringSchema;
111
+ immediate: av.BoolSchema;
112
+ }>;
184
113
  description?: string;
185
114
  readonly __brand: "broadcast";
186
115
  };
187
116
  };
188
117
  };
189
118
  export declare class Plugin extends BSBService<InstanceType<typeof Config>, typeof EventSchemas> {
190
- static Config: import("../../index").BSBPluginConfigClass<z.ZodNull>;
119
+ static Config: import("../../index.js").BSBPluginConfigClass<av.OptionalSchema<av.ObjectSchema<{}>>>;
191
120
  static EventSchemas: {
192
121
  readonly emitEvents: {
193
122
  readonly 'task.completed': {
194
- input: {
195
- _bsb: "object";
196
- properties: {
197
- readonly taskId: import("../../index").BSBStringType;
198
- readonly duration: import("../../index").BSBNumberType;
199
- readonly success: import("../../index").BSBBooleanType;
200
- };
201
- required: string[];
202
- description?: string;
203
- optional?: boolean;
204
- nullable?: boolean;
205
- };
123
+ input: av.ObjectSchema<{
124
+ taskId: av.StringSchema;
125
+ duration: import("../../index.js").BSBType;
126
+ success: av.BoolSchema;
127
+ }>;
206
128
  description?: string;
207
129
  readonly __brand: "fire-and-forget";
208
130
  };
209
131
  };
210
132
  readonly onEvents: {
211
133
  readonly 'task.assigned': {
212
- input: {
213
- _bsb: "object";
214
- properties: {
215
- readonly taskId: import("../../index").BSBStringType;
216
- readonly type: import("../../index").BSBStringType;
217
- readonly priority: import("../../index").BSBEnumType;
218
- };
219
- required: string[];
220
- description?: string;
221
- optional?: boolean;
222
- nullable?: boolean;
223
- };
134
+ input: av.ObjectSchema<{
135
+ taskId: av.StringSchema;
136
+ type: av.StringSchema;
137
+ priority: av.EnumSchema<readonly (string | number)[]>;
138
+ }>;
224
139
  description?: string;
225
140
  readonly __brand: "fire-and-forget";
226
141
  };
227
142
  };
228
143
  readonly emitReturnableEvents: {
229
144
  readonly 'resource.request': {
230
- input: {
231
- _bsb: "object";
232
- properties: {
233
- readonly resourceType: import("../../index").BSBStringType;
234
- readonly amount: import("../../index").BSBNumberType;
235
- readonly timeout: import("../../index").BSBNumberType & {
236
- optional: true;
237
- };
238
- };
239
- required: string[];
240
- description?: string;
241
- optional?: boolean;
242
- nullable?: boolean;
243
- };
244
- output: {
245
- _bsb: "object";
246
- properties: {
247
- readonly allocated: import("../../index").BSBBooleanType;
248
- readonly resourceId: import("../../index").BSBStringType & {
249
- optional: true;
250
- };
251
- readonly waitTime: import("../../index").BSBNumberType & {
252
- optional: true;
253
- };
254
- };
255
- required: string[];
256
- description?: string;
257
- optional?: boolean;
258
- nullable?: boolean;
259
- };
145
+ input: av.ObjectSchema<{
146
+ resourceType: av.StringSchema;
147
+ amount: import("../../index.js").BSBType;
148
+ timeout: av.OptionalSchema<import("../../index.js").BSBType>;
149
+ }>;
150
+ output: av.ObjectSchema<{
151
+ allocated: av.BoolSchema;
152
+ resourceId: av.OptionalSchema<av.StringSchema>;
153
+ waitTime: av.OptionalSchema<import("../../index.js").BSBType>;
154
+ }>;
260
155
  description?: string;
261
156
  defaultTimeout?: number;
262
157
  readonly __brand: "returnable";
@@ -264,47 +159,24 @@ export declare class Plugin extends BSBService<InstanceType<typeof Config>, type
264
159
  };
265
160
  readonly onReturnableEvents: {
266
161
  readonly calculate: {
267
- input: {
268
- _bsb: "object";
269
- properties: {
270
- readonly a: import("../../index").BSBNumberType;
271
- readonly b: import("../../index").BSBNumberType;
272
- };
273
- required: string[];
274
- description?: string;
275
- optional?: boolean;
276
- nullable?: boolean;
277
- };
278
- output: import("../../index").BSBNumberType;
162
+ input: av.ObjectSchema<{
163
+ a: import("../../index.js").BSBType;
164
+ b: import("../../index.js").BSBType;
165
+ }>;
166
+ output: import("../../index.js").BSBType;
279
167
  description?: string;
280
168
  defaultTimeout?: number;
281
169
  readonly __brand: "returnable";
282
170
  };
283
171
  readonly 'health.check': {
284
- input: {
285
- _bsb: "object";
286
- properties: {
287
- readonly includeDetails: import("../../index").BSBBooleanType;
288
- };
289
- required: string[];
290
- description?: string;
291
- optional?: boolean;
292
- nullable?: boolean;
293
- };
294
- output: {
295
- _bsb: "object";
296
- properties: {
297
- readonly status: import("../../index").BSBEnumType;
298
- readonly uptime: import("../../index").BSBNumberType;
299
- readonly details: import("../../index").BSBType & {
300
- optional: true;
301
- };
302
- };
303
- required: string[];
304
- description?: string;
305
- optional?: boolean;
306
- nullable?: boolean;
307
- };
172
+ input: av.ObjectSchema<{
173
+ includeDetails: av.BoolSchema;
174
+ }>;
175
+ output: av.ObjectSchema<{
176
+ status: av.EnumSchema<readonly (string | number)[]>;
177
+ uptime: import("../../index.js").BSBType;
178
+ details: av.OptionalSchema<av.RecordSchema<av.UnknownSchema>>;
179
+ }>;
308
180
  description?: string;
309
181
  defaultTimeout?: number;
310
182
  readonly __brand: "returnable";
@@ -312,35 +184,21 @@ export declare class Plugin extends BSBService<InstanceType<typeof Config>, type
312
184
  };
313
185
  readonly emitBroadcast: {
314
186
  readonly 'metrics.report': {
315
- input: {
316
- _bsb: "object";
317
- properties: {
318
- readonly timestamp: import("../../index").BSBStringType;
319
- readonly metrics: import("../../index").BSBType;
320
- readonly period: import("../../index").BSBStringType;
321
- };
322
- required: string[];
323
- description?: string;
324
- optional?: boolean;
325
- nullable?: boolean;
326
- };
187
+ input: av.ObjectSchema<{
188
+ timestamp: av.StringSchema;
189
+ metrics: av.RecordSchema<import("../../index.js").BSBType>;
190
+ period: av.StringSchema;
191
+ }>;
327
192
  description?: string;
328
193
  readonly __brand: "broadcast";
329
194
  };
330
195
  };
331
196
  readonly onBroadcast: {
332
197
  readonly 'emergency.stop': {
333
- input: {
334
- _bsb: "object";
335
- properties: {
336
- readonly reason: import("../../index").BSBStringType;
337
- readonly immediate: import("../../index").BSBBooleanType;
338
- };
339
- required: string[];
340
- description?: string;
341
- optional?: boolean;
342
- nullable?: boolean;
343
- };
198
+ input: av.ObjectSchema<{
199
+ reason: av.StringSchema;
200
+ immediate: av.BoolSchema;
201
+ }>;
344
202
  description?: string;
345
203
  readonly __brand: "broadcast";
346
204
  };
@@ -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,82 +24,80 @@
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 service_default1_1 = require("../service-default1");
33
- const service_default3_1 = require("../service-default3");
34
- const schema_events_1 = require("../../interfaces/schema-events");
35
- const zod_1 = require("zod");
36
- exports.Config = (0, base_1.createConfigSchema)({
27
+ import { ServiceClient } from "../../index.js";
28
+ import { BSBService, createConfigSchema, bsb, optional } from "../../base/index.js";
29
+ import { Plugin as Service1 } from "../service-default1/index.js";
30
+ import { Plugin as Service3 } from "../service-default3/index.js";
31
+ import { createEventSchemas, createFireAndForgetEvent, createReturnableEvent, createBroadcastEvent } from "../../interfaces/schema-events.js";
32
+ import * as av from "@anyvali/js";
33
+ export const Config = createConfigSchema({
37
34
  name: 'service-default2',
38
35
  description: 'Default service plugin 2 for testing inter-service communication',
39
36
  image: '../docs/public/assets/images/bsb-logo.png',
40
37
  tags: ['default', 'example', 'test'],
41
- }, zod_1.z.null());
42
- exports.EventSchemas = (0, schema_events_1.createEventSchemas)({
38
+ }, av.optional(av.object({}, { unknownKeys: "strip" })).default({}));
39
+ export const EventSchemas = createEventSchemas({
43
40
  // Events this service emits (fire-and-forget, first listener receives)
44
41
  emitEvents: {
45
- 'task.completed': (0, schema_events_1.createFireAndForgetEvent)(base_1.bsb.object({
46
- taskId: base_1.bsb.string({ description: 'Task identifier' }),
47
- duration: base_1.bsb.number({ description: 'Task duration in milliseconds' }),
48
- success: base_1.bsb.boolean('Whether the task completed successfully')
42
+ 'task.completed': createFireAndForgetEvent(bsb.object({
43
+ taskId: bsb.string({ description: 'Task identifier' }),
44
+ duration: bsb.number({ description: 'Task duration in milliseconds' }),
45
+ success: bsb.boolean('Whether the task completed successfully')
49
46
  }, 'Task completion parameters'), 'Emitted when a task is completed')
50
47
  },
51
48
  // Events this service listens to (fire-and-forget)
52
49
  onEvents: {
53
- 'task.assigned': (0, schema_events_1.createFireAndForgetEvent)(base_1.bsb.object({
54
- taskId: base_1.bsb.string({ description: 'Task identifier' }),
55
- type: base_1.bsb.string({ description: 'Task type' }),
56
- priority: base_1.bsb.enum(['low', 'medium', 'high', 'urgent'], 'Task priority level')
50
+ 'task.assigned': createFireAndForgetEvent(bsb.object({
51
+ taskId: bsb.string({ description: 'Task identifier' }),
52
+ type: bsb.string({ description: 'Task type' }),
53
+ priority: bsb.enum(['low', 'medium', 'high', 'urgent'], 'Task priority level')
57
54
  }, 'Task assignment parameters'), 'Handle new task assignments')
58
55
  },
59
56
  // Returnable events this service emits (requests from this service)
60
57
  emitReturnableEvents: {
61
- 'resource.request': (0, schema_events_1.createReturnableEvent)(base_1.bsb.object({
62
- resourceType: base_1.bsb.string({ description: 'Type of resource requested' }),
63
- amount: base_1.bsb.number({ description: 'Amount of resources needed' }),
64
- timeout: (0, base_1.optional)(base_1.bsb.number({ description: 'Request timeout in milliseconds' }))
65
- }, 'Resource request parameters'), base_1.bsb.object({
66
- allocated: base_1.bsb.boolean('Whether resources were allocated'),
67
- resourceId: (0, base_1.optional)(base_1.bsb.string({ description: 'Allocated resource identifier' })),
68
- waitTime: (0, base_1.optional)(base_1.bsb.number({ description: 'Wait time in milliseconds' }))
58
+ 'resource.request': createReturnableEvent(bsb.object({
59
+ resourceType: bsb.string({ description: 'Type of resource requested' }),
60
+ amount: bsb.number({ description: 'Amount of resources needed' }),
61
+ timeout: optional(bsb.number({ description: 'Request timeout in milliseconds' }))
62
+ }, 'Resource request parameters'), bsb.object({
63
+ allocated: bsb.boolean('Whether resources were allocated'),
64
+ resourceId: optional(bsb.string({ description: 'Allocated resource identifier' })),
65
+ waitTime: optional(bsb.number({ description: 'Wait time in milliseconds' }))
69
66
  }, 'Resource allocation response'), 'Request resource allocation')
70
67
  },
71
68
  // Returnable events this service listens to (requests to this service)
72
69
  onReturnableEvents: {
73
- calculate: (0, schema_events_1.createReturnableEvent)(base_1.bsb.object({
74
- a: base_1.bsb.number({ description: 'First number' }),
75
- b: base_1.bsb.number({ description: 'Second number' })
76
- }, 'Calculate input parameters'), base_1.bsb.number({ description: 'Calculation result' }), 'Calculate with two numbers'),
77
- 'health.check': (0, schema_events_1.createReturnableEvent)(base_1.bsb.object({
78
- includeDetails: base_1.bsb.boolean('Whether to include detailed information')
79
- }, 'Health check parameters'), base_1.bsb.object({
80
- status: base_1.bsb.enum(['healthy', 'degraded', 'unhealthy'], 'Service health status'),
81
- uptime: base_1.bsb.number({ description: 'Service uptime in milliseconds' }),
82
- details: (0, base_1.optional)(base_1.bsb.record(base_1.bsb.string({ description: 'Detail key' }), base_1.bsb.unknown('Detail value'), 'Health check details'))
70
+ calculate: createReturnableEvent(bsb.object({
71
+ a: bsb.number({ description: 'First number' }),
72
+ b: bsb.number({ description: 'Second number' })
73
+ }, 'Calculate input parameters'), bsb.number({ description: 'Calculation result' }), 'Calculate with two numbers'),
74
+ 'health.check': createReturnableEvent(bsb.object({
75
+ includeDetails: bsb.boolean('Whether to include detailed information')
76
+ }, 'Health check parameters'), bsb.object({
77
+ status: bsb.enum(['healthy', 'degraded', 'unhealthy'], 'Service health status'),
78
+ uptime: bsb.number({ description: 'Service uptime in milliseconds' }),
79
+ details: optional(bsb.record(bsb.string({ description: 'Detail key' }), bsb.unknown('Detail value'), 'Health check details'))
83
80
  }, 'Health check response'), 'Perform health check')
84
81
  },
85
82
  // Broadcast events this service emits (all listeners receive)
86
83
  emitBroadcast: {
87
- 'metrics.report': (0, schema_events_1.createBroadcastEvent)(base_1.bsb.object({
88
- timestamp: base_1.bsb.datetime('Metrics timestamp'),
89
- metrics: base_1.bsb.record(base_1.bsb.string({ description: 'Metric name' }), base_1.bsb.number({ description: 'Metric value' }), 'Performance metrics'),
90
- period: base_1.bsb.string({ description: 'Reporting period' })
84
+ 'metrics.report': createBroadcastEvent(bsb.object({
85
+ timestamp: bsb.datetime('Metrics timestamp'),
86
+ metrics: bsb.record(bsb.string({ description: 'Metric name' }), bsb.number({ description: 'Metric value' }), 'Performance metrics'),
87
+ period: bsb.string({ description: 'Reporting period' })
91
88
  }, 'Metrics report parameters'), 'Broadcast performance metrics')
92
89
  },
93
90
  // Broadcast events this service listens to
94
91
  onBroadcast: {
95
- 'emergency.stop': (0, schema_events_1.createBroadcastEvent)(base_1.bsb.object({
96
- reason: base_1.bsb.string({ description: 'Emergency stop reason' }),
97
- immediate: base_1.bsb.boolean('Whether to stop immediately without cleanup')
92
+ 'emergency.stop': createBroadcastEvent(bsb.object({
93
+ reason: bsb.string({ description: 'Emergency stop reason' }),
94
+ immediate: bsb.boolean('Whether to stop immediately without cleanup')
98
95
  }, 'Emergency stop parameters'), 'Listen for emergency stop broadcasts')
99
96
  }
100
97
  });
101
- class Plugin extends base_1.BSBService {
102
- static Config = exports.Config;
103
- static EventSchemas = exports.EventSchemas;
98
+ export class Plugin extends BSBService {
99
+ static Config = Config;
100
+ static EventSchemas = EventSchemas;
104
101
  // PLUGIN_CLIENT auto-generated from Config.metadata
105
102
  initBeforePlugins;
106
103
  runBeforePlugins;
@@ -110,8 +107,8 @@ class Plugin extends base_1.BSBService {
110
107
  service3;
111
108
  constructor(config) {
112
109
  super(config);
113
- this.service1 = new index_1.ServiceClient(service_default1_1.Plugin, this);
114
- this.service3 = new index_1.ServiceClient(service_default3_1.Plugin, this);
110
+ this.service1 = new ServiceClient(Service1, this);
111
+ this.service3 = new ServiceClient(Service3, this);
115
112
  }
116
113
  async init(obs) {
117
114
  this.events.onReturnableEvent("calculate", obs, async (obs, input) => {
@@ -132,5 +129,4 @@ class Plugin extends base_1.BSBService {
132
129
  obs.log.info("Calculation result: {result}", { result });
133
130
  }
134
131
  }
135
- exports.Plugin = Plugin;
136
132
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-default2/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-default2/index.ts"],"names":[],"mappings":"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"}