mikrojs 0.0.0 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +76 -0
  3. package/bin/mikrojs.js +3 -0
  4. package/dist/_exports/ble.d.ts +3 -0
  5. package/dist/_exports/ble.d.ts.map +1 -0
  6. package/dist/_exports/ble.js +2 -0
  7. package/dist/_exports/ble.js.map +1 -0
  8. package/dist/_exports/cbor.d.ts +3 -0
  9. package/dist/_exports/cbor.d.ts.map +1 -0
  10. package/dist/_exports/cbor.js +2 -0
  11. package/dist/_exports/cbor.js.map +1 -0
  12. package/dist/_exports/console.d.ts +2 -0
  13. package/dist/_exports/console.d.ts.map +1 -0
  14. package/dist/_exports/console.js +2 -0
  15. package/dist/_exports/console.js.map +1 -0
  16. package/dist/_exports/env.d.ts +2 -0
  17. package/dist/_exports/env.d.ts.map +1 -0
  18. package/dist/_exports/env.js +2 -0
  19. package/dist/_exports/env.js.map +1 -0
  20. package/dist/_exports/format.d.ts +2 -0
  21. package/dist/_exports/format.d.ts.map +1 -0
  22. package/dist/_exports/format.js +2 -0
  23. package/dist/_exports/format.js.map +1 -0
  24. package/dist/_exports/fs.d.ts +2 -0
  25. package/dist/_exports/fs.d.ts.map +1 -0
  26. package/dist/_exports/fs.js +2 -0
  27. package/dist/_exports/fs.js.map +1 -0
  28. package/dist/_exports/http/helpers.d.ts +3 -0
  29. package/dist/_exports/http/helpers.d.ts.map +1 -0
  30. package/dist/_exports/http/helpers.js +5 -0
  31. package/dist/_exports/http/helpers.js.map +1 -0
  32. package/dist/_exports/http/request.d.ts +4 -0
  33. package/dist/_exports/http/request.d.ts.map +1 -0
  34. package/dist/_exports/http/request.js +10 -0
  35. package/dist/_exports/http/request.js.map +1 -0
  36. package/dist/_exports/i2c.d.ts +2 -0
  37. package/dist/_exports/i2c.d.ts.map +1 -0
  38. package/dist/_exports/i2c.js +2 -0
  39. package/dist/_exports/i2c.js.map +1 -0
  40. package/dist/_exports/index.d.ts +61 -0
  41. package/dist/_exports/index.d.ts.map +1 -0
  42. package/dist/_exports/index.js +4 -0
  43. package/dist/_exports/index.js.map +1 -0
  44. package/dist/_exports/inspect.d.ts +2 -0
  45. package/dist/_exports/inspect.d.ts.map +1 -0
  46. package/dist/_exports/inspect.js +2 -0
  47. package/dist/_exports/inspect.js.map +1 -0
  48. package/dist/_exports/kv/nvs.d.ts +3 -0
  49. package/dist/_exports/kv/nvs.d.ts.map +1 -0
  50. package/dist/_exports/kv/nvs.js +2 -0
  51. package/dist/_exports/kv/nvs.js.map +1 -0
  52. package/dist/_exports/kv/rtc.d.ts +3 -0
  53. package/dist/_exports/kv/rtc.d.ts.map +1 -0
  54. package/dist/_exports/kv/rtc.js +2 -0
  55. package/dist/_exports/kv/rtc.js.map +1 -0
  56. package/dist/_exports/neopixel.d.ts +2 -0
  57. package/dist/_exports/neopixel.d.ts.map +1 -0
  58. package/dist/_exports/neopixel.js +2 -0
  59. package/dist/_exports/neopixel.js.map +1 -0
  60. package/dist/_exports/pin.d.ts +2 -0
  61. package/dist/_exports/pin.d.ts.map +1 -0
  62. package/dist/_exports/pin.js +2 -0
  63. package/dist/_exports/pin.js.map +1 -0
  64. package/dist/_exports/pwm.d.ts +2 -0
  65. package/dist/_exports/pwm.d.ts.map +1 -0
  66. package/dist/_exports/pwm.js +2 -0
  67. package/dist/_exports/pwm.js.map +1 -0
  68. package/dist/_exports/reader.d.ts +2 -0
  69. package/dist/_exports/reader.d.ts.map +1 -0
  70. package/dist/_exports/reader.js +2 -0
  71. package/dist/_exports/reader.js.map +1 -0
  72. package/dist/_exports/result.d.ts +2 -0
  73. package/dist/_exports/result.d.ts.map +1 -0
  74. package/dist/_exports/result.js +2 -0
  75. package/dist/_exports/result.js.map +1 -0
  76. package/dist/_exports/schema.d.ts +2 -0
  77. package/dist/_exports/schema.d.ts.map +1 -0
  78. package/dist/_exports/schema.js +2 -0
  79. package/dist/_exports/schema.js.map +1 -0
  80. package/dist/_exports/sim.d.ts +199 -0
  81. package/dist/_exports/sim.d.ts.map +1 -0
  82. package/dist/_exports/sim.js +8 -0
  83. package/dist/_exports/sim.js.map +1 -0
  84. package/dist/_exports/sleep.d.ts +2 -0
  85. package/dist/_exports/sleep.d.ts.map +1 -0
  86. package/dist/_exports/sleep.js +2 -0
  87. package/dist/_exports/sleep.js.map +1 -0
  88. package/dist/_exports/sntp.d.ts +3 -0
  89. package/dist/_exports/sntp.d.ts.map +1 -0
  90. package/dist/_exports/sntp.js +2 -0
  91. package/dist/_exports/sntp.js.map +1 -0
  92. package/dist/_exports/spi.d.ts +2 -0
  93. package/dist/_exports/spi.d.ts.map +1 -0
  94. package/dist/_exports/spi.js +2 -0
  95. package/dist/_exports/spi.js.map +1 -0
  96. package/dist/_exports/stdio.d.ts +2 -0
  97. package/dist/_exports/stdio.d.ts.map +1 -0
  98. package/dist/_exports/stdio.js +2 -0
  99. package/dist/_exports/stdio.js.map +1 -0
  100. package/dist/_exports/stream.d.ts +2 -0
  101. package/dist/_exports/stream.d.ts.map +1 -0
  102. package/dist/_exports/stream.js +2 -0
  103. package/dist/_exports/stream.js.map +1 -0
  104. package/dist/_exports/sys.d.ts +2 -0
  105. package/dist/_exports/sys.d.ts.map +1 -0
  106. package/dist/_exports/sys.js +2 -0
  107. package/dist/_exports/sys.js.map +1 -0
  108. package/dist/_exports/test.d.ts +2 -0
  109. package/dist/_exports/test.d.ts.map +1 -0
  110. package/dist/_exports/test.js +2 -0
  111. package/dist/_exports/test.js.map +1 -0
  112. package/dist/_exports/uart.d.ts +2 -0
  113. package/dist/_exports/uart.d.ts.map +1 -0
  114. package/dist/_exports/uart.js +2 -0
  115. package/dist/_exports/uart.js.map +1 -0
  116. package/dist/_exports/wifi.d.ts +3 -0
  117. package/dist/_exports/wifi.d.ts.map +1 -0
  118. package/dist/_exports/wifi.js +2 -0
  119. package/dist/_exports/wifi.js.map +1 -0
  120. package/dist/cli/cli.d.ts +3 -0
  121. package/dist/cli/cli.d.ts.map +1 -0
  122. package/dist/cli/cli.js +215 -0
  123. package/dist/cli/cli.js.map +1 -0
  124. package/dist/cli/cliWrapper.d.ts +3 -0
  125. package/dist/cli/cliWrapper.d.ts.map +1 -0
  126. package/dist/cli/cliWrapper.js +40 -0
  127. package/dist/cli/cliWrapper.js.map +1 -0
  128. package/dist/cli/commands/build-runtime.d.ts +14 -0
  129. package/dist/cli/commands/build-runtime.d.ts.map +1 -0
  130. package/dist/cli/commands/build-runtime.js +122 -0
  131. package/dist/cli/commands/build-runtime.js.map +1 -0
  132. package/dist/cli/commands/build.d.ts +31 -0
  133. package/dist/cli/commands/build.d.ts.map +1 -0
  134. package/dist/cli/commands/build.js +145 -0
  135. package/dist/cli/commands/build.js.map +1 -0
  136. package/dist/cli/commands/clean.d.ts +16 -0
  137. package/dist/cli/commands/clean.d.ts.map +1 -0
  138. package/dist/cli/commands/clean.js +148 -0
  139. package/dist/cli/commands/clean.js.map +1 -0
  140. package/dist/cli/commands/console.d.ts +19 -0
  141. package/dist/cli/commands/console.d.ts.map +1 -0
  142. package/dist/cli/commands/console.js +32 -0
  143. package/dist/cli/commands/console.js.map +1 -0
  144. package/dist/cli/commands/deploy.d.ts +63 -0
  145. package/dist/cli/commands/deploy.d.ts.map +1 -0
  146. package/dist/cli/commands/deploy.js +242 -0
  147. package/dist/cli/commands/deploy.js.map +1 -0
  148. package/dist/cli/commands/dev.d.ts +41 -0
  149. package/dist/cli/commands/dev.d.ts.map +1 -0
  150. package/dist/cli/commands/dev.js +170 -0
  151. package/dist/cli/commands/dev.js.map +1 -0
  152. package/dist/cli/commands/docs.d.ts +7 -0
  153. package/dist/cli/commands/docs.d.ts.map +1 -0
  154. package/dist/cli/commands/docs.js +20 -0
  155. package/dist/cli/commands/docs.js.map +1 -0
  156. package/dist/cli/commands/env.d.ts +59 -0
  157. package/dist/cli/commands/env.d.ts.map +1 -0
  158. package/dist/cli/commands/env.js +257 -0
  159. package/dist/cli/commands/env.js.map +1 -0
  160. package/dist/cli/commands/erase.d.ts +18 -0
  161. package/dist/cli/commands/erase.d.ts.map +1 -0
  162. package/dist/cli/commands/erase.js +90 -0
  163. package/dist/cli/commands/erase.js.map +1 -0
  164. package/dist/cli/commands/flash.d.ts +30 -0
  165. package/dist/cli/commands/flash.d.ts.map +1 -0
  166. package/dist/cli/commands/flash.js +243 -0
  167. package/dist/cli/commands/flash.js.map +1 -0
  168. package/dist/cli/commands/home.d.ts +7 -0
  169. package/dist/cli/commands/home.d.ts.map +1 -0
  170. package/dist/cli/commands/home.js +20 -0
  171. package/dist/cli/commands/home.js.map +1 -0
  172. package/dist/cli/commands/ls.d.ts +17 -0
  173. package/dist/cli/commands/ls.d.ts.map +1 -0
  174. package/dist/cli/commands/ls.js +62 -0
  175. package/dist/cli/commands/ls.js.map +1 -0
  176. package/dist/cli/commands/sim/clean.d.ts +7 -0
  177. package/dist/cli/commands/sim/clean.d.ts.map +1 -0
  178. package/dist/cli/commands/sim/clean.js +34 -0
  179. package/dist/cli/commands/sim/clean.js.map +1 -0
  180. package/dist/cli/commands/sim/deploy.d.ts +46 -0
  181. package/dist/cli/commands/sim/deploy.d.ts.map +1 -0
  182. package/dist/cli/commands/sim/deploy.js +127 -0
  183. package/dist/cli/commands/sim/deploy.js.map +1 -0
  184. package/dist/cli/commands/sim/dev.d.ts +52 -0
  185. package/dist/cli/commands/sim/dev.d.ts.map +1 -0
  186. package/dist/cli/commands/sim/dev.js +380 -0
  187. package/dist/cli/commands/sim/dev.js.map +1 -0
  188. package/dist/cli/commands/sim/env.d.ts +56 -0
  189. package/dist/cli/commands/sim/env.d.ts.map +1 -0
  190. package/dist/cli/commands/sim/env.js +204 -0
  191. package/dist/cli/commands/sim/env.js.map +1 -0
  192. package/dist/cli/commands/sim/profile.d.ts +67 -0
  193. package/dist/cli/commands/sim/profile.d.ts.map +1 -0
  194. package/dist/cli/commands/sim/profile.js +356 -0
  195. package/dist/cli/commands/sim/profile.js.map +1 -0
  196. package/dist/cli/commands/sim/repl.d.ts +16 -0
  197. package/dist/cli/commands/sim/repl.d.ts.map +1 -0
  198. package/dist/cli/commands/sim/repl.js +119 -0
  199. package/dist/cli/commands/sim/repl.js.map +1 -0
  200. package/dist/cli/commands/sim/reset.d.ts +11 -0
  201. package/dist/cli/commands/sim/reset.d.ts.map +1 -0
  202. package/dist/cli/commands/sim/reset.js +59 -0
  203. package/dist/cli/commands/sim/reset.js.map +1 -0
  204. package/dist/cli/commands/sim/scaffold.d.ts +11 -0
  205. package/dist/cli/commands/sim/scaffold.d.ts.map +1 -0
  206. package/dist/cli/commands/sim/scaffold.js +41 -0
  207. package/dist/cli/commands/sim/scaffold.js.map +1 -0
  208. package/dist/cli/commands/sim/test.d.ts +49 -0
  209. package/dist/cli/commands/sim/test.d.ts.map +1 -0
  210. package/dist/cli/commands/sim/test.js +364 -0
  211. package/dist/cli/commands/sim/test.js.map +1 -0
  212. package/dist/cli/commands/sim.d.ts +228 -0
  213. package/dist/cli/commands/sim.d.ts.map +1 -0
  214. package/dist/cli/commands/sim.js +69 -0
  215. package/dist/cli/commands/sim.js.map +1 -0
  216. package/dist/cli/commands/tail.d.ts +14 -0
  217. package/dist/cli/commands/tail.d.ts.map +1 -0
  218. package/dist/cli/commands/tail.js +50 -0
  219. package/dist/cli/commands/tail.js.map +1 -0
  220. package/dist/cli/commands/test.d.ts +39 -0
  221. package/dist/cli/commands/test.d.ts.map +1 -0
  222. package/dist/cli/commands/test.js +432 -0
  223. package/dist/cli/commands/test.js.map +1 -0
  224. package/dist/cli/components/DevicePicker.d.ts +9 -0
  225. package/dist/cli/components/DevicePicker.d.ts.map +1 -0
  226. package/dist/cli/components/DevicePicker.js +71 -0
  227. package/dist/cli/components/DevicePicker.js.map +1 -0
  228. package/dist/cli/components/EnvEditor.d.ts +12 -0
  229. package/dist/cli/components/EnvEditor.d.ts.map +1 -0
  230. package/dist/cli/components/EnvEditor.js +201 -0
  231. package/dist/cli/components/EnvEditor.js.map +1 -0
  232. package/dist/cli/components/TextInput.d.ts +28 -0
  233. package/dist/cli/components/TextInput.d.ts.map +1 -0
  234. package/dist/cli/components/TextInput.js +73 -0
  235. package/dist/cli/components/TextInput.js.map +1 -0
  236. package/dist/cli/components/TitledBox.d.ts +27 -0
  237. package/dist/cli/components/TitledBox.d.ts.map +1 -0
  238. package/dist/cli/components/TitledBox.js +111 -0
  239. package/dist/cli/components/TitledBox.js.map +1 -0
  240. package/dist/cli/hooks/useDevices.d.ts +23 -0
  241. package/dist/cli/hooks/useDevices.d.ts.map +1 -0
  242. package/dist/cli/hooks/useDevices.js +19 -0
  243. package/dist/cli/hooks/useDevices.js.map +1 -0
  244. package/dist/cli/lib/RenderAndExit.d.ts +6 -0
  245. package/dist/cli/lib/RenderAndExit.d.ts.map +1 -0
  246. package/dist/cli/lib/RenderAndExit.js +8 -0
  247. package/dist/cli/lib/RenderAndExit.js.map +1 -0
  248. package/dist/cli/lib/Spinner.d.ts +11 -0
  249. package/dist/cli/lib/Spinner.d.ts.map +1 -0
  250. package/dist/cli/lib/Spinner.js +22 -0
  251. package/dist/cli/lib/Spinner.js.map +1 -0
  252. package/dist/cli/lib/agent.d.ts +38 -0
  253. package/dist/cli/lib/agent.d.ts.map +1 -0
  254. package/dist/cli/lib/agent.js +87 -0
  255. package/dist/cli/lib/agent.js.map +1 -0
  256. package/dist/cli/lib/boards.d.ts +23 -0
  257. package/dist/cli/lib/boards.d.ts.map +1 -0
  258. package/dist/cli/lib/boards.js +67 -0
  259. package/dist/cli/lib/boards.js.map +1 -0
  260. package/dist/cli/lib/build.d.ts +47 -0
  261. package/dist/cli/lib/build.d.ts.map +1 -0
  262. package/dist/cli/lib/build.js +533 -0
  263. package/dist/cli/lib/build.js.map +1 -0
  264. package/dist/cli/lib/connectSim.d.ts +21 -0
  265. package/dist/cli/lib/connectSim.d.ts.map +1 -0
  266. package/dist/cli/lib/connectSim.js +20 -0
  267. package/dist/cli/lib/connectSim.js.map +1 -0
  268. package/dist/cli/lib/deploy.d.ts +42 -0
  269. package/dist/cli/lib/deploy.d.ts.map +1 -0
  270. package/dist/cli/lib/deploy.js +121 -0
  271. package/dist/cli/lib/deploy.js.map +1 -0
  272. package/dist/cli/lib/deployProgress.d.ts +8 -0
  273. package/dist/cli/lib/deployProgress.d.ts.map +1 -0
  274. package/dist/cli/lib/deployProgress.js +32 -0
  275. package/dist/cli/lib/deployProgress.js.map +1 -0
  276. package/dist/cli/lib/dotenv.d.ts +16 -0
  277. package/dist/cli/lib/dotenv.d.ts.map +1 -0
  278. package/dist/cli/lib/dotenv.js +33 -0
  279. package/dist/cli/lib/dotenv.js.map +1 -0
  280. package/dist/cli/lib/esbuild.d.ts +7 -0
  281. package/dist/cli/lib/esbuild.d.ts.map +1 -0
  282. package/dist/cli/lib/esbuild.js +15 -0
  283. package/dist/cli/lib/esbuild.js.map +1 -0
  284. package/dist/cli/lib/esptool.d.ts +41 -0
  285. package/dist/cli/lib/esptool.d.ts.map +1 -0
  286. package/dist/cli/lib/esptool.js +43 -0
  287. package/dist/cli/lib/esptool.js.map +1 -0
  288. package/dist/cli/lib/firmware.d.ts +24 -0
  289. package/dist/cli/lib/firmware.d.ts.map +1 -0
  290. package/dist/cli/lib/firmware.js +406 -0
  291. package/dist/cli/lib/firmware.js.map +1 -0
  292. package/dist/cli/lib/firmwareCompat.d.ts +19 -0
  293. package/dist/cli/lib/firmwareCompat.d.ts.map +1 -0
  294. package/dist/cli/lib/firmwareCompat.js +31 -0
  295. package/dist/cli/lib/firmwareCompat.js.map +1 -0
  296. package/dist/cli/lib/heapBaseline.d.ts +15 -0
  297. package/dist/cli/lib/heapBaseline.d.ts.map +1 -0
  298. package/dist/cli/lib/heapBaseline.js +39 -0
  299. package/dist/cli/lib/heapBaseline.js.map +1 -0
  300. package/dist/cli/lib/ink-table/index.d.ts +88 -0
  301. package/dist/cli/lib/ink-table/index.d.ts.map +1 -0
  302. package/dist/cli/lib/ink-table/index.js +217 -0
  303. package/dist/cli/lib/ink-table/index.js.map +1 -0
  304. package/dist/cli/lib/loadMikroConfig.d.ts +7 -0
  305. package/dist/cli/lib/loadMikroConfig.d.ts.map +1 -0
  306. package/dist/cli/lib/loadMikroConfig.js +26 -0
  307. package/dist/cli/lib/loadMikroConfig.js.map +1 -0
  308. package/dist/cli/lib/minify.d.ts +3 -0
  309. package/dist/cli/lib/minify.d.ts.map +1 -0
  310. package/dist/cli/lib/minify.js +89 -0
  311. package/dist/cli/lib/minify.js.map +1 -0
  312. package/dist/cli/lib/openSim.d.ts +29 -0
  313. package/dist/cli/lib/openSim.d.ts.map +1 -0
  314. package/dist/cli/lib/openSim.js +32 -0
  315. package/dist/cli/lib/openSim.js.map +1 -0
  316. package/dist/cli/lib/ospawn.d.ts +34 -0
  317. package/dist/cli/lib/ospawn.d.ts.map +1 -0
  318. package/dist/cli/lib/ospawn.js +90 -0
  319. package/dist/cli/lib/ospawn.js.map +1 -0
  320. package/dist/cli/lib/parseMinifier.d.ts +10 -0
  321. package/dist/cli/lib/parseMinifier.d.ts.map +1 -0
  322. package/dist/cli/lib/parseMinifier.js +49 -0
  323. package/dist/cli/lib/parseMinifier.js.map +1 -0
  324. package/dist/cli/lib/parseSize.d.ts +6 -0
  325. package/dist/cli/lib/parseSize.d.ts.map +1 -0
  326. package/dist/cli/lib/parseSize.js +25 -0
  327. package/dist/cli/lib/parseSize.js.map +1 -0
  328. package/dist/cli/lib/projectRoot.d.ts +11 -0
  329. package/dist/cli/lib/projectRoot.d.ts.map +1 -0
  330. package/dist/cli/lib/projectRoot.js +28 -0
  331. package/dist/cli/lib/projectRoot.js.map +1 -0
  332. package/dist/cli/lib/protocol.d.ts +144 -0
  333. package/dist/cli/lib/protocol.d.ts.map +1 -0
  334. package/dist/cli/lib/protocol.js +385 -0
  335. package/dist/cli/lib/protocol.js.map +1 -0
  336. package/dist/cli/lib/recover.d.ts +25 -0
  337. package/dist/cli/lib/recover.d.ts.map +1 -0
  338. package/dist/cli/lib/recover.js +144 -0
  339. package/dist/cli/lib/recover.js.map +1 -0
  340. package/dist/cli/lib/resolveEntry.d.ts +7 -0
  341. package/dist/cli/lib/resolveEntry.d.ts.map +1 -0
  342. package/dist/cli/lib/resolveEntry.js +30 -0
  343. package/dist/cli/lib/resolveEntry.js.map +1 -0
  344. package/dist/cli/lib/runHooks.d.ts +34 -0
  345. package/dist/cli/lib/runHooks.d.ts.map +1 -0
  346. package/dist/cli/lib/runHooks.js +90 -0
  347. package/dist/cli/lib/runHooks.js.map +1 -0
  348. package/dist/cli/lib/serial/InkReplConsole.d.ts +27 -0
  349. package/dist/cli/lib/serial/InkReplConsole.d.ts.map +1 -0
  350. package/dist/cli/lib/serial/InkReplConsole.js +24 -0
  351. package/dist/cli/lib/serial/InkReplConsole.js.map +1 -0
  352. package/dist/cli/lib/serial/InkReplMode.d.ts +38 -0
  353. package/dist/cli/lib/serial/InkReplMode.d.ts.map +1 -0
  354. package/dist/cli/lib/serial/InkReplMode.js +90 -0
  355. package/dist/cli/lib/serial/InkReplMode.js.map +1 -0
  356. package/dist/cli/lib/serial/ReplConsole.d.ts +21 -0
  357. package/dist/cli/lib/serial/ReplConsole.d.ts.map +1 -0
  358. package/dist/cli/lib/serial/ReplConsole.js +249 -0
  359. package/dist/cli/lib/serial/ReplConsole.js.map +1 -0
  360. package/dist/cli/lib/serial/devSession.d.ts +57 -0
  361. package/dist/cli/lib/serial/devSession.d.ts.map +1 -0
  362. package/dist/cli/lib/serial/devSession.js +160 -0
  363. package/dist/cli/lib/serial/devSession.js.map +1 -0
  364. package/dist/cli/lib/serial/dispatchReplCommand.d.ts +25 -0
  365. package/dist/cli/lib/serial/dispatchReplCommand.d.ts.map +1 -0
  366. package/dist/cli/lib/serial/dispatchReplCommand.js +27 -0
  367. package/dist/cli/lib/serial/dispatchReplCommand.js.map +1 -0
  368. package/dist/cli/lib/serial/openSession.d.ts +28 -0
  369. package/dist/cli/lib/serial/openSession.d.ts.map +1 -0
  370. package/dist/cli/lib/serial/openSession.js +48 -0
  371. package/dist/cli/lib/serial/openSession.js.map +1 -0
  372. package/dist/cli/lib/serial/replStateMachine.d.ts +169 -0
  373. package/dist/cli/lib/serial/replStateMachine.d.ts.map +1 -0
  374. package/dist/cli/lib/serial/replStateMachine.js +657 -0
  375. package/dist/cli/lib/serial/replStateMachine.js.map +1 -0
  376. package/dist/cli/lib/serial/runAgentRepl.d.ts +33 -0
  377. package/dist/cli/lib/serial/runAgentRepl.d.ts.map +1 -0
  378. package/dist/cli/lib/serial/runAgentRepl.js +80 -0
  379. package/dist/cli/lib/serial/runAgentRepl.js.map +1 -0
  380. package/dist/cli/lib/session.d.ts +163 -0
  381. package/dist/cli/lib/session.d.ts.map +1 -0
  382. package/dist/cli/lib/session.js +490 -0
  383. package/dist/cli/lib/session.js.map +1 -0
  384. package/dist/cli/lib/simConfig.d.ts +15 -0
  385. package/dist/cli/lib/simConfig.d.ts.map +1 -0
  386. package/dist/cli/lib/simConfig.js +25 -0
  387. package/dist/cli/lib/simConfig.js.map +1 -0
  388. package/dist/cli/lib/simPid.d.ts +30 -0
  389. package/dist/cli/lib/simPid.d.ts.map +1 -0
  390. package/dist/cli/lib/simPid.js +120 -0
  391. package/dist/cli/lib/simPid.js.map +1 -0
  392. package/dist/cli/lib/simTransport.d.ts +17 -0
  393. package/dist/cli/lib/simTransport.d.ts.map +1 -0
  394. package/dist/cli/lib/simTransport.js +80 -0
  395. package/dist/cli/lib/simTransport.js.map +1 -0
  396. package/dist/cli/lib/testRunner.d.ts +86 -0
  397. package/dist/cli/lib/testRunner.d.ts.map +1 -0
  398. package/dist/cli/lib/testRunner.js +469 -0
  399. package/dist/cli/lib/testRunner.js.map +1 -0
  400. package/dist/cli/lib/transport.d.ts +34 -0
  401. package/dist/cli/lib/transport.d.ts.map +1 -0
  402. package/dist/cli/lib/transport.js +117 -0
  403. package/dist/cli/lib/transport.js.map +1 -0
  404. package/dist/cli/lib/useObservable.d.ts +4 -0
  405. package/dist/cli/lib/useObservable.d.ts.map +1 -0
  406. package/dist/cli/lib/useObservable.js +22 -0
  407. package/dist/cli/lib/useObservable.js.map +1 -0
  408. package/dist/cli/lib/watcher.d.ts +10 -0
  409. package/dist/cli/lib/watcher.d.ts.map +1 -0
  410. package/dist/cli/lib/watcher.js +34 -0
  411. package/dist/cli/lib/watcher.js.map +1 -0
  412. package/dist/constants.d.ts +13 -0
  413. package/dist/constants.d.ts.map +1 -0
  414. package/dist/constants.js +27 -0
  415. package/dist/constants.js.map +1 -0
  416. package/dist/simulator/builtins/ble.d.ts +3 -0
  417. package/dist/simulator/builtins/ble.d.ts.map +1 -0
  418. package/dist/simulator/builtins/ble.js +46 -0
  419. package/dist/simulator/builtins/ble.js.map +1 -0
  420. package/dist/simulator/builtins/console.d.ts +8 -0
  421. package/dist/simulator/builtins/console.d.ts.map +1 -0
  422. package/dist/simulator/builtins/console.js +24 -0
  423. package/dist/simulator/builtins/console.js.map +1 -0
  424. package/dist/simulator/builtins/http.d.ts +3 -0
  425. package/dist/simulator/builtins/http.d.ts.map +1 -0
  426. package/dist/simulator/builtins/http.js +90 -0
  427. package/dist/simulator/builtins/http.js.map +1 -0
  428. package/dist/simulator/builtins/i2c.d.ts +3 -0
  429. package/dist/simulator/builtins/i2c.d.ts.map +1 -0
  430. package/dist/simulator/builtins/i2c.js +17 -0
  431. package/dist/simulator/builtins/i2c.js.map +1 -0
  432. package/dist/simulator/builtins/index.d.ts +7 -0
  433. package/dist/simulator/builtins/index.d.ts.map +1 -0
  434. package/dist/simulator/builtins/index.js +49 -0
  435. package/dist/simulator/builtins/index.js.map +1 -0
  436. package/dist/simulator/builtins/kv.d.ts +3 -0
  437. package/dist/simulator/builtins/kv.d.ts.map +1 -0
  438. package/dist/simulator/builtins/kv.js +39 -0
  439. package/dist/simulator/builtins/kv.js.map +1 -0
  440. package/dist/simulator/builtins/neopixel.d.ts +3 -0
  441. package/dist/simulator/builtins/neopixel.d.ts.map +1 -0
  442. package/dist/simulator/builtins/neopixel.js +15 -0
  443. package/dist/simulator/builtins/neopixel.js.map +1 -0
  444. package/dist/simulator/builtins/nvs-kv.d.ts +3 -0
  445. package/dist/simulator/builtins/nvs-kv.d.ts.map +1 -0
  446. package/dist/simulator/builtins/nvs-kv.js +69 -0
  447. package/dist/simulator/builtins/nvs-kv.js.map +1 -0
  448. package/dist/simulator/builtins/pin.d.ts +3 -0
  449. package/dist/simulator/builtins/pin.d.ts.map +1 -0
  450. package/dist/simulator/builtins/pin.js +32 -0
  451. package/dist/simulator/builtins/pin.js.map +1 -0
  452. package/dist/simulator/builtins/pwm.d.ts +3 -0
  453. package/dist/simulator/builtins/pwm.d.ts.map +1 -0
  454. package/dist/simulator/builtins/pwm.js +31 -0
  455. package/dist/simulator/builtins/pwm.js.map +1 -0
  456. package/dist/simulator/builtins/sleep.d.ts +3 -0
  457. package/dist/simulator/builtins/sleep.d.ts.map +1 -0
  458. package/dist/simulator/builtins/sleep.js +33 -0
  459. package/dist/simulator/builtins/sleep.js.map +1 -0
  460. package/dist/simulator/builtins/sntp.d.ts +3 -0
  461. package/dist/simulator/builtins/sntp.d.ts.map +1 -0
  462. package/dist/simulator/builtins/sntp.js +14 -0
  463. package/dist/simulator/builtins/sntp.js.map +1 -0
  464. package/dist/simulator/builtins/spi.d.ts +3 -0
  465. package/dist/simulator/builtins/spi.d.ts.map +1 -0
  466. package/dist/simulator/builtins/spi.js +16 -0
  467. package/dist/simulator/builtins/spi.js.map +1 -0
  468. package/dist/simulator/builtins/types.d.ts +24 -0
  469. package/dist/simulator/builtins/types.d.ts.map +1 -0
  470. package/dist/simulator/builtins/types.js +2 -0
  471. package/dist/simulator/builtins/types.js.map +1 -0
  472. package/dist/simulator/builtins/uart.d.ts +3 -0
  473. package/dist/simulator/builtins/uart.d.ts.map +1 -0
  474. package/dist/simulator/builtins/uart.js +22 -0
  475. package/dist/simulator/builtins/uart.js.map +1 -0
  476. package/dist/simulator/builtins/wifi.d.ts +3 -0
  477. package/dist/simulator/builtins/wifi.d.ts.map +1 -0
  478. package/dist/simulator/builtins/wifi.js +55 -0
  479. package/dist/simulator/builtins/wifi.js.map +1 -0
  480. package/dist/simulator/devRunner.d.ts +41 -0
  481. package/dist/simulator/devRunner.d.ts.map +1 -0
  482. package/dist/simulator/devRunner.js +201 -0
  483. package/dist/simulator/devRunner.js.map +1 -0
  484. package/dist/simulator/loadSimStubs.d.ts +15 -0
  485. package/dist/simulator/loadSimStubs.d.ts.map +1 -0
  486. package/dist/simulator/loadSimStubs.js +54 -0
  487. package/dist/simulator/loadSimStubs.js.map +1 -0
  488. package/dist/simulator/simProcess.d.ts +11 -0
  489. package/dist/simulator/simProcess.d.ts.map +1 -0
  490. package/dist/simulator/simProcess.js +957 -0
  491. package/dist/simulator/simProcess.js.map +1 -0
  492. package/dist/simulator/simTemplates.d.ts +6 -0
  493. package/dist/simulator/simTemplates.d.ts.map +1 -0
  494. package/dist/simulator/simTemplates.js +21 -0
  495. package/dist/simulator/simTemplates.js.map +1 -0
  496. package/package.json +123 -2
  497. package/runtime.d.ts +95 -0
@@ -0,0 +1,32 @@
1
+ export const pinBuiltin = {
2
+ source: `// Simulator stub for pin
3
+ // Runs inside the mikrojs runtime (QuickJS), not Node.js. Node built-ins are not available.
4
+ import {ok} from 'mikrojs/result'
5
+ import type {SimPin} from 'mikrojs/sim'
6
+
7
+ const state: Record<number, {mode?: number; value?: number}> = {}
8
+
9
+ export const pinMode: SimPin['pinMode'] = (pin, mode) => {
10
+ state[pin] = {...state[pin], mode}
11
+ return ok()
12
+ }
13
+
14
+ export const digitalWrite: SimPin['digitalWrite'] = (pin, value) => {
15
+ state[pin] = {...state[pin], value}
16
+ return ok()
17
+ }
18
+
19
+ export const digitalRead: SimPin['digitalRead'] = (pin) => {
20
+ return state[pin]?.value ?? 0
21
+ }
22
+
23
+ export const analogRead: SimPin['analogRead'] = (_pin, _attenuation) => {
24
+ return ok(Math.floor(Math.random() * 4096))
25
+ }
26
+
27
+ export const analogReadMillivolts: SimPin['analogReadMillivolts'] = (_pin, _attenuation) => {
28
+ return ok(Math.floor(Math.random() * 2500))
29
+ }
30
+ `,
31
+ };
32
+ //# sourceMappingURL=pin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pin.js","sourceRoot":"","sources":["../../../src/simulator/builtins/pin.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BT;CACA,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { BuiltinDefinition } from './types.js';
2
+ export declare const pwmBuiltin: BuiltinDefinition;
3
+ //# sourceMappingURL=pwm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pwm.d.ts","sourceRoot":"","sources":["../../../src/simulator/builtins/pwm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAA;AAIjD,eAAO,MAAM,UAAU,EAAE,iBA2BxB,CAAA"}
@@ -0,0 +1,31 @@
1
+ // pwm uses a raw source module instead of RPC because fade() returns
2
+ // {ok, value: Promise<void>} which can't survive JSON serialization.
3
+ export const pwmBuiltin = {
4
+ source: `
5
+ import {ok} from 'mikrojs/result'
6
+
7
+ export class Pwm {
8
+ #freq
9
+ #duty
10
+ constructor(_pin, freq, duty) {
11
+ this.#freq = freq
12
+ this.#duty = duty
13
+ }
14
+ duty(value) {
15
+ if (value !== undefined) this.#duty = value
16
+ return ok(this.#duty)
17
+ }
18
+ freq(value) {
19
+ if (value !== undefined) this.#freq = value
20
+ return ok(this.#freq)
21
+ }
22
+ fade(_target, _durationMs) {
23
+ return ok(Promise.resolve())
24
+ }
25
+ end() {
26
+ return ok()
27
+ }
28
+ }
29
+ `,
30
+ };
31
+ //# sourceMappingURL=pwm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pwm.js","sourceRoot":"","sources":["../../../src/simulator/builtins/pwm.ts"],"names":[],"mappings":"AAEA,qEAAqE;AACrE,qEAAqE;AACrE,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;CAyBT;CACA,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { BuiltinDefinition } from './types.js';
2
+ export declare const sleepBuiltin: BuiltinDefinition;
3
+ //# sourceMappingURL=sleep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../src/simulator/builtins/sleep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAA;AAIjD,eAAO,MAAM,YAAY,EAAE,iBA6B1B,CAAA"}
@@ -0,0 +1,33 @@
1
+ // sleep uses a raw source module so deepSleep can use setTimeout + restart,
2
+ // and lightSleep can return a delayed Promise.
3
+ export const sleepBuiltin = {
4
+ source: `
5
+ import {restart} from 'native:sys'
6
+ import {ok} from 'mikrojs/result'
7
+
8
+ const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms))
9
+
10
+ let wakeupCause = 'undefined'
11
+
12
+ export function deepSleep(ms) {
13
+ // On device, deepSleep is \`never\` (chip resets after sleep).
14
+ // In the sim, wait the duration then restart the runtime.
15
+ console.warn('[sim] deepSleep(' + ms + 'ms)')
16
+ sleep(ms).then(() => restart())
17
+ }
18
+
19
+ export function lightSleep(ms) {
20
+ console.warn('[sim] lightSleep(' + ms + 'ms)')
21
+ // Block-ish: return a result after the delay
22
+ return ok()
23
+ }
24
+
25
+ export function getWakeupCause() { return wakeupCause }
26
+ export function enableTimerWakeup() { return ok() }
27
+ export function enableGpioWakeup() { return ok() }
28
+ export function enableExt0Wakeup() { return ok() }
29
+ export function enableExt1Wakeup() { return ok() }
30
+ export function disableWakeupSource() { return ok() }
31
+ `,
32
+ };
33
+ //# sourceMappingURL=sleep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../src/simulator/builtins/sleep.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,+CAA+C;AAC/C,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BT;CACA,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { BuiltinDefinition } from './types.js';
2
+ export declare const sntpBuiltin: BuiltinDefinition;
3
+ //# sourceMappingURL=sntp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sntp.d.ts","sourceRoot":"","sources":["../../../src/simulator/builtins/sntp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAA;AAIjD,eAAO,MAAM,WAAW,EAAE,iBAUzB,CAAA"}
@@ -0,0 +1,14 @@
1
+ // sntp uses a raw source module instead of RPC because the native sync()
2
+ // returns {ok, value: Promise<...>} which can't survive JSON serialization.
3
+ export const sntpBuiltin = {
4
+ source: `
5
+ import {ok} from 'mikrojs/result'
6
+
7
+ export function sync(_servers, _timezone, _background) {
8
+ return ok(Promise.resolve(ok({time: Date.now()})))
9
+ }
10
+ export function stop() {}
11
+ export function setTimezone(_tz) {}
12
+ `,
13
+ };
14
+ //# sourceMappingURL=sntp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sntp.js","sourceRoot":"","sources":["../../../src/simulator/builtins/sntp.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,MAAM,EAAE;;;;;;;;CAQT;CACA,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { BuiltinDefinition } from './types.js';
2
+ export declare const spiBuiltin: BuiltinDefinition;
3
+ //# sourceMappingURL=spi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spi.d.ts","sourceRoot":"","sources":["../../../src/simulator/builtins/spi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAA;AAEjD,eAAO,MAAM,UAAU,EAAE,iBAcxB,CAAA"}
@@ -0,0 +1,16 @@
1
+ export const spiBuiltin = {
2
+ source: `// Simulator stub for spi
3
+ // Runs inside the mikrojs runtime (QuickJS), not Node.js. Node built-ins are not available.
4
+ import {ok} from 'mikrojs/result'
5
+ import type {SimSpi} from 'mikrojs/sim'
6
+
7
+ export class Spi implements SimSpi {
8
+ constructor(_hostNo: number, _options: Record<string, unknown>) {}
9
+ begin() { return ok() }
10
+ end() { return ok() }
11
+ transfer(data: Uint8Array) { return ok(new Uint8Array(data.length)) }
12
+ write(_data: Uint8Array) { return ok() }
13
+ }
14
+ `,
15
+ };
16
+ //# sourceMappingURL=spi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spi.js","sourceRoot":"","sources":["../../../src/simulator/builtins/spi.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C,MAAM,EAAE;;;;;;;;;;;;CAYT;CACA,CAAA"}
@@ -0,0 +1,24 @@
1
+ /** Map of builtin name to its native:* module name */
2
+ export type BuiltinModuleMap = {
3
+ ble: 'native:ble';
4
+ pin: 'native:pin';
5
+ pwm: 'native:pwm';
6
+ neopixel: 'native:neopixel';
7
+ wifi: 'native:wifi';
8
+ i2c: 'native:i2c';
9
+ spi: 'native:spi';
10
+ uart: 'native:uart';
11
+ kv: 'native:rtc';
12
+ nvs_kv: 'native:nvs_kv';
13
+ sleep: 'native:sleep';
14
+ http: 'native:http';
15
+ sntp: 'native:sntp';
16
+ console: 'native:console';
17
+ };
18
+ export type BuiltinName = keyof BuiltinModuleMap;
19
+ /** A builtin definition: JS source that replaces the native C module in the simulator */
20
+ export interface BuiltinDefinition {
21
+ /** Raw module source string that runs inside QuickJS */
22
+ source: string;
23
+ }
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/simulator/builtins/types.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,YAAY,CAAA;IACjB,GAAG,EAAE,YAAY,CAAA;IACjB,GAAG,EAAE,YAAY,CAAA;IACjB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,IAAI,EAAE,aAAa,CAAA;IACnB,GAAG,EAAE,YAAY,CAAA;IACjB,GAAG,EAAE,YAAY,CAAA;IACjB,IAAI,EAAE,aAAa,CAAA;IACnB,EAAE,EAAE,YAAY,CAAA;IAChB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,cAAc,CAAA;IACrB,IAAI,EAAE,aAAa,CAAA;IACnB,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAA;AAEhD,yFAAyF;AACzF,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAA;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/simulator/builtins/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { BuiltinDefinition } from './types.js';
2
+ export declare const uartBuiltin: BuiltinDefinition;
3
+ //# sourceMappingURL=uart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uart.d.ts","sourceRoot":"","sources":["../../../src/simulator/builtins/uart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAA;AAEjD,eAAO,MAAM,WAAW,EAAE,iBAoBzB,CAAA"}
@@ -0,0 +1,22 @@
1
+ export const uartBuiltin = {
2
+ source: `
3
+ import {ok} from 'mikrojs/result'
4
+
5
+ export class Uart {
6
+ constructor(_port, _options) {}
7
+ begin() { return ok() }
8
+ end() { return ok() }
9
+ write(_data) { return ok() }
10
+ read() {
11
+ // Return an async iterable that never yields (no real UART in sim)
12
+ const iter = {
13
+ next() { return new Promise(() => {}) },
14
+ return() { return Promise.resolve({done: true, value: undefined}) },
15
+ [Symbol.asyncIterator]() { return iter },
16
+ }
17
+ return ok(iter)
18
+ }
19
+ }
20
+ `,
21
+ };
22
+ //# sourceMappingURL=uart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uart.js","sourceRoot":"","sources":["../../../src/simulator/builtins/uart.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,MAAM,EAAE;;;;;;;;;;;;;;;;;;CAkBT;CACA,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { BuiltinDefinition } from './types.js';
2
+ export declare const wifiBuiltin: BuiltinDefinition;
3
+ //# sourceMappingURL=wifi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wifi.d.ts","sourceRoot":"","sources":["../../../src/simulator/builtins/wifi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAA;AAIjD,eAAO,MAAM,WAAW,EAAE,iBAmDzB,CAAA"}
@@ -0,0 +1,55 @@
1
+ // wifi uses a raw source module instead of RPC because connect() and scan()
2
+ // return {ok, value: Promise<...>} which can't survive JSON serialization.
3
+ export const wifiBuiltin = {
4
+ source: `/* eslint-disable no-console */
5
+ // Simulator stub for wifi
6
+ // Runs inside the mikrojs runtime (QuickJS), not Node.js. Node built-ins are not available.
7
+ import {ok} from 'mikrojs/result'
8
+ import type {SimWifi} from 'mikrojs/sim'
9
+
10
+ let connected = false
11
+ let currentIp = '0.0.0.0'
12
+
13
+ export class Wifi implements SimWifi {
14
+ connect(ssid: string, _passphrase: string) {
15
+ console.log('[sim] wifi.connect:', ssid)
16
+ connected = true
17
+ currentIp = '192.168.1.100'
18
+ const info = {ip: currentIp, netmask: '255.255.255.0', gateway: '192.168.1.1'}
19
+ return ok(Promise.resolve(ok(info)))
20
+ }
21
+ disconnect() { return ok() }
22
+ rssi() { return ok(-50) }
23
+ ip() { return currentIp }
24
+ status() { return connected ? 3 : 6 }
25
+ scan() { return ok(Promise.resolve(ok([] as never[]))) }
26
+ on() {}
27
+ off() {}
28
+ mac() { return ok('00:00:00:00:00:00') }
29
+ getHostname() { return 'mikrojs-sim' as string | undefined }
30
+ setHostname() { return ok() }
31
+ getIpConfig() {
32
+ if (!connected) return ok(undefined)
33
+ return ok({ip: currentIp, netmask: '255.255.255.0', gateway: '192.168.1.1', dns: '8.8.8.8'})
34
+ }
35
+ setIpConfig() { return ok() }
36
+ apStart() { return ok() }
37
+ apStop() { return ok() }
38
+ apIsActive() { return false }
39
+ apIp() { return undefined }
40
+ apStations() { return [] as {mac: string; rssi: number}[] }
41
+ apDeauthStation() { return ok() }
42
+ apGetInactiveTimeout() { return ok(300) }
43
+ apSetInactiveTimeout() { return ok() }
44
+ getTxPower() { return ok(20) }
45
+ setTxPower() { return ok() }
46
+ getRssiThreshold() { return -127 }
47
+ setRssiThreshold() { return ok() }
48
+ getPowerSave() { return 'NONE' }
49
+ setPowerSave() { return ok() }
50
+ getCountry() { return undefined }
51
+ setCountry() { return ok() }
52
+ }
53
+ `,
54
+ };
55
+ //# sourceMappingURL=wifi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wifi.js","sourceRoot":"","sources":["../../../src/simulator/builtins/wifi.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,2EAA2E;AAC3E,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDT;CACA,CAAA"}
@@ -0,0 +1,41 @@
1
+ import { type HostMessage, MikroRuntime } from '@mikrojs/native';
2
+ import { Subject } from 'rxjs';
3
+ export interface DevRunnerOptions {
4
+ script: string;
5
+ memLimit?: number;
6
+ fsRoot?: string;
7
+ fsLimit?: number;
8
+ fsReadMax?: number;
9
+ env?: Record<string, string>;
10
+ /**
11
+ * User-provided stub sources keyed by module name (e.g. 'native:wifi').
12
+ * These override the default stubs. TypeScript is stripped before registration.
13
+ */
14
+ stubSources?: Record<string, string>;
15
+ /**
16
+ * Enable per-module memory profiling. Profile data is collected as modules
17
+ * are loaded and can be read via runtime.getProfile() after execution.
18
+ */
19
+ profile?: boolean;
20
+ }
21
+ export interface DevRunner {
22
+ /** Observable stream of host messages from the QuickJS runtime. */
23
+ messages$: Subject<HostMessage>;
24
+ /** Post a message into the QuickJS runtime (delivered on next loop tick). */
25
+ postMessage(type: string, data: string): void;
26
+ /** Start the event loop. Returns a cleanup function. */
27
+ start(): () => void;
28
+ /** Register a callback that runs on each tick, after loopOnce + drainMessages. */
29
+ onTick(callback: () => void): void;
30
+ /** When true, skips loopOnce (timers/promises freeze) but tick callbacks still run. */
31
+ paused: boolean;
32
+ /** The underlying MikroRuntime instance. */
33
+ runtime: MikroRuntime;
34
+ }
35
+ /**
36
+ * Create a QuickJS dev runner for the simulator.
37
+ * Default stubs provide mock implementations for all native modules.
38
+ * User stubs (from sim/*.stub.ts) override defaults.
39
+ */
40
+ export declare function createDevRunner(options: DevRunnerOptions): DevRunner;
41
+ //# sourceMappingURL=devRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devRunner.d.ts","sourceRoot":"","sources":["../../src/simulator/devRunner.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,WAAW,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAC,OAAO,EAAC,MAAM,MAAM,CAAA;AAwD5B,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,mEAAmE;IACnE,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC/B,6EAA6E;IAC7E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7C,wDAAwD;IACxD,KAAK,IAAI,MAAM,IAAI,CAAA;IACnB,kFAAkF;IAClF,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAClC,uFAAuF;IACvF,MAAM,EAAE,OAAO,CAAA;IACf,4CAA4C;IAC5C,OAAO,EAAE,YAAY,CAAA;CACtB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAgLpE"}
@@ -0,0 +1,201 @@
1
+ import nodeFs from 'node:fs';
2
+ import { stripTypeScriptTypes } from 'node:module';
3
+ import * as pathlib from 'node:path';
4
+ import { MikroRuntime } from '@mikrojs/native';
5
+ import { Subject } from 'rxjs';
6
+ import { builtinModuleNames, defaultBuiltins } from './builtins/index.js';
7
+ const DEFAULT_MEM_LIMIT = 300 * 1024; // 300 KB
8
+ const DEFAULT_FS_ROOT = '.mikro/sim-fs';
9
+ const DEFAULT_FS_LIMIT = 1024 * 1024; // 1 MB
10
+ async function rpcHttpFetch(args) {
11
+ const init = { method: args.method ?? 'GET' };
12
+ if (args.headers && args.headers.length > 0)
13
+ init.headers = args.headers;
14
+ if (args.body)
15
+ init.body = Buffer.from(args.body, 'base64');
16
+ const res = await fetch(args.url, init);
17
+ const headers = [];
18
+ res.headers.forEach((v, k) => headers.push([k, v]));
19
+ const buf = Buffer.from(await res.arrayBuffer());
20
+ return { status: res.status, headers, body: buf.toString('base64') };
21
+ }
22
+ function nvsKvPath(fsRoot) {
23
+ return pathlib.join(pathlib.dirname(fsRoot), 'nvs_kv.json');
24
+ }
25
+ function readNvsKvStore(fsRoot) {
26
+ try {
27
+ return JSON.parse(nodeFs.readFileSync(nvsKvPath(fsRoot), 'utf-8'));
28
+ }
29
+ catch {
30
+ return { entries: {} };
31
+ }
32
+ }
33
+ function writeNvsKvStore(fsRoot, store) {
34
+ nodeFs.writeFileSync(nvsKvPath(fsRoot), JSON.stringify(store, null, 2) + '\n');
35
+ }
36
+ /**
37
+ * Create a QuickJS dev runner for the simulator.
38
+ * Default stubs provide mock implementations for all native modules.
39
+ * User stubs (from sim/*.stub.ts) override defaults.
40
+ */
41
+ export function createDevRunner(options) {
42
+ const { script, env, memLimit = DEFAULT_MEM_LIMIT, fsLimit = DEFAULT_FS_LIMIT, fsReadMax } = options;
43
+ const fsRoot = pathlib.resolve(options.fsRoot ?? DEFAULT_FS_ROOT);
44
+ nodeFs.mkdirSync(fsRoot, { recursive: true });
45
+ // Resolve the entry script to a logical path rooted at fsRoot (e.g.
46
+ // /app/http/foo.test.bjs). Passing a logical path — rather than an
47
+ // absolute host path — lets bytecode's baked module names (also logical,
48
+ // e.g. /app/http/foo.test.js) line up with the runtime module resolver, so
49
+ // cross-file imports inside bytecode modules resolve against fsRoot via
50
+ // fs_base_path (set below).
51
+ let logicalScript;
52
+ if (pathlib.isAbsolute(script)) {
53
+ // Subprocess mode: script is already inside fsRoot.
54
+ const rel = pathlib.relative(fsRoot, script);
55
+ if (rel.startsWith('..') || pathlib.isAbsolute(rel)) {
56
+ throw new Error(`Script ${script} is not inside fsRoot ${fsRoot}; cannot compute logical path.`);
57
+ }
58
+ logicalScript = '/' + rel.split(pathlib.sep).join('/');
59
+ }
60
+ else {
61
+ // In-process dev mode: symlink the script's top-level directory into
62
+ // fsRoot so the runtime can read it via the fs_base_path prefix.
63
+ const topDir = script.split(pathlib.sep)[0];
64
+ if (topDir) {
65
+ const appDir = pathlib.resolve(topDir);
66
+ const appLink = pathlib.join(fsRoot, topDir);
67
+ try {
68
+ const existing = nodeFs.readlinkSync(appLink);
69
+ if (existing !== appDir) {
70
+ nodeFs.unlinkSync(appLink);
71
+ nodeFs.symlinkSync(appDir, appLink);
72
+ }
73
+ }
74
+ catch {
75
+ nodeFs.rmSync(appLink, { force: true, recursive: true });
76
+ nodeFs.symlinkSync(appDir, appLink);
77
+ }
78
+ }
79
+ logicalScript = '/' + script.split(pathlib.sep).join('/');
80
+ }
81
+ // Register virtual modules: default stubs, then user overrides
82
+ const modules = {};
83
+ for (const [name, builtin] of Object.entries(defaultBuiltins)) {
84
+ const moduleName = builtinModuleNames[name];
85
+ if (!moduleName)
86
+ continue;
87
+ modules[moduleName] = stripTypeScriptTypes(builtin.source, { mode: 'strip' });
88
+ }
89
+ // User stub sources override defaults (already stripped by loadSimStubs)
90
+ if (options.stubSources) {
91
+ for (const [moduleName, source] of Object.entries(options.stubSources)) {
92
+ modules[moduleName] = source;
93
+ }
94
+ }
95
+ // fsBasePath enables logical module resolution: the runtime prepends it to
96
+ // /-prefixed module names so bytecode's baked names can resolve to sim-fs.
97
+ const runtime = new MikroRuntime({
98
+ memLimit,
99
+ env,
100
+ fsRoot,
101
+ fsBasePath: fsRoot,
102
+ fsLimit,
103
+ fsReadMax,
104
+ modules,
105
+ });
106
+ // Profiling must be enabled before any module loads to capture the full
107
+ // import graph. Do it immediately after runtime construction, before the
108
+ // stub/console bootstrap registers or evaluates anything.
109
+ if (options.profile) {
110
+ runtime.enableProfiling();
111
+ }
112
+ // Strip TypeScript types from .ts files before QuickJS compiles them
113
+ runtime.setPreprocessor((filename, source) => {
114
+ if (filename.endsWith('.ts')) {
115
+ return stripTypeScriptTypes(source, { mode: 'strip' });
116
+ }
117
+ return undefined;
118
+ });
119
+ // RPC handler: bridges QuickJS host.call(...) to Node-side capabilities.
120
+ // Returns a string for sync methods (host.call resolves immediately on
121
+ // the QuickJS side) and a Promise for async ones (host.call returns a JS
122
+ // Promise). Keeping nvs_kv ops sync matches firmware NVS semantics —
123
+ // `set` is expected to be observable on the next read in the same tick.
124
+ runtime.setRpcHandler((method, argsJson) => {
125
+ if (method === 'http.fetch') {
126
+ return rpcHttpFetch(JSON.parse(argsJson)).then((r) => JSON.stringify(r));
127
+ }
128
+ if (method === 'nvs_kv.list') {
129
+ return JSON.stringify(readNvsKvStore(fsRoot).entries);
130
+ }
131
+ if (method === 'nvs_kv.set') {
132
+ const { key, value } = JSON.parse(argsJson);
133
+ const store = readNvsKvStore(fsRoot);
134
+ store.entries[key] = value;
135
+ writeNvsKvStore(fsRoot, store);
136
+ return '{}';
137
+ }
138
+ if (method === 'nvs_kv.remove') {
139
+ const { key } = JSON.parse(argsJson);
140
+ const store = readNvsKvStore(fsRoot);
141
+ const existed = key in store.entries;
142
+ if (existed) {
143
+ const { [key]: _omit, ...rest } = store.entries;
144
+ writeNvsKvStore(fsRoot, { entries: rest });
145
+ }
146
+ return JSON.stringify({ existed });
147
+ }
148
+ if (method === 'nvs_kv.clear') {
149
+ writeNvsKvStore(fsRoot, { entries: {} });
150
+ return '{}';
151
+ }
152
+ throw new Error(`Unknown sim RPC method: ${method}`);
153
+ });
154
+ const messages$ = new Subject();
155
+ const tickCallbacks = [];
156
+ function start() {
157
+ // Bootstrap console and evaluate user script inside start() so that
158
+ // messages$ subscriptions are active before any messages are emitted.
159
+ if (modules['native:console']) {
160
+ runtime.evalModuleContent('native:dev_bootstrap', "import 'native:console'");
161
+ }
162
+ runtime.evalModule(logicalScript);
163
+ // Drain any messages produced during evalModule
164
+ for (const msg of runtime.drainMessages()) {
165
+ messages$.next(msg);
166
+ }
167
+ let stopped = false;
168
+ function tick() {
169
+ if (stopped)
170
+ return;
171
+ if (!handle.paused)
172
+ runtime.loopOnce();
173
+ for (const msg of runtime.drainMessages()) {
174
+ messages$.next(msg);
175
+ }
176
+ for (const cb of tickCallbacks) {
177
+ cb();
178
+ }
179
+ setImmediate(tick);
180
+ }
181
+ setImmediate(tick);
182
+ return () => {
183
+ stopped = true;
184
+ messages$.complete();
185
+ };
186
+ }
187
+ const handle = {
188
+ messages$,
189
+ postMessage(type, data) {
190
+ runtime.postMessage(type, data);
191
+ },
192
+ start,
193
+ onTick(callback) {
194
+ tickCallbacks.push(callback);
195
+ },
196
+ paused: false,
197
+ runtime,
198
+ };
199
+ return handle;
200
+ }
201
+ //# sourceMappingURL=devRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devRunner.js","sourceRoot":"","sources":["../../src/simulator/devRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Load user-provided sim stubs from the `sim/` directory.
3
+ *
4
+ * Each `sim/<name>.stub.ts` file is a JS/TS module that directly implements
5
+ * the corresponding `native:*` native module. The source is read as text,
6
+ * TypeScript types are stripped, and the result is registered as a virtual
7
+ * module in the QuickJS runtime (replacing the native C module).
8
+ *
9
+ * Stubs run inside QuickJS, not in Node.js. They should export the same
10
+ * interface as the native module they replace.
11
+ *
12
+ * Returns a map of native:* module name → source string.
13
+ */
14
+ export declare function loadSimStubs(projectDir: string): Record<string, string>;
15
+ //# sourceMappingURL=loadSimStubs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadSimStubs.d.ts","sourceRoot":"","sources":["../../src/simulator/loadSimStubs.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgCvE"}