@djodjonx/x32-simulator 0.0.6 → 0.0.7

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/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_SchemaRegistry = require('./SchemaRegistry-DE6iObDv.cjs');
1
+ const require_SchemaRegistry = require('./SchemaRegistry-Ddy5AEKs.cjs');
2
2
 
3
3
  //#region src/domain/models/OscMessage.ts
4
4
  /**
@@ -145,6 +145,7 @@ var X32Address = class {
145
145
 
146
146
  //#endregion
147
147
  exports.ConsoleLogger = require_SchemaRegistry.ConsoleLogger;
148
+ exports.DEFAULT_CONFIG = require_SchemaRegistry.DEFAULT_CONFIG;
148
149
  exports.InMemoryStateRepository = require_SchemaRegistry.InMemoryStateRepository;
149
150
  exports.LogCategory = require_SchemaRegistry.LogCategory;
150
151
  exports.METER_COUNTS = require_SchemaRegistry.METER_COUNTS;
@@ -158,4 +159,5 @@ exports.SubscriptionManager = require_SchemaRegistry.SubscriptionManager;
158
159
  exports.UdpNetworkGateway = require_SchemaRegistry.UdpNetworkGateway;
159
160
  exports.X32Address = X32Address;
160
161
  exports.X32Node = require_SchemaRegistry.X32Node;
161
- exports.X32State = require_SchemaRegistry.X32State;
162
+ exports.X32State = require_SchemaRegistry.X32State;
163
+ exports.mergeConfig = require_SchemaRegistry.mergeConfig;
package/dist/index.d.cts CHANGED
@@ -44,7 +44,7 @@ interface OscReply {
44
44
  interface INetworkGateway {
45
45
  start(port: number, ip: string): Promise<void>;
46
46
  stop(): Promise<void>;
47
- send(target: RemoteClient, address: string, args: any[]): void;
47
+ send(target: RemoteClient, address: string, args: OscArgument[]): void;
48
48
  onPacket(callback: (packet: OscPacket, source: RemoteClient) => void): void;
49
49
  }
50
50
  //#endregion
@@ -68,35 +68,36 @@ interface ILogger {
68
68
  error(category: string, msg: string, err?: LogData): void;
69
69
  }
70
70
  //#endregion
71
+ //#region src/domain/ports/IStateRepository.d.ts
72
+ interface IStateRepository {
73
+ load(): Promise<Record<string, number | string>>;
74
+ save(state: Record<string, number | string>): Promise<void>;
75
+ get(address: string): number | string | undefined;
76
+ set(address: string, value: number | string): void;
77
+ getAll(): Record<string, number | string>;
78
+ reset(defaults: Record<string, number | string>): void;
79
+ flush(): Promise<void>;
80
+ }
81
+ //#endregion
71
82
  //#region src/domain/models/X32Node.d.ts
83
+ interface X32NodeOptions {
84
+ min?: number;
85
+ max?: number;
86
+ strictInteger?: boolean;
87
+ }
72
88
  declare class X32Node {
73
89
  readonly type: 'f' | 'i' | 's';
74
90
  readonly default: number | string;
75
- constructor(type: 'f' | 'i' | 's', defaultValue: number | string);
76
- validate(value: any): boolean;
91
+ readonly options?: X32NodeOptions;
92
+ constructor(type: 'f' | 'i' | 's', defaultValue: number | string, options?: X32NodeOptions);
93
+ validate(value: unknown, strict?: boolean): boolean;
77
94
  static from(obj: {
78
95
  type: 'f' | 'i' | 's';
79
96
  default: number | string;
97
+ options?: X32NodeOptions;
80
98
  }): X32Node;
81
99
  }
82
100
  //#endregion
83
- //#region src/domain/entities/X32State.d.ts
84
- declare class X32State extends EventEmitter {
85
- private state;
86
- private readonly defaultState;
87
- constructor(schema: Record<string, X32Node>);
88
- reset(): void;
89
- get(address: string): number | string | undefined;
90
- set(address: string, value: number | string): void;
91
- handleMuteGroupChange(groupIdx: number, isOn: number): void;
92
- }
93
- //#endregion
94
- //#region src/domain/ports/IStateRepository.d.ts
95
- interface IStateRepository {
96
- getState(): X32State;
97
- reset(): void;
98
- }
99
- //#endregion
100
101
  //#region src/domain/services/SchemaFactory.d.ts
101
102
  declare class SchemaFactory {
102
103
  createSchema(): Record<string, X32Node>;
@@ -105,11 +106,20 @@ declare class SchemaFactory {
105
106
  private generateNodes;
106
107
  private generateRange;
107
108
  private generateOutputs;
109
+ private generateShowfileCues;
110
+ private generateShowfileScenes;
111
+ private generateShowfileSnippets;
112
+ private generatePrefsIQ;
113
+ private generateDP48Config;
114
+ private generateUSBDir;
115
+ private generateURecSessions;
116
+ private generateLibraries;
117
+ private generateUserCtrl;
108
118
  }
109
119
  //#endregion
110
120
  //#region src/domain/services/SchemaRegistry.d.ts
111
121
  declare class SchemaRegistry {
112
- private schemaFactory;
122
+ private readonly schemaFactory;
113
123
  private readonly _schema;
114
124
  constructor(schemaFactory: SchemaFactory);
115
125
  getSchema(): Record<string, X32Node>;
@@ -119,34 +129,66 @@ declare class SchemaRegistry {
119
129
  getRootFromIndex(index: number): string | null;
120
130
  }
121
131
  //#endregion
132
+ //#region src/domain/models/Config.d.ts
133
+ interface SimulatorConfig {
134
+ SUBSCRIPTION_TTL_MS: number;
135
+ CLEANUP_INTERVAL_MS: number;
136
+ BROADCAST_INTERVAL_MS: number;
137
+ DEFAULT_PORT: number;
138
+ DEFAULT_HOST: string;
139
+ DEFAULT_NAME: string;
140
+ DEFAULT_MODEL: string;
141
+ }
142
+ declare const DEFAULT_CONFIG: SimulatorConfig;
143
+ type PartialSimulatorConfig = Partial<SimulatorConfig>;
144
+ declare function mergeConfig(partial?: PartialSimulatorConfig): SimulatorConfig;
145
+ //#endregion
122
146
  //#region src/application/use-cases/SimulationService.d.ts
123
147
  declare class SimulationService {
124
- private gateway;
125
- private logger;
126
- private stateRepo;
127
- private schemaRegistry;
128
- private port;
129
- private ip;
148
+ private readonly gateway;
149
+ private readonly logger;
150
+ private readonly stateRepository;
151
+ private readonly schemaRegistry;
152
+ private readonly port;
153
+ private readonly ip;
130
154
  private subscriptionManager;
131
155
  private messageHandler;
156
+ private state;
132
157
  private processPacket;
133
158
  private broadcastUpdates;
134
159
  private manageSessions;
135
160
  private meterService;
136
161
  private staticResponseService;
162
+ private readonly config;
137
163
  private updateInterval;
138
164
  private cleanupInterval;
139
- constructor(gateway: INetworkGateway, logger: ILogger, stateRepo: IStateRepository, schemaRegistry: SchemaRegistry, port?: number, ip?: string, name?: string, model?: string);
165
+ constructor(gateway: INetworkGateway, logger: ILogger, stateRepository: IStateRepository, schemaRegistry: SchemaRegistry, port?: number, ip?: string, name?: string, model?: string, configOverrides?: PartialSimulatorConfig);
140
166
  start(): Promise<void>;
141
167
  stop(): Promise<void>;
142
168
  resetState(): void;
169
+ saveState(): Promise<void>;
170
+ }
171
+ //#endregion
172
+ //#region src/domain/entities/X32State.d.ts
173
+ declare class X32State extends EventEmitter {
174
+ private readonly repository;
175
+ private readonly defaultState;
176
+ constructor(schema: Record<string, X32Node>, repository: IStateRepository);
177
+ initialize(): Promise<void>;
178
+ reset(): void;
179
+ get(address: string): number | string | undefined;
180
+ getAll(): Record<string, number | string>;
181
+ set(address: string, value: number | string): void;
182
+ flush(): Promise<void>;
183
+ handleMuteGroupChange(groupIdx: number, isOn: number): void;
143
184
  }
144
185
  //#endregion
145
186
  //#region src/domain/entities/SubscriptionManager.d.ts
146
187
  declare class SubscriptionManager {
147
- private logger;
188
+ private readonly logger;
189
+ private readonly subscriptionTtlMs;
148
190
  private subscribers;
149
- constructor(logger: ILogger);
191
+ constructor(logger: ILogger, subscriptionTtlMs?: number);
150
192
  cleanup(): void;
151
193
  getSubscribers(): Subscriber[];
152
194
  addPathSubscriber(rinfo: RemoteClient, path: string): void;
@@ -198,11 +240,14 @@ declare const METER_COUNTS: Record<string, number>;
198
240
  //#endregion
199
241
  //#region src/infrastructure/repositories/InMemoryStateRepository.d.ts
200
242
  declare class InMemoryStateRepository implements IStateRepository {
201
- private logger;
202
243
  private state;
203
- constructor(logger: ILogger, schemaRegistry: SchemaRegistry);
204
- getState(): X32State;
205
- reset(): void;
244
+ load(): Promise<Record<string, number | string>>;
245
+ save(state: Record<string, number | string>): Promise<void>;
246
+ get(address: string): number | string | undefined;
247
+ set(address: string, value: number | string): void;
248
+ getAll(): Record<string, number | string>;
249
+ reset(defaults: Record<string, number | string>): void;
250
+ flush(): Promise<void>;
206
251
  }
207
252
  //#endregion
208
253
  //#region src/infrastructure/services/ConsoleLogger.d.ts
@@ -233,7 +278,7 @@ declare class ConsoleLogger implements ILogger {
233
278
  //#endregion
234
279
  //#region src/infrastructure/mappers/OscCodec.d.ts
235
280
  declare class OscCodec {
236
- private schemaRegistry;
281
+ private readonly schemaRegistry;
237
282
  constructor(schemaRegistry: SchemaRegistry);
238
283
  decode(msg: Buffer): OscPacket;
239
284
  encode(address: string, args: OscArgument[]): Buffer;
@@ -242,8 +287,8 @@ declare class OscCodec {
242
287
  //#endregion
243
288
  //#region src/infrastructure/services/UdpNetworkGateway.d.ts
244
289
  declare class UdpNetworkGateway implements INetworkGateway {
245
- private logger;
246
- private codec;
290
+ private readonly logger;
291
+ private readonly codec;
247
292
  private socket;
248
293
  private isRunning;
249
294
  private packetCallback;
@@ -251,7 +296,7 @@ declare class UdpNetworkGateway implements INetworkGateway {
251
296
  onPacket(callback: (packet: OscPacket, source: RemoteClient) => void): void;
252
297
  start(port: number, ip: string): Promise<void>;
253
298
  stop(): Promise<void>;
254
- send(target: RemoteClient, address: string, args: any[]): void;
299
+ send(target: RemoteClient, address: string, args: OscArgument[]): void;
255
300
  }
256
301
  //#endregion
257
- export { ConsoleLogger, type ILogger, type INetworkGateway, type IStateRepository, InMemoryStateRepository, LogCategory, type LogData, METER_COUNTS, MeterData, OscArgument, OscArgumentValue, OscCodec, OscMessage, OscMsg, OscPacket, OscReply, RemoteClient, SchemaFactory, SchemaRegistry, SimulationService, Subscriber, SubscriptionManager, UdpNetworkGateway, X32Address, X32Node, X32State };
302
+ export { ConsoleLogger, DEFAULT_CONFIG, type ILogger, type INetworkGateway, type IStateRepository, InMemoryStateRepository, LogCategory, type LogData, METER_COUNTS, MeterData, OscArgument, OscArgumentValue, OscCodec, OscMessage, OscMsg, OscPacket, OscReply, type PartialSimulatorConfig, RemoteClient, SchemaFactory, SchemaRegistry, SimulationService, type SimulatorConfig, Subscriber, SubscriptionManager, UdpNetworkGateway, X32Address, X32Node, X32State, mergeConfig };
package/dist/index.d.mts CHANGED
@@ -44,7 +44,7 @@ interface OscReply {
44
44
  interface INetworkGateway {
45
45
  start(port: number, ip: string): Promise<void>;
46
46
  stop(): Promise<void>;
47
- send(target: RemoteClient, address: string, args: any[]): void;
47
+ send(target: RemoteClient, address: string, args: OscArgument[]): void;
48
48
  onPacket(callback: (packet: OscPacket, source: RemoteClient) => void): void;
49
49
  }
50
50
  //#endregion
@@ -68,35 +68,36 @@ interface ILogger {
68
68
  error(category: string, msg: string, err?: LogData): void;
69
69
  }
70
70
  //#endregion
71
+ //#region src/domain/ports/IStateRepository.d.ts
72
+ interface IStateRepository {
73
+ load(): Promise<Record<string, number | string>>;
74
+ save(state: Record<string, number | string>): Promise<void>;
75
+ get(address: string): number | string | undefined;
76
+ set(address: string, value: number | string): void;
77
+ getAll(): Record<string, number | string>;
78
+ reset(defaults: Record<string, number | string>): void;
79
+ flush(): Promise<void>;
80
+ }
81
+ //#endregion
71
82
  //#region src/domain/models/X32Node.d.ts
83
+ interface X32NodeOptions {
84
+ min?: number;
85
+ max?: number;
86
+ strictInteger?: boolean;
87
+ }
72
88
  declare class X32Node {
73
89
  readonly type: 'f' | 'i' | 's';
74
90
  readonly default: number | string;
75
- constructor(type: 'f' | 'i' | 's', defaultValue: number | string);
76
- validate(value: any): boolean;
91
+ readonly options?: X32NodeOptions;
92
+ constructor(type: 'f' | 'i' | 's', defaultValue: number | string, options?: X32NodeOptions);
93
+ validate(value: unknown, strict?: boolean): boolean;
77
94
  static from(obj: {
78
95
  type: 'f' | 'i' | 's';
79
96
  default: number | string;
97
+ options?: X32NodeOptions;
80
98
  }): X32Node;
81
99
  }
82
100
  //#endregion
83
- //#region src/domain/entities/X32State.d.ts
84
- declare class X32State extends EventEmitter {
85
- private state;
86
- private readonly defaultState;
87
- constructor(schema: Record<string, X32Node>);
88
- reset(): void;
89
- get(address: string): number | string | undefined;
90
- set(address: string, value: number | string): void;
91
- handleMuteGroupChange(groupIdx: number, isOn: number): void;
92
- }
93
- //#endregion
94
- //#region src/domain/ports/IStateRepository.d.ts
95
- interface IStateRepository {
96
- getState(): X32State;
97
- reset(): void;
98
- }
99
- //#endregion
100
101
  //#region src/domain/services/SchemaFactory.d.ts
101
102
  declare class SchemaFactory {
102
103
  createSchema(): Record<string, X32Node>;
@@ -105,11 +106,20 @@ declare class SchemaFactory {
105
106
  private generateNodes;
106
107
  private generateRange;
107
108
  private generateOutputs;
109
+ private generateShowfileCues;
110
+ private generateShowfileScenes;
111
+ private generateShowfileSnippets;
112
+ private generatePrefsIQ;
113
+ private generateDP48Config;
114
+ private generateUSBDir;
115
+ private generateURecSessions;
116
+ private generateLibraries;
117
+ private generateUserCtrl;
108
118
  }
109
119
  //#endregion
110
120
  //#region src/domain/services/SchemaRegistry.d.ts
111
121
  declare class SchemaRegistry {
112
- private schemaFactory;
122
+ private readonly schemaFactory;
113
123
  private readonly _schema;
114
124
  constructor(schemaFactory: SchemaFactory);
115
125
  getSchema(): Record<string, X32Node>;
@@ -119,34 +129,66 @@ declare class SchemaRegistry {
119
129
  getRootFromIndex(index: number): string | null;
120
130
  }
121
131
  //#endregion
132
+ //#region src/domain/models/Config.d.ts
133
+ interface SimulatorConfig {
134
+ SUBSCRIPTION_TTL_MS: number;
135
+ CLEANUP_INTERVAL_MS: number;
136
+ BROADCAST_INTERVAL_MS: number;
137
+ DEFAULT_PORT: number;
138
+ DEFAULT_HOST: string;
139
+ DEFAULT_NAME: string;
140
+ DEFAULT_MODEL: string;
141
+ }
142
+ declare const DEFAULT_CONFIG: SimulatorConfig;
143
+ type PartialSimulatorConfig = Partial<SimulatorConfig>;
144
+ declare function mergeConfig(partial?: PartialSimulatorConfig): SimulatorConfig;
145
+ //#endregion
122
146
  //#region src/application/use-cases/SimulationService.d.ts
123
147
  declare class SimulationService {
124
- private gateway;
125
- private logger;
126
- private stateRepo;
127
- private schemaRegistry;
128
- private port;
129
- private ip;
148
+ private readonly gateway;
149
+ private readonly logger;
150
+ private readonly stateRepository;
151
+ private readonly schemaRegistry;
152
+ private readonly port;
153
+ private readonly ip;
130
154
  private subscriptionManager;
131
155
  private messageHandler;
156
+ private state;
132
157
  private processPacket;
133
158
  private broadcastUpdates;
134
159
  private manageSessions;
135
160
  private meterService;
136
161
  private staticResponseService;
162
+ private readonly config;
137
163
  private updateInterval;
138
164
  private cleanupInterval;
139
- constructor(gateway: INetworkGateway, logger: ILogger, stateRepo: IStateRepository, schemaRegistry: SchemaRegistry, port?: number, ip?: string, name?: string, model?: string);
165
+ constructor(gateway: INetworkGateway, logger: ILogger, stateRepository: IStateRepository, schemaRegistry: SchemaRegistry, port?: number, ip?: string, name?: string, model?: string, configOverrides?: PartialSimulatorConfig);
140
166
  start(): Promise<void>;
141
167
  stop(): Promise<void>;
142
168
  resetState(): void;
169
+ saveState(): Promise<void>;
170
+ }
171
+ //#endregion
172
+ //#region src/domain/entities/X32State.d.ts
173
+ declare class X32State extends EventEmitter {
174
+ private readonly repository;
175
+ private readonly defaultState;
176
+ constructor(schema: Record<string, X32Node>, repository: IStateRepository);
177
+ initialize(): Promise<void>;
178
+ reset(): void;
179
+ get(address: string): number | string | undefined;
180
+ getAll(): Record<string, number | string>;
181
+ set(address: string, value: number | string): void;
182
+ flush(): Promise<void>;
183
+ handleMuteGroupChange(groupIdx: number, isOn: number): void;
143
184
  }
144
185
  //#endregion
145
186
  //#region src/domain/entities/SubscriptionManager.d.ts
146
187
  declare class SubscriptionManager {
147
- private logger;
188
+ private readonly logger;
189
+ private readonly subscriptionTtlMs;
148
190
  private subscribers;
149
- constructor(logger: ILogger);
191
+ constructor(logger: ILogger, subscriptionTtlMs?: number);
150
192
  cleanup(): void;
151
193
  getSubscribers(): Subscriber[];
152
194
  addPathSubscriber(rinfo: RemoteClient, path: string): void;
@@ -198,11 +240,14 @@ declare const METER_COUNTS: Record<string, number>;
198
240
  //#endregion
199
241
  //#region src/infrastructure/repositories/InMemoryStateRepository.d.ts
200
242
  declare class InMemoryStateRepository implements IStateRepository {
201
- private logger;
202
243
  private state;
203
- constructor(logger: ILogger, schemaRegistry: SchemaRegistry);
204
- getState(): X32State;
205
- reset(): void;
244
+ load(): Promise<Record<string, number | string>>;
245
+ save(state: Record<string, number | string>): Promise<void>;
246
+ get(address: string): number | string | undefined;
247
+ set(address: string, value: number | string): void;
248
+ getAll(): Record<string, number | string>;
249
+ reset(defaults: Record<string, number | string>): void;
250
+ flush(): Promise<void>;
206
251
  }
207
252
  //#endregion
208
253
  //#region src/infrastructure/services/ConsoleLogger.d.ts
@@ -233,7 +278,7 @@ declare class ConsoleLogger implements ILogger {
233
278
  //#endregion
234
279
  //#region src/infrastructure/mappers/OscCodec.d.ts
235
280
  declare class OscCodec {
236
- private schemaRegistry;
281
+ private readonly schemaRegistry;
237
282
  constructor(schemaRegistry: SchemaRegistry);
238
283
  decode(msg: Buffer): OscPacket;
239
284
  encode(address: string, args: OscArgument[]): Buffer;
@@ -242,8 +287,8 @@ declare class OscCodec {
242
287
  //#endregion
243
288
  //#region src/infrastructure/services/UdpNetworkGateway.d.ts
244
289
  declare class UdpNetworkGateway implements INetworkGateway {
245
- private logger;
246
- private codec;
290
+ private readonly logger;
291
+ private readonly codec;
247
292
  private socket;
248
293
  private isRunning;
249
294
  private packetCallback;
@@ -251,7 +296,7 @@ declare class UdpNetworkGateway implements INetworkGateway {
251
296
  onPacket(callback: (packet: OscPacket, source: RemoteClient) => void): void;
252
297
  start(port: number, ip: string): Promise<void>;
253
298
  stop(): Promise<void>;
254
- send(target: RemoteClient, address: string, args: any[]): void;
299
+ send(target: RemoteClient, address: string, args: OscArgument[]): void;
255
300
  }
256
301
  //#endregion
257
- export { ConsoleLogger, type ILogger, type INetworkGateway, type IStateRepository, InMemoryStateRepository, LogCategory, type LogData, METER_COUNTS, MeterData, OscArgument, OscArgumentValue, OscCodec, OscMessage, OscMsg, OscPacket, OscReply, RemoteClient, SchemaFactory, SchemaRegistry, SimulationService, Subscriber, SubscriptionManager, UdpNetworkGateway, X32Address, X32Node, X32State };
302
+ export { ConsoleLogger, DEFAULT_CONFIG, type ILogger, type INetworkGateway, type IStateRepository, InMemoryStateRepository, LogCategory, type LogData, METER_COUNTS, MeterData, OscArgument, OscArgumentValue, OscCodec, OscMessage, OscMsg, OscPacket, OscReply, type PartialSimulatorConfig, RemoteClient, SchemaFactory, SchemaRegistry, SimulationService, type SimulatorConfig, Subscriber, SubscriptionManager, UdpNetworkGateway, X32Address, X32Node, X32State, mergeConfig };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { a as ConsoleLogger, c as X32Node, d as METER_COUNTS, f as MeterData, i as UdpNetworkGateway, l as X32State, m as LogCategory, n as SchemaFactory, p as SubscriptionManager, r as OscCodec, s as InMemoryStateRepository, t as SchemaRegistry, u as SimulationService } from "./SchemaRegistry-D4eIJord.mjs";
1
+ import { a as ConsoleLogger, c as X32Node, d as MeterData, f as SubscriptionManager, g as LogCategory, h as X32State, i as UdpNetworkGateway, l as SimulationService, m as mergeConfig, n as SchemaFactory, p as DEFAULT_CONFIG, r as OscCodec, s as InMemoryStateRepository, t as SchemaRegistry, u as METER_COUNTS } from "./SchemaRegistry-BBzyicoy.mjs";
2
2
 
3
3
  //#region src/domain/models/OscMessage.ts
4
4
  /**
@@ -144,4 +144,4 @@ var X32Address = class {
144
144
  };
145
145
 
146
146
  //#endregion
147
- export { ConsoleLogger, InMemoryStateRepository, LogCategory, METER_COUNTS, MeterData, OscCodec, OscMessage, SchemaFactory, SchemaRegistry, SimulationService, SubscriptionManager, UdpNetworkGateway, X32Address, X32Node, X32State };
147
+ export { ConsoleLogger, DEFAULT_CONFIG, InMemoryStateRepository, LogCategory, METER_COUNTS, MeterData, OscCodec, OscMessage, SchemaFactory, SchemaRegistry, SimulationService, SubscriptionManager, UdpNetworkGateway, X32Address, X32Node, X32State, mergeConfig };