mikrojs 0.0.0 → 0.0.7

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 (497) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +76 -0
  3. package/bin/mikrojs.js +3 -0
  4. package/dist/_exports/ble.d.ts +3 -0
  5. package/dist/_exports/ble.d.ts.map +1 -0
  6. package/dist/_exports/ble.js +2 -0
  7. package/dist/_exports/ble.js.map +1 -0
  8. package/dist/_exports/cbor.d.ts +3 -0
  9. package/dist/_exports/cbor.d.ts.map +1 -0
  10. package/dist/_exports/cbor.js +2 -0
  11. package/dist/_exports/cbor.js.map +1 -0
  12. package/dist/_exports/console.d.ts +2 -0
  13. package/dist/_exports/console.d.ts.map +1 -0
  14. package/dist/_exports/console.js +2 -0
  15. package/dist/_exports/console.js.map +1 -0
  16. package/dist/_exports/env.d.ts +2 -0
  17. package/dist/_exports/env.d.ts.map +1 -0
  18. package/dist/_exports/env.js +2 -0
  19. package/dist/_exports/env.js.map +1 -0
  20. package/dist/_exports/format.d.ts +2 -0
  21. package/dist/_exports/format.d.ts.map +1 -0
  22. package/dist/_exports/format.js +2 -0
  23. package/dist/_exports/format.js.map +1 -0
  24. package/dist/_exports/fs.d.ts +2 -0
  25. package/dist/_exports/fs.d.ts.map +1 -0
  26. package/dist/_exports/fs.js +2 -0
  27. package/dist/_exports/fs.js.map +1 -0
  28. package/dist/_exports/http/helpers.d.ts +3 -0
  29. package/dist/_exports/http/helpers.d.ts.map +1 -0
  30. package/dist/_exports/http/helpers.js +5 -0
  31. package/dist/_exports/http/helpers.js.map +1 -0
  32. package/dist/_exports/http/request.d.ts +4 -0
  33. package/dist/_exports/http/request.d.ts.map +1 -0
  34. package/dist/_exports/http/request.js +10 -0
  35. package/dist/_exports/http/request.js.map +1 -0
  36. package/dist/_exports/i2c.d.ts +2 -0
  37. package/dist/_exports/i2c.d.ts.map +1 -0
  38. package/dist/_exports/i2c.js +2 -0
  39. package/dist/_exports/i2c.js.map +1 -0
  40. package/dist/_exports/index.d.ts +61 -0
  41. package/dist/_exports/index.d.ts.map +1 -0
  42. package/dist/_exports/index.js +4 -0
  43. package/dist/_exports/index.js.map +1 -0
  44. package/dist/_exports/inspect.d.ts +2 -0
  45. package/dist/_exports/inspect.d.ts.map +1 -0
  46. package/dist/_exports/inspect.js +2 -0
  47. package/dist/_exports/inspect.js.map +1 -0
  48. package/dist/_exports/kv/nvs.d.ts +3 -0
  49. package/dist/_exports/kv/nvs.d.ts.map +1 -0
  50. package/dist/_exports/kv/nvs.js +2 -0
  51. package/dist/_exports/kv/nvs.js.map +1 -0
  52. package/dist/_exports/kv/rtc.d.ts +3 -0
  53. package/dist/_exports/kv/rtc.d.ts.map +1 -0
  54. package/dist/_exports/kv/rtc.js +2 -0
  55. package/dist/_exports/kv/rtc.js.map +1 -0
  56. package/dist/_exports/neopixel.d.ts +2 -0
  57. package/dist/_exports/neopixel.d.ts.map +1 -0
  58. package/dist/_exports/neopixel.js +2 -0
  59. package/dist/_exports/neopixel.js.map +1 -0
  60. package/dist/_exports/pin.d.ts +2 -0
  61. package/dist/_exports/pin.d.ts.map +1 -0
  62. package/dist/_exports/pin.js +2 -0
  63. package/dist/_exports/pin.js.map +1 -0
  64. package/dist/_exports/pwm.d.ts +2 -0
  65. package/dist/_exports/pwm.d.ts.map +1 -0
  66. package/dist/_exports/pwm.js +2 -0
  67. package/dist/_exports/pwm.js.map +1 -0
  68. package/dist/_exports/reader.d.ts +2 -0
  69. package/dist/_exports/reader.d.ts.map +1 -0
  70. package/dist/_exports/reader.js +2 -0
  71. package/dist/_exports/reader.js.map +1 -0
  72. package/dist/_exports/result.d.ts +2 -0
  73. package/dist/_exports/result.d.ts.map +1 -0
  74. package/dist/_exports/result.js +2 -0
  75. package/dist/_exports/result.js.map +1 -0
  76. package/dist/_exports/schema.d.ts +2 -0
  77. package/dist/_exports/schema.d.ts.map +1 -0
  78. package/dist/_exports/schema.js +2 -0
  79. package/dist/_exports/schema.js.map +1 -0
  80. package/dist/_exports/sim.d.ts +199 -0
  81. package/dist/_exports/sim.d.ts.map +1 -0
  82. package/dist/_exports/sim.js +8 -0
  83. package/dist/_exports/sim.js.map +1 -0
  84. package/dist/_exports/sleep.d.ts +2 -0
  85. package/dist/_exports/sleep.d.ts.map +1 -0
  86. package/dist/_exports/sleep.js +2 -0
  87. package/dist/_exports/sleep.js.map +1 -0
  88. package/dist/_exports/sntp.d.ts +3 -0
  89. package/dist/_exports/sntp.d.ts.map +1 -0
  90. package/dist/_exports/sntp.js +2 -0
  91. package/dist/_exports/sntp.js.map +1 -0
  92. package/dist/_exports/spi.d.ts +2 -0
  93. package/dist/_exports/spi.d.ts.map +1 -0
  94. package/dist/_exports/spi.js +2 -0
  95. package/dist/_exports/spi.js.map +1 -0
  96. package/dist/_exports/stdio.d.ts +2 -0
  97. package/dist/_exports/stdio.d.ts.map +1 -0
  98. package/dist/_exports/stdio.js +2 -0
  99. package/dist/_exports/stdio.js.map +1 -0
  100. package/dist/_exports/stream.d.ts +2 -0
  101. package/dist/_exports/stream.d.ts.map +1 -0
  102. package/dist/_exports/stream.js +2 -0
  103. package/dist/_exports/stream.js.map +1 -0
  104. package/dist/_exports/sys.d.ts +2 -0
  105. package/dist/_exports/sys.d.ts.map +1 -0
  106. package/dist/_exports/sys.js +2 -0
  107. package/dist/_exports/sys.js.map +1 -0
  108. package/dist/_exports/test.d.ts +2 -0
  109. package/dist/_exports/test.d.ts.map +1 -0
  110. package/dist/_exports/test.js +2 -0
  111. package/dist/_exports/test.js.map +1 -0
  112. package/dist/_exports/uart.d.ts +2 -0
  113. package/dist/_exports/uart.d.ts.map +1 -0
  114. package/dist/_exports/uart.js +2 -0
  115. package/dist/_exports/uart.js.map +1 -0
  116. package/dist/_exports/wifi.d.ts +3 -0
  117. package/dist/_exports/wifi.d.ts.map +1 -0
  118. package/dist/_exports/wifi.js +2 -0
  119. package/dist/_exports/wifi.js.map +1 -0
  120. package/dist/cli/cli.d.ts +3 -0
  121. package/dist/cli/cli.d.ts.map +1 -0
  122. package/dist/cli/cli.js +215 -0
  123. package/dist/cli/cli.js.map +1 -0
  124. package/dist/cli/cliWrapper.d.ts +3 -0
  125. package/dist/cli/cliWrapper.d.ts.map +1 -0
  126. package/dist/cli/cliWrapper.js +27 -0
  127. package/dist/cli/cliWrapper.js.map +1 -0
  128. package/dist/cli/commands/build-runtime.d.ts +14 -0
  129. package/dist/cli/commands/build-runtime.d.ts.map +1 -0
  130. package/dist/cli/commands/build-runtime.js +122 -0
  131. package/dist/cli/commands/build-runtime.js.map +1 -0
  132. package/dist/cli/commands/build.d.ts +31 -0
  133. package/dist/cli/commands/build.d.ts.map +1 -0
  134. package/dist/cli/commands/build.js +145 -0
  135. package/dist/cli/commands/build.js.map +1 -0
  136. package/dist/cli/commands/clean.d.ts +16 -0
  137. package/dist/cli/commands/clean.d.ts.map +1 -0
  138. package/dist/cli/commands/clean.js +148 -0
  139. package/dist/cli/commands/clean.js.map +1 -0
  140. package/dist/cli/commands/console.d.ts +19 -0
  141. package/dist/cli/commands/console.d.ts.map +1 -0
  142. package/dist/cli/commands/console.js +32 -0
  143. package/dist/cli/commands/console.js.map +1 -0
  144. package/dist/cli/commands/deploy.d.ts +63 -0
  145. package/dist/cli/commands/deploy.d.ts.map +1 -0
  146. package/dist/cli/commands/deploy.js +242 -0
  147. package/dist/cli/commands/deploy.js.map +1 -0
  148. package/dist/cli/commands/dev.d.ts +41 -0
  149. package/dist/cli/commands/dev.d.ts.map +1 -0
  150. package/dist/cli/commands/dev.js +170 -0
  151. package/dist/cli/commands/dev.js.map +1 -0
  152. package/dist/cli/commands/docs.d.ts +7 -0
  153. package/dist/cli/commands/docs.d.ts.map +1 -0
  154. package/dist/cli/commands/docs.js +20 -0
  155. package/dist/cli/commands/docs.js.map +1 -0
  156. package/dist/cli/commands/env.d.ts +59 -0
  157. package/dist/cli/commands/env.d.ts.map +1 -0
  158. package/dist/cli/commands/env.js +257 -0
  159. package/dist/cli/commands/env.js.map +1 -0
  160. package/dist/cli/commands/erase.d.ts +18 -0
  161. package/dist/cli/commands/erase.d.ts.map +1 -0
  162. package/dist/cli/commands/erase.js +90 -0
  163. package/dist/cli/commands/erase.js.map +1 -0
  164. package/dist/cli/commands/flash.d.ts +30 -0
  165. package/dist/cli/commands/flash.d.ts.map +1 -0
  166. package/dist/cli/commands/flash.js +243 -0
  167. package/dist/cli/commands/flash.js.map +1 -0
  168. package/dist/cli/commands/home.d.ts +7 -0
  169. package/dist/cli/commands/home.d.ts.map +1 -0
  170. package/dist/cli/commands/home.js +20 -0
  171. package/dist/cli/commands/home.js.map +1 -0
  172. package/dist/cli/commands/ls.d.ts +17 -0
  173. package/dist/cli/commands/ls.d.ts.map +1 -0
  174. package/dist/cli/commands/ls.js +62 -0
  175. package/dist/cli/commands/ls.js.map +1 -0
  176. package/dist/cli/commands/sim/clean.d.ts +7 -0
  177. package/dist/cli/commands/sim/clean.d.ts.map +1 -0
  178. package/dist/cli/commands/sim/clean.js +34 -0
  179. package/dist/cli/commands/sim/clean.js.map +1 -0
  180. package/dist/cli/commands/sim/deploy.d.ts +46 -0
  181. package/dist/cli/commands/sim/deploy.d.ts.map +1 -0
  182. package/dist/cli/commands/sim/deploy.js +127 -0
  183. package/dist/cli/commands/sim/deploy.js.map +1 -0
  184. package/dist/cli/commands/sim/dev.d.ts +40 -0
  185. package/dist/cli/commands/sim/dev.d.ts.map +1 -0
  186. package/dist/cli/commands/sim/dev.js +254 -0
  187. package/dist/cli/commands/sim/dev.js.map +1 -0
  188. package/dist/cli/commands/sim/env.d.ts +56 -0
  189. package/dist/cli/commands/sim/env.d.ts.map +1 -0
  190. package/dist/cli/commands/sim/env.js +204 -0
  191. package/dist/cli/commands/sim/env.js.map +1 -0
  192. package/dist/cli/commands/sim/profile.d.ts +67 -0
  193. package/dist/cli/commands/sim/profile.d.ts.map +1 -0
  194. package/dist/cli/commands/sim/profile.js +354 -0
  195. package/dist/cli/commands/sim/profile.js.map +1 -0
  196. package/dist/cli/commands/sim/repl.d.ts +16 -0
  197. package/dist/cli/commands/sim/repl.d.ts.map +1 -0
  198. package/dist/cli/commands/sim/repl.js +119 -0
  199. package/dist/cli/commands/sim/repl.js.map +1 -0
  200. package/dist/cli/commands/sim/reset.d.ts +11 -0
  201. package/dist/cli/commands/sim/reset.d.ts.map +1 -0
  202. package/dist/cli/commands/sim/reset.js +59 -0
  203. package/dist/cli/commands/sim/reset.js.map +1 -0
  204. package/dist/cli/commands/sim/scaffold.d.ts +11 -0
  205. package/dist/cli/commands/sim/scaffold.d.ts.map +1 -0
  206. package/dist/cli/commands/sim/scaffold.js +41 -0
  207. package/dist/cli/commands/sim/scaffold.js.map +1 -0
  208. package/dist/cli/commands/sim/test.d.ts +49 -0
  209. package/dist/cli/commands/sim/test.d.ts.map +1 -0
  210. package/dist/cli/commands/sim/test.js +364 -0
  211. package/dist/cli/commands/sim/test.js.map +1 -0
  212. package/dist/cli/commands/sim.d.ts +220 -0
  213. package/dist/cli/commands/sim.d.ts.map +1 -0
  214. package/dist/cli/commands/sim.js +69 -0
  215. package/dist/cli/commands/sim.js.map +1 -0
  216. package/dist/cli/commands/tail.d.ts +14 -0
  217. package/dist/cli/commands/tail.d.ts.map +1 -0
  218. package/dist/cli/commands/tail.js +50 -0
  219. package/dist/cli/commands/tail.js.map +1 -0
  220. package/dist/cli/commands/test.d.ts +39 -0
  221. package/dist/cli/commands/test.d.ts.map +1 -0
  222. package/dist/cli/commands/test.js +432 -0
  223. package/dist/cli/commands/test.js.map +1 -0
  224. package/dist/cli/components/DevicePicker.d.ts +9 -0
  225. package/dist/cli/components/DevicePicker.d.ts.map +1 -0
  226. package/dist/cli/components/DevicePicker.js +71 -0
  227. package/dist/cli/components/DevicePicker.js.map +1 -0
  228. package/dist/cli/components/EnvEditor.d.ts +12 -0
  229. package/dist/cli/components/EnvEditor.d.ts.map +1 -0
  230. package/dist/cli/components/EnvEditor.js +201 -0
  231. package/dist/cli/components/EnvEditor.js.map +1 -0
  232. package/dist/cli/components/TextInput.d.ts +28 -0
  233. package/dist/cli/components/TextInput.d.ts.map +1 -0
  234. package/dist/cli/components/TextInput.js +73 -0
  235. package/dist/cli/components/TextInput.js.map +1 -0
  236. package/dist/cli/components/TitledBox.d.ts +27 -0
  237. package/dist/cli/components/TitledBox.d.ts.map +1 -0
  238. package/dist/cli/components/TitledBox.js +111 -0
  239. package/dist/cli/components/TitledBox.js.map +1 -0
  240. package/dist/cli/hooks/useDevices.d.ts +23 -0
  241. package/dist/cli/hooks/useDevices.d.ts.map +1 -0
  242. package/dist/cli/hooks/useDevices.js +19 -0
  243. package/dist/cli/hooks/useDevices.js.map +1 -0
  244. package/dist/cli/lib/RenderAndExit.d.ts +6 -0
  245. package/dist/cli/lib/RenderAndExit.d.ts.map +1 -0
  246. package/dist/cli/lib/RenderAndExit.js +8 -0
  247. package/dist/cli/lib/RenderAndExit.js.map +1 -0
  248. package/dist/cli/lib/Spinner.d.ts +11 -0
  249. package/dist/cli/lib/Spinner.d.ts.map +1 -0
  250. package/dist/cli/lib/Spinner.js +22 -0
  251. package/dist/cli/lib/Spinner.js.map +1 -0
  252. package/dist/cli/lib/agent.d.ts +38 -0
  253. package/dist/cli/lib/agent.d.ts.map +1 -0
  254. package/dist/cli/lib/agent.js +87 -0
  255. package/dist/cli/lib/agent.js.map +1 -0
  256. package/dist/cli/lib/boards.d.ts +23 -0
  257. package/dist/cli/lib/boards.d.ts.map +1 -0
  258. package/dist/cli/lib/boards.js +67 -0
  259. package/dist/cli/lib/boards.js.map +1 -0
  260. package/dist/cli/lib/build.d.ts +47 -0
  261. package/dist/cli/lib/build.d.ts.map +1 -0
  262. package/dist/cli/lib/build.js +533 -0
  263. package/dist/cli/lib/build.js.map +1 -0
  264. package/dist/cli/lib/connectSim.d.ts +21 -0
  265. package/dist/cli/lib/connectSim.d.ts.map +1 -0
  266. package/dist/cli/lib/connectSim.js +20 -0
  267. package/dist/cli/lib/connectSim.js.map +1 -0
  268. package/dist/cli/lib/deploy.d.ts +42 -0
  269. package/dist/cli/lib/deploy.d.ts.map +1 -0
  270. package/dist/cli/lib/deploy.js +121 -0
  271. package/dist/cli/lib/deploy.js.map +1 -0
  272. package/dist/cli/lib/deployProgress.d.ts +8 -0
  273. package/dist/cli/lib/deployProgress.d.ts.map +1 -0
  274. package/dist/cli/lib/deployProgress.js +32 -0
  275. package/dist/cli/lib/deployProgress.js.map +1 -0
  276. package/dist/cli/lib/dotenv.d.ts +16 -0
  277. package/dist/cli/lib/dotenv.d.ts.map +1 -0
  278. package/dist/cli/lib/dotenv.js +33 -0
  279. package/dist/cli/lib/dotenv.js.map +1 -0
  280. package/dist/cli/lib/esbuild.d.ts +7 -0
  281. package/dist/cli/lib/esbuild.d.ts.map +1 -0
  282. package/dist/cli/lib/esbuild.js +15 -0
  283. package/dist/cli/lib/esbuild.js.map +1 -0
  284. package/dist/cli/lib/esptool.d.ts +41 -0
  285. package/dist/cli/lib/esptool.d.ts.map +1 -0
  286. package/dist/cli/lib/esptool.js +43 -0
  287. package/dist/cli/lib/esptool.js.map +1 -0
  288. package/dist/cli/lib/firmware.d.ts +24 -0
  289. package/dist/cli/lib/firmware.d.ts.map +1 -0
  290. package/dist/cli/lib/firmware.js +379 -0
  291. package/dist/cli/lib/firmware.js.map +1 -0
  292. package/dist/cli/lib/firmwareCompat.d.ts +19 -0
  293. package/dist/cli/lib/firmwareCompat.d.ts.map +1 -0
  294. package/dist/cli/lib/firmwareCompat.js +31 -0
  295. package/dist/cli/lib/firmwareCompat.js.map +1 -0
  296. package/dist/cli/lib/heapBaseline.d.ts +15 -0
  297. package/dist/cli/lib/heapBaseline.d.ts.map +1 -0
  298. package/dist/cli/lib/heapBaseline.js +39 -0
  299. package/dist/cli/lib/heapBaseline.js.map +1 -0
  300. package/dist/cli/lib/ink-table/index.d.ts +88 -0
  301. package/dist/cli/lib/ink-table/index.d.ts.map +1 -0
  302. package/dist/cli/lib/ink-table/index.js +217 -0
  303. package/dist/cli/lib/ink-table/index.js.map +1 -0
  304. package/dist/cli/lib/loadMikroConfig.d.ts +7 -0
  305. package/dist/cli/lib/loadMikroConfig.d.ts.map +1 -0
  306. package/dist/cli/lib/loadMikroConfig.js +26 -0
  307. package/dist/cli/lib/loadMikroConfig.js.map +1 -0
  308. package/dist/cli/lib/minify.d.ts +3 -0
  309. package/dist/cli/lib/minify.d.ts.map +1 -0
  310. package/dist/cli/lib/minify.js +89 -0
  311. package/dist/cli/lib/minify.js.map +1 -0
  312. package/dist/cli/lib/openSim.d.ts +29 -0
  313. package/dist/cli/lib/openSim.d.ts.map +1 -0
  314. package/dist/cli/lib/openSim.js +32 -0
  315. package/dist/cli/lib/openSim.js.map +1 -0
  316. package/dist/cli/lib/ospawn.d.ts +34 -0
  317. package/dist/cli/lib/ospawn.d.ts.map +1 -0
  318. package/dist/cli/lib/ospawn.js +90 -0
  319. package/dist/cli/lib/ospawn.js.map +1 -0
  320. package/dist/cli/lib/parseMinifier.d.ts +10 -0
  321. package/dist/cli/lib/parseMinifier.d.ts.map +1 -0
  322. package/dist/cli/lib/parseMinifier.js +49 -0
  323. package/dist/cli/lib/parseMinifier.js.map +1 -0
  324. package/dist/cli/lib/parseSize.d.ts +6 -0
  325. package/dist/cli/lib/parseSize.d.ts.map +1 -0
  326. package/dist/cli/lib/parseSize.js +25 -0
  327. package/dist/cli/lib/parseSize.js.map +1 -0
  328. package/dist/cli/lib/projectRoot.d.ts +11 -0
  329. package/dist/cli/lib/projectRoot.d.ts.map +1 -0
  330. package/dist/cli/lib/projectRoot.js +28 -0
  331. package/dist/cli/lib/projectRoot.js.map +1 -0
  332. package/dist/cli/lib/protocol.d.ts +144 -0
  333. package/dist/cli/lib/protocol.d.ts.map +1 -0
  334. package/dist/cli/lib/protocol.js +385 -0
  335. package/dist/cli/lib/protocol.js.map +1 -0
  336. package/dist/cli/lib/recover.d.ts +25 -0
  337. package/dist/cli/lib/recover.d.ts.map +1 -0
  338. package/dist/cli/lib/recover.js +144 -0
  339. package/dist/cli/lib/recover.js.map +1 -0
  340. package/dist/cli/lib/resolveEntry.d.ts +7 -0
  341. package/dist/cli/lib/resolveEntry.d.ts.map +1 -0
  342. package/dist/cli/lib/resolveEntry.js +30 -0
  343. package/dist/cli/lib/resolveEntry.js.map +1 -0
  344. package/dist/cli/lib/runHooks.d.ts +34 -0
  345. package/dist/cli/lib/runHooks.d.ts.map +1 -0
  346. package/dist/cli/lib/runHooks.js +90 -0
  347. package/dist/cli/lib/runHooks.js.map +1 -0
  348. package/dist/cli/lib/serial/InkReplConsole.d.ts +27 -0
  349. package/dist/cli/lib/serial/InkReplConsole.d.ts.map +1 -0
  350. package/dist/cli/lib/serial/InkReplConsole.js +24 -0
  351. package/dist/cli/lib/serial/InkReplConsole.js.map +1 -0
  352. package/dist/cli/lib/serial/InkReplMode.d.ts +38 -0
  353. package/dist/cli/lib/serial/InkReplMode.d.ts.map +1 -0
  354. package/dist/cli/lib/serial/InkReplMode.js +90 -0
  355. package/dist/cli/lib/serial/InkReplMode.js.map +1 -0
  356. package/dist/cli/lib/serial/ReplConsole.d.ts +21 -0
  357. package/dist/cli/lib/serial/ReplConsole.d.ts.map +1 -0
  358. package/dist/cli/lib/serial/ReplConsole.js +249 -0
  359. package/dist/cli/lib/serial/ReplConsole.js.map +1 -0
  360. package/dist/cli/lib/serial/devSession.d.ts +53 -0
  361. package/dist/cli/lib/serial/devSession.d.ts.map +1 -0
  362. package/dist/cli/lib/serial/devSession.js +160 -0
  363. package/dist/cli/lib/serial/devSession.js.map +1 -0
  364. package/dist/cli/lib/serial/dispatchReplCommand.d.ts +25 -0
  365. package/dist/cli/lib/serial/dispatchReplCommand.d.ts.map +1 -0
  366. package/dist/cli/lib/serial/dispatchReplCommand.js +27 -0
  367. package/dist/cli/lib/serial/dispatchReplCommand.js.map +1 -0
  368. package/dist/cli/lib/serial/openSession.d.ts +28 -0
  369. package/dist/cli/lib/serial/openSession.d.ts.map +1 -0
  370. package/dist/cli/lib/serial/openSession.js +48 -0
  371. package/dist/cli/lib/serial/openSession.js.map +1 -0
  372. package/dist/cli/lib/serial/replStateMachine.d.ts +169 -0
  373. package/dist/cli/lib/serial/replStateMachine.d.ts.map +1 -0
  374. package/dist/cli/lib/serial/replStateMachine.js +650 -0
  375. package/dist/cli/lib/serial/replStateMachine.js.map +1 -0
  376. package/dist/cli/lib/serial/runAgentRepl.d.ts +33 -0
  377. package/dist/cli/lib/serial/runAgentRepl.d.ts.map +1 -0
  378. package/dist/cli/lib/serial/runAgentRepl.js +80 -0
  379. package/dist/cli/lib/serial/runAgentRepl.js.map +1 -0
  380. package/dist/cli/lib/session.d.ts +163 -0
  381. package/dist/cli/lib/session.d.ts.map +1 -0
  382. package/dist/cli/lib/session.js +490 -0
  383. package/dist/cli/lib/session.js.map +1 -0
  384. package/dist/cli/lib/simConfig.d.ts +15 -0
  385. package/dist/cli/lib/simConfig.d.ts.map +1 -0
  386. package/dist/cli/lib/simConfig.js +25 -0
  387. package/dist/cli/lib/simConfig.js.map +1 -0
  388. package/dist/cli/lib/simPid.d.ts +30 -0
  389. package/dist/cli/lib/simPid.d.ts.map +1 -0
  390. package/dist/cli/lib/simPid.js +112 -0
  391. package/dist/cli/lib/simPid.js.map +1 -0
  392. package/dist/cli/lib/simTransport.d.ts +17 -0
  393. package/dist/cli/lib/simTransport.d.ts.map +1 -0
  394. package/dist/cli/lib/simTransport.js +80 -0
  395. package/dist/cli/lib/simTransport.js.map +1 -0
  396. package/dist/cli/lib/testRunner.d.ts +86 -0
  397. package/dist/cli/lib/testRunner.d.ts.map +1 -0
  398. package/dist/cli/lib/testRunner.js +469 -0
  399. package/dist/cli/lib/testRunner.js.map +1 -0
  400. package/dist/cli/lib/transport.d.ts +34 -0
  401. package/dist/cli/lib/transport.d.ts.map +1 -0
  402. package/dist/cli/lib/transport.js +117 -0
  403. package/dist/cli/lib/transport.js.map +1 -0
  404. package/dist/cli/lib/useObservable.d.ts +4 -0
  405. package/dist/cli/lib/useObservable.d.ts.map +1 -0
  406. package/dist/cli/lib/useObservable.js +22 -0
  407. package/dist/cli/lib/useObservable.js.map +1 -0
  408. package/dist/cli/lib/watcher.d.ts +10 -0
  409. package/dist/cli/lib/watcher.d.ts.map +1 -0
  410. package/dist/cli/lib/watcher.js +34 -0
  411. package/dist/cli/lib/watcher.js.map +1 -0
  412. package/dist/constants.d.ts +13 -0
  413. package/dist/constants.d.ts.map +1 -0
  414. package/dist/constants.js +27 -0
  415. package/dist/constants.js.map +1 -0
  416. package/dist/simulator/builtins/ble.d.ts +3 -0
  417. package/dist/simulator/builtins/ble.d.ts.map +1 -0
  418. package/dist/simulator/builtins/ble.js +45 -0
  419. package/dist/simulator/builtins/ble.js.map +1 -0
  420. package/dist/simulator/builtins/console.d.ts +8 -0
  421. package/dist/simulator/builtins/console.d.ts.map +1 -0
  422. package/dist/simulator/builtins/console.js +24 -0
  423. package/dist/simulator/builtins/console.js.map +1 -0
  424. package/dist/simulator/builtins/http.d.ts +3 -0
  425. package/dist/simulator/builtins/http.d.ts.map +1 -0
  426. package/dist/simulator/builtins/http.js +32 -0
  427. package/dist/simulator/builtins/http.js.map +1 -0
  428. package/dist/simulator/builtins/i2c.d.ts +3 -0
  429. package/dist/simulator/builtins/i2c.d.ts.map +1 -0
  430. package/dist/simulator/builtins/i2c.js +16 -0
  431. package/dist/simulator/builtins/i2c.js.map +1 -0
  432. package/dist/simulator/builtins/index.d.ts +7 -0
  433. package/dist/simulator/builtins/index.d.ts.map +1 -0
  434. package/dist/simulator/builtins/index.js +49 -0
  435. package/dist/simulator/builtins/index.js.map +1 -0
  436. package/dist/simulator/builtins/kv.d.ts +3 -0
  437. package/dist/simulator/builtins/kv.d.ts.map +1 -0
  438. package/dist/simulator/builtins/kv.js +38 -0
  439. package/dist/simulator/builtins/kv.js.map +1 -0
  440. package/dist/simulator/builtins/neopixel.d.ts +3 -0
  441. package/dist/simulator/builtins/neopixel.d.ts.map +1 -0
  442. package/dist/simulator/builtins/neopixel.js +13 -0
  443. package/dist/simulator/builtins/neopixel.js.map +1 -0
  444. package/dist/simulator/builtins/nvs-kv.d.ts +3 -0
  445. package/dist/simulator/builtins/nvs-kv.d.ts.map +1 -0
  446. package/dist/simulator/builtins/nvs-kv.js +34 -0
  447. package/dist/simulator/builtins/nvs-kv.js.map +1 -0
  448. package/dist/simulator/builtins/pin.d.ts +3 -0
  449. package/dist/simulator/builtins/pin.d.ts.map +1 -0
  450. package/dist/simulator/builtins/pin.js +31 -0
  451. package/dist/simulator/builtins/pin.js.map +1 -0
  452. package/dist/simulator/builtins/pwm.d.ts +3 -0
  453. package/dist/simulator/builtins/pwm.d.ts.map +1 -0
  454. package/dist/simulator/builtins/pwm.js +29 -0
  455. package/dist/simulator/builtins/pwm.js.map +1 -0
  456. package/dist/simulator/builtins/sleep.d.ts +3 -0
  457. package/dist/simulator/builtins/sleep.d.ts.map +1 -0
  458. package/dist/simulator/builtins/sleep.js +32 -0
  459. package/dist/simulator/builtins/sleep.js.map +1 -0
  460. package/dist/simulator/builtins/sntp.d.ts +3 -0
  461. package/dist/simulator/builtins/sntp.d.ts.map +1 -0
  462. package/dist/simulator/builtins/sntp.js +12 -0
  463. package/dist/simulator/builtins/sntp.js.map +1 -0
  464. package/dist/simulator/builtins/spi.d.ts +3 -0
  465. package/dist/simulator/builtins/spi.d.ts.map +1 -0
  466. package/dist/simulator/builtins/spi.js +15 -0
  467. package/dist/simulator/builtins/spi.js.map +1 -0
  468. package/dist/simulator/builtins/types.d.ts +24 -0
  469. package/dist/simulator/builtins/types.d.ts.map +1 -0
  470. package/dist/simulator/builtins/types.js +2 -0
  471. package/dist/simulator/builtins/types.js.map +1 -0
  472. package/dist/simulator/builtins/uart.d.ts +3 -0
  473. package/dist/simulator/builtins/uart.d.ts.map +1 -0
  474. package/dist/simulator/builtins/uart.js +20 -0
  475. package/dist/simulator/builtins/uart.js.map +1 -0
  476. package/dist/simulator/builtins/wifi.d.ts +3 -0
  477. package/dist/simulator/builtins/wifi.d.ts.map +1 -0
  478. package/dist/simulator/builtins/wifi.js +54 -0
  479. package/dist/simulator/builtins/wifi.js.map +1 -0
  480. package/dist/simulator/devRunner.d.ts +41 -0
  481. package/dist/simulator/devRunner.d.ts.map +1 -0
  482. package/dist/simulator/devRunner.js +140 -0
  483. package/dist/simulator/devRunner.js.map +1 -0
  484. package/dist/simulator/loadSimStubs.d.ts +15 -0
  485. package/dist/simulator/loadSimStubs.d.ts.map +1 -0
  486. package/dist/simulator/loadSimStubs.js +54 -0
  487. package/dist/simulator/loadSimStubs.js.map +1 -0
  488. package/dist/simulator/simProcess.d.ts +11 -0
  489. package/dist/simulator/simProcess.d.ts.map +1 -0
  490. package/dist/simulator/simProcess.js +963 -0
  491. package/dist/simulator/simProcess.js.map +1 -0
  492. package/dist/simulator/simTemplates.d.ts +6 -0
  493. package/dist/simulator/simTemplates.d.ts.map +1 -0
  494. package/dist/simulator/simTemplates.js +21 -0
  495. package/dist/simulator/simTemplates.js.map +1 -0
  496. package/package.json +123 -2
  497. package/runtime.d.ts +95 -0
@@ -0,0 +1,249 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import spinners from 'cli-spinners';
3
+ import { Box, Static, Text, useInput } from 'ink';
4
+ import React, { useCallback, useEffect, useState } from 'react';
5
+ import { whichPMRuns } from 'which-pm-runs';
6
+ import { EnvEditor } from '../../components/EnvEditor.js';
7
+ import { BorderFill, TitledBox } from '../../components/TitledBox.js';
8
+ import { logLevelAllows } from '../parseMinifier.js';
9
+ import { Spinner } from '../Spinner.js';
10
+ import { useObservable } from '../useObservable.js';
11
+ import { createInitialState, MULTILINE_HINT, WELCOME_HINT, } from './replStateMachine.js';
12
+ // ── Event rendering ────────────────────────────────────────
13
+ function testEventColor(e, data) {
14
+ switch (e) {
15
+ case 2:
16
+ return 'green';
17
+ case 3:
18
+ case 7:
19
+ return 'red';
20
+ case 4:
21
+ return 'yellow';
22
+ case 6:
23
+ return data.f > 0 ? 'red' : 'green';
24
+ case 8:
25
+ return 'gray';
26
+ default:
27
+ return undefined;
28
+ }
29
+ }
30
+ const deviceIdSpinner = {
31
+ interval: 150,
32
+ frames: [
33
+ ' ∙∙∙●∙∙∙∙∙∙ ',
34
+ ' ∙∙∙∙●∙∙∙∙∙ ',
35
+ ' ∙∙∙∙∙●∙∙∙∙ ',
36
+ ' ∙∙∙∙∙∙●∙∙∙ ',
37
+ ' ∙∙∙∙∙●∙∙∙∙ ',
38
+ ' ∙∙∙∙●∙∙∙∙∙ ',
39
+ ' ∙∙∙●∙∙∙∙∙∙ ',
40
+ ],
41
+ };
42
+ function eventColor(event) {
43
+ switch (event.type) {
44
+ case 'error':
45
+ case 'eval_error':
46
+ case 'disconnect':
47
+ return 'red';
48
+ case 'warn':
49
+ return 'yellow';
50
+ case 'info':
51
+ return 'cyan';
52
+ case 'input':
53
+ return 'blue';
54
+ case 'result':
55
+ return 'green';
56
+ case 'connecting':
57
+ case 'restarting':
58
+ return 'yellow';
59
+ case 'ready':
60
+ return 'green';
61
+ case 'test':
62
+ return testEventColor(event.data.e, event.data);
63
+ default:
64
+ return undefined;
65
+ }
66
+ }
67
+ function testEventText(data) {
68
+ switch (data.e) {
69
+ case 1: // suite_start
70
+ return String(data.s);
71
+ case 2: // test_pass
72
+ return ` ✓ ${data.t} (${data.d}ms)`;
73
+ case 3: // test_fail
74
+ return ` ✗ ${data.t} (${data.d}ms)\n ${data.m}`;
75
+ case 4: // test_skip
76
+ return ` - ${data.t}`;
77
+ case 6: {
78
+ // run_done
79
+ const parts = [];
80
+ if (data.p > 0)
81
+ parts.push(`${data.p} passed`);
82
+ if (data.f > 0)
83
+ parts.push(`${data.f} failed`);
84
+ if (data.k > 0)
85
+ parts.push(`${data.k} skipped`);
86
+ return `${parts.join(', ')} (${data.d}ms)`;
87
+ }
88
+ case 7: // beforeAll error
89
+ return ` ✗ beforeAll: ${data.m}`;
90
+ case 8: {
91
+ // heap
92
+ const used = (data.u / 1024) | 0;
93
+ const total = (data.t / 1024) | 0;
94
+ const parts = [`heap: ${used}/${total}KB, free: ${total - used}KB`];
95
+ if (typeof data.f === 'number') {
96
+ parts.push(`sysFree: ${(data.f / 1024) | 0}KB`);
97
+ }
98
+ if (typeof data.mf === 'number') {
99
+ parts.push(`sysMinFree: ${(data.mf / 1024) | 0}KB`);
100
+ }
101
+ return `[${parts.join(', ')}]`;
102
+ }
103
+ default:
104
+ return '';
105
+ }
106
+ }
107
+ function eventText(event) {
108
+ switch (event.type) {
109
+ case 'connecting':
110
+ return event.port ? `Connecting to ${event.port}…` : 'Connecting…';
111
+ case 'restarting':
112
+ return 'Restarting…';
113
+ case 'ready': {
114
+ const name = event.id ?? event.chip ?? 'device';
115
+ const chip = event.id && event.chip ? ` (${event.chip})` : '';
116
+ const version = event.version ? ` Mikro.js v${event.version}` : '';
117
+ return `Connected to ${name}${chip}${version}`;
118
+ }
119
+ case 'input':
120
+ return event.code;
121
+ case 'raw':
122
+ return event.text;
123
+ case 'completions':
124
+ return event.result?.items.join(' ') ?? '';
125
+ case 'disconnect':
126
+ return event.error ?? 'Disconnected';
127
+ case 'log':
128
+ case 'warn':
129
+ case 'error':
130
+ case 'info':
131
+ case 'debug':
132
+ case 'result':
133
+ case 'eval_error':
134
+ return event.text;
135
+ case 'test':
136
+ return testEventText(event.data);
137
+ default:
138
+ return '';
139
+ }
140
+ }
141
+ function shouldRender(event, logLevel) {
142
+ switch (event.type) {
143
+ case 'connecting':
144
+ case 'restarting':
145
+ case 'prompt':
146
+ case 'ok':
147
+ case 'err':
148
+ case 'checksum_result':
149
+ case 'config_entries':
150
+ return false;
151
+ case 'disconnect':
152
+ return Boolean(event.error);
153
+ case 'completions':
154
+ return (event.result?.items.length ?? 0) > 1;
155
+ case 'raw':
156
+ return event.text.trim().length > 0;
157
+ case 'test':
158
+ return event.data.e !== 5; // skip suite_end
159
+ case 'log':
160
+ case 'warn':
161
+ case 'error':
162
+ case 'info':
163
+ case 'debug':
164
+ return logLevelAllows(logLevel, event.type);
165
+ default:
166
+ return true;
167
+ }
168
+ }
169
+ function getPackageRunner() {
170
+ const pm = whichPMRuns();
171
+ return pm?.name === 'pnpm'
172
+ ? 'pnpm mikro'
173
+ : pm?.name === 'yarn'
174
+ ? 'yarn mikro'
175
+ : pm?.name === 'bun'
176
+ ? 'bunx mikro'
177
+ : 'npx mikro';
178
+ }
179
+ const INITIAL_STATE = createInitialState();
180
+ // ── Component ──────────────────────────────────────────────
181
+ export function ReplConsole({ repl, config, logLevel = 'debug', watch }) {
182
+ const state = useObservable(repl.state$, INITIAL_STATE);
183
+ const handleCloseOverlay = useCallback(() => repl.closeOverlay(), [repl]);
184
+ useInput((ch, key) => {
185
+ if (!state.overlay)
186
+ repl.keyInput(ch, key);
187
+ });
188
+ // Eval spinner (shown after 500ms of waiting for result)
189
+ const [showEvalSpinner, setShowEvalSpinner] = useState(false);
190
+ useEffect(() => {
191
+ if (!state.evaluating)
192
+ return;
193
+ const timer = setTimeout(() => setShowEvalSpinner(true), 500);
194
+ return () => {
195
+ clearTimeout(timer);
196
+ setShowEvalSpinner(false);
197
+ };
198
+ }, [state.evaluating]);
199
+ // ── Derived render state ───────────────────────────────────
200
+ const conn = state.connection;
201
+ if (conn.type === 'fallback') {
202
+ return (_jsx(Text, { color: "yellow", children: "Device does not support protocol REPL mode. Use `mikro console --raw` for legacy mode." }));
203
+ }
204
+ if (state.overlay === 'env' && config) {
205
+ return _jsx(EnvEditor, { config: config, onClose: handleCloseOverlay });
206
+ }
207
+ const isConnecting = conn.type === 'connecting' || conn.type === 'negotiating';
208
+ const isError = conn.type === 'error';
209
+ // One footer line drives both progress and watch-mode messaging so the
210
+ // REPL has a single "what's the dev loop doing right now" signal.
211
+ // Priority: active work outranks sticky errors outranks watch-mode
212
+ // idle copy. A sticky error stays pinned until the next cycle starts.
213
+ const footer = isConnecting
214
+ ? {
215
+ message: conn.message ?? (state.port ? `Connecting to ${state.port}…` : 'Connecting…'),
216
+ tone: 'busy',
217
+ }
218
+ : state.disabled
219
+ ? { message: state.deployStatus ?? 'Deploying…', tone: 'busy' }
220
+ : state.footerError
221
+ ? { message: state.footerError, tone: 'error' }
222
+ : watch === true
223
+ ? { message: 'Watching for file changes…', tone: 'watching' }
224
+ : watch === false
225
+ ? { message: 'File watching off. Press Ctrl+S to redeploy', tone: 'idle' }
226
+ : null;
227
+ const renderableEvents = state.events.filter((event) => shouldRender(event, logLevel));
228
+ const prompt = '❯ ';
229
+ return (_jsxs(_Fragment, { children: [_jsx(Static, { items: renderableEvents, children: (event, index) => {
230
+ const text = eventText(event);
231
+ const color = eventColor(event);
232
+ const isDimmed = event.type === 'input' || event.type === 'debug';
233
+ const timing = event.type === 'input' ? event.timing : undefined;
234
+ return (_jsxs(Text, { color: color, dimColor: isDimmed, children: [timing ? `${timing} ` : '', text] }, index));
235
+ } }), state.showTroubleshooting && (_jsxs(Text, { color: isError ? 'red' : undefined, dimColor: !isError, children: ['\n Troubleshooting:\n\n', ' • Check that the device is connected and the correct port is selected\n', ' • Try power-cycling the device\n', ' • Check that no other program is using the serial port\n', ' • Check that the firmware is compatible. Run ', _jsxs(Text, { underline: true, children: [getPackageRunner(), " flash"] }), ' to update.\n'] })), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [footer && (_jsxs(Text, { color: footer.tone === 'busy' ? 'magenta' : footer.tone === 'error' ? 'red' : 'gray', dimColor: footer.tone === 'idle' || footer.tone === 'watching', children: [footer.tone === 'busy' ? (_jsxs(_Fragment, { children: [_jsx(Spinner, { spinner: spinners.dots }), ' '] })) : footer.tone === 'error' ? ('✗ ') : footer.tone === 'watching' ? (_jsx(Text, { color: "green", children: "\u25CF " })) : (''), footer.message] })), _jsxs(TitledBox, { header: _jsx(BorderFill, { char: "\u2500", color: isError || isConnecting ? 'gray' : state.disabled ? 'yellow' : 'blue', dimColor: isConnecting || isError, justifyContent: "end", children: _jsxs(Box, { gap: 1, marginX: 1, children: [_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: '⌬ ' }), _jsx(Text, { dimColor: true, children: "Mikro." }), _jsx(Text, { bold: true, color: "yellow", dimColor: true, children: "js" })] }), conn.type === 'ready' && conn.deviceId ? (_jsx(Text, { color: "black", backgroundColor: conn.chip === 'simulator' ? 'magenta' : 'blue', children: ` ${conn.deviceId} ` })) : (_jsx(Text, { color: "grey", children: _jsx(Spinner, { spinner: deviceIdSpinner }) }))] }) }), borderStyle: "single", borderLeft: false, borderRight: false, borderColor: isError || isConnecting ? 'gray' : state.disabled ? 'yellow' : 'blue', borderDimColor: isConnecting || isError, paddingLeft: 1, children: [_jsx(Text, { color: isConnecting || isError ? 'gray' : 'blue', dimColor: isConnecting || isError, children: showEvalSpinner ? (_jsxs(_Fragment, { children: [_jsx(Spinner, { spinner: spinners.dots }), ' '] })) : (prompt) }), state.input === '' ? (_jsxs(Text, { dimColor: isConnecting || isError, children: [_jsx(Text, { inverse: true, color: isConnecting || isError ? 'gray' : undefined, children: ' ' }), showEvalSpinner && _jsx(Text, { dimColor: true, children: " Evaluating\u2026" })] })) : (_jsxs(Text, { color: isConnecting || isError ? 'gray' : undefined, children: [state.input.slice(0, state.cursor), _jsx(Text, { inverse: true, color: isConnecting || isError ? 'gray' : undefined, children: state.cursor >= state.input.length
236
+ ? ' '
237
+ : state.input[state.cursor] === '\n'
238
+ ? ' '
239
+ : state.input[state.cursor] }), state.cursor < state.input.length
240
+ ? (state.input[state.cursor] === '\n' ? '\n' : '') +
241
+ state.input.slice(state.cursor + 1)
242
+ : ''] }))] }), _jsx(Text, { dimColor: true, children: isConnecting || isError
243
+ ? 'Ctrl+D to exit'
244
+ : (state.overrideHint ??
245
+ (state.input.includes('\n') ? MULTILINE_HINT : null) ??
246
+ (state.showWelcome ? WELCOME_HINT : state.contextHint) ??
247
+ ' ') })] })] }));
248
+ }
249
+ //# sourceMappingURL=ReplConsole.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplConsole.js","sourceRoot":"","sources":["../../../../src/cli/lib/serial/ReplConsole.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { type Observable } from 'rxjs';
2
+ import type { LogLevel, Minifier, MinifyLevel } from '../../../_exports/index.js';
3
+ import type { DeployEvent, ReplSession } from '../session.js';
4
+ import type { ReplHandle } from './replStateMachine.js';
5
+ export type DevStatus = {
6
+ type: 'building';
7
+ } | {
8
+ type: 'rebuilding';
9
+ } | {
10
+ type: 'checking';
11
+ command: string;
12
+ } | {
13
+ type: 'deploying';
14
+ event: DeployEvent;
15
+ } | {
16
+ type: 'watching';
17
+ } | {
18
+ type: 'error';
19
+ message: string;
20
+ };
21
+ export interface DevSessionState {
22
+ status: DevStatus;
23
+ }
24
+ export interface DevSessionHandle {
25
+ state$: Observable<DevSessionState>;
26
+ close(): void;
27
+ }
28
+ export declare function createDevSession(options: {
29
+ session: ReplSession;
30
+ entry: string;
31
+ forceDeploy: boolean;
32
+ minify: boolean;
33
+ bytecode: boolean;
34
+ watch: boolean;
35
+ /** Skip package.json `mikrojs.predeploy` hooks. */
36
+ noHooks?: boolean;
37
+ /** REPL handle for the Ink-mode UI. Omit in agent mode. When present, the
38
+ * dev session drives the status line, disables the prompt during deploy,
39
+ * and subscribes to `repl.deploys$` for Ctrl+S triggers. */
40
+ repl?: ReplHandle;
41
+ /** Extra deploy trigger source (e.g. an agent-mode stdin 'deploy' command).
42
+ * Merged with `repl?.deploys$` if both are present. */
43
+ externalDeploys$?: Observable<{
44
+ force: boolean;
45
+ }>;
46
+ minifier?: Minifier;
47
+ minifyLevel?: MinifyLevel;
48
+ logLevel?: LogLevel;
49
+ envFile?: string;
50
+ secretsFile?: string;
51
+ noEnvFile?: boolean;
52
+ }): DevSessionHandle;
53
+ //# sourceMappingURL=devSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devSession.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/serial/devSession.ts"],"names":[],"mappings":"AAEA,OAAO,EAQL,KAAK,UAAU,EAShB,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAC,MAAM,4BAA4B,CAAA;AAM/E,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,eAAe,CAAA;AAE3D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAIrD,MAAM,MAAM,SAAS,GACjB;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,GAClB;IAAC,IAAI,EAAE,YAAY,CAAA;CAAC,GACpB;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GACnC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAC,GACvC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,GAClB;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAA;AAEpC,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC,CAAA;IACnC,KAAK,IAAI,IAAI,CAAA;CACd;AASD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;iEAE6D;IAC7D,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB;4DACwD;IACxD,gBAAgB,CAAC,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAC,CAAC,CAAA;IAC/C,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,GAAG,gBAAgB,CA+MnB"}
@@ -0,0 +1,160 @@
1
+ import * as pathlib from 'node:path';
2
+ import { catchError, concat, defer, EMPTY, ignoreElements, map, merge, of, shareReplay, startWith, Subject, switchMap, tap, throttle, timer, } from 'rxjs';
3
+ import { exhaustMapWithTrailing } from 'rxjs-exhaustmap-with-trailing';
4
+ import { build } from '../build.js';
5
+ import { collectFiles, loadEnvFiles, validateNvsKeys } from '../deploy.js';
6
+ import { formatDeployEvent } from '../deployProgress.js';
7
+ import { getMikroDir, resolveProjectRoot } from '../projectRoot.js';
8
+ import { getPredeployCommands, runHooks } from '../runHooks.js';
9
+ import { createWatcher } from '../watcher.js';
10
+ // ── Factory ────────────────────────────────────────────────
11
+ export function createDevSession(options) {
12
+ const { session, repl, externalDeploys$, entry, forceDeploy, minify, bytecode, watch, noHooks, minifier, minifyLevel, logLevel, envFile, secretsFile, noEnvFile, } = options;
13
+ const buildDir = pathlib.join(getMikroDir(), 'build');
14
+ const watchDir = process.cwd();
15
+ const projectRoot = resolveProjectRoot();
16
+ const watcher = watch ? createWatcher(watchDir) : null;
17
+ // Pre-deploy hooks gate each deploy. A trigger fires `hookStage$`, which
18
+ // runs `mikrojs.predeploy` commands from package.json; on success it feeds
19
+ // `deployNow$`, which is serialized by `exhaustMapWithTrailing` into the
20
+ // real build+upload. `switchMap` on the hook stream means a fresh save
21
+ // during a running `tsc`/`eslint` aborts the in-flight hook and restarts.
22
+ // Build+upload itself is not cancelable — aborting a partial flash would
23
+ // leave the device in an inconsistent state.
24
+ const deployNow$ = new Subject();
25
+ function hookStage$(trigger) {
26
+ // Re-read package.json per trigger so edits to `mikrojs.predeploy` are
27
+ // picked up without restarting the dev session.
28
+ let commands;
29
+ try {
30
+ commands = noHooks ? [] : getPredeployCommands(projectRoot);
31
+ }
32
+ catch (err) {
33
+ const message = err instanceof Error ? err.message : String(err);
34
+ repl?.setError(message);
35
+ return of({ status: { type: 'error', message } });
36
+ }
37
+ const advanceToDeploy$ = defer(() => {
38
+ deployNow$.next(trigger);
39
+ return EMPTY;
40
+ });
41
+ const firstCommand = commands[0];
42
+ if (firstCommand === undefined)
43
+ return advanceToDeploy$;
44
+ const decoder = new TextDecoder();
45
+ // Accumulate hook output so a failure can pin it into the footer
46
+ // alongside the summary line. Captured per-run via defer so every
47
+ // subscription gets a fresh buffer.
48
+ return defer(() => {
49
+ let output = '';
50
+ return concat(of({ status: { type: 'checking', command: firstCommand } }), runHooks(commands, projectRoot).pipe(tap((event) => {
51
+ if (event.type === 'start') {
52
+ repl?.setDeployStatus(`Checking: ${event.command}`);
53
+ }
54
+ else if (event.type === 'stdout' || event.type === 'stderr') {
55
+ output += decoder.decode(event.chunk, { stream: true });
56
+ // In agent/no-repl mode, stream chunks to stderr so
57
+ // output is still visible live.
58
+ if (!repl)
59
+ process.stderr.write(event.chunk);
60
+ }
61
+ }), ignoreElements()), advanceToDeploy$).pipe(tap({ subscribe: () => repl?.setDisabled(true) }), catchError((err) => {
62
+ const message = err instanceof Error ? err.message : String(err);
63
+ const trimmed = output.trimEnd();
64
+ const pinned = trimmed.length > 0 ? `${trimmed}\n\n${message}` : message;
65
+ repl?.setFooterError(pinned);
66
+ repl?.setDisabled(false);
67
+ return of({ status: { type: 'error', message } });
68
+ }));
69
+ });
70
+ }
71
+ function buildAndDeploy$(trigger) {
72
+ const buildStatus = trigger.isInitial ? { type: 'building' } : { type: 'rebuilding' };
73
+ return concat(
74
+ // Build phase
75
+ of({ status: buildStatus }), build(entry, buildDir, { minify, bytecode, minifier, minifyLevel, logLevel }).pipe(ignoreElements()),
76
+ // Deploy phase
77
+ defer(async () => {
78
+ const files = await collectFiles(buildDir);
79
+ const envVars = [
80
+ { key: 'MIKRO_ENV', value: 'development', secret: false },
81
+ ...(await loadEnvFiles({
82
+ cwd: projectRoot,
83
+ mode: 'development',
84
+ envFile,
85
+ secretsFile,
86
+ noEnvFile,
87
+ })),
88
+ ];
89
+ validateNvsKeys(envVars);
90
+ return { files, envVars };
91
+ }).pipe(switchMap(({ files, envVars }) => session.deploy({ files, envVars, force: forceDeploy || trigger.force, restart: true }).pipe(
92
+ // Throttle only `checking` events so fast checksum scans don't flicker;
93
+ // other event types pass through instantly via EMPTY.
94
+ throttle((event) => (event.type === 'checking' ? timer(80) : EMPTY), {
95
+ leading: true,
96
+ trailing: true,
97
+ }), tap((event) => {
98
+ if (!repl)
99
+ return;
100
+ const msg = event.type === 'checking'
101
+ ? `Checking [${event.index + 1}/${event.total}] ${event.file}`
102
+ : formatDeployEvent(event);
103
+ if (msg !== null)
104
+ repl.setDeployStatus(msg);
105
+ }), map((event) => ({ status: { type: 'deploying', event } }))))),
106
+ // Done
107
+ of({ status: { type: 'watching' } })).pipe(tap({
108
+ subscribe: () => repl?.setDisabled(true),
109
+ complete: () => repl?.setDisabled(false),
110
+ }), catchError((err) => {
111
+ const message = err instanceof Error ? err.message : String(err);
112
+ repl?.setError(message);
113
+ repl?.setDisabled(false);
114
+ return of({ status: { type: 'error', message } });
115
+ }));
116
+ }
117
+ // External triggers: file changes (if watching) and explicit deploys
118
+ // (Ctrl+S via repl, or agent-mode stdin command).
119
+ const fileTriggers$ = watcher
120
+ ? watcher.changes$.pipe(map(() => ({ force: false, isInitial: false })))
121
+ : EMPTY;
122
+ const deployTriggers$ = repl && externalDeploys$
123
+ ? merge(repl.deploys$, externalDeploys$)
124
+ : (repl?.deploys$ ?? externalDeploys$ ?? EMPTY);
125
+ const explicitTriggers$ = deployTriggers$.pipe(map((t) => ({ force: t.force, isInitial: false })));
126
+ // Initial trigger injected at subscription time. Concat ensures it fires
127
+ // before any external trigger is processed. We also issue a one-shot
128
+ // `session.restart()` here so the device boots fresh and emits MSG_READY
129
+ // — the REPL's `ready` transition would otherwise ride on the deploy
130
+ // path's awaitReady$, leaving the session stuck in 'connecting' (with
131
+ // troubleshooting UI) whenever a hook failure short-circuits the deploy.
132
+ let hasKickedReady = false;
133
+ const initialTrigger$ = defer(() => {
134
+ if (!hasKickedReady) {
135
+ hasKickedReady = true;
136
+ session.restart();
137
+ }
138
+ return of({ force: forceDeploy, isInitial: true });
139
+ });
140
+ const triggers$ = concat(initialTrigger$, merge(fileTriggers$, explicitTriggers$));
141
+ // Hook phase is cancelable via switchMap: a new save mid-`tsc` aborts the
142
+ // in-flight hook run and restarts with the latest files. On success, the
143
+ // trigger is pushed into deployNow$ for the (non-cancelable) build+upload.
144
+ const hookPhase$ = triggers$.pipe(switchMap((trigger) => hookStage$(trigger)));
145
+ // Build+upload phase: exhaust-with-trailing so rapid triggers during a
146
+ // running deploy coalesce into a single trailing rerun.
147
+ const deployPhase$ = deployNow$.pipe(exhaustMapWithTrailing((trigger) => buildAndDeploy$(trigger)));
148
+ // Order matters in the merge: deployPhase$ subscribes to deployNow$ before
149
+ // hookPhase$ starts emitting, so a synchronous `deployNow$.next(...)` from
150
+ // a no-hooks initial trigger isn't dropped.
151
+ const state$ = merge(deployPhase$, hookPhase$).pipe(startWith({ status: { type: 'building' } }), shareReplay({ bufferSize: 1, refCount: true }));
152
+ return {
153
+ state$,
154
+ close() {
155
+ watcher?.close();
156
+ deployNow$.complete();
157
+ },
158
+ };
159
+ }
160
+ //# sourceMappingURL=devSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devSession.js","sourceRoot":"","sources":["../../../../src/cli/lib/serial/devSession.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type ComponentType } from 'react';
2
+ /**
3
+ * Dispatch a REPL-class command (`dev`, `console`, `deploy`) between its
4
+ * agent-mode `run` entry point and its interactive Ink `Component`. Keeps
5
+ * the three `case` blocks in `cli.ts` from each re-deriving the same
6
+ * "is this interactive" check and re-specifying the same render options.
7
+ */
8
+ export declare function dispatchReplCommand<T extends {
9
+ agent?: boolean;
10
+ }>(opts: {
11
+ /** Used only for the TTY-required error message. */
12
+ commandName: 'dev' | 'console' | 'deploy';
13
+ config: T;
14
+ /** Extra forcing conditions for the async path (e.g. deploy's `--json`). */
15
+ nonInteractive?: boolean;
16
+ /** When true, absence of a TTY is an error unless `--agent` is set.
17
+ * `dev` and `console` need this (the Ink UI has no sensible fallback).
18
+ * `deploy` sets it false and silently falls through to `run`. */
19
+ requireTtyForInteractive: boolean;
20
+ Component: ComponentType<{
21
+ args: T;
22
+ }>;
23
+ run: (config: T) => void | Promise<unknown>;
24
+ }): void;
25
+ //# sourceMappingURL=dispatchReplCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatchReplCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/serial/dispatchReplCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,aAAa,EAAgB,MAAM,OAAO,CAAA;AAIvD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAC,EAAE,IAAI,EAAE;IACrE,oDAAoD;IACpD,WAAW,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAA;IACzC,MAAM,EAAE,CAAC,CAAA;IACT,4EAA4E;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;sEAEkE;IAClE,wBAAwB,EAAE,OAAO,CAAA;IACjC,SAAS,EAAE,aAAa,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAC,CAAC,CAAA;IACnC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC5C,GAAG,IAAI,CAqBP"}
@@ -0,0 +1,27 @@
1
+ import { render } from 'ink';
2
+ import { createElement } from 'react';
3
+ import { isAgentMode } from '../agent.js';
4
+ /**
5
+ * Dispatch a REPL-class command (`dev`, `console`, `deploy`) between its
6
+ * agent-mode `run` entry point and its interactive Ink `Component`. Keeps
7
+ * the three `case` blocks in `cli.ts` from each re-deriving the same
8
+ * "is this interactive" check and re-specifying the same render options.
9
+ */
10
+ export function dispatchReplCommand(opts) {
11
+ const isAgent = isAgentMode(opts.config.agent);
12
+ const nonTty = !process.stdin.isTTY;
13
+ if (opts.requireTtyForInteractive && nonTty && !isAgent) {
14
+ // eslint-disable-next-line no-console
15
+ console.error(`Error: mikro ${opts.commandName} requires an interactive terminal (use --agent for NDJSON mode)`);
16
+ process.exit(1);
17
+ }
18
+ if (isAgent || opts.nonInteractive === true || nonTty) {
19
+ void opts.run(opts.config);
20
+ return;
21
+ }
22
+ render(createElement(opts.Component, { args: opts.config }), {
23
+ exitOnCtrlC: false,
24
+ kittyKeyboard: { mode: 'enabled' },
25
+ });
26
+ }
27
+ //# sourceMappingURL=dispatchReplCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatchReplCommand.js","sourceRoot":"","sources":["../../../../src/cli/lib/serial/dispatchReplCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAqB,aAAa,EAAC,MAAM,OAAO,CAAA;AAEvD,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAA;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAA8B,IAYhE;IACC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAA;IAEnC,IAAI,IAAI,CAAC,wBAAwB,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACxD,sCAAsC;QACtC,OAAO,CAAC,KAAK,CACX,gBAAgB,IAAI,CAAC,WAAW,iEAAiE,CAClG,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,MAAM,EAAE,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1B,OAAM;IACR,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE;QACzD,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC;KACjC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { SerialPort } from 'serialport';
2
+ import { type ReplSession } from '../session.js';
3
+ export interface SessionHandles {
4
+ session: ReplSession;
5
+ serial: SerialPort;
6
+ devicePath: string;
7
+ /** Close session + serial. Safe to call more than once. */
8
+ close(): void;
9
+ }
10
+ export interface OpenSessionOptions {
11
+ port?: string;
12
+ /**
13
+ * Safe-mode recovery. Runs `triggerSafeMode` after the session has
14
+ * subscribed — the post-reset MSG_READY needs that eager subscription
15
+ * to be in place.
16
+ */
17
+ recover?: boolean;
18
+ /** Called with the resolved device path before the serial is opened. */
19
+ onConnecting?: (path: string) => void;
20
+ }
21
+ /**
22
+ * Resolve a port, open the serial, and bring up a `ReplSession`. The returned
23
+ * handles close the session and the serial when `close()` is called. The
24
+ * session is created before any optional `triggerSafeMode` call so the
25
+ * eager subscription is listening when the post-reset MSG_READY arrives.
26
+ */
27
+ export declare function openSession(options: OpenSessionOptions): Promise<SessionHandles>;
28
+ //# sourceMappingURL=openSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openSession.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/serial/openSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAA;AAIrC,OAAO,EAAc,KAAK,WAAW,EAAC,MAAM,eAAe,CAAA;AAG3D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,WAAW,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,KAAK,IAAI,IAAI,CAAA;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wEAAwE;IACxE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACtC;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAoCtF"}