@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,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
|
|
30
|
-
export declare const Config: import("../../base").BSBPluginConfigClass<
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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<
|
|
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
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
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
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
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
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
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
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
-
|
|
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
|
-
},
|
|
42
|
-
|
|
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':
|
|
46
|
-
itemId:
|
|
47
|
-
result:
|
|
48
|
-
processingTime:
|
|
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':
|
|
54
|
-
itemId:
|
|
55
|
-
data:
|
|
56
|
-
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':
|
|
62
|
-
operation:
|
|
63
|
-
operands:
|
|
64
|
-
}, 'Calculation request parameters'),
|
|
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':
|
|
69
|
-
text:
|
|
70
|
-
transformation:
|
|
71
|
-
}, 'Text transformation parameters'),
|
|
72
|
-
calculate:
|
|
73
|
-
a:
|
|
74
|
-
b:
|
|
75
|
-
}, 'Calculation parameters'),
|
|
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':
|
|
80
|
-
status:
|
|
81
|
-
timestamp:
|
|
82
|
-
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':
|
|
88
|
-
section:
|
|
89
|
-
changes:
|
|
90
|
-
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
|
|
91
|
+
export class Plugin extends BSBService {
|
|
95
92
|
// v9: Required static properties for auto-generation
|
|
96
|
-
static Config =
|
|
97
|
-
static 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:
|
|
100
|
+
eventSchemas: EventSchemas
|
|
104
101
|
});
|
|
105
|
-
this.service0 = new
|
|
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":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/service-default1/index.ts"],"names":[],"mappings":"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"}
|