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,533 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { createRequire, stripTypeScriptTypes } from 'node:module';
3
+ import * as pathlib from 'node:path';
4
+ import { nodeFileTrace, resolve as traceResolve } from '@mikrojs/analyze-imports';
5
+ import { mkdir, readdir, readFile, rm, stat, unlink, writeFile } from 'fs/promises';
6
+ import { concat, defer, EMPTY, filter, from, ignoreElements, mergeMap, of, throwError, } from 'rxjs';
7
+ import { isBuiltinModule } from '../../constants.js';
8
+ import { loadMikroConfig } from './loadMikroConfig.js';
9
+ import { minifyJs } from './minify.js';
10
+ import { parseSize } from './parseSize.js';
11
+ const require = createRequire(import.meta.url);
12
+ /** Console methods to mark as pure (side-effect-free) for each log level.
13
+ * The minifier drops pure calls whose return value is unused, eliminating
14
+ * both the call and its argument expressions. */
15
+ const LOG_LEVEL_PURE_FUNCS = {
16
+ debug: [],
17
+ info: ['console.debug'],
18
+ warn: ['console.debug', 'console.log', 'console.info'],
19
+ error: ['console.debug', 'console.log', 'console.info', 'console.warn'],
20
+ none: ['console.debug', 'console.log', 'console.info', 'console.warn', 'console.error'],
21
+ };
22
+ let nativePromise = null;
23
+ function loadNative() {
24
+ if (!nativePromise) {
25
+ nativePromise = import('@mikrojs/native').catch((err) => {
26
+ // Reset so the next call can try again (e.g. after a rebuild).
27
+ nativePromise = null;
28
+ const detail = err instanceof Error ? err.message : String(err);
29
+ throw new Error(`Failed to load @mikrojs/native (required for bytecode / JSON compilation). ` +
30
+ `Try rebuilding the native addon: pnpm -F @mikrojs/native build:native\n\n` +
31
+ `Underlying error: ${detail}`);
32
+ });
33
+ }
34
+ return nativePromise;
35
+ }
36
+ /** esbuild plugin that marks mikrojs firmware builtins as external so the
37
+ * on-device loader resolves them against the baked-in bytecode table instead
38
+ * of esbuild trying to inline their source. Pure-JS `@mikrojs/*` packages
39
+ * (no ./cmake export) fall through to normal resolution and get bundled. */
40
+ function mikrojsExternalsPlugin() {
41
+ return {
42
+ name: 'mikrojs-externals',
43
+ setup(build) {
44
+ build.onResolve({ filter: /^(mikrojs$|mikrojs\/|native:)/ }, (args) => ({
45
+ path: args.path,
46
+ external: true,
47
+ }));
48
+ build.onResolve({ filter: /^@mikrojs\// }, (args) => {
49
+ if (isFirmwareBuiltin(args.path)) {
50
+ return { path: args.path, external: true };
51
+ }
52
+ return null;
53
+ });
54
+ },
55
+ };
56
+ }
57
+ /** Check if an @mikrojs/* package is a firmware builtin (has native code).
58
+ * Firmware builtins export ./cmake which provides ESP-IDF component paths. */
59
+ const firmwareBuiltinCache = new Map();
60
+ function isFirmwareBuiltin(id) {
61
+ // Extract package name from import specifier (e.g. "@mikrojs/some-board/some-variant" -> "@mikrojs/some-board")
62
+ const parts = id.split('/');
63
+ const pkgName = parts.length >= 2 && parts[0].startsWith('@') ? `${parts[0]}/${parts[1]}` : parts[0];
64
+ if (firmwareBuiltinCache.has(pkgName))
65
+ return firmwareBuiltinCache.get(pkgName);
66
+ try {
67
+ require.resolve(`${pkgName}/cmake`);
68
+ firmwareBuiltinCache.set(pkgName, true);
69
+ return true;
70
+ }
71
+ catch {
72
+ firmwareBuiltinCache.set(pkgName, false);
73
+ return false;
74
+ }
75
+ }
76
+ function phase(name) {
77
+ return of({ type: 'phase', phase: name });
78
+ }
79
+ async function collectOutputFiles(buildDir) {
80
+ const entries = await readdir(buildDir, { recursive: true });
81
+ const events = [];
82
+ for (const entry of entries) {
83
+ const full = pathlib.join(buildDir, entry);
84
+ const s = await stat(full);
85
+ if (s.isFile()) {
86
+ events.push({ type: 'file', path: '/' + entry, size: s.size });
87
+ }
88
+ }
89
+ return events;
90
+ }
91
+ const SKIP = Promise.resolve([]);
92
+ export async function trace(entries) {
93
+ const { fileList, warnings, sourcePathMap } = await nodeFileTrace(entries, {
94
+ analysis: { evaluatePureExpressions: true },
95
+ conditions: ['import'],
96
+ assetExtensions: ['.txt'],
97
+ ts: true,
98
+ resolve: (id, parent, job) => {
99
+ if (isBuiltinModule(id)) {
100
+ return SKIP;
101
+ }
102
+ // Skip @mikrojs/* packages that are firmware builtins (have native code).
103
+ // These have a ./cmake export. Pure JS @mikrojs/* packages are bundled normally.
104
+ if (id.startsWith('@mikrojs/') && isFirmwareBuiltin(id)) {
105
+ return SKIP;
106
+ }
107
+ return traceResolve(id, parent, job);
108
+ },
109
+ });
110
+ return {
111
+ fileList: [...fileList],
112
+ warnings: [...warnings],
113
+ sourcePathMap,
114
+ };
115
+ }
116
+ export function loadConfig(entry) {
117
+ return loadMikroConfig(pathlib.dirname(pathlib.resolve(entry)));
118
+ }
119
+ export function build(entry, buildDir, options) {
120
+ // rootDir is the directory that becomes the root of the deploy tree.
121
+ // Files outside it are co-located into it (so node_modules/ is findable by
122
+ // the on-device module resolver). Files inside it keep their relative
123
+ // position, which matters for bytecode: the baked-in module name is the
124
+ // file's buildDir-relative path, and must match the on-device deploy path.
125
+ // Defaults to dirname(entry). Test runner overrides with the user's app dir
126
+ // so that tests deeper than entry's parent still co-locate correctly.
127
+ const rootDir = options.rootDir ?? pathlib.dirname(entry);
128
+ return defer(() => loadConfig(entry)).pipe(mergeMap((config) => {
129
+ const shouldBundle = options.bundle ?? config?.build?.bundle ?? false;
130
+ const minifier = options.minifier ?? config?.build?.minifier ?? 'esbuild';
131
+ const minifyLevel = options.minifyLevel ?? config?.build?.minifyLevel ?? 'default';
132
+ const logLevel = options.logLevel ?? config?.build?.logLevel ?? 'debug';
133
+ const pureFuncs = LOG_LEVEL_PURE_FUNCS[logLevel];
134
+ const entryJs = entry.replace(/\.ts$/, '.js');
135
+ const entryOutputPath = rootDir === '.' || entryJs.startsWith(rootDir + '/')
136
+ ? entryJs
137
+ : pathlib.join(rootDir, entryJs);
138
+ const writeFilesUnbundled = defer(() => trace([entry])).pipe(mergeMap(({ warnings, fileList, sourcePathMap }) => {
139
+ if (warnings?.length > 0) {
140
+ return throwError(() => new Error([...warnings].join('\n')));
141
+ }
142
+ return from(fileList).pipe(mergeMap(async (file) => {
143
+ // Use sourcePathMap to read from the real path on disk when the
144
+ // output path is a virtual path (e.g. pnpm transitive dependencies)
145
+ const sourcePath = sourcePathMap.get(file) ?? file;
146
+ return transform(file, await readFile(sourcePath), {
147
+ minify: options.minify,
148
+ minifier,
149
+ minifyLevel,
150
+ pureFuncs,
151
+ });
152
+ }), mergeMap(({ path: filePath, contents }) => {
153
+ // Place files outside rootDir (e.g. node_modules/ when rootDir
154
+ // is a subdirectory) inside rootDir so the on-device module
155
+ // resolver can find them when walking up from the entry.
156
+ const outputPath = rootDir === '.' || filePath.startsWith(rootDir + '/')
157
+ ? filePath
158
+ : pathlib.join(rootDir, filePath);
159
+ return output(buildDir, outputPath, contents);
160
+ }));
161
+ }));
162
+ const writeFilesBundled = defer(async () => {
163
+ const esbuild = await import('esbuild');
164
+ const useEsbuildMinify = options.minify && minifier === 'esbuild';
165
+ // Virtual outdir: write: false means esbuild never touches disk, but
166
+ // splitting: true still needs an outdir to compute chunk paths.
167
+ // Pairing it with outbase = dirname(entry) makes the entry chunk
168
+ // land at `<outdir>/<entry-basename>.js` with shared chunks as
169
+ // siblings, so relative() gives us clean, prefix-free paths.
170
+ const virtualOutdir = pathlib.resolve(process.cwd(), '__mikro_bundle_out__');
171
+ const entryDir = pathlib.dirname(entry);
172
+ const result = await esbuild.build({
173
+ entryPoints: [entry],
174
+ bundle: true,
175
+ splitting: true,
176
+ outdir: virtualOutdir,
177
+ outbase: entryDir,
178
+ write: false,
179
+ minify: useEsbuildMinify,
180
+ treeShaking: true,
181
+ target: 'es2024',
182
+ platform: 'neutral',
183
+ format: 'esm',
184
+ legalComments: 'none',
185
+ logLevel: 'silent',
186
+ plugins: [mikrojsExternalsPlugin()],
187
+ ...(pureFuncs.length > 0 ? { pure: pureFuncs } : undefined),
188
+ });
189
+ if (result.errors.length > 0) {
190
+ throw new Error(result.errors.map((e) => e.text).join('\n'));
191
+ }
192
+ if (!result.outputFiles || result.outputFiles.length === 0) {
193
+ throw new Error('esbuild produced no output');
194
+ }
195
+ const outputPrefix = pathlib.dirname(entryOutputPath);
196
+ for (const outFile of result.outputFiles) {
197
+ let code = outFile.text;
198
+ if (options.minify && minifier !== 'esbuild') {
199
+ code = await minifyJs(code, minifier, minifyLevel, pureFuncs);
200
+ }
201
+ const rel = pathlib.relative(virtualOutdir, outFile.path);
202
+ const outputPath = outputPrefix === '.' || outputPrefix === '' ? rel : pathlib.join(outputPrefix, rel);
203
+ await output(buildDir, outputPath, code);
204
+ }
205
+ });
206
+ const writeFiles = shouldBundle ? writeFilesBundled : writeFilesUnbundled;
207
+ const writeConfig = defer(() => {
208
+ if (config === null)
209
+ return EMPTY;
210
+ // Strip sim + build sections: they're CLI/host-only and meaningless
211
+ // on device.
212
+ const { sim: _sim, build: _build, ...runtimeConfig } = config;
213
+ // Normalize K/M-suffixed sizes to plain numbers so the device-side
214
+ // JSON parser (mik_app_config.cpp) can read them without shipping a
215
+ // suffix parser into flash.
216
+ if (runtimeConfig.fsReadMax !== undefined) {
217
+ runtimeConfig.fsReadMax = parseSize(runtimeConfig.fsReadMax);
218
+ }
219
+ return output(buildDir, pathlib.join(rootDir, 'mikro.config.json'), JSON.stringify(runtimeConfig));
220
+ });
221
+ // Write package.json into the app directory with name, version, type, and main
222
+ const writePackageJson = defer(async () => {
223
+ const pkgPath = pathlib.join(process.cwd(), 'package.json');
224
+ const pkg = JSON.parse(await readFile(pkgPath, 'utf-8'));
225
+ // Mirror writeFiles' co-locate logic: files outside rootDir are
226
+ // placed under it (e.g. `test/x.test.ts` with rootDir=`app` lands at
227
+ // `app/test/x.test.js`). The package.json main must therefore be the
228
+ // file's path relative to rootDir *after* that placement, not a
229
+ // naive pathlib.relative which would produce "../test/..." for
230
+ // cross-parent entries and point outside /app on device.
231
+ const mainPath = rootDir === '.' || entryJs.startsWith(rootDir + '/')
232
+ ? pathlib.relative(rootDir, entryJs)
233
+ : entryJs;
234
+ return output(buildDir, pathlib.join(rootDir, 'package.json'), JSON.stringify({
235
+ name: pkg.name,
236
+ version: pkg.version,
237
+ type: pkg.type,
238
+ main: `./${mainPath}`,
239
+ }));
240
+ });
241
+ // Locate the project's static/ directory by walking up from the
242
+ // entry's parent until we find one. This handles both the
243
+ // `mikro deploy` case (entry = app/main.ts → static at app/static/)
244
+ // and the `mikro test` case (entry = app/**/x.test.ts → still
245
+ // resolves the same app/static/ by walking up). The search stops
246
+ // at the cwd so a user running from the wrong directory doesn't
247
+ // accidentally pick up an unrelated static dir.
248
+ const staticDir = (() => {
249
+ let dir = pathlib.dirname(entry);
250
+ while (dir !== '.' && dir !== '' && dir !== '/') {
251
+ const candidate = pathlib.join(dir, 'static');
252
+ if (existsSync(candidate))
253
+ return candidate;
254
+ const parent = pathlib.dirname(dir);
255
+ if (parent === dir)
256
+ break;
257
+ dir = parent;
258
+ }
259
+ const rootCandidate = 'static';
260
+ if (existsSync(rootCandidate))
261
+ return rootCandidate;
262
+ return null;
263
+ })();
264
+ // On-device output path mirrors the source layout so read sites
265
+ // like `readFile('/app/static/…')` resolve the same deployed path
266
+ // regardless of which entry the build was run with.
267
+ const staticOutputDir = staticDir ?? pathlib.join(rootDir, 'static');
268
+ let staticFiles = [];
269
+ const writeStatic = defer(async () => {
270
+ if (!staticDir)
271
+ return;
272
+ try {
273
+ const s = await stat(staticDir);
274
+ if (s.isDirectory()) {
275
+ staticFiles = await copyStaticDir(staticDir, buildDir, staticOutputDir);
276
+ }
277
+ }
278
+ catch {
279
+ // No static directory — nothing to copy
280
+ }
281
+ });
282
+ return concat(phase(shouldBundle ? 'Bundling' : 'Tracing imports'), defer(() => rm(buildDir, { force: true, recursive: true })).pipe(ignoreElements()), writeFiles.pipe(ignoreElements()), writePackageJson.pipe(ignoreElements()), writeConfig.pipe(ignoreElements()), writeStatic.pipe(ignoreElements()), options.bytecode
283
+ ? concat(phase('Compiling bytecode'), defer(() => {
284
+ const keepPlain = new Set([
285
+ pathlib.resolve(buildDir, rootDir, 'package.json'),
286
+ pathlib.resolve(buildDir, rootDir, 'mikro.config.json'),
287
+ ...staticFiles,
288
+ ]);
289
+ return compileJson(buildDir, keepPlain);
290
+ }).pipe(ignoreElements()), defer(() => {
291
+ const skip = new Set(staticFiles);
292
+ return compileBytecode(buildDir, skip);
293
+ }).pipe(ignoreElements()))
294
+ : EMPTY, defer(() => collectOutputFiles(buildDir)).pipe(mergeMap((events) => from(events))), of({ type: 'done' }));
295
+ }));
296
+ }
297
+ /**
298
+ * Build multiple test files into one unbundled deploy tree. Writes a
299
+ * synthesized package.json carrying a `tests` array that the firmware
300
+ * supervisor uses as its sole "test mode" signal. Each path runs in
301
+ * its own fresh runtime through one transport session.
302
+ *
303
+ * Always unbundled (bundling would defeat per-file isolation and
304
+ * inflates deploy size via duplicated shared deps). No `main` field:
305
+ * the supervisor drives iteration from `tests`, and leaving `main` out
306
+ * makes the intent obvious to anyone reading the deployed bundle.
307
+ */
308
+ export function buildTests(entries, buildDir, options) {
309
+ if (entries.length === 0) {
310
+ return throwError(() => new Error('buildTests: no entries'));
311
+ }
312
+ const rootDir = options.rootDir;
313
+ // Load config from the first entry's directory; assume all tests share a project.
314
+ return defer(() => loadConfig(entries[0])).pipe(mergeMap((config) => {
315
+ const minifier = options.minifier ?? config?.build?.minifier ?? 'esbuild';
316
+ const minifyLevel = options.minifyLevel ?? config?.build?.minifyLevel ?? 'default';
317
+ const logLevel = options.logLevel ?? config?.build?.logLevel ?? 'debug';
318
+ const pureFuncs = LOG_LEVEL_PURE_FUNCS[logLevel];
319
+ // Compute the on-device path for each entry, mirroring writeFiles'
320
+ // co-locate logic: files outside rootDir land under it.
321
+ const toOutputPath = (src) => {
322
+ const js = src.replace(/\.ts$/, '.js');
323
+ return rootDir === '.' || js.startsWith(rootDir + '/') ? js : pathlib.join(rootDir, js);
324
+ };
325
+ const entryOutputs = entries.map(toOutputPath);
326
+ const writeFiles = defer(() => trace(entries)).pipe(mergeMap(({ warnings, fileList, sourcePathMap }) => {
327
+ if (warnings?.length > 0) {
328
+ return throwError(() => new Error([...warnings].join('\n')));
329
+ }
330
+ return from(fileList).pipe(mergeMap(async (file) => {
331
+ const sourcePath = sourcePathMap.get(file) ?? file;
332
+ return transform(file, await readFile(sourcePath), {
333
+ minify: options.minify,
334
+ minifier,
335
+ minifyLevel,
336
+ pureFuncs,
337
+ });
338
+ }), mergeMap(({ path: filePath, contents }) => {
339
+ const outputPath = rootDir === '.' || filePath.startsWith(rootDir + '/')
340
+ ? filePath
341
+ : pathlib.join(rootDir, filePath);
342
+ return output(buildDir, outputPath, contents);
343
+ }));
344
+ }));
345
+ const writePackageJson = defer(async () => {
346
+ const pkgPath = pathlib.join(process.cwd(), 'package.json');
347
+ const pkg = JSON.parse(await readFile(pkgPath, 'utf-8'));
348
+ // Paths in the manifest are relative to rootDir, so the firmware
349
+ // resolves them against /appfs/<rootDir>/ via MIK_LoadTests.
350
+ const relToRoot = (out) => rootDir === '.' || out.startsWith(rootDir + '/') ? pathlib.relative(rootDir, out) : out;
351
+ const tests = entryOutputs.map((o) => `./${relToRoot(o)}`);
352
+ return output(buildDir, pathlib.join(rootDir, 'package.json'), JSON.stringify({
353
+ name: pkg.name,
354
+ version: pkg.version,
355
+ type: pkg.type,
356
+ tests,
357
+ }));
358
+ });
359
+ const writeConfig = defer(() => {
360
+ if (config === null)
361
+ return EMPTY;
362
+ const { sim: _sim, build: _build, ...runtimeConfig } = config;
363
+ if (runtimeConfig.fsReadMax !== undefined) {
364
+ runtimeConfig.fsReadMax = parseSize(runtimeConfig.fsReadMax);
365
+ }
366
+ return output(buildDir, pathlib.join(rootDir, 'mikro.config.json'), JSON.stringify(runtimeConfig));
367
+ });
368
+ // Locate static/ by walking up from the first entry (same heuristic
369
+ // as build()). All tests in one project share one static dir.
370
+ const staticDir = (() => {
371
+ let dir = pathlib.dirname(entries[0]);
372
+ while (dir !== '.' && dir !== '' && dir !== '/') {
373
+ const candidate = pathlib.join(dir, 'static');
374
+ if (existsSync(candidate))
375
+ return candidate;
376
+ const parent = pathlib.dirname(dir);
377
+ if (parent === dir)
378
+ break;
379
+ dir = parent;
380
+ }
381
+ const rootCandidate = 'static';
382
+ if (existsSync(rootCandidate))
383
+ return rootCandidate;
384
+ return null;
385
+ })();
386
+ const staticOutputDir = staticDir ?? pathlib.join(rootDir, 'static');
387
+ let staticFiles = [];
388
+ const writeStatic = defer(async () => {
389
+ if (!staticDir)
390
+ return;
391
+ try {
392
+ const s = await stat(staticDir);
393
+ if (s.isDirectory()) {
394
+ staticFiles = await copyStaticDir(staticDir, buildDir, staticOutputDir);
395
+ }
396
+ }
397
+ catch {
398
+ // No static directory — nothing to copy
399
+ }
400
+ });
401
+ return concat(phase('Tracing imports'), defer(() => rm(buildDir, { force: true, recursive: true })).pipe(ignoreElements()), writeFiles.pipe(ignoreElements()), writePackageJson.pipe(ignoreElements()), writeConfig.pipe(ignoreElements()), writeStatic.pipe(ignoreElements()), options.bytecode
402
+ ? concat(phase('Compiling bytecode'), defer(() => {
403
+ const keepPlain = new Set([
404
+ pathlib.resolve(buildDir, rootDir, 'package.json'),
405
+ pathlib.resolve(buildDir, rootDir, 'mikro.config.json'),
406
+ ...staticFiles,
407
+ ]);
408
+ return compileJson(buildDir, keepPlain);
409
+ }).pipe(ignoreElements()), defer(() => {
410
+ const skip = new Set(staticFiles);
411
+ return compileBytecode(buildDir, skip);
412
+ }).pipe(ignoreElements()))
413
+ : EMPTY, defer(() => collectOutputFiles(buildDir)).pipe(mergeMap((events) => from(events))), of({ type: 'done' }));
414
+ }));
415
+ }
416
+ function extractImports(source) {
417
+ const imports = new Set();
418
+ for (const match of source.matchAll(/from\s*["']([^"']+)["']/g)) {
419
+ imports.add(match[1]);
420
+ }
421
+ for (const match of source.matchAll(/import\s*["']([^"']+)["']/g)) {
422
+ imports.add(match[1]);
423
+ }
424
+ return [...imports];
425
+ }
426
+ async function findFilesByExt(dir, ext) {
427
+ const entries = await readdir(dir, { withFileTypes: true });
428
+ const files = [];
429
+ for (const entry of entries) {
430
+ const fullPath = pathlib.join(dir, entry.name);
431
+ if (entry.isDirectory()) {
432
+ files.push(...(await findFilesByExt(fullPath, ext)));
433
+ }
434
+ else if (entry.name.endsWith(ext)) {
435
+ files.push(fullPath);
436
+ }
437
+ }
438
+ return files;
439
+ }
440
+ function compileBytecode(buildDir, skip) {
441
+ return defer(() => findFilesByExt(buildDir, '.js')).pipe(mergeMap((files) => from(files)), filter((file) => !skip?.has(pathlib.resolve(file))), mergeMap(async (file) => {
442
+ const { compileBytecode: nativeCompileBytecode } = await loadNative();
443
+ const source = await readFile(file, 'utf-8');
444
+ const imports = extractImports(source);
445
+ const relPath = pathlib.relative(buildDir, file);
446
+ const moduleName = `/${relPath}`;
447
+ const moduleDir = pathlib.dirname(moduleName);
448
+ const externals = imports.map((imp) => {
449
+ if (imp.startsWith('.')) {
450
+ return pathlib.join(moduleDir, imp);
451
+ }
452
+ return imp;
453
+ });
454
+ const outFile = file.replace(/\.js$/, '.bjs');
455
+ const bytecode = nativeCompileBytecode(source, moduleName, externals);
456
+ await writeFile(outFile, bytecode);
457
+ await unlink(file);
458
+ }, 4));
459
+ }
460
+ function compileJson(buildDir, keepPlain) {
461
+ return defer(() => findFilesByExt(buildDir, '.json')).pipe(mergeMap((files) => from(files)), filter((file) => !keepPlain.has(pathlib.resolve(file))), mergeMap(async (file) => {
462
+ const { jsonToBjson } = await loadNative();
463
+ const json = await readFile(file, 'utf-8');
464
+ const bjson = jsonToBjson(json);
465
+ const outFile = file.replace(/\.json$/, '.bjson');
466
+ await writeFile(outFile, bjson);
467
+ await unlink(file);
468
+ }, 4));
469
+ }
470
+ async function copyStaticDir(srcDir, buildDir, outputBase) {
471
+ const copied = [];
472
+ const entries = await readdir(srcDir, { withFileTypes: true });
473
+ for (const entry of entries) {
474
+ const srcPath = pathlib.join(srcDir, entry.name);
475
+ const outRel = pathlib.join(outputBase, entry.name);
476
+ if (entry.isDirectory()) {
477
+ copied.push(...(await copyStaticDir(srcPath, buildDir, outRel)));
478
+ }
479
+ else {
480
+ const data = await readFile(srcPath);
481
+ await output(buildDir, outRel, data);
482
+ copied.push(pathlib.resolve(buildDir, outRel));
483
+ }
484
+ }
485
+ return copied;
486
+ }
487
+ async function transform(path, contents, options) {
488
+ const parsedPath = pathlib.parse(path);
489
+ if (parsedPath.ext === '.ts') {
490
+ let code = stripTypeScriptTypes(contents.toString(), { mode: 'strip' });
491
+ if (options.minify) {
492
+ code = await minifyJs(code, options.minifier, options.minifyLevel, options.pureFuncs);
493
+ }
494
+ return {
495
+ path: pathlib.format({
496
+ ...parsedPath,
497
+ base: pathlib.basename(parsedPath.base, parsedPath.ext) + '.js',
498
+ }),
499
+ contents: code,
500
+ };
501
+ }
502
+ if (parsedPath.ext === '.js' || parsedPath.ext === '.mjs') {
503
+ if (options.minify) {
504
+ return {
505
+ path,
506
+ contents: await minifyJs(contents.toString(), options.minifier, options.minifyLevel, options.pureFuncs),
507
+ };
508
+ }
509
+ return { path, contents };
510
+ }
511
+ if (parsedPath.base === 'package.json') {
512
+ return {
513
+ path,
514
+ contents: JSON.stringify(trimPackageJson(JSON.parse(contents.toString()))),
515
+ };
516
+ }
517
+ return { path, contents };
518
+ }
519
+ async function output(outputPath, filePath, contents) {
520
+ const dest = pathlib.join(outputPath, filePath);
521
+ const dirname = pathlib.dirname(dest);
522
+ await mkdir(dirname, { recursive: true });
523
+ return writeFile(dest, contents);
524
+ }
525
+ function trimPackageJson(pkgJson) {
526
+ return {
527
+ name: pkgJson.name,
528
+ version: pkgJson.version,
529
+ type: 'module',
530
+ exports: pkgJson.publishConfig?.exports || pkgJson.exports,
531
+ };
532
+ }
533
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/lib/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Shared helper for creating a simulator ReplSession.
3
+ *
4
+ * Used by all `mikro sim *` commands: spawns the simulator subprocess,
5
+ * wraps it as a Transport, and creates a ReplSession via connectRepl.
6
+ */
7
+ import { type ReplSession } from './session.js';
8
+ import type { ResolvedSimConfig } from './simConfig.js';
9
+ import type { Transport } from './transport.js';
10
+ export interface ConnectSimOptions {
11
+ /** Path to project directory containing sim/ stub overrides. */
12
+ simDir?: string;
13
+ /** Override mem limit (only used by `mikro sim profile`). */
14
+ memLimitOverride?: number;
15
+ }
16
+ export interface SimConnection {
17
+ session: ReplSession;
18
+ transport: Transport;
19
+ }
20
+ export declare function connectSim(sim: ResolvedSimConfig, options?: ConnectSimOptions): SimConnection;
21
+ //# sourceMappingURL=connectSim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectSim.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/connectSim.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAc,KAAK,WAAW,EAAC,MAAM,cAAc,CAAA;AAC1D,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAA;AAErD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAA;AAE7C,MAAM,WAAW,iBAAiB;IAChC,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,GAAE,iBAAsB,GAAG,aAAa,CAUjG"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Shared helper for creating a simulator ReplSession.
3
+ *
4
+ * Used by all `mikro sim *` commands: spawns the simulator subprocess,
5
+ * wraps it as a Transport, and creates a ReplSession via connectRepl.
6
+ */
7
+ import { connectRepl } from './session.js';
8
+ import { createSimTransport } from './simTransport.js';
9
+ export function connectSim(sim, options = {}) {
10
+ const transport = createSimTransport({
11
+ fsRoot: sim.fsRoot,
12
+ memLimit: options.memLimitOverride ?? sim.memLimit,
13
+ fsLimit: sim.fsLimit,
14
+ fsReadMax: sim.fsReadMax,
15
+ simDir: options.simDir,
16
+ });
17
+ const session = connectRepl(transport);
18
+ return { session, transport };
19
+ }
20
+ //# sourceMappingURL=connectSim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectSim.js","sourceRoot":"","sources":["../../../src/cli/lib/connectSim.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,WAAW,EAAmB,MAAM,cAAc,CAAA;AAE1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAepD,MAAM,UAAU,UAAU,CAAC,GAAsB,EAAE,UAA6B,EAAE;IAChF,MAAM,SAAS,GAAG,kBAAkB,CAAC;QACnC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,OAAO,CAAC,gBAAgB,IAAI,GAAG,CAAC,QAAQ;QAClD,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IACtC,OAAO,EAAC,OAAO,EAAE,SAAS,EAAC,CAAA;AAC7B,CAAC"}