@phystack/device-phyos 4.5.48-dev → 4.5.49-dev

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 (65) hide show
  1. package/README.md +50 -3
  2. package/bin/index.js +1 -40
  3. package/dist/edge-hub.js +1125 -0
  4. package/dist/edge-hub.js.map +1 -0
  5. package/dist/http-proxy.js +54 -0
  6. package/dist/http-proxy.js.map +1 -0
  7. package/dist/index.js +491 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/methods/devdevice.js +123 -0
  10. package/dist/methods/devdevice.js.map +1 -0
  11. package/dist/methods/environment.js +356 -0
  12. package/dist/methods/environment.js.map +1 -0
  13. package/dist/methods/index.js +24 -0
  14. package/dist/methods/index.js.map +1 -0
  15. package/dist/methods/network/ca.js +48 -0
  16. package/dist/methods/network/ca.js.map +1 -0
  17. package/dist/methods/network/hostname.js +56 -0
  18. package/dist/methods/network/hostname.js.map +1 -0
  19. package/dist/methods/network/lan.js +193 -0
  20. package/dist/methods/network/lan.js.map +1 -0
  21. package/dist/methods/network/wifi.js +299 -0
  22. package/dist/methods/network/wifi.js.map +1 -0
  23. package/dist/methods/password.js +87 -0
  24. package/dist/methods/password.js.map +1 -0
  25. package/dist/methods/reboot.js +22 -0
  26. package/dist/methods/reboot.js.map +1 -0
  27. package/dist/methods/ssh.js +148 -0
  28. package/dist/methods/ssh.js.map +1 -0
  29. package/dist/services/scheduler.service.js +335 -0
  30. package/dist/services/scheduler.service.js.map +1 -0
  31. package/dist/store/types/network-interface.type.js +3 -0
  32. package/dist/store/types/network-interface.type.js.map +1 -0
  33. package/dist/time-sync.js +119 -0
  34. package/dist/time-sync.js.map +1 -0
  35. package/dist/types/command.types.js +8 -0
  36. package/dist/types/command.types.js.map +1 -0
  37. package/dist/types/container.types.js +3 -0
  38. package/dist/types/container.types.js.map +1 -0
  39. package/dist/types/event.types.js +9 -0
  40. package/dist/types/event.types.js.map +1 -0
  41. package/dist/types/job.types.js +15 -0
  42. package/dist/types/job.types.js.map +1 -0
  43. package/dist/types/twin.types.js +34 -0
  44. package/dist/types/twin.types.js.map +1 -0
  45. package/dist/utilities/audio-control.js +919 -0
  46. package/dist/utilities/audio-control.js.map +1 -0
  47. package/dist/utilities/docker-progress-tracker.js +33 -0
  48. package/dist/utilities/docker-progress-tracker.js.map +1 -0
  49. package/dist/utilities/docker.js +1090 -0
  50. package/dist/utilities/docker.js.map +1 -0
  51. package/dist/utilities/instances.js +236 -0
  52. package/dist/utilities/instances.js.map +1 -0
  53. package/dist/utilities/jobs.js +103 -0
  54. package/dist/utilities/jobs.js.map +1 -0
  55. package/dist/utilities/local-twins.js +204 -0
  56. package/dist/utilities/local-twins.js.map +1 -0
  57. package/dist/utilities/network-settings.js +147 -0
  58. package/dist/utilities/network-settings.js.map +1 -0
  59. package/dist/utilities/symlink.js +47 -0
  60. package/dist/utilities/symlink.js.map +1 -0
  61. package/dist/utilities/sysinfo.js +128 -0
  62. package/dist/utilities/sysinfo.js.map +1 -0
  63. package/dist/utilities/twin-manager.js +108 -0
  64. package/dist/utilities/twin-manager.js.map +1 -0
  65. package/package.json +25 -27
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.default = syncTime;
37
+ const getAxiosInstanceWithProxy = async () => {
38
+ const module = await Promise.resolve().then(() => __importStar(require('@phystack/axios-proxy')));
39
+ return module.default;
40
+ };
41
+ const child_process_1 = require("child_process");
42
+ const util_1 = require("util");
43
+ const phy_logger_1 = require("@phystack/phy-logger");
44
+ const os_1 = require("os");
45
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
46
+ const ONE_HOUR_MS = 60 * 60 * 1000;
47
+ const RETRY_DELAY_MS = 5000;
48
+ const logger = new phy_logger_1.PhyLogger({
49
+ logToFile: false,
50
+ logToConsole: true,
51
+ includeTrace: true,
52
+ namespace: 'time-sync',
53
+ });
54
+ const url = 'http://screen.omborigrid.com/is-online.json';
55
+ function hasValidNetworkInterface() {
56
+ const interfaces = (0, os_1.networkInterfaces)();
57
+ for (const [, addresses] of Object.entries(interfaces)) {
58
+ if (!addresses)
59
+ continue;
60
+ for (const addr of addresses) {
61
+ if (addr.family === 'IPv4' && !addr.address.startsWith('169.254.')) {
62
+ return true;
63
+ }
64
+ }
65
+ }
66
+ return false;
67
+ }
68
+ async function syncTimeLoop(axios) {
69
+ while (true) {
70
+ try {
71
+ while (!hasValidNetworkInterface()) {
72
+ logger.info('syncTime(): Waiting for valid network interface...');
73
+ await new Promise(resolve => setTimeout(resolve, RETRY_DELAY_MS));
74
+ }
75
+ const response = await axios.get(url, {
76
+ timeout: 10000,
77
+ validateStatus: () => true,
78
+ headers: {
79
+ 'Cache-Control': 'no-cache, no-store, must-revalidate',
80
+ 'Pragma': 'no-cache',
81
+ 'Expires': '0'
82
+ }
83
+ });
84
+ const dateHeader = response.headers.date;
85
+ if (!dateHeader) {
86
+ logger.error('syncTime(): No date header received');
87
+ await new Promise(resolve => setTimeout(resolve, RETRY_DELAY_MS));
88
+ continue;
89
+ }
90
+ logger.info('syncTime(): Attempting to set system time to:', { targetDate: dateHeader });
91
+ const commands = [
92
+ `sudo date -s "${dateHeader}"`,
93
+ 'sudo hwclock --systohc'
94
+ ];
95
+ for (const command of commands) {
96
+ const { stderr } = await execAsync(command, { timeout: 3000 });
97
+ if (stderr) {
98
+ logger.error('syncTime(): Error executing command:', { command, error: stderr });
99
+ await new Promise(resolve => setTimeout(resolve, RETRY_DELAY_MS));
100
+ continue;
101
+ }
102
+ }
103
+ logger.info('syncTime(): System time synchronized successfully');
104
+ await new Promise(resolve => setTimeout(resolve, ONE_HOUR_MS));
105
+ }
106
+ catch (error) {
107
+ logger.error('syncTime(): Failed to sync time:', error);
108
+ await new Promise(resolve => setTimeout(resolve, RETRY_DELAY_MS));
109
+ }
110
+ }
111
+ }
112
+ async function syncTime() {
113
+ const axios = await (await getAxiosInstanceWithProxy())();
114
+ syncTimeLoop(axios).catch(error => {
115
+ logger.error('syncTime(): Background sync loop failed:', error);
116
+ });
117
+ return Promise.resolve();
118
+ }
119
+ //# sourceMappingURL=time-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-sync.js","sourceRoot":"","sources":["../src/time-sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeviceCommand = void 0;
4
+ var DeviceCommand;
5
+ (function (DeviceCommand) {
6
+ DeviceCommand["Reboot"] = "reboot";
7
+ })(DeviceCommand || (exports.DeviceCommand = DeviceCommand = {}));
8
+ //# sourceMappingURL=command.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.types.js","sourceRoot":"","sources":["../../src/types/command.types.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAEX;AAFD,WAAY,aAAa;IACvB,kCAAiB,CAAA;AACnB,CAAC,EAFW,aAAa,6BAAb,aAAa,QAExB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=container.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.types.js","sourceRoot":"","sources":["../../src/types/container.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventResponseStatus = void 0;
4
+ var EventResponseStatus;
5
+ (function (EventResponseStatus) {
6
+ EventResponseStatus["success"] = "success";
7
+ EventResponseStatus["error"] = "error";
8
+ })(EventResponseStatus || (exports.EventResponseStatus = EventResponseStatus = {}));
9
+ //# sourceMappingURL=event.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.types.js","sourceRoot":"","sources":["../../src/types/event.types.ts"],"names":[],"mappings":";;;AAEA,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,sCAAe,CAAA;AACjB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JobTypeEnum = exports.JobStatusEnum = void 0;
4
+ var JobStatusEnum;
5
+ (function (JobStatusEnum) {
6
+ JobStatusEnum["Pending"] = "Pending";
7
+ JobStatusEnum["InProgress"] = "InProgress";
8
+ JobStatusEnum["Completed"] = "Completed";
9
+ })(JobStatusEnum || (exports.JobStatusEnum = JobStatusEnum = {}));
10
+ var JobTypeEnum;
11
+ (function (JobTypeEnum) {
12
+ JobTypeEnum["ScheduledCmd"] = "ScheduledCmd";
13
+ JobTypeEnum["InstantCmd"] = "InstantCmd";
14
+ })(JobTypeEnum || (exports.JobTypeEnum = JobTypeEnum = {}));
15
+ //# sourceMappingURL=job.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.types.js","sourceRoot":"","sources":["../../src/types/job.types.ts"],"names":[],"mappings":";;;AAEA,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,0CAAyB,CAAA;IACzB,wCAAuB,CAAA;AACzB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4CAA6B,CAAA;IAC7B,wCAAyB,CAAA;AAC3B,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TwinMessageResultStatus = exports.AvailabilityStatus = exports.TwinStatusEnum = exports.TwinTypeEnum = void 0;
4
+ var TwinTypeEnum;
5
+ (function (TwinTypeEnum) {
6
+ TwinTypeEnum["Device"] = "Device";
7
+ TwinTypeEnum["Screen"] = "Screen";
8
+ TwinTypeEnum["Edge"] = "Edge";
9
+ TwinTypeEnum["Cloud"] = "Cloud";
10
+ TwinTypeEnum["Web"] = "Web";
11
+ TwinTypeEnum["Peripheral"] = "Peripheral";
12
+ })(TwinTypeEnum || (exports.TwinTypeEnum = TwinTypeEnum = {}));
13
+ var TwinStatusEnum;
14
+ (function (TwinStatusEnum) {
15
+ TwinStatusEnum["Offline"] = "Offline";
16
+ TwinStatusEnum["Online"] = "Online";
17
+ TwinStatusEnum["Starting"] = "Starting";
18
+ TwinStatusEnum["Exited"] = "Exited";
19
+ TwinStatusEnum["ImageNotFound"] = "ImageNotFound";
20
+ })(TwinStatusEnum || (exports.TwinStatusEnum = TwinStatusEnum = {}));
21
+ var AvailabilityStatus;
22
+ (function (AvailabilityStatus) {
23
+ AvailabilityStatus["Available"] = "Available";
24
+ AvailabilityStatus["Unavailable"] = "Unavailable";
25
+ AvailabilityStatus["Unknown"] = "Unknown";
26
+ })(AvailabilityStatus || (exports.AvailabilityStatus = AvailabilityStatus = {}));
27
+ var TwinMessageResultStatus;
28
+ (function (TwinMessageResultStatus) {
29
+ TwinMessageResultStatus["Success"] = "success";
30
+ TwinMessageResultStatus["Error"] = "error";
31
+ TwinMessageResultStatus["Warning"] = "warning";
32
+ })(TwinMessageResultStatus || (exports.TwinMessageResultStatus = TwinMessageResultStatus = {}));
33
+ ;
34
+ //# sourceMappingURL=twin.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twin.types.js","sourceRoot":"","sources":["../../src/types/twin.types.ts"],"names":[],"mappings":";;;AAEA,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,6BAAa,CAAA;IACb,+BAAe,CAAA;IACf,2BAAW,CAAA;IACX,yCAAyB,CAAA;AAC3B,CAAC,EAPW,YAAY,4BAAZ,YAAY,QAOvB;AAED,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;IACjB,uCAAqB,CAAA;IACrB,mCAAiB,CAAA;IACjB,iDAA+B,CAAA;AACjC,CAAC,EANW,cAAc,8BAAd,cAAc,QAMzB;AA0TD,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,6CAAuB,CAAA;IACvB,iDAA2B,CAAA;IAC3B,yCAAmB,CAAA;AACrB,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B;AAucD,IAAY,uBAIX;AAJD,WAAY,uBAAuB;IACjC,8CAAmB,CAAA;IACnB,0CAAe,CAAA;IACf,8CAAmB,CAAA;AACrB,CAAC,EAJW,uBAAuB,uCAAvB,uBAAuB,QAIlC;AAAA,CAAC"}