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