@bsb/base 9.0.5 → 9.1.1

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,61 +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 { BSBService, BSBServiceConstructor } from "../../base/BSBService";
28
- import { Observable } from "../../interfaces/observable";
29
- import { z } from "zod";
30
- export declare const Config: import("../../base").BSBPluginConfigClass<z.ZodNull>;
27
+ import { BSBService, BSBServiceConstructor } from "../../base/BSBService.js";
28
+ import { Observable } from "../../interfaces/observable.js";
29
+ import * as av from "@anyvali/js";
30
+ export declare const Config: import("../../base/PluginConfig.js").BSBPluginConfigClass<av.OptionalSchema<av.ObjectSchema<{}>>>;
31
31
  export declare const EventSchemas: {
32
32
  readonly emitEvents: {
33
33
  readonly 'data.processed': {
34
- input: {
35
- _bsb: "object";
36
- properties: {
37
- readonly itemId: import("../..").BSBStringType;
38
- readonly result: import("../..").BSBType;
39
- readonly processingTime: import("../..").BSBNumberType;
40
- };
41
- required: string[];
42
- description?: string;
43
- optional?: boolean;
44
- nullable?: boolean;
45
- };
34
+ input: av.ObjectSchema<{
35
+ itemId: av.StringSchema;
36
+ result: av.UnknownSchema;
37
+ processingTime: import("../../index.js").BSBType;
38
+ }>;
46
39
  description?: string;
47
40
  readonly __brand: "fire-and-forget";
48
41
  };
49
42
  };
50
43
  readonly onEvents: {
51
44
  readonly 'data.received': {
52
- input: {
53
- _bsb: "object";
54
- properties: {
55
- readonly itemId: import("../..").BSBStringType;
56
- readonly data: import("../..").BSBType;
57
- readonly source: import("../..").BSBStringType;
58
- };
59
- required: string[];
60
- description?: string;
61
- optional?: boolean;
62
- nullable?: boolean;
63
- };
45
+ input: av.ObjectSchema<{
46
+ itemId: av.StringSchema;
47
+ data: av.UnknownSchema;
48
+ source: av.StringSchema;
49
+ }>;
64
50
  description?: string;
65
51
  readonly __brand: "fire-and-forget";
66
52
  };
67
53
  };
68
54
  readonly emitReturnableEvents: {
69
55
  readonly 'calculation.request': {
70
- input: {
71
- _bsb: "object";
72
- properties: {
73
- readonly operation: import("../..").BSBEnumType;
74
- readonly operands: import("../..").BSBArrayType;
75
- };
76
- required: string[];
77
- description?: string;
78
- optional?: boolean;
79
- nullable?: boolean;
80
- };
81
- output: import("../..").BSBNumberType;
56
+ input: av.ObjectSchema<{
57
+ operation: av.EnumSchema<readonly (string | number)[]>;
58
+ operands: av.ArraySchema<import("../../index.js").BSBType>;
59
+ }>;
60
+ output: import("../../index.js").BSBType;
82
61
  description?: string;
83
62
  defaultTimeout?: number;
84
63
  readonly __brand: "returnable";
@@ -86,35 +65,21 @@ export declare const EventSchemas: {
86
65
  };
87
66
  readonly onReturnableEvents: {
88
67
  readonly 'text.transform': {
89
- input: {
90
- _bsb: "object";
91
- properties: {
92
- readonly text: import("../..").BSBStringType;
93
- readonly transformation: import("../..").BSBEnumType;
94
- };
95
- required: string[];
96
- description?: string;
97
- optional?: boolean;
98
- nullable?: boolean;
99
- };
100
- output: import("../..").BSBStringType;
68
+ input: av.ObjectSchema<{
69
+ text: av.StringSchema;
70
+ transformation: av.EnumSchema<readonly (string | number)[]>;
71
+ }>;
72
+ output: av.StringSchema;
101
73
  description?: string;
102
74
  defaultTimeout?: number;
103
75
  readonly __brand: "returnable";
104
76
  };
105
77
  readonly calculate: {
106
- input: {
107
- _bsb: "object";
108
- properties: {
109
- readonly a: import("../..").BSBNumberType;
110
- readonly b: import("../..").BSBNumberType;
111
- };
112
- required: string[];
113
- description?: string;
114
- optional?: boolean;
115
- nullable?: boolean;
116
- };
117
- output: import("../..").BSBNumberType;
78
+ input: av.ObjectSchema<{
79
+ a: import("../../index.js").BSBType;
80
+ b: import("../../index.js").BSBType;
81
+ }>;
82
+ output: import("../../index.js").BSBType;
118
83
  description?: string;
119
84
  defaultTimeout?: number;
120
85
  readonly __brand: "returnable";
@@ -122,96 +87,59 @@ export declare const EventSchemas: {
122
87
  };
123
88
  readonly emitBroadcast: {
124
89
  readonly 'service.status': {
125
- input: {
126
- _bsb: "object";
127
- properties: {
128
- readonly status: import("../..").BSBEnumType;
129
- readonly timestamp: import("../..").BSBStringType;
130
- readonly details: import("../..").BSBStringType & {
131
- optional: true;
132
- };
133
- };
134
- required: string[];
135
- description?: string;
136
- optional?: boolean;
137
- nullable?: boolean;
138
- };
90
+ input: av.ObjectSchema<{
91
+ status: av.EnumSchema<readonly (string | number)[]>;
92
+ timestamp: av.StringSchema;
93
+ details: av.OptionalSchema<av.StringSchema>;
94
+ }>;
139
95
  description?: string;
140
96
  readonly __brand: "broadcast";
141
97
  };
142
98
  };
143
99
  readonly onBroadcast: {
144
100
  readonly 'config.updated': {
145
- input: {
146
- _bsb: "object";
147
- properties: {
148
- readonly section: import("../..").BSBStringType;
149
- readonly changes: import("../..").BSBType;
150
- readonly version: import("../..").BSBStringType;
151
- };
152
- required: string[];
153
- description?: string;
154
- optional?: boolean;
155
- nullable?: boolean;
156
- };
101
+ input: av.ObjectSchema<{
102
+ section: av.StringSchema;
103
+ changes: av.RecordSchema<av.UnknownSchema>;
104
+ version: av.StringSchema;
105
+ }>;
157
106
  description?: string;
158
107
  readonly __brand: "broadcast";
159
108
  };
160
109
  };
161
110
  };
162
111
  export declare class Plugin extends BSBService<InstanceType<typeof Config>, typeof EventSchemas> {
163
- static Config: import("../../base").BSBPluginConfigClass<z.ZodNull>;
112
+ static Config: import("../../base/PluginConfig.js").BSBPluginConfigClass<av.OptionalSchema<av.ObjectSchema<{}>>>;
164
113
  static EventSchemas: {
165
114
  readonly emitEvents: {
166
115
  readonly 'data.processed': {
167
- input: {
168
- _bsb: "object";
169
- properties: {
170
- readonly itemId: import("../..").BSBStringType;
171
- readonly result: import("../..").BSBType;
172
- readonly processingTime: import("../..").BSBNumberType;
173
- };
174
- required: string[];
175
- description?: string;
176
- optional?: boolean;
177
- nullable?: boolean;
178
- };
116
+ input: av.ObjectSchema<{
117
+ itemId: av.StringSchema;
118
+ result: av.UnknownSchema;
119
+ processingTime: import("../../index.js").BSBType;
120
+ }>;
179
121
  description?: string;
180
122
  readonly __brand: "fire-and-forget";
181
123
  };
182
124
  };
183
125
  readonly onEvents: {
184
126
  readonly 'data.received': {
185
- input: {
186
- _bsb: "object";
187
- properties: {
188
- readonly itemId: import("../..").BSBStringType;
189
- readonly data: import("../..").BSBType;
190
- readonly source: import("../..").BSBStringType;
191
- };
192
- required: string[];
193
- description?: string;
194
- optional?: boolean;
195
- nullable?: boolean;
196
- };
127
+ input: av.ObjectSchema<{
128
+ itemId: av.StringSchema;
129
+ data: av.UnknownSchema;
130
+ source: av.StringSchema;
131
+ }>;
197
132
  description?: string;
198
133
  readonly __brand: "fire-and-forget";
199
134
  };
200
135
  };
201
136
  readonly emitReturnableEvents: {
202
137
  readonly 'calculation.request': {
203
- input: {
204
- _bsb: "object";
205
- properties: {
206
- readonly operation: import("../..").BSBEnumType;
207
- readonly operands: import("../..").BSBArrayType;
208
- };
209
- required: string[];
210
- description?: string;
211
- optional?: boolean;
212
- nullable?: boolean;
213
- };
214
- output: import("../..").BSBNumberType;
138
+ input: av.ObjectSchema<{
139
+ operation: av.EnumSchema<readonly (string | number)[]>;
140
+ operands: av.ArraySchema<import("../../index.js").BSBType>;
141
+ }>;
142
+ output: import("../../index.js").BSBType;
215
143
  description?: string;
216
144
  defaultTimeout?: number;
217
145
  readonly __brand: "returnable";
@@ -219,35 +147,21 @@ export declare class Plugin extends BSBService<InstanceType<typeof Config>, type
219
147
  };
220
148
  readonly onReturnableEvents: {
221
149
  readonly 'text.transform': {
222
- input: {
223
- _bsb: "object";
224
- properties: {
225
- readonly text: import("../..").BSBStringType;
226
- readonly transformation: import("../..").BSBEnumType;
227
- };
228
- required: string[];
229
- description?: string;
230
- optional?: boolean;
231
- nullable?: boolean;
232
- };
233
- output: import("../..").BSBStringType;
150
+ input: av.ObjectSchema<{
151
+ text: av.StringSchema;
152
+ transformation: av.EnumSchema<readonly (string | number)[]>;
153
+ }>;
154
+ output: av.StringSchema;
234
155
  description?: string;
235
156
  defaultTimeout?: number;
236
157
  readonly __brand: "returnable";
237
158
  };
238
159
  readonly calculate: {
239
- input: {
240
- _bsb: "object";
241
- properties: {
242
- readonly a: import("../..").BSBNumberType;
243
- readonly b: import("../..").BSBNumberType;
244
- };
245
- required: string[];
246
- description?: string;
247
- optional?: boolean;
248
- nullable?: boolean;
249
- };
250
- output: import("../..").BSBNumberType;
160
+ input: av.ObjectSchema<{
161
+ a: import("../../index.js").BSBType;
162
+ b: import("../../index.js").BSBType;
163
+ }>;
164
+ output: import("../../index.js").BSBType;
251
165
  description?: string;
252
166
  defaultTimeout?: number;
253
167
  readonly __brand: "returnable";
@@ -255,38 +169,22 @@ export declare class Plugin extends BSBService<InstanceType<typeof Config>, type
255
169
  };
256
170
  readonly emitBroadcast: {
257
171
  readonly 'service.status': {
258
- input: {
259
- _bsb: "object";
260
- properties: {
261
- readonly status: import("../..").BSBEnumType;
262
- readonly timestamp: import("../..").BSBStringType;
263
- readonly details: import("../..").BSBStringType & {
264
- optional: true;
265
- };
266
- };
267
- required: string[];
268
- description?: string;
269
- optional?: boolean;
270
- nullable?: boolean;
271
- };
172
+ input: av.ObjectSchema<{
173
+ status: av.EnumSchema<readonly (string | number)[]>;
174
+ timestamp: av.StringSchema;
175
+ details: av.OptionalSchema<av.StringSchema>;
176
+ }>;
272
177
  description?: string;
273
178
  readonly __brand: "broadcast";
274
179
  };
275
180
  };
276
181
  readonly onBroadcast: {
277
182
  readonly 'config.updated': {
278
- input: {
279
- _bsb: "object";
280
- properties: {
281
- readonly section: import("../..").BSBStringType;
282
- readonly changes: import("../..").BSBType;
283
- readonly version: import("../..").BSBStringType;
284
- };
285
- required: string[];
286
- description?: string;
287
- optional?: boolean;
288
- nullable?: boolean;
289
- };
183
+ input: av.ObjectSchema<{
184
+ section: av.StringSchema;
185
+ changes: av.RecordSchema<av.UnknownSchema>;
186
+ version: av.StringSchema;
187
+ }>;
290
188
  description?: string;
291
189
  readonly __brand: "broadcast";
292
190
  };
@@ -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,84 +24,82 @@
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 BSBService_1 = require("../../base/BSBService");
31
- const base_1 = require("../../base");
32
- const schema_events_1 = require("../../interfaces/schema-events");
33
- const service_default0_1 = require("../service-default0");
34
- const zod_1 = require("zod");
27
+ import { BSBService } from "../../base/BSBService.js";
28
+ import { ServiceClient, createConfigSchema, bsb, optional } from "../../base/index.js";
29
+ import { createFireAndForgetEvent, createReturnableEvent, createBroadcastEvent, createEventSchemas } from "../../interfaces/schema-events.js";
30
+ import { Plugin as Service0 } from "../service-default0/index.js";
31
+ import * as av from "@anyvali/js";
35
32
  // v9: Config with metadata (no configuration options for this service)
36
- exports.Config = (0, base_1.createConfigSchema)({
33
+ export const Config = createConfigSchema({
37
34
  name: 'service-default1',
38
35
  description: 'Default service demonstrating BSB event patterns',
39
36
  image: '../docs/public/assets/images/bsb-logo.png',
40
37
  tags: ['default', 'example'],
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
- 'data.processed': (0, schema_events_1.createFireAndForgetEvent)(base_1.bsb.object({
46
- itemId: base_1.bsb.string({ description: 'Processed item ID' }),
47
- result: base_1.bsb.unknown('Processing result'),
48
- processingTime: base_1.bsb.number({ description: 'Processing time in milliseconds' })
42
+ 'data.processed': createFireAndForgetEvent(bsb.object({
43
+ itemId: bsb.string({ description: 'Processed item ID' }),
44
+ result: bsb.unknown('Processing result'),
45
+ processingTime: bsb.number({ description: 'Processing time in milliseconds' })
49
46
  }, 'Data processing result'), 'Emitted when data processing is complete')
50
47
  },
51
48
  // Events this service listens to (fire-and-forget)
52
49
  onEvents: {
53
- 'data.received': (0, schema_events_1.createFireAndForgetEvent)(base_1.bsb.object({
54
- itemId: base_1.bsb.string({ description: 'Received item ID' }),
55
- data: base_1.bsb.unknown('Data payload'),
56
- source: base_1.bsb.string({ description: 'Data source' })
50
+ 'data.received': createFireAndForgetEvent(bsb.object({
51
+ itemId: bsb.string({ description: 'Received item ID' }),
52
+ data: bsb.unknown('Data payload'),
53
+ source: bsb.string({ description: 'Data source' })
57
54
  }, 'Received data parameters'), 'Handle incoming data for processing')
58
55
  },
59
56
  // Returnable events this service emits (requests from this service)
60
57
  emitReturnableEvents: {
61
- 'calculation.request': (0, schema_events_1.createReturnableEvent)(base_1.bsb.object({
62
- operation: base_1.bsb.enum(['add', 'subtract', 'multiply', 'divide'], 'Calculation operation'),
63
- operands: base_1.bsb.array(base_1.bsb.number({ description: 'Operand' }), { min: 2, description: 'List of operands' })
64
- }, 'Calculation request parameters'), base_1.bsb.number({ description: 'Calculation result' }), 'Request calculation from external service')
58
+ 'calculation.request': createReturnableEvent(bsb.object({
59
+ operation: bsb.enum(['add', 'subtract', 'multiply', 'divide'], 'Calculation operation'),
60
+ operands: bsb.array(bsb.number({ description: 'Operand' }), { min: 2, description: 'List of operands' })
61
+ }, 'Calculation request parameters'), bsb.number({ description: 'Calculation result' }), 'Request calculation from external service')
65
62
  },
66
63
  // Returnable events this service listens to (requests to this service)
67
64
  onReturnableEvents: {
68
- 'text.transform': (0, schema_events_1.createReturnableEvent)(base_1.bsb.object({
69
- text: base_1.bsb.string({ description: 'Text to transform' }),
70
- transformation: base_1.bsb.enum(['uppercase', 'lowercase', 'reverse', 'capitalize'], 'Transformation type')
71
- }, 'Text transformation parameters'), base_1.bsb.string({ description: 'Transformed text' }), 'Transform text according to specified operation'),
72
- calculate: (0, schema_events_1.createReturnableEvent)(base_1.bsb.object({
73
- a: base_1.bsb.number({ description: 'First number' }),
74
- b: base_1.bsb.number({ description: 'Second number' })
75
- }, 'Calculation parameters'), base_1.bsb.number({ description: 'Calculation result' }), 'Calculate with two numbers')
65
+ 'text.transform': createReturnableEvent(bsb.object({
66
+ text: bsb.string({ description: 'Text to transform' }),
67
+ transformation: bsb.enum(['uppercase', 'lowercase', 'reverse', 'capitalize'], 'Transformation type')
68
+ }, 'Text transformation parameters'), bsb.string({ description: 'Transformed text' }), 'Transform text according to specified operation'),
69
+ calculate: createReturnableEvent(bsb.object({
70
+ a: bsb.number({ description: 'First number' }),
71
+ b: bsb.number({ description: 'Second number' })
72
+ }, 'Calculation parameters'), bsb.number({ description: 'Calculation result' }), 'Calculate with two numbers')
76
73
  },
77
74
  // Broadcast events this service emits (all listeners receive)
78
75
  emitBroadcast: {
79
- 'service.status': (0, schema_events_1.createBroadcastEvent)(base_1.bsb.object({
80
- status: base_1.bsb.enum(['starting', 'ready', 'busy', 'stopping'], 'Service status'),
81
- timestamp: base_1.bsb.datetime('Status timestamp'),
82
- details: (0, base_1.optional)(base_1.bsb.string({ description: 'Status details' }))
76
+ 'service.status': createBroadcastEvent(bsb.object({
77
+ status: bsb.enum(['starting', 'ready', 'busy', 'stopping'], 'Service status'),
78
+ timestamp: bsb.datetime('Status timestamp'),
79
+ details: optional(bsb.string({ description: 'Status details' }))
83
80
  }, 'Service status parameters'), 'Broadcast service status updates')
84
81
  },
85
82
  // Broadcast events this service listens to
86
83
  onBroadcast: {
87
- 'config.updated': (0, schema_events_1.createBroadcastEvent)(base_1.bsb.object({
88
- section: base_1.bsb.string({ description: 'Configuration section' }),
89
- changes: base_1.bsb.record(base_1.bsb.string({ description: 'Setting name' }), base_1.bsb.unknown('Setting value'), 'Configuration changes'),
90
- version: base_1.bsb.string({ description: 'Configuration version' })
84
+ 'config.updated': createBroadcastEvent(bsb.object({
85
+ section: bsb.string({ description: 'Configuration section' }),
86
+ changes: bsb.record(bsb.string({ description: 'Setting name' }), bsb.unknown('Setting value'), 'Configuration changes'),
87
+ version: bsb.string({ description: 'Configuration version' })
91
88
  }, 'Config update parameters'), 'Listen for configuration update broadcasts')
92
89
  }
93
90
  });
94
- class Plugin extends BSBService_1.BSBService {
91
+ export class Plugin extends BSBService {
95
92
  // v9: Required static properties for auto-generation
96
- static Config = exports.Config;
97
- static EventSchemas = exports.EventSchemas;
93
+ static Config = Config;
94
+ static EventSchemas = EventSchemas;
98
95
  // PLUGIN_CLIENT is now auto-generated from Config.metadata
99
96
  service0;
100
97
  constructor(config) {
101
98
  super({
102
99
  ...config,
103
- eventSchemas: exports.EventSchemas
100
+ eventSchemas: EventSchemas
104
101
  });
105
- this.service0 = new base_1.ServiceClient(service_default0_1.Plugin, this);
102
+ this.service0 = new ServiceClient(Service0, this);
106
103
  }
107
104
  initBeforePlugins;
108
105
  initAfterPlugins;
@@ -174,5 +171,4 @@ class Plugin extends BSBService_1.BSBService {
174
171
  });
175
172
  }
176
173
  }
177
- exports.Plugin = Plugin;
178
174
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-default1/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-default1/index.ts"],"names":[],"mappings":"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"}