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.
- 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 +40 -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 +52 -0
- package/dist/cli/commands/sim/dev.d.ts.map +1 -0
- package/dist/cli/commands/sim/dev.js +380 -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 +356 -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 +228 -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 +406 -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 +57 -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 +657 -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 +120 -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 +46 -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 +90 -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 +17 -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 +39 -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 +15 -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 +69 -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 +32 -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 +31 -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 +33 -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 +14 -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 +16 -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 +22 -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 +55 -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 +201 -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 +957 -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,63 @@
|
|
|
1
|
+
import type { InferValue } from '@optique/core/parser';
|
|
2
|
+
import type { ReplSession } from '../lib/session.js';
|
|
3
|
+
export declare const args: import("@optique/core").Parser<"sync", {
|
|
4
|
+
readonly action: "deploy";
|
|
5
|
+
readonly entry: string | undefined;
|
|
6
|
+
readonly port: string | undefined;
|
|
7
|
+
readonly console: true | undefined;
|
|
8
|
+
readonly erase: true | undefined;
|
|
9
|
+
readonly force: true | undefined;
|
|
10
|
+
readonly env: string | undefined;
|
|
11
|
+
readonly secrets: string | undefined;
|
|
12
|
+
readonly noEnvFile: true | undefined;
|
|
13
|
+
readonly noRestart: true | undefined;
|
|
14
|
+
readonly recover: true | undefined;
|
|
15
|
+
readonly noMinify: true | undefined;
|
|
16
|
+
readonly minifier: string | undefined;
|
|
17
|
+
readonly minifyLevel: string | undefined;
|
|
18
|
+
readonly noBytecode: true | undefined;
|
|
19
|
+
readonly noHooks: true | undefined;
|
|
20
|
+
readonly logLevel: string | undefined;
|
|
21
|
+
readonly json: true | undefined;
|
|
22
|
+
readonly agent: true | undefined;
|
|
23
|
+
}, ["matched", string] | ["parsing", {
|
|
24
|
+
readonly action: "deploy";
|
|
25
|
+
readonly entry: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
26
|
+
readonly port: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
27
|
+
readonly console: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
28
|
+
readonly erase: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
29
|
+
readonly force: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
30
|
+
readonly env: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
31
|
+
readonly secrets: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
32
|
+
readonly noEnvFile: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
33
|
+
readonly noRestart: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
34
|
+
readonly recover: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
35
|
+
readonly noMinify: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
36
|
+
readonly minifier: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
37
|
+
readonly minifyLevel: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
38
|
+
readonly noBytecode: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
39
|
+
readonly noHooks: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
40
|
+
readonly logLevel: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
41
|
+
readonly json: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
42
|
+
readonly agent: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
43
|
+
}] | undefined>;
|
|
44
|
+
type Props = {
|
|
45
|
+
args: InferValue<typeof args>;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Non-Ink deploy: runs as a plain async function. With `--console`, returns
|
|
49
|
+
* the session + devicePath so the caller can attach `InkReplConsole`; the
|
|
50
|
+
* session is intentionally not closed here in that case — the Ink-mode
|
|
51
|
+
* REPL owns it for its lifetime and cleanup happens on `process.exit`.
|
|
52
|
+
*/
|
|
53
|
+
export declare function run(config: InferValue<typeof args>): Promise<{
|
|
54
|
+
session: ReplSession;
|
|
55
|
+
devicePath: string;
|
|
56
|
+
} | null>;
|
|
57
|
+
/**
|
|
58
|
+
* Ink component for deploy with interactive device selection.
|
|
59
|
+
* Handles both plain deploy and --console mode.
|
|
60
|
+
*/
|
|
61
|
+
export default function Deploy(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/deploy.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAA;AAoBpD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAElD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA2EhB,CAAA;AAED,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAA;CAC9B,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,GAAG,CACvB,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,GAC9B,OAAO,CAAC;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,GAAG,IAAI,CAAC,CA0I5D;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,KAAK,2CAQ1C"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as pathlib from 'node:path';
|
|
3
|
+
import { command, constant, message, optional } from '@optique/core';
|
|
4
|
+
import { object } from '@optique/core/constructs';
|
|
5
|
+
import { argument, flag, option } from '@optique/core/primitives';
|
|
6
|
+
import { string } from '@optique/core/valueparser';
|
|
7
|
+
import { path } from '@optique/run';
|
|
8
|
+
import { useInput } from 'ink';
|
|
9
|
+
import React, { useEffect, useState } from 'react';
|
|
10
|
+
import { lastValueFrom, tap } from 'rxjs';
|
|
11
|
+
import { DevicePicker } from '../components/DevicePicker.js';
|
|
12
|
+
import { agentEmit, agentResult, isAgentMode } from '../lib/agent.js';
|
|
13
|
+
import { build } from '../lib/build.js';
|
|
14
|
+
import { collectFiles, loadEnvFiles, validateNvsKeys } from '../lib/deploy.js';
|
|
15
|
+
import { formatDeployEvent } from '../lib/deployProgress.js';
|
|
16
|
+
import { parseLogLevel, parseMinifier, parseMinifyLevel } from '../lib/parseMinifier.js';
|
|
17
|
+
import { getMikroDir, resolveProjectRoot } from '../lib/projectRoot.js';
|
|
18
|
+
import { resolveEntry } from '../lib/resolveEntry.js';
|
|
19
|
+
import { getPredeployCommands, runHooks } from '../lib/runHooks.js';
|
|
20
|
+
import { InkReplConsole } from '../lib/serial/InkReplConsole.js';
|
|
21
|
+
import { openSession } from '../lib/serial/openSession.js';
|
|
22
|
+
export const args = command('deploy', object({
|
|
23
|
+
action: constant('deploy'),
|
|
24
|
+
entry: optional(argument(path({ metavar: 'ENTRY', mustExist: true, type: 'file' }))),
|
|
25
|
+
port: optional(option('-p', '--port', string({ metavar: 'PORT' }), {
|
|
26
|
+
description: message `Serial port of device to deploy to`,
|
|
27
|
+
})),
|
|
28
|
+
console: optional(flag('--console', {
|
|
29
|
+
description: message `Attach console after deploy and restart device`,
|
|
30
|
+
})),
|
|
31
|
+
erase: optional(flag('-e', '--erase', {
|
|
32
|
+
description: message `Erase current app before uploading`,
|
|
33
|
+
})),
|
|
34
|
+
force: optional(flag('-f', '--force', {
|
|
35
|
+
description: message `Force full upload, ignoring cached checksums`,
|
|
36
|
+
})),
|
|
37
|
+
env: optional(option('--env', string({ metavar: 'FILE' }), {
|
|
38
|
+
description: message `Path to .env file with environment variables`,
|
|
39
|
+
})),
|
|
40
|
+
secrets: optional(option('--secrets', string({ metavar: 'FILE' }), {
|
|
41
|
+
description: message `Path to .env.secrets file with secrets`,
|
|
42
|
+
})),
|
|
43
|
+
noEnvFile: optional(flag('--no-env-file', {
|
|
44
|
+
description: message `Skip auto-loading of .env and .env.production from the project root`,
|
|
45
|
+
})),
|
|
46
|
+
noRestart: optional(flag('--no-restart', {
|
|
47
|
+
description: message `Do not restart device after deploy`,
|
|
48
|
+
})),
|
|
49
|
+
recover: optional(flag('--recover', {
|
|
50
|
+
description: message `Reset the device into safe mode before deploying. Use when the deployed app is crash-looping.`,
|
|
51
|
+
})),
|
|
52
|
+
noMinify: optional(flag('--no-minify', { description: message `Skip minification` })),
|
|
53
|
+
minifier: optional(option('--minifier', string({ metavar: 'NAME' }), {
|
|
54
|
+
description: message `Minifier: esbuild, terser, or swc (default: esbuild)`,
|
|
55
|
+
})),
|
|
56
|
+
minifyLevel: optional(option('--minify-level', string({ metavar: 'LEVEL' }), {
|
|
57
|
+
description: message `Minify level: default or max`,
|
|
58
|
+
})),
|
|
59
|
+
noBytecode: optional(flag('--no-bytecode', { description: message `Skip bytecode compilation` })),
|
|
60
|
+
noHooks: optional(flag('--no-hooks', {
|
|
61
|
+
description: message `Skip mikrojs.predeploy hooks from package.json`,
|
|
62
|
+
})),
|
|
63
|
+
logLevel: optional(option('--loglevel', string({ metavar: 'LEVEL' }), {
|
|
64
|
+
description: message `Log level: none, error, warn, info, debug. Console calls below this level are eliminated at build time.`,
|
|
65
|
+
})),
|
|
66
|
+
json: optional(flag('--json', { description: message `Output as JSON` })),
|
|
67
|
+
agent: optional(flag('--agent', { description: message `Output as JSON (agent mode)` })),
|
|
68
|
+
}));
|
|
69
|
+
/**
|
|
70
|
+
* Non-Ink deploy: runs as a plain async function. With `--console`, returns
|
|
71
|
+
* the session + devicePath so the caller can attach `InkReplConsole`; the
|
|
72
|
+
* session is intentionally not closed here in that case — the Ink-mode
|
|
73
|
+
* REPL owns it for its lifetime and cleanup happens on `process.exit`.
|
|
74
|
+
*/
|
|
75
|
+
export async function run(config) {
|
|
76
|
+
const entry = resolveEntry(config.entry);
|
|
77
|
+
const buildDir = pathlib.join(getMikroDir(), 'build');
|
|
78
|
+
const doMinify = !config.noMinify;
|
|
79
|
+
const minifier = parseMinifier(config.minifier);
|
|
80
|
+
const minifyLevel = parseMinifyLevel(config.minifyLevel);
|
|
81
|
+
const logLevel = parseLogLevel(config.logLevel) ?? 'warn';
|
|
82
|
+
const doBytecode = !config.noBytecode;
|
|
83
|
+
const doErase = config.erase === true;
|
|
84
|
+
const doForce = config.force === true;
|
|
85
|
+
const doRestart = !config.noRestart;
|
|
86
|
+
const jsonOutput = config.json === true || isAgentMode(config.agent);
|
|
87
|
+
// eslint-disable-next-line no-console
|
|
88
|
+
const log = jsonOutput ? () => { } : (msg) => console.error(msg);
|
|
89
|
+
// Run pre-deploy hooks (tsc, eslint, etc.) declared in package.json.
|
|
90
|
+
if (config.noHooks !== true) {
|
|
91
|
+
const projectRoot = resolveProjectRoot();
|
|
92
|
+
const commands = getPredeployCommands(projectRoot);
|
|
93
|
+
if (commands.length > 0) {
|
|
94
|
+
log(`Running ${commands.length} pre-deploy hook(s)…`);
|
|
95
|
+
await lastValueFrom(runHooks(commands, projectRoot).pipe(tap((event) => {
|
|
96
|
+
if (event.type === 'start')
|
|
97
|
+
log(` $ ${event.command}`);
|
|
98
|
+
else if (event.type === 'stdout' || event.type === 'stderr') {
|
|
99
|
+
process.stderr.write(event.chunk);
|
|
100
|
+
}
|
|
101
|
+
})), { defaultValue: undefined });
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Build
|
|
105
|
+
log('Building…');
|
|
106
|
+
await lastValueFrom(build(entry, buildDir, {
|
|
107
|
+
minify: doMinify,
|
|
108
|
+
bytecode: doBytecode,
|
|
109
|
+
minifier,
|
|
110
|
+
minifyLevel,
|
|
111
|
+
logLevel,
|
|
112
|
+
}), { defaultValue: undefined });
|
|
113
|
+
// Collect files
|
|
114
|
+
const files = await collectFiles(buildDir);
|
|
115
|
+
const totalBytes = files.reduce((sum, f) => sum + f.data.length, 0);
|
|
116
|
+
log(`Built ${files.length} file(s), ${totalBytes} bytes total`);
|
|
117
|
+
// Load env vars
|
|
118
|
+
const envVars = [
|
|
119
|
+
{ key: 'MIKRO_ENV', value: 'production', secret: false },
|
|
120
|
+
...(await loadEnvFiles({
|
|
121
|
+
cwd: resolveProjectRoot(),
|
|
122
|
+
mode: 'production',
|
|
123
|
+
envFile: config.env,
|
|
124
|
+
secretsFile: config.secrets,
|
|
125
|
+
noEnvFile: config.noEnvFile === true,
|
|
126
|
+
})),
|
|
127
|
+
];
|
|
128
|
+
validateNvsKeys(envVars);
|
|
129
|
+
if (envVars.length > 0) {
|
|
130
|
+
const envCount = envVars.filter((v) => !v.secret).length;
|
|
131
|
+
const secretCount = envVars.filter((v) => v.secret).length;
|
|
132
|
+
if (envCount > 0)
|
|
133
|
+
log(`Loaded ${envCount} env variable(s)`);
|
|
134
|
+
if (secretCount > 0)
|
|
135
|
+
log(`Loaded ${secretCount} secret(s)`);
|
|
136
|
+
}
|
|
137
|
+
// Connect to device
|
|
138
|
+
const handles = await openSession({
|
|
139
|
+
port: config.port,
|
|
140
|
+
recover: config.recover === true,
|
|
141
|
+
onConnecting: (path) => {
|
|
142
|
+
log(`Connecting to ${path}…`);
|
|
143
|
+
if (config.recover)
|
|
144
|
+
log('Triggering safe mode…');
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
const { session, devicePath } = handles;
|
|
148
|
+
try {
|
|
149
|
+
const last = await lastValueFrom(session
|
|
150
|
+
.deploy({
|
|
151
|
+
files,
|
|
152
|
+
envVars,
|
|
153
|
+
erase: doErase,
|
|
154
|
+
force: doForce,
|
|
155
|
+
restart: doRestart,
|
|
156
|
+
})
|
|
157
|
+
.pipe(tap((event) => {
|
|
158
|
+
if (jsonOutput) {
|
|
159
|
+
if (event.type === 'uploading' || event.type === 'checking') {
|
|
160
|
+
agentEmit({
|
|
161
|
+
type: `deploy_${event.type}`,
|
|
162
|
+
file: event.file,
|
|
163
|
+
index: event.index,
|
|
164
|
+
total: event.total,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
const msg = formatDeployEvent(event);
|
|
170
|
+
if (msg !== null)
|
|
171
|
+
log(` ${msg}`);
|
|
172
|
+
})));
|
|
173
|
+
if (last.type !== 'complete')
|
|
174
|
+
throw new Error('Deploy did not complete');
|
|
175
|
+
}
|
|
176
|
+
finally {
|
|
177
|
+
if (!config.console)
|
|
178
|
+
handles.close();
|
|
179
|
+
}
|
|
180
|
+
if (jsonOutput) {
|
|
181
|
+
agentResult('deploy', {
|
|
182
|
+
device: devicePath,
|
|
183
|
+
files: files.map((f) => ({ path: f.path, size: f.data.length })),
|
|
184
|
+
totalBytes,
|
|
185
|
+
}, [
|
|
186
|
+
{ command: `mikro console -p ${devicePath}`, description: 'Connect to device console' },
|
|
187
|
+
{ command: 'mikro deploy --console', description: 'Deploy and attach console' },
|
|
188
|
+
{ command: `mikro env list -p ${devicePath}`, description: 'List device env vars' },
|
|
189
|
+
]);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
log(`Deployed ${files.length} file(s) to ${devicePath}`);
|
|
193
|
+
}
|
|
194
|
+
if (config.console) {
|
|
195
|
+
return { session, devicePath };
|
|
196
|
+
}
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Ink component for deploy with interactive device selection.
|
|
201
|
+
* Handles both plain deploy and --console mode.
|
|
202
|
+
*/
|
|
203
|
+
export default function Deploy(props) {
|
|
204
|
+
const { args: config } = props;
|
|
205
|
+
return (_jsx(DevicePicker, { port: config.port, children: (device) => _jsx(DeployInner, { config: config, device: device }) }));
|
|
206
|
+
}
|
|
207
|
+
function DeployInner({ config, device }) {
|
|
208
|
+
const [session, setSession] = useState(null);
|
|
209
|
+
const [error, setError] = useState(null);
|
|
210
|
+
useEffect(() => {
|
|
211
|
+
run({ ...config, port: device.path }).then((result) => {
|
|
212
|
+
if (result)
|
|
213
|
+
setSession(result.session);
|
|
214
|
+
else
|
|
215
|
+
process.exit(0);
|
|
216
|
+
}, (err) => {
|
|
217
|
+
setError(err instanceof Error ? err.message : String(err));
|
|
218
|
+
});
|
|
219
|
+
}, [config, device.path]);
|
|
220
|
+
// Ctrl+C / Ctrl+Q while the deploy is still running (no REPL yet).
|
|
221
|
+
useInput((_ch, key) => {
|
|
222
|
+
if (key.ctrl && (_ch === 'c' || _ch === 'q'))
|
|
223
|
+
process.exit(0);
|
|
224
|
+
}, { isActive: !session });
|
|
225
|
+
// Exit-on-error as a side effect, not inside render. Calling console.error
|
|
226
|
+
// + process.exit during render triggers React's "nested component updates
|
|
227
|
+
// from render" warning because Ink re-renders in response to stderr writes
|
|
228
|
+
// and the scheduled exit.
|
|
229
|
+
useEffect(() => {
|
|
230
|
+
if (!error)
|
|
231
|
+
return;
|
|
232
|
+
// eslint-disable-next-line no-console
|
|
233
|
+
console.error(`Error: ${error}`);
|
|
234
|
+
process.exit(1);
|
|
235
|
+
}, [error]);
|
|
236
|
+
if (error)
|
|
237
|
+
return null;
|
|
238
|
+
if (!session)
|
|
239
|
+
return null;
|
|
240
|
+
return _jsx(InkReplConsole, { session: session, devicePath: device.path });
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/cli/commands/deploy.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { InferValue } from '@optique/core/parser';
|
|
2
|
+
export declare const args: import("@optique/core").Parser<"sync", {
|
|
3
|
+
readonly action: "dev";
|
|
4
|
+
readonly entry: string | undefined;
|
|
5
|
+
readonly port: string | undefined;
|
|
6
|
+
readonly forceDeploy: true | undefined;
|
|
7
|
+
readonly noMinify: true | undefined;
|
|
8
|
+
readonly minifier: string | undefined;
|
|
9
|
+
readonly minifyLevel: string | undefined;
|
|
10
|
+
readonly noBytecode: true | undefined;
|
|
11
|
+
readonly noHooks: true | undefined;
|
|
12
|
+
readonly logLevel: string | undefined;
|
|
13
|
+
readonly env: string | undefined;
|
|
14
|
+
readonly secrets: string | undefined;
|
|
15
|
+
readonly noEnvFile: true | undefined;
|
|
16
|
+
readonly noWatch: true | undefined;
|
|
17
|
+
readonly agent: true | undefined;
|
|
18
|
+
}, ["matched", string] | ["parsing", {
|
|
19
|
+
readonly action: "dev";
|
|
20
|
+
readonly entry: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
21
|
+
readonly port: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
22
|
+
readonly forceDeploy: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
23
|
+
readonly noMinify: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
24
|
+
readonly minifier: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
25
|
+
readonly minifyLevel: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
26
|
+
readonly noBytecode: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
27
|
+
readonly noHooks: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
28
|
+
readonly logLevel: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
29
|
+
readonly env: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
30
|
+
readonly secrets: [import("@optique/core").ValueParserResult<string> | undefined] | undefined;
|
|
31
|
+
readonly noEnvFile: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
32
|
+
readonly noWatch: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
33
|
+
readonly agent: [import("@optique/core").ValueParserResult<true> | undefined] | undefined;
|
|
34
|
+
}] | undefined>;
|
|
35
|
+
type Props = {
|
|
36
|
+
args: InferValue<typeof args>;
|
|
37
|
+
};
|
|
38
|
+
export declare function run(config: InferValue<typeof args>): Promise<never>;
|
|
39
|
+
export default function Dev(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=dev.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAA;AAmBpD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAyDhB,CAAA;AAED,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAA;CAC9B,CAAA;AAED,wBAAsB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,kBAuFxD;AAED,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,2CAoDvC"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { command, constant, message, object, optional } from '@optique/core';
|
|
3
|
+
import { argument, flag, option } from '@optique/core/primitives';
|
|
4
|
+
import { string } from '@optique/core/valueparser';
|
|
5
|
+
import { path } from '@optique/run';
|
|
6
|
+
import { useCallback } from 'react';
|
|
7
|
+
import { filter, firstValueFrom, map, Subject } from 'rxjs';
|
|
8
|
+
import { DevicePicker } from '../components/DevicePicker.js';
|
|
9
|
+
import { agentEmit } from '../lib/agent.js';
|
|
10
|
+
import { parseLogLevel, parseMinifier, parseMinifyLevel } from '../lib/parseMinifier.js';
|
|
11
|
+
import { resolveEntry } from '../lib/resolveEntry.js';
|
|
12
|
+
import { createDevSession } from '../lib/serial/devSession.js';
|
|
13
|
+
import { InkReplMode, } from '../lib/serial/InkReplMode.js';
|
|
14
|
+
import { runAgentRepl } from '../lib/serial/runAgentRepl.js';
|
|
15
|
+
export const args = command('dev', object({
|
|
16
|
+
action: constant('dev'),
|
|
17
|
+
entry: optional(argument(path({ metavar: 'ENTRY', mustExist: true, type: 'file' }))),
|
|
18
|
+
port: optional(option('-p', '--port', string({ metavar: 'PORT' }), {
|
|
19
|
+
description: message `Serial port of device`,
|
|
20
|
+
})),
|
|
21
|
+
forceDeploy: optional(flag('--force-deploy', { description: message `Force full deploy, ignoring cached checksums` })),
|
|
22
|
+
noMinify: optional(flag('--no-minify', { description: message `Skip minification` })),
|
|
23
|
+
minifier: optional(option('--minifier', string({ metavar: 'NAME' }), {
|
|
24
|
+
description: message `Minifier: esbuild, terser, or swc (default: esbuild)`,
|
|
25
|
+
})),
|
|
26
|
+
minifyLevel: optional(option('--minify-level', string({ metavar: 'LEVEL' }), {
|
|
27
|
+
description: message `Minify level: default or max`,
|
|
28
|
+
})),
|
|
29
|
+
noBytecode: optional(flag('--no-bytecode', { description: message `Skip bytecode compilation` })),
|
|
30
|
+
noHooks: optional(flag('--no-hooks', {
|
|
31
|
+
description: message `Skip mikrojs.predeploy hooks from package.json`,
|
|
32
|
+
})),
|
|
33
|
+
logLevel: optional(option('--loglevel', string({ metavar: 'LEVEL' }), {
|
|
34
|
+
description: message `Log level: none, error, warn, info, debug. Console calls below this level are eliminated at build time.`,
|
|
35
|
+
})),
|
|
36
|
+
env: optional(option('--env', string({ metavar: 'FILE' }), {
|
|
37
|
+
description: message `Path to .env file with environment variables`,
|
|
38
|
+
})),
|
|
39
|
+
secrets: optional(option('--secrets', string({ metavar: 'FILE' }), {
|
|
40
|
+
description: message `Path to .env.secrets file with secrets`,
|
|
41
|
+
})),
|
|
42
|
+
noEnvFile: optional(flag('--no-env-file', {
|
|
43
|
+
description: message `Skip auto-loading of .env and .env.development from the project root`,
|
|
44
|
+
})),
|
|
45
|
+
noWatch: optional(flag('--no-watch', {
|
|
46
|
+
description: message `Deploy once, then drop into the REPL without watching for file changes`,
|
|
47
|
+
})),
|
|
48
|
+
agent: optional(flag('--agent', { description: message `NDJSON agent protocol over stdio` })),
|
|
49
|
+
}));
|
|
50
|
+
export async function run(config) {
|
|
51
|
+
const deploys$ = new Subject();
|
|
52
|
+
let dev = null;
|
|
53
|
+
let stateSub = null;
|
|
54
|
+
return runAgentRepl({ port: config.port }, {
|
|
55
|
+
command: 'dev',
|
|
56
|
+
onReady: async ({ session }) => {
|
|
57
|
+
dev = createDevSession({
|
|
58
|
+
session,
|
|
59
|
+
entry: resolveEntry(config.entry),
|
|
60
|
+
forceDeploy: config.forceDeploy === true,
|
|
61
|
+
minify: !config.noMinify,
|
|
62
|
+
bytecode: !config.noBytecode,
|
|
63
|
+
watch: config.noWatch !== true,
|
|
64
|
+
noHooks: config.noHooks === true,
|
|
65
|
+
minifier: parseMinifier(config.minifier),
|
|
66
|
+
minifyLevel: parseMinifyLevel(config.minifyLevel),
|
|
67
|
+
logLevel: parseLogLevel(config.logLevel),
|
|
68
|
+
envFile: config.env,
|
|
69
|
+
secretsFile: config.secrets,
|
|
70
|
+
noEnvFile: config.noEnvFile === true,
|
|
71
|
+
externalDeploys$: deploys$.asObservable(),
|
|
72
|
+
});
|
|
73
|
+
// Translate DevSessionState transitions into agent NDJSON events.
|
|
74
|
+
// Every distinct status emits exactly once; the state$ shareReplay
|
|
75
|
+
// deduplicates identical re-emissions naturally.
|
|
76
|
+
const idleStatus = config.noWatch === true ? 'idle' : 'watching';
|
|
77
|
+
stateSub = dev.state$.subscribe((state) => {
|
|
78
|
+
switch (state.status.type) {
|
|
79
|
+
case 'checking':
|
|
80
|
+
agentEmit({ type: 'status', status: 'checking', command: state.status.command });
|
|
81
|
+
break;
|
|
82
|
+
case 'building':
|
|
83
|
+
case 'rebuilding':
|
|
84
|
+
agentEmit({ type: 'status', status: 'building' });
|
|
85
|
+
break;
|
|
86
|
+
case 'deploying': {
|
|
87
|
+
const event = state.status.event;
|
|
88
|
+
if (event.type === 'uploading' || event.type === 'checking') {
|
|
89
|
+
agentEmit({
|
|
90
|
+
type: `deploy_${event.type}`,
|
|
91
|
+
file: event.file,
|
|
92
|
+
index: event.index,
|
|
93
|
+
total: event.total,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
else if (event.type === 'connecting') {
|
|
97
|
+
agentEmit({ type: 'status', status: 'deploying' });
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
case 'watching':
|
|
102
|
+
agentEmit({ type: 'status', status: idleStatus });
|
|
103
|
+
break;
|
|
104
|
+
case 'error':
|
|
105
|
+
agentEmit({ type: 'status', status: 'error', error: state.status.message });
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
// Await the first non-building state to detect initial-deploy failure.
|
|
110
|
+
// `watching` means the initial deploy succeeded; `error` means we
|
|
111
|
+
// should exit(1) via the hook contract.
|
|
112
|
+
await firstValueFrom(dev.state$.pipe(filter((s) => s.status.type === 'watching' || s.status.type === 'error'), map((s) => {
|
|
113
|
+
if (s.status.type === 'error')
|
|
114
|
+
throw new Error(s.status.message);
|
|
115
|
+
return s;
|
|
116
|
+
})));
|
|
117
|
+
},
|
|
118
|
+
onDeploy: (force) => deploys$.next({ force }),
|
|
119
|
+
onDispose: () => {
|
|
120
|
+
stateSub?.unsubscribe();
|
|
121
|
+
dev?.close();
|
|
122
|
+
},
|
|
123
|
+
nextActions: [
|
|
124
|
+
{ command: 'mikro deploy', description: 'Deploy to device' },
|
|
125
|
+
{ command: 'mikro console', description: 'Connect to device console' },
|
|
126
|
+
],
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
export default function Dev(props) {
|
|
130
|
+
const { port, noMinify, noBytecode, forceDeploy, noWatch, noHooks } = props.args;
|
|
131
|
+
const minifier = parseMinifier(props.args.minifier);
|
|
132
|
+
const minifyLevel = parseMinifyLevel(props.args.minifyLevel);
|
|
133
|
+
const logLevel = parseLogLevel(props.args.logLevel);
|
|
134
|
+
const entry = resolveEntry(props.args.entry);
|
|
135
|
+
const driver = useCallback(({ session, repl }) => {
|
|
136
|
+
const dev = createDevSession({
|
|
137
|
+
session,
|
|
138
|
+
repl,
|
|
139
|
+
entry,
|
|
140
|
+
forceDeploy: forceDeploy === true,
|
|
141
|
+
minify: !noMinify,
|
|
142
|
+
bytecode: !noBytecode,
|
|
143
|
+
watch: noWatch !== true,
|
|
144
|
+
noHooks: noHooks === true,
|
|
145
|
+
minifier,
|
|
146
|
+
minifyLevel,
|
|
147
|
+
logLevel,
|
|
148
|
+
envFile: props.args.env,
|
|
149
|
+
secretsFile: props.args.secrets,
|
|
150
|
+
noEnvFile: props.args.noEnvFile === true,
|
|
151
|
+
});
|
|
152
|
+
return { run$: dev.state$, dispose: () => dev.close() };
|
|
153
|
+
}, [
|
|
154
|
+
entry,
|
|
155
|
+
forceDeploy,
|
|
156
|
+
noMinify,
|
|
157
|
+
noBytecode,
|
|
158
|
+
noWatch,
|
|
159
|
+
noHooks,
|
|
160
|
+
minifier,
|
|
161
|
+
minifyLevel,
|
|
162
|
+
logLevel,
|
|
163
|
+
props.args.env,
|
|
164
|
+
props.args.secrets,
|
|
165
|
+
props.args.noEnvFile,
|
|
166
|
+
]);
|
|
167
|
+
const watch = noWatch !== true;
|
|
168
|
+
return (_jsx(DevicePicker, { port: port, children: (device) => (_jsx(InkReplMode, { devicePath: device.path, logLevel: logLevel, driver: driver, watch: watch })) }));
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/cli/commands/dev.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/docs.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,IAAI;;;;eAMhB,CAAA;AAED,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CASzC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import { command, constant, message } from '@optique/core';
|
|
3
|
+
import { object } from '@optique/core/constructs';
|
|
4
|
+
import open from 'open';
|
|
5
|
+
const DOCS_URL = 'https://mikrojs.dev/docs';
|
|
6
|
+
export const args = command('docs', object({
|
|
7
|
+
action: constant('docs'),
|
|
8
|
+
}), { description: message `Open the documentation in your browser` });
|
|
9
|
+
export async function run() {
|
|
10
|
+
console.error(`Opening ${DOCS_URL}…`);
|
|
11
|
+
try {
|
|
12
|
+
await open(DOCS_URL);
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
console.error(`Failed to open browser: ${err instanceof Error ? err.message : String(err)}`);
|
|
16
|
+
console.error(`Open manually: ${DOCS_URL}`);
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/cli/commands/docs.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAC,MAAM,eAAe,CAAA;AACxD,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAA;AAC/C,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,QAAQ,GAAG,0BAA0B,CAAA;AAE3C,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CACzB,MAAM,EACN,MAAM,CAAC;IACL,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;CACzB,CAAC,EACF,EAAC,WAAW,EAAE,OAAO,CAAA,wCAAwC,EAAC,CAC/D,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,GAAG;IACvB,OAAO,CAAC,KAAK,CAAC,WAAW,QAAQ,GAAG,CAAC,CAAA;IACrC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC5F,OAAO,CAAC,KAAK,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAA;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|