@alwaysai/device-agent 1.3.1 → 1.4.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 (91) hide show
  1. package/lib/application-control/environment-variables.d.ts.map +1 -1
  2. package/lib/application-control/environment-variables.js +9 -4
  3. package/lib/application-control/environment-variables.js.map +1 -1
  4. package/lib/application-control/environment-variables.test.js +1 -1
  5. package/lib/application-control/environment-variables.test.js.map +1 -1
  6. package/lib/application-control/install.d.ts.map +1 -1
  7. package/lib/application-control/install.js +6 -2
  8. package/lib/application-control/install.js.map +1 -1
  9. package/lib/application-control/models.d.ts.map +1 -1
  10. package/lib/application-control/models.js +4 -2
  11. package/lib/application-control/models.js.map +1 -1
  12. package/lib/application-control/status.js +4 -5
  13. package/lib/application-control/status.js.map +1 -1
  14. package/lib/cloud-connection/device-agent-cloud-connection.d.ts +3 -3
  15. package/lib/cloud-connection/device-agent-cloud-connection.d.ts.map +1 -1
  16. package/lib/cloud-connection/device-agent-cloud-connection.js +114 -99
  17. package/lib/cloud-connection/device-agent-cloud-connection.js.map +1 -1
  18. package/lib/cloud-connection/live-updates-handler.d.ts +1 -0
  19. package/lib/cloud-connection/live-updates-handler.d.ts.map +1 -1
  20. package/lib/cloud-connection/live-updates-handler.js +22 -4
  21. package/lib/cloud-connection/live-updates-handler.js.map +1 -1
  22. package/lib/cloud-connection/messages.d.ts.map +1 -1
  23. package/lib/cloud-connection/messages.js +3 -4
  24. package/lib/cloud-connection/messages.js.map +1 -1
  25. package/lib/cloud-connection/shadow-handler.d.ts +14 -21
  26. package/lib/cloud-connection/shadow-handler.d.ts.map +1 -1
  27. package/lib/cloud-connection/shadow-handler.js +162 -108
  28. package/lib/cloud-connection/shadow-handler.js.map +1 -1
  29. package/lib/cloud-connection/shadow-handler.test.js +100 -83
  30. package/lib/cloud-connection/shadow-handler.test.js.map +1 -1
  31. package/lib/device-control/device-control.d.ts +7 -14
  32. package/lib/device-control/device-control.d.ts.map +1 -1
  33. package/lib/device-control/device-control.js +37 -14
  34. package/lib/device-control/device-control.js.map +1 -1
  35. package/lib/secure-tunneling/secure-tunneling.d.ts +105 -0
  36. package/lib/secure-tunneling/secure-tunneling.d.ts.map +1 -0
  37. package/lib/secure-tunneling/secure-tunneling.js +435 -0
  38. package/lib/secure-tunneling/secure-tunneling.js.map +1 -0
  39. package/lib/secure-tunneling/secure-tunneling.test.d.ts +2 -0
  40. package/lib/secure-tunneling/secure-tunneling.test.d.ts.map +1 -0
  41. package/lib/secure-tunneling/secure-tunneling.test.js +1070 -0
  42. package/lib/secure-tunneling/secure-tunneling.test.js.map +1 -0
  43. package/lib/secure-tunneling/spawner-detached.d.ts +6 -0
  44. package/lib/secure-tunneling/spawner-detached.d.ts.map +1 -0
  45. package/lib/secure-tunneling/spawner-detached.js +107 -0
  46. package/lib/secure-tunneling/spawner-detached.js.map +1 -0
  47. package/lib/subcommands/app/analytics.d.ts.map +1 -1
  48. package/lib/subcommands/app/analytics.js +9 -13
  49. package/lib/subcommands/app/analytics.js.map +1 -1
  50. package/lib/subcommands/app/env-vars.d.ts.map +1 -1
  51. package/lib/subcommands/app/env-vars.js +11 -16
  52. package/lib/subcommands/app/env-vars.js.map +1 -1
  53. package/lib/subcommands/app/models.d.ts.map +1 -1
  54. package/lib/subcommands/app/models.js +12 -16
  55. package/lib/subcommands/app/models.js.map +1 -1
  56. package/lib/subcommands/device/clean.d.ts.map +1 -1
  57. package/lib/subcommands/device/clean.js +3 -1
  58. package/lib/subcommands/device/clean.js.map +1 -1
  59. package/lib/subcommands/device/device.d.ts.map +1 -1
  60. package/lib/subcommands/device/device.js +14 -6
  61. package/lib/subcommands/device/device.js.map +1 -1
  62. package/lib/util/cloud-mode-ready.d.ts +1 -0
  63. package/lib/util/cloud-mode-ready.d.ts.map +1 -1
  64. package/lib/util/cloud-mode-ready.js +36 -1
  65. package/lib/util/cloud-mode-ready.js.map +1 -1
  66. package/package.json +2 -2
  67. package/src/application-control/environment-variables.test.ts +1 -1
  68. package/src/application-control/environment-variables.ts +9 -6
  69. package/src/application-control/install.ts +7 -3
  70. package/src/application-control/models.ts +11 -6
  71. package/src/application-control/status.ts +8 -8
  72. package/src/cloud-connection/device-agent-cloud-connection.ts +161 -131
  73. package/src/cloud-connection/live-updates-handler.ts +34 -6
  74. package/src/cloud-connection/messages.ts +3 -4
  75. package/src/cloud-connection/shadow-handler.test.ts +101 -84
  76. package/src/cloud-connection/shadow-handler.ts +275 -133
  77. package/src/device-control/device-control.ts +46 -19
  78. package/src/secure-tunneling/secure-tunneling.test.ts +1239 -0
  79. package/src/secure-tunneling/secure-tunneling.ts +606 -0
  80. package/src/secure-tunneling/spawner-detached.ts +123 -0
  81. package/src/subcommands/app/analytics.ts +16 -13
  82. package/src/subcommands/app/env-vars.ts +18 -16
  83. package/src/subcommands/app/models.ts +20 -16
  84. package/src/subcommands/device/clean.ts +4 -1
  85. package/src/subcommands/device/device.ts +26 -10
  86. package/src/util/cloud-mode-ready.ts +36 -0
  87. package/lib/secure-tunneling/index.d.ts +0 -5
  88. package/lib/secure-tunneling/index.d.ts.map +0 -1
  89. package/lib/secure-tunneling/index.js +0 -64
  90. package/lib/secure-tunneling/index.js.map +0 -1
  91. package/src/secure-tunneling/index.ts +0 -74
@@ -4,6 +4,7 @@ const application_control_1 = require("../application-control");
4
4
  const publisher_1 = require("./publisher");
5
5
  const shadow_handler_1 = require("./shadow-handler");
6
6
  const logger_1 = require("../util/logger");
7
+ const device_agent_schemas_1 = require("@alwaysai/device-agent-schemas");
7
8
  jest.mock('../application-control');
8
9
  jest.mock('./publisher');
9
10
  const mockClient = jest.fn();
@@ -20,8 +21,8 @@ describe('Test Shadow Handler', () => {
20
21
  test.skip('reject buffer payload', async () => {
21
22
  //FIXME: Invalid input is silently ignored, need input validation
22
23
  expect(async () => {
23
- await shadowHandler.handleShadowTopic({
24
- topic: shadowHandler.shadowTopics.projects.updateAccepted,
24
+ await shadowHandler.handleProjectShadow({
25
+ topic: (0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update/accepted'),
25
26
  payload: Buffer.from('test-payload'),
26
27
  clientToken: ''
27
28
  });
@@ -50,8 +51,8 @@ describe('Test Shadow Handler', () => {
50
51
  appConfig: JSON.stringify(appCfg1)
51
52
  }
52
53
  };
53
- const updates = await shadowHandler.handleShadowTopic({
54
- topic: shadowHandler.shadowTopics.projects.updateAccepted,
54
+ const updates = await shadowHandler.handleProjectShadow({
55
+ topic: (0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update/accepted'),
55
56
  payload,
56
57
  clientToken: clientId
57
58
  });
@@ -63,8 +64,8 @@ describe('Test Shadow Handler', () => {
63
64
  [projectId1]: {}
64
65
  }
65
66
  };
66
- const updates = await shadowHandler.handleShadowTopic({
67
- topic: shadowHandler.shadowTopics.projects.updateAccepted,
67
+ const updates = await shadowHandler.handleProjectShadow({
68
+ topic: (0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update/accepted'),
68
69
  payload,
69
70
  clientToken: ''
70
71
  });
@@ -90,14 +91,16 @@ describe('Test Shadow Handler', () => {
90
91
  }
91
92
  };
92
93
  const payload = {
93
- delta: {
94
- [projectId1]: {
95
- appConfig: JSON.stringify(appCfg1)
94
+ state: {
95
+ desired: {
96
+ [projectId1]: {
97
+ appConfig: JSON.stringify(appCfg1)
98
+ }
96
99
  }
97
100
  }
98
101
  };
99
- const updates = await shadowHandler.handleShadowTopic({
100
- topic: shadowHandler.shadowTopics.projects.getAccepted,
102
+ const updates = await shadowHandler.handleProjectShadow({
103
+ topic: (0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update/accepted'),
101
104
  payload,
102
105
  clientToken: ''
103
106
  });
@@ -133,14 +136,16 @@ describe('Test Shadow Handler', () => {
133
136
  }
134
137
  };
135
138
  const payload = {
136
- desired: {
137
- [projectId1]: {
138
- appConfig: JSON.stringify(appCfg1)
139
+ state: {
140
+ desired: {
141
+ [projectId1]: {
142
+ appConfig: JSON.stringify(appCfg1)
143
+ }
139
144
  }
140
145
  }
141
146
  };
142
- const updates = await shadowHandler.handleShadowTopic({
143
- topic: shadowHandler.shadowTopics.projects.updateAccepted,
147
+ const updates = await shadowHandler.handleProjectShadow({
148
+ topic: (0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update/accepted'),
144
149
  payload,
145
150
  clientToken: ''
146
151
  });
@@ -195,17 +200,19 @@ describe('Test Shadow Handler', () => {
195
200
  }
196
201
  };
197
202
  const payload = {
198
- desired: {
199
- [projectId1]: {
200
- appConfig: JSON.stringify(appCfg1)
201
- },
202
- [projectId2]: {
203
- appConfig: JSON.stringify(appCfg2)
203
+ state: {
204
+ desired: {
205
+ [projectId1]: {
206
+ appConfig: JSON.stringify(appCfg1)
207
+ },
208
+ [projectId2]: {
209
+ appConfig: JSON.stringify(appCfg2)
210
+ }
204
211
  }
205
212
  }
206
213
  };
207
- const updates = await shadowHandler.handleShadowTopic({
208
- topic: shadowHandler.shadowTopics.projects.updateAccepted,
214
+ const updates = await shadowHandler.handleProjectShadow({
215
+ topic: (0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update/accepted'),
209
216
  payload,
210
217
  clientToken: ''
211
218
  });
@@ -250,14 +257,16 @@ describe('Test Shadow Handler', () => {
250
257
  }
251
258
  };
252
259
  const payload = {
253
- desired: {
254
- [projectId1]: {
255
- appConfig: JSON.stringify(appCfg1)
260
+ state: {
261
+ desired: {
262
+ [projectId1]: {
263
+ appConfig: JSON.stringify(appCfg1)
264
+ }
256
265
  }
257
266
  }
258
267
  };
259
- const updates = await shadowHandler.handleShadowTopic({
260
- topic: shadowHandler.shadowTopics.projects.updateAccepted,
268
+ const updates = await shadowHandler.handleProjectShadow({
269
+ topic: (0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update/accepted'),
261
270
  payload,
262
271
  clientToken: ''
263
272
  });
@@ -290,14 +299,16 @@ describe('Test Shadow Handler', () => {
290
299
  }
291
300
  };
292
301
  const payload = {
293
- desired: {
294
- [projectId1]: {
295
- appConfig: JSON.stringify(appCfg1)
302
+ state: {
303
+ desired: {
304
+ [projectId1]: {
305
+ appConfig: JSON.stringify(appCfg1)
306
+ }
296
307
  }
297
308
  }
298
309
  };
299
- const updates = await shadowHandler.handleShadowTopic({
300
- topic: shadowHandler.shadowTopics.projects.updateAccepted,
310
+ const updates = await shadowHandler.handleProjectShadow({
311
+ topic: (0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update/accepted'),
301
312
  payload,
302
313
  clientToken: ''
303
314
  });
@@ -322,63 +333,64 @@ describe('Test Shadow Handler', () => {
322
333
  }
323
334
  };
324
335
  const payload = {
325
- desired: {
326
- [projectId1]: {
327
- appConfig: appCfg1 // This is missing JSON.stringify() making this an unparsable object.
336
+ state: {
337
+ desired: {
338
+ [projectId1]: {
339
+ appConfig: appCfg1 // This is missing JSON.stringify() making this an unparsable object.
340
+ }
328
341
  }
329
342
  }
330
343
  };
331
344
  const loggerSpy = jest
332
345
  .spyOn(logger_1.logger, 'error')
333
346
  .mockReturnValue({});
334
- const updates = await shadowHandler.handleShadowTopic({
335
- topic: shadowHandler.shadowTopics.projects.updateAccepted,
347
+ const updates = await shadowHandler.handleProjectShadow({
348
+ topic: (0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update/accepted'),
336
349
  payload,
337
350
  clientToken: ''
338
351
  });
339
352
  expect(updates.length).toBe(0);
340
- expect(loggerSpy).toHaveBeenCalledWith(expect.stringContaining('Could not parse the appConfig'));
353
+ expect(loggerSpy).toHaveBeenCalledWith(expect.stringContaining('Error validating shadow update'));
341
354
  });
342
355
  });
343
356
  describe('handle project shadow env vars', () => {
344
- test('handle project shadow env vars get response with delta', async () => {
357
+ test('handle a response from the getAccepted from the cloud', async () => {
345
358
  const envVars1 = {
346
359
  VAR0: 'value0'
347
360
  };
348
361
  const payload = {
349
- delta: {
350
- [projectId1]: {
351
- envVars: envVars1
362
+ state: {
363
+ reported: {
364
+ [projectId1]: {
365
+ envVars: { service: envVars1 }
366
+ }
352
367
  }
353
368
  }
354
369
  };
355
- const updates = await shadowHandler.handleShadowTopic({
356
- topic: shadowHandler.shadowTopics.projects.getAccepted,
370
+ const updates = await shadowHandler.handleProjectShadow({
371
+ topic: (0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'get/accepted'),
357
372
  payload,
358
- clientToken: ''
359
- });
360
- expect(updates.length).toBe(1);
361
- expect(updates[0]).toEqual({
362
- projectId: projectId1,
363
- txId: expect.any(String),
364
- envVarUpdate: {
365
- envVars: envVars1
366
- }
373
+ clientToken: clientId
367
374
  });
375
+ expect(updates.length).toBe(0);
368
376
  });
369
377
  test('handle project shadow env vars update delta', async () => {
370
378
  const envVars1 = {
371
379
  VAR1: 'value1'
372
380
  };
373
381
  const payload = {
374
- desired: {
375
- [projectId1]: {
376
- envVars: envVars1
382
+ state: {
383
+ desired: {
384
+ [projectId1]: {
385
+ envVars: {
386
+ service: envVars1
387
+ }
388
+ }
377
389
  }
378
390
  }
379
391
  };
380
- const updates = await shadowHandler.handleShadowTopic({
381
- topic: shadowHandler.shadowTopics.projects.updateAccepted,
392
+ const updates = await shadowHandler.handleProjectShadow({
393
+ topic: (0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update/accepted'),
382
394
  payload,
383
395
  clientToken: ''
384
396
  });
@@ -387,29 +399,33 @@ describe('Test Shadow Handler', () => {
387
399
  projectId: projectId1,
388
400
  txId: expect.any(String),
389
401
  envVarUpdate: {
390
- envVars: envVars1
402
+ envVars: { service: envVars1 }
391
403
  }
392
404
  });
393
405
  });
394
406
  test('handle project shadow env vars update delta for two projects', async () => {
395
- const envVars1 = {
407
+ const service1 = {
396
408
  VAR1: 'value1'
397
409
  };
398
- const envVars2 = {
399
- VAR2: null
410
+ const service2 = {
411
+ VAR2: 'value2'
400
412
  };
401
413
  const payload = {
402
- desired: {
403
- [projectId1]: {
404
- envVars: envVars1
405
- },
406
- [projectId2]: {
407
- envVars: envVars2
414
+ state: {
415
+ desired: {
416
+ [projectId1]: {
417
+ envVars: {
418
+ service: service1
419
+ }
420
+ },
421
+ [projectId2]: {
422
+ envVars: { service: service2 }
423
+ }
408
424
  }
409
425
  }
410
426
  };
411
- const updates = await shadowHandler.handleShadowTopic({
412
- topic: shadowHandler.shadowTopics.projects.updateAccepted,
427
+ const updates = await shadowHandler.handleProjectShadow({
428
+ topic: (0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update/accepted'),
413
429
  payload,
414
430
  clientToken: ''
415
431
  });
@@ -418,32 +434,33 @@ describe('Test Shadow Handler', () => {
418
434
  projectId: projectId1,
419
435
  txId: expect.any(String),
420
436
  envVarUpdate: {
421
- envVars: envVars1
437
+ envVars: { service: service1 }
422
438
  }
423
439
  });
424
440
  expect(updates[1]).toEqual({
425
441
  projectId: projectId2,
426
442
  txId: expect.any(String),
427
443
  envVarUpdate: {
428
- envVars: envVars2
444
+ envVars: { service: service2 }
429
445
  }
430
446
  });
431
447
  });
432
448
  });
433
449
  test('clear project shadow', async () => {
434
- shadowHandler.clearAppConfig(projectId1);
450
+ await shadowHandler.clearProjectShadow(projectId1);
451
+ // The order of reported and desired in the packet does not matter for the device agent, but the test is checking literal equality of expected output, and therefore the order matters here with reported being first.
435
452
  const packet = {
453
+ clientToken: clientId,
436
454
  state: {
437
- desired: {
455
+ reported: {
438
456
  [projectId1]: null
439
457
  },
440
- reported: {
458
+ desired: {
441
459
  [projectId1]: null
442
460
  }
443
- },
444
- clientToken: clientId
461
+ }
445
462
  };
446
- expect(jest.mocked(publisher.publish)).toBeCalledWith(shadowHandler.shadowTopics.projects.update, JSON.stringify(packet));
463
+ expect(jest.mocked(publisher.publish)).toBeCalledWith((0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update'), JSON.stringify(packet));
447
464
  });
448
465
  test.skip('publish app config', async () => {
449
466
  // FIXME: For some reason publisher is not being called...
@@ -464,11 +481,11 @@ describe('Test Shadow Handler', () => {
464
481
  },
465
482
  clientToken: clientId
466
483
  };
467
- expect(jest.mocked(publisher.publish)).toBeCalledWith(shadowHandler.shadowTopics.projects.update, JSON.stringify(packet));
484
+ expect(jest.mocked(publisher.publish)).toBeCalledWith((0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'update'), JSON.stringify(packet));
468
485
  });
469
486
  test('get shadow updates', async () => {
470
- shadowHandler.getShadowUpdates();
471
- expect(jest.mocked(publisher.publish)).toBeCalledWith(shadowHandler.shadowTopics.projects.get, JSON.stringify({
487
+ shadowHandler.getProjectShadowUpdates();
488
+ expect(jest.mocked(publisher.publish)).toBeCalledWith((0, device_agent_schemas_1.getShadowTopic)(clientId, 'projects', 'get'), JSON.stringify({
472
489
  clientToken: clientId
473
490
  }));
474
491
  });
@@ -1 +1 @@
1
- {"version":3,"file":"shadow-handler.test.js","sourceRoot":"","sources":["../../src/cloud-connection/shadow-handler.test.ts"],"names":[],"mappings":";;AACA,gEAAwD;AACxD,2CAAwC;AACxC,qDAAiD;AAEjD,2CAAwC;AAExC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACpC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC;AAC/B,MAAM,UAAU,GAAG,cAAc,CAAC;AAClC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAEpC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,SAAoB,CAAC;IACzB,IAAI,aAA4B,CAAC;IAEjC,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,GAAG,IAAI,qBAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAChD,aAAa,GAAG,IAAI,8BAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QAC5C,iEAAiE;QACjE,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,aAAa,CAAC,iBAAiB,CAAC;gBACpC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc;gBACzD,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;gBACpC,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,SAAS,GAAc;YAC3B,OAAO,EAAE;gBACP,KAAK,EAAE,eAAe;aACvB;YACD,MAAM,EAAE;gBACN,wBAAwB,EAAE,CAAC;aAC5B;SACF,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,oCAAc,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAEzD,MAAM,OAAO,GAAc;YACzB,OAAO,EAAE;gBACP,KAAK,EAAE,eAAe;aACvB;YACD,MAAM,EAAE;gBACN,kBAAkB,EAAE,CAAC;aACtB;SACF,CAAC;QACF,MAAM,OAAO,GAAG;YACd,CAAC,UAAU,CAAC,EAAE;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aACnC;SACF,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC;YACpD,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc;YACzD,OAAO;YACP,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,OAAO,GAAG;YACd,OAAO,EAAE;gBACP,CAAC,UAAU,CAAC,EAAE,EAAE;aACjB;SACF,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC;YACpD,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc;YACzD,OAAO;YACP,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,IAAI,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,SAAS,GAAc;gBAC3B,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE;oBACN,wBAAwB,EAAE,CAAC;iBAC5B;aACF,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,oCAAc,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,OAAO,GAAc;gBACzB,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE;oBACN,kBAAkB,EAAE,CAAC;iBACtB;aACF,CAAC;YAEF,MAAM,OAAO,GAAG;gBACd,KAAK,EAAE;oBACL,CAAC,UAAU,CAAC,EAAE;wBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;qBACnC;iBACF;aACF,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC;gBACpD,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW;gBACtD,OAAO;gBACP,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzB,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBACxB,YAAY,EAAE;oBACZ,SAAS,EAAE,OAAO;oBAClB,aAAa,EAAE;wBACb,kBAAkB,EAAE,CAAC;qBACtB;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,SAAS,GAAc;gBAC3B,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE;oBACN,wBAAwB,EAAE,CAAC;iBAC5B;aACF,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,oCAAc,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,OAAO,GAAc;gBACzB,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE;oBACN,wBAAwB,EAAE,CAAC;oBAC3B,kBAAkB,EAAE,CAAC;iBACtB;aACF,CAAC;YAEF,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE;oBACP,CAAC,UAAU,CAAC,EAAE;wBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;qBACnC;iBACF;aACF,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC;gBACpD,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc;gBACzD,OAAO;gBACP,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzB,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBACxB,YAAY,EAAE;oBACZ,SAAS,EAAE,OAAO;oBAClB,aAAa,EAAE;wBACb,wBAAwB,EAAE,CAAC;wBAC3B,kBAAkB,EAAE,CAAC;qBACtB;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;YACtF,MAAM,SAAS,GAAc;gBAC3B,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE;oBACN,wBAAwB,EAAE,CAAC;iBAC5B;aACF,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,oCAAc,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAc;gBAC3B,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE;oBACN,kBAAkB,EAAE,CAAC;iBACtB;aACF,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,oCAAc,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAE7D,MAAM,OAAO,GAAc;gBACzB,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE;oBACN,wBAAwB,EAAE,CAAC;oBAC3B,kBAAkB,EAAE,CAAC;iBACtB;aACF,CAAC;YACF,MAAM,OAAO,GAAc;gBACzB,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE;oBACN,kBAAkB,EAAE,CAAC;oBACrB,qBAAqB,EAAE,CAAC;iBACzB;aACF,CAAC;YACF,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE;oBACP,CAAC,UAAU,CAAC,EAAE;wBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;qBACnC;oBACD,CAAC,UAAU,CAAC,EAAE;wBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;qBACnC;iBACF;aACF,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC;gBACpD,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc;gBACzD,OAAO;gBACP,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzB,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBACxB,YAAY,EAAE;oBACZ,SAAS,EAAE,OAAO;oBAClB,aAAa,EAAE;wBACb,wBAAwB,EAAE,CAAC;wBAC3B,kBAAkB,EAAE,CAAC;qBACtB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzB,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBACxB,YAAY,EAAE;oBACZ,SAAS,EAAE,OAAO;oBAClB,aAAa,EAAE;wBACb,qBAAqB,EAAE,CAAC;qBACzB;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,SAAS,GAAc;gBAC3B,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE,EAAE;aACX,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,oCAAc,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEzD,MAAM,OAAO,GAAc;gBACzB,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE;oBACT,oBAAoB,EAAE,IAAI;iBAC3B;aACF,CAAC;YAEF,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE;oBACP,CAAC,UAAU,CAAC,EAAE;wBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;qBACnC;iBACF;aACF,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC;gBACpD,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc;gBACzD,OAAO;gBACP,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzB,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBACxB,YAAY,EAAE;oBACZ,SAAS,EAAE,OAAO;iBACnB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,SAAS,GAAc;gBAC3B,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE;oBACN,wBAAwB,EAAE,CAAC;iBAC5B;aACF,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,oCAAc,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE;oBACN,wBAAwB,EAAE,GAAG;oBAC7B,kBAAkB,EAAE,GAAG,CAAC,wBAAwB;iBACjD;aACF,CAAC;YAEF,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE;oBACP,CAAC,UAAU,CAAC,EAAE;wBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;qBACnC;iBACF;aACF,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC;gBACpD,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc;gBACzD,OAAO;gBACP,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,SAAS,GAAc;gBAC3B,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE,EAAE;aACX,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,oCAAc,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEzD,wDAAwD;YACxD,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE;oBACP,KAAK,EAAE,eAAe;iBACvB;gBACD,MAAM,EAAE;oBACN,wBAAwB,EAAE,GAAG;oBAC7B,kBAAkB,EAAE,GAAG,CAAC,wBAAwB;iBACjD;aACF,CAAC;YAEF,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE;oBACP,CAAC,UAAU,CAAC,EAAE;wBACZ,SAAS,EAAE,OAAO,CAAC,qEAAqE;qBACzF;iBACF;aACF,CAAC;YAEF,MAAM,SAAS,GAAG,IAAI;iBACnB,KAAK,CAAC,eAAM,EAAE,OAAO,CAAC;iBACtB,eAAe,CAAC,EAAuB,CAAC,CAAC;YAE5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC;gBACpD,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc;gBACzD,OAAO;gBACP,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACpC,MAAM,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,CACzD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,IAAI,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,QAAQ,GAAG;gBACf,IAAI,EAAE,QAAQ;aACf,CAAC;YACF,MAAM,OAAO,GAAG;gBACd,KAAK,EAAE;oBACL,CAAC,UAAU,CAAC,EAAE;wBACZ,OAAO,EAAE,QAAQ;qBAClB;iBACF;aACF,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC;gBACpD,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW;gBACtD,OAAO;gBACP,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzB,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBACxB,YAAY,EAAE;oBACZ,OAAO,EAAE,QAAQ;iBAClB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,QAAQ,GAAG;gBACf,IAAI,EAAE,QAAQ;aACf,CAAC;YACF,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE;oBACP,CAAC,UAAU,CAAC,EAAE;wBACZ,OAAO,EAAE,QAAQ;qBAClB;iBACF;aACF,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC;gBACpD,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc;gBACzD,OAAO;gBACP,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzB,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBACxB,YAAY,EAAE;oBACZ,OAAO,EAAE,QAAQ;iBAClB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,QAAQ,GAAG;gBACf,IAAI,EAAE,QAAQ;aACf,CAAC;YACF,MAAM,QAAQ,GAAG;gBACf,IAAI,EAAE,IAAI;aACX,CAAC;YACF,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE;oBACP,CAAC,UAAU,CAAC,EAAE;wBACZ,OAAO,EAAE,QAAQ;qBAClB;oBACD,CAAC,UAAU,CAAC,EAAE;wBACZ,OAAO,EAAE,QAAQ;qBAClB;iBACF;aACF,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC;gBACpD,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc;gBACzD,OAAO;gBACP,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzB,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBACxB,YAAY,EAAE;oBACZ,OAAO,EAAE,QAAQ;iBAClB;aACF,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzB,SAAS,EAAE,UAAU;gBACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBACxB,YAAY,EAAE;oBACZ,OAAO,EAAE,QAAQ;iBAClB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACtC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG;YACb,KAAK,EAAE;gBACL,OAAO,EAAE;oBACP,CAAC,UAAU,CAAC,EAAE,IAAI;iBACnB;gBACD,QAAQ,EAAE;oBACR,CAAC,UAAU,CAAC,EAAE,IAAI;iBACnB;aACF;YACD,WAAW,EAAE,QAAQ;SACtB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CACnD,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QACzC,0DAA0D;QAC1D,MAAM,UAAU,GAAc;YAC5B,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE;aACV;YACD,MAAM,EAAE,EAAE;SACX,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,oCAAc,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE1D,MAAM,aAAa,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,oCAAc,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG;YACb,KAAK,EAAE;gBACL,QAAQ,EAAE;oBACR,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;iBACxD;aACF;YACD,WAAW,EAAE,QAAQ;SACtB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CACnD,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QACpC,aAAa,CAAC,gBAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CACnD,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EACvC,IAAI,CAAC,SAAS,CAAC;YACb,WAAW,EAAE,QAAQ;SACtB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"shadow-handler.test.js","sourceRoot":"","sources":["../../src/cloud-connection/shadow-handler.test.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,8 @@
1
- import { SystemInformationPayload } from '@alwaysai/device-agent-schemas';
2
- export declare function getCpuDetails(): Promise<{
3
- usedPerc: number;
4
- temperature: number;
5
- }>;
6
- export declare function getDiskDetails(): Promise<{
7
- usedGb: number;
8
- freeGb: number;
9
- }>;
10
- export declare function getMemDetails(): Promise<{
11
- usedMb: number;
12
- freeMb: number;
13
- }>;
1
+ import { SystemInformationShadowUpdate } from '@alwaysai/device-agent-schemas';
2
+ import { DeviceStatsPayload } from '@alwaysai/device-agent-schemas';
3
+ export declare function getCpuDetails(): Promise<DeviceStatsPayload['cpuDetails']>;
4
+ export declare function getDiskDetails(): Promise<DeviceStatsPayload['diskDetails']>;
5
+ export declare function getMemDetails(): Promise<DeviceStatsPayload['memDetails']>;
14
6
  export declare function getOsInfo(): Promise<{
15
7
  platform: string;
16
8
  distro: string;
@@ -54,6 +46,7 @@ export declare function getPackageVersions(): Promise<{
54
46
  agent: any;
55
47
  deviceAgentSchemas: any;
56
48
  }>;
57
- export declare function getSystemInformation(): Promise<SystemInformationPayload>;
49
+ export declare function getLastBootTime(): Promise<string | undefined>;
50
+ export declare function getSystemInformation(): Promise<SystemInformationShadowUpdate>;
58
51
  export declare function reboot(): Promise<void>;
59
52
  //# sourceMappingURL=device-control.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device-control.d.ts","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAU1E,wBAAsB,aAAa;;;GAOlC;AAED,wBAAsB,cAAc;;;GAQnC;AAED,wBAAsB,aAAa;;;GAMlC;AAGD,wBAAsB,SAAS;;;;;;;GAU9B;AAED,wBAAsB,UAAU;;;;;;;;;GAY/B;AAED,wBAAsB,WAAW;;;;;;;;GAWhC;AAED,wBAAsB,aAAa;;;;;;GAYlC;AAED,wBAAsB,cAAc;;;;GAWnC;AAED,wBAAsB,kBAAkB;;;GASvC;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAe9E;AAED,wBAAsB,MAAM,kBAiB3B"}
1
+ {"version":3,"file":"device-control.d.ts","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAM/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAKpE,wBAAsB,aAAa,IAAI,OAAO,CAC5C,kBAAkB,CAAC,YAAY,CAAC,CACjC,CAOA;AAED,wBAAsB,cAAc,IAAI,OAAO,CAC7C,kBAAkB,CAAC,aAAa,CAAC,CAClC,CAWA;AAED,wBAAsB,aAAa,IAAI,OAAO,CAC5C,kBAAkB,CAAC,YAAY,CAAC,CACjC,CAMA;AAGD,wBAAsB,SAAS;;;;;;;GAU9B;AAED,wBAAsB,UAAU;;;;;;;;;GAY/B;AAED,wBAAsB,WAAW;;;;;;;;GAWhC;AAED,wBAAsB,aAAa;;;;;;GAYlC;AAED,wBAAsB,cAAc;;;;GAWnC;AAED,wBAAsB,kBAAkB;;;GASvC;AAED,wBAAsB,eAAe,gCAcpC;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,6BAA6B,CAAC,CAgBnF;AAED,wBAAsB,MAAM,kBAiB3B"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.reboot = exports.getSystemInformation = exports.getPackageVersions = exports.getNetworkInfo = exports.getDeviceInfo = exports.getDiskInfo = exports.getCpuInfo = exports.getOsInfo = exports.getMemDetails = exports.getDiskDetails = exports.getCpuDetails = void 0;
3
+ exports.reboot = exports.getSystemInformation = exports.getLastBootTime = exports.getPackageVersions = exports.getNetworkInfo = exports.getDeviceInfo = exports.getDiskInfo = exports.getCpuInfo = exports.getOsInfo = exports.getMemDetails = exports.getDiskDetails = exports.getCpuDetails = void 0;
4
4
  const logger_1 = require("../util/logger");
5
5
  const osu = require("node-os-utils");
6
6
  const si = require("systeminformation");
@@ -11,28 +11,35 @@ const exec_promise = (0, util_1.promisify)(child_process_1.exec);
11
11
  async function getCpuDetails() {
12
12
  const cpuFree = await osu.cpu.free();
13
13
  const cpuTemp = await si.cpuTemperature();
14
- return {
15
- usedPerc: 100.0 - cpuFree,
16
- temperature: cpuTemp.main
17
- };
14
+ const cpuDetails = {};
15
+ if (cpuFree !== null)
16
+ cpuDetails.usedPerc = 100 - cpuFree;
17
+ if ((cpuTemp === null || cpuTemp === void 0 ? void 0 : cpuTemp.main) !== null)
18
+ cpuDetails.temperature = cpuTemp.main;
19
+ return cpuDetails;
18
20
  }
19
21
  exports.getCpuDetails = getCpuDetails;
20
22
  async function getDiskDetails() {
21
23
  // Types incorrectly specify diskname as required instead of optional
22
24
  // @ts-expect-error
23
25
  const driveInfo = await osu.drive.info();
24
- return {
25
- usedGb: parseFloat(driveInfo.usedGb),
26
- freeGb: parseFloat(driveInfo.freeGb)
27
- };
26
+ const diskDetails = {};
27
+ if ((driveInfo === null || driveInfo === void 0 ? void 0 : driveInfo.usedGb) !== null)
28
+ diskDetails.usedGb = parseFloat(driveInfo.usedGb);
29
+ if ((driveInfo === null || driveInfo === void 0 ? void 0 : driveInfo.freeGb) !== null) {
30
+ diskDetails.freeGb = parseFloat(driveInfo.freeGb);
31
+ }
32
+ return diskDetails;
28
33
  }
29
34
  exports.getDiskDetails = getDiskDetails;
30
35
  async function getMemDetails() {
31
36
  const memInfo = await osu.mem.info();
32
- return {
33
- usedMb: memInfo.usedMemMb,
34
- freeMb: memInfo.freeMemMb
35
- };
37
+ const memDetails = {};
38
+ if ((memInfo === null || memInfo === void 0 ? void 0 : memInfo.usedMemMb) !== null)
39
+ memDetails.usedMb = memInfo.usedMemMb;
40
+ if ((memInfo === null || memInfo === void 0 ? void 0 : memInfo.freeMemMb) !== null)
41
+ memDetails.freeMb = memInfo.freeMemMb;
42
+ return memDetails;
36
43
  }
37
44
  exports.getMemDetails = getMemDetails;
38
45
  // System information
@@ -111,6 +118,21 @@ async function getPackageVersions() {
111
118
  };
112
119
  }
113
120
  exports.getPackageVersions = getPackageVersions;
121
+ async function getLastBootTime() {
122
+ try {
123
+ const test = await exec_promise("last -x reboot | grep reboot | head -n 1 | awk '{ print $5, $6, $7, $8 }'");
124
+ if (test.stderr) {
125
+ logger_1.logger.error(`Stderr when getting last boot time: ${test.stderr}`);
126
+ return undefined;
127
+ }
128
+ return new Date(test.stdout).toString();
129
+ }
130
+ catch (e) {
131
+ logger_1.logger.error(`Issue getting last boot time: ${e.message}`);
132
+ return undefined;
133
+ }
134
+ }
135
+ exports.getLastBootTime = getLastBootTime;
114
136
  async function getSystemInformation() {
115
137
  try {
116
138
  const systemInfo = {
@@ -119,7 +141,8 @@ async function getSystemInformation() {
119
141
  disk: await getDiskInfo(),
120
142
  device: await getDeviceInfo(),
121
143
  network: await getNetworkInfo(),
122
- versions: await getPackageVersions()
144
+ versions: await getPackageVersions(),
145
+ lastBootTime: await getLastBootTime()
123
146
  };
124
147
  return systemInfo;
125
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"device-control.js","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-control.js","sourceRoot":"","sources":["../../src/device-control/device-control.ts"],"names":[],"mappings":"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"}