@elice/material-exercise 1.260429.0-improvetimerpopoverui.0 → 1.260430.1

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 (187) hide show
  1. package/cjs/components/material-exercise/context/index.js +0 -7
  2. package/cjs/components/material-exercise/context/recoil.d.ts +0 -44
  3. package/cjs/components/material-exercise/context/recoil.js +0 -108
  4. package/cjs/components/material-exercise/context/recoilTypes.d.ts +0 -7
  5. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +1 -1
  6. package/cjs/components/material-exercise/exercise-menu/ExerciseMenu.js +1 -18
  7. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +2 -4
  8. package/cjs/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
  9. package/cjs/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
  10. package/cjs/components/material-exercise/exercise-runner/ExerciseRunner.js +27 -57
  11. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerController.js +34 -7
  12. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.d.ts +1 -1
  13. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +13 -219
  14. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.d.ts +2 -2
  15. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionCancel.d.ts +3 -0
  16. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionCancel.js +44 -0
  17. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionGrade.d.ts +3 -0
  18. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionGrade.js +68 -0
  19. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionRun.d.ts +3 -0
  20. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionRun.js +54 -0
  21. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.d.ts +3 -0
  22. package/cjs/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.js +44 -0
  23. package/cjs/components/material-exercise/exercise-runner/action/index.d.ts +5 -0
  24. package/cjs/components/material-exercise/exercise-runner/action/index.js +15 -0
  25. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionCancel.d.ts +14 -0
  26. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionCancel.js +52 -0
  27. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionGrade.d.ts +16 -0
  28. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionGrade.js +74 -0
  29. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionRun.d.ts +14 -0
  30. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionRun.js +65 -0
  31. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.d.ts +15 -0
  32. package/cjs/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.js +68 -0
  33. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.d.ts +3 -0
  34. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.js +156 -0
  35. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.d.ts +3 -0
  36. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.js +188 -0
  37. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.d.ts +3 -0
  38. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.js +132 -0
  39. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.d.ts +3 -0
  40. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js +88 -0
  41. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.d.ts +3 -0
  42. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.js +103 -0
  43. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.d.ts +3 -0
  44. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.js +24 -0
  45. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.d.ts +3 -0
  46. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.js +201 -0
  47. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.d.ts +3 -0
  48. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.js +125 -0
  49. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.d.ts +3 -0
  50. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.js +179 -0
  51. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.d.ts +3 -0
  52. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.js +29 -0
  53. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.d.ts +3 -0
  54. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.js +94 -0
  55. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProvider.d.ts +16 -0
  56. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProvider.js +105 -0
  57. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.d.ts +12 -0
  58. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.js +94 -0
  59. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.d.ts +7 -0
  60. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.js +95 -0
  61. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.d.ts +7 -0
  62. package/cjs/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.js +70 -0
  63. package/cjs/components/material-exercise/exercise-runner/arduino/_context.d.ts +35 -0
  64. package/cjs/components/material-exercise/exercise-runner/arduino/_context.js +18 -0
  65. package/cjs/components/material-exercise/exercise-runner/arduino/index.d.ts +6 -0
  66. package/cjs/components/material-exercise/exercise-runner/arduino/index.js +13 -0
  67. package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.d.ts +9 -0
  68. package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.js +38 -0
  69. package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.d.ts +10 -0
  70. package/cjs/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.js +33 -0
  71. package/cjs/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
  72. package/cjs/components/material-exercise/exercise-runner/locales/ja.json.js +1 -1
  73. package/cjs/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
  74. package/cjs/components/material-exercise/exercise-runner/locales/th.json.js +1 -1
  75. package/cjs/components/shared/monaco-editor/utils/prettier/config.d.ts +1 -1
  76. package/cjs/components/shared/monaco-editor/utils/prettier/config.js +1 -1
  77. package/cjs/hooks/index.d.ts +0 -1
  78. package/cjs/hooks/index.js +0 -2
  79. package/es/components/material-exercise/context/index.js +1 -1
  80. package/es/components/material-exercise/context/recoil.d.ts +0 -44
  81. package/es/components/material-exercise/context/recoil.js +1 -102
  82. package/es/components/material-exercise/context/recoilTypes.d.ts +0 -7
  83. package/es/components/material-exercise/exercise-menu/ExerciseMenu.d.ts +1 -1
  84. package/es/components/material-exercise/exercise-menu/ExerciseMenu.js +2 -18
  85. package/es/components/material-exercise/exercise-menu/ExerciseMenuStdioFileBrowser.styled.js +3 -3
  86. package/es/components/material-exercise/exercise-menu/locales/en.json.js +1 -1
  87. package/es/components/material-exercise/exercise-menu/locales/ko.json.js +1 -1
  88. package/es/components/material-exercise/exercise-runner/ExerciseRunner.js +28 -58
  89. package/es/components/material-exercise/exercise-runner/ExerciseRunnerController.js +34 -7
  90. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.d.ts +1 -1
  91. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerButtonGroup.js +13 -214
  92. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerCodeHelpRequestButton.d.ts +2 -2
  93. package/es/components/material-exercise/exercise-runner/action/ControllerActionCancel.d.ts +3 -0
  94. package/es/components/material-exercise/exercise-runner/action/ControllerActionCancel.js +40 -0
  95. package/es/components/material-exercise/exercise-runner/action/ControllerActionGrade.d.ts +3 -0
  96. package/es/components/material-exercise/exercise-runner/action/ControllerActionGrade.js +64 -0
  97. package/es/components/material-exercise/exercise-runner/action/ControllerActionRun.d.ts +3 -0
  98. package/es/components/material-exercise/exercise-runner/action/ControllerActionRun.js +50 -0
  99. package/es/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.d.ts +3 -0
  100. package/es/components/material-exercise/exercise-runner/action/ControllerActionSyncRequest.js +40 -0
  101. package/es/components/material-exercise/exercise-runner/action/index.d.ts +5 -0
  102. package/es/components/material-exercise/exercise-runner/action/index.js +5 -0
  103. package/es/components/material-exercise/exercise-runner/action/useControllerActionCancel.d.ts +14 -0
  104. package/es/components/material-exercise/exercise-runner/action/useControllerActionCancel.js +46 -0
  105. package/es/components/material-exercise/exercise-runner/action/useControllerActionGrade.d.ts +16 -0
  106. package/es/components/material-exercise/exercise-runner/action/useControllerActionGrade.js +68 -0
  107. package/es/components/material-exercise/exercise-runner/action/useControllerActionRun.d.ts +14 -0
  108. package/es/components/material-exercise/exercise-runner/action/useControllerActionRun.js +59 -0
  109. package/es/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.d.ts +15 -0
  110. package/es/components/material-exercise/exercise-runner/action/useControllerActionSyncRequest.js +62 -0
  111. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.d.ts +3 -0
  112. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialog.js +141 -0
  113. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.d.ts +3 -0
  114. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogNativeMock.js +177 -0
  115. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.d.ts +3 -0
  116. package/es/components/material-exercise/exercise-runner/arduino/ArduinoConnectionGuideDialogSteps.js +122 -0
  117. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.d.ts +3 -0
  118. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionCompile.js +80 -0
  119. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.d.ts +3 -0
  120. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerActionUpload.js +95 -0
  121. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.d.ts +3 -0
  122. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerButtonGroup.js +20 -0
  123. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.d.ts +3 -0
  124. package/es/components/material-exercise/exercise-runner/arduino/ArduinoControllerStatusMessage.js +197 -0
  125. package/es/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.d.ts +3 -0
  126. package/es/components/material-exercise/exercise-runner/arduino/ArduinoErrorDialog.js +112 -0
  127. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.d.ts +3 -0
  128. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialog.js +161 -0
  129. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.d.ts +3 -0
  130. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogButton.js +25 -0
  131. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.d.ts +3 -0
  132. package/es/components/material-exercise/exercise-runner/arduino/ArduinoHelpDialogChecklist.js +84 -0
  133. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProvider.d.ts +16 -0
  134. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProvider.js +97 -0
  135. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.d.ts +12 -0
  136. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderApiBinder.js +86 -0
  137. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.d.ts +7 -0
  138. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderFlashWriter.js +87 -0
  139. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.d.ts +7 -0
  140. package/es/components/material-exercise/exercise-runner/arduino/ArduinoProviderSessionWriter.js +62 -0
  141. package/es/components/material-exercise/exercise-runner/arduino/_context.d.ts +35 -0
  142. package/es/components/material-exercise/exercise-runner/arduino/_context.js +15 -0
  143. package/es/components/material-exercise/exercise-runner/arduino/index.d.ts +6 -0
  144. package/es/components/material-exercise/exercise-runner/arduino/index.js +4 -0
  145. package/es/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.d.ts +9 -0
  146. package/es/components/material-exercise/exercise-runner/arduino/useArduinoRunIntent.js +32 -0
  147. package/es/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.d.ts +10 -0
  148. package/es/components/material-exercise/exercise-runner/arduino/useArduinoTerminalWriter.js +27 -0
  149. package/es/components/material-exercise/exercise-runner/locales/en.json.js +1 -1
  150. package/es/components/material-exercise/exercise-runner/locales/ja.json.js +1 -1
  151. package/es/components/material-exercise/exercise-runner/locales/ko.json.js +1 -1
  152. package/es/components/material-exercise/exercise-runner/locales/th.json.js +1 -1
  153. package/es/components/shared/monaco-editor/utils/prettier/config.d.ts +1 -1
  154. package/es/components/shared/monaco-editor/utils/prettier/config.js +1 -1
  155. package/es/hooks/index.d.ts +0 -1
  156. package/es/hooks/index.js +0 -1
  157. package/package.json +15 -11
  158. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.d.ts +0 -3
  159. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -33
  160. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.d.ts +0 -3
  161. package/cjs/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -178
  162. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.d.ts +0 -3
  163. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +0 -169
  164. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.d.ts +0 -3
  165. package/cjs/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +0 -120
  166. package/cjs/constants/arduino.d.ts +0 -35
  167. package/cjs/constants/arduino.js +0 -73
  168. package/cjs/hooks/useArduino.d.ts +0 -14
  169. package/cjs/hooks/useArduino.js +0 -589
  170. package/cjs/typings/arduino.d.ts +0 -77
  171. package/cjs/utils/arduino.d.ts +0 -43
  172. package/cjs/utils/arduino.js +0 -82
  173. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.d.ts +0 -3
  174. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoAgentModalButton.js +0 -29
  175. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.d.ts +0 -3
  176. package/es/components/material-exercise/exercise-menu/ExerciseMenuArduinoSettings.js +0 -170
  177. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.d.ts +0 -3
  178. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoAgentModal.js +0 -161
  179. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.d.ts +0 -3
  180. package/es/components/material-exercise/exercise-runner/ExerciseRunnerControllerArduinoStatusMessage.js +0 -112
  181. package/es/constants/arduino.d.ts +0 -35
  182. package/es/constants/arduino.js +0 -62
  183. package/es/hooks/useArduino.d.ts +0 -14
  184. package/es/hooks/useArduino.js +0 -583
  185. package/es/typings/arduino.d.ts +0 -77
  186. package/es/utils/arduino.d.ts +0 -43
  187. package/es/utils/arduino.js +0 -75
@@ -1,583 +0,0 @@
1
- import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regenerator as _regenerator, createForOfIteratorHelper as _createForOfIteratorHelper } from '../_virtual/_rollupPluginBabelHelpers.js';
2
- import { useRef, useState, useEffect } from 'react';
3
- import { usePrevious } from 'react-use';
4
- import { useRecoilState, useSetRecoilState } from 'recoil';
5
- import io from 'socket.io-client';
6
- import { AVR_SIGNATURE, AVR_COMMANDLINE, ARDUINO_AGENT_PORTS, DISABLE_TIME_AFTER_UPLOAD } from '../constants/arduino.js';
7
- import { getArduinoBoardType, getFileContent, createArduinoUrl, getFQBN } from '../utils/arduino.js';
8
- import { exerciseArduinoPortsState, exerciseArduinoOpenedPortNameState, exerciseArduinoAgentConnectionState, exerciseArduinoUploadProgressState, exerciseArduinoPreferenceState, exerciseArduinoOnSelectPortState } from '../components/material-exercise/context/recoil.js';
9
-
10
- //
11
- //
12
- //
13
- var AGENT_INIT_DELAY = 500;
14
- var AGENT_REDISCOVER_DELAY = 10000;
15
- var AGENT_CHECK_PING_INTERVAL = 2000;
16
- //
17
- //
18
- //
19
- var useArduino = function useArduino(_ref) {
20
- var writeTerminal = _ref.writeTerminal;
21
- var _return = useRef({});
22
- // ports
23
- var _useRecoilState = useRecoilState(exerciseArduinoPortsState),
24
- _useRecoilState2 = _slicedToArray(_useRecoilState, 2),
25
- ports = _useRecoilState2[0],
26
- setPorts = _useRecoilState2[1];
27
- var _useRecoilState3 = useRecoilState(exerciseArduinoOpenedPortNameState),
28
- _useRecoilState4 = _slicedToArray(_useRecoilState3, 2),
29
- openedPortName = _useRecoilState4[0],
30
- setOpenedPortName = _useRecoilState4[1];
31
- // connection state
32
- var setAgentConnectionStatus = useSetRecoilState(exerciseArduinoAgentConnectionState);
33
- // upload progress
34
- var _useRecoilState5 = useRecoilState(exerciseArduinoUploadProgressState),
35
- _useRecoilState6 = _slicedToArray(_useRecoilState5, 2),
36
- uploadProgress = _useRecoilState6[0],
37
- setUploadProgress = _useRecoilState6[1];
38
- var previousUploadProgress = usePrevious(uploadProgress);
39
- // preferences
40
- var _useRecoilState7 = useRecoilState(exerciseArduinoPreferenceState),
41
- _useRecoilState8 = _slicedToArray(_useRecoilState7, 2),
42
- preference = _useRecoilState8[0],
43
- setPreference = _useRecoilState8[1];
44
- var setOnSelectPort = useSetRecoilState(exerciseArduinoOnSelectPortState);
45
- // internal state
46
- var state = useRef({
47
- openedPortName: null,
48
- uploadingPortName: null,
49
- ports: []
50
- });
51
- var socket = useRef(null);
52
- var pingInterval = useRef(null);
53
- var _useState = useState(false),
54
- _useState2 = _slicedToArray(_useState, 2),
55
- enabled = _useState2[0],
56
- setEnabled = _useState2[1];
57
- var _useState3 = useState(null),
58
- _useState4 = _slicedToArray(_useState3, 2),
59
- agentHttpPort = _useState4[0],
60
- setAgentHttpPort = _useState4[1];
61
- /**
62
- * Discovers arduino agent and connects.
63
- */
64
- var init = function init() {
65
- setEnabled(true);
66
- };
67
- /**
68
- * Closes all connection and destroys arduino agent.
69
- */
70
- var destroy = function destroy() {
71
- setEnabled(false);
72
- };
73
- /**
74
- * Re-initializes arduino agent.
75
- */
76
- var reload = function reload() {
77
- setEnabled(false);
78
- setTimeout(init, 1000);
79
- };
80
- /**
81
- * Close port, websocket and clear the state.
82
- */
83
- var reset = function reset() {
84
- // close port
85
- closePort(state.current.openedPortName);
86
- // close websocket
87
- if (socket.current) {
88
- socket.current.close();
89
- socket.current = null;
90
- }
91
- // clear ping interval
92
- if (pingInterval.current) {
93
- window.clearInterval(pingInterval.current);
94
- }
95
- // reset states
96
- setPorts([]);
97
- setOpenedPortName(null);
98
- setAgentConnectionStatus('disconnected');
99
- setUploadProgress('ready');
100
- };
101
- /**
102
- * Send command to arduino agent.
103
- */
104
- var send = function send(command) {
105
- var _a, _b;
106
- if ((_a = socket.current) === null || _a === void 0 ? void 0 : _a.connected) {
107
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
108
- args[_key - 1] = arguments[_key];
109
- }
110
- (_b = socket.current) === null || _b === void 0 ? void 0 : _b.emit('command', [command].concat(args).join(' '));
111
- }
112
- };
113
- /**
114
- * Send text to arduino agent.
115
- */
116
- var sendText = function sendText(text) {
117
- if (state.current.openedPortName) {
118
- send('send', state.current.openedPortName, text);
119
- }
120
- };
121
- /**
122
- * Open port.
123
- */
124
- var openPort = function openPort(portName) {
125
- if (portName) {
126
- setOpenedPortName(portName);
127
- send('open', portName, preference.baudRate);
128
- }
129
- };
130
- /**
131
- * Close port.
132
- */
133
- var closePort = function closePort(portName) {
134
- if (portName) {
135
- send('close', portName);
136
- }
137
- };
138
- /**
139
- * Send list command to the agent.
140
- */
141
- var ping = /*#__PURE__*/function () {
142
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
143
- return _regenerator().w(function (_context) {
144
- while (1) switch (_context.p = _context.n) {
145
- case 0:
146
- if (agentHttpPort) {
147
- _context.n = 1;
148
- break;
149
- }
150
- return _context.a(2);
151
- case 1:
152
- if (!state.current.uploadingPortName) {
153
- _context.n = 2;
154
- break;
155
- }
156
- return _context.a(2);
157
- case 2:
158
- _context.p = 2;
159
- _context.n = 3;
160
- return fetch(createArduinoUrl({
161
- protocol: 'http',
162
- pathname: '/info',
163
- port: agentHttpPort
164
- }));
165
- case 3:
166
- send('list');
167
- _context.n = 5;
168
- break;
169
- case 4:
170
- _context.p = 4;
171
- _context.v;
172
- // if ping fails, reconnect the agent.
173
- reload();
174
- setAgentConnectionStatus('reconnecting');
175
- case 5:
176
- return _context.a(2);
177
- }
178
- }, _callee, null, [[2, 4]]);
179
- }));
180
- return function ping() {
181
- return _ref2.apply(this, arguments);
182
- };
183
- }();
184
- /**
185
- * Upload hex file to the agent.
186
- */
187
- var uploadHexFile = function uploadHexFile(hexFile) {
188
- if (!agentHttpPort || !state.current.openedPortName) {
189
- return;
190
- }
191
- var port = state.current.ports.find(function (port) {
192
- return port.Name === state.current.openedPortName;
193
- });
194
- if (!port) {
195
- return;
196
- }
197
- if (!hexFile.filename.includes(getArduinoBoardType(port) || 'not found')) {
198
- return;
199
- }
200
- setUploadProgress('receivedHex');
201
- // if port opened, close it.
202
- state.current.uploadingPortName = state.current.openedPortName;
203
- if (port.IsOpen) {
204
- closePort(state.current.openedPortName);
205
- }
206
- // get board type and content.
207
- var content = getFileContent(hexFile.data);
208
- var boradType = getArduinoBoardType(port);
209
- if (!boradType) {
210
- return;
211
- }
212
- fetch(createArduinoUrl({
213
- protocol: 'http',
214
- pathname: '/upload',
215
- port: agentHttpPort
216
- }), {
217
- method: 'post',
218
- body: JSON.stringify({
219
- board: getFQBN(port),
220
- commandline: AVR_COMMANDLINE[boradType],
221
- filename: 'firmware.hex',
222
- data: content,
223
- hex: content,
224
- port: state.current.openedPortName,
225
- network: port.NetworkPort,
226
- extra: {
227
- use_1200bps_touch: false,
228
- wait_for_upload_port: false
229
- },
230
- extrafiles: [],
231
- signature: AVR_SIGNATURE[boradType]
232
- })
233
- }).then(function (res) {
234
- return res.json();
235
- }).then(function () {
236
- // no response (202 accepted)
237
- })["catch"](function () {
238
- //
239
- });
240
- };
241
- /**
242
- * Handler called when user (re-)selects arduino device.
243
- */
244
- var onSelectPort = function onSelectPort(name) {
245
- if (name === state.current.openedPortName) {
246
- return;
247
- }
248
- if (state.current.openedPortName) {
249
- closePort(state.current.openedPortName);
250
- }
251
- if (name !== null) {
252
- openPort(name);
253
- }
254
- };
255
- /**
256
- * Handle arduino agent websocket message.
257
- */
258
- var handleAgentMsg = function handleAgentMsg(msg) {
259
- // Ports
260
- if ('Ports' in msg && msg.Network === false) {
261
- handleAgentMsgPorts(msg);
262
- }
263
- // Cmd
264
- else if ('Cmd' in msg && 'Desc' in msg) {
265
- handleAgentMsgCmd(msg);
266
- }
267
- // Programmer Status
268
- else if ('ProgrammerStatus' in msg) {
269
- handleAgentMsgProgram(msg);
270
- }
271
- // D
272
- else if ('D' in msg) {
273
- handleAgentMsgD(msg);
274
- }
275
- };
276
- /**
277
- * Handle arduino agent websocket message. (Ports)
278
- */
279
- var handleAgentMsgPorts = function handleAgentMsgPorts(msg) {
280
- setPorts(msg.Ports);
281
- // if port not opened, open new port.
282
- if (!state.current.openedPortName && !state.current.uploadingPortName) {
283
- var prefPort = msg.Ports.find(function (port) {
284
- return port.Name === preference.port;
285
- });
286
- var targetPort = prefPort ? prefPort :
287
- // if preference port not found, open first port.
288
- msg.Ports.length > 0 ? msg.Ports[0] : null;
289
- if (targetPort) {
290
- openPort(targetPort.Name);
291
- }
292
- }
293
- };
294
- /**
295
- * Handle arduino agent websocket message. (Cmd)
296
- */
297
- var handleAgentMsgCmd = function handleAgentMsgCmd(msg) {
298
- switch (msg.Cmd) {
299
- case 'Open':
300
- setOpenedPortName(msg.Port);
301
- setPreference(function (prev) {
302
- return Object.assign(Object.assign({}, prev), {
303
- port: msg.Port
304
- });
305
- });
306
- break;
307
- case 'OpenFail':
308
- closePort(msg.Port);
309
- break;
310
- case 'Close':
311
- setOpenedPortName(null);
312
- break;
313
- }
314
- };
315
- /**
316
- * Handle arduino agent websocket message. (ProgrammerStatus)
317
- */
318
- var handleAgentMsgProgram = function handleAgentMsgProgram(msg) {
319
- switch (msg.ProgrammerStatus) {
320
- case 'Starting':
321
- setUploadProgress('starting');
322
- return;
323
- case 'Busy':
324
- setUploadProgress('busy');
325
- return;
326
- case 'Done':
327
- setUploadProgress('done');
328
- openPort(state.current.uploadingPortName);
329
- state.current.uploadingPortName = null;
330
- window.setTimeout(function () {
331
- return setUploadProgress('ready');
332
- }, DISABLE_TIME_AFTER_UPLOAD);
333
- return;
334
- case 'Error':
335
- setUploadProgress('error');
336
- openPort(state.current.uploadingPortName);
337
- state.current.uploadingPortName = null;
338
- window.setTimeout(function () {
339
- return setUploadProgress('ready');
340
- }, DISABLE_TIME_AFTER_UPLOAD);
341
- return;
342
- }
343
- };
344
- /**
345
- * Handle arduino agent websocket message. (D)
346
- */
347
- var handleAgentMsgD = function handleAgentMsgD(msg) {
348
- writeTerminal(msg.D);
349
- };
350
- //
351
- // Sync `openedPortName` recoil state with internal ref.
352
- //
353
- useEffect(function () {
354
- state.current.openedPortName = openedPortName;
355
- }, [openedPortName]);
356
- //
357
- // Sync `ports` recoil state with internal ref.
358
- //
359
- useEffect(function () {
360
- state.current.ports = ports;
361
- }, [ports]);
362
- //
363
- // Discover arduino agent port.
364
- //
365
- useEffect(function () {
366
- if (!enabled) {
367
- return;
368
- }
369
- var abortCtrl = new AbortController();
370
- var reconnectTimeout = null;
371
- /** Scan port. */
372
- var _scan = /*#__PURE__*/function () {
373
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
374
- var _iterator, _step, port, _t2, _t3;
375
- return _regenerator().w(function (_context2) {
376
- while (1) switch (_context2.p = _context2.n) {
377
- case 0:
378
- _iterator = _createForOfIteratorHelper(ARDUINO_AGENT_PORTS);
379
- _context2.p = 1;
380
- _iterator.s();
381
- case 2:
382
- if ((_step = _iterator.n()).done) {
383
- _context2.n = 7;
384
- break;
385
- }
386
- port = _step.value;
387
- _context2.p = 3;
388
- _context2.n = 4;
389
- return fetch(createArduinoUrl({
390
- protocol: 'http',
391
- pathname: '/info',
392
- port: port
393
- }), {
394
- signal: abortCtrl.signal
395
- });
396
- case 4:
397
- return _context2.a(2, port);
398
- case 5:
399
- _context2.p = 5;
400
- _t2 = _context2.v;
401
- if (!(_t2.name === 'AbortError')) {
402
- _context2.n = 6;
403
- break;
404
- }
405
- throw _t2;
406
- case 6:
407
- _context2.n = 2;
408
- break;
409
- case 7:
410
- _context2.n = 9;
411
- break;
412
- case 8:
413
- _context2.p = 8;
414
- _t3 = _context2.v;
415
- _iterator.e(_t3);
416
- case 9:
417
- _context2.p = 9;
418
- _iterator.f();
419
- return _context2.f(9);
420
- case 10:
421
- return _context2.a(2, null);
422
- }
423
- }, _callee2, null, [[3, 5], [1, 8, 9, 10]]);
424
- }));
425
- return function _scan() {
426
- return _ref3.apply(this, arguments);
427
- };
428
- }();
429
- /** Scan port to discover until found. */
430
- var _discover2 = /*#__PURE__*/function () {
431
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
432
- return _regenerator().w(function (_context3) {
433
- while (1) switch (_context3.n) {
434
- case 0:
435
- void _scan().then(function (port) {
436
- // if port found, stop scanning and set port
437
- if (port) {
438
- setAgentHttpPort(port);
439
- }
440
- // or start scanning again
441
- else {
442
- reconnectTimeout = window.setTimeout(function () {
443
- return void _discover2();
444
- }, AGENT_REDISCOVER_DELAY);
445
- }
446
- })["catch"](function () {
447
- return void 0;
448
- });
449
- case 1:
450
- return _context3.a(2);
451
- }
452
- }, _callee3);
453
- }));
454
- return function _discover() {
455
- return _ref4.apply(this, arguments);
456
- };
457
- }();
458
- // start scanning...
459
- setAgentConnectionStatus('connecting');
460
- void _discover2();
461
- return function () {
462
- abortCtrl.abort();
463
- if (reconnectTimeout) {
464
- window.clearTimeout(reconnectTimeout);
465
- }
466
- setAgentHttpPort(null);
467
- };
468
- },
469
- // eslint-disable-next-line react-hooks/exhaustive-deps
470
- [enabled]);
471
- //
472
- // Initialize arduino agent websocket.
473
- //
474
- useEffect(function () {
475
- if (!enabled || !agentHttpPort) {
476
- return;
477
- }
478
- var _init = /*#__PURE__*/function () {
479
- var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
480
- return _regenerator().w(function (_context4) {
481
- while (1) switch (_context4.n) {
482
- case 0:
483
- _context4.n = 1;
484
- return new Promise(function (r) {
485
- return window.setTimeout(r, AGENT_INIT_DELAY);
486
- });
487
- case 1:
488
- setAgentConnectionStatus('connecting');
489
- // connect socket.io-client to the agent.
490
- socket.current = io(createArduinoUrl({
491
- protocol: 'ws',
492
- port: agentHttpPort
493
- }));
494
- // agent - on message
495
- socket.current.on('message', function (message) {
496
- try {
497
- var msg = JSON.parse(message);
498
- handleAgentMsg(msg);
499
- } catch (_a) {
500
- // console.warn(e);
501
- }
502
- });
503
- // agent - on connect
504
- _context4.n = 2;
505
- return new Promise(function (resolve) {
506
- var _a;
507
- return (_a = socket.current) === null || _a === void 0 ? void 0 : _a.on('connect', resolve);
508
- }).then(ping).then(function () {
509
- var _a, _b, _c, _d, _e;
510
- (_a = socket.current) === null || _a === void 0 ? void 0 : _a.emit('command', 'downloadtool windows-drivers latest arduino keep');
511
- (_b = socket.current) === null || _b === void 0 ? void 0 : _b.emit('command', 'downloadtool bossac 1.7.0 arduino keep');
512
- (_c = socket.current) === null || _c === void 0 ? void 0 : _c.emit('command', 'downloadtool fwupdater latest arduino keep');
513
- (_d = socket.current) === null || _d === void 0 ? void 0 : _d.emit('command', 'downloadtool rp2040tools latest arduino keep');
514
- (_e = socket.current) === null || _e === void 0 ? void 0 : _e.emit('command', 'downloadtool avrdude 6.3.0-arduino15 arduino keep');
515
- });
516
- case 2:
517
- setAgentConnectionStatus('connected');
518
- pingInterval.current = window.setInterval(function () {
519
- return void ping();
520
- }, AGENT_CHECK_PING_INTERVAL);
521
- case 3:
522
- return _context4.a(2);
523
- }
524
- }, _callee4);
525
- }));
526
- return function _init() {
527
- return _ref5.apply(this, arguments);
528
- };
529
- }();
530
- void _init();
531
- return function () {
532
- reset();
533
- };
534
- },
535
- // eslint-disable-next-line react-hooks/exhaustive-deps
536
- [enabled, agentHttpPort,
537
- // reload agent on port or baud rate change
538
- preference.port, preference.baudRate]);
539
- //
540
- // Print message to terminal according to the message type.
541
- //
542
- useEffect(function () {
543
- if (previousUploadProgress === uploadProgress) {
544
- return;
545
- }
546
- var _write = function _write(text) {
547
- writeTerminal("\x1B[1m\x1B[38;5;221m".concat(text, "\x1B[0m"));
548
- };
549
- switch (uploadProgress) {
550
- case 'receivedHex':
551
- _write('/* 컴파일이 완료되었습니다. */\n');
552
- return;
553
- case 'starting':
554
- _write('/* 업로드를 시작합니다. */\n');
555
- return;
556
- case 'busy':
557
- _write('/* 업로드 중입니다... */\n');
558
- return;
559
- case 'done':
560
- _write('/* 업로드가 완료되었습니다. */\n');
561
- return;
562
- case 'error':
563
- _write('/* 에러가 발생했습니다. */\n');
564
- return;
565
- }
566
- },
567
- // eslint-disable-next-line react-hooks/exhaustive-deps
568
- [previousUploadProgress, uploadProgress]);
569
- setOnSelectPort(function () {
570
- return onSelectPort;
571
- });
572
- //
573
- //
574
- //
575
- _return.current.init = init;
576
- _return.current.destroy = destroy;
577
- _return.current.reload = reload;
578
- _return.current.sendText = sendText;
579
- _return.current.uploadHexFile = uploadHexFile;
580
- return _return.current;
581
- };
582
-
583
- export { useArduino };
@@ -1,77 +0,0 @@
1
- /**
2
- * - `list`
3
- * - `open [portName] [baud] [bufferAlgorithm (optional)]`
4
- * - `send [portName] [cmd]`
5
- * - `sendnobuf [portName] [cmd]`
6
- * - `close [portName]`
7
- * - `bufferalgorithms`
8
- * - `baudrates`
9
- * - `restart`
10
- * - `exit`
11
- * - `program [portName] [board:name] [$path/to/filename/without/extension]`
12
- * - `programfromurl [portName] [board:name] [urlToHexFile]`
13
- */
14
- export type ArduinoAgentCommand = 'list' | 'open' | 'send' | 'sendnobuf' | 'close' | 'bufferalgorithms' | 'baudrates' | 'restart' | 'exit' | 'program' | 'programfromurl';
15
- export type ArduinoAgentMessage = ArduinoAgentMessageVersion | ArduinoAgentMessageCommands | ArduinoAgentMessageHostname | ArduinoAgentMessageOs | ArduinoAgentMessagePorts | ArduinoAgentMessageDownloadStatus | ArduinoAgentMessageCmd | ArduinoAgentMessageProgrammerStatus | ArduinoAgentMessageD;
16
- export interface ArduinoAgentMessageVersion {
17
- Version: string;
18
- }
19
- export interface ArduinoAgentMessageCommands {
20
- Commands: string[];
21
- }
22
- export interface ArduinoAgentMessageHostname {
23
- Hostname: string;
24
- }
25
- export interface ArduinoAgentMessageOs {
26
- OS: string;
27
- }
28
- export interface ArduinoAgentMessagePorts {
29
- Ports: {
30
- Name: string;
31
- SerialNumber: string;
32
- DeviceClass: string;
33
- IsOpen: boolean;
34
- IsPrimary: boolean;
35
- Baud: number;
36
- BufferAlgorithm: string;
37
- Ver: string;
38
- NetworkPort: boolean;
39
- VendorID: string;
40
- ProductID: string;
41
- }[];
42
- Network: boolean;
43
- }
44
- export interface ArduinoAgentMessageDownloadStatus {
45
- DownloadStatus: 'Pending' | 'Downloading' | 'Done' | 'Error';
46
- Msg: string;
47
- }
48
- export interface ArduinoAgentMessageCmd {
49
- Cmd: 'Open' | 'OpenFail' | 'Close' | 'Queued' | 'Write' | 'CompleteFake';
50
- Desc: string;
51
- Port: string;
52
- Baud: number;
53
- BufferType: string;
54
- }
55
- export type ArduinoAgentMessageProgrammerStatus = ArduinoAgentMessageProgrammerStatusStarting | ArduinoAgentMessageProgrammerStatusBusy | ArduinoAgentMessageProgrammerStatusDone | ArduinoAgentMessageProgrammerStatusError;
56
- export interface ArduinoAgentMessageProgrammerStatusStarting {
57
- ProgrammerStatus: 'Starting';
58
- Cmd: string;
59
- }
60
- export interface ArduinoAgentMessageProgrammerStatusBusy {
61
- ProgrammerStatus: 'Busy';
62
- Msg: string;
63
- }
64
- export interface ArduinoAgentMessageProgrammerStatusDone {
65
- ProgrammerStatus: 'Done';
66
- Flash: 'Ok';
67
- }
68
- export interface ArduinoAgentMessageProgrammerStatusError {
69
- ProgrammerStatus: 'Error';
70
- Msg: string;
71
- }
72
- export interface ArduinoAgentMessageD {
73
- D: string;
74
- }
75
- export type ArduinoPort = ArduinoAgentMessagePorts['Ports'][number];
76
- export type ArduinoUploadProgressStatus = 'ready' | 'receivedHex' | 'starting' | 'busy' | 'error' | 'done';
77
- export type ArduinoAgentConnectionStatus = 'disconnected' | 'connecting' | 'reconnecting' | 'connected';
@@ -1,43 +0,0 @@
1
- import type { ArduinoPort } from "../typings/arduino";
2
- interface ArduinoUrlOptions {
3
- protocol: 'http' | 'ws';
4
- pathname?: string;
5
- port?: number;
6
- }
7
- /**
8
- * Create url to communicate with arduino.
9
- */
10
- export declare function createArduinoUrl(options: ArduinoUrlOptions): string;
11
- /**
12
- *
13
- */
14
- export declare function getArduinoBoardType(port: ArduinoPort): "mega" | "uno" | null;
15
- /**
16
- *
17
- */
18
- export declare function getDisplayName(port: ArduinoPort): string;
19
- /**
20
- *
21
- */
22
- export declare function getPortFromName(ports: ArduinoPort[], name: null | string): {
23
- Name: string;
24
- SerialNumber: string;
25
- DeviceClass: string;
26
- IsOpen: boolean;
27
- IsPrimary: boolean;
28
- Baud: number;
29
- BufferAlgorithm: string;
30
- Ver: string;
31
- NetworkPort: boolean;
32
- VendorID: string;
33
- ProductID: string;
34
- };
35
- /**
36
- *
37
- */
38
- export declare function getFileContent(encoded: string): string;
39
- /**
40
- *
41
- */
42
- export declare function getFQBN(device: ArduinoPort): string;
43
- export {};