@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.
- package/lib/base/BSBConfig.d.ts +3 -3
- package/lib/base/BSBConfig.js +9 -14
- package/lib/base/BSBConfig.js.map +1 -1
- package/lib/base/BSBEvents.d.ts +3 -3
- package/lib/base/BSBEvents.js +12 -17
- package/lib/base/BSBEvents.js.map +1 -1
- package/lib/base/BSBObservable.d.ts +4 -4
- package/lib/base/BSBObservable.js +17 -22
- package/lib/base/BSBObservable.js.map +1 -1
- package/lib/base/BSBService.d.ts +7 -8
- package/lib/base/BSBService.js +17 -22
- package/lib/base/BSBService.js.map +1 -1
- package/lib/base/BSBServiceClient.d.ts +4 -4
- package/lib/base/BSBServiceClient.js +12 -18
- package/lib/base/BSBServiceClient.js.map +1 -1
- package/lib/base/EventValidator.d.ts +16 -17
- package/lib/base/EventValidator.js +13 -34
- package/lib/base/EventValidator.js.map +1 -1
- package/lib/base/ObservableBackend.d.ts +2 -2
- package/lib/base/ObservableBackend.js +21 -26
- package/lib/base/ObservableBackend.js.map +1 -1
- package/lib/base/PluginConfig.d.ts +9 -5
- package/lib/base/PluginConfig.js +4 -11
- package/lib/base/PluginConfig.js.map +1 -1
- package/lib/base/PluginEvents.d.ts +4 -4
- package/lib/base/PluginEvents.js +4 -9
- package/lib/base/PluginEvents.js.map +1 -1
- package/lib/base/PluginObservable.d.ts +13 -14
- package/lib/base/PluginObservable.js +4 -8
- package/lib/base/PluginObservable.js.map +1 -1
- package/lib/base/ResourceContext.d.ts +1 -1
- package/lib/base/ResourceContext.js +1 -5
- package/lib/base/ResourceContext.js.map +1 -1
- package/lib/base/base.d.ts +3 -3
- package/lib/base/base.js +10 -18
- package/lib/base/base.js.map +1 -1
- package/lib/base/errorMessages.d.ts +1 -1
- package/lib/base/errorMessages.js +6 -11
- package/lib/base/errorMessages.js.map +1 -1
- package/lib/base/factory.d.ts +1 -1
- package/lib/base/factory.js +19 -22
- package/lib/base/factory.js.map +1 -1
- package/lib/base/functions.d.ts +19 -14
- package/lib/base/functions.js +19 -26
- package/lib/base/functions.js.map +1 -1
- package/lib/base/index.d.ts +18 -18
- package/lib/base/index.js +18 -37
- package/lib/base/index.js.map +1 -1
- package/lib/base/logFormatter.d.ts +1 -1
- package/lib/base/logFormatter.js +10 -14
- package/lib/base/logFormatter.js.map +1 -1
- package/lib/base/module-runtime.d.ts +3 -0
- package/lib/base/module-runtime.js +15 -0
- package/lib/base/module-runtime.js.map +1 -0
- package/lib/base/tools.d.ts +1 -1
- package/lib/base/tools.js +9 -13
- package/lib/base/tools.js.map +1 -1
- package/lib/cli.js +13 -12
- package/lib/cli.js.map +1 -1
- package/lib/dev.js +22 -11
- package/lib/dev.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +3 -19
- package/lib/index.js.map +1 -1
- package/lib/interfaces/events.d.ts +2 -2
- package/lib/interfaces/events.js +1 -4
- package/lib/interfaces/events.js.map +1 -1
- package/lib/interfaces/index.d.ts +13 -12
- package/lib/interfaces/index.js +12 -32
- package/lib/interfaces/index.js.map +1 -1
- package/lib/interfaces/logging.d.ts +3 -3
- package/lib/interfaces/logging.js +1 -4
- package/lib/interfaces/logging.js.map +1 -1
- package/lib/interfaces/metrics.d.ts +2 -2
- package/lib/interfaces/metrics.js +1 -5
- package/lib/interfaces/metrics.js.map +1 -1
- package/lib/interfaces/observable-types.d.ts +1 -1
- package/lib/interfaces/observable-types.js +1 -4
- package/lib/interfaces/observable-types.js.map +1 -1
- package/lib/interfaces/observable.d.ts +8 -9
- package/lib/interfaces/observable.js +1 -2
- package/lib/interfaces/observable.js.map +1 -1
- package/lib/interfaces/options.d.ts +15 -6
- package/lib/interfaces/options.js +2 -5
- package/lib/interfaces/options.js.map +1 -1
- package/lib/interfaces/plugins.d.ts +2 -2
- package/lib/interfaces/plugins.js +1 -4
- package/lib/interfaces/plugins.js.map +1 -1
- package/lib/interfaces/result.js +8 -18
- package/lib/interfaces/result.js.map +1 -1
- package/lib/interfaces/schema-events.d.ts +4 -19
- package/lib/interfaces/schema-events.js +6 -13
- package/lib/interfaces/schema-events.js.map +1 -1
- package/lib/interfaces/schema-types.d.ts +32 -352
- package/lib/interfaces/schema-types.js +77 -512
- package/lib/interfaces/schema-types.js.map +1 -1
- package/lib/interfaces/service.d.ts +1 -1
- package/lib/interfaces/service.js +1 -2
- package/lib/interfaces/service.js.map +1 -1
- package/lib/interfaces/tools.js +8 -13
- package/lib/interfaces/tools.js.map +1 -1
- package/lib/plugins/config-default/index.d.ts +16 -14
- package/lib/plugins/config-default/index.js +66 -49
- package/lib/plugins/config-default/index.js.map +1 -1
- package/lib/plugins/config-default/interfaces.d.ts +1 -1
- package/lib/plugins/config-default/interfaces.js +1 -2
- package/lib/plugins/config-default/interfaces.js.map +1 -1
- package/lib/plugins/events-default/events/broadcast.d.ts +1 -1
- package/lib/plugins/events-default/events/broadcast.js +2 -6
- package/lib/plugins/events-default/events/broadcast.js.map +1 -1
- package/lib/plugins/events-default/events/emit.d.ts +1 -1
- package/lib/plugins/events-default/events/emit.js +4 -8
- package/lib/plugins/events-default/events/emit.js.map +1 -1
- package/lib/plugins/events-default/events/emitAndReturn.d.ts +1 -1
- package/lib/plugins/events-default/events/emitAndReturn.js +4 -8
- package/lib/plugins/events-default/events/emitAndReturn.js.map +1 -1
- package/lib/plugins/events-default/events/emitStreamAndReceiveStream.d.ts +1 -1
- package/lib/plugins/events-default/events/emitStreamAndReceiveStream.js +8 -12
- package/lib/plugins/events-default/events/emitStreamAndReceiveStream.js.map +1 -1
- package/lib/plugins/events-default/events/index.d.ts +4 -4
- package/lib/plugins/events-default/events/index.js +4 -11
- package/lib/plugins/events-default/events/index.js.map +1 -1
- package/lib/plugins/events-default/index.d.ts +5 -5
- package/lib/plugins/events-default/index.js +10 -14
- package/lib/plugins/events-default/index.js.map +1 -1
- package/lib/plugins/observable-default/index.d.ts +5 -5
- package/lib/plugins/observable-default/index.js +8 -12
- package/lib/plugins/observable-default/index.js.map +1 -1
- package/lib/plugins/service-benchmarkify/index.d.ts +69 -185
- package/lib/plugins/service-benchmarkify/index.js +39 -43
- package/lib/plugins/service-benchmarkify/index.js.map +1 -1
- package/lib/plugins/service-default0/index.d.ts +73 -171
- package/lib/plugins/service-default0/index.js +36 -40
- package/lib/plugins/service-default0/index.js.map +1 -1
- package/lib/plugins/service-default1/client.d.ts +3 -3
- package/lib/plugins/service-default1/client.js +2 -6
- package/lib/plugins/service-default1/client.js.map +1 -1
- package/lib/plugins/service-default1/index.d.ts +75 -177
- package/lib/plugins/service-default1/index.js +41 -45
- package/lib/plugins/service-default1/index.js.map +1 -1
- package/lib/plugins/service-default2/index.d.ts +89 -231
- package/lib/plugins/service-default2/index.js +47 -51
- package/lib/plugins/service-default2/index.js.map +1 -1
- package/lib/plugins/service-default3/index.d.ts +23 -51
- package/lib/plugins/service-default3/index.js +16 -20
- package/lib/plugins/service-default3/index.js.map +1 -1
- package/lib/plugins/service-default4/index.d.ts +13 -27
- package/lib/plugins/service-default4/index.js +12 -16
- package/lib/plugins/service-default4/index.js.map +1 -1
- package/lib/schemas/config-default.json +24 -16
- package/lib/schemas/config-default.plugin.json +24 -16
- package/lib/schemas/events-default.json +1 -1
- package/lib/schemas/events-default.plugin.json +1 -1
- package/lib/schemas/observable-default.json +15 -5
- package/lib/schemas/observable-default.plugin.json +15 -5
- package/lib/schemas/service-benchmarkify.json +232 -147
- package/lib/schemas/service-default0.json +205 -142
- package/lib/schemas/service-default1.json +245 -160
- package/lib/schemas/service-default2.json +270 -183
- package/lib/schemas/service-default3.json +78 -36
- package/lib/schemas/service-default4.json +45 -15
- package/lib/scripts/bsb-client-cli.js +9 -9
- package/lib/scripts/bsb-client-cli.js.map +1 -1
- package/lib/scripts/bsb-plugin-cli.js +48 -50
- package/lib/scripts/bsb-plugin-cli.js.map +1 -1
- package/lib/scripts/export-schemas.js +8 -10
- package/lib/scripts/export-schemas.js.map +1 -1
- package/lib/scripts/extract-schemas-from-source.js +73 -56
- package/lib/scripts/extract-schemas-from-source.js.map +1 -1
- package/lib/scripts/generate-client-types.d.ts +1 -16
- package/lib/scripts/generate-client-types.js +120 -313
- package/lib/scripts/generate-client-types.js.map +1 -1
- package/lib/scripts/generate-plugin-json.js +9 -10
- package/lib/scripts/generate-plugin-json.js.map +1 -1
- package/lib/serviceBase/config.d.ts +4 -4
- package/lib/serviceBase/config.js +33 -35
- package/lib/serviceBase/config.js.map +1 -1
- package/lib/serviceBase/events.d.ts +6 -6
- package/lib/serviceBase/events.js +42 -44
- package/lib/serviceBase/events.js.map +1 -1
- package/lib/serviceBase/index.d.ts +7 -7
- package/lib/serviceBase/index.js +7 -23
- package/lib/serviceBase/index.js.map +1 -1
- package/lib/serviceBase/observable.d.ts +5 -5
- package/lib/serviceBase/observable.js +21 -25
- package/lib/serviceBase/observable.js.map +1 -1
- package/lib/serviceBase/plugins.d.ts +3 -3
- package/lib/serviceBase/plugins.js +47 -53
- package/lib/serviceBase/plugins.js.map +1 -1
- package/lib/serviceBase/serviceBase.d.ts +3 -3
- package/lib/serviceBase/serviceBase.js +40 -44
- package/lib/serviceBase/serviceBase.js.map +1 -1
- package/lib/serviceBase/services.d.ts +6 -6
- package/lib/serviceBase/services.js +21 -22
- package/lib/serviceBase/services.js.map +1 -1
- 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
|
|
30
|
-
export declare const Config: import("../../index").BSBPluginConfigClass<
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
53
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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<
|
|
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
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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
|
-
|
|
190
|
-
|
|
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
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
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
|
-
|
|
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
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
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
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
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
|
-
},
|
|
41
|
-
|
|
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':
|
|
45
|
-
name:
|
|
46
|
-
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':
|
|
52
|
-
testName:
|
|
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':
|
|
58
|
-
iterations:
|
|
59
|
-
warmup:
|
|
60
|
-
}, 'Performance test parameters'),
|
|
61
|
-
duration:
|
|
62
|
-
opsPerSecond:
|
|
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:
|
|
68
|
-
a:
|
|
69
|
-
b:
|
|
70
|
-
}, 'Add input parameters'),
|
|
71
|
-
void:
|
|
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':
|
|
76
|
-
testName:
|
|
77
|
-
results:
|
|
78
|
-
operation:
|
|
79
|
-
opsPerSecond:
|
|
80
|
-
duration:
|
|
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:
|
|
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':
|
|
88
|
-
cpuUsage:
|
|
89
|
-
memoryUsage:
|
|
90
|
-
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
|
|
95
|
-
static Config =
|
|
96
|
-
static 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
|
|
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":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-benchmarkify/index.ts"],"names":[],"mappings":"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"}
|