@signageos/front-applet 8.7.0 → 8.8.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.
@@ -121,7 +121,7 @@ For more information what are capabilities, see the description of the `supports
121
121
  ```ts expandable
122
122
  getCapabilities(): Promise<ManagementCapability[]>;
123
123
  // show-more
124
- type ManagementCapability = 'MODEL' | 'SERIAL_NUMBER' | 'BRAND' | 'OS_VERSION' | 'BATTERY_STATUS' | 'STORAGE_UNITS' | 'TEMPERATURE' | 'SCREENSHOT_UPLOAD' | 'NETWORK_INFO' | 'WIFI' | 'WIFI_SCAN' | 'WIFI_AP' | 'WIFI_STRENGTH' | 'TIMERS_PROPRIETARY' | 'BRIGHTNESS_SCHEDULING' | 'TIMERS_NATIVE' | 'SET_BRIGHTNESS' | 'GET_BRIGHTNESS' | 'SCREEN_RESIZE' | 'SET_TIME' | 'SET_TIMEZONE' | 'GET_TIMEZONE' | 'NTP_TIME' | 'APP_UPGRADE' | 'FIRMWARE_UPGRADE' | 'PACKAGE_INSTALL' | 'SET_VOLUME' | 'GET_VOLUME' | 'SET_REMOTE_CONTROL_ENABLED' | 'SET_DEBUG' | 'SYSTEM_REBOOT' | 'APP_RESTART' | 'DISPLAY_POWER' | 'SERVLET' | 'HARDWARE_LED_SET_COLOR' | 'PROXIMITY_SENSOR' | 'FACTORY_RESET' | 'ORIENTATION_LANDSCAPE' | 'ORIENTATION_PORTRAIT' | 'ORIENTATION_LANDSCAPE_FLIPPED' | 'ORIENTATION_PORTRAIT_FLIPPED' | 'ORIENTATION_AUTO' | 'SCHEDULE_POWER_ACTION' | 'EXTENDED_MANAGEMENT' | 'SYSTEM_CPU' | 'SYSTEM_MEMORY' | 'PROXY' | 'AUTO_RECOVERY' | 'PEER_RECOVERY' | 'FILE_SYSTEM_WIPEOUT' | 'REMOTE_DESKTOP' | 'HOTEL_MODE' | 'VPN' | 'CUSTOM_SCRIPTS' | 'NATIVE_COMMANDS_MDC' | 'DEVICE_OWNER' | 'ACCESSIBILITY_SERVICE' | 'DISPLAY_MANAGER' | 'SECRETS' | 'HARDWARE_ACCELERATION' | 'WIFI_COUNTRY' | 'STOP_PACKAGE' | AnyString;
124
+ type ManagementCapability = 'MODEL' | 'SERIAL_NUMBER' | 'BRAND' | 'OS_VERSION' | 'BATTERY_STATUS' | 'STORAGE_UNITS' | 'TEMPERATURE' | 'SCREENSHOT_UPLOAD' | 'NETWORK_INFO' | 'WIFI' | 'WIFI_SCAN' | 'WIFI_AP' | 'WIFI_STRENGTH' | 'TIMERS_PROPRIETARY' | 'BRIGHTNESS_SCHEDULING' | 'TIMERS_NATIVE' | 'SET_BRIGHTNESS' | 'GET_BRIGHTNESS' | 'SCREEN_RESIZE' | 'SET_TIME' | 'SET_TIMEZONE' | 'GET_TIMEZONE' | 'NTP_TIME' | 'APP_UPGRADE' | 'FIRMWARE_UPGRADE' | 'PACKAGE_INSTALL' | 'SET_VOLUME' | 'GET_VOLUME' | 'SET_REMOTE_CONTROL_ENABLED' | 'SET_DEBUG' | 'SYSTEM_REBOOT' | 'APP_RESTART' | 'DISPLAY_POWER' | 'SERVLET' | 'HARDWARE_LED_SET_COLOR' | 'PROXIMITY_SENSOR' | 'FACTORY_RESET' | 'ORIENTATION_LANDSCAPE' | 'ORIENTATION_PORTRAIT' | 'ORIENTATION_LANDSCAPE_FLIPPED' | 'ORIENTATION_PORTRAIT_FLIPPED' | 'ORIENTATION_AUTO' | 'SCHEDULE_POWER_ACTION' | 'EXTENDED_MANAGEMENT' | 'SYSTEM_CPU' | 'SYSTEM_MEMORY' | 'PROXY' | 'AUTO_RECOVERY' | 'PEER_RECOVERY' | 'FILE_SYSTEM_WIPEOUT' | 'REMOTE_DESKTOP' | 'HOTEL_MODE' | 'VPN' | 'CUSTOM_SCRIPTS' | 'NATIVE_COMMANDS_MDC' | 'DEVICE_OWNER' | 'ACCESSIBILITY_SERVICE' | 'DISPLAY_MANAGER' | 'SECRETS' | 'HARDWARE_ACCELERATION' | 'WIFI_COUNTRY' | 'STOP_PACKAGE' | 'SEND_UDP' | 'WAKE_ON_LAN' | 'CLEAR_PACKAGE_DATA' | AnyString;
125
125
 
126
126
  type AnyString = string & {};
127
127
 
@@ -376,7 +376,7 @@ or check the **ManagementCapability** type in `supports()` method. It has a list
376
376
  ```ts expandable
377
377
  supports(capability: ManagementCapability): Promise<boolean>;
378
378
  // show-more
379
- type ManagementCapability = 'MODEL' | 'SERIAL_NUMBER' | 'BRAND' | 'OS_VERSION' | 'BATTERY_STATUS' | 'STORAGE_UNITS' | 'TEMPERATURE' | 'SCREENSHOT_UPLOAD' | 'NETWORK_INFO' | 'WIFI' | 'WIFI_SCAN' | 'WIFI_AP' | 'WIFI_STRENGTH' | 'TIMERS_PROPRIETARY' | 'BRIGHTNESS_SCHEDULING' | 'TIMERS_NATIVE' | 'SET_BRIGHTNESS' | 'GET_BRIGHTNESS' | 'SCREEN_RESIZE' | 'SET_TIME' | 'SET_TIMEZONE' | 'GET_TIMEZONE' | 'NTP_TIME' | 'APP_UPGRADE' | 'FIRMWARE_UPGRADE' | 'PACKAGE_INSTALL' | 'SET_VOLUME' | 'GET_VOLUME' | 'SET_REMOTE_CONTROL_ENABLED' | 'SET_DEBUG' | 'SYSTEM_REBOOT' | 'APP_RESTART' | 'DISPLAY_POWER' | 'SERVLET' | 'HARDWARE_LED_SET_COLOR' | 'PROXIMITY_SENSOR' | 'FACTORY_RESET' | 'ORIENTATION_LANDSCAPE' | 'ORIENTATION_PORTRAIT' | 'ORIENTATION_LANDSCAPE_FLIPPED' | 'ORIENTATION_PORTRAIT_FLIPPED' | 'ORIENTATION_AUTO' | 'SCHEDULE_POWER_ACTION' | 'EXTENDED_MANAGEMENT' | 'SYSTEM_CPU' | 'SYSTEM_MEMORY' | 'PROXY' | 'AUTO_RECOVERY' | 'PEER_RECOVERY' | 'FILE_SYSTEM_WIPEOUT' | 'REMOTE_DESKTOP' | 'HOTEL_MODE' | 'VPN' | 'CUSTOM_SCRIPTS' | 'NATIVE_COMMANDS_MDC' | 'DEVICE_OWNER' | 'ACCESSIBILITY_SERVICE' | 'DISPLAY_MANAGER' | 'SECRETS' | 'HARDWARE_ACCELERATION' | 'WIFI_COUNTRY' | 'STOP_PACKAGE' | AnyString;
379
+ type ManagementCapability = 'MODEL' | 'SERIAL_NUMBER' | 'BRAND' | 'OS_VERSION' | 'BATTERY_STATUS' | 'STORAGE_UNITS' | 'TEMPERATURE' | 'SCREENSHOT_UPLOAD' | 'NETWORK_INFO' | 'WIFI' | 'WIFI_SCAN' | 'WIFI_AP' | 'WIFI_STRENGTH' | 'TIMERS_PROPRIETARY' | 'BRIGHTNESS_SCHEDULING' | 'TIMERS_NATIVE' | 'SET_BRIGHTNESS' | 'GET_BRIGHTNESS' | 'SCREEN_RESIZE' | 'SET_TIME' | 'SET_TIMEZONE' | 'GET_TIMEZONE' | 'NTP_TIME' | 'APP_UPGRADE' | 'FIRMWARE_UPGRADE' | 'PACKAGE_INSTALL' | 'SET_VOLUME' | 'GET_VOLUME' | 'SET_REMOTE_CONTROL_ENABLED' | 'SET_DEBUG' | 'SYSTEM_REBOOT' | 'APP_RESTART' | 'DISPLAY_POWER' | 'SERVLET' | 'HARDWARE_LED_SET_COLOR' | 'PROXIMITY_SENSOR' | 'FACTORY_RESET' | 'ORIENTATION_LANDSCAPE' | 'ORIENTATION_PORTRAIT' | 'ORIENTATION_LANDSCAPE_FLIPPED' | 'ORIENTATION_PORTRAIT_FLIPPED' | 'ORIENTATION_AUTO' | 'SCHEDULE_POWER_ACTION' | 'EXTENDED_MANAGEMENT' | 'SYSTEM_CPU' | 'SYSTEM_MEMORY' | 'PROXY' | 'AUTO_RECOVERY' | 'PEER_RECOVERY' | 'FILE_SYSTEM_WIPEOUT' | 'REMOTE_DESKTOP' | 'HOTEL_MODE' | 'VPN' | 'CUSTOM_SCRIPTS' | 'NATIVE_COMMANDS_MDC' | 'DEVICE_OWNER' | 'ACCESSIBILITY_SERVICE' | 'DISPLAY_MANAGER' | 'SECRETS' | 'HARDWARE_ACCELERATION' | 'WIFI_COUNTRY' | 'STOP_PACKAGE' | 'SEND_UDP' | 'WAKE_ON_LAN' | 'CLEAR_PACKAGE_DATA' | AnyString;
380
380
 
381
381
  type AnyString = string & {};
382
382
 
@@ -174,6 +174,79 @@ interfaces.forEach((iface) => {
174
174
 
175
175
  <Separator />
176
176
 
177
+ ### sendUdp()
178
+
179
+ The `sendUdp()` method sends a raw UDP datagram to the specified IP address and port.
180
+ This is a low-level network primitive that can be used for protocols like Wake-on-LAN.
181
+
182
+ ```ts expandable
183
+ sendUdp(ip: string, port: number, data: number[]): Promise<void>;
184
+ ```
185
+
186
+ #### Params
187
+
188
+ | Name | Type | Required | Description |
189
+ |--------|------------|------------------|-----------------------------------------------------------------------------------------------------------------------|
190
+ | `ip` | `string` | <div>Yes</div> | The destination IP address. Use `'255.255.255.255'` for broadcast. |
191
+ | `port` | `number` | <div>Yes</div> | The destination UDP port number (1-65535). |
192
+ | `data` | `number[]` | <div>Yes</div> | The payload as a byte array. Each element must be an integer between 0 and 255. Maximum 1500 elements (Ethernet MTU). |
193
+
194
+ #### Return value
195
+
196
+ A promise that resolves when the UDP packet has been sent.
197
+
198
+ #### Possible errors
199
+
200
+
201
+ - If the parameters are invalid.
202
+ - If the device does not support sending UDP packets.
203
+
204
+ #### Example
205
+
206
+ ```ts
207
+ // Send a Wake-on-LAN magic packet
208
+ await sos.management.network.sendUdp('255.255.255.255', 9, [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, ...]);
209
+ ```
210
+
211
+ <Separator />
212
+
213
+ ### sendWakeOnLan()
214
+
215
+ The `sendWakeOnLan()` method sends a Wake-on-LAN magic packet to wake a device with the given MAC address.
216
+ The target device must have Wake-on-LAN enabled and be on the same local network.
217
+
218
+ Internally, this generates a 102-byte magic packet (6×0xFF + 16× MAC address) and sends it
219
+ as a UDP broadcast to `255.255.255.255` on port 9 via `sendUdp()`.
220
+
221
+ ```ts expandable
222
+ sendWakeOnLan(macAddress: string): Promise<void>;
223
+ ```
224
+
225
+ #### Params
226
+
227
+ | Name | Type | Required | Description |
228
+ |--------------|----------|------------------|-------------------------------------------------------------------------------------------------------------------|
229
+ | `macAddress` | `string` | <div>Yes</div> | The MAC address of the target device. Accepted formats: `AA:BB:CC:DD:EE:FF`, `AA-BB-CC-DD-EE-FF`, `AABBCCDDEEFF`. |
230
+
231
+ #### Return value
232
+
233
+ A promise that resolves when the magic packet has been sent.
234
+
235
+ #### Possible errors
236
+
237
+
238
+ - If the MAC address format is invalid.
239
+ - If the device does not support sending UDP packets.
240
+
241
+ #### Example
242
+
243
+ ```ts
244
+ // Wake a device by its MAC address
245
+ await sos.management.network.sendWakeOnLan('AA:BB:CC:DD:EE:FF');
246
+ ```
247
+
248
+ <Separator />
249
+
177
250
  ### setDHCP(interfaceName)
178
251
 
179
252
  The `setDHCP()` method configures a selected network interface to use DHCP.
@@ -18,6 +18,26 @@ The `sos.management.package` API groups together methods for installing custom A
18
18
 
19
19
  ## Methods
20
20
 
21
+ ### clearData()
22
+
23
+ The `clearData()` method stops a certain package and clears its user data.
24
+
25
+ ```ts expandable
26
+ clearData(packageName: string): Promise<void>;
27
+ ```
28
+
29
+ #### Params
30
+
31
+ | Name | Type | Required | Description |
32
+ |---------------|----------|------------------|-----------------------------|
33
+ | `packageName` | `string` | <div>Yes</div> | Name of the android package |
34
+
35
+ #### Return value
36
+
37
+ Resolves if the package data was cleared.
38
+
39
+ <Separator />
40
+
21
41
  ### install()
22
42
 
23
43
  The `install()` method installs a particular package from the specified URL.
@@ -1,7 +1,7 @@
1
1
  import INetworkInfo from './Network/INetworkInfo';
2
2
  import IBatteryStatus from './IBatteryStatus';
3
3
  import { AnyString } from '../../utils/types';
4
- export type ManagementCapability = 'MODEL' | 'SERIAL_NUMBER' | 'BRAND' | 'OS_VERSION' | 'BATTERY_STATUS' | 'STORAGE_UNITS' | 'TEMPERATURE' | 'SCREENSHOT_UPLOAD' | 'NETWORK_INFO' | 'WIFI' | 'WIFI_SCAN' | 'WIFI_AP' | 'WIFI_STRENGTH' | 'TIMERS_PROPRIETARY' | 'BRIGHTNESS_SCHEDULING' | 'TIMERS_NATIVE' | 'SET_BRIGHTNESS' | 'GET_BRIGHTNESS' | 'SCREEN_RESIZE' | 'SET_TIME' | 'SET_TIMEZONE' | 'GET_TIMEZONE' | 'NTP_TIME' | 'APP_UPGRADE' | 'FIRMWARE_UPGRADE' | 'PACKAGE_INSTALL' | 'SET_VOLUME' | 'GET_VOLUME' | 'SET_REMOTE_CONTROL_ENABLED' | 'SET_DEBUG' | 'SYSTEM_REBOOT' | 'APP_RESTART' | 'DISPLAY_POWER' | 'SERVLET' | 'HARDWARE_LED_SET_COLOR' | 'PROXIMITY_SENSOR' | 'FACTORY_RESET' | 'ORIENTATION_LANDSCAPE' | 'ORIENTATION_PORTRAIT' | 'ORIENTATION_LANDSCAPE_FLIPPED' | 'ORIENTATION_PORTRAIT_FLIPPED' | 'ORIENTATION_AUTO' | 'SCHEDULE_POWER_ACTION' | 'EXTENDED_MANAGEMENT' | 'SYSTEM_CPU' | 'SYSTEM_MEMORY' | 'PROXY' | 'AUTO_RECOVERY' | 'PEER_RECOVERY' | 'FILE_SYSTEM_WIPEOUT' | 'REMOTE_DESKTOP' | 'HOTEL_MODE' | 'VPN' | 'CUSTOM_SCRIPTS' | 'NATIVE_COMMANDS_MDC' | 'DEVICE_OWNER' | 'ACCESSIBILITY_SERVICE' | 'DISPLAY_MANAGER' | 'SECRETS' | 'HARDWARE_ACCELERATION' | 'WIFI_COUNTRY' | 'STOP_PACKAGE' | AnyString;
4
+ export type ManagementCapability = 'MODEL' | 'SERIAL_NUMBER' | 'BRAND' | 'OS_VERSION' | 'BATTERY_STATUS' | 'STORAGE_UNITS' | 'TEMPERATURE' | 'SCREENSHOT_UPLOAD' | 'NETWORK_INFO' | 'WIFI' | 'WIFI_SCAN' | 'WIFI_AP' | 'WIFI_STRENGTH' | 'TIMERS_PROPRIETARY' | 'BRIGHTNESS_SCHEDULING' | 'TIMERS_NATIVE' | 'SET_BRIGHTNESS' | 'GET_BRIGHTNESS' | 'SCREEN_RESIZE' | 'SET_TIME' | 'SET_TIMEZONE' | 'GET_TIMEZONE' | 'NTP_TIME' | 'APP_UPGRADE' | 'FIRMWARE_UPGRADE' | 'PACKAGE_INSTALL' | 'SET_VOLUME' | 'GET_VOLUME' | 'SET_REMOTE_CONTROL_ENABLED' | 'SET_DEBUG' | 'SYSTEM_REBOOT' | 'APP_RESTART' | 'DISPLAY_POWER' | 'SERVLET' | 'HARDWARE_LED_SET_COLOR' | 'PROXIMITY_SENSOR' | 'FACTORY_RESET' | 'ORIENTATION_LANDSCAPE' | 'ORIENTATION_PORTRAIT' | 'ORIENTATION_LANDSCAPE_FLIPPED' | 'ORIENTATION_PORTRAIT_FLIPPED' | 'ORIENTATION_AUTO' | 'SCHEDULE_POWER_ACTION' | 'EXTENDED_MANAGEMENT' | 'SYSTEM_CPU' | 'SYSTEM_MEMORY' | 'PROXY' | 'AUTO_RECOVERY' | 'PEER_RECOVERY' | 'FILE_SYSTEM_WIPEOUT' | 'REMOTE_DESKTOP' | 'HOTEL_MODE' | 'VPN' | 'CUSTOM_SCRIPTS' | 'NATIVE_COMMANDS_MDC' | 'DEVICE_OWNER' | 'ACCESSIBILITY_SERVICE' | 'DISPLAY_MANAGER' | 'SECRETS' | 'HARDWARE_ACCELERATION' | 'WIFI_COUNTRY' | 'STOP_PACKAGE' | 'SEND_UDP' | 'WAKE_ON_LAN' | 'CLEAR_PACKAGE_DATA' | AnyString;
5
5
  export default interface IManagement {
6
6
  supports(capability: ManagementCapability): Promise<boolean>;
7
7
  getModel(): Promise<string>;
@@ -22,6 +22,8 @@ export default interface INetwork {
22
22
  setDHCP(interfaceName: string): Promise<void>;
23
23
  disableInterface(interfaceName: string): Promise<void>;
24
24
  importCertificate(details: CertificateEapDetails): Promise<void>;
25
+ sendUdp(ip: string, port: number, data: number[]): Promise<void>;
26
+ sendWakeOnLan(macAddress: string): Promise<void>;
25
27
  }
26
28
  export declare const VCertificateEapDetails: {
27
29
  type: {
@@ -1 +1 @@
1
- {"version":3,"file":"INetwork.js","sourceRoot":"","sources":["../../../../src/FrontApplet/Management/Network/INetwork.ts"],"names":[],"mappings":";;;AA4Ba,QAAA,sBAAsB,GAAG;IACrC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IACzC,aAAa,EAAE,SAAS;IACxB,iBAAiB,EAAE,SAAS;IAC5B,SAAS,EAAE,SAAS;IACpB,yBAAyB,EAAE,SAAS;CACpC,CAAC"}
1
+ {"version":3,"file":"INetwork.js","sourceRoot":"","sources":["../../../../src/FrontApplet/Management/Network/INetwork.ts"],"names":[],"mappings":";;;AA8Ba,QAAA,sBAAsB,GAAG;IACrC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;IACzC,aAAa,EAAE,SAAS;IACxB,iBAAiB,EAAE,SAAS;IAC5B,SAAS,EAAE,SAAS;IACpB,yBAAyB,EAAE,SAAS;CACpC,CAAC"}
@@ -136,5 +136,40 @@ export default class Network implements INetwork {
136
136
  * await sos.management.network.importCertificate(certDetailsEapTtls);
137
137
  */
138
138
  importCertificate(details: CertificateEapDetails): Promise<void>;
139
+ /**
140
+ * The `sendUdp()` method sends a raw UDP datagram to the specified IP address and port.
141
+ * This is a low-level network primitive that can be used for protocols like Wake-on-LAN.
142
+ *
143
+ * @param ip The destination IP address. Use `'255.255.255.255'` for broadcast.
144
+ * @param port The destination UDP port number (1-65535).
145
+ * @param data The payload as a byte array. Each element must be an integer between 0 and 255. Maximum 1500 elements (Ethernet MTU).
146
+ * @returns {Promise<void>} A promise that resolves when the UDP packet has been sent.
147
+ * @throws {Error} If the parameters are invalid.
148
+ * @throws {Error} If the device does not support sending UDP packets.
149
+ * @since 9.0.0
150
+ *
151
+ * @example
152
+ * // Send a Wake-on-LAN magic packet
153
+ * await sos.management.network.sendUdp('255.255.255.255', 9, [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, ...]);
154
+ */
155
+ sendUdp(ip: string, port: number, data: number[]): Promise<void>;
156
+ /**
157
+ * The `sendWakeOnLan()` method sends a Wake-on-LAN magic packet to wake a device with the given MAC address.
158
+ * The target device must have Wake-on-LAN enabled and be on the same local network.
159
+ *
160
+ * Internally, this generates a 102-byte magic packet (6×0xFF + 16× MAC address) and sends it
161
+ * as a UDP broadcast to `255.255.255.255` on port 9 via `sendUdp()`.
162
+ *
163
+ * @param macAddress The MAC address of the target device. Accepted formats: `AA:BB:CC:DD:EE:FF`, `AA-BB-CC-DD-EE-FF`, `AABBCCDDEEFF`.
164
+ * @returns {Promise<void>} A promise that resolves when the magic packet has been sent.
165
+ * @throws {Error} If the MAC address format is invalid.
166
+ * @throws {Error} If the device does not support sending UDP packets.
167
+ * @since 9.0.0
168
+ *
169
+ * @example
170
+ * // Wake a device by its MAC address
171
+ * await sos.management.network.sendWakeOnLan('AA:BB:CC:DD:EE:FF');
172
+ */
173
+ sendWakeOnLan(macAddress: string): Promise<void>;
139
174
  private getMessage;
140
175
  }
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const INetworkInfo_1 = require("./INetworkInfo");
7
7
  const Validate_1 = __importDefault(require("../../Validate/Validate"));
8
8
  const INetwork_1 = require("./INetwork");
9
+ const wakeOnLan_1 = require("./wakeOnLan");
9
10
  /**
10
11
  * The `sos.management.network` API groups together networking methods. For Wi-Fi setup, use the [Wi-Fi API](https://developers.signageos.io/sdk/sos_management/wifi).
11
12
  *
@@ -168,6 +169,73 @@ class Network {
168
169
  details,
169
170
  });
170
171
  }
172
+ /**
173
+ * The `sendUdp()` method sends a raw UDP datagram to the specified IP address and port.
174
+ * This is a low-level network primitive that can be used for protocols like Wake-on-LAN.
175
+ *
176
+ * @param ip The destination IP address. Use `'255.255.255.255'` for broadcast.
177
+ * @param port The destination UDP port number (1-65535).
178
+ * @param data The payload as a byte array. Each element must be an integer between 0 and 255. Maximum 1500 elements (Ethernet MTU).
179
+ * @returns {Promise<void>} A promise that resolves when the UDP packet has been sent.
180
+ * @throws {Error} If the parameters are invalid.
181
+ * @throws {Error} If the device does not support sending UDP packets.
182
+ * @since 9.0.0
183
+ *
184
+ * @example
185
+ * // Send a Wake-on-LAN magic packet
186
+ * await sos.management.network.sendUdp('255.255.255.255', 9, [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, ...]);
187
+ */
188
+ async sendUdp(ip, port, data) {
189
+ (0, Validate_1.default)({ ip })
190
+ .required()
191
+ .string()
192
+ .lengthMin(1)
193
+ .own((subject) => {
194
+ const IP_REGEX = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
195
+ return IP_REGEX.test(subject.subject) || 'must be a valid IPv4 address';
196
+ });
197
+ (0, Validate_1.default)({ port }).required().number().min(1).max(65535);
198
+ (0, Validate_1.default)({ data })
199
+ .required()
200
+ .array('number')
201
+ .lengthMax(1500)
202
+ .own((subject) => {
203
+ for (const byte of subject.subject) {
204
+ if (byte < 0 || byte > 255 || !Number.isInteger(byte)) {
205
+ return 'each element must be an integer between 0 and 255';
206
+ }
207
+ }
208
+ return true;
209
+ });
210
+ await this.postMessage({
211
+ type: this.getMessage('send_udp'),
212
+ ip,
213
+ port,
214
+ data,
215
+ });
216
+ }
217
+ /**
218
+ * The `sendWakeOnLan()` method sends a Wake-on-LAN magic packet to wake a device with the given MAC address.
219
+ * The target device must have Wake-on-LAN enabled and be on the same local network.
220
+ *
221
+ * Internally, this generates a 102-byte magic packet (6×0xFF + 16× MAC address) and sends it
222
+ * as a UDP broadcast to `255.255.255.255` on port 9 via `sendUdp()`.
223
+ *
224
+ * @param macAddress The MAC address of the target device. Accepted formats: `AA:BB:CC:DD:EE:FF`, `AA-BB-CC-DD-EE-FF`, `AABBCCDDEEFF`.
225
+ * @returns {Promise<void>} A promise that resolves when the magic packet has been sent.
226
+ * @throws {Error} If the MAC address format is invalid.
227
+ * @throws {Error} If the device does not support sending UDP packets.
228
+ * @since 9.0.0
229
+ *
230
+ * @example
231
+ * // Wake a device by its MAC address
232
+ * await sos.management.network.sendWakeOnLan('AA:BB:CC:DD:EE:FF');
233
+ */
234
+ async sendWakeOnLan(macAddress) {
235
+ (0, Validate_1.default)({ macAddress }).required().string().lengthMin(1);
236
+ const magicPacket = (0, wakeOnLan_1.createMagicPacket)(macAddress);
237
+ await this.sendUdp('255.255.255.255', 9, magicPacket);
238
+ }
171
239
  getMessage(name) {
172
240
  return this.messagePrefix + '.' + name;
173
241
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Network.js","sourceRoot":"","sources":["../../../../src/FrontApplet/Management/Network/Network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Network.js","sourceRoot":"","sources":["../../../../src/FrontApplet/Management/Network/Network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Parses a MAC address string into an array of 6 bytes.
3
+ * Accepts formats: `AA:BB:CC:DD:EE:FF`, `AA-BB-CC-DD-EE-FF`, `AABBCCDDEEFF`.
4
+ *
5
+ * @param macAddress The MAC address string to parse.
6
+ * @returns An array of 6 bytes (numbers 0-255).
7
+ * @throws {Error} If the MAC address format is invalid.
8
+ */
9
+ export declare function parseMacAddress(macAddress: string): number[];
10
+ /**
11
+ * Creates a Wake-on-LAN magic packet for the given MAC address.
12
+ * The packet is 102 bytes: 6 bytes of 0xFF followed by the MAC address repeated 16 times.
13
+ *
14
+ * @param macAddress The target MAC address (formats: `AA:BB:CC:DD:EE:FF`, `AA-BB-CC-DD-EE-FF`, `AABBCCDDEEFF`).
15
+ * @returns The magic packet as a number array (102 bytes, each 0-255).
16
+ * @throws {Error} If the MAC address format is invalid.
17
+ */
18
+ export declare function createMagicPacket(macAddress: string): number[];
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseMacAddress = parseMacAddress;
4
+ exports.createMagicPacket = createMagicPacket;
5
+ const MAC_REGEX = /^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$|^([0-9A-Fa-f]{2}-){5}[0-9A-Fa-f]{2}$|^[0-9A-Fa-f]{12}$/;
6
+ /**
7
+ * Parses a MAC address string into an array of 6 bytes.
8
+ * Accepts formats: `AA:BB:CC:DD:EE:FF`, `AA-BB-CC-DD-EE-FF`, `AABBCCDDEEFF`.
9
+ *
10
+ * @param macAddress The MAC address string to parse.
11
+ * @returns An array of 6 bytes (numbers 0-255).
12
+ * @throws {Error} If the MAC address format is invalid.
13
+ */
14
+ function parseMacAddress(macAddress) {
15
+ if (!macAddress || !MAC_REGEX.test(macAddress)) {
16
+ throw new Error(`Invalid MAC address: "${macAddress}". Expected format: AA:BB:CC:DD:EE:FF, AA-BB-CC-DD-EE-FF, or AABBCCDDEEFF`);
17
+ }
18
+ const hex = macAddress.replace(/[:-]/g, '');
19
+ const bytes = [];
20
+ for (let i = 0; i < 12; i += 2) {
21
+ bytes.push(parseInt(hex.substring(i, i + 2), 16));
22
+ }
23
+ return bytes;
24
+ }
25
+ const MAGIC_PACKET_HEADER = [0xff, 0xff, 0xff, 0xff, 0xff, 0xff];
26
+ const MAC_REPETITIONS = 16;
27
+ /**
28
+ * Creates a Wake-on-LAN magic packet for the given MAC address.
29
+ * The packet is 102 bytes: 6 bytes of 0xFF followed by the MAC address repeated 16 times.
30
+ *
31
+ * @param macAddress The target MAC address (formats: `AA:BB:CC:DD:EE:FF`, `AA-BB-CC-DD-EE-FF`, `AABBCCDDEEFF`).
32
+ * @returns The magic packet as a number array (102 bytes, each 0-255).
33
+ * @throws {Error} If the MAC address format is invalid.
34
+ */
35
+ function createMagicPacket(macAddress) {
36
+ const macBytes = parseMacAddress(macAddress);
37
+ const packet = [...MAGIC_PACKET_HEADER];
38
+ for (let i = 0; i < MAC_REPETITIONS; i++) {
39
+ packet.push(...macBytes);
40
+ }
41
+ return packet;
42
+ }
43
+ //# sourceMappingURL=wakeOnLan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wakeOnLan.js","sourceRoot":"","sources":["../../../../src/FrontApplet/Management/Network/wakeOnLan.ts"],"names":[],"mappings":";;AAUA,0CAYC;AAaD,8CASC;AA5CD,MAAM,SAAS,GAAG,6FAA6F,CAAC;AAEhH;;;;;;;GAOG;AACH,SAAgB,eAAe,CAAC,UAAkB;IACjD,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,2EAA2E,CAAC,CAAC;IACjI,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACjE,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,UAAkB;IACnD,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAa,CAAC,GAAG,mBAAmB,CAAC,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -41,5 +41,14 @@ export default class Package implements IPackage {
41
41
  * @since 8.2.0
42
42
  */
43
43
  stop(packageName: string): Promise<boolean>;
44
+ /**
45
+ * The `clearData()` method stops a certain package and clears its user data.
46
+ *
47
+ * @param packageName Name of the android package
48
+ *
49
+ * @returns {Promise<void>} Resolves if the package data was cleared.
50
+ * @since 8.8.0
51
+ */
52
+ clearData(packageName: string): Promise<void>;
44
53
  private getMessage;
45
54
  }
@@ -67,6 +67,21 @@ class Package {
67
67
  });
68
68
  return stopped;
69
69
  }
70
+ /**
71
+ * The `clearData()` method stops a certain package and clears its user data.
72
+ *
73
+ * @param packageName Name of the android package
74
+ *
75
+ * @returns {Promise<void>} Resolves if the package data was cleared.
76
+ * @since 8.8.0
77
+ */
78
+ async clearData(packageName) {
79
+ (0, Validate_1.default)({ packageName }).required().string();
80
+ await this.postMessage({
81
+ type: this.getMessage('clear_package_data'),
82
+ packageName,
83
+ });
84
+ }
70
85
  getMessage(name) {
71
86
  return this.messagePrefix + '.' + name;
72
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Package.js","sourceRoot":"","sources":["../../../../src/FrontApplet/Management/Package/Package.ts"],"names":[],"mappings":";;;;;AACA,uEAA+C;AAG/C;;;;;;;;;;;;GAYG;AACH,MAAqB,OAAO;IAGlB;IACA;IAHT,gBAAgB;IAChB,YACS,aAAqB,EACrB,WAA8B;QAD9B,kBAAa,GAAb,aAAa,CAAQ;QACrB,gBAAW,GAAX,WAAW,CAAmB;IACpC,CAAC;IAEJ;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,WAAmB,EAAE,OAAe,EAAE,KAAoB;QAC/F,IAAA,kBAAQ,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC;QACvC,IAAA,kBAAQ,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;QAC9C,IAAA,kBAAQ,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAA,kBAAQ,EAAC,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,WAAW,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;YACxC,OAAO;YACP,WAAW;YACX,OAAO;YACP,KAAK;SACL,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,IAAI,CAAC,WAAmB;QACpC,IAAA,kBAAQ,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;QAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YACrC,WAAW;SACX,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,UAAU,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC;IACxC,CAAC;CACD;AAvDD,0BAuDC"}
1
+ {"version":3,"file":"Package.js","sourceRoot":"","sources":["../../../../src/FrontApplet/Management/Package/Package.ts"],"names":[],"mappings":";;;;;AACA,uEAA+C;AAG/C;;;;;;;;;;;;GAYG;AACH,MAAqB,OAAO;IAGlB;IACA;IAHT,gBAAgB;IAChB,YACS,aAAqB,EACrB,WAA8B;QAD9B,kBAAa,GAAb,aAAa,CAAQ;QACrB,gBAAW,GAAX,WAAW,CAAmB;IACpC,CAAC;IAEJ;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,WAAmB,EAAE,OAAe,EAAE,KAAoB;QAC/F,IAAA,kBAAQ,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC;QACvC,IAAA,kBAAQ,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;QAC9C,IAAA,kBAAQ,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAA,kBAAQ,EAAC,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,WAAW,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;YACxC,OAAO;YACP,WAAW;YACX,OAAO;YACP,KAAK;SACL,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,IAAI,CAAC,WAAmB;QACpC,IAAA,kBAAQ,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;QAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YACrC,WAAW;SACX,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,SAAS,CAAC,WAAmB;QACzC,IAAA,kBAAQ,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;QAC9C,MAAM,IAAI,CAAC,WAAW,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAC3C,WAAW;SACX,CAAC,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC;IACxC,CAAC;CACD;AAvED,0BAuEC"}
@@ -32,6 +32,20 @@ function handleManagementNetworkRequests(onCommand, dispatch, frontApplet) {
32
32
  result: {},
33
33
  });
34
34
  break;
35
+ case managementNetworkCommands_1.ManagementNetworkSendUdpRequest:
36
+ await frontApplet.management.network.sendUdp(commandEvent.command.ip, commandEvent.command.port, commandEvent.command.data);
37
+ await dispatch({
38
+ type: managementNetworkCommands_1.ManagementNetworkSendUdpResult,
39
+ result: {},
40
+ });
41
+ break;
42
+ case managementNetworkCommands_1.ManagementNetworkSendWakeOnLanRequest:
43
+ await frontApplet.management.network.sendWakeOnLan(commandEvent.command.macAddress);
44
+ await dispatch({
45
+ type: managementNetworkCommands_1.ManagementNetworkSendWakeOnLanResult,
46
+ result: {},
47
+ });
48
+ break;
35
49
  default:
36
50
  }
37
51
  });
@@ -1 +1 @@
1
- {"version":3,"file":"handleManagementNetworkRequests.js","sourceRoot":"","sources":["../../../../src/Monitoring/Management/Network/handleManagementNetworkRequests.ts"],"names":[],"mappings":";;AAeA,0EAqCC;AAjDD,2EAUqC;AAErC,SAAgB,+BAA+B,CAC9C,SAA6G,EAC7G,QAAyE,EACzE,WAAwB;IAExB,SAAS,CAAC,KAAK,EAAE,YAA2D,EAAE,EAAE;QAC/E,QAAQ,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACnC,KAAK,kEAAsC;gBAC1C,MAAM,QAAQ,CAAwC;oBACrD,IAAI,EAAE,iEAAqC;oBAC3C,MAAM,EAAE,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE;iBAC7D,CAAC,CAAC;gBACH,MAAM;YACP,KAAK,6DAAiC;gBACrC,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjH,MAAM,QAAQ,CAAmC;oBAChD,IAAI,EAAE,4DAAgC;oBACtC,MAAM,EAAE,EAAE;iBACV,CAAC,CAAC;gBACH,MAAM;YACP,KAAK,iEAAqC;gBACzC,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACjF,MAAM,QAAQ,CAAuC;oBACpD,IAAI,EAAE,gEAAoC;oBAC1C,MAAM,EAAE,EAAE;iBACV,CAAC,CAAC;gBACH,MAAM;YACP,KAAK,oEAAwC;gBAC5C,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC1F,MAAM,QAAQ,CAA0C;oBACvD,IAAI,EAAE,mEAAuC;oBAC7C,MAAM,EAAE,EAAE;iBACV,CAAC,CAAC;gBACH,MAAM;YACP,QAAQ;QACT,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"handleManagementNetworkRequests.js","sourceRoot":"","sources":["../../../../src/Monitoring/Management/Network/handleManagementNetworkRequests.ts"],"names":[],"mappings":";;AAmBA,0EAmDC;AAnED,2EAcqC;AAErC,SAAgB,+BAA+B,CAC9C,SAA6G,EAC7G,QAAyE,EACzE,WAAwB;IAExB,SAAS,CAAC,KAAK,EAAE,YAA2D,EAAE,EAAE;QAC/E,QAAQ,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACnC,KAAK,kEAAsC;gBAC1C,MAAM,QAAQ,CAAwC;oBACrD,IAAI,EAAE,iEAAqC;oBAC3C,MAAM,EAAE,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE;iBAC7D,CAAC,CAAC;gBACH,MAAM;YACP,KAAK,6DAAiC;gBACrC,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjH,MAAM,QAAQ,CAAmC;oBAChD,IAAI,EAAE,4DAAgC;oBACtC,MAAM,EAAE,EAAE;iBACV,CAAC,CAAC;gBACH,MAAM;YACP,KAAK,iEAAqC;gBACzC,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACjF,MAAM,QAAQ,CAAuC;oBACpD,IAAI,EAAE,gEAAoC;oBAC1C,MAAM,EAAE,EAAE;iBACV,CAAC,CAAC;gBACH,MAAM;YACP,KAAK,oEAAwC;gBAC5C,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC1F,MAAM,QAAQ,CAA0C;oBACvD,IAAI,EAAE,mEAAuC;oBAC7C,MAAM,EAAE,EAAE;iBACV,CAAC,CAAC;gBACH,MAAM;YACP,KAAK,2DAA+B;gBACnC,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC5H,MAAM,QAAQ,CAAiC;oBAC9C,IAAI,EAAE,0DAA8B;oBACpC,MAAM,EAAE,EAAE;iBACV,CAAC,CAAC;gBACH,MAAM;YACP,KAAK,iEAAqC;gBACzC,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACpF,MAAM,QAAQ,CAAuC;oBACpD,IAAI,EAAE,gEAAoC;oBAC1C,MAAM,EAAE,EAAE;iBACV,CAAC,CAAC;gBACH,MAAM;YACP,QAAQ;QACT,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { INetworkInterface, INetworkOptions } from '../../../FrontApplet/Management/Network/INetworkInfo';
2
2
  import { EmptyObject } from '../../EmptyObject';
3
- export type ManagementNetworkRequests = ManagementNetworkListInterfacesRequest | ManagementNetworkSetManualRequest | ManagementNetworkSetDHCPServerRequest | ManagementNetworkDisableInterfaceRequest;
3
+ export type ManagementNetworkRequests = ManagementNetworkListInterfacesRequest | ManagementNetworkSetManualRequest | ManagementNetworkSetDHCPServerRequest | ManagementNetworkDisableInterfaceRequest | ManagementNetworkSendUdpRequest | ManagementNetworkSendWakeOnLanRequest;
4
4
  export declare const ManagementNetworkListInterfacesRequest = "sos.Monitoring.Management.Network.ListInterfacesRequest";
5
5
  export interface ManagementNetworkListInterfacesRequest {
6
6
  type: typeof ManagementNetworkListInterfacesRequest;
@@ -41,3 +41,25 @@ export interface ManagementNetworkDisableInterfaceResult {
41
41
  type: typeof ManagementNetworkDisableInterfaceResult;
42
42
  result: EmptyObject;
43
43
  }
44
+ export declare const ManagementNetworkSendUdpRequest = "sos.Monitoring.Management.Network.SendUdpRequest";
45
+ export interface ManagementNetworkSendUdpRequest {
46
+ type: typeof ManagementNetworkSendUdpRequest;
47
+ ip: string;
48
+ port: number;
49
+ data: number[];
50
+ }
51
+ export declare const ManagementNetworkSendUdpResult = "sos.Monitoring.Management.Network.SendUdpResult";
52
+ export interface ManagementNetworkSendUdpResult {
53
+ type: typeof ManagementNetworkSendUdpResult;
54
+ result: EmptyObject;
55
+ }
56
+ export declare const ManagementNetworkSendWakeOnLanRequest = "sos.Monitoring.Management.Network.SendWakeOnLanRequest";
57
+ export interface ManagementNetworkSendWakeOnLanRequest {
58
+ type: typeof ManagementNetworkSendWakeOnLanRequest;
59
+ macAddress: string;
60
+ }
61
+ export declare const ManagementNetworkSendWakeOnLanResult = "sos.Monitoring.Management.Network.SendWakeOnLanResult";
62
+ export interface ManagementNetworkSendWakeOnLanResult {
63
+ type: typeof ManagementNetworkSendWakeOnLanResult;
64
+ result: EmptyObject;
65
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ManagementNetworkDisableInterfaceResult = exports.ManagementNetworkDisableInterfaceRequest = exports.ManagementNetworkSetDHCPServerResult = exports.ManagementNetworkSetDHCPServerRequest = exports.ManagementNetworkSetManualResult = exports.ManagementNetworkSetManualRequest = exports.ManagementNetworkListInterfacesResult = exports.ManagementNetworkListInterfacesRequest = void 0;
3
+ exports.ManagementNetworkSendWakeOnLanResult = exports.ManagementNetworkSendWakeOnLanRequest = exports.ManagementNetworkSendUdpResult = exports.ManagementNetworkSendUdpRequest = exports.ManagementNetworkDisableInterfaceResult = exports.ManagementNetworkDisableInterfaceRequest = exports.ManagementNetworkSetDHCPServerResult = exports.ManagementNetworkSetDHCPServerRequest = exports.ManagementNetworkSetManualResult = exports.ManagementNetworkSetManualRequest = exports.ManagementNetworkListInterfacesResult = exports.ManagementNetworkListInterfacesRequest = void 0;
4
4
  exports.ManagementNetworkListInterfacesRequest = 'sos.Monitoring.Management.Network.ListInterfacesRequest';
5
5
  exports.ManagementNetworkListInterfacesResult = 'sos.Monitoring.Management.Network.ListInterfacesResult';
6
6
  exports.ManagementNetworkSetManualRequest = 'sos.Monitoring.Management.Network.SetManualRequest';
@@ -9,4 +9,8 @@ exports.ManagementNetworkSetDHCPServerRequest = 'sos.Monitoring.Management.Netwo
9
9
  exports.ManagementNetworkSetDHCPServerResult = 'sos.Monitoring.Management.Network.SetDHCPServerResult';
10
10
  exports.ManagementNetworkDisableInterfaceRequest = 'sos.Monitoring.Management.Network.DisableInterfaceRequest';
11
11
  exports.ManagementNetworkDisableInterfaceResult = 'sos.Monitoring.Management.Network.DisableInterfaceResult';
12
+ exports.ManagementNetworkSendUdpRequest = 'sos.Monitoring.Management.Network.SendUdpRequest';
13
+ exports.ManagementNetworkSendUdpResult = 'sos.Monitoring.Management.Network.SendUdpResult';
14
+ exports.ManagementNetworkSendWakeOnLanRequest = 'sos.Monitoring.Management.Network.SendWakeOnLanRequest';
15
+ exports.ManagementNetworkSendWakeOnLanResult = 'sos.Monitoring.Management.Network.SendWakeOnLanResult';
12
16
  //# sourceMappingURL=managementNetworkCommands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"managementNetworkCommands.js","sourceRoot":"","sources":["../../../../src/Monitoring/Management/Network/managementNetworkCommands.ts"],"names":[],"mappings":";;;AASa,QAAA,sCAAsC,GAAG,yDAAyD,CAAC;AAKnG,QAAA,qCAAqC,GAAG,wDAAwD,CAAC;AAMjG,QAAA,iCAAiC,GAAG,oDAAoD,CAAC;AAOzF,QAAA,gCAAgC,GAAG,mDAAmD,CAAC;AAMvF,QAAA,qCAAqC,GAAG,wDAAwD,CAAC;AAMjG,QAAA,oCAAoC,GAAG,uDAAuD,CAAC;AAM/F,QAAA,wCAAwC,GAAG,2DAA2D,CAAC;AAMvG,QAAA,uCAAuC,GAAG,0DAA0D,CAAC"}
1
+ {"version":3,"file":"managementNetworkCommands.js","sourceRoot":"","sources":["../../../../src/Monitoring/Management/Network/managementNetworkCommands.ts"],"names":[],"mappings":";;;AAWa,QAAA,sCAAsC,GAAG,yDAAyD,CAAC;AAKnG,QAAA,qCAAqC,GAAG,wDAAwD,CAAC;AAMjG,QAAA,iCAAiC,GAAG,oDAAoD,CAAC;AAOzF,QAAA,gCAAgC,GAAG,mDAAmD,CAAC;AAMvF,QAAA,qCAAqC,GAAG,wDAAwD,CAAC;AAMjG,QAAA,oCAAoC,GAAG,uDAAuD,CAAC;AAM/F,QAAA,wCAAwC,GAAG,2DAA2D,CAAC;AAMvG,QAAA,uCAAuC,GAAG,0DAA0D,CAAC;AAMrG,QAAA,+BAA+B,GAAG,kDAAkD,CAAC;AAQrF,QAAA,8BAA8B,GAAG,iDAAiD,CAAC;AAMnF,QAAA,qCAAqC,GAAG,wDAAwD,CAAC;AAMjG,QAAA,oCAAoC,GAAG,uDAAuD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signageos/front-applet",
3
- "version": "8.7.0",
3
+ "version": "8.8.0",
4
4
  "main": "dist/bundle.js",
5
5
  "types": "es6/bundle.d.ts",
6
6
  "files": [