@mirta/globals 0.4.12 → 0.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.
package/eslint/index.d.ts CHANGED
@@ -1,32 +1,32 @@
1
1
  declare interface GlobalsMirta {
2
- readonly '__DEV__': false
3
- readonly '__TEST__': false
4
- readonly 'log': false
5
- readonly 'debug': false
6
- readonly 'dev': false
7
- readonly 'cron': false
8
- readonly 'timers': false
9
- readonly 'defineRule': false
10
- readonly 'disableRule': false
11
- readonly 'enableRule': false
12
- readonly 'runRule': false
13
- readonly 'defineAlias': false
14
- readonly 'defineVirtualDevice': false
15
- readonly 'getDevice': false
16
- readonly 'getControl': false
17
- readonly 'startTicker': false
18
- readonly 'startTimer': false
19
- readonly 'spawn': false
20
- readonly 'runShellCommand': false
21
- readonly 'readConfig': false
22
- readonly 'trackMqtt': false
23
- readonly 'publish': false
24
- readonly 'StorableObject': false
25
- readonly 'PersistentStorage': false
26
- readonly 'Notify': false
27
- readonly 'Alarms': false
2
+ readonly '__DEV__': false;
3
+ readonly '__TEST__': false;
4
+ readonly 'log': false;
5
+ readonly 'debug': false;
6
+ readonly 'dev': false;
7
+ readonly 'cron': false;
8
+ readonly 'timers': false;
9
+ readonly 'defineRule': false;
10
+ readonly 'disableRule': false;
11
+ readonly 'enableRule': false;
12
+ readonly 'runRule': false;
13
+ readonly 'defineAlias': false;
14
+ readonly 'defineVirtualDevice': false;
15
+ readonly 'getDevice': false;
16
+ readonly 'getControl': false;
17
+ readonly 'startTicker': false;
18
+ readonly 'startTimer': false;
19
+ readonly 'spawn': false;
20
+ readonly 'runShellCommand': false;
21
+ readonly 'readConfig': false;
22
+ readonly 'trackMqtt': false;
23
+ readonly 'publish': false;
24
+ readonly 'StorableObject': false;
25
+ readonly 'PersistentStorage': false;
26
+ readonly 'Notify': false;
27
+ readonly 'Alarms': false;
28
28
  }
29
29
 
30
- declare const globals: GlobalsMirta
30
+ declare const globals: GlobalsMirta;
31
31
 
32
- export = globals
32
+ export = globals;
package/eslint/index.js CHANGED
@@ -25,4 +25,4 @@ export default {
25
25
  'PersistentStorage': 'readonly',
26
26
  'Notify': 'readonly',
27
27
  'Alarms': 'readonly',
28
- }
28
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mirta/globals",
3
3
  "description": "Complete set of types for wb-rule development in TypeScript",
4
- "version": "0.4.12",
4
+ "version": "0.5.0",
5
5
  "license": "Unlicense",
6
6
  "keywords": [
7
7
  "mirta",
package/types/index.d.ts CHANGED
@@ -2,6 +2,6 @@
2
2
  /// <reference path="./wb-rules.d.ts" />
3
3
 
4
4
  /** Признак сборки в режиме разработки. */
5
- declare var __DEV__: boolean
5
+ declare var __DEV__: boolean;
6
6
  /** Признак запуска в режиме тестирования. */
7
- declare var __TEST__: boolean
7
+ declare var __TEST__: boolean;
package/types/utils.d.ts CHANGED
@@ -18,7 +18,7 @@
18
18
  * @since 0.0.4
19
19
  *
20
20
  **/
21
- declare type Expand<T> = { [K in keyof T]: T[K] } & {}
21
+ declare type Expand<T> = { [K in keyof T]: T[K] } & {};
22
22
 
23
23
  /**
24
24
  * Разрешает частичное заполнение полей объекта, но требует наличия хотя бы одного поля.
@@ -41,7 +41,7 @@ declare type Expand<T> = { [K in keyof T]: T[K] } & {}
41
41
  * @since 0.3.3
42
42
  *
43
43
  **/
44
- declare type AtLeastOne<T, U = { [K in keyof T]: Pick<T, K> }> = Partial<T> & U[keyof U]
44
+ declare type AtLeastOne<T, U = { [K in keyof T]: Pick<T, K> }> = Partial<T> & U[keyof U];
45
45
 
46
46
  /**
47
47
  * Утилита для создания "брендированных типов" (branded types).
@@ -66,4 +66,4 @@ declare type AtLeastOne<T, U = { [K in keyof T]: Pick<T, K> }> = Partial<T> & U[
66
66
  *
67
67
  **/
68
68
  declare type Branded<TValue, TBrand extends string | symbol>
69
- = TValue & { readonly __brand: TBrand }
69
+ = TValue & { readonly __brand: TBrand };
@@ -17,10 +17,10 @@ declare namespace WbRules {
17
17
  interface SmsRecipient {
18
18
 
19
19
  /** Конфигурация отправки SMS. */
20
- type: 'sms'
20
+ type: 'sms';
21
21
 
22
22
  /** Номер телефона получателя SMS. */
23
- to: string
23
+ to: string;
24
24
 
25
25
  /**
26
26
  * Команда для отправки SMS. Поле можно оставить пустым, чтобы использовать gammu.
@@ -38,7 +38,7 @@ declare namespace WbRules {
38
38
  * /path/to/sender.py --number {} --text "{}"
39
39
  * ```
40
40
  **/
41
- command?: string
41
+ command?: string;
42
42
  }
43
43
 
44
44
  /**
@@ -50,10 +50,10 @@ declare namespace WbRules {
50
50
  interface EmailRecipient {
51
51
 
52
52
  /** Конфигурация отправки на адрес электронной почты. */
53
- type: 'email'
53
+ type: 'email';
54
54
 
55
55
  /** Адрес электронной почты получателя. */
56
- to: string
56
+ to: string;
57
57
 
58
58
  /**
59
59
  * Тема письма (необязательное поле).
@@ -65,7 +65,7 @@ declare namespace WbRules {
65
65
  * Alarm: {}
66
66
  * ```
67
67
  **/
68
- subject?: string
68
+ subject?: string;
69
69
  }
70
70
 
71
71
  /**
@@ -77,13 +77,13 @@ declare namespace WbRules {
77
77
  interface TelegramRecipient {
78
78
 
79
79
  /** Конфигурация отправки в Telegram. */
80
- type: 'telegram'
80
+ type: 'telegram';
81
81
 
82
82
  /** Токен вашего бота Telegram. */
83
- token: string
83
+ token: string;
84
84
 
85
85
  /** Уникальный идентификатор целевого чата или username целевого канала (в формате `@channelusername`). */
86
- chatId: string
86
+ chatId: string;
87
87
  }
88
88
 
89
89
  /**
@@ -95,7 +95,7 @@ declare namespace WbRules {
95
95
  * @since 0.3.3
96
96
  *
97
97
  **/
98
- type Recipient = SmsRecipient | EmailRecipient | TelegramRecipient
98
+ type Recipient = SmsRecipient | EmailRecipient | TelegramRecipient;
99
99
 
100
100
  /**
101
101
  * Базовый компонент аларма - содержит общие свойства.
@@ -108,10 +108,10 @@ declare namespace WbRules {
108
108
  interface AlarmBase {
109
109
 
110
110
  /** Название аларма. */
111
- name: string
111
+ name: string;
112
112
 
113
113
  /** Наблюдаемые устройство и контрол в формате `deviceId/controlId`. */
114
- cell: string
114
+ cell: string;
115
115
 
116
116
  /**
117
117
  * Сообщение, отправляемое при срабатывании аларма.
@@ -122,7 +122,7 @@ declare namespace WbRules {
122
122
  * текущего значения контрола.
123
123
  *
124
124
  **/
125
- alarmMessage?: string
125
+ alarmMessage?: string;
126
126
 
127
127
  /**
128
128
  * Сообщение, отправляемое при деактивации аларма.
@@ -133,7 +133,7 @@ declare namespace WbRules {
133
133
  * текущего значения контрола.
134
134
  *
135
135
  **/
136
- noAlarmMessage?: string
136
+ noAlarmMessage?: string;
137
137
 
138
138
  /**
139
139
  * Интервал (в секундах) повторной отправки сообщения во время активности аларма.
@@ -142,7 +142,7 @@ declare namespace WbRules {
142
142
  * только при срабатывании, а также при деактивации аларма.
143
143
  *
144
144
  **/
145
- interval?: number
145
+ interval?: number;
146
146
 
147
147
  /**
148
148
  * Задержка срабатывания аларма (в миллисекундах).
@@ -151,7 +151,7 @@ declare namespace WbRules {
151
151
  * будет непрерывно выполняться в течение заданного интервала.
152
152
  *
153
153
  **/
154
- alarmDelayMs?: number
154
+ alarmDelayMs?: number;
155
155
 
156
156
  /**
157
157
  * Задержка деактивации аларма (в миллисекундах).
@@ -160,7 +160,7 @@ declare namespace WbRules {
160
160
  * прекратит непрерывно выполняться в течение заданного интервала.
161
161
  *
162
162
  **/
163
- noAlarmDelayMs?: number
163
+ noAlarmDelayMs?: number;
164
164
 
165
165
  /**
166
166
  * Максимальное количество отправленных сообщений.
@@ -169,7 +169,7 @@ declare namespace WbRules {
169
169
  * отправляется не больше заданного количества сообщений.
170
170
  *
171
171
  **/
172
- maxCount?: number
172
+ maxCount?: number;
173
173
  }
174
174
 
175
175
  /**
@@ -191,7 +191,7 @@ declare namespace WbRules {
191
191
  * аларм деактивируется.
192
192
  *
193
193
  **/
194
- expectedValue: MqttValue
194
+ expectedValue: MqttValue;
195
195
  }
196
196
 
197
197
  /**
@@ -211,7 +211,7 @@ declare namespace WbRules {
211
211
  * Предотвращает смешивание с {@link ValueAlarm} внутри обобщённого типа {@link Alarm}.
212
212
  *
213
213
  **/
214
- expectedValue: never
214
+ expectedValue: never;
215
215
 
216
216
  /**
217
217
  * Минимально допустимое значение.
@@ -219,7 +219,7 @@ declare namespace WbRules {
219
219
  * Если отслеживаемое значение контрола опускается ниже minValue, происходит срабатывание аларма.
220
220
  *
221
221
  **/
222
- minValue: number
222
+ minValue: number;
223
223
 
224
224
  /**
225
225
  * Максимально допустимое значение.
@@ -227,7 +227,7 @@ declare namespace WbRules {
227
227
  * Если отслеживаемое значение контрола поднимается выше maxValue, происходит срабатывание аларма.
228
228
  *
229
229
  **/
230
- maxValue: number
230
+ maxValue: number;
231
231
  }
232
232
 
233
233
  /**
@@ -236,7 +236,7 @@ declare namespace WbRules {
236
236
  * @since 0.3.3
237
237
  *
238
238
  **/
239
- type Alarm = AlarmBase & (ValueAlarm | AtLeastOne<RangeAlarm>)
239
+ type Alarm = AlarmBase & (ValueAlarm | AtLeastOne<RangeAlarm>);
240
240
 
241
241
  /**
242
242
  * Конфигурация блока алармов.
@@ -247,16 +247,16 @@ declare namespace WbRules {
247
247
  interface Config {
248
248
 
249
249
  /** Название MQTT-устройства блока алармов. */
250
- deviceName: string
250
+ deviceName: string;
251
251
 
252
252
  /** Отображаемое название устройства блока алармов. */
253
- deviceTitle: string
253
+ deviceTitle: string;
254
254
 
255
255
  /** Список получателей. */
256
- recipients: Recipient[]
256
+ recipients: Recipient[];
257
257
 
258
258
  /** Список алармов. */
259
- alarms: Alarm[]
259
+ alarms: Alarm[];
260
260
  }
261
261
  }
262
262
 
@@ -271,6 +271,6 @@ declare namespace WbRules {
271
271
  *
272
272
  * @param config Объект конфигурации или путь к файлу конфигурации в формате JSON.
273
273
  */
274
- load(config: string | Alarms.Config): void
274
+ load(config: string | Alarms.Config): void;
275
275
  }
276
276
  }
@@ -5,7 +5,7 @@
5
5
  declare namespace WbRules {
6
6
 
7
7
  /** Расширение для поддержки module.static */
8
- type ModuleStatic = Record<string, unknown>
8
+ type ModuleStatic = Record<string, unknown>;
9
9
 
10
10
  /**
11
11
  * Набор методов для логирования.
@@ -27,14 +27,14 @@ declare namespace WbRules {
27
27
  * log.info('Свет в комнате включён на {} мин.', 30)
28
28
  * ```
29
29
  **/
30
- info(format: string, ...args: unknown[]): void
30
+ info(format: string, ...args: unknown[]): void;
31
31
 
32
32
  /**
33
33
  * Запись в лог произвольного значения, полезного в долгосрочной перспективе.
34
34
  * @param value Значение для записи в лог.
35
35
  *
36
36
  **/
37
- info(value: unknown): void
37
+ info(value: unknown): void;
38
38
 
39
39
  /**
40
40
  * Запись в лог сообщения, полезного при отладке и не имеющего долгосрочной ценности.
@@ -46,7 +46,7 @@ declare namespace WbRules {
46
46
  * ```ts
47
47
  * log.debug('Значение сенсора "{}": температура {} °C, влажность {} %', 'bathroom', 25, 40)
48
48
  **/
49
- debug(format: string, ...args: unknown[]): void
49
+ debug(format: string, ...args: unknown[]): void;
50
50
 
51
51
  /**
52
52
  * Запись в лог произвольного значения, полезного при отладке и не имеющего долгосрочной ценности.
@@ -58,7 +58,7 @@ declare namespace WbRules {
58
58
  * log.debug(JSON.stringify({ location: 'bathroom', temperature: 25, humidity: 40 }))
59
59
  * ```
60
60
  **/
61
- debug(value: unknown): void
61
+ debug(value: unknown): void;
62
62
 
63
63
  /**
64
64
  * Запись в лог предупреждения о ненормальном или неожиданном событии,
@@ -74,7 +74,7 @@ declare namespace WbRules {
74
74
  * log.warning('Движение в охраняемой зоне: {}', 'hallway_sensor_1')
75
75
  * ```
76
76
  **/
77
- warning(format: string, ...args: unknown[]): void
77
+ warning(format: string, ...args: unknown[]): void;
78
78
 
79
79
  /**
80
80
  * Запись в лог предупреждения о ненормальном или неожиданном значении,
@@ -83,7 +83,7 @@ declare namespace WbRules {
83
83
  * @param value Значение для записи в лог.
84
84
  *
85
85
  **/
86
- warning(value: unknown): void
86
+ warning(value: unknown): void;
87
87
 
88
88
  /**
89
89
  * Запись в лог критического события, приведшего к сбою и остановке выполнения.
@@ -97,7 +97,7 @@ declare namespace WbRules {
97
97
  * log.error('Перегев тёплого пола: {} °C, выключение', 30)
98
98
  * ```
99
99
  **/
100
- error(format: string, ...args: unknown[]): void
100
+ error(format: string, ...args: unknown[]): void;
101
101
 
102
102
  /**
103
103
  * Запись в лог критического значения, приведшего к сбою и остановке выполнения.
@@ -105,36 +105,36 @@ declare namespace WbRules {
105
105
  * @param value Значение для записи в лог.
106
106
  *
107
107
  **/
108
- error(value: unknown): void
108
+ error(value: unknown): void;
109
109
  }
110
110
 
111
111
  /** @deprecated since version 0.3.2 */
112
- type LogFunc = (format: string, ...args: unknown[]) => void
112
+ type LogFunc = (format: string, ...args: unknown[]) => void;
113
113
 
114
- type Log = LogMethods['info'] & LogMethods
114
+ type Log = LogMethods['info'] & LogMethods;
115
115
 
116
- type Debug = LogMethods['debug']
116
+ type Debug = LogMethods['debug'];
117
117
 
118
118
  interface CronEntry {
119
- spec: string
119
+ spec: string;
120
120
  }
121
121
 
122
122
  interface Timer {
123
- firing: boolean
123
+ firing: boolean;
124
124
 
125
- stop(): void
125
+ stop(): void;
126
126
  }
127
127
 
128
- type TimerCollection = Record<string, Timer>
128
+ type TimerCollection = Record<string, Timer>;
129
129
 
130
130
  /** Тип значения топика MQTT. */
131
- type MqttValue = string | number | boolean
131
+ type MqttValue = string | number | boolean;
132
132
 
133
- type Dev = Record<string, MqttValue | Record<string, MqttValue>>
133
+ type Dev = Record<string, MqttValue | Record<string, MqttValue>>;
134
134
 
135
135
  interface MqttMessage {
136
- topic: string
137
- value: MqttValue
136
+ topic: string;
137
+ value: MqttValue;
138
138
  }
139
139
 
140
140
  /**
@@ -144,12 +144,12 @@ declare namespace WbRules {
144
144
  /**
145
145
  * Поле или список полей, которые необходимо отслеживать
146
146
  */
147
- whenChanged?: string[] | string
147
+ whenChanged?: string[] | string;
148
148
 
149
149
  /**
150
150
  * Правило срабатывает, когда значение, возвращаемое функцией, меняется с false на true.
151
151
  */
152
- asSoonAs?(): boolean
152
+ asSoonAs?(): boolean;
153
153
 
154
154
  /**
155
155
  * Функция или экземпляр {@link CronEntry}, возвращаемый функцией {@link cron}.
@@ -157,7 +157,7 @@ declare namespace WbRules {
157
157
  * Сигнализирует, когда правило должно отработать.
158
158
  *
159
159
  **/
160
- when?: CronEntry | (() => number | boolean)
160
+ when?: CronEntry | (() => number | boolean);
161
161
 
162
162
  /**
163
163
  * Функция, которая вызывается при срабатывании правила
@@ -169,7 +169,7 @@ declare namespace WbRules {
169
169
  newValue: MqttValue,
170
170
  deviceId?: string,
171
171
  controlId?: string
172
- ): void
172
+ ): void;
173
173
  }
174
174
 
175
175
  /**
@@ -195,7 +195,7 @@ declare namespace WbRules {
195
195
  * @since 0.4.0
196
196
  *
197
197
  **/
198
- type RuleHandle = Branded<number, 'WbRules.RuleHandle'>
198
+ type RuleHandle = Branded<number, 'WbRules.RuleHandle'>;
199
199
 
200
200
  /**
201
201
  * Соответствие типа контрола его типу значения.
@@ -204,22 +204,22 @@ declare namespace WbRules {
204
204
  **/
205
205
  interface TypeMappings {
206
206
  /** A control that displays a value as text. */
207
- 'text': string
207
+ 'text': string;
208
208
  /** A control for a arbitrary value. */
209
- 'value': number
209
+ 'value': number;
210
210
  /** A control that toggles it's value when pressed by the user. */
211
- 'switch': boolean
211
+ 'switch': boolean;
212
212
  /** A stateless push button. */
213
- 'pushbutton': boolean
213
+ 'pushbutton': boolean;
214
214
  /** A control for color in `'R;G;B'` format */
215
- 'rgb': string
215
+ 'rgb': string;
216
216
  /** A range slider that takes integer values between 0 and any other integer that is greater 1. */
217
- 'range': number
217
+ 'range': number;
218
218
  /** A control that indicates whether an alarm is active. */
219
- 'alarm': boolean
219
+ 'alarm': boolean;
220
220
  }
221
221
 
222
- type ControlType = Expand<keyof TypeMappings>
222
+ type ControlType = Expand<keyof TypeMappings>;
223
223
 
224
224
  /**
225
225
  * Объект настроек передаваемого в контрол значения.
@@ -228,17 +228,17 @@ declare namespace WbRules {
228
228
  /**
229
229
  * Значение контрола
230
230
  */
231
- value: string | number | boolean
231
+ value: string | number | boolean;
232
232
 
233
233
  /**
234
234
  * Уведомить правила об изменении значения,
235
235
  * по умолчанию - `true`.
236
236
  */
237
- notify?: boolean
237
+ notify?: boolean;
238
238
  }
239
239
 
240
- type Title = string | TitleLocalized
241
- type TitleLocalized = Record<string, string>
240
+ type Title = string | TitleLocalized;
241
+ type TitleLocalized = Record<string, string>;
242
242
 
243
243
  /**
244
244
  * Контрол устройства
@@ -248,30 +248,30 @@ declare namespace WbRules {
248
248
  * Устанавливает заголовок.
249
249
  * @param title
250
250
  */
251
- setTitle(title: Title): void
251
+ setTitle(title: Title): void;
252
252
 
253
253
  /**
254
254
  * Устанавливает описание.
255
255
  * @param description
256
256
  */
257
- setDescription(description: string): void
257
+ setDescription(description: string): void;
258
258
 
259
259
  /**
260
260
  * Устанавливает тип значения.
261
261
  * @param type Тип значения.
262
262
  * @see ControlType
263
263
  */
264
- setType(type: ControlType): void
264
+ setType(type: ControlType): void;
265
265
 
266
- setUnits(units: string): void
266
+ setUnits(units: string): void;
267
267
 
268
- setReadonly(isReadonly: boolean): void
268
+ setReadonly(isReadonly: boolean): void;
269
269
 
270
- setMax(max: number): void
270
+ setMax(max: number): void;
271
271
 
272
- setMin(min: number): void
272
+ setMin(min: number): void;
273
273
 
274
- setPrecision(precision: number): void
274
+ setPrecision(precision: number): void;
275
275
 
276
276
  /**
277
277
  * Позволяет указать на наличие ошибки уровня контрола.
@@ -280,44 +280,44 @@ declare namespace WbRules {
280
280
  * @param message Текст ошибки.
281
281
  *
282
282
  **/
283
- setError(message: string): void
283
+ setError(message: string): void;
284
284
 
285
- setOrder(order: number): void
285
+ setOrder(order: number): void;
286
286
 
287
- setValue(value: MqttValue | ControlValueOptions): void
287
+ setValue(value: MqttValue | ControlValueOptions): void;
288
288
 
289
- getId(): string
289
+ getId(): string;
290
290
 
291
291
  /**
292
292
  * Возвращает заголовок контрола.
293
293
  * @param lang Язык заголовка, "en" по умолчанию.
294
294
  */
295
- getTitle(lang?: string): string
295
+ getTitle(lang?: string): string;
296
296
 
297
- getDescription(): string
297
+ getDescription(): string;
298
298
 
299
- getType(): string
299
+ getType(): string;
300
300
 
301
- getUnits(): string
301
+ getUnits(): string;
302
302
 
303
- getReadonly(): boolean
303
+ getReadonly(): boolean;
304
304
 
305
- getMax(): number
305
+ getMax(): number;
306
306
 
307
- getMin(): number
307
+ getMin(): number;
308
308
 
309
- getPrecision(): number
309
+ getPrecision(): number;
310
310
 
311
311
  /**
312
312
  * Возвращает текст ошибки,
313
313
  * а при её отсутствии - пустую строку.
314
314
  *
315
315
  **/
316
- getError(): string
316
+ getError(): string;
317
317
 
318
- getOrder(): number
318
+ getOrder(): number;
319
319
 
320
- getValue(): string | number | boolean
320
+ getValue(): string | number | boolean;
321
321
  }
322
322
 
323
323
  /**
@@ -327,9 +327,9 @@ declare namespace WbRules {
327
327
  **/
328
328
  interface BaseControlType<TControl, TValue> {
329
329
  /** Тип контрола, публикуемый в MQTT-топике. */
330
- type: TControl
330
+ type: TControl;
331
331
  /** Значение по умолчанию. */
332
- value?: TValue
332
+ value?: TValue;
333
333
  }
334
334
 
335
335
  /**
@@ -346,7 +346,7 @@ declare namespace WbRules {
346
346
  * ограничено - например, при перечислении дней недели.
347
347
  *
348
348
  **/
349
- enum?: Record<string, Title>
349
+ enum?: Record<string, Title>;
350
350
  }
351
351
 
352
352
  /**
@@ -363,18 +363,18 @@ declare namespace WbRules {
363
363
  * ограничено - например, при перечислении дней недели.
364
364
  *
365
365
  **/
366
- enum?: Record<number, WbRules.Title>
366
+ enum?: Record<number, WbRules.Title>;
367
367
 
368
368
  /** Задаёт минимально допустимое значение. */
369
- min?: number
369
+ min?: number;
370
370
 
371
371
  /** Задаёт максимально допустимое значение. */
372
- max?: number
372
+ max?: number;
373
373
 
374
374
  /** Определяет количество знаков после запятой. */
375
- precision?: number
375
+ precision?: number;
376
376
 
377
- units?: string
377
+ units?: string;
378
378
  }
379
379
 
380
380
  /**
@@ -385,13 +385,13 @@ declare namespace WbRules {
385
385
  interface __RangeControlTypeExtension {
386
386
 
387
387
  /** Задаёт минимально допустимое значение. */
388
- min?: number
388
+ min?: number;
389
389
 
390
390
  /** Задаёт максимально допустимое значение. */
391
- max?: number
391
+ max?: number;
392
392
 
393
393
  /** Определяет количество знаков после запятой. */
394
- precision?: number
394
+ precision?: number;
395
395
  }
396
396
 
397
397
  /**
@@ -406,14 +406,14 @@ declare namespace WbRules {
406
406
  ? __ValueControlTypeExtension
407
407
  : TControl extends 'range'
408
408
  ? __RangeControlTypeExtension
409
- : {}
409
+ : {};
410
410
 
411
411
  type __MappedControlTypes<
412
412
  K extends keyof TypeMappings = keyof TypeMappings
413
413
  >
414
414
  = K extends infer TControl
415
415
  ? BaseControlType<TControl, TypeMappings[K]> & ControlTypeExtension<TControl>
416
- : never
416
+ : never;
417
417
 
418
418
  /**
419
419
  * Параметры контрола.
@@ -425,20 +425,20 @@ declare namespace WbRules {
425
425
  * Заголовок, публикуемый в MQTT-топике (meta/title)
426
426
  *
427
427
  **/
428
- title?: Title
428
+ title?: Title;
429
429
 
430
430
  /**
431
431
  * Когда задано истинное значение, при запуске контроллера параметр всегда устанавливается в значение по умолчанию.
432
432
  * Иначе он будет установлен в последнее сохранённое значение.
433
433
  *
434
434
  **/
435
- forceDefault?: boolean
435
+ forceDefault?: boolean;
436
436
 
437
437
  /**
438
438
  * Когда задано истинное значение, параметр становится доступным только для чтения.
439
439
  *
440
440
  **/
441
- readonly?: boolean
441
+ readonly?: boolean;
442
442
 
443
443
  /**
444
444
  * Когда задано истинное значение, при описании контрола в коде фактическое создание его в MQTT происходить
@@ -449,14 +449,14 @@ declare namespace WbRules {
449
449
  * dev[deviceID][controlID] = "string"
450
450
  * ```
451
451
  **/
452
- lazyInit?: boolean
452
+ lazyInit?: boolean;
453
453
 
454
454
  /**
455
455
  * Порядок следования полей.
456
456
  *
457
457
  **/
458
- order?: number
459
- }>
458
+ order?: number;
459
+ }>;
460
460
 
461
461
  /**
462
462
  * Опции контрола типа `text`.
@@ -464,7 +464,7 @@ declare namespace WbRules {
464
464
  * @since 0.3.2
465
465
  *
466
466
  **/
467
- type TextControlOptions = Extract<ControlOptions, { type: 'text' }>
467
+ type TextControlOptions = Extract<ControlOptions, { type: 'text' }>;
468
468
 
469
469
  /**
470
470
  * Опции контрола типа `value`.
@@ -472,7 +472,7 @@ declare namespace WbRules {
472
472
  * @since 0.3.2
473
473
  *
474
474
  **/
475
- type ValueControlOptions = Extract<ControlOptions, { type: 'value' }>
475
+ type ValueControlOptions = Extract<ControlOptions, { type: 'value' }>;
476
476
 
477
477
  /**
478
478
  * Опции контрола типа `range`.
@@ -480,7 +480,7 @@ declare namespace WbRules {
480
480
  * @since 0.3.2
481
481
  *
482
482
  **/
483
- type RangeControlOptions = Extract<ControlOptions, { type: 'range' }>
483
+ type RangeControlOptions = Extract<ControlOptions, { type: 'range' }>;
484
484
 
485
485
  /**
486
486
  * Опции контрола типа `switch`.
@@ -488,7 +488,7 @@ declare namespace WbRules {
488
488
  * @since 0.3.2
489
489
  *
490
490
  **/
491
- type SwitchControlOptions = Extract<ControlOptions, { type: 'switch' }>
491
+ type SwitchControlOptions = Extract<ControlOptions, { type: 'switch' }>;
492
492
 
493
493
  /**
494
494
  * Опции контрола типа `pushbutton`.
@@ -496,7 +496,7 @@ declare namespace WbRules {
496
496
  * @since 0.3.2
497
497
  *
498
498
  **/
499
- type PushButtonControlOptions = Extract<ControlOptions, { type: 'pushbutton' }>
499
+ type PushButtonControlOptions = Extract<ControlOptions, { type: 'pushbutton' }>;
500
500
 
501
501
  /**
502
502
  * Опции контрола типа `rgb`.
@@ -504,7 +504,7 @@ declare namespace WbRules {
504
504
  * @since 0.3.2
505
505
  *
506
506
  **/
507
- type RgbControlOptions = Extract<ControlOptions, { type: 'rgb' }>
507
+ type RgbControlOptions = Extract<ControlOptions, { type: 'rgb' }>;
508
508
 
509
509
  /**
510
510
  * Опции контрола типа `alarm`.
@@ -512,27 +512,27 @@ declare namespace WbRules {
512
512
  * @since 0.3.2
513
513
  *
514
514
  **/
515
- type AlarmControlOptions = Extract<ControlOptions, { type: 'alarm' }>
515
+ type AlarmControlOptions = Extract<ControlOptions, { type: 'alarm' }>;
516
516
 
517
517
  /**
518
518
  * Интерфейс устройства
519
519
  */
520
520
  interface Device {
521
- getId(): string
521
+ getId(): string;
522
522
 
523
- getCellId(cellName: string): string
523
+ getCellId(cellName: string): string;
524
524
 
525
- addControl(cellName: string, description: ControlOptions): void
525
+ addControl(cellName: string, description: ControlOptions): void;
526
526
 
527
- removeControl(cellName: string): void
527
+ removeControl(cellName: string): void;
528
528
 
529
- getControl(cellName: string): Control
529
+ getControl(cellName: string): Control;
530
530
 
531
- isControlExists(cellName: string): boolean
531
+ isControlExists(cellName: string): boolean;
532
532
 
533
- controlsList(): Control[]
533
+ controlsList(): Control[];
534
534
 
535
- isVirtual(): boolean
535
+ isVirtual(): boolean;
536
536
 
537
537
  /**
538
538
  * Позволяет указать на наличие ошибки уровня устройства.
@@ -541,21 +541,21 @@ declare namespace WbRules {
541
541
  * @param message Текст ошибки.
542
542
  *
543
543
  **/
544
- setError(message: string): void
544
+ setError(message: string): void;
545
545
 
546
546
  /**
547
547
  * Возвращает текст ошибки,
548
548
  * а при её отсутствии - пустую строку.
549
549
  *
550
550
  **/
551
- getError(): string
551
+ getError(): string;
552
552
  }
553
553
 
554
- type ControlOptionsTree = Record<string, ControlOptions>
554
+ type ControlOptionsTree = Record<string, ControlOptions>;
555
555
 
556
556
  interface DeviceOptions {
557
- title: Title
558
- cells: ControlOptionsTree
557
+ title: Title;
558
+ cells: ControlOptionsTree;
559
559
  }
560
560
 
561
561
  /**
@@ -569,7 +569,7 @@ declare namespace WbRules {
569
569
  exitCode: number,
570
570
  capturedOutput?: string,
571
571
  capturedErrorOutput?: string
572
- ) => void
572
+ ) => void;
573
573
 
574
574
  interface SpawnOptions {
575
575
 
@@ -577,34 +577,34 @@ declare namespace WbRules {
577
577
  * Если true, захватить stdout процесса и передать его в виде строки в {@link exitCallback}
578
578
  *
579
579
  **/
580
- captureOutput?: boolean
580
+ captureOutput?: boolean;
581
581
 
582
582
  /**
583
583
  * Если true, захватить stderr процесса и передать его в виде строки в {@link exitCallback}.
584
584
  * Если данный параметр не задан, то stderr дочернего процесса направляется в stderr процесса wb-rules
585
585
  *
586
586
  **/
587
- captureErrorOutput?: boolean
587
+ captureErrorOutput?: boolean;
588
588
 
589
589
  /**
590
590
  * Строка, которую следует использовать в качестве содержимого stdin процесса.
591
591
  *
592
592
  **/
593
- input?: string
593
+ input?: string;
594
594
 
595
595
  /**
596
596
  * Функция, вызываемая при завершении процесса.
597
597
  *
598
598
  **/
599
- exitCallback?: ExitCallback
599
+ exitCallback?: ExitCallback;
600
600
  }
601
601
 
602
602
  interface ReadConfigOptions {
603
- logErrorOnNoFile: boolean
603
+ logErrorOnNoFile: boolean;
604
604
  }
605
605
 
606
606
  interface StorageOptions {
607
- global: boolean
607
+ global: boolean;
608
608
  }
609
609
 
610
610
  interface Notify {
@@ -616,7 +616,7 @@ declare namespace WbRules {
616
616
  * @param text Текст письма.
617
617
  *
618
618
  **/
619
- sendEmail(to: string, subject: string, text: string): void
619
+ sendEmail(to: string, subject: string, text: string): void;
620
620
 
621
621
  /**
622
622
  * Отправляет SMS на указанный номер
@@ -627,7 +627,7 @@ declare namespace WbRules {
627
627
  * @param command Используя команду.
628
628
  *
629
629
  **/
630
- sendSMS(to: string, text: string, command?: string): void
630
+ sendSMS(to: string, text: string, command?: string): void;
631
631
 
632
632
  /**
633
633
  * Отправляет сообщение в указанный чат или канал Telegram.
@@ -639,14 +639,14 @@ declare namespace WbRules {
639
639
  * @since 0.3.2
640
640
  *
641
641
  **/
642
- sendTelegramMessage(token: string, chatId: string, text: string): void
642
+ sendTelegramMessage(token: string, chatId: string, text: string): void;
643
643
  }
644
644
  }
645
645
 
646
646
  declare namespace NodeJS {
647
647
  interface Module {
648
648
  /** Хранит данные, общие для всех экземпляров данного модуля. */
649
- static: WbRules.ModuleStatic
649
+ static: WbRules.ModuleStatic;
650
650
  }
651
651
  }
652
652
 
@@ -655,10 +655,10 @@ declare namespace NodeJS {
655
655
  * Пример строки: `/etc/wb-rules/my-script.js`
656
656
  *
657
657
  **/
658
- declare var __filename: string
658
+ declare var __filename: string;
659
659
 
660
660
  /** Используется для вывода сообщений в журнал контроллера и отладочную консоль. */
661
- declare var log: WbRules.Log
661
+ declare var log: WbRules.Log;
662
662
 
663
663
  /**
664
664
  * Используется для вывода отладочных сообщений в журнал контроллера и отладочную консоль.
@@ -666,13 +666,13 @@ declare var log: WbRules.Log
666
666
  * @since 0.3.2
667
667
  *
668
668
  **/
669
- declare var debug: WbRules.Debug
669
+ declare var debug: WbRules.Debug;
670
670
 
671
671
  /** Объект доступа к MQTT-топикам устройства. */
672
- declare var dev: WbRules.Dev
672
+ declare var dev: WbRules.Dev;
673
673
 
674
674
  /** Объект доступа к именованным таймера. */
675
- declare var timers: WbRules.TimerCollection
675
+ declare var timers: WbRules.TimerCollection;
676
676
 
677
677
  /**
678
678
  * Используется для ввода спецификации cron-правила.
@@ -689,7 +689,7 @@ declare var timers: WbRules.TimerCollection
689
689
  * })
690
690
  * ```
691
691
  **/
692
- declare function cron(spec: string): WbRules.CronEntry
692
+ declare function cron(spec: string): WbRules.CronEntry;
693
693
 
694
694
  /**
695
695
  * Создаёт правило обработки.
@@ -697,14 +697,14 @@ declare function cron(spec: string): WbRules.CronEntry
697
697
  * @param options Конфигурация правила.
698
698
  *
699
699
  **/
700
- declare function defineRule(name: string, options: WbRules.RuleOptions): WbRules.RuleHandle
700
+ declare function defineRule(name: string, options: WbRules.RuleOptions): WbRules.RuleHandle;
701
701
 
702
702
  /**
703
703
  * Создаёт анонимное правило обработки.
704
704
  * @param options Конфигурация правила.
705
705
  *
706
706
  **/
707
- declare function defineRule(options: WbRules.RuleOptions): WbRules.RuleHandle
707
+ declare function defineRule(options: WbRules.RuleOptions): WbRules.RuleHandle;
708
708
 
709
709
  /**
710
710
  * Отключает правило. Оно перестаёт реагировать на события.
@@ -720,7 +720,7 @@ declare function defineRule(options: WbRules.RuleOptions): WbRules.RuleHandle
720
720
  * @since 0.4.0
721
721
  *
722
722
  **/
723
- declare function disableRule(rule: WbRules.RuleHandle): void
723
+ declare function disableRule(rule: WbRules.RuleHandle): void;
724
724
 
725
725
  /**
726
726
  * Включает ранее отключённое правило.
@@ -734,7 +734,7 @@ declare function disableRule(rule: WbRules.RuleHandle): void
734
734
  * @since 0.4.0
735
735
  *
736
736
  **/
737
- declare function enableRule(rule: WbRules.RuleHandle): void
737
+ declare function enableRule(rule: WbRules.RuleHandle): void;
738
738
 
739
739
  /**
740
740
  * Запускает правило по его дескриптору.
@@ -753,7 +753,7 @@ declare function enableRule(rule: WbRules.RuleHandle): void
753
753
  * @since 0.4.0
754
754
  *
755
755
  **/
756
- declare function runRule(rule: WbRules.RuleHandle): void
756
+ declare function runRule(rule: WbRules.RuleHandle): void;
757
757
 
758
758
  /**
759
759
  * Создаёт виртуальное устройство.
@@ -764,21 +764,21 @@ declare function runRule(rule: WbRules.RuleHandle): void
764
764
  declare function defineVirtualDevice(
765
765
  deviceId: string,
766
766
  options: WbRules.DeviceOptions
767
- ): WbRules.Device
767
+ ): WbRules.Device;
768
768
 
769
769
  /**
770
770
  * Позволяет получить объект для работы с указанным устройством.
771
771
  * @param deviceId Идентификатор устройства.
772
772
  *
773
773
  **/
774
- declare function getDevice(deviceId: string): WbRules.Device | undefined
774
+ declare function getDevice(deviceId: string): WbRules.Device | undefined;
775
775
 
776
776
  /**
777
777
  * Позволяет получить объект для работы с указанным контролом устройства.
778
778
  * @param controlPath Строка в формате "deviceId/controlId"
779
779
  *
780
780
  **/
781
- declare function getControl(controlPath: string): WbRules.Control | undefined
781
+ declare function getControl(controlPath: string): WbRules.Control | undefined;
782
782
 
783
783
  /**
784
784
  * Запускает периодический таймер с указанным интервалом.
@@ -788,7 +788,7 @@ declare function getControl(controlPath: string): WbRules.Control | undefined
788
788
  * @param delay Интервал срабатывания, в миллисекундах
789
789
  *
790
790
  **/
791
- declare function startTicker(name: string, interval: number): void
791
+ declare function startTicker(name: string, interval: number): void;
792
792
 
793
793
  /**
794
794
  * Запускает однократный таймер с указанным именем,
@@ -821,7 +821,7 @@ declare function startTicker(name: string, interval: number): void
821
821
  *
822
822
  * ```
823
823
  */
824
- declare function startTimer(name: string, delay: number): void
824
+ declare function startTimer(name: string, delay: number): void;
825
825
 
826
826
  /**
827
827
  * Запуск внешних процессов.
@@ -834,17 +834,17 @@ declare function spawn(
834
834
  cmd: string,
835
835
  args: string[],
836
836
  options: WbRules.SpawnOptions | WbRules.ExitCallback
837
- ): void
837
+ ): void;
838
838
 
839
839
  declare function runShellCommand(
840
840
  command: string,
841
841
  options?: WbRules.SpawnOptions | WbRules.ExitCallback
842
- ): void
842
+ ): void;
843
843
 
844
844
  declare function readConfig(
845
845
  fileName: string,
846
846
  options?: WbRules.ReadConfigOptions
847
- ): object
847
+ ): object;
848
848
 
849
849
  /**
850
850
  *
@@ -856,7 +856,7 @@ declare function readConfig(
856
856
  * defineAlias('heaterOn', 'Relays/Relay 1')
857
857
  * ```
858
858
  */
859
- declare function defineAlias(alias: string, controlPath: string): void
859
+ declare function defineAlias(alias: string, controlPath: string): void;
860
860
 
861
861
  interface String {
862
862
  /**
@@ -864,7 +864,7 @@ interface String {
864
864
  * на строковые представления своих аргументов и возвращает результирующую строку.
865
865
  * @param args
866
866
  */
867
- format(...args: (string | number | boolean)[]): string
867
+ format(...args: (string | number | boolean)[]): string;
868
868
 
869
869
  /**
870
870
  * Осуществляет последовательную замену подстрок `{}` в указанной строке
@@ -872,7 +872,7 @@ interface String {
872
872
  *
873
873
  * @warning В отличие от {@link format}, выполняет код внутри строки! Не использовать для обработки значений, вводимых пользователем.
874
874
  */
875
- xformat(...args: (string | number | boolean)[]): string
875
+ xformat(...args: (string | number | boolean)[]): string;
876
876
  }
877
877
 
878
878
  /**
@@ -883,7 +883,7 @@ interface String {
883
883
  declare function trackMqtt(
884
884
  topic: string,
885
885
  callback: (message: WbRules.MqttMessage) => void
886
- ): void
886
+ ): void;
887
887
 
888
888
  /**
889
889
  * Публикация сообщений в MQTT.
@@ -899,7 +899,7 @@ declare function publish(
899
899
  value: WbRules.MqttValue,
900
900
  qos?: number,
901
901
  retain?: boolean
902
- ): void
902
+ ): void;
903
903
 
904
904
  /**
905
905
  * Проксирует исходный объект, обеспечивая автоматическую синхронизацию
@@ -945,10 +945,10 @@ declare function publish(
945
945
  *
946
946
  * ```
947
947
  */
948
- declare function StorableObject<TObject>(source: TObject): TObject
948
+ declare function StorableObject<TObject>(source: TObject): TObject;
949
949
 
950
950
  declare class PersistentStorage {
951
- constructor(name: string, options: WbRules.StorageOptions)
951
+ constructor(name: string, options: WbRules.StorageOptions);
952
952
  }
953
953
 
954
954
  /**
@@ -956,7 +956,7 @@ declare class PersistentStorage {
956
956
  * сообщений по разным каналам коммуникации (почта, SMS, Telegram).
957
957
  *
958
958
  **/
959
- declare var Notify: WbRules.Notify
959
+ declare var Notify: WbRules.Notify;
960
960
 
961
961
  /**
962
962
  * Сервис оповещений Alarms — инструмент для автоматической отправки
@@ -982,4 +982,4 @@ declare var Notify: WbRules.Notify
982
982
  * @since 0.3.3
983
983
  *
984
984
  **/
985
- declare var Alarms: WbRules.Alarms
985
+ declare var Alarms: WbRules.Alarms;