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,379 @@
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
+ const FIRMWARE_WORKFLOW = 'firmware.yml';
12
+ // ── Helpers ──────────────────────────────────────────────────────────────────
13
+ function getAssetName(chip) {
14
+ return `mikrojs-firmware-${chip}.tar.gz`;
15
+ }
16
+ function getBoardAssetName(boardName) {
17
+ return `mikrojs-firmware-${boardName}.tar.gz`;
18
+ }
19
+ /** Returns true if the version string looks like a release tag (starts with "v" followed by a digit). */
20
+ function isReleaseTag(version) {
21
+ return /^v\d/.test(version);
22
+ }
23
+ async function getGitHubToken() {
24
+ // Check environment variable first
25
+ if (process.env.GITHUB_TOKEN) {
26
+ return process.env.GITHUB_TOKEN;
27
+ }
28
+ // Try gh CLI auth
29
+ try {
30
+ const { stdout } = await execFileAsync('gh', ['auth', 'token']);
31
+ const token = stdout.trim();
32
+ if (token)
33
+ return token;
34
+ }
35
+ catch {
36
+ // gh not installed or not authenticated
37
+ }
38
+ return undefined;
39
+ }
40
+ function requireGitHubToken(token) {
41
+ if (!token) {
42
+ throw new Error(`Authentication required to download firmware.\n` +
43
+ `Run \`gh auth login\` or set the GITHUB_TOKEN environment variable.`);
44
+ }
45
+ return token;
46
+ }
47
+ async function downloadUrl(url, destPath) {
48
+ const res = await fetch(url, { redirect: 'follow' });
49
+ if (!res.ok || !res.body) {
50
+ if (res.body)
51
+ await res.text();
52
+ throw new Error(`Failed to download ${url}: ${res.status} ${res.statusText}`);
53
+ }
54
+ await fs.mkdir(path.dirname(destPath), { recursive: true });
55
+ const fileStream = createWriteStream(destPath);
56
+ await pipeline(res.body, fileStream);
57
+ }
58
+ // ── GitHub API ───────────────────────────────────────────────────────────────
59
+ async function resolveRefToSha(token, repo, ref) {
60
+ const res = await fetch(`https://api.github.com/repos/${repo}/commits/${ref}`, {
61
+ headers: {
62
+ Authorization: `Bearer ${token}`,
63
+ Accept: 'application/vnd.github.v3+json',
64
+ },
65
+ });
66
+ if (!res.ok) {
67
+ await res.text();
68
+ if (res.status === 404 || res.status === 422) {
69
+ throw new Error(`Ref '${ref}' not found in ${repo}.`);
70
+ }
71
+ throw new Error(`GitHub API error: ${res.status} ${res.statusText}`);
72
+ }
73
+ const commit = (await res.json());
74
+ return commit.sha;
75
+ }
76
+ async function fetchRelease(token, repo, tag) {
77
+ const url = tag
78
+ ? `https://api.github.com/repos/${repo}/releases/tags/${tag}`
79
+ : `https://api.github.com/repos/${repo}/releases/latest`;
80
+ const res = await fetch(url, {
81
+ headers: {
82
+ Authorization: `Bearer ${token}`,
83
+ Accept: 'application/vnd.github.v3+json',
84
+ },
85
+ });
86
+ if (!res.ok) {
87
+ await res.text();
88
+ if (res.status === 404) {
89
+ throw new Error(tag ? `No release '${tag}' found in ${repo}.` : `No releases found in ${repo}.`);
90
+ }
91
+ throw new Error(`GitHub API error: ${res.status} ${res.statusText}`);
92
+ }
93
+ return (await res.json());
94
+ }
95
+ function selectReleaseAsset(assets, chip, board, repo) {
96
+ // Try board-specific
97
+ if (board) {
98
+ const boardAsset = assets.find((a) => a.name === getBoardAssetName(board));
99
+ if (boardAsset)
100
+ return boardAsset;
101
+ }
102
+ // Try chip-specific
103
+ if (chip) {
104
+ const chipAsset = assets.find((a) => a.name === getAssetName(chip));
105
+ if (chipAsset)
106
+ return chipAsset;
107
+ }
108
+ // Auto: single firmware archive
109
+ const firmwareAssets = assets.filter((a) => a.name.endsWith('.tar.gz') && a.name.includes('firmware'));
110
+ if (firmwareAssets.length === 1)
111
+ return firmwareAssets[0];
112
+ if (firmwareAssets.length === 0) {
113
+ throw new Error(`No firmware assets found in ${repo} release.\n` +
114
+ `Available assets: ${assets.map((a) => a.name).join(', ') || 'none'}`);
115
+ }
116
+ throw new Error(`Multiple firmware assets found in ${repo} release. Use --target or --board to select one:\n` +
117
+ firmwareAssets.map((a) => ` ${a.name}`).join('\n'));
118
+ }
119
+ async function fetchWorkflowArtifacts(token, repo, sha) {
120
+ // Find successful workflow runs for this SHA
121
+ const runsUrl = `https://api.github.com/repos/${repo}` +
122
+ `/actions/workflows/${FIRMWARE_WORKFLOW}/runs?head_sha=${sha}&status=success`;
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.total_count === 0 || runs.workflow_runs.length === 0) {
135
+ throw new Error(`No firmware build found for commit ${sha.slice(0, 8)} in ${repo}.\n` +
136
+ `The firmware build may have failed, not been triggered, or the artifact may have expired.`);
137
+ }
138
+ const runId = runs.workflow_runs[0].id;
139
+ const artifactsUrl = `https://api.github.com/repos/${repo}/actions/runs/${runId}/artifacts`;
140
+ const artifactsRes = await fetch(artifactsUrl, {
141
+ headers: {
142
+ Authorization: `Bearer ${token}`,
143
+ Accept: 'application/vnd.github.v3+json',
144
+ },
145
+ });
146
+ if (!artifactsRes.ok) {
147
+ await artifactsRes.text();
148
+ throw new Error(`GitHub API error: ${artifactsRes.status} ${artifactsRes.statusText}`);
149
+ }
150
+ const result = (await artifactsRes.json());
151
+ return result.artifacts;
152
+ }
153
+ function selectWorkflowArtifact(artifacts, chip, board, repo) {
154
+ // Try board-specific
155
+ if (board) {
156
+ const boardArtifact = artifacts.find((a) => a.name === `mikrojs-firmware-${board}`);
157
+ if (boardArtifact)
158
+ return boardArtifact;
159
+ }
160
+ // Try chip-specific
161
+ if (chip) {
162
+ const chipArtifact = artifacts.find((a) => a.name === `mikrojs-firmware-${chip}`);
163
+ if (chipArtifact)
164
+ return chipArtifact;
165
+ }
166
+ // Auto: single firmware artifact
167
+ const firmwareArtifacts = artifacts.filter((a) => a.name.includes('firmware'));
168
+ if (firmwareArtifacts.length === 1)
169
+ return firmwareArtifacts[0];
170
+ if (firmwareArtifacts.length === 0) {
171
+ throw new Error(`No firmware artifacts found in ${repo} build.\n` +
172
+ `Available artifacts: ${artifacts.map((a) => a.name).join(', ') || 'none'}`);
173
+ }
174
+ throw new Error(`Multiple firmware artifacts found in ${repo} build. Use --target or --board to select one:\n` +
175
+ firmwareArtifacts.map((a) => ` ${a.name}`).join('\n'));
176
+ }
177
+ // ── Download & extract ───────────────────────────────────────────────────────
178
+ async function downloadAndExtractReleaseAsset(token, asset, extractedDir) {
179
+ const archivePath = path.join(CACHE_DIR, asset.name);
180
+ const assetRes = await fetch(asset.url, {
181
+ headers: {
182
+ Authorization: `Bearer ${token}`,
183
+ Accept: 'application/octet-stream',
184
+ },
185
+ redirect: 'follow',
186
+ });
187
+ if (!assetRes.ok || !assetRes.body) {
188
+ if (assetRes.body)
189
+ await assetRes.text();
190
+ throw new Error(`Failed to download firmware: ${assetRes.status} ${assetRes.statusText}`);
191
+ }
192
+ await fs.mkdir(CACHE_DIR, { recursive: true });
193
+ await pipeline(assetRes.body, createWriteStream(archivePath));
194
+ await fs.mkdir(extractedDir, { recursive: true });
195
+ await execFileAsync('tar', ['xzf', archivePath, '-C', extractedDir]);
196
+ await fs.rm(archivePath);
197
+ }
198
+ async function downloadAndExtractWorkflowArtifact(token, repo, artifact, extractedDir) {
199
+ const zipPath = path.join(CACHE_DIR, `${artifact.name}-${Date.now()}.zip`);
200
+ const artifactUrl = `https://api.github.com/repos/${repo}/actions/artifacts/${artifact.id}/zip`;
201
+ const downloadRes = await fetch(artifactUrl, {
202
+ headers: {
203
+ Authorization: `Bearer ${token}`,
204
+ Accept: 'application/vnd.github.v3+json',
205
+ },
206
+ redirect: 'follow',
207
+ });
208
+ if (!downloadRes.ok || !downloadRes.body) {
209
+ if (downloadRes.body)
210
+ await downloadRes.text();
211
+ throw new Error(`Failed to download artifact: ${downloadRes.status} ${downloadRes.statusText}`);
212
+ }
213
+ await fs.mkdir(path.dirname(zipPath), { recursive: true });
214
+ await pipeline(downloadRes.body, createWriteStream(zipPath));
215
+ // Two-step extraction: unzip outer (GitHub artifact zip) → extract inner tar.gz
216
+ await fs.mkdir(extractedDir, { recursive: true });
217
+ const tmpDir = `${extractedDir}-tmp`;
218
+ await fs.mkdir(tmpDir, { recursive: true });
219
+ await execFileAsync('unzip', ['-o', zipPath, '-d', tmpDir]);
220
+ const files = await fs.readdir(tmpDir);
221
+ const tarball = files.find((f) => f.endsWith('.tar.gz'));
222
+ if (!tarball) {
223
+ await fs.rm(tmpDir, { recursive: true });
224
+ await fs.rm(zipPath);
225
+ throw new Error(`No .tar.gz archive found inside artifact '${artifact.name}'`);
226
+ }
227
+ await execFileAsync('tar', ['xzf', path.join(tmpDir, tarball), '-C', extractedDir]);
228
+ await fs.rm(zipPath);
229
+ await fs.rm(tmpDir, { recursive: true });
230
+ }
231
+ // ── Resolution strategies ────────────────────────────────────────────────────
232
+ async function resolveFromUrl(url) {
233
+ const cacheKey = url.replace(/[^a-zA-Z0-9_.-]/g, '_');
234
+ const extractedDir = path.join(CACHE_DIR, `ext-${cacheKey}`);
235
+ const flasherArgsPath = path.join(extractedDir, 'flasher_args.json');
236
+ try {
237
+ await fs.access(flasherArgsPath);
238
+ return extractedDir;
239
+ }
240
+ catch {
241
+ // Not cached
242
+ }
243
+ const archivePath = path.join(CACHE_DIR, `ext-${cacheKey}.tar.gz`);
244
+ await downloadUrl(url, archivePath);
245
+ await fs.mkdir(extractedDir, { recursive: true });
246
+ await execFileAsync('tar', ['xzf', archivePath, '-C', extractedDir]);
247
+ await fs.rm(archivePath);
248
+ return extractedDir;
249
+ }
250
+ async function resolveViaRelease(token, repo, tag, chip, board, report) {
251
+ const cacheId = board ?? chip ?? 'firmware';
252
+ const cacheTag = tag ?? 'latest';
253
+ const extractedDir = path.join(CACHE_DIR, `${cacheId}-${cacheTag}`);
254
+ const flasherArgsPath = path.join(extractedDir, 'flasher_args.json');
255
+ try {
256
+ await fs.access(flasherArgsPath);
257
+ return extractedDir;
258
+ }
259
+ catch {
260
+ // Not cached
261
+ }
262
+ const release = await fetchRelease(token, repo, tag);
263
+ const asset = selectReleaseAsset(release.assets, chip, board, repo);
264
+ report(`Downloading ${asset.name}…`);
265
+ await downloadAndExtractReleaseAsset(token, asset, extractedDir);
266
+ return extractedDir;
267
+ }
268
+ async function resolveViaActions(token, repo, sha, chip, board, report) {
269
+ const cacheId = board ?? chip ?? 'firmware';
270
+ const extractedDir = path.join(CACHE_DIR, `${cacheId}-${sha}`);
271
+ const flasherArgsPath = path.join(extractedDir, 'flasher_args.json');
272
+ try {
273
+ await fs.access(flasherArgsPath);
274
+ return extractedDir;
275
+ }
276
+ catch {
277
+ // Not cached
278
+ }
279
+ report(`Looking for firmware build in ${repo}…`);
280
+ const artifacts = await fetchWorkflowArtifacts(token, repo, sha);
281
+ const artifact = selectWorkflowArtifact(artifacts, chip, board, repo);
282
+ if (artifact.expired) {
283
+ throw new Error(`Firmware artifact '${artifact.name}' at ${sha.slice(0, 8)} has expired.\n` +
284
+ `GitHub Actions artifacts are retained for a limited time.`);
285
+ }
286
+ report(`Downloading ${artifact.name}…`);
287
+ await downloadAndExtractWorkflowArtifact(token, repo, artifact, extractedDir);
288
+ return extractedDir;
289
+ }
290
+ // ── Public API ───────────────────────────────────────────────────────────────
291
+ /**
292
+ * Resolve firmware from a `--from` reference.
293
+ *
294
+ * Resolution order:
295
+ * 1. URL (http/https) → download directly
296
+ * 2. Contains `/` → external repo (user/repo or user/repo@ref)
297
+ * 3. Starts with `v` + digit → release tag on mikrojs/mikrojs (fallback to Actions)
298
+ * 4. Everything else → resolve as ref (branch/tag/SHA) on mikrojs/mikrojs via Actions
299
+ *
300
+ * Note: for mikrojs/mikrojs, versioned firmware (vX.Y.Z) is bundled in the
301
+ * @mikrojs/firmware npm package and used by the default flash path. The
302
+ * release-asset code path here is exercised by external repos that ship
303
+ * firmware tarballs as GitHub Release assets.
304
+ */
305
+ export async function resolveFrom(options) {
306
+ const { from, chip, board, onProgress } = options;
307
+ const trail = [];
308
+ const step = (msg) => {
309
+ trail.push(msg);
310
+ onProgress?.(msg);
311
+ };
312
+ try {
313
+ // 1. URL
314
+ if (from.startsWith('http://') || from.startsWith('https://')) {
315
+ step(`Downloading firmware from ${from}…`);
316
+ return await resolveFromUrl(from);
317
+ }
318
+ // Parse repo and ref
319
+ let repo;
320
+ let ref;
321
+ if (from.includes('/')) {
322
+ // External repo: user/repo or user/repo@ref
323
+ const atIndex = from.lastIndexOf('@');
324
+ if (atIndex > from.indexOf('/')) {
325
+ repo = from.slice(0, atIndex);
326
+ ref = from.slice(atIndex + 1);
327
+ }
328
+ else {
329
+ repo = from;
330
+ ref = undefined;
331
+ }
332
+ }
333
+ else {
334
+ // Ref on the main repo
335
+ repo = GITHUB_REPO;
336
+ ref = from;
337
+ }
338
+ const token = requireGitHubToken(await getGitHubToken());
339
+ // No ref → latest release
340
+ if (!ref) {
341
+ step(`Fetching latest release from ${repo}…`);
342
+ return await resolveViaRelease(token, repo, undefined, chip, board, step);
343
+ }
344
+ // Release tag (v-prefix) → try Releases first, fall back to Actions
345
+ if (isReleaseTag(ref)) {
346
+ step(`Resolving release ${ref} from ${repo}…`);
347
+ try {
348
+ return await resolveViaRelease(token, repo, ref, chip, board, step);
349
+ }
350
+ catch {
351
+ step(`No release found for ${ref}, trying CI artifacts…`);
352
+ }
353
+ }
354
+ // Resolve ref (branch/tag/SHA) to commit SHA
355
+ step(`Resolving ${ref}…`);
356
+ const fullSha = await resolveRefToSha(token, repo, ref);
357
+ step(`Resolved ${ref} → ${fullSha.slice(0, 8)}`);
358
+ // Try Actions artifacts
359
+ try {
360
+ return await resolveViaActions(token, repo, fullSha, chip, board, step);
361
+ }
362
+ catch (actionsError) {
363
+ // Last resort: try as release tag (handles non-v-prefix tags and expired artifacts)
364
+ try {
365
+ step(`CI artifact not available, trying as release tag…`);
366
+ return await resolveViaRelease(token, repo, ref, chip, board, step);
367
+ }
368
+ catch {
369
+ throw actionsError;
370
+ }
371
+ }
372
+ }
373
+ catch (error) {
374
+ const msg = error instanceof Error ? error.message : String(error);
375
+ const trailStr = trail.map((s) => ` ${s}`).join('\n');
376
+ throw new Error(`${msg}\n\nResolution trail:\n${trailStr}`);
377
+ }
378
+ }
379
+ //# 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"}