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,59 @@
1
+ /* eslint-disable no-console */
2
+ import { existsSync, rmSync } from 'node:fs';
3
+ import * as pathlib from 'node:path';
4
+ import * as readline from 'node:readline/promises';
5
+ import { command, constant, message, optional } from '@optique/core';
6
+ import { object } from '@optique/core/constructs';
7
+ import { flag } from '@optique/core/primitives';
8
+ import figures from 'figures';
9
+ import { getMikroDir } from '../../lib/projectRoot.js';
10
+ import { checkPid, SimAlreadyRunningError } from '../../lib/simPid.js';
11
+ const green = (s) => `\x1b[32m${s}\x1b[0m`;
12
+ const yellow = (s) => `\x1b[33m${s}\x1b[0m`;
13
+ const red = (s) => `\x1b[31m${s}\x1b[0m`;
14
+ export const args = command('reset', object({
15
+ subcommand: constant('reset'),
16
+ yes: optional(flag('-y', '--yes', { description: message `Skip confirmation prompt` })),
17
+ }), {
18
+ description: message `Erase the entire simulator state (filesystem + environment variables)`,
19
+ });
20
+ export async function run(config) {
21
+ const mikroDir = getMikroDir();
22
+ try {
23
+ checkPid(mikroDir);
24
+ }
25
+ catch (err) {
26
+ if (err instanceof SimAlreadyRunningError) {
27
+ console.error(`${red(figures.cross)} ${err.message}`);
28
+ process.exit(1);
29
+ }
30
+ throw err;
31
+ }
32
+ if (config.yes !== true) {
33
+ if (!process.stdin.isTTY) {
34
+ console.error(red('Error: refusing to reset without confirmation. Pass -y to skip.'));
35
+ process.exit(1);
36
+ }
37
+ const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
38
+ try {
39
+ console.error(`${yellow(figures.warning)} This will erase the simulator filesystem and environment variables.`);
40
+ const answer = await rl.question('Continue? (y/N) ');
41
+ if (answer.toLowerCase() !== 'y')
42
+ return;
43
+ }
44
+ finally {
45
+ rl.close();
46
+ }
47
+ }
48
+ const simFs = pathlib.join(mikroDir, 'sim-fs');
49
+ const nvsJson = pathlib.join(mikroDir, 'nvs.json');
50
+ const deployEnv = pathlib.join(mikroDir, 'deploy-env.json');
51
+ if (existsSync(simFs))
52
+ rmSync(simFs, { recursive: true, force: true });
53
+ if (existsSync(nvsJson))
54
+ rmSync(nvsJson, { force: true });
55
+ if (existsSync(deployEnv))
56
+ rmSync(deployEnv, { force: true });
57
+ console.error(`${green(figures.tick)} Simulator reset`);
58
+ }
59
+ //# sourceMappingURL=reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../../src/cli/commands/sim/reset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare const args: import("@optique/core").Parser<"sync", {
2
+ readonly subcommand: "scaffold";
3
+ readonly overwrite: true | undefined;
4
+ }, ["matched", string] | ["parsing", {
5
+ readonly subcommand: "scaffold";
6
+ readonly overwrite: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
7
+ }] | undefined>;
8
+ export declare function run(config: {
9
+ overwrite?: boolean;
10
+ }): void;
11
+ //# sourceMappingURL=scaffold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/sim/scaffold.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,IAAI;;;;;;eAOhB,CAAA;AAED,wBAAgB,GAAG,CAAC,MAAM,EAAE;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAC,GAAG,IAAI,CA8BvD"}
@@ -0,0 +1,41 @@
1
+ /* eslint-disable no-console */
2
+ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
3
+ import * as pathlib from 'node:path';
4
+ import { command, constant, message, optional } from '@optique/core';
5
+ import { object } from '@optique/core/constructs';
6
+ import { flag } from '@optique/core/primitives';
7
+ import { getScaffoldTemplate, SCAFFOLDABLE_BUILTINS } from '../../../simulator/simTemplates.js';
8
+ export const args = command('scaffold', object({
9
+ subcommand: constant('scaffold'),
10
+ overwrite: optional(flag('--overwrite', { description: message `Overwrite existing stub files` })),
11
+ }), { description: message `Generate simulator stub files for hardware builtins in sim/` });
12
+ export function run(config) {
13
+ const overwrite = config.overwrite === true;
14
+ const simDir = pathlib.join(process.cwd(), 'sim');
15
+ let created = 0;
16
+ for (const name of SCAFFOLDABLE_BUILTINS) {
17
+ const template = getScaffoldTemplate(name);
18
+ if (!template)
19
+ continue;
20
+ const filePath = pathlib.join(simDir, `${name}.stub.ts`);
21
+ const exists = existsSync(filePath);
22
+ if (exists && !overwrite) {
23
+ console.log(` skip sim/${name}.stub.ts (already exists)`);
24
+ continue;
25
+ }
26
+ mkdirSync(simDir, { recursive: true });
27
+ writeFileSync(filePath, template);
28
+ console.log(` ${exists ? 'overwrite' : 'create '} sim/${name}.stub.ts`);
29
+ created++;
30
+ }
31
+ if (created === 0) {
32
+ console.log('All stubs already exist (use --overwrite to replace)');
33
+ }
34
+ else {
35
+ console.log(`\nCreated ${created} stub(s) in sim/`);
36
+ console.log('Edit them to customize hardware behavior for development and testing.');
37
+ console.log('Note: stubs run inside the mikrojs runtime (QuickJS), not Node.js.');
38
+ console.log('Node built-ins (fs, fetch, etc.) are not available.');
39
+ }
40
+ }
41
+ //# sourceMappingURL=scaffold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../../src/cli/commands/sim/scaffold.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAC,MAAM,SAAS,CAAA;AAC5D,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAA;AAClE,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAC,IAAI,EAAC,MAAM,0BAA0B,CAAA;AAG7C,OAAO,EAAC,mBAAmB,EAAE,qBAAqB,EAAC,MAAM,oCAAoC,CAAA;AAE7F,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CACzB,UAAU,EACV,MAAM,CAAC;IACL,UAAU,EAAE,QAAQ,CAAC,UAAmB,CAAC;IACzC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAC,WAAW,EAAE,OAAO,CAAA,+BAA+B,EAAC,CAAC,CAAC;CAChG,CAAC,EACF,EAAC,WAAW,EAAE,OAAO,CAAA,6DAA6D,EAAC,CACpF,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,MAA6B;IAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,IAAI,CAAA;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAA;IACjD,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAmB,CAAC,CAAA;QACzD,IAAI,CAAC,QAAQ;YAAE,SAAQ;QAEvB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,CAAA;QACxD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QACnC,IAAI,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,2BAA2B,CAAC,CAAA;YAChE,SAAQ;QACV,CAAC;QAED,SAAS,CAAC,MAAM,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAA;QACpC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,SAAS,IAAI,UAAU,CAAC,CAAA;QAC3E,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAA;IACrE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,kBAAkB,CAAC,CAAA;QACnD,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAA;QACpF,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAA;QACjF,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAA;IACpE,CAAC;AACH,CAAC"}
@@ -0,0 +1,49 @@
1
+ export declare const args: import("@optique/core").Parser<"sync", {
2
+ readonly subcommand: "test";
3
+ readonly filters: readonly string[];
4
+ readonly env: string | undefined;
5
+ readonly secrets: string | undefined;
6
+ readonly noEnvFile: true | undefined;
7
+ readonly noMinify: true | undefined;
8
+ readonly minifier: string | undefined;
9
+ readonly minifyLevel: string | undefined;
10
+ readonly noBytecode: true | undefined;
11
+ readonly timeout: string | undefined;
12
+ readonly updateHeapBaselines: true | undefined;
13
+ readonly diagnostics: true | undefined;
14
+ readonly json: true | undefined;
15
+ readonly agent: true | undefined;
16
+ }, ["matched", string] | ["parsing", {
17
+ readonly subcommand: "test";
18
+ readonly filters: readonly (import("@optique/core").ValueParserResult<string> | undefined)[];
19
+ readonly env: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
20
+ readonly secrets: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
21
+ readonly noEnvFile: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
22
+ readonly noMinify: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
23
+ readonly minifier: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
24
+ readonly minifyLevel: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
25
+ readonly noBytecode: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
26
+ readonly timeout: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
27
+ readonly updateHeapBaselines: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
28
+ readonly diagnostics: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
29
+ readonly json: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
30
+ readonly agent: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
31
+ }] | undefined>;
32
+ interface RunConfig {
33
+ filters?: readonly string[];
34
+ env?: string;
35
+ secrets?: string;
36
+ noEnvFile?: boolean;
37
+ noMinify?: boolean;
38
+ minifier?: string;
39
+ minifyLevel?: string;
40
+ noBytecode?: boolean;
41
+ timeout?: string;
42
+ updateHeapBaselines?: boolean;
43
+ diagnostics?: boolean;
44
+ json?: boolean;
45
+ agent?: boolean;
46
+ }
47
+ export declare function run(config: RunConfig): Promise<void>;
48
+ export {};
49
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/sim/test.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA+ChB,CAAA;AASD,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,wBAAsB,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAoK1D"}
@@ -0,0 +1,364 @@
1
+ /* eslint-disable no-console */
2
+ import * as pathlib from 'node:path';
3
+ import { command, constant, message, multiple, optional } from '@optique/core';
4
+ import { object } from '@optique/core/constructs';
5
+ import { argument, flag, option } from '@optique/core/primitives';
6
+ import { string } from '@optique/core/valueparser';
7
+ import { agentEmit, agentError, agentResult, isAgentMode } from '../../lib/agent.js';
8
+ import { loadEnvFiles } from '../../lib/deploy.js';
9
+ import { openSim } from '../../lib/openSim.js';
10
+ import { parseMinifier, parseMinifyLevel } from '../../lib/parseMinifier.js';
11
+ import { getMikroDir, resolveProjectRoot } from '../../lib/projectRoot.js';
12
+ import { SimAlreadyRunningError } from '../../lib/simPid.js';
13
+ import { discoverTestFiles, runTestManifest, } from '../../lib/testRunner.js';
14
+ export const args = command('test', object({
15
+ subcommand: constant('test'),
16
+ filters: multiple(argument(string({ metavar: 'PATH_OR_PATTERN' }), {
17
+ description: message `Test file paths and/or glob patterns. Pass one or more. Default: **/*.test.ts`,
18
+ })),
19
+ env: optional(option('--env', string({ metavar: 'FILE' }))),
20
+ secrets: optional(option('--secrets', string({ metavar: 'FILE' }))),
21
+ noEnvFile: optional(flag('--no-env-file', {
22
+ description: message `Skip auto-loading of .env and .env.simulator from the project root`,
23
+ })),
24
+ noMinify: optional(flag('--no-minify', { description: message `Skip minification` })),
25
+ minifier: optional(option('--minifier', string({ metavar: 'NAME' }), {
26
+ description: message `Minifier: esbuild, terser, or swc (default: esbuild)`,
27
+ })),
28
+ minifyLevel: optional(option('--minify-level', string({ metavar: 'LEVEL' }), {
29
+ description: message `Minify level: default or max`,
30
+ })),
31
+ noBytecode: optional(flag('--no-bytecode', { description: message `Skip bytecode compilation` })),
32
+ timeout: optional(option('-t', '--timeout', string({ metavar: 'MS' }), {
33
+ description: message `Per-file timeout in ms (default: 60000)`,
34
+ })),
35
+ updateHeapBaselines: optional(flag('--update-heap-baselines', {
36
+ description: message `Overwrite per-file heap-baseline snapshots (<name>.test.heap-baseline.json) with the current run's heapDelta, keyed by the current chip.`,
37
+ })),
38
+ diagnostics: optional(flag('--diagnostics', {
39
+ description: message `Show per-test heap progress and other runtime diagnostics`,
40
+ })),
41
+ json: optional(flag('--json', { description: message `Output as JSON` })),
42
+ agent: optional(flag('--agent', { description: message `NDJSON agent mode` })),
43
+ }), { description: message `Run *.test.ts files in the simulator` });
44
+ const green = (s) => `\x1b[32m${s}\x1b[0m`;
45
+ const red = (s) => `\x1b[31m${s}\x1b[0m`;
46
+ const yellow = (s) => `\x1b[33m${s}\x1b[0m`;
47
+ const blue = (s) => `\x1b[34m${s}\x1b[0m`;
48
+ const dim = (s) => `\x1b[2m${s}\x1b[0m`;
49
+ const bold = (s) => `\x1b[1m${s}\x1b[0m`;
50
+ export async function run(config) {
51
+ const jsonOutput = config.json === true || isAgentMode(config.agent);
52
+ const log = jsonOutput ? () => { } : (msg) => console.error(msg);
53
+ const cwd = process.cwd();
54
+ let testFiles = [];
55
+ try {
56
+ testFiles = await discoverTestFiles(cwd, config.filters);
57
+ }
58
+ catch (err) {
59
+ const msg = err instanceof Error ? err.message : String(err);
60
+ if (jsonOutput)
61
+ agentResult('sim test', { error: msg });
62
+ else
63
+ log(msg);
64
+ process.exit(1);
65
+ }
66
+ if (testFiles.length === 0) {
67
+ if (jsonOutput)
68
+ agentResult('sim test', { error: 'No test files found' });
69
+ else
70
+ log('No *.test.ts files found');
71
+ process.exit(1);
72
+ }
73
+ log(`Found ${testFiles.length} test file(s)`);
74
+ let session;
75
+ let transport;
76
+ try {
77
+ log('Connecting to simulator');
78
+ const conn = await openSim();
79
+ session = conn.session;
80
+ transport = conn.transport;
81
+ }
82
+ catch (err) {
83
+ if (err instanceof SimAlreadyRunningError) {
84
+ if (jsonOutput) {
85
+ agentError('sim test', err.message, {
86
+ fix: 'Stop the running sim (Ctrl-C in that terminal), then retry.',
87
+ });
88
+ }
89
+ else {
90
+ console.error(`Error: ${err.message}`);
91
+ }
92
+ process.exit(1);
93
+ }
94
+ throw err;
95
+ }
96
+ const sub = session.messages$.subscribe();
97
+ const envVars = await loadEnvFiles({
98
+ cwd: resolveProjectRoot(),
99
+ mode: 'simulator',
100
+ envFile: config.env,
101
+ secretsFile: config.secrets,
102
+ noEnvFile: config.noEnvFile === true,
103
+ });
104
+ if (envVars.length > 0)
105
+ log(`Loaded ${envVars.length} env var(s) from file`);
106
+ const timeoutMs = config.timeout ? parseInt(config.timeout, 10) : 60_000;
107
+ const options = {
108
+ minify: !config.noMinify,
109
+ bytecode: !config.noBytecode,
110
+ minifier: parseMinifier(config.minifier),
111
+ minifyLevel: parseMinifyLevel(config.minifyLevel),
112
+ envVars,
113
+ timeout: timeoutMs,
114
+ buildDir: pathlib.join(getMikroDir(), 'build'),
115
+ mikroEnv: 'simulator',
116
+ updateHeapBaselines: config.updateHeapBaselines === true,
117
+ };
118
+ const startTime = Date.now();
119
+ let results = [];
120
+ try {
121
+ results = await runTestManifest(session, testFiles, options, {
122
+ onFileStart: (file, i, total) => {
123
+ const relPath = pathlib.relative(cwd, file);
124
+ if (jsonOutput) {
125
+ agentEmit({ type: 'file_start', file: relPath, index: i, total });
126
+ }
127
+ else {
128
+ log(`\n${bold(`[${i + 1}/${total}]`)} ${relPath}`);
129
+ }
130
+ },
131
+ onFileDone: (result) => {
132
+ const relPath = pathlib.relative(cwd, result.file);
133
+ if (jsonOutput) {
134
+ agentEmit({
135
+ type: 'file_done',
136
+ file: relPath,
137
+ passed: result.passed,
138
+ failed: result.failed,
139
+ skipped: result.skipped,
140
+ todo: result.todo,
141
+ duration: result.duration,
142
+ ...(typeof result.heapDelta === 'number' ? { heapDelta: result.heapDelta } : {}),
143
+ ...(typeof result.timerDelta === 'number' ? { timerDelta: result.timerDelta } : {}),
144
+ ...(typeof result.pendingDelta === 'number' ? { pendingDelta: result.pendingDelta } : {}),
145
+ ...(result.chip ? { chip: result.chip } : {}),
146
+ ...(result.heapBaselineAction ? { heapBaselineAction: result.heapBaselineAction } : {}),
147
+ ...(typeof result.heapBaselineStored === 'number'
148
+ ? { heapBaselineStored: result.heapBaselineStored }
149
+ : {}),
150
+ ...(result.error ? { error: result.error } : {}),
151
+ });
152
+ }
153
+ else {
154
+ renderFileSummary(result);
155
+ renderLeakReport(result);
156
+ }
157
+ },
158
+ onEvent: (event) => {
159
+ if (!jsonOutput)
160
+ renderTestEvent(event, config.diagnostics === true);
161
+ },
162
+ onLog: (level, text, file) => {
163
+ const relPath = pathlib.relative(cwd, file);
164
+ if (jsonOutput) {
165
+ agentEmit({ type: 'log', file: relPath, level, text });
166
+ return;
167
+ }
168
+ if (level === 'debug' && config.diagnostics !== true)
169
+ return;
170
+ const color = level === 'error' ? red : level === 'warn' ? yellow : dim;
171
+ log(` ${color(text)}`);
172
+ },
173
+ log: jsonOutput ? undefined : (msg) => log(dim(msg)),
174
+ });
175
+ }
176
+ finally {
177
+ sub.unsubscribe();
178
+ session.close();
179
+ transport.close();
180
+ }
181
+ const totals = results.reduce((acc, r) => ({
182
+ passed: acc.passed + r.passed,
183
+ failed: acc.failed + r.failed,
184
+ skipped: acc.skipped + r.skipped,
185
+ todo: acc.todo + r.todo,
186
+ }), { passed: 0, failed: 0, skipped: 0, todo: 0 });
187
+ if (jsonOutput) {
188
+ agentResult('sim test', {
189
+ ...totals,
190
+ total: totals.passed + totals.failed + totals.skipped + totals.todo,
191
+ files: results.map((r) => ({
192
+ file: pathlib.relative(cwd, r.file),
193
+ passed: r.passed,
194
+ failed: r.failed,
195
+ skipped: r.skipped,
196
+ todo: r.todo,
197
+ duration: r.duration,
198
+ error: r.error,
199
+ heapDelta: r.heapDelta,
200
+ timerDelta: r.timerDelta,
201
+ pendingDelta: r.pendingDelta,
202
+ chip: r.chip,
203
+ heapBaselineAction: r.heapBaselineAction,
204
+ heapBaselineStored: r.heapBaselineStored,
205
+ })),
206
+ });
207
+ }
208
+ else {
209
+ renderAlertSummary(results, cwd);
210
+ renderAggregate(totals, results.length, Date.now() - startTime);
211
+ }
212
+ process.exit(totals.failed > 0 ? 1 : 0);
213
+ }
214
+ function renderTestEvent(event, diagnostics) {
215
+ const d = event.data;
216
+ switch (d.e) {
217
+ case 1:
218
+ console.error(` ${d.s}`);
219
+ break;
220
+ case 2:
221
+ console.error(` ${green('✓')} ${dim(String(d.t))} ${dim(`(${d.d}ms)`)}`);
222
+ break;
223
+ case 3:
224
+ console.error(` ${red('✗')} ${String(d.t)} ${dim(`(${d.d}ms)`)}`);
225
+ console.error(` ${red(String(d.m))}`);
226
+ break;
227
+ case 4:
228
+ console.error(` ${yellow('-')} ${dim(String(d.t))}`);
229
+ break;
230
+ case 9:
231
+ console.error(` ${blue('□')} ${dim(String(d.t))}`);
232
+ break;
233
+ case 8: {
234
+ if (!diagnostics)
235
+ break;
236
+ const used = (d.u / 1024) | 0;
237
+ const total = (d.t / 1024) | 0;
238
+ const free = total - used;
239
+ const parts = [`heap: ${used}/${total}KB, free: ${free}KB`];
240
+ if (typeof d.f === 'number') {
241
+ parts.push(`sysFree: ${(d.f / 1024) | 0}KB`);
242
+ }
243
+ if (typeof d.mf === 'number') {
244
+ parts.push(`sysMinFree: ${(d.mf / 1024) | 0}KB`);
245
+ }
246
+ console.error(dim(` [${parts.join(', ')}]`));
247
+ break;
248
+ }
249
+ }
250
+ }
251
+ function renderLeakReport(result) {
252
+ const chip = result.chip ?? 'unknown';
253
+ switch (result.heapBaselineAction) {
254
+ case 'created':
255
+ console.error(` ${dim(`wrote heap-baseline for ${chip}: ${formatBytes(result.heapBaselineStored ?? 0)}`)}`);
256
+ break;
257
+ case 'updated':
258
+ console.error(` ${dim(`updated heap-baseline for ${chip}: ${formatBytes(result.heapBaselineStored ?? 0)}`)}`);
259
+ break;
260
+ case 'exceeded': {
261
+ const over = (result.heapDelta ?? 0) - (result.heapBaselineStored ?? 0);
262
+ console.error(` ${yellow(`⚠ heap-baseline exceeded for ${chip}: +${formatBytes(over)} over ${formatBytes(result.heapBaselineStored ?? 0)}. Re-run with --update-heap-baselines to accept.`)}`);
263
+ break;
264
+ }
265
+ case 'stale': {
266
+ const under = (result.heapBaselineStored ?? 0) - (result.heapDelta ?? 0);
267
+ console.error(` ${dim(`heap-baseline stale for ${chip}: now ${formatBytes(result.heapDelta ?? 0)} (stored ${formatBytes(result.heapBaselineStored ?? 0)}, -${formatBytes(under)}). Re-run with --update-heap-baselines to tighten.`)}`);
268
+ break;
269
+ }
270
+ case 'ok':
271
+ default:
272
+ break;
273
+ }
274
+ if ((result.timerDelta ?? 0) > 0) {
275
+ const n = result.timerDelta;
276
+ console.error(` ${yellow(`⚠ ${n} leaked timer${n === 1 ? '' : 's'}`)}`);
277
+ }
278
+ if ((result.pendingDelta ?? 0) > 0) {
279
+ const n = result.pendingDelta;
280
+ console.error(` ${yellow(`⚠ ${n} in-flight HTTP request${n === 1 ? '' : 's'} at teardown`)}`);
281
+ }
282
+ }
283
+ function renderFileSummary(result) {
284
+ if (result.error) {
285
+ console.error(` ${red('ERROR')}: ${result.error}`);
286
+ return;
287
+ }
288
+ const parts = [];
289
+ if (result.passed > 0)
290
+ parts.push(green(`${result.passed} passed`));
291
+ if (result.failed > 0)
292
+ parts.push(red(`${result.failed} failed`));
293
+ if (result.skipped > 0)
294
+ parts.push(yellow(`${result.skipped} skipped`));
295
+ if (result.todo > 0)
296
+ parts.push(blue(`${result.todo} todo`));
297
+ console.error(` ${parts.join(', ')} ${dim(`(${result.duration}ms)`)}`);
298
+ }
299
+ function formatDuration(ms) {
300
+ if (ms < 1000)
301
+ return `${ms}ms`;
302
+ return `${(ms / 1000).toFixed(1)}s`;
303
+ }
304
+ function formatBytes(n) {
305
+ const abs = Math.abs(n);
306
+ if (abs < 1024)
307
+ return `${n}B`;
308
+ const kb = n / 1024;
309
+ if (abs < 1024 * 1024) {
310
+ return Number.isInteger(kb) ? `${kb}KB` : `${kb.toFixed(1)}KB`;
311
+ }
312
+ const mb = n / (1024 * 1024);
313
+ return Number.isInteger(mb) ? `${mb}MB` : `${mb.toFixed(1)}MB`;
314
+ }
315
+ function renderAlertSummary(results, cwd) {
316
+ const exceeded = results.filter((r) => r.heapBaselineAction === 'exceeded');
317
+ const stale = results.filter((r) => r.heapBaselineAction === 'stale');
318
+ const timerLeaks = results.filter((r) => (r.timerDelta ?? 0) > 0);
319
+ const httpLeaks = results.filter((r) => (r.pendingDelta ?? 0) > 0);
320
+ if (exceeded.length === 0 &&
321
+ stale.length === 0 &&
322
+ timerLeaks.length === 0 &&
323
+ httpLeaks.length === 0) {
324
+ return;
325
+ }
326
+ const rel = (f) => pathlib.relative(cwd, f);
327
+ console.error(`\n${bold('Alerts:')}`);
328
+ if (exceeded.length > 0) {
329
+ const items = exceeded
330
+ .map((r) => `${rel(r.file)} (+${formatBytes((r.heapDelta ?? 0) - (r.heapBaselineStored ?? 0))})`)
331
+ .join(', ');
332
+ console.error(` ${yellow(`⚠ heap exceeded: ${items}`)}`);
333
+ console.error(` ${dim('Re-run with --update-heap-baselines to accept.')}`);
334
+ }
335
+ if (stale.length > 0) {
336
+ const items = stale
337
+ .map((r) => `${rel(r.file)} (-${formatBytes((r.heapBaselineStored ?? 0) - (r.heapDelta ?? 0))})`)
338
+ .join(', ');
339
+ console.error(` ${dim(`heap stale: ${items}`)}`);
340
+ }
341
+ if (timerLeaks.length > 0) {
342
+ const items = timerLeaks.map((r) => `${rel(r.file)} (${r.timerDelta})`).join(', ');
343
+ console.error(` ${yellow(`⚠ leaked timers: ${items}`)}`);
344
+ }
345
+ if (httpLeaks.length > 0) {
346
+ const items = httpLeaks.map((r) => `${rel(r.file)} (${r.pendingDelta})`).join(', ');
347
+ console.error(` ${yellow(`⚠ in-flight HTTP: ${items}`)}`);
348
+ }
349
+ }
350
+ function renderAggregate(totals, fileCount, totalMs) {
351
+ const total = totals.passed + totals.failed + totals.skipped + totals.todo;
352
+ const status = totals.failed === 0 ? green(bold('PASS')) : red(bold('FAIL'));
353
+ const parts = [];
354
+ if (totals.passed > 0)
355
+ parts.push(green(`${totals.passed} passed`));
356
+ if (totals.failed > 0)
357
+ parts.push(red(`${totals.failed} failed`));
358
+ if (totals.skipped > 0)
359
+ parts.push(yellow(`${totals.skipped} skipped`));
360
+ if (totals.todo > 0)
361
+ parts.push(blue(`${totals.todo} todo`));
362
+ console.error(`\n${status} ${parts.join(', ')} (${total} tests across ${fileCount} files) ${dim(formatDuration(totalMs))}`);
363
+ }
364
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../../src/cli/commands/sim/test.ts"],"names":[],"mappings":"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"}