@robotical/webapp-types 1.0.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 (88) hide show
  1. package/application-manager.ts +20 -0
  2. package/dist-types/src/application/ApplicationManager/ApplicationManager.d.ts +91 -0
  3. package/dist-types/src/application/ApplicationManager/ApplicationManager.js +448 -0
  4. package/dist-types/src/application/RAFTs/Cog/Cog.d.ts +39 -0
  5. package/dist-types/src/application/RAFTs/Cog/Cog.js +171 -0
  6. package/dist-types/src/application/RAFTs/Marty/Marty.d.ts +40 -0
  7. package/dist-types/src/application/RAFTs/Marty/Marty.js +179 -0
  8. package/dist-types/src/application/RAFTs/RAFT.d.ts +109 -0
  9. package/dist-types/src/application/RAFTs/RAFT.js +313 -0
  10. package/dist-types/src/application/RAFTs/RAFTInterface.d.ts +13 -0
  11. package/dist-types/src/application/RAFTs/RAFTInterface.js +6 -0
  12. package/dist-types/src/application/RAFTs/RaftObserver.d.ts +10 -0
  13. package/dist-types/src/application/RAFTs/RaftObserver.js +1 -0
  14. package/dist-types/src/application/RAFTs/raft-subscription-helpers.d.ts +59 -0
  15. package/dist-types/src/application/RAFTs/raft-subscription-helpers.js +324 -0
  16. package/dist-types/src/application/communicators/SelfdestructiveMessagePromise.d.ts +10 -0
  17. package/dist-types/src/application/communicators/SelfdestructiveMessagePromise.js +31 -0
  18. package/dist-types/src/application/communicators/WrapperCommunicator.d.ts +24 -0
  19. package/dist-types/src/application/communicators/WrapperCommunicator.js +137 -0
  20. package/dist-types/src/components/disposables/LoadingSpinner/index.d.ts +7 -0
  21. package/dist-types/src/components/disposables/LoadingSpinner/index.js +29 -0
  22. package/dist-types/src/components/disposables/buttons/SVGImageButton/index.d.ts +14 -0
  23. package/dist-types/src/components/disposables/buttons/SVGImageButton/index.js +19 -0
  24. package/dist-types/src/components/disposables/buttons/SimpleButton/index.d.ts +14 -0
  25. package/dist-types/src/components/disposables/buttons/SimpleButton/index.js +18 -0
  26. package/dist-types/src/components/modals/DisconnectConfirmation/index.d.ts +6 -0
  27. package/dist-types/src/components/modals/DisconnectConfirmation/index.js +63 -0
  28. package/dist-types/src/components/modals/DisconnectConfirmation/styles.d.ts +1 -0
  29. package/dist-types/src/components/modals/DisconnectConfirmation/styles.js +7 -0
  30. package/dist-types/src/components/modals/InUnplugged/index.d.ts +1 -0
  31. package/dist-types/src/components/modals/InUnplugged/index.js +12 -0
  32. package/dist-types/src/components/modals/InUnplugged/styles.d.ts +5 -0
  33. package/dist-types/src/components/modals/InUnplugged/styles.js +11 -0
  34. package/dist-types/src/components/modals/VerificationModal/index.d.ts +6 -0
  35. package/dist-types/src/components/modals/VerificationModal/index.js +124 -0
  36. package/dist-types/src/components/modals/VerificationModalPhoneApp/index.d.ts +6 -0
  37. package/dist-types/src/components/modals/VerificationModalPhoneApp/index.js +190 -0
  38. package/dist-types/src/components/oneoffs/LEDs/index.d.ts +8 -0
  39. package/dist-types/src/components/oneoffs/LEDs/index.js +39 -0
  40. package/dist-types/src/components/oneoffs/RICSignal/index.d.ts +7 -0
  41. package/dist-types/src/components/oneoffs/RICSignal/index.js +29 -0
  42. package/dist-types/src/services/logger/Logger.d.ts +7 -0
  43. package/dist-types/src/services/logger/Logger.js +19 -0
  44. package/dist-types/src/state-observables/modal/ModalObserver.d.ts +17 -0
  45. package/dist-types/src/state-observables/modal/ModalObserver.js +1 -0
  46. package/dist-types/src/state-observables/modal/ModalState.d.ts +24 -0
  47. package/dist-types/src/state-observables/modal/ModalState.js +69 -0
  48. package/dist-types/src/store/SelectedRaftContext.d.ts +17 -0
  49. package/dist-types/src/store/SelectedRaftContext.js +80 -0
  50. package/dist-types/src/styles/colors.d.ts +35 -0
  51. package/dist-types/src/styles/colors.js +42 -0
  52. package/dist-types/src/types/communication-between-apps/wrapper-communication.d.ts +45 -0
  53. package/dist-types/src/types/communication-between-apps/wrapper-communication.js +25 -0
  54. package/dist-types/src/types/events/raft-info.d.ts +10 -0
  55. package/dist-types/src/types/events/raft-info.js +11 -0
  56. package/dist-types/src/types/phone-app-communicator.d.ts +20 -0
  57. package/dist-types/src/types/phone-app-communicator.js +5 -0
  58. package/dist-types/src/types/raft.d.ts +18 -0
  59. package/dist-types/src/types/raft.js +14 -0
  60. package/dist-types/src/utils/Toaster.d.ts +13 -0
  61. package/dist-types/src/utils/Toaster.js +38 -0
  62. package/dist-types/src/utils/helpers/compare-version.d.ts +2 -0
  63. package/dist-types/src/utils/helpers/compare-version.js +19 -0
  64. package/dist-types/src/utils/helpers/randomHashGenerator.d.ts +1 -0
  65. package/dist-types/src/utils/helpers/randomHashGenerator.js +10 -0
  66. package/dist-types/src/utils/helpers/rescale-range.d.ts +2 -0
  67. package/dist-types/src/utils/helpers/rescale-range.js +4 -0
  68. package/dist-types/src/utils/helpers/wifi-configuration-subtitle-gen.d.ts +3 -0
  69. package/dist-types/src/utils/helpers/wifi-configuration-subtitle-gen.js +34 -0
  70. package/dist-types/src/utils/phone-app-communication/is-phone-app.d.ts +5 -0
  71. package/dist-types/src/utils/phone-app-communication/is-phone-app.js +7 -0
  72. package/dist-types/src/wrapper-app/WrapperAppManager.d.ts +58 -0
  73. package/dist-types/src/wrapper-app/WrapperAppManager.js +176 -0
  74. package/dist-types/src/wrapper-app/communicators/WebAppCommunicator.d.ts +24 -0
  75. package/dist-types/src/wrapper-app/communicators/WebAppCommunicator.js +243 -0
  76. package/dist-types/src/wrapper-app/connectors/CogConnector/CogConnector.d.ts +35 -0
  77. package/dist-types/src/wrapper-app/connectors/CogConnector/CogConnector.js +177 -0
  78. package/dist-types/src/wrapper-app/connectors/Connector.d.ts +69 -0
  79. package/dist-types/src/wrapper-app/connectors/Connector.js +315 -0
  80. package/dist-types/src/wrapper-app/connectors/ConnectorFactory.d.ts +15 -0
  81. package/dist-types/src/wrapper-app/connectors/ConnectorFactory.js +99 -0
  82. package/dist-types/src/wrapper-app/connectors/ConnectorInterface.d.ts +10 -0
  83. package/dist-types/src/wrapper-app/connectors/ConnectorInterface.js +6 -0
  84. package/dist-types/src/wrapper-app/connectors/MartyConnector/MartyConnector.d.ts +35 -0
  85. package/dist-types/src/wrapper-app/connectors/MartyConnector/MartyConnector.js +219 -0
  86. package/dist-types/types-package/application-manager.d.ts +17 -0
  87. package/dist-types/types-package/application-manager.js +5 -0
  88. package/package.json +13 -0
@@ -0,0 +1,176 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { WrapperSentMessage } from "../types/communication-between-apps/wrapper-communication";
38
+ import Logger from "../services/logger/Logger";
39
+ import { RaftConnEvent } from "@robdobsn/raftjs";
40
+ import ConnectorFactory from "./connectors/ConnectorFactory";
41
+ var SHOW_LOGS = true;
42
+ var TAG = "WrapperAppManager";
43
+ var WrapperAppManager = /** @class */ (function () {
44
+ function WrapperAppManager() {
45
+ // Connectors
46
+ this.connectors = {};
47
+ // Observers
48
+ this._observers = {};
49
+ }
50
+ /**
51
+ * Connect to a RAFT
52
+ *
53
+ * @param {string} method - can be "WebBLE" or "WebSocket"
54
+ * @param {string | object} locator - either a string (WebSocket URL) or an object (WebBLE)
55
+ * @returns Promise<ConnectionAttemptResults>
56
+ *
57
+ */
58
+ WrapperAppManager.prototype.connect = function (method) {
59
+ return __awaiter(this, void 0, void 0, function () {
60
+ var connector, connectionResults;
61
+ return __generator(this, function (_a) {
62
+ switch (_a.label) {
63
+ case 0: return [4 /*yield*/, ConnectorFactory.connectToRaftHelper(method)];
64
+ case 1:
65
+ connector = _a.sent();
66
+ if (!connector) {
67
+ Logger.warn(SHOW_LOGS, TAG, "Failed to connect to RAFT with method: ".concat(method));
68
+ return [2 /*return*/, { success: false, reason: "failed" }];
69
+ }
70
+ return [4 /*yield*/, connector.connect()];
71
+ case 2:
72
+ connectionResults = _a.sent();
73
+ if (connectionResults.success) {
74
+ this.connectors[connector.id] = connector;
75
+ connectionResults.data = { raftId: connector.id, raftType: connector.type };
76
+ }
77
+ else {
78
+ Logger.warn(SHOW_LOGS, TAG, "Failed to connect to RAFT with id: ".concat(connector.id, " and type: ").concat(connector.type));
79
+ }
80
+ Logger.info(SHOW_LOGS, TAG, "Connected to RAFT with id: ".concat(connector.id, " and type: ").concat(connector.type));
81
+ return [2 /*return*/, connectionResults];
82
+ }
83
+ });
84
+ });
85
+ };
86
+ /**
87
+ * Re-triggers the connect event which was missed due to the connection logic
88
+ */
89
+ WrapperAppManager.prototype.getMissedConnEvent = function (raftId) {
90
+ if (this.connectors[raftId]) {
91
+ this.connectors[raftId].eventHandler("conn", RaftConnEvent.CONN_CONNECTED, "connect", {});
92
+ this.connectors[raftId].publish("conn", RaftConnEvent.CONN_CONNECTED, "connect", {});
93
+ }
94
+ };
95
+ /**
96
+ * Get the RAFT Name
97
+ */
98
+ WrapperAppManager.prototype.getRaftName = function (raftId) {
99
+ if (this.connectors[raftId]) {
100
+ return this.connectors[raftId].getRaftName();
101
+ }
102
+ return "";
103
+ };
104
+ /**
105
+ * Verify RAFT
106
+ */
107
+ WrapperAppManager.prototype.verifyRaft = function (ledLcdColours, raftId) {
108
+ if (!this.connectors[raftId]) {
109
+ Logger.warn(SHOW_LOGS, TAG, "verifyRaft: No connector found for raftId: ".concat(raftId));
110
+ return false;
111
+ }
112
+ return this.connectors[raftId].verifyRaft(ledLcdColours);
113
+ };
114
+ /**
115
+ * Stop verifying RAFT
116
+ */
117
+ WrapperAppManager.prototype.stopVerifyingRaft = function (isCorrectRIC, raftId) {
118
+ if (!isCorrectRIC) {
119
+ this._removeRICConnector(raftId, 11000);
120
+ }
121
+ return this.connectors[raftId].stopVerifyingRaft(isCorrectRIC);
122
+ };
123
+ /**
124
+ * Disconnect from a RAFT
125
+ */
126
+ WrapperAppManager.prototype.disconnect = function (raftId) {
127
+ this._removeRICConnector(raftId, 11000);
128
+ return this.connectors[raftId].disconnect();
129
+ };
130
+ /**
131
+ * Audio streaming
132
+ */
133
+ WrapperAppManager.prototype.streamAudio = function (raftId, streamContents, clearExisting, duration) {
134
+ return this.connectors[raftId].streamAudio(streamContents, clearExisting, duration);
135
+ };
136
+ /**
137
+ * Publish an event to all observers
138
+ * Set in RICConnector as an event listener callback
139
+ */
140
+ WrapperAppManager.prototype.publish = function (eventType, eventEnum, eventName, eventData) {
141
+ window.WebAppCommunicator.sendMessageNoWait(WrapperSentMessage.RAFT_PUBLISHED_EVENT, { eventType: eventType, eventEnum: eventEnum, eventName: eventName, eventData: eventData });
142
+ if (this._observers.hasOwnProperty(eventType)) {
143
+ for (var _i = 0, _a = this._observers[eventType]; _i < _a.length; _i++) {
144
+ var observer = _a[_i];
145
+ observer.notify(eventType, eventEnum, eventName, eventData);
146
+ }
147
+ }
148
+ };
149
+ /**
150
+ * Send a REST message to the RAFT
151
+ */
152
+ WrapperAppManager.prototype.sendRestMessage = function (msg, params, raftId) {
153
+ return __awaiter(this, void 0, void 0, function () {
154
+ return __generator(this, function (_a) {
155
+ return [2 /*return*/, this.connectors[raftId].sendRestMessage(msg, params)];
156
+ });
157
+ });
158
+ };
159
+ /**
160
+ * Removes marty after a certain time
161
+ * Removes from the martys list after x seconds so that we can still get the last event
162
+ */
163
+ WrapperAppManager.prototype._removeRICConnector = function (connectorId, timeout) {
164
+ var _this = this;
165
+ var martyRemovalTimeout = setTimeout(function () {
166
+ delete _this.connectors[connectorId];
167
+ clearTimeout(martyRemovalTimeout);
168
+ }, timeout);
169
+ };
170
+ return WrapperAppManager;
171
+ }());
172
+ export { WrapperAppManager };
173
+ var wrapperAppManager = new WrapperAppManager();
174
+ // @ts-ignore : just for debugging
175
+ window.wrapperAppManager = wrapperAppManager;
176
+ export default wrapperAppManager;
@@ -0,0 +1,24 @@
1
+ import { WEB_APP_MESSAGE_BASE, WrapperSentMessage } from "../../types/communication-between-apps/wrapper-communication";
2
+ /**
3
+ * This file is responsible for the communication between the web app and the Wrapper Web App
4
+ */
5
+ declare class WebAppCommunicator {
6
+ private messagePromises;
7
+ constructor();
8
+ receiveMessage(receivedMessageStringified: string): Promise<void>;
9
+ /**
10
+ * It sends a message to the phone app
11
+ * The client can await the response to that message
12
+ */
13
+ sendMessageAndWait<R>(message: WrapperSentMessage, data?: any): Promise<R>;
14
+ /**
15
+ * It sends a message to the phone app
16
+ * The client cannot await the response to that message
17
+ */
18
+ sendMessageNoWait(message: WrapperSentMessage, data?: any): void;
19
+ /**
20
+ * Called by the react-native code to respond to sendMessage
21
+ */
22
+ onMessageResponse(response: WEB_APP_MESSAGE_BASE): void;
23
+ }
24
+ export default WebAppCommunicator;
@@ -0,0 +1,243 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import SelfdestructiveMessagePromise from "../../application/communicators/SelfdestructiveMessagePromise";
38
+ import Logger from "../../services/logger/Logger";
39
+ import { AppSentMessage } from "../../types/communication-between-apps/wrapper-communication";
40
+ import randomHashGenerator from "../../utils/helpers/randomHashGenerator";
41
+ import wrapperAppManager from "../WrapperAppManager";
42
+ var SHOW_LOGS = true;
43
+ var TAG = "WebAppCommunicator";
44
+ /**
45
+ * This file is responsible for the communication between the web app and the Wrapper Web App
46
+ */
47
+ var WebAppCommunicator = /** @class */ (function () {
48
+ function WebAppCommunicator() {
49
+ this.messagePromises = {};
50
+ }
51
+ WebAppCommunicator.prototype.receiveMessage = function (receivedMessageStringified) {
52
+ return __awaiter(this, void 0, void 0, function () {
53
+ var receivedMessage;
54
+ return __generator(this, function (_a) {
55
+ Logger.info(SHOW_LOGS, TAG, "Received message: " + receivedMessageStringified);
56
+ receivedMessage = JSON.parse(receivedMessageStringified);
57
+ receivedMessageHandler(receivedMessage.message, receivedMessage.data, receivedMessage.messagePromiseId);
58
+ return [2 /*return*/];
59
+ });
60
+ });
61
+ };
62
+ /**
63
+ * It sends a message to the phone app
64
+ * The client can await the response to that message
65
+ */
66
+ WebAppCommunicator.prototype.sendMessageAndWait = function (message, data) {
67
+ var _this = this;
68
+ Logger.info(SHOW_LOGS, TAG, "Sending message with waiting: " + message);
69
+ var messagePromiseId = randomHashGenerator();
70
+ var promise = new Promise(function (resolve, reject) {
71
+ // this.messagePromises[messagePromiseId] = { resolve: (value: R | PromiseLike<R>) => resolve(value), reject };
72
+ _this.messagePromises[messagePromiseId] = new SelfdestructiveMessagePromise(resolve, reject, messagePromiseId, _this.messagePromises);
73
+ });
74
+ var messageObject = {
75
+ message: message,
76
+ data: data,
77
+ messagePromiseId: messagePromiseId
78
+ };
79
+ window.wrapperCommunicator.receiveMessage(messageObject);
80
+ return promise;
81
+ };
82
+ /**
83
+ * It sends a message to the phone app
84
+ * The client cannot await the response to that message
85
+ */
86
+ WebAppCommunicator.prototype.sendMessageNoWait = function (message, data) {
87
+ // Logger.info(SHOW_LOGS, TAG, "Sending message without waiting: " + message);
88
+ var messagePromiseId = randomHashGenerator();
89
+ var messageObject = {
90
+ message: message,
91
+ data: data,
92
+ messagePromiseId: messagePromiseId
93
+ };
94
+ window.wrapperCommunicator.receiveMessage(messageObject);
95
+ };
96
+ /**
97
+ * Called by the react-native code to respond to sendMessage
98
+ */
99
+ WebAppCommunicator.prototype.onMessageResponse = function (response) {
100
+ var _a, _b;
101
+ Logger.info(SHOW_LOGS, TAG, "Received message reply: " + JSON.stringify(response));
102
+ if (this.messagePromises[response.messagePromiseId]) {
103
+ if (response.success) {
104
+ (_a = this.messagePromises[response.messagePromiseId]) === null || _a === void 0 ? void 0 : _a.resolve(response.results);
105
+ }
106
+ else {
107
+ (_b = this.messagePromises[response.messagePromiseId]) === null || _b === void 0 ? void 0 : _b.reject(response.error);
108
+ }
109
+ }
110
+ else {
111
+ Logger.warn(SHOW_LOGS, TAG, "Unhandled message reply with id: ".concat(response.messagePromiseId));
112
+ }
113
+ };
114
+ return WebAppCommunicator;
115
+ }());
116
+ export default WebAppCommunicator;
117
+ var receivedMessageHandler = function (receivedMessage, data, messagePromiseId) { return __awaiter(void 0, void 0, void 0, function () {
118
+ var _a, connectionResults, error_1, ricName, error_2, verifyResults, error_3, stopVerifyResults, error_4, disconnectResults, error_5, restResults, error_6, missedConnEventResults, streamAudioResults;
119
+ return __generator(this, function (_b) {
120
+ switch (_b.label) {
121
+ case 0:
122
+ _a = receivedMessage;
123
+ switch (_a) {
124
+ case AppSentMessage.RAFT_IS_CONNECTED: return [3 /*break*/, 1];
125
+ case AppSentMessage.RAFT_CONNECT: return [3 /*break*/, 2];
126
+ case AppSentMessage.RAFT_GET_NAME: return [3 /*break*/, 6];
127
+ case AppSentMessage.RAFT_VERIFY: return [3 /*break*/, 10];
128
+ case AppSentMessage.RAFT_STOP_VERIFY: return [3 /*break*/, 14];
129
+ case AppSentMessage.RAFT_DISCONNECT: return [3 /*break*/, 18];
130
+ case AppSentMessage.RAFT_SEND_REST: return [3 /*break*/, 22];
131
+ case AppSentMessage.GET_MISSED_CONN_EVENT: return [3 /*break*/, 26];
132
+ case AppSentMessage.RAFT_STREAM_AUDIO: return [3 /*break*/, 27];
133
+ }
134
+ return [3 /*break*/, 28];
135
+ case 1:
136
+ try {
137
+ console.log("3");
138
+ // const connectionResults = await wrapperAppManager.isConnected();
139
+ console.log("12");
140
+ // console.log("raft is connected results", connectionResults);
141
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: { log: "13" }, messagePromiseId: messagePromiseId });
142
+ }
143
+ catch (error) {
144
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error.message, messagePromiseId: messagePromiseId });
145
+ }
146
+ return [3 /*break*/, 29];
147
+ case 2:
148
+ _b.trys.push([2, 4, , 5]);
149
+ return [4 /*yield*/, wrapperAppManager.connect(data.method)];
150
+ case 3:
151
+ connectionResults = _b.sent();
152
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: connectionResults, messagePromiseId: messagePromiseId });
153
+ return [3 /*break*/, 5];
154
+ case 4:
155
+ error_1 = _b.sent();
156
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error_1.message, messagePromiseId: messagePromiseId });
157
+ return [3 /*break*/, 5];
158
+ case 5: return [3 /*break*/, 29];
159
+ case 6:
160
+ _b.trys.push([6, 8, , 9]);
161
+ return [4 /*yield*/, wrapperAppManager.getRaftName(data.raftId)];
162
+ case 7:
163
+ ricName = _b.sent();
164
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: ricName, messagePromiseId: messagePromiseId });
165
+ return [3 /*break*/, 9];
166
+ case 8:
167
+ error_2 = _b.sent();
168
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error_2.message, messagePromiseId: messagePromiseId });
169
+ return [3 /*break*/, 9];
170
+ case 9: return [3 /*break*/, 29];
171
+ case 10:
172
+ _b.trys.push([10, 12, , 13]);
173
+ return [4 /*yield*/, wrapperAppManager.verifyRaft(data.ledLcdColours, data.raftId)];
174
+ case 11:
175
+ verifyResults = _b.sent();
176
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: verifyResults, messagePromiseId: messagePromiseId });
177
+ return [3 /*break*/, 13];
178
+ case 12:
179
+ error_3 = _b.sent();
180
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error_3.message, messagePromiseId: messagePromiseId });
181
+ return [3 /*break*/, 13];
182
+ case 13: return [3 /*break*/, 29];
183
+ case 14:
184
+ _b.trys.push([14, 16, , 17]);
185
+ return [4 /*yield*/, wrapperAppManager.stopVerifyingRaft(data.isCorrectRIC, data.raftId)];
186
+ case 15:
187
+ stopVerifyResults = _b.sent();
188
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: stopVerifyResults, messagePromiseId: messagePromiseId });
189
+ return [3 /*break*/, 17];
190
+ case 16:
191
+ error_4 = _b.sent();
192
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error_4.message, messagePromiseId: messagePromiseId });
193
+ return [3 /*break*/, 17];
194
+ case 17: return [3 /*break*/, 29];
195
+ case 18:
196
+ _b.trys.push([18, 20, , 21]);
197
+ return [4 /*yield*/, wrapperAppManager.disconnect(data.raftId)];
198
+ case 19:
199
+ disconnectResults = _b.sent();
200
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: disconnectResults, messagePromiseId: messagePromiseId });
201
+ return [3 /*break*/, 21];
202
+ case 20:
203
+ error_5 = _b.sent();
204
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error_5.message, messagePromiseId: messagePromiseId });
205
+ return [3 /*break*/, 21];
206
+ case 21: return [3 /*break*/, 29];
207
+ case 22:
208
+ _b.trys.push([22, 24, , 25]);
209
+ return [4 /*yield*/, wrapperAppManager.sendRestMessage(data.msg, data.params, data.raftId)];
210
+ case 23:
211
+ restResults = _b.sent();
212
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: restResults, messagePromiseId: messagePromiseId });
213
+ return [3 /*break*/, 25];
214
+ case 24:
215
+ error_6 = _b.sent();
216
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error_6.message, messagePromiseId: messagePromiseId });
217
+ return [3 /*break*/, 25];
218
+ case 25: return [3 /*break*/, 29];
219
+ case 26:
220
+ try {
221
+ missedConnEventResults = wrapperAppManager.getMissedConnEvent(data.raftId);
222
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: missedConnEventResults, messagePromiseId: messagePromiseId });
223
+ }
224
+ catch (error) {
225
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error.message, messagePromiseId: messagePromiseId });
226
+ }
227
+ return [3 /*break*/, 29];
228
+ case 27:
229
+ try {
230
+ streamAudioResults = wrapperAppManager.streamAudio(data.raftId, data.streamContents, data.clearExisting, data.duration);
231
+ window.wrapperCommunicator.onMessageResponse({ success: true, error: "", results: streamAudioResults, messagePromiseId: messagePromiseId });
232
+ }
233
+ catch (error) {
234
+ window.wrapperCommunicator.onMessageResponse({ success: false, error: error.message, messagePromiseId: messagePromiseId });
235
+ }
236
+ return [3 /*break*/, 29];
237
+ case 28:
238
+ Logger.warn(SHOW_LOGS, TAG, "Unhandled message: ".concat(receivedMessage));
239
+ _b.label = 29;
240
+ case 29: return [2 /*return*/];
241
+ }
242
+ });
243
+ }); };
@@ -0,0 +1,35 @@
1
+ import { RaftInfoEvents } from "../../../types/events/raft-info";
2
+ import { ConnectionAttemptResults, RaftTypeE } from "../../../types/raft";
3
+ import Connector from "../Connector";
4
+ import ConnectorInterface from "../ConnectorInterface";
5
+ import { RaftConnEvent, RaftPublishEvent, RaftUpdateEvent } from "@robdobsn/raftjs";
6
+ import { ConnManager } from "@robotical/roboticaljs";
7
+ declare class CogConnector extends Connector implements ConnectorInterface {
8
+ type: RaftTypeE;
9
+ constructor(raftId: string, connManager: ConnManager);
10
+ /**
11
+ * Connect to a RAFT
12
+ */
13
+ connect(): Promise<ConnectionAttemptResults>;
14
+ /**
15
+ * Disconnect from Cog
16
+ */
17
+ disconnect(): Promise<boolean>;
18
+ /**
19
+ * Event handler
20
+ */
21
+ eventHandler(eventType: string, eventEnum: RaftConnEvent | RaftUpdateEvent | RaftPublishEvent | RaftInfoEvents, eventName: string, data: any): Promise<void>;
22
+ /**
23
+ * Connection Event Handler
24
+ */
25
+ connectionEventHandler(eventEnum: RaftConnEvent, eventName: string, data: any): Promise<void>;
26
+ /**
27
+ * Update Event Handler
28
+ */
29
+ updateEventHandler(eventEnum: RaftUpdateEvent, eventName: string, data: any): Promise<void>;
30
+ /**
31
+ * Pub Event Handler
32
+ */
33
+ pubEventHandler(eventEnum: RaftPublishEvent, eventName: string, data: any): Promise<void>;
34
+ }
35
+ export default CogConnector;
@@ -0,0 +1,177 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
+ return new (P || (P = Promise))(function (resolve, reject) {
19
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
23
+ });
24
+ };
25
+ var __generator = (this && this.__generator) || function (thisArg, body) {
26
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
27
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
28
+ function verb(n) { return function (v) { return step([n, v]); }; }
29
+ function step(op) {
30
+ if (f) throw new TypeError("Generator is already executing.");
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
+ if (y = 0, t) op = [op[0] & 2, t.value];
34
+ switch (op[0]) {
35
+ case 0: case 1: t = op; break;
36
+ case 4: _.label++; return { value: op[1], done: false };
37
+ case 5: _.label++; y = op[1]; op = [0]; continue;
38
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
39
+ default:
40
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
41
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
42
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
43
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
44
+ if (t[2]) _.ops.pop();
45
+ _.trys.pop(); continue;
46
+ }
47
+ op = body.call(thisArg, _);
48
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
49
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
50
+ }
51
+ };
52
+ import Logger from "../../../services/logger/Logger";
53
+ import { RaftTypeE } from "../../../types/raft";
54
+ import Connector from "../Connector";
55
+ import { RaftConnEvent, RaftUpdateEvent } from "@robdobsn/raftjs";
56
+ var SHOW_LOGS = true;
57
+ var TAG = "CogConnector";
58
+ var CogConnector = /** @class */ (function (_super) {
59
+ __extends(CogConnector, _super);
60
+ function CogConnector(raftId, connManager) {
61
+ var _this = _super.call(this, raftId, connManager) || this;
62
+ _this.type = RaftTypeE.COG;
63
+ return _this;
64
+ }
65
+ /**
66
+ * Connect to a RAFT
67
+ */
68
+ CogConnector.prototype.connect = function () {
69
+ return __awaiter(this, void 0, void 0, function () {
70
+ var sysInfoOk;
71
+ return __generator(this, function (_a) {
72
+ switch (_a.label) {
73
+ case 0: return [4 /*yield*/, this.connManager.getConnector().getRaftSystemUtils().getSystemInfo()];
74
+ case 1:
75
+ sysInfoOk = _a.sent();
76
+ if (!sysInfoOk) {
77
+ // this.emit(RAFT_REJECTED)
78
+ return [2 /*return*/, { success: false, reason: 'no_sys_info' }];
79
+ }
80
+ return [2 /*return*/, { success: true, reason: 'success' }];
81
+ }
82
+ });
83
+ });
84
+ };
85
+ /**
86
+ * Disconnect from Cog
87
+ */
88
+ CogConnector.prototype.disconnect = function () {
89
+ return __awaiter(this, void 0, void 0, function () {
90
+ return __generator(this, function (_a) {
91
+ switch (_a.label) {
92
+ case 0: return [4 /*yield*/, _super.prototype.disconnect.call(this)];
93
+ case 1:
94
+ // this.sendRestMessage('blerestart');
95
+ return [2 /*return*/, _a.sent()];
96
+ }
97
+ });
98
+ });
99
+ };
100
+ /**
101
+ * Event handler
102
+ */
103
+ CogConnector.prototype.eventHandler = function (eventType, eventEnum, eventName, data) {
104
+ return __awaiter(this, void 0, void 0, function () {
105
+ return __generator(this, function (_a) {
106
+ _super.prototype.eventHandler.call(this, eventType, eventEnum, eventName, data);
107
+ switch (eventType) {
108
+ case "conn":
109
+ this.connectionEventHandler(eventEnum, eventName, data);
110
+ break;
111
+ case "update":
112
+ this.updateEventHandler(eventEnum, eventName, data);
113
+ break;
114
+ case "pub":
115
+ this.pubEventHandler(eventEnum, eventName, data);
116
+ break;
117
+ default:
118
+ break;
119
+ }
120
+ return [2 /*return*/];
121
+ });
122
+ });
123
+ };
124
+ /**
125
+ * Connection Event Handler
126
+ */
127
+ CogConnector.prototype.connectionEventHandler = function (eventEnum, eventName, data) {
128
+ return __awaiter(this, void 0, void 0, function () {
129
+ return __generator(this, function (_a) {
130
+ Logger.info(SHOW_LOGS, TAG, "Event: ".concat(eventEnum, " data: ").concat(data));
131
+ switch (eventEnum) {
132
+ case RaftConnEvent.CONN_CONNECTED:
133
+ break;
134
+ case RaftConnEvent.CONN_VERIFIED_CORRECT:
135
+ break;
136
+ default:
137
+ break;
138
+ }
139
+ return [2 /*return*/];
140
+ });
141
+ });
142
+ };
143
+ /**
144
+ * Update Event Handler
145
+ */
146
+ CogConnector.prototype.updateEventHandler = function (eventEnum, eventName, data) {
147
+ return __awaiter(this, void 0, void 0, function () {
148
+ return __generator(this, function (_a) {
149
+ Logger.info(SHOW_LOGS, TAG, "Event: ".concat(eventEnum, " data: ").concat(data));
150
+ switch (eventEnum) {
151
+ case RaftUpdateEvent.UPDATE_APP_UPDATE_REQUIRED:
152
+ // do something
153
+ break;
154
+ default:
155
+ break;
156
+ }
157
+ return [2 /*return*/];
158
+ });
159
+ });
160
+ };
161
+ /**
162
+ * Pub Event Handler
163
+ */
164
+ CogConnector.prototype.pubEventHandler = function (eventEnum, eventName, data) {
165
+ return __awaiter(this, void 0, void 0, function () {
166
+ return __generator(this, function (_a) {
167
+ switch (eventEnum) {
168
+ default:
169
+ break;
170
+ }
171
+ return [2 /*return*/];
172
+ });
173
+ });
174
+ };
175
+ return CogConnector;
176
+ }(Connector));
177
+ export default CogConnector;