@bsb/base 9.4.2 → 9.5.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 (57) hide show
  1. package/README.md +6 -5
  2. package/lib/base/BSBEvents.d.ts +3 -3
  3. package/lib/base/BSBObservable.d.ts +2 -2
  4. package/lib/base/BSBService.d.ts +6 -6
  5. package/lib/base/BSBService.js +4 -4
  6. package/lib/base/PluginConfig.d.ts +6 -3
  7. package/lib/base/PluginConfig.js.map +1 -1
  8. package/lib/base/base.d.ts +6 -7
  9. package/lib/base/base.js.map +1 -1
  10. package/lib/base/functions.js +6 -6
  11. package/lib/base/functions.js.map +1 -1
  12. package/lib/interfaces/plugins.d.ts +1 -1
  13. package/lib/interfaces/plugins.js +1 -1
  14. package/lib/interfaces/schema-events.d.ts +9 -2
  15. package/lib/interfaces/schema-events.js +93 -6
  16. package/lib/interfaces/schema-events.js.map +1 -1
  17. package/lib/plugins/config-default/index.d.ts +4 -4
  18. package/lib/plugins/config-default/index.js +3 -3
  19. package/lib/plugins/config-default/index.js.map +1 -1
  20. package/lib/plugins/observable-default/index.js +2 -1
  21. package/lib/plugins/observable-default/index.js.map +1 -1
  22. package/lib/plugins/service-benchmarkify/index.js +2 -1
  23. package/lib/plugins/service-benchmarkify/index.js.map +1 -1
  24. package/lib/plugins/service-default0/index.js +3 -3
  25. package/lib/plugins/service-default0/index.js.map +1 -1
  26. package/lib/plugins/service-default1/index.js +2 -1
  27. package/lib/plugins/service-default1/index.js.map +1 -1
  28. package/lib/plugins/service-default2/index.js +2 -1
  29. package/lib/plugins/service-default2/index.js.map +1 -1
  30. package/lib/plugins/service-default3/index.d.ts +2 -2
  31. package/lib/plugins/service-default3/index.js +3 -1
  32. package/lib/plugins/service-default3/index.js.map +1 -1
  33. package/lib/plugins/service-default4/index.js +2 -1
  34. package/lib/plugins/service-default4/index.js.map +1 -1
  35. package/lib/schemas/config-default.json +18 -12
  36. package/lib/schemas/config-default.plugin.json +18 -12
  37. package/lib/schemas/observable-default.json +8 -2
  38. package/lib/schemas/observable-default.plugin.json +8 -2
  39. package/lib/schemas/service-benchmarkify.json +8 -2
  40. package/lib/schemas/service-default0.json +14 -3
  41. package/lib/schemas/service-default1.json +8 -2
  42. package/lib/schemas/service-default2.json +8 -2
  43. package/lib/schemas/service-default3.json +8 -8
  44. package/lib/schemas/service-default4.json +8 -2
  45. package/lib/scripts/generate-client-types.d.ts +3 -1
  46. package/lib/scripts/generate-client-types.js +24 -7
  47. package/lib/scripts/generate-client-types.js.map +1 -1
  48. package/lib/serviceBase/events.js +4 -8
  49. package/lib/serviceBase/events.js.map +1 -1
  50. package/lib/serviceBase/observable.js +7 -2
  51. package/lib/serviceBase/observable.js.map +1 -1
  52. package/lib/serviceBase/plugin-config.d.ts +14 -0
  53. package/lib/serviceBase/plugin-config.js +11 -0
  54. package/lib/serviceBase/plugin-config.js.map +1 -0
  55. package/lib/serviceBase/services.js +5 -10
  56. package/lib/serviceBase/services.js.map +1 -1
  57. package/package.json +9 -10
package/README.md CHANGED
@@ -56,7 +56,7 @@ v9 introduces breaking changes focused on type safety, developer experience, and
56
56
  **Type Safety Improvements:**
57
57
  - `createEventSchemas()` - No more `as const` required, automatic type inference
58
58
  - Type branding - Compile-time validation that event types match categories
59
- - Duplicate name detection - Warns about confusing duplicate event names
59
+ - Duplicate name validation - Builds fail when an EventSchemas key is reused across categories
60
60
 
61
61
  **Simplified Configuration:**
62
62
  - `createConfigSchema()` - Single function replaces class pattern
@@ -135,8 +135,8 @@ Built-in plugin types include: `config-*`, `observable-*`, `events-*`, `service-
135
135
  - `npm run build`: Clean -> tsc -> tests -> generate docs -> export schemas -> generate plugin metadata
136
136
  - `npm run build-release`: Compile using `tsconfig-release.json`
137
137
  - `npm run lint`: ESLint over `src/`
138
- - `npm test`: Mocha + NYC coverage in TS mode
139
- - `npm run testDev`: Run tests without coverage (faster for development)
138
+ - `npm test`: Mocha in TS mode with JSON reporter output
139
+ - `npm run testDev`: Run tests with the default Mocha reporter
140
140
  - `npm run generate-docs`: Generate TypeDoc JSON to `docs.json`
141
141
  - API Reference: Hosted at `https://types.bsbcode.dev/nodejs/`
142
142
  - `npm run export-schemas`: Export event schemas to `lib/schemas/{plugin-name}.json`
@@ -200,8 +200,8 @@ Notes
200
200
  - API docs are served at `https://types.bsbcode.dev/nodejs/`
201
201
 
202
202
  ### Testing
203
- - Tests: Mocha + ts-node with NYC coverage
204
- - `npm test` -> CI-style JSON + lcov reports (`coverage/`)
203
+ - Tests: Mocha + tsx
204
+ - `npm test` -> CI-style JSON output (`junit.json`)
205
205
  - `npm run testDev` -> dev-friendly TS execution
206
206
 
207
207
  ### Creating Plugins
@@ -210,6 +210,7 @@ Notes
210
210
 
211
211
  Quick reference:
212
212
  - Use `createEventSchemas()` to define typed events with compile-time validation
213
+ - Keep each EventSchemas key unique across emit/on and event type categories
213
214
  - Use `createConfigSchema()` to define plugin configuration with metadata
214
215
  - Use cross-language type helpers (`uuid`, `int32`, `datetime`, etc.) for better code generation
215
216
  - Plugin metadata auto-generates `PLUGIN_CLIENT` and schema files during build
@@ -26,16 +26,16 @@
26
26
  */
27
27
  import { Readable } from "node:stream";
28
28
  import { BaseWithObservableAndConfig, BaseWithObservableAndConfigConfig } from "./base.js";
29
- import { BSBReferencePluginConfigDefinition, BSBReferencePluginConfigType, BSBReferenceConfigType } from "./PluginConfig.js";
29
+ import { BSBReferencePluginConfigDefinition, BSBReferencePluginConfigType } from "./PluginConfig.js";
30
30
  import { Observable } from '../interfaces/observable.js';
31
- export interface BSBEventsConstructor<ReferencedConfig extends BSBReferencePluginConfigType = any> extends BaseWithObservableAndConfigConfig<ReferencedConfig extends null ? null : BSBReferencePluginConfigDefinition<ReferencedConfig> & BSBReferenceConfigType> {
31
+ export interface BSBEventsConstructor<ReferencedConfig extends BSBReferencePluginConfigType = any> extends BaseWithObservableAndConfigConfig<ReferencedConfig extends null ? null : BSBReferencePluginConfigDefinition<ReferencedConfig>> {
32
32
  }
33
33
  /**
34
34
  * @group Events
35
35
  * @category Plugins
36
36
  * @see {@link https://bsbcode.dev/languages/nodejs/types/classes/BSBEvents.html | API: BSBEvents}
37
37
  */
38
- export declare abstract class BSBEvents<ReferencedConfig extends BSBReferencePluginConfigType = any> extends BaseWithObservableAndConfig<ReferencedConfig extends null ? null : BSBReferencePluginConfigDefinition<ReferencedConfig> & BSBReferenceConfigType> {
38
+ export declare abstract class BSBEvents<ReferencedConfig extends BSBReferencePluginConfigType = any> extends BaseWithObservableAndConfig<ReferencedConfig extends null ? null : BSBReferencePluginConfigDefinition<ReferencedConfig>> {
39
39
  constructor(config: BSBEventsConstructor<ReferencedConfig>);
40
40
  /**
41
41
  * Run lifecycle method for events plugins.
@@ -28,7 +28,7 @@ import { DTrace, LogMeta } from "../interfaces/index.js";
28
28
  import { BaseWithConfig, BaseWithConfigConfig } from "./base.js";
29
29
  import { BSBError } from "./errorMessages.js";
30
30
  import { BSBReferencePluginConfigDefinition, BSBReferencePluginConfigType } from "./PluginConfig.js";
31
- export interface BSBObservableConstructor<ReferencedConfig extends BSBReferencePluginConfigType = any> extends BaseWithConfigConfig<ReferencedConfig extends null ? null : BSBReferencePluginConfigDefinition<ReferencedConfig> & any> {
31
+ export interface BSBObservableConstructor<ReferencedConfig extends BSBReferencePluginConfigType = any> extends BaseWithConfigConfig<ReferencedConfig extends null ? null : BSBReferencePluginConfigDefinition<ReferencedConfig>> {
32
32
  }
33
33
  /**
34
34
  * Unified Observable plugin base class for logging, metrics, and tracing
@@ -37,7 +37,7 @@ export interface BSBObservableConstructor<ReferencedConfig extends BSBReferenceP
37
37
  * @template ReferencedConfig - The type of configuration for the plugin
38
38
  * @see {@link https://bsbcode.dev/languages/nodejs/types/classes/BSBObservable.html | API: BSBObservable}
39
39
  */
40
- export declare abstract class BSBObservable<ReferencedConfig extends BSBReferencePluginConfigType = any> extends BaseWithConfig<ReferencedConfig extends null ? null : BSBReferencePluginConfigDefinition<ReferencedConfig> & any> {
40
+ export declare abstract class BSBObservable<ReferencedConfig extends BSBReferencePluginConfigType = any> extends BaseWithConfig<ReferencedConfig extends null ? null : BSBReferencePluginConfigDefinition<ReferencedConfig>> {
41
41
  constructor(config: BSBObservableConstructor<ReferencedConfig>);
42
42
  /**
43
43
  * Logging: Debug level
@@ -33,7 +33,7 @@ import { PluginEvents } from "./PluginEvents.js";
33
33
  /**
34
34
  * @hidden
35
35
  */
36
- export interface BSBServiceConstructor<ReferencedConfig extends BSBReferencePluginConfigType = any, TEventSchemas extends BSBEventSchemas = BSBEventSchemas> extends BaseWithObservableAndConfigConfig<ReferencedConfig extends null ? null : BSBReferencePluginConfigDefinition<ReferencedConfig> & any> {
36
+ export interface BSBServiceConstructor<ReferencedConfig extends BSBReferencePluginConfigType = any, TEventSchemas extends BSBEventSchemas = BSBEventSchemas> extends BaseWithObservableAndConfigConfig<ReferencedConfig extends null ? null : BSBReferencePluginConfigDefinition<ReferencedConfig>> {
37
37
  sbEvents: SBEvents;
38
38
  sbObservable: SBObservable;
39
39
  eventSchemas?: TEventSchemas;
@@ -73,13 +73,13 @@ export interface BSBServiceClientDefinition {
73
73
  * ConfigSchema
74
74
  * );
75
75
  *
76
- * export class Plugin extends BSBService<typeof Config, typeof EventSchemas> {
76
+ * export class Plugin extends BSBService<InstanceType<typeof Config>, typeof EventSchemas> {
77
77
  * static Config = Config; // Required for auto-generation
78
78
  * // PLUGIN_CLIENT is auto-generated from Config.metadata
79
79
  * }
80
80
  * ```
81
81
  */
82
- export declare abstract class BSBService<ReferencedConfig extends BSBReferencePluginConfigType = any, TEventSchemas extends BSBEventSchemas = BSBEventSchemas> extends BaseWithObservableAndConfig<ReferencedConfig extends null ? null : BSBReferencePluginConfigDefinition<ReferencedConfig> & any> {
82
+ export declare abstract class BSBService<ReferencedConfig extends BSBReferencePluginConfigType = any, TEventSchemas extends BSBEventSchemas = BSBEventSchemas> extends BaseWithObservableAndConfig<ReferencedConfig extends null ? null : BSBReferencePluginConfigDefinition<ReferencedConfig>> {
83
83
  /**
84
84
  * Static reference to the Config class created with createConfigSchema().
85
85
  * Required for auto-generating PLUGIN_CLIENT identity from metadata.
@@ -114,7 +114,7 @@ export declare abstract class BSBService<ReferencedConfig extends BSBReferencePl
114
114
  * @example
115
115
  * ```typescript
116
116
  * // In your plugin class:
117
- * export class Plugin extends BSBService<typeof Config, typeof EventSchemas> {
117
+ * export class Plugin extends BSBService<InstanceType<typeof Config>, typeof EventSchemas> {
118
118
  * static Config = Config;
119
119
  * static EventSchemas = EventSchemas;
120
120
  * }
@@ -221,10 +221,10 @@ export declare abstract class BSBService<ReferencedConfig extends BSBReferencePl
221
221
  *
222
222
  * @example
223
223
  * ```typescript
224
- * export class Plugin extends BSBService<typeof Config, typeof EventSchemas> {
224
+ * export class Plugin extends BSBService<InstanceType<typeof Config>, typeof EventSchemas> {
225
225
  * private self;
226
226
  *
227
- * constructor(config: BSBServiceConstructor<typeof Config, typeof EventSchemas>) {
227
+ * constructor(config: BSBServiceConstructor<InstanceType<typeof Config>, typeof EventSchemas>) {
228
228
  * super({ ...config, eventSchemas: EventSchemas });
229
229
  *
230
230
  * // Create self-client for HTTP handler to call own events
@@ -58,7 +58,7 @@ import { bsb } from "../interfaces/schema-types.js";
58
58
  * ConfigSchema
59
59
  * );
60
60
  *
61
- * export class Plugin extends BSBService<typeof Config, typeof EventSchemas> {
61
+ * export class Plugin extends BSBService<InstanceType<typeof Config>, typeof EventSchemas> {
62
62
  * static Config = Config; // Required for auto-generation
63
63
  * // PLUGIN_CLIENT is auto-generated from Config.metadata
64
64
  * }
@@ -132,7 +132,7 @@ export class BSBService extends BaseWithObservableAndConfig {
132
132
  * @example
133
133
  * ```typescript
134
134
  * // In your plugin class:
135
- * export class Plugin extends BSBService<typeof Config, typeof EventSchemas> {
135
+ * export class Plugin extends BSBService<InstanceType<typeof Config>, typeof EventSchemas> {
136
136
  * static Config = Config;
137
137
  * static EventSchemas = EventSchemas;
138
138
  * }
@@ -274,10 +274,10 @@ export class BSBService extends BaseWithObservableAndConfig {
274
274
  *
275
275
  * @example
276
276
  * ```typescript
277
- * export class Plugin extends BSBService<typeof Config, typeof EventSchemas> {
277
+ * export class Plugin extends BSBService<InstanceType<typeof Config>, typeof EventSchemas> {
278
278
  * private self;
279
279
  *
280
- * constructor(config: BSBServiceConstructor<typeof Config, typeof EventSchemas>) {
280
+ * constructor(config: BSBServiceConstructor<InstanceType<typeof Config>, typeof EventSchemas>) {
281
281
  * super({ ...config, eventSchemas: EventSchemas });
282
282
  *
283
283
  * // Create self-client for HTTP handler to call own events
@@ -142,8 +142,11 @@ export declare class BSBPluginConfigRef extends BSBPluginConfig<any> {
142
142
  * // v9 pattern:
143
143
  * const TodoConfigSchema = av.object({
144
144
  * database: av.object({
145
- * host: av.optional(av.string()).default('localhost'),
146
- * port: av.optional(av.int32()).default(5432),
145
+ * // .default() makes the key optional in config files while keeping the
146
+ * // inferred type non-optional. Only wrap in av.optional() when there is
147
+ * // no default and the field may genuinely be absent.
148
+ * host: av.string().default('localhost'),
149
+ * port: av.int32().default(5432),
147
150
  * }),
148
151
  * });
149
152
  *
@@ -157,7 +160,7 @@ export declare class BSBPluginConfigRef extends BSBPluginConfig<any> {
157
160
  * );
158
161
  *
159
162
  * // Usage in plugin:
160
- * export class Plugin extends BSBService<typeof Config, typeof EventSchemas> {
163
+ * export class Plugin extends BSBService<InstanceType<typeof Config>, typeof EventSchemas> {
161
164
  * static Config = Config; // Required for auto-generation
162
165
  * }
163
166
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"PluginConfig.js","sourceRoot":"","sources":["../../src/base/PluginConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA4FH;;;;;;;;;;GAUG;AACH,MAAM,OAAgB,eAAe;IAGnC,6DAA6D;IAC7D,YAAY,GAAW,EAAE,UAAkB,EAAE,SAAiB,EAAE,UAAkB;IAClF,CAAC;IAID;;;OAGG;IACH,MAAM,CAAU,QAAQ,CAAoB;IAE5C;;;;OAIG;IACI,QAAQ,CAAqB;CACrC;AAED;;;GAGG;AACH,MAAM,OAAO,kBACT,SAAQ,eAAoB;IACvB,gBAAgB,GAAG,EAAE,CAAC;CAC9B;AAsDD,MAAM,UAAU,kBAAkB,CAChC,QAA2B,EAC3B,MAAgB;IAEhB,MAAM,WAAW,GAAG,KAAM,SAAQ,eAAwB;QACxD,gBAAgB,GAAG,MAAiB,CAAC;QACrC,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC;QAEpC,8DAA8D;QACrD,QAAQ,GAAG,QAAQ,CAAC;KAC9B,CAAC;IACF,OAAO,WAA4C,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,UAAkB;IAC1D,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,YAAY,CAAC;IAC9D,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtD,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"PluginConfig.js","sourceRoot":"","sources":["../../src/base/PluginConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA4FH;;;;;;;;;;GAUG;AACH,MAAM,OAAgB,eAAe;IAGnC,6DAA6D;IAC7D,YAAY,GAAW,EAAE,UAAkB,EAAE,SAAiB,EAAE,UAAkB;IAClF,CAAC;IAID;;;OAGG;IACH,MAAM,CAAU,QAAQ,CAAoB;IAE5C;;;;OAIG;IACI,QAAQ,CAAqB;CACrC;AAED;;;GAGG;AACH,MAAM,OAAO,kBACT,SAAQ,eAAoB;IACvB,gBAAgB,GAAG,EAAE,CAAC;CAC9B;AAyDD,MAAM,UAAU,kBAAkB,CAChC,QAA2B,EAC3B,MAAgB;IAEhB,MAAM,WAAW,GAAG,KAAM,SAAQ,eAAwB;QACxD,gBAAgB,GAAG,MAAiB,CAAC;QACrC,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC;QAEpC,8DAA8D;QACrD,QAAQ,GAAG,QAAQ,CAAC;KAC9B,CAAC;IACF,OAAO,WAA4C,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,UAAkB;IAC1D,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,YAAY,CAAC;IAC9D,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtD,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -26,7 +26,6 @@
26
26
  */
27
27
  import { DEBUG_MODE, IPluginObservable, Observable } from "../interfaces/index.js";
28
28
  import { SBObservable } from "../serviceBase/index.js";
29
- import { BSBReferenceConfigType } from "./PluginConfig.js";
30
29
  /**
31
30
  * Main base config
32
31
  * @property appId - The unique app id of the app that is running
@@ -173,22 +172,22 @@ export declare abstract class Base extends MainBase {
173
172
  /**
174
173
  * @hidden
175
174
  */
176
- export type ConfigPropertyTypeSafe<ReferencedConfig extends BSBReferenceConfigType> = [ReferencedConfig] extends [never] ? never : ReferencedConfig extends undefined | null ? never : ReferencedConfig;
175
+ export type ConfigPropertyTypeSafe<ReferencedConfig> = [ReferencedConfig] extends [never] ? never : ReferencedConfig extends undefined | null ? never : ReferencedConfig;
177
176
  /**
178
177
  * @hidden
179
178
  */
180
- export type ConfigConstructorTypeSafe<ReferencedConfig extends BSBReferenceConfigType> = [ReferencedConfig] extends [never] ? undefined : ReferencedConfig extends undefined | null ? undefined : ReferencedConfig;
179
+ export type ConfigConstructorTypeSafe<ReferencedConfig> = [ReferencedConfig] extends [never] ? undefined : ReferencedConfig extends undefined | null ? undefined : ReferencedConfig;
181
180
  /**
182
181
  * @hidden
183
182
  */
184
- export interface BaseWithConfigConfig<ReferencedConfig extends BSBReferenceConfigType> extends MainBaseConfig {
183
+ export interface BaseWithConfigConfig<ReferencedConfig> extends MainBaseConfig {
185
184
  config: ConfigConstructorTypeSafe<ReferencedConfig>;
186
185
  }
187
186
  /**
188
187
  * @hidden
189
188
  * used by logging plugins (does not need events or logging since logging logs its own logs)
190
189
  */
191
- export declare abstract class BaseWithConfig<ReferencedConfig extends BSBReferenceConfigType> extends Base {
190
+ export declare abstract class BaseWithConfig<ReferencedConfig> extends Base {
192
191
  /**
193
192
  * The config of the plugin
194
193
  * @type {PluginConfig}
@@ -234,14 +233,14 @@ export declare abstract class BaseWithObservable extends Base {
234
233
  /**
235
234
  * @hidden
236
235
  */
237
- export interface BaseWithObservableAndConfigConfig<ReferencedConfig extends BSBReferenceConfigType> extends BaseWithObservableConfig, BaseWithConfigConfig<ReferencedConfig> {
236
+ export interface BaseWithObservableAndConfigConfig<ReferencedConfig> extends BaseWithObservableConfig, BaseWithConfigConfig<ReferencedConfig> {
238
237
  }
239
238
  /**
240
239
  * @hidden
241
240
  * Base class with config and internal observable support.
242
241
  * Use Observable for all logging and metrics operations.
243
242
  */
244
- export declare abstract class BaseWithObservableAndConfig<ReferencedConfig extends BSBReferenceConfigType> extends BaseWithConfig<ReferencedConfig> {
243
+ export declare abstract class BaseWithObservableAndConfig<ReferencedConfig> extends BaseWithConfig<ReferencedConfig> {
245
244
  /**
246
245
  * @hidden
247
246
  * Internal ObservableBackend instance for creating Observables.
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/base/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAuB3D;;GAEG;AACH,MAAM,OAAgB,QAAQ;IAC5B;;;;;OAKG;IACa,KAAK,GAAW,KAAK,CAAC;IAEtC;;;;;;;;OAQG;IACa,IAAI,GAAe,aAAa,CAAC;IACjD;;;OAGG;IACa,GAAG,CAAS;IAC5B;;;OAGG;IACa,UAAU,CAAS;IACnC;;;OAGG;IACa,SAAS,CAAS;IAQlC;;;OAGG;IACa,MAAM,CAAU;IAEhC,YAAY,MAAsB;QAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,MAAM,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;CAUF;AAED;;GAEG;AACH,MAAM,OAAgB,IACpB,SAAQ,QAAQ;IAChB;;OAEG;IACH,YAAY,MAAsB;QAChC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;CA6DF;AAkCD;;;GAGG;AACH,MAAM,OAAgB,cAGpB,SAAQ,IAAI;IACZ;;;;OAIG;IACa,MAAM,CAA2C;IAEjE,YAAY,MAA8C;QACxD,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAA6D,CAAC;IACrF,CAAC;CACF;AAWD;;;;;;;;;;;GAWG;AACH,MAAM,OAAgB,kBACpB,SAAQ,IAAI;IACZ;;;;OAIG;IACK,WAAW,CAAoB;IAEvC,YAAY,MAAgC;QAC1C,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,CACtC,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,CACpB,CAAC;QAEF,iCAAiC;QACjC,oEAAoE;IACtE,CAAC;IAED;;;;OAIG;IACH,IAAc,oBAAoB;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAYD;;;;GAIG;AACH,MAAM,OAAgB,2BAGpB,SAAQ,cAAgC;IACxC;;;OAGG;IACK,WAAW,CAAoB;IAEvC,YAAY,MAA2D;QACrE,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,CACtC,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,CACpB,CAAC;QAEF,iCAAiC;IACnC,CAAC;IAED;;;OAGG;IACH,IAAc,oBAAoB;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAC9B;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/base/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAuB3D;;GAEG;AACH,MAAM,OAAgB,QAAQ;IAC5B;;;;;OAKG;IACa,KAAK,GAAW,KAAK,CAAC;IAEtC;;;;;;;;OAQG;IACa,IAAI,GAAe,aAAa,CAAC;IACjD;;;OAGG;IACa,GAAG,CAAS;IAC5B;;;OAGG;IACa,UAAU,CAAS;IACnC;;;OAGG;IACa,SAAS,CAAS;IAQlC;;;OAGG;IACa,MAAM,CAAU;IAEhC,YAAY,MAAsB;QAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,MAAM,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;CAUF;AAED;;GAEG;AACH,MAAM,OAAgB,IACpB,SAAQ,QAAQ;IAChB;;OAEG;IACH,YAAY,MAAsB;QAChC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;CA6DF;AAkCD;;;GAGG;AACH,MAAM,OAAgB,cAGpB,SAAQ,IAAI;IACZ;;;;OAIG;IACa,MAAM,CAA2C;IAEjE,YAAY,MAA8C;QACxD,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAA6D,CAAC;IACrF,CAAC;CACF;AAWD;;;;;;;;;;;GAWG;AACH,MAAM,OAAgB,kBACpB,SAAQ,IAAI;IACZ;;;;OAIG;IACK,WAAW,CAAoB;IAEvC,YAAY,MAAgC;QAC1C,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,CACtC,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,CACpB,CAAC;QAEF,iCAAiC;QACjC,oEAAoE;IACtE,CAAC;IAED;;;;OAIG;IACH,IAAc,oBAAoB;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAYD;;;;GAIG;AACH,MAAM,OAAgB,2BAGpB,SAAQ,cAAgC;IACxC;;;OAGG;IACK,WAAW,CAAoB;IAEvC,YAAY,MAA2D;QACrE,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,CACtC,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,CACpB,CAAC;QAEF,iCAAiC;IACnC,CAAC;IAED;;;OAGG;IACH,IAAc,oBAAoB;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AAC9B;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC"}
@@ -124,16 +124,16 @@ export function SmartFunctionCallSync(context, input, ...params) {
124
124
  */
125
125
  export const ENV_PROPS = av.object({
126
126
  /** Active configuration profile (e.g. "default", "prod") */
127
- BSB_PROFILE: av.optional(av.string()).default("default"),
127
+ BSB_PROFILE: av.optional(av.string()).default("default").describe('Active configuration profile name'),
128
128
  /** Path to the root config file when not using plugin-based sources */
129
- BSB_CONFIG_FILE: av.optional(av.string()).default("config.yaml"),
129
+ BSB_CONFIG_FILE: av.optional(av.string()).default("config.yaml").describe('Path to the root config file when not using plugin-based sources'),
130
130
  /** Application working directory */
131
- APP_DIR: av.optional(av.string()).default(process.cwd()),
131
+ APP_DIR: av.optional(av.string()).default(process.cwd()).describe('Application working directory'),
132
132
  /** Logger plugin name to load */
133
- BSB_LOGGER_PLUGIN: av.optional(av.string()).default("config-default"),
133
+ BSB_LOGGER_PLUGIN: av.optional(av.string()).default("config-default").describe('Logger plugin name to load'),
134
134
  /** Logger plugin package (if different from name) */
135
- BSB_LOGGER_PLUGIN_PACKAGE: av.optional(av.string()).default("config-default"),
136
- }, { unknownKeys: 'strip' });
135
+ BSB_LOGGER_PLUGIN_PACKAGE: av.optional(av.string()).default("config-default").describe('Logger plugin package when different from the plugin name'),
136
+ }, { unknownKeys: 'strip' }).describe('Validated BSB runtime environment properties');
137
137
  /**
138
138
  * Parse and validate the current environment against {@link ENV_PROPS}.
139
139
  *
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/base/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/base/functions.ts"],"names":[],"mappings":"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"}
@@ -140,4 +140,4 @@ export interface LoadedPlugin<NamedType extends PluginType, ClassType extends Pl
140
140
  }
141
141
  /**
142
142
  * @see {@link https://bsbcode.dev/languages/nodejs/types/modules.html#module-interfaces_plugins | API: interfaces/plugins}
143
- */
143
+ */
@@ -38,5 +38,5 @@ export const PluginTypes = {
38
38
  };
39
39
  /**
40
40
  * @see {@link https://bsbcode.dev/languages/nodejs/types/modules.html#module-interfaces_plugins | API: interfaces/plugins}
41
- */
41
+ */
42
42
  //# sourceMappingURL=plugins.js.map
@@ -199,7 +199,7 @@ export declare function createBroadcastEvent<TInput extends BSBType>(input: TInp
199
199
  * - Compile-time validation that fire-and-forget events are in fire-and-forget categories
200
200
  * - Compile-time validation that returnable events are in returnable categories
201
201
  * - Compile-time validation that broadcast events are in broadcast categories
202
- * - Runtime duplicate name detection across categories (warns for developer clarity)
202
+ * - Runtime duplicate name detection across categories (warns before build validation fails)
203
203
  *
204
204
  * @param schemas - Event schema definitions with type validation
205
205
  * @returns Complete event schema with preserved literal types
@@ -282,6 +282,13 @@ export interface ServiceClientEventSchemas<T extends BSBEventSchemas> {
282
282
  * Event category type for exported schemas.
283
283
  */
284
284
  export type EventCategory = 'emitEvents' | 'onEvents' | 'emitReturnableEvents' | 'onReturnableEvents' | 'emitBroadcast' | 'onBroadcast';
285
+ /**
286
+ * Validate that each plugin event name is declared once.
287
+ *
288
+ * A plugin EventSchemas contract describes that plugin's public bus surface. To consume events
289
+ * from another service, instantiate that service's generated client and subscribe through it.
290
+ */
291
+ export declare function validateEventSchemaNames(pluginName: string, schemas: BSBEventSchemas): void;
285
292
  /**
286
293
  * JSON Schema type definition for cross-language code generation.
287
294
  * Uses standard JSON Schema format with BSB-specific extensions.
@@ -346,7 +353,7 @@ export interface EventSchemaExport {
346
353
  *
347
354
  * @example
348
355
  * ```typescript
349
- * export class Plugin extends BSBService<typeof Config, typeof EventSchemas> {
356
+ * export class Plugin extends BSBService<InstanceType<typeof Config>, typeof EventSchemas> {
350
357
  * static exportSchemas(): EventSchemaExport {
351
358
  * return exportEventSchemas(
352
359
  * Config.metadata.name,
@@ -89,7 +89,7 @@ export function createBroadcastEvent(input, description) {
89
89
  * - Compile-time validation that fire-and-forget events are in fire-and-forget categories
90
90
  * - Compile-time validation that returnable events are in returnable categories
91
91
  * - Compile-time validation that broadcast events are in broadcast categories
92
- * - Runtime duplicate name detection across categories (warns for developer clarity)
92
+ * - Runtime duplicate name detection across categories (warns before build validation fails)
93
93
  *
94
94
  * @param schemas - Event schema definitions with type validation
95
95
  * @returns Complete event schema with preserved literal types
@@ -114,8 +114,7 @@ export function createBroadcastEvent(input, description) {
114
114
  * ```
115
115
  */
116
116
  export function createEventSchemas(schemas) {
117
- // Runtime duplicate name detection for developer clarity
118
- // Note: Duplicate names across categories are not technically invalid, but can be confusing
117
+ // Runtime duplicate name detection for developer clarity before build validation fails.
119
118
  if (process.env.NODE_ENV !== 'production') {
120
119
  const allNames = new Set();
121
120
  const duplicates = [];
@@ -145,12 +144,99 @@ export function createEventSchemas(schemas) {
145
144
  // In production, this check is skipped for performance
146
145
  // eslint-disable-next-line no-console
147
146
  console.warn(`[BSB Warning] Duplicate event names detected: ${uniqueDuplicates.join(', ')}\n` +
148
- `While not technically invalid, duplicate names across categories can confuse developers.\n` +
149
- `Consider using unique names for better clarity.`);
147
+ `Build schema export requires event names to be unique across all EventSchemas categories.\n` +
148
+ `Use distinct names for each event contract entry.`);
150
149
  }
151
150
  }
152
151
  return schemas;
153
152
  }
153
+ const EVENT_DIRECTION_CONFLICTS = [
154
+ {
155
+ emitCategory: 'emitEvents',
156
+ onCategory: 'onEvents',
157
+ eventType: 'fire-and-forget',
158
+ onMethod: 'onEvent',
159
+ },
160
+ {
161
+ emitCategory: 'emitReturnableEvents',
162
+ onCategory: 'onReturnableEvents',
163
+ eventType: 'returnable',
164
+ onMethod: 'onReturnableEvent',
165
+ },
166
+ {
167
+ emitCategory: 'emitBroadcast',
168
+ onCategory: 'onBroadcast',
169
+ eventType: 'broadcast',
170
+ onMethod: 'onBroadcast',
171
+ },
172
+ ];
173
+ const EVENT_CATEGORIES = [
174
+ 'emitEvents',
175
+ 'onEvents',
176
+ 'emitReturnableEvents',
177
+ 'onReturnableEvents',
178
+ 'emitBroadcast',
179
+ 'onBroadcast',
180
+ ];
181
+ function getDirectionConflict(categories) {
182
+ for (const rule of EVENT_DIRECTION_CONFLICTS) {
183
+ if (categories.includes(rule.emitCategory) && categories.includes(rule.onCategory)) {
184
+ return {
185
+ emitCategory: rule.emitCategory,
186
+ onCategory: rule.onCategory,
187
+ eventType: rule.eventType,
188
+ onMethod: rule.onMethod,
189
+ };
190
+ }
191
+ }
192
+ return undefined;
193
+ }
194
+ function getEventNameConflicts(schemas) {
195
+ const eventCategories = new Map();
196
+ for (const category of EVENT_CATEGORIES) {
197
+ const categorySchemas = schemas[category];
198
+ if (!categorySchemas)
199
+ continue;
200
+ for (const eventName of Object.keys(categorySchemas)) {
201
+ const categories = eventCategories.get(eventName) ?? [];
202
+ categories.push(category);
203
+ eventCategories.set(eventName, categories);
204
+ }
205
+ }
206
+ return Array.from(eventCategories.entries())
207
+ .filter(([, categories]) => categories.length > 1)
208
+ .map(([eventName, categories]) => ({
209
+ eventName,
210
+ categories,
211
+ directionConflict: getDirectionConflict(categories),
212
+ }));
213
+ }
214
+ /**
215
+ * Validate that each plugin event name is declared once.
216
+ *
217
+ * A plugin EventSchemas contract describes that plugin's public bus surface. To consume events
218
+ * from another service, instantiate that service's generated client and subscribe through it.
219
+ */
220
+ export function validateEventSchemaNames(pluginName, schemas) {
221
+ const conflicts = getEventNameConflicts(schemas);
222
+ if (conflicts.length === 0)
223
+ return;
224
+ const conflictLines = conflicts.map((conflict) => `- "${conflict.eventName}" is declared in: ${conflict.categories.join(', ')}.`);
225
+ const directionAdviceLines = conflicts
226
+ .filter((conflict) => conflict.directionConflict !== undefined)
227
+ .map((conflict) => {
228
+ const directionConflict = conflict.directionConflict;
229
+ return (` For "${conflict.eventName}", remove it from ${directionConflict.onCategory}; ` +
230
+ `if this plugin needs to listen to that emitted ${directionConflict.eventType} event, ` +
231
+ `instantiate the generated ServiceClient for the emitting plugin and register the listener with the client ${directionConflict.onMethod} API.`);
232
+ });
233
+ throw new Error(`[BSB Build Error] Invalid EventSchemas for plugin "${pluginName}".\n` +
234
+ `Each event name must be unique across emitEvents, onEvents, emitReturnableEvents, onReturnableEvents, emitBroadcast, and onBroadcast.\n` +
235
+ `${conflictLines.join('\n')}\n` +
236
+ `Use distinct event names for different event types and directions so generated clients have one unambiguous contract entry per key.\n` +
237
+ `EventSchemas describe this plugin's own public bus contract. A self-declared onX entry is not how a plugin subscribes to its own emitted contract.` +
238
+ (directionAdviceLines.length > 0 ? `\n${directionAdviceLines.join('\n')}` : ''));
239
+ }
154
240
  /**
155
241
  * Export event schemas to JSON format for cross-language client generation.
156
242
  *
@@ -173,7 +259,7 @@ export function createEventSchemas(schemas) {
173
259
  *
174
260
  * @example
175
261
  * ```typescript
176
- * export class Plugin extends BSBService<typeof Config, typeof EventSchemas> {
262
+ * export class Plugin extends BSBService<InstanceType<typeof Config>, typeof EventSchemas> {
177
263
  * static exportSchemas(): EventSchemaExport {
178
264
  * return exportEventSchemas(
179
265
  * Config.metadata.name,
@@ -186,6 +272,7 @@ export function createEventSchemas(schemas) {
186
272
  * @see {@link https://bsbcode.dev/languages/nodejs/types/functions/exportEventSchemas.html | API: exportEventSchemas}
187
273
  */
188
274
  export function exportEventSchemas(pluginName, schemas) {
275
+ validateEventSchemaNames(pluginName, schemas);
189
276
  const events = {};
190
277
  // Helper to process a category of events
191
278
  const processCategory = (category, categorySchemas) => {
@@ -1 +1 @@
1
- {"version":3,"file":"schema-events.js","sourceRoot":"","sources":["../../src/interfaces/schema-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-events.js","sourceRoot":"","sources":["../../src/interfaces/schema-events.ts"],"names":[],"mappings":"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"}
@@ -28,13 +28,13 @@ import { EventsConfig, ObservableConfig, PluginDefinition, PluginType, Observabl
28
28
  import { BSBConfig, BSBConfigConstructor } from "../../base/BSBConfig.js";
29
29
  import * as av from "anyvali";
30
30
  export declare const Config: import("../../index.js").BSBPluginConfigClass<av.ObjectSchema<{
31
- BSB_PROFILE: av.OptionalSchema<av.StringSchema>;
32
- BSB_CONFIG_FILE: av.OptionalSchema<av.StringSchema>;
31
+ BSB_PROFILE: av.StringSchema;
32
+ BSB_CONFIG_FILE: av.StringSchema;
33
33
  }>>;
34
34
  export declare class Plugin extends BSBConfig<InstanceType<typeof Config>> {
35
35
  static Config: import("../../index.js").BSBPluginConfigClass<av.ObjectSchema<{
36
- BSB_PROFILE: av.OptionalSchema<av.StringSchema>;
37
- BSB_CONFIG_FILE: av.OptionalSchema<av.StringSchema>;
36
+ BSB_PROFILE: av.StringSchema;
37
+ BSB_CONFIG_FILE: av.StringSchema;
38
38
  }>>;
39
39
  private createDefaultProfile;
40
40
  private getRequiredServices;
@@ -32,9 +32,9 @@ import { BSBConfig } from "../../base/BSBConfig.js";
32
32
  import { createConfigSchema } from "../../base/PluginConfig.js";
33
33
  import * as av from "anyvali";
34
34
  const ConfigSchema = av.object({
35
- BSB_PROFILE: av.optional(av.string()).default("default"),
36
- BSB_CONFIG_FILE: av.optional(av.string()).default("./sec-config.yaml"),
37
- }, { unknownKeys: "strip" });
35
+ BSB_PROFILE: av.string().default("default").describe("Active configuration profile name"),
36
+ BSB_CONFIG_FILE: av.string().default("./sec-config.yaml").describe("Path to the root BSB configuration file"),
37
+ }).describe("Default configuration plugin settings");
38
38
  export const Config = createConfigSchema({
39
39
  name: "config-default",
40
40
  description: "Default configuration plugin for profile and plugin resolution",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/config-default/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/config-default/index.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,8 @@ export const Config = createConfigSchema({
67
67
  "./docs/core-plugins/observable-default.md",
68
68
  "./docs/core-plugins/observable-default-production.md",
69
69
  ],
70
- }, av.optional(av.object({}, { unknownKeys: "strip" })).default({}));
70
+ }, av.optional(av.object({}).describe("Default observable plugin configuration")).default({})
71
+ .describe("Optional default observable plugin configuration"));
71
72
  export class Plugin extends BSBObservable {
72
73
  static Config = Config;
73
74
  logFormatter = new LogFormatter();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/observable-default/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/observable-default/index.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,8 @@ export const Config = createConfigSchema({
34
34
  description: 'Benchmarking service for performance testing',
35
35
  image: '../docs/public/assets/images/bsb-logo.png',
36
36
  tags: ['benchmark', 'performance', 'test'],
37
- }, av.optional(av.object({}, { unknownKeys: "strip" })).default({}));
37
+ }, av.optional(av.object({}).describe("Benchmark service configuration")).default({})
38
+ .describe("Optional benchmark service configuration"));
38
39
  export const EventSchemas = createEventSchemas({
39
40
  // Events this service emits (fire-and-forget, first listener receives)
40
41
  emitEvents: {