@signageos/front-applet 8.6.0 → 8.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/bundle.js +7 -7
  2. package/dist/bundle.js.map +1 -1
  3. package/docs/fpath/index.md +0 -270
  4. package/docs/sos/browser.md +0 -14
  5. package/docs/sos/command.md +0 -18
  6. package/docs/sos/deviceInfo.md +0 -17
  7. package/docs/sos/display.md +0 -8
  8. package/docs/sos/fileSystem.md +0 -488
  9. package/docs/sos/hardware/index.md +2 -49
  10. package/docs/sos/input.md +0 -12
  11. package/docs/sos/native/mdc.md +1 -35
  12. package/docs/sos/native/nmc.md +127 -0
  13. package/docs/sos/offline/cache.md +0 -6
  14. package/docs/sos/offline/index.md +0 -27
  15. package/docs/sos/proofOfPlay.md +0 -10
  16. package/docs/sos/stream.md +11 -781
  17. package/docs/sos/sync.md +0 -23
  18. package/docs/sos/video.md +0 -86
  19. package/docs/sos_management/app.md +32 -29
  20. package/docs/sos_management/index.md +0 -8
  21. package/docs/sos_management/network.md +0 -19
  22. package/docs/sos_management/os.md +0 -11
  23. package/docs/sos_management/power.md +50 -30
  24. package/docs/sos_management/screen.md +0 -7
  25. package/docs/sos_management/time.md +0 -3
  26. package/docs/sos_management/wifi.md +0 -101
  27. package/es6/FrontApplet/Management/App/App.d.ts +34 -24
  28. package/es6/FrontApplet/Management/App/App.js.map +1 -1
  29. package/es6/FrontApplet/Management/Power/IPower.d.ts +32 -10
  30. package/es6/FrontApplet/Management/Power/IPower.js +3 -0
  31. package/es6/FrontApplet/Management/Power/IPower.js.map +1 -1
  32. package/es6/FrontApplet/Management/Power/Power.d.ts +12 -8
  33. package/es6/FrontApplet/Management/Power/Power.js +23 -32
  34. package/es6/FrontApplet/Management/Power/Power.js.map +1 -1
  35. package/es6/FrontApplet/Management/Power/PowerHelper.d.ts +8 -3
  36. package/es6/FrontApplet/Management/Power/PowerHelper.js +32 -0
  37. package/es6/FrontApplet/Management/Power/PowerHelper.js.map +1 -1
  38. package/es6/FrontApplet/Management/helpers/ProprietaryTimerHelper.d.ts +2 -1
  39. package/es6/FrontApplet/Management/helpers/TimerHelper.d.ts +3 -1
  40. package/es6/FrontApplet/Management/helpers/TimerHelper.js +2 -0
  41. package/es6/FrontApplet/Management/helpers/TimerHelper.js.map +1 -1
  42. package/es6/FrontApplet/NativeCommands/NMC/CommandsNmc.d.ts +4 -0
  43. package/es6/FrontApplet/NativeCommands/NMC/CommandsNmc.js +66 -0
  44. package/es6/FrontApplet/NativeCommands/NMC/CommandsNmc.js.map +1 -0
  45. package/es6/FrontApplet/NativeCommands/NMC/INativeNmcCommands.d.ts +21 -0
  46. package/es6/FrontApplet/NativeCommands/NMC/INativeNmcCommands.js +3 -0
  47. package/es6/FrontApplet/NativeCommands/NMC/INativeNmcCommands.js.map +1 -0
  48. package/es6/FrontApplet/NativeCommands/NMC/Nmc.d.ts +50 -0
  49. package/es6/FrontApplet/NativeCommands/NMC/Nmc.js +77 -0
  50. package/es6/FrontApplet/NativeCommands/NMC/Nmc.js.map +1 -0
  51. package/es6/FrontApplet/NativeCommands/NativeCommands.d.ts +2 -0
  52. package/es6/FrontApplet/NativeCommands/NativeCommands.js +3 -0
  53. package/es6/FrontApplet/NativeCommands/NativeCommands.js.map +1 -1
  54. package/es6/FrontApplet/Video/IOptions.d.ts +5 -0
  55. package/es6/Monitoring/Management/Power/powerCommands.d.ts +3 -3
  56. package/package.json +1 -1
package/docs/sos/sync.md CHANGED
@@ -139,49 +139,28 @@ other.
139
139
  ```ts expandable
140
140
  connect(options?: SynchronizationEngineOptions): Promise<void>;
141
141
  // show-more
142
- /** Options for the `connect()` method based selected synchronization type. */
143
142
  type SynchronizationEngineOptions = ConnectSyncServerOptions | ConnectP2PLocalOptions | ConnectUdpOptions;
144
143
 
145
- /**
146
- * Options for sync-server synchronization.
147
- */
148
144
  interface ConnectSyncServerOptions {
149
145
  engine?: SyncEngine.SyncServer;
150
- /** Address of the sync server engine. If omitted, the default server from device configuration will be used. */
151
146
  uri?: string;
152
- /** Optional configuration for sync server behavior */
153
147
  config?: SynchronizerConfig;
154
148
  }
155
149
 
156
- /**
157
- * The `SyncEngine` enum defines the available synchronization engines that can be used to synchronize devices.
158
- * Each engine has its own method of connecting devices and synchronizing data.
159
- */
160
150
  enum SyncEngine {
161
- /** Use external sync server. Device will connect to the server via websocket. */
162
151
  SyncServer = "sync-server",
163
- /** Synchronize directly with other devices in the local network via UDP and TCP. */
164
152
  P2PLocal = "p2p-local",
165
- /**
166
- * Synchronize directly with other devices in the local network via UDP.
167
- * @deprecated use {@link P2PLocal}
168
- */
169
153
  Udp = "udp"
170
154
  }
171
155
 
172
156
  interface SynchronizerConfig {
173
- /** Allow slave devices to broadcast values to all devices in group (default: false) */
174
157
  allowSlaveBroadcast?: boolean;
175
158
  }
176
159
 
177
- /**
178
- * Options for P2P local synchronization.
179
- */
180
160
  interface ConnectP2PLocalOptions {
181
161
  engine: SyncEngine.P2PLocal;
182
162
  }
183
163
 
184
- /** @deprecated use SyncEngine.P2PLocal and ConnectP2PLocalOptions */
185
164
  interface ConnectUdpOptions {
186
165
  engine: SyncEngine.Udp;
187
166
  }
@@ -366,9 +345,7 @@ onStatus(listener: (status: StatusEvent) => void): void;
366
345
  // show-more
367
346
  interface StatusEvent {
368
347
  groupName?: string;
369
- /** Array of device identifications connected to the group. */
370
348
  connectedPeers: string[];
371
- /** True if this device is currently master of the group (this may change over time). */
372
349
  isMaster: boolean;
373
350
  }
374
351
 
package/docs/sos/video.md CHANGED
@@ -148,24 +148,13 @@ The `onEnded()` method sets up a listener, which is called whenever a video fini
148
148
  ```ts expandable
149
149
  onEnded(listener: (event: IVideoEvent) => void): void;
150
150
  // show-more
151
- /**
152
- * Represents an event related to video playback.
153
- */
154
151
  interface IVideoEvent {
155
- /** The type of the video event. */
156
152
  type: VideoEventType;
157
- /** Properties of video that created the event */
158
153
  srcArguments: IVideoProperties;
159
154
  }
160
155
 
161
- /**
162
- * Represents the types of video events that can occur.
163
- */
164
156
  type VideoEventType = 'prepare' | 'play' | 'stop' | 'pause' | 'resume' | 'ended' | 'error';
165
157
 
166
- /**
167
- * Video properties interface for defining the properties of a played video.
168
- */
169
158
  interface IVideoProperties {
170
159
  uri: string;
171
160
  x: number;
@@ -205,24 +194,13 @@ The `onError()` method sets up a listener, which is called whenever a video fail
205
194
  ```ts expandable
206
195
  onError(listener: (event: IVideoEvent) => void): void;
207
196
  // show-more
208
- /**
209
- * Represents an event related to video playback.
210
- */
211
197
  interface IVideoEvent {
212
- /** The type of the video event. */
213
198
  type: VideoEventType;
214
- /** Properties of video that created the event */
215
199
  srcArguments: IVideoProperties;
216
200
  }
217
201
 
218
- /**
219
- * Represents the types of video events that can occur.
220
- */
221
202
  type VideoEventType = 'prepare' | 'play' | 'stop' | 'pause' | 'resume' | 'ended' | 'error';
222
203
 
223
- /**
224
- * Video properties interface for defining the properties of a played video.
225
- */
226
204
  interface IVideoProperties {
227
205
  uri: string;
228
206
  x: number;
@@ -262,24 +240,13 @@ The `onPause()` method sets up a listener, which is called whenever a video is p
262
240
  ```ts expandable
263
241
  onPause(listener: (event: IVideoEvent) => void): void;
264
242
  // show-more
265
- /**
266
- * Represents an event related to video playback.
267
- */
268
243
  interface IVideoEvent {
269
- /** The type of the video event. */
270
244
  type: VideoEventType;
271
- /** Properties of video that created the event */
272
245
  srcArguments: IVideoProperties;
273
246
  }
274
247
 
275
- /**
276
- * Represents the types of video events that can occur.
277
- */
278
248
  type VideoEventType = 'prepare' | 'play' | 'stop' | 'pause' | 'resume' | 'ended' | 'error';
279
249
 
280
- /**
281
- * Video properties interface for defining the properties of a played video.
282
- */
283
250
  interface IVideoProperties {
284
251
  uri: string;
285
252
  x: number;
@@ -319,24 +286,13 @@ The `onPlay()` method sets up a listener, which is called whenever a video start
319
286
  ```ts expandable
320
287
  onPlay(listener: (event: IVideoEvent) => void): void;
321
288
  // show-more
322
- /**
323
- * Represents an event related to video playback.
324
- */
325
289
  interface IVideoEvent {
326
- /** The type of the video event. */
327
290
  type: VideoEventType;
328
- /** Properties of video that created the event */
329
291
  srcArguments: IVideoProperties;
330
292
  }
331
293
 
332
- /**
333
- * Represents the types of video events that can occur.
334
- */
335
294
  type VideoEventType = 'prepare' | 'play' | 'stop' | 'pause' | 'resume' | 'ended' | 'error';
336
295
 
337
- /**
338
- * Video properties interface for defining the properties of a played video.
339
- */
340
296
  interface IVideoProperties {
341
297
  uri: string;
342
298
  x: number;
@@ -377,24 +333,13 @@ The `onPrepare()` method sets up a listener, which is called whenever a video st
377
333
  ```ts expandable
378
334
  onPrepare(listener: (event: IVideoEvent) => void): void;
379
335
  // show-more
380
- /**
381
- * Represents an event related to video playback.
382
- */
383
336
  interface IVideoEvent {
384
- /** The type of the video event. */
385
337
  type: VideoEventType;
386
- /** Properties of video that created the event */
387
338
  srcArguments: IVideoProperties;
388
339
  }
389
340
 
390
- /**
391
- * Represents the types of video events that can occur.
392
- */
393
341
  type VideoEventType = 'prepare' | 'play' | 'stop' | 'pause' | 'resume' | 'ended' | 'error';
394
342
 
395
- /**
396
- * Video properties interface for defining the properties of a played video.
397
- */
398
343
  interface IVideoProperties {
399
344
  uri: string;
400
345
  x: number;
@@ -434,24 +379,13 @@ The `onResume()` method sets up a listener, which is called whenever a video is
434
379
  ```ts expandable
435
380
  onResume(listener: (event: IVideoEvent) => void): void;
436
381
  // show-more
437
- /**
438
- * Represents an event related to video playback.
439
- */
440
382
  interface IVideoEvent {
441
- /** The type of the video event. */
442
383
  type: VideoEventType;
443
- /** Properties of video that created the event */
444
384
  srcArguments: IVideoProperties;
445
385
  }
446
386
 
447
- /**
448
- * Represents the types of video events that can occur.
449
- */
450
387
  type VideoEventType = 'prepare' | 'play' | 'stop' | 'pause' | 'resume' | 'ended' | 'error';
451
388
 
452
- /**
453
- * Video properties interface for defining the properties of a played video.
454
- */
455
389
  interface IVideoProperties {
456
390
  uri: string;
457
391
  x: number;
@@ -493,24 +427,13 @@ The `onStop()` method sets up a listener, which is called whenever a video has b
493
427
  ```ts expandable
494
428
  onStop(listener: (event: IVideoEvent) => void): void;
495
429
  // show-more
496
- /**
497
- * Represents an event related to video playback.
498
- */
499
430
  interface IVideoEvent {
500
- /** The type of the video event. */
501
431
  type: VideoEventType;
502
- /** Properties of video that created the event */
503
432
  srcArguments: IVideoProperties;
504
433
  }
505
434
 
506
- /**
507
- * Represents the types of video events that can occur.
508
- */
509
435
  type VideoEventType = 'prepare' | 'play' | 'stop' | 'pause' | 'resume' | 'ended' | 'error';
510
436
 
511
- /**
512
- * Video properties interface for defining the properties of a played video.
513
- */
514
437
  interface IVideoProperties {
515
438
  uri: string;
516
439
  x: number;
@@ -644,17 +567,8 @@ The `prepare()` method loads the video into memory and prepares it for a playbac
644
567
  prepare(uri: string, x: number, y: number, width: number, height: number, options?: IOptions): Promise<void>;
645
568
  // show-more
646
569
  interface IOptions {
647
- /** @deprecated */
648
570
  '4k'?: boolean;
649
- /**
650
- * Prepare stream or video in background.
651
- * @default false
652
- */
653
571
  background?: boolean;
654
- /**
655
- * Initial volume value of the stream.
656
- * @default 100
657
- */
658
572
  volume?: number;
659
573
  }
660
574
 
@@ -29,9 +29,6 @@ The `getType()` method returns the type of the platform the application is runni
29
29
  ```ts expandable
30
30
  getType(): Promise<AppType>;
31
31
  // show-more
32
- /**
33
- * All available app types
34
- */
35
32
  type AppType = 'android' | 'brightsign' | 'default' | 'linux' | 'sssp' | 'tizen' | 'webos' | 'windows' | 'chromeos' | AnyString;
36
33
 
37
34
  type AnyString = string & {};
@@ -74,32 +71,44 @@ console.log(`Current application version is: ${version}`); // e.g. '4.0.0', '5.2
74
71
 
75
72
  ### upgrade(appUri)
76
73
 
77
- The `upgrade(appUri)` method upgrades the signageOS application with the provided `appUri`. Open users can upgrade the app passing FQN
78
- URI where the application's main file is located.
79
-
80
- This file type/extension differs for every platform. E.g.:
81
- - SSSP: http://example.com/apps/sssp_config.xml or http://example.com/apps/ApplicationName.zip
82
- - Tizen: http://example.com/apps/sssp_config.xml or http://example.com/apps/ApplicationName.wgt
83
- - Webos 1, 2: http://example.com/apps/ApplicationName.zip
84
- - Webos 3+: http://example.com/apps/ApplicationName.ipk
85
- - Brightsign: http://example.com/apps/ApplicationName.zip
86
- - Linux: http://example.com/apps/ApplicationName.apk
87
- - Android: http://example.com/apps/ApplicationName.apk
88
- - ChromeOS: Not supported
89
-
90
- :::tip
91
- Check our latest versions in our [changelogs](https://docs.signageos.io/hc/en-us/sections/4409161443730-Core-Apps).
74
+ The `upgrade(appUri)` method upgrades the signageOS application with the provided `appUri`. Open users can upgrade the app passing
75
+ a URL where the application files are hosted.
76
+
77
+ :::warning Strict URL and folder structure requirements
78
+ The `appUri` **must** follow the exact folder structure produced by the signageOS Device-app Builder.
79
+ The upgrade will fail silently (device reverts to the previous version) if the URL does not match the expected format.
80
+
81
+ Key rules:
82
+ 1. **The folder structure on your server must match the ZIP package from signageOS exactly.** Do not rename files or reorganize folders.
83
+ 2. **HTTP redirects (e.g., 302) are not supported.** Files must be directly accessible at the expected URLs.
84
+ 3. **The URL must not end with a trailing slash (`/`).** A trailing slash causes the upgrade to fail.
92
85
  :::
93
86
 
87
+ The expected URL format differs per platform:
88
+
89
+ | Platform | URL format |
90
+ |----------|-----------|
91
+ | **Tizen** | Point to the **folder** containing `sssp_config.xml` and `*.wgt` — not to a specific file. E.g. `https://cdn.example.com/app/tizen/2.10.1/landscape` |
92
+ | **SSSP** | Point to the **folder** containing `sssp_config.xml` and `*.wgt`. E.g. `https://cdn.example.com/app/sssp/2.10.1/landscape_full-hd` |
93
+ | **webOS 1, 2** | Point to the **ZIP file** directly. E.g. `https://cdn.example.com/app/webos/2.10.1/ApplicationName.zip` |
94
+ | **webOS 3+** | Point to the **IPK file** directly. E.g. `https://cdn.example.com/app/webos/2.10.1/ApplicationName.ipk` |
95
+ | **BrightSign** | Point to the **zip file** directly. E.g. `https://cdn.example.com/app/brightsign/2.10.1/display-brightsign.zip` |
96
+ | **Android** | Point to the **APK file** directly. E.g. `https://cdn.example.com/app/android/2.10.1/io.signageos.android.apk` |
97
+ | **Windows** | Point to the **zip file** directly. E.g. `https://cdn.example.com/app/windows/2.10.1/windows_2.10.1.zip` |
98
+ | **ChromeOS** | Not supported |
99
+
100
+ For the full folder structure reference and deployment guide, see
101
+ [Build & Deploy Your Applet Via Core App with built-in Applet](https://docs.signageos.io/devspace/general-topics/deployment/build-deploy-your-applet-via-core-app-with-built-in-applet).
102
+
94
103
  ```ts expandable
95
104
  upgrade(appUri: string): Promise<void>;
96
105
  ```
97
106
 
98
107
  #### Params
99
108
 
100
- | Name | Type | Required | Description |
101
- |----------|----------|------------------|-------------------------------------------------------|
102
- | `appUri` | `string` | <div>Yes</div> | FQN uri where the application's main file is located. |
109
+ | Name | Type | Required | Description |
110
+ |----------|----------|------------------|-------------------------------------------------------------------------------------------------------|
111
+ | `appUri` | `string` | <div>Yes</div> | URL where the application files are hosted. Must follow the platform-specific format described above. |
103
112
 
104
113
  #### Return value
105
114
 
@@ -112,14 +121,8 @@ If the upgrade fails.
112
121
  #### Example
113
122
 
114
123
  ```ts
115
- // Upgrade the application to a specific version
116
- await sos.management.app.upgrade('http://example.com/apps/ApplicationName.zip')
117
- .then(() => {
118
- console.log('Application upgrade started successfully.');
119
- })
120
- .catch((error) => {
121
- console.error('Failed to start application upgrade:', error);
122
- });
124
+ // Upgrade Tizen device — point to the FOLDER, not a specific file. No trailing slash.
125
+ await sos.management.app.upgrade('https://cdn.your-cms.com/app/tizen/2.10.1/landscape');
123
126
  ```
124
127
 
125
128
  :::note[GitHub Example]
@@ -416,9 +416,6 @@ This method was deprecated. Use `sos.management.network.listInterfaces()` instea
416
416
  ```ts expandable
417
417
  getNetworkInfo(): Promise<INetworkInfo>;
418
418
  // show-more
419
- /**
420
- * @deprecated use `INetworkInterface` instead
421
- */
422
419
  interface INetworkInfo {
423
420
  localAddress: string;
424
421
  ethernetMacAddress: string;
@@ -428,11 +425,6 @@ interface INetworkInfo {
428
425
  netmask?: string;
429
426
  dns?: string[];
430
427
  interfaceName?: string;
431
- /**
432
- * Number in range from 0 to 100 (percentage)
433
- * mapped from -90 dBm unusable signal
434
- * to -30 dBm excellent signal.
435
- */
436
428
  wifiStrength?: number;
437
429
  wifiSsid?: string;
438
430
  }
@@ -65,17 +65,11 @@ The `importCertificate()` method imports a certificate to the device. The certif
65
65
  ```ts expandable
66
66
  importCertificate(details: CertificateEapDetails): Promise<void>;
67
67
  // show-more
68
- /** Details for importing a certificate for EAP authentication. */
69
68
  interface CertificateEapDetails {
70
- /** Type of EAP authentication */
71
69
  type: EAPMethod;
72
- /** CA certificate */
73
70
  caCertificate?: string;
74
- /** Client certificate for EAP-TLS */
75
71
  clientCertificate?: string;
76
- /** Private key for client certificate for EAP-TLS */
77
72
  clientKey?: string;
78
- /** Password for the private key, if it's encrypted */
79
73
  clientCertificatePassword?: string;
80
74
  }
81
75
 
@@ -151,11 +145,6 @@ interface INetworkInterface {
151
145
  netmask?: string;
152
146
  dns?: string[];
153
147
  disabled?: boolean;
154
- /**
155
- * Number in range from 0 to 100 (percentage)
156
- * mapped from -90 dBm unusable signal
157
- * to -30 dBm excellent signal.
158
- */
159
148
  wifiStrength?: number;
160
149
  wifiSsid?: string;
161
150
  }
@@ -269,9 +258,6 @@ This method was deprecated. Use `sos.management.network.listInterfaces()` instea
269
258
  ```ts expandable
270
259
  getActiveInfo(): Promise<INetworkInfo>;
271
260
  // show-more
272
- /**
273
- * @deprecated use `INetworkInterface` instead
274
- */
275
261
  interface INetworkInfo {
276
262
  localAddress: string;
277
263
  ethernetMacAddress: string;
@@ -281,11 +267,6 @@ interface INetworkInfo {
281
267
  netmask?: string;
282
268
  dns?: string[];
283
269
  interfaceName?: string;
284
- /**
285
- * Number in range from 0 to 100 (percentage)
286
- * mapped from -90 dBm unusable signal
287
- * to -30 dBm excellent signal.
288
- */
289
270
  wifiStrength?: number;
290
271
  wifiSsid?: string;
291
272
  }
@@ -53,14 +53,6 @@ version of the current operating system. It's usually 1 or 2 digits, including o
53
53
  getInfo(): Promise<IOSInfo>;
54
54
  // show-more
55
55
  interface IOSInfo {
56
- /**
57
- * Major version of current operating system.
58
- * It's usually 1 or 2 digits including or excluding dot notation.
59
- * E.g.:
60
- * Windows -> 7, 8, 10, 11
61
- * WebOS -> 3, 3.2, 4, 4.1
62
- * Tizen -> 2.4, 3, 4, 5
63
- */
64
56
  version: string;
65
57
  }
66
58
 
@@ -86,9 +78,6 @@ The `getMemoryUsage()` method returns the total memory amount in bytes, the curr
86
78
  ```ts expandable
87
79
  getMemoryUsage(): Promise<SystemMemoryInfo>;
88
80
  // show-more
89
- /**
90
- * Returned object from `getMemoryUsage()` method.
91
- */
92
81
  interface SystemMemoryInfo {
93
82
  used: number;
94
83
  total: number;
@@ -74,9 +74,11 @@ interface IProprietaryTimer {
74
74
  type: ProprietaryTimerType;
75
75
  timeOn: string | null;
76
76
  timeOff: string | null;
77
- weekdays: string[];
77
+ weekdays: ShortWeekdayType[];
78
78
  }
79
79
 
80
+ type ShortWeekdayType = 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat';
81
+
80
82
  ```
81
83
 
82
84
  #### Return value
@@ -100,25 +102,30 @@ const timers = await sos.management.power.getProprietaryTimers();
100
102
  Returns all scheduled reboot rules on the device set by the `setScheduledReboot()` method.
101
103
 
102
104
  ```ts expandable
103
- getScheduledReboots(): Promise<IScheduledRebootActions[]>;
105
+ getScheduledReboots(): Promise<IScheduledRebootAction<IScheduledRebootRule>[]>;
104
106
  // show-more
105
- /**
106
- * Interface representing the scheduled reboot action.
107
- */
108
- interface IScheduledRebootActions {
109
- /** Random generated ID for the scheduled reboot action */
107
+ interface IScheduledRebootAction<TRule extends IScheduledRebootRuleRaw | IScheduledRebootRule> {
110
108
  id: string;
111
- /** The rule of the scheduled reboot */
112
- rule: IScheduledRebootRule;
109
+ rule: TRule;
110
+ }
111
+
112
+ interface IScheduledRebootRuleRaw {
113
+ weekdays: WeekdayNumberType[];
114
+ time: string;
113
115
  }
114
116
 
117
+ type WeekdayNumberType = 0 | 1 | 2 | 3 | 4 | 5 | 6;
118
+
115
119
  interface IScheduledRebootRule {
116
- /** Weekdays as numbers or strings. Number types are received from server. */
117
- weekdays: number[] | string[];
118
- /** Time in HH:mm:ss format */
120
+ weekdays: WeekdayType[];
121
+ shortWeekdays: ShortWeekdayType[];
119
122
  time: string;
120
123
  }
121
124
 
125
+ type WeekdayType = 'SUNDAY' | 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY';
126
+
127
+ type ShortWeekdayType = 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat';
128
+
122
129
  ```
123
130
 
124
131
  #### Return value
@@ -144,10 +151,12 @@ interface ITimer {
144
151
  type: keyof typeof TimerType;
145
152
  timeOn: string | null;
146
153
  timeOff: string | null;
147
- weekdays: string[];
154
+ weekdays: ShortWeekdayType[];
148
155
  volume: number;
149
156
  }
150
157
 
158
+ type ShortWeekdayType = 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat';
159
+
151
160
  ```
152
161
 
153
162
  #### Return value
@@ -202,18 +211,23 @@ The `setProprietaryTimer()` method creates or updates a
202
211
  [proprietary timer](https://docs.signageos.io/hc/en-us/articles/4416384202642-Timers#h_01HCD14GEDP96AZV58NRSN2HNQ).
203
212
 
204
213
  ```ts expandable
205
- setProprietaryTimer(type: ProprietaryTimerType, timeOn: string | null, timeOff: string | null, weekdays: string[], keepAppletRunning?: boolean): Promise<void>;
214
+ setProprietaryTimer(type: ProprietaryTimerType, timeOn: string | null, timeOff: string | null, weekdays: (ShortWeekdayType | AnyString)[], keepAppletRunning?: boolean): Promise<void>;
215
+ // show-more
216
+ type ShortWeekdayType = 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat';
217
+
218
+ type AnyString = string & {};
219
+
206
220
  ```
207
221
 
208
222
  #### Params
209
223
 
210
- | Name | Type | Required | Description |
211
- |---------------------|---------------------|------------------|-----------------------------------------------------------------------------------------|
212
- | `type` | ``TIMER_${number}`` | <div>Yes</div> | The type of the timer (`TIMER_1`, ..., `TIMER_7`). |
213
- | `timeOn` | `string \| null` | <div>Yes</div> | The time when the device should turn on. |
214
- | `timeOff` | `string \| null` | <div>Yes</div> | The time when the device should turn off. |
215
- | `weekdays` | `string[]` | <div>Yes</div> | The days of the week when the timer should be active (`mon`, ..., `sun`). |
216
- | `keepAppletRunning` | `boolean` | <div>No</div> | If `true`, the applet will be kept running when the timer is active on certain devices. |
224
+ | Name | Type | Required | Description |
225
+ |---------------------|-------------------------------------|------------------|-----------------------------------------------------------------------------------------|
226
+ | `type` | ``TIMER_${number}`` | <div>Yes</div> | The type of the timer (`TIMER_1`, ..., `TIMER_7`). |
227
+ | `timeOn` | `string \| null` | <div>Yes</div> | The time when the device should turn on. |
228
+ | `timeOff` | `string \| null` | <div>Yes</div> | The time when the device should turn off. |
229
+ | `weekdays` | `(AnyString \| ShortWeekdayType)[]` | <div>Yes</div> | The days of the week when the timer should be active (`mon`, ..., `sun`). |
230
+ | `keepAppletRunning` | `boolean` | <div>No</div> | If `true`, the applet will be kept running when the timer is active on certain devices. |
217
231
 
218
232
  #### Return value
219
233
 
@@ -250,19 +264,20 @@ It is possible to set multiple rules, which can be later obtained by the `getSch
250
264
  :::
251
265
 
252
266
  ```ts expandable
253
- setScheduledReboot(weekdays: WeekdayType[], time: string): Promise<void>;
267
+ setScheduledReboot(weekdays: (ShortWeekdayType | AnyString)[], time: string): Promise<void>;
254
268
  // show-more
255
- /** Allowed scheduled action weekday types */
256
- type WeekdayType = 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY';
269
+ type ShortWeekdayType = 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat';
270
+
271
+ type AnyString = string & {};
257
272
 
258
273
  ```
259
274
 
260
275
  #### Params
261
276
 
262
- | Name | Type | Required | Description |
263
- |------------|-----------------|------------------|----------------------------------------------------------------|
264
- | `weekdays` | `WeekdayType[]` | <div>Yes</div> | |
265
- | `time` | `string` | <div>Yes</div> | Time when the reboot should be executed. Format is `HH:mm:ss`. |
277
+ | Name | Type | Required | Description |
278
+ |------------|-------------------------------------|------------------|-----------------------------------------------------------------------|
279
+ | `weekdays` | `(AnyString \| ShortWeekdayType)[]` | <div>Yes</div> | `WeekdayType[]` Array of weekdays when the reboot should be executed. |
280
+ | `time` | `string` | <div>Yes</div> | Time when the reboot should be executed. Format is `HH:mm:ss`. |
266
281
 
267
282
  #### Return value
268
283
 
@@ -294,7 +309,12 @@ await sos.management.power.setScheduledReboot(["MONDAY", "FRIDAY"], "19:30:00");
294
309
  The `setTimer()` method creates or updates a native timer.
295
310
 
296
311
  ```ts expandable
297
- setTimer(type: keyof typeof TimerType, timeOn: string | null, timeOff: string | null, weekdays: string[], volume: number): Promise<void>;
312
+ setTimer(type: keyof typeof TimerType, timeOn: string | null, timeOff: string | null, weekdays: (ShortWeekdayType | AnyString)[], volume: number): Promise<void>;
313
+ // show-more
314
+ type ShortWeekdayType = 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat';
315
+
316
+ type AnyString = string & {};
317
+
298
318
  ```
299
319
 
300
320
  #### Params
@@ -304,7 +324,7 @@ setTimer(type: keyof typeof TimerType, timeOn: string | null, timeOff: string |
304
324
  | `type` | `"TIMER_1" \| "TIMER_2" \| "TIMER_3" \| "TIMER_4" \| "TIMER_5" \| "TIMER_6" \| "TIMER_7"` | <div>Yes</div> | The type of the timer (`TIMER_1`, ..., `TIMER_7`). |
305
325
  | `timeOn` | `string \| null` | <div>Yes</div> | The time when the device should turn on. |
306
326
  | `timeOff` | `string \| null` | <div>Yes</div> | The time when the device should turn off. |
307
- | `weekdays` | `string[]` | <div>Yes</div> | The days of the week when the timer should be active (`mon`, ..., `sun`). |
327
+ | `weekdays` | `ShortWeekdayType` | <div>Yes</div> | The days of the week when the timer should be active (`mon`, ..., `sun`). |
308
328
  | `volume` | `number` | <div>Yes</div> | The volume level set when the device is turned on. |
309
329
 
310
330
  #### Return value
@@ -295,17 +295,12 @@ signageOS provides a standalone server that implements all of those methods. It
295
295
  takeAndUploadScreenshot(uploadBaseUrl: string, options?: TakeAndUploadScreenshotOptions): Promise<TakeAndUploadScreenshotResult>;
296
296
  // show-more
297
297
  interface TakeAndUploadScreenshotResult {
298
- /** URL of the uploaded screenshot. */
299
298
  screenshotUrl: string;
300
- /** aHash of the screenshot, if computed. */
301
299
  aHash?: string;
302
300
  }
303
301
 
304
- /** Options for taking and uploading a screenshot. */
305
302
  interface TakeAndUploadScreenshotOptions {
306
- /** Whether to compute the hash of the screenshot. Default is false. */
307
303
  computeHash?: boolean;
308
- /** Additional headers to include in the upload request. */
309
304
  headers?: Record<string, string>;
310
305
  }
311
306
 
@@ -374,9 +369,7 @@ This method was deprecated. Use `takeAndUploadScreenshot(uploadBaseUrl: string,
374
369
  takeAndUploadScreenshot(uploadBaseUrl: string, computeHash?: boolean): Promise<TakeAndUploadScreenshotResult>;
375
370
  // show-more
376
371
  interface TakeAndUploadScreenshotResult {
377
- /** URL of the uploaded screenshot. */
378
372
  screenshotUrl: string;
379
- /** aHash of the screenshot, if computed. */
380
373
  aHash?: string;
381
374
  }
382
375
 
@@ -66,9 +66,6 @@ The `setManual()` method sets the system time and the system timezone and disabl
66
66
  ```ts expandable
67
67
  setManual(dateTime: DateTime, timezone: string): Promise<void>;
68
68
  // show-more
69
- /**
70
- * All values are raw, none are zero-indexed.
71
- */
72
69
  interface DateTime {
73
70
  year: number;
74
71
  month: number;