mikrojs 0.0.0 → 0.0.8

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 +40 -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 +52 -0
  185. package/dist/cli/commands/sim/dev.d.ts.map +1 -0
  186. package/dist/cli/commands/sim/dev.js +380 -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 +356 -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 +228 -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 +406 -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 +57 -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 +657 -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 +120 -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 +46 -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 +90 -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 +17 -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 +39 -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 +15 -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 +69 -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 +32 -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 +31 -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 +33 -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 +14 -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 +16 -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 +22 -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 +55 -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 +201 -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 +957 -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,406 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { createWriteStream } from 'node:fs';
3
+ import * as fs from 'node:fs/promises';
4
+ import * as os from 'node:os';
5
+ import * as path from 'node:path';
6
+ import { pipeline } from 'node:stream/promises';
7
+ import { promisify } from 'node:util';
8
+ const execFileAsync = promisify(execFile);
9
+ const GITHUB_REPO = 'mikrojs/mikrojs';
10
+ const CACHE_DIR = path.join(os.homedir(), '.cache', 'mikrojs', 'firmware');
11
+ // ── Helpers ──────────────────────────────────────────────────────────────────
12
+ function getAssetName(chip) {
13
+ return `mikrojs-firmware-${chip}.tar.gz`;
14
+ }
15
+ function getBoardAssetName(boardName) {
16
+ return `mikrojs-firmware-${boardName}.tar.gz`;
17
+ }
18
+ /** Returns true if the version string looks like a release tag (starts with "v" followed by a digit). */
19
+ function isReleaseTag(version) {
20
+ return /^v\d/.test(version);
21
+ }
22
+ async function getGitHubToken() {
23
+ // Check environment variable first
24
+ if (process.env.GITHUB_TOKEN) {
25
+ return process.env.GITHUB_TOKEN;
26
+ }
27
+ // Try gh CLI auth
28
+ try {
29
+ const { stdout } = await execFileAsync('gh', ['auth', 'token']);
30
+ const token = stdout.trim();
31
+ if (token)
32
+ return token;
33
+ }
34
+ catch {
35
+ // gh not installed or not authenticated
36
+ }
37
+ return undefined;
38
+ }
39
+ function requireGitHubToken(token) {
40
+ if (!token) {
41
+ throw new Error(`Authentication required to download firmware.\n` +
42
+ `Run \`gh auth login\` or set the GITHUB_TOKEN environment variable.`);
43
+ }
44
+ return token;
45
+ }
46
+ async function downloadUrl(url, destPath) {
47
+ const res = await fetch(url, { redirect: 'follow' });
48
+ if (!res.ok || !res.body) {
49
+ if (res.body)
50
+ await res.text();
51
+ throw new Error(`Failed to download ${url}: ${res.status} ${res.statusText}`);
52
+ }
53
+ await fs.mkdir(path.dirname(destPath), { recursive: true });
54
+ const fileStream = createWriteStream(destPath);
55
+ await pipeline(res.body, fileStream);
56
+ }
57
+ // ── GitHub API ───────────────────────────────────────────────────────────────
58
+ async function resolveRefToSha(token, repo, ref) {
59
+ const res = await fetch(`https://api.github.com/repos/${repo}/commits/${ref}`, {
60
+ headers: {
61
+ Authorization: `Bearer ${token}`,
62
+ Accept: 'application/vnd.github.v3+json',
63
+ },
64
+ });
65
+ if (!res.ok) {
66
+ await res.text();
67
+ if (res.status === 404 || res.status === 422) {
68
+ throw new Error(`Ref '${ref}' not found in ${repo}.`);
69
+ }
70
+ throw new Error(`GitHub API error: ${res.status} ${res.statusText}`);
71
+ }
72
+ const commit = (await res.json());
73
+ return commit.sha;
74
+ }
75
+ async function fetchRelease(token, repo, tag) {
76
+ const url = tag
77
+ ? `https://api.github.com/repos/${repo}/releases/tags/${tag}`
78
+ : `https://api.github.com/repos/${repo}/releases/latest`;
79
+ const res = await fetch(url, {
80
+ headers: {
81
+ Authorization: `Bearer ${token}`,
82
+ Accept: 'application/vnd.github.v3+json',
83
+ },
84
+ });
85
+ if (!res.ok) {
86
+ await res.text();
87
+ if (res.status === 404) {
88
+ throw new Error(tag ? `No release '${tag}' found in ${repo}.` : `No releases found in ${repo}.`);
89
+ }
90
+ throw new Error(`GitHub API error: ${res.status} ${res.statusText}`);
91
+ }
92
+ return (await res.json());
93
+ }
94
+ function selectReleaseAsset(assets, chip, board, repo) {
95
+ // Try board-specific
96
+ if (board) {
97
+ const boardAsset = assets.find((a) => a.name === getBoardAssetName(board));
98
+ if (boardAsset)
99
+ return boardAsset;
100
+ }
101
+ // Try chip-specific
102
+ if (chip) {
103
+ const chipAsset = assets.find((a) => a.name === getAssetName(chip));
104
+ if (chipAsset)
105
+ return chipAsset;
106
+ }
107
+ // Auto: single firmware archive
108
+ const firmwareAssets = assets.filter((a) => a.name.endsWith('.tar.gz') && a.name.includes('firmware'));
109
+ if (firmwareAssets.length === 1)
110
+ return firmwareAssets[0];
111
+ if (firmwareAssets.length === 0) {
112
+ throw new Error(`No firmware assets found in ${repo} release.\n` +
113
+ `Available assets: ${assets.map((a) => a.name).join(', ') || 'none'}`);
114
+ }
115
+ throw new Error(`Multiple firmware assets found in ${repo} release. Use --target or --board to select one:\n` +
116
+ firmwareAssets.map((a) => ` ${a.name}`).join('\n'));
117
+ }
118
+ async function fetchWorkflowArtifacts(token, repo, sha) {
119
+ // Find all successful workflow runs for this SHA (any workflow). Firmware
120
+ // artifacts may come from `firmware.yml` (PR/dispatch builds, tarball pack)
121
+ // or `release.yml` (release commits, unpacked pack) — we accept both.
122
+ const runsUrl = `https://api.github.com/repos/${repo}/actions/runs?head_sha=${sha}&status=success&per_page=100`;
123
+ const runsRes = await fetch(runsUrl, {
124
+ headers: {
125
+ Authorization: `Bearer ${token}`,
126
+ Accept: 'application/vnd.github.v3+json',
127
+ },
128
+ });
129
+ if (!runsRes.ok) {
130
+ await runsRes.text();
131
+ throw new Error(`GitHub API error: ${runsRes.status} ${runsRes.statusText}`);
132
+ }
133
+ const runs = (await runsRes.json());
134
+ if (runs.workflow_runs.length === 0) {
135
+ throw new Error(`No successful workflow runs found for commit ${sha.slice(0, 8)} in ${repo}.\n` +
136
+ `The build may have failed, not been triggered, or the artifact may have expired.`);
137
+ }
138
+ const artifactArrays = await Promise.all(runs.workflow_runs.map(async (run) => {
139
+ const url = `https://api.github.com/repos/${repo}/actions/runs/${run.id}/artifacts`;
140
+ const res = await fetch(url, {
141
+ headers: {
142
+ Authorization: `Bearer ${token}`,
143
+ Accept: 'application/vnd.github.v3+json',
144
+ },
145
+ });
146
+ if (!res.ok) {
147
+ await res.text();
148
+ return [];
149
+ }
150
+ const data = (await res.json());
151
+ return data.artifacts;
152
+ }));
153
+ return artifactArrays.flat();
154
+ }
155
+ // Artifact names produced by firmware-build.yml: `mikrojs-firmware-<x>` (tarball
156
+ // pack, used by firmware.yml) or `firmware-<x>` (unpacked pack, used by
157
+ // release.yml). We accept either.
158
+ function artifactNameCandidates(suffix) {
159
+ return [`mikrojs-firmware-${suffix}`, `firmware-${suffix}`];
160
+ }
161
+ function isFirmwareArtifact(name) {
162
+ return /^(mikrojs-)?firmware(-|$)/.test(name);
163
+ }
164
+ function selectWorkflowArtifact(artifacts, chip, board, repo) {
165
+ // Try board-specific
166
+ if (board) {
167
+ const names = artifactNameCandidates(board);
168
+ const boardArtifact = artifacts.find((a) => names.includes(a.name));
169
+ if (boardArtifact)
170
+ return boardArtifact;
171
+ }
172
+ // Try chip-specific
173
+ if (chip) {
174
+ const names = artifactNameCandidates(chip);
175
+ const chipArtifact = artifacts.find((a) => names.includes(a.name));
176
+ if (chipArtifact)
177
+ return chipArtifact;
178
+ }
179
+ // Auto: single firmware artifact
180
+ const firmwareArtifacts = artifacts.filter((a) => isFirmwareArtifact(a.name));
181
+ if (firmwareArtifacts.length === 1)
182
+ return firmwareArtifacts[0];
183
+ if (firmwareArtifacts.length === 0) {
184
+ throw new Error(`No firmware artifacts found in ${repo} build.\n` +
185
+ `Available artifacts: ${artifacts.map((a) => a.name).join(', ') || 'none'}`);
186
+ }
187
+ throw new Error(`Multiple firmware artifacts found in ${repo} build. Use --target or --board to select one:\n` +
188
+ firmwareArtifacts.map((a) => ` ${a.name}`).join('\n'));
189
+ }
190
+ // ── Download & extract ───────────────────────────────────────────────────────
191
+ async function downloadAndExtractReleaseAsset(token, asset, extractedDir) {
192
+ const archivePath = path.join(CACHE_DIR, asset.name);
193
+ const assetRes = await fetch(asset.url, {
194
+ headers: {
195
+ Authorization: `Bearer ${token}`,
196
+ Accept: 'application/octet-stream',
197
+ },
198
+ redirect: 'follow',
199
+ });
200
+ if (!assetRes.ok || !assetRes.body) {
201
+ if (assetRes.body)
202
+ await assetRes.text();
203
+ throw new Error(`Failed to download firmware: ${assetRes.status} ${assetRes.statusText}`);
204
+ }
205
+ await fs.mkdir(CACHE_DIR, { recursive: true });
206
+ await pipeline(assetRes.body, createWriteStream(archivePath));
207
+ await fs.mkdir(extractedDir, { recursive: true });
208
+ await execFileAsync('tar', ['xzf', archivePath, '-C', extractedDir]);
209
+ await fs.rm(archivePath);
210
+ }
211
+ async function downloadAndExtractWorkflowArtifact(token, repo, artifact, extractedDir) {
212
+ const zipPath = path.join(CACHE_DIR, `${artifact.name}-${Date.now()}.zip`);
213
+ const artifactUrl = `https://api.github.com/repos/${repo}/actions/artifacts/${artifact.id}/zip`;
214
+ const downloadRes = await fetch(artifactUrl, {
215
+ headers: {
216
+ Authorization: `Bearer ${token}`,
217
+ Accept: 'application/vnd.github.v3+json',
218
+ },
219
+ redirect: 'follow',
220
+ });
221
+ if (!downloadRes.ok || !downloadRes.body) {
222
+ if (downloadRes.body)
223
+ await downloadRes.text();
224
+ throw new Error(`Failed to download artifact: ${downloadRes.status} ${downloadRes.statusText}`);
225
+ }
226
+ await fs.mkdir(path.dirname(zipPath), { recursive: true });
227
+ await pipeline(downloadRes.body, createWriteStream(zipPath));
228
+ // Unzip the outer GitHub artifact zip into a temp dir, then handle two
229
+ // possible layouts: tarball pack (zip contains a single .tar.gz to extract)
230
+ // or unpacked pack (zip contains firmware files directly — flasher_args.json
231
+ // alongside bootloader/, partition_table/, mikrojs.bin).
232
+ // Wipe extractedDir first so a partial previous attempt can't trip up
233
+ // fs.rename below (ENOTEMPTY on existing subdirectories).
234
+ await fs.rm(extractedDir, { recursive: true, force: true });
235
+ await fs.mkdir(extractedDir, { recursive: true });
236
+ const tmpDir = `${extractedDir}-tmp`;
237
+ await fs.mkdir(tmpDir, { recursive: true });
238
+ await execFileAsync('unzip', ['-o', zipPath, '-d', tmpDir]);
239
+ const files = await fs.readdir(tmpDir);
240
+ const tarball = files.find((f) => f.endsWith('.tar.gz'));
241
+ if (tarball) {
242
+ await execFileAsync('tar', ['xzf', path.join(tmpDir, tarball), '-C', extractedDir]);
243
+ }
244
+ else if (files.includes('flasher_args.json')) {
245
+ for (const file of files) {
246
+ await fs.rename(path.join(tmpDir, file), path.join(extractedDir, file));
247
+ }
248
+ }
249
+ else {
250
+ await fs.rm(tmpDir, { recursive: true });
251
+ await fs.rm(zipPath);
252
+ throw new Error(`Artifact '${artifact.name}' has no recognized firmware layout ` +
253
+ `(expected a .tar.gz or flasher_args.json at the top level).`);
254
+ }
255
+ await fs.rm(zipPath);
256
+ await fs.rm(tmpDir, { recursive: true });
257
+ }
258
+ // ── Resolution strategies ────────────────────────────────────────────────────
259
+ async function resolveFromUrl(url) {
260
+ const cacheKey = url.replace(/[^a-zA-Z0-9_.-]/g, '_');
261
+ const extractedDir = path.join(CACHE_DIR, `ext-${cacheKey}`);
262
+ const flasherArgsPath = path.join(extractedDir, 'flasher_args.json');
263
+ try {
264
+ await fs.access(flasherArgsPath);
265
+ return extractedDir;
266
+ }
267
+ catch {
268
+ // Not cached
269
+ }
270
+ const archivePath = path.join(CACHE_DIR, `ext-${cacheKey}.tar.gz`);
271
+ await downloadUrl(url, archivePath);
272
+ await fs.mkdir(extractedDir, { recursive: true });
273
+ await execFileAsync('tar', ['xzf', archivePath, '-C', extractedDir]);
274
+ await fs.rm(archivePath);
275
+ return extractedDir;
276
+ }
277
+ async function resolveViaRelease(token, repo, tag, chip, board, report) {
278
+ const cacheId = board ?? chip ?? 'firmware';
279
+ const cacheTag = tag ?? 'latest';
280
+ const extractedDir = path.join(CACHE_DIR, `${cacheId}-${cacheTag}`);
281
+ const flasherArgsPath = path.join(extractedDir, 'flasher_args.json');
282
+ try {
283
+ await fs.access(flasherArgsPath);
284
+ return extractedDir;
285
+ }
286
+ catch {
287
+ // Not cached
288
+ }
289
+ const release = await fetchRelease(token, repo, tag);
290
+ const asset = selectReleaseAsset(release.assets, chip, board, repo);
291
+ report(`Downloading ${asset.name}…`);
292
+ await downloadAndExtractReleaseAsset(token, asset, extractedDir);
293
+ return extractedDir;
294
+ }
295
+ async function resolveViaActions(token, repo, sha, chip, board, report) {
296
+ const cacheId = board ?? chip ?? 'firmware';
297
+ const extractedDir = path.join(CACHE_DIR, `${cacheId}-${sha}`);
298
+ const flasherArgsPath = path.join(extractedDir, 'flasher_args.json');
299
+ try {
300
+ await fs.access(flasherArgsPath);
301
+ return extractedDir;
302
+ }
303
+ catch {
304
+ // Not cached
305
+ }
306
+ report(`Looking for firmware build in ${repo}…`);
307
+ const artifacts = await fetchWorkflowArtifacts(token, repo, sha);
308
+ const artifact = selectWorkflowArtifact(artifacts, chip, board, repo);
309
+ if (artifact.expired) {
310
+ throw new Error(`Firmware artifact '${artifact.name}' at ${sha.slice(0, 8)} has expired.\n` +
311
+ `GitHub Actions artifacts are retained for a limited time.`);
312
+ }
313
+ report(`Downloading ${artifact.name}…`);
314
+ await downloadAndExtractWorkflowArtifact(token, repo, artifact, extractedDir);
315
+ return extractedDir;
316
+ }
317
+ // ── Public API ───────────────────────────────────────────────────────────────
318
+ /**
319
+ * Resolve firmware from a `--from` reference.
320
+ *
321
+ * Resolution order:
322
+ * 1. URL (http/https) → download directly
323
+ * 2. Contains `/` → external repo (user/repo or user/repo@ref)
324
+ * 3. Starts with `v` + digit → release tag on mikrojs/mikrojs (fallback to Actions)
325
+ * 4. Everything else → resolve as ref (branch/tag/SHA) on mikrojs/mikrojs via Actions
326
+ *
327
+ * Note: for mikrojs/mikrojs, versioned firmware (vX.Y.Z) is bundled in the
328
+ * @mikrojs/firmware npm package and used by the default flash path. The
329
+ * release-asset code path here is exercised by external repos that ship
330
+ * firmware tarballs as GitHub Release assets.
331
+ */
332
+ export async function resolveFrom(options) {
333
+ const { from, chip, board, onProgress } = options;
334
+ const trail = [];
335
+ const step = (msg) => {
336
+ trail.push(msg);
337
+ onProgress?.(msg);
338
+ };
339
+ try {
340
+ // 1. URL
341
+ if (from.startsWith('http://') || from.startsWith('https://')) {
342
+ step(`Downloading firmware from ${from}…`);
343
+ return await resolveFromUrl(from);
344
+ }
345
+ // Parse repo and ref
346
+ let repo;
347
+ let ref;
348
+ if (from.includes('/')) {
349
+ // External repo: user/repo or user/repo@ref
350
+ const atIndex = from.lastIndexOf('@');
351
+ if (atIndex > from.indexOf('/')) {
352
+ repo = from.slice(0, atIndex);
353
+ ref = from.slice(atIndex + 1);
354
+ }
355
+ else {
356
+ repo = from;
357
+ ref = undefined;
358
+ }
359
+ }
360
+ else {
361
+ // Ref on the main repo
362
+ repo = GITHUB_REPO;
363
+ ref = from;
364
+ }
365
+ const token = requireGitHubToken(await getGitHubToken());
366
+ // No ref → latest release
367
+ if (!ref) {
368
+ step(`Fetching latest release from ${repo}…`);
369
+ return await resolveViaRelease(token, repo, undefined, chip, board, step);
370
+ }
371
+ // Release tag (v-prefix) → try Releases first, fall back to Actions
372
+ if (isReleaseTag(ref)) {
373
+ step(`Resolving release ${ref} from ${repo}…`);
374
+ try {
375
+ return await resolveViaRelease(token, repo, ref, chip, board, step);
376
+ }
377
+ catch {
378
+ step(`No release found for ${ref}, trying CI artifacts…`);
379
+ }
380
+ }
381
+ // Resolve ref (branch/tag/SHA) to commit SHA
382
+ step(`Resolving ${ref}…`);
383
+ const fullSha = await resolveRefToSha(token, repo, ref);
384
+ step(`Resolved ${ref} → ${fullSha.slice(0, 8)}`);
385
+ // Try Actions artifacts
386
+ try {
387
+ return await resolveViaActions(token, repo, fullSha, chip, board, step);
388
+ }
389
+ catch (actionsError) {
390
+ // Last resort: try as release tag (handles non-v-prefix tags and expired artifacts)
391
+ try {
392
+ step(`CI artifact not available, trying as release tag…`);
393
+ return await resolveViaRelease(token, repo, ref, chip, board, step);
394
+ }
395
+ catch {
396
+ throw actionsError;
397
+ }
398
+ }
399
+ }
400
+ catch (error) {
401
+ const msg = error instanceof Error ? error.message : String(error);
402
+ const trailStr = trail.map((s) => ` ${s}`).join('\n');
403
+ throw new Error(`${msg}\n\nResolution trail:\n${trailStr}`, { cause: error });
404
+ }
405
+ }
406
+ //# sourceMappingURL=firmware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firmware.js","sourceRoot":"","sources":["../../../src/cli/lib/firmware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export interface FirmwareCompatResult {
2
+ compatible: boolean;
3
+ deviceVersion: string | null;
4
+ requiredRange: string | null;
5
+ }
6
+ /**
7
+ * Check whether the device firmware version satisfies the CLI's
8
+ * declared compatibility range (engines["@mikrojs/firmware"]).
9
+ *
10
+ * Incompatible when:
11
+ * - The device didn't report a version (old firmware)
12
+ * - The device version doesn't satisfy the range
13
+ *
14
+ * Compatible when:
15
+ * - The version satisfies the range, OR
16
+ * - No range is declared in engines
17
+ */
18
+ export declare function checkFirmwareCompat(deviceVersion: string | null): FirmwareCompatResult;
19
+ //# sourceMappingURL=firmwareCompat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firmwareCompat.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/firmwareCompat.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,CAAA;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,oBAAoB,CAkBtF"}
@@ -0,0 +1,31 @@
1
+ import { createRequire } from 'node:module';
2
+ import { satisfies } from 'semver';
3
+ /**
4
+ * Check whether the device firmware version satisfies the CLI's
5
+ * declared compatibility range (engines["@mikrojs/firmware"]).
6
+ *
7
+ * Incompatible when:
8
+ * - The device didn't report a version (old firmware)
9
+ * - The device version doesn't satisfy the range
10
+ *
11
+ * Compatible when:
12
+ * - The version satisfies the range, OR
13
+ * - No range is declared in engines
14
+ */
15
+ export function checkFirmwareCompat(deviceVersion) {
16
+ const require = createRequire(import.meta.url);
17
+ const pkg = require('../../../package.json');
18
+ const range = pkg.engines?.['@mikrojs/firmware'] ?? null;
19
+ if (!range) {
20
+ return { compatible: true, deviceVersion, requiredRange: range };
21
+ }
22
+ if (!deviceVersion) {
23
+ return { compatible: false, deviceVersion, requiredRange: range };
24
+ }
25
+ return {
26
+ compatible: satisfies(deviceVersion, range),
27
+ deviceVersion,
28
+ requiredRange: range,
29
+ };
30
+ }
31
+ //# sourceMappingURL=firmwareCompat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firmwareCompat.js","sourceRoot":"","sources":["../../../src/cli/lib/firmwareCompat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAA;AAQhC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,aAA4B;IAC9D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,uBAAuB,CAAuC,CAAA;IAClF,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAA;IAExD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAC,CAAA;IAChE,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAC,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAC,CAAA;IACjE,CAAC;IAED,OAAO;QACL,UAAU,EAAE,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC;QAC3C,aAAa;QACb,aAAa,EAAE,KAAK;KACrB,CAAA;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Heap-baseline snapshot stored beside each test file as
3
+ * `<name>.test.heap-baseline.json`. Keyed by chip (e.g. "esp32c6", "host")
4
+ * because heap deltas differ across pointer size, native module availability,
5
+ * and sdkconfig defaults. Committed to the repo; diffs show up in PR review.
6
+ */
7
+ export interface HeapBaselineFile {
8
+ [chip: string]: {
9
+ heapDelta: number;
10
+ };
11
+ }
12
+ export declare function baselineFilePath(testFile: string): string;
13
+ export declare function readBaseline(testFile: string, chip: string): number | undefined;
14
+ export declare function writeBaseline(testFile: string, chip: string, heapDelta: number): void;
15
+ //# sourceMappingURL=heapBaseline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heapBaseline.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/heapBaseline.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,IAAI,EAAE,MAAM,GAAG;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAA;CACpC;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAS/E;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAerF"}
@@ -0,0 +1,39 @@
1
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
2
+ export function baselineFilePath(testFile) {
3
+ // Strip the script extension so the snapshot is `foo.test.heap-baseline.json`
4
+ // rather than `foo.test.ts.heap-baseline.json` — the `.ts` has no meaning
5
+ // once the test has been compiled and run.
6
+ const base = testFile.replace(/\.(?:ts|tsx|js|mjs)$/, '');
7
+ return `${base}.heap-baseline.json`;
8
+ }
9
+ export function readBaseline(testFile, chip) {
10
+ const path = baselineFilePath(testFile);
11
+ if (!existsSync(path))
12
+ return undefined;
13
+ try {
14
+ const data = JSON.parse(readFileSync(path, 'utf-8'));
15
+ return data[chip]?.heapDelta;
16
+ }
17
+ catch {
18
+ return undefined;
19
+ }
20
+ }
21
+ export function writeBaseline(testFile, chip, heapDelta) {
22
+ const path = baselineFilePath(testFile);
23
+ let data = {};
24
+ if (existsSync(path)) {
25
+ try {
26
+ data = JSON.parse(readFileSync(path, 'utf-8'));
27
+ }
28
+ catch {
29
+ data = {};
30
+ }
31
+ }
32
+ data[chip] = { heapDelta };
33
+ // Sort keys for stable output across runs
34
+ const sorted = {};
35
+ for (const key of Object.keys(data).sort())
36
+ sorted[key] = data[key];
37
+ writeFileSync(path, JSON.stringify(sorted, null, 2) + '\n');
38
+ }
39
+ //# sourceMappingURL=heapBaseline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heapBaseline.js","sourceRoot":"","sources":["../../../src/cli/lib/heapBaseline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,YAAY,EAAE,aAAa,EAAC,MAAM,SAAS,CAAA;AAY/D,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,8EAA8E;IAC9E,0EAA0E;IAC1E,2CAA2C;IAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAA;IACzD,OAAO,GAAG,IAAI,qBAAqB,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAY;IACzD,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IACvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAqB,CAAA;QACxE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,IAAY,EAAE,SAAiB;IAC7E,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACvC,IAAI,IAAI,GAAqB,EAAE,CAAA;IAC/B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAqB,CAAA;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC,SAAS,EAAC,CAAA;IACxB,0CAA0C;IAC1C,MAAM,MAAM,GAAqB,EAAE,CAAA;IACnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;QAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAE,CAAA;IACpE,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AAC7D,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { Component, type JSX, type PropsWithChildren } from 'react';
2
+ export type CellProps<T> = PropsWithChildren<{
3
+ column: number;
4
+ value: T[keyof T];
5
+ }>;
6
+ export type TableProps<T> = {
7
+ /**
8
+ * List of values (rows).
9
+ */
10
+ data: T[];
11
+ /**
12
+ * Get key of row
13
+ */
14
+ getKey: (row: T, i: number) => string;
15
+ /**
16
+ * Columns that we should display in the table.
17
+ */
18
+ columns: {
19
+ [k in keyof T]: string;
20
+ };
21
+ /**
22
+ * Cell padding.
23
+ */
24
+ padding: number;
25
+ /**
26
+ * Header component.
27
+ */
28
+ header: (props: PropsWithChildren) => JSX.Element;
29
+ /**
30
+ * Component used to render a cell in the table.
31
+ */
32
+ cell: (props: CellProps<T>) => JSX.Element;
33
+ /**
34
+ * Component used to render the skeleton of the table.
35
+ */
36
+ skeleton: (props: PropsWithChildren) => JSX.Element;
37
+ };
38
+ export default class Table<T> extends Component<Pick<TableProps<T>, 'data'> & Partial<TableProps<T>>> {
39
+ /**
40
+ * Merges provided configuration with defaults.
41
+ */
42
+ getConfig(): TableProps<T>;
43
+ /**
44
+ * Gets all keyes used in data by traversing through the data.
45
+ */
46
+ getDataKeys(): { [key in keyof T]: string; };
47
+ /**
48
+ * Calculates the width of each column by finding
49
+ * the longest value in a cell of a particular column.
50
+ *
51
+ * Returns a list of column names and their widths.
52
+ */
53
+ getColumns(): Column<T>[];
54
+ /**
55
+ * Returns a (data) row representing the headings.
56
+ */
57
+ getHeadings(): Partial<T>;
58
+ header: (props: RowProps<T>) => JSX.Element;
59
+ heading: (props: RowProps<T>) => JSX.Element;
60
+ separator: (props: RowProps<T>) => JSX.Element;
61
+ data: (props: RowProps<T>) => JSX.Element;
62
+ footer: (props: RowProps<T>) => JSX.Element;
63
+ render(): import("react/jsx-runtime").JSX.Element;
64
+ }
65
+ type RowProps<T> = {
66
+ key: string;
67
+ data: Partial<T>;
68
+ columns: Column<T>[];
69
+ };
70
+ type Column<T> = {
71
+ key: string;
72
+ column: keyof T;
73
+ width: number;
74
+ };
75
+ /**
76
+ * Renders the header of a table.
77
+ */
78
+ export declare function Header(props: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
79
+ /**
80
+ * Renders a cell in the table.
81
+ */
82
+ export declare function Cell<T>(props: CellProps<T>): import("react/jsx-runtime").JSX.Element;
83
+ /**
84
+ * Redners the scaffold of the table.
85
+ */
86
+ export declare function Skeleton(props: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
87
+ export {};
88
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/ink-table/index.tsx"],"names":[],"mappings":"AAIA,OAAc,EAAC,SAAS,EAAE,KAAK,GAAG,EAAE,KAAK,iBAAiB,EAAC,MAAM,OAAO,CAAA;AAExE,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,iBAAiB,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;CAClB,CAAC,CAAA;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B;;OAEG;IACH,IAAI,EAAE,CAAC,EAAE,CAAA;IACT;;OAEG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC;;OAEG;IACH,OAAO,EAAE;SAAE,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;KAAC,CAAA;IACjC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,GAAG,CAAC,OAAO,CAAA;IACjD;;OAEG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,OAAO,CAAA;IAC1C;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,GAAG,CAAC,OAAO,CAAA;CACpD,CAAA;AAID,MAAM,CAAC,OAAO,OAAO,KAAK,CAAC,CAAC,CAAE,SAAQ,SAAS,CAC7C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACrD;IAGC;;OAEG;IACH,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC;IAY1B;;OAEG;IACH,WAAW,OACY,GAAG;IAY1B;;;;;OAKG;IACH,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;IA0BzB;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC;IAczB,MAAM,0BAqJuD,GAAG,CAAC,OAAO,CA1ItE;IAGF,OAAO,0BAuIsD,GAAG,CAAC,OAAO,CA5HtE;IAGF,SAAS,0BAyHoD,GAAG,CAAC,OAAO,CA9GtE;IAGF,IAAI,0BA2GyD,GAAG,CAAC,OAAO,CAhGtE;IAGF,MAAM,0BA6FuD,GAAG,CAAC,OAAO,CAlFtE;IAIO,MAAM;CAgChB;AA+BD,KAAK,QAAQ,CAAC,CAAC,IAAI;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IAChB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;CACrB,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI;IACf,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAC,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AA2DD;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,iBAAiB,2CAM9C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,2CAE1C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,2CAEhD"}