@ecmaos/kernel 0.8.1 → 0.9.0
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/README.md +103 -17
- package/dist/.vite/manifest.json +23 -12
- package/dist/ecmaos-figlet.png +0 -0
- package/dist/ecmaos-screenshot.png +0 -0
- package/dist/ecmaos.sh-lighthouse-report.png +0 -0
- package/dist/index-CxwR4Omn.js +1651 -0
- package/dist/index-CxwR4Omn.js.map +1 -0
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/assets/dmt/dmt-component-data.js +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/assets/dmt/dmt-search.cmp +0 -0
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/assets/highlight.css +12 -12
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_auth.Auth.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_components.Component.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_components.Components.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_dom.Dom.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_events.Events.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_fdtable.FDTable.html +14 -14
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_filesystem.Filesystem.html +11 -11
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_i18n.I18n.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_intervals.Intervals.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_kernel.Kernel.html +64 -61
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_lib_commands.TerminalCommand.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_log.Log.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_memory.Memory.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_processes.Process.html +33 -33
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_processes.ProcessManager.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_protocol.Protocol.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_service.Service.html +10 -10
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_shell.Shell.html +16 -16
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_sockets.Sockets.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_storage.Storage.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_telemetry.Telemetry.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_terminal.Spinner.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_terminal.Terminal.html +32 -32
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_users.Users.html +13 -13
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_wasm.Wasm.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_windows.Windows.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_workers.Workers.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/kernel_src_tree_terminal.CommandPath.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/types_kernel.KernelEvents.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/types_kernel.KernelState.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/types_processes.ProcessEvents.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/types_terminal.TerminalEvents.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.TerminalCommands.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.chown.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.clear.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.df.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.download.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.load.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.passwd.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.ps.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.reboot.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.screensaver.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.snake.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.su.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.upload.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands_install.default.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands_uninstall.default.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_crontab.parseCrontabFile.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_crontab.parseCrontabLine.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_fstab.parseFstabFile.html +5 -0
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_fstab.parseFstabLine.html +5 -0
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_screensavers_blank.default.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_screensavers_blank.exit.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_screensavers_matrix.default.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_screensavers_matrix.exit.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/index.html +64 -14
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/kernel_src_tree_lib_commands.CommandArgs.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/kernel_src_tree_lib_crontab.CrontabEntry.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_auth.Auth.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_components.Components.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_device.KernelDevice.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_device.KernelDeviceCLIOptions.html +6 -6
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_device.KernelDeviceData.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_dom.Dom.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_dom.DomOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_events.Events.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_filesystem.FileHeader.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_filesystem.Filesystem.html +9 -9
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_filesystem.FilesystemDescriptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_filesystem.FstabEntry.html +13 -0
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_i18n.I18n.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_i18n.I18nOptions.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_intervals.ITimerHandle.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_intervals.Intervals.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.BootOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.Kernel.html +46 -46
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelExecuteEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelExecuteOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelPanicEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelShutdownEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelUploadEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_keyboard.Keyboard.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_log.Log.html +10 -10
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_log.LogOptions.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_memory.Memory.html +16 -16
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_modules.KernelModule.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.FDTable.html +13 -13
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.FileHandle.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.Process.html +31 -31
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessEntryParams.html +16 -16
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessExitEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessManager.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessOptions.html +18 -18
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessPauseEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessResumeEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessStartEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessStopEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_protocol.Protocol.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_protocol.ProtocolOptions.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_service.Service.html +9 -9
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_service.ServiceOptions.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_shell.Shell.html +13 -13
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_shell.ShellOptions.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_sockets.Sockets.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_sockets.SocketsOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_sockets.WebSocketConnection.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_sockets.WebTransportConnection.html +8 -8
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_storage.StorageOptions.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_storage.StorageProvider.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_telemetry.Telemetry.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_telemetry.TelemetryOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.Terminal.html +30 -30
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalAttachEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalCommand.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalCreatedEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalExecuteEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalInputEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalInterruptEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalKeyEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalListenEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalMessageEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalMountEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalOptions.html +6 -6
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalPasteEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalResizeEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalUnlistenEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalWriteEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalWritelnEvent.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.AddUserOptions.html +4 -4
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.Passkey.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.User.html +9 -9
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.Users.html +14 -14
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.UsersOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_wasm.Wasm.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_wasm.WasmOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_windows.WindowOptions.html +2 -2
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_windows.Windows.html +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_workers.Workers.html +3 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/media/package.json +6 -3
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/media/turbo.json +7 -7
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/modules/kernel_src_tree_lib_commands.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/modules/kernel_src_tree_lib_fstab.html +2 -0
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/modules/types_filesystem.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/modules.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/tutorials/ai.md +114 -0
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/tutorials/passkey.md +147 -0
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/kernel_src_tree_fdtable.ZenFSFileHandle.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_auth.PasswordCredentialInit.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_components.ComponentListener.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_events.EventCallback.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_filesystem.FilesystemConfigMounts.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_filesystem.FilesystemOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_filesystem.Fstab.html +3 -0
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_filesystem.Path.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_intervals.CronMap.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_intervals.IntervalMap.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Address.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Collection.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Config.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Heap.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Stack.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.StackFrame.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_modules.KernelModules.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_processes.ProcessStatus.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_processes.ProcessesMap.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_sockets.SocketConnection.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_sockets.WebSocketState.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_sockets.WebTransportState.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_users.GID.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_users.UID.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_windows.WindowId.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_device.DefaultDevices.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_dom.DefaultDomOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_filesystem.DefaultFilesystemOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_i18n.DefaultI18nOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_log.DefaultLogOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_service.DefaultServiceOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_terminal.DefaultTerminalOptions.html +1 -1
- package/dist/initfs/usr/share/docs/@ecmaos/kernel/index.md +103 -17
- package/dist/initfs.tar.gz +0 -0
- package/dist/{install-DPcyci9f.js → install-v7WLn3NU.js} +2 -2
- package/dist/{install-DPcyci9f.js.map → install-v7WLn3NU.js.map} +1 -1
- package/dist/{kernel-BRRljz7g.js → kernel-j5HiQNwE.js} +40857 -14623
- package/dist/kernel-j5HiQNwE.js.map +1 -0
- package/dist/kernel.d.ts +5 -0
- package/dist/kernel.js +1 -1
- package/dist/{topbar.min-B0DZo7_n.js → topbar.min-BKs7fUL5.js} +2 -2
- package/dist/{topbar.min-B0DZo7_n.js.map → topbar.min-BKs7fUL5.js.map} +1 -1
- package/dist/ui.js +1 -1
- package/dist/ui.js.map +1 -1
- package/dist/{uninstall-DMgPDmXl.js → uninstall-DdFQZCNc.js} +2 -2
- package/dist/{uninstall-DMgPDmXl.js.map → uninstall-DdFQZCNc.js.map} +1 -1
- package/package.json +7 -5
- package/dist/kernel-BRRljz7g.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
<!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>DefaultFilesystemOptions | ecmaOS</title><meta name="description" content="Documentation for ecmaOS"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><link rel="stylesheet" href="../assets/custom.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><link rel="icon" href="../favicon.ico"><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
|
|
2
|
-
<main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">ecmaOS</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules/kernel_src_tree_filesystem.html">kernel/src/tree/filesystem</a></li><li><a href="kernel_src_tree_filesystem.DefaultFilesystemOptions.html">DefaultFilesystemOptions</a></li></ul><div class="dmt-title-header-flex"><h1>Variable DefaultFilesystemOptions<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">DefaultFilesystemOptions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Configuration</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ConfigMounts</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/
|
|
2
|
+
<main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">ecmaOS</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules/kernel_src_tree_filesystem.html">kernel/src/tree/filesystem</a></li><li><a href="kernel_src_tree_filesystem.DefaultFilesystemOptions.html">DefaultFilesystemOptions</a></li></ul><div class="dmt-title-header-flex"><h1>Variable DefaultFilesystemOptions<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">DefaultFilesystemOptions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Configuration</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">ConfigMounts</span><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/6d8d89f13c18b27d0c6fc1a7a8ff9572f6051d90/core/kernel/src/tree/filesystem.ts#L26">core/kernel/src/tree/filesystem.ts:26</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">ecmaOS</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a> with the <a href="https://www.npmjs.com/package/@typhonjs-typedoc/typedoc-theme-dmt" target="_blank">Default Modern Theme</a></p></footer></main></body></html>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
<!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>DefaultI18nOptions | ecmaOS</title><meta name="description" content="Documentation for ecmaOS"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><link rel="stylesheet" href="../assets/custom.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><link rel="icon" href="../favicon.ico"><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
|
|
2
|
-
<main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">ecmaOS</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules/kernel_src_tree_i18n.html">kernel/src/tree/i18n</a></li><li><a href="kernel_src_tree_i18n.DefaultI18nOptions.html">DefaultI18nOptions</a></li></ul><div class="dmt-title-header-flex"><h1>Variable DefaultI18nOptions<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">DefaultI18nOptions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">InitOptions</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/
|
|
2
|
+
<main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">ecmaOS</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules/kernel_src_tree_i18n.html">kernel/src/tree/i18n</a></li><li><a href="kernel_src_tree_i18n.DefaultI18nOptions.html">DefaultI18nOptions</a></li></ul><div class="dmt-title-header-flex"><h1>Variable DefaultI18nOptions<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">DefaultI18nOptions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">InitOptions</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/6d8d89f13c18b27d0c6fc1a7a8ff9572f6051d90/core/kernel/src/tree/i18n.ts#L9">core/kernel/src/tree/i18n.ts:9</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">ecmaOS</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a> with the <a href="https://www.npmjs.com/package/@typhonjs-typedoc/typedoc-theme-dmt" target="_blank">Default Modern Theme</a></p></footer></main></body></html>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
<!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>DefaultLogOptions | ecmaOS</title><meta name="description" content="Documentation for ecmaOS"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><link rel="stylesheet" href="../assets/custom.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><link rel="icon" href="../favicon.ico"><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
|
|
2
|
-
<main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">ecmaOS</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules/kernel_src_tree_log.html">kernel/src/tree/log</a></li><li><a href="kernel_src_tree_log.DefaultLogOptions.html">DefaultLogOptions</a></li></ul><div class="dmt-title-header-flex"><h1>Variable DefaultLogOptions<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">DefaultLogOptions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">LogOptions</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/
|
|
2
|
+
<main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">ecmaOS</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules/kernel_src_tree_log.html">kernel/src/tree/log</a></li><li><a href="kernel_src_tree_log.DefaultLogOptions.html">DefaultLogOptions</a></li></ul><div class="dmt-title-header-flex"><h1>Variable DefaultLogOptions<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">DefaultLogOptions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">LogOptions</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/6d8d89f13c18b27d0c6fc1a7a8ff9572f6051d90/core/kernel/src/tree/log.ts#L5">core/kernel/src/tree/log.ts:5</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">ecmaOS</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a> with the <a href="https://www.npmjs.com/package/@typhonjs-typedoc/typedoc-theme-dmt" target="_blank">Default Modern Theme</a></p></footer></main></body></html>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
<!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>DefaultServiceOptions | ecmaOS</title><meta name="description" content="Documentation for ecmaOS"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><link rel="stylesheet" href="../assets/custom.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><link rel="icon" href="../favicon.ico"><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
|
|
2
|
-
<main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">ecmaOS</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules/kernel_src_tree_service.html">kernel/src/tree/service</a></li><li><a href="kernel_src_tree_service.DefaultServiceOptions.html">DefaultServiceOptions</a></li></ul><div class="dmt-title-header-flex"><h1>Variable DefaultServiceOptions<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">DefaultServiceOptions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ServiceOptions</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/
|
|
2
|
+
<main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">ecmaOS</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules/kernel_src_tree_service.html">kernel/src/tree/service</a></li><li><a href="kernel_src_tree_service.DefaultServiceOptions.html">DefaultServiceOptions</a></li></ul><div class="dmt-title-header-flex"><h1>Variable DefaultServiceOptions<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">DefaultServiceOptions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ServiceOptions</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/6d8d89f13c18b27d0c6fc1a7a8ff9572f6051d90/core/kernel/src/tree/service.ts#L28">core/kernel/src/tree/service.ts:28</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">ecmaOS</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a> with the <a href="https://www.npmjs.com/package/@typhonjs-typedoc/typedoc-theme-dmt" target="_blank">Default Modern Theme</a></p></footer></main></body></html>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
<!DOCTYPE html><html class="default" lang="en" data-base=".."><head><style>body { visibility: hidden; }</style><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><title>DefaultTerminalOptions | ecmaOS</title><meta name="description" content="Documentation for ecmaOS"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../assets/style.css"><link rel="stylesheet" href="../assets/highlight.css"><link rel="stylesheet" href="../assets/custom.css"><script defer="" src="../assets/main.js"></script><script async="" src="../assets/icons.js" id="tsd-icons-script"></script><link rel="stylesheet" href="../assets/dmt/dmt-components.css"><link rel="stylesheet" href="../assets/dmt/dmt-theme.css"><script src="../assets/dmt/dmt-components.js" type="module"></script><link rel="icon" href="../favicon.ico"><noscript><style>body { visibility: visible; }</style></noscript></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";</script><div class="overlay"></div>
|
|
2
|
-
<main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">ecmaOS</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules/kernel_src_tree_terminal.html">kernel/src/tree/terminal</a></li><li><a href="kernel_src_tree_terminal.DefaultTerminalOptions.html">DefaultTerminalOptions</a></li></ul><div class="dmt-title-header-flex"><h1>Variable DefaultTerminalOptions<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">DefaultTerminalOptions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">TerminalOptions</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/
|
|
2
|
+
<main><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field" id="dmt-search-main"></div><div class="field" id="dmt-toolbar"><a href="../index.html" class="title">ecmaOS</a></div></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main" tabindex="-1"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules/kernel_src_tree_terminal.html">kernel/src/tree/terminal</a></li><li><a href="kernel_src_tree_terminal.DefaultTerminalOptions.html">DefaultTerminalOptions</a></li></ul><div class="dmt-title-header-flex"><h1>Variable DefaultTerminalOptions<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">DefaultTerminalOptions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">TerminalOptions</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/6d8d89f13c18b27d0c6fc1a7a8ff9572f6051d90/core/kernel/src/tree/terminal.ts#L57">core/kernel/src/tree/terminal.ts:57</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked=""><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">ecmaOS</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a> with the <a href="https://www.npmjs.com/package/@typhonjs-typedoc/typedoc-theme-dmt" target="_blank">Default Modern Theme</a></p></footer></main></body></html>
|
|
@@ -111,6 +111,92 @@ This is NOT intended to be a "Linux kernel in Javascript" - while it takes its h
|
|
|
111
111
|
- Devices may also be directly read/written using `fs` methods, and will behave accordingly (or have no effect if not supported)
|
|
112
112
|
- An individual device module can provide multiple device drivers, e.g. `/dev/usb` provides `/dev/usb-mydevice-0001-0002`
|
|
113
113
|
|
|
114
|
+
### Filesystems
|
|
115
|
+
|
|
116
|
+
> [/core/utils/src/commands/mount.ts](/core/utils/src/commands/mount.ts)
|
|
117
|
+
|
|
118
|
+
ecmaOS supports multiple filesystem backends powered by [zenfs](https://zenfs.dev), allowing you to mount various storage types into the virtual filesystem.
|
|
119
|
+
|
|
120
|
+
#### Supported Filesystem Types
|
|
121
|
+
|
|
122
|
+
- **memory**: In-memory filesystem (temporary, lost on page reload)
|
|
123
|
+
- **indexeddb**: IndexedDB-backed persistent filesystem
|
|
124
|
+
- **webstorage**: WebStorage-backed filesystem (localStorage or sessionStorage)
|
|
125
|
+
- **webaccess**: File System Access API filesystem (requires user interaction)
|
|
126
|
+
- **singlebuffer**: Filesystem backed by a single buffer
|
|
127
|
+
- **fetch**: Remote filesystem via HTTP fetch
|
|
128
|
+
- **xml**: DOM XML filesystem (WIP)
|
|
129
|
+
- **zip**: Read-only filesystem from a zip archive (file or URL)
|
|
130
|
+
- **iso**: Read-only filesystem from an ISO image (file or URL)
|
|
131
|
+
- **dropbox**: Dropbox filesystem (WIP)
|
|
132
|
+
- **s3**: S3 filesystem (WIP)
|
|
133
|
+
- **googledrive**: Google Drive filesystem (WIP)
|
|
134
|
+
|
|
135
|
+
#### Basic Usage
|
|
136
|
+
|
|
137
|
+
```sh
|
|
138
|
+
# Mount a memory filesystem
|
|
139
|
+
mount -t memory /mnt/tmp
|
|
140
|
+
|
|
141
|
+
# Mount an IndexedDB store
|
|
142
|
+
mount -t indexeddb mydb /mnt/db
|
|
143
|
+
|
|
144
|
+
# Mount WebStorage (localStorage by default)
|
|
145
|
+
mount -t webstorage /mnt/storage
|
|
146
|
+
|
|
147
|
+
# Mount WebStorage using sessionStorage
|
|
148
|
+
mount -t webstorage /mnt/storage -o storage=sessionStorage
|
|
149
|
+
|
|
150
|
+
# Mount a zip archive
|
|
151
|
+
mount -t zip /tmp/archive.zip /mnt/zip
|
|
152
|
+
|
|
153
|
+
# Mount from a remote URL
|
|
154
|
+
mount -t zip https://example.com/archive.zip /mnt/zip
|
|
155
|
+
|
|
156
|
+
# Mount a fetch filesystem (see utils/fetch-fs-server.js)
|
|
157
|
+
mount -t fetch index.json /mnt/api -o baseUrl=http://localhost:30808
|
|
158
|
+
|
|
159
|
+
# List all mounted filesystems
|
|
160
|
+
mount -l
|
|
161
|
+
|
|
162
|
+
# Unmount a filesystem
|
|
163
|
+
umount /mnt/tmp
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
#### /etc/fstab
|
|
167
|
+
|
|
168
|
+
The kernel automatically processes `/etc/fstab` during boot to mount filesystems. The fstab format is space or tab-separated:
|
|
169
|
+
|
|
170
|
+
```plaintext
|
|
171
|
+
source target type [options]
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Format:**
|
|
175
|
+
|
|
176
|
+
- `source`: Device/URL/database name (use `none` for filesystems that don't require a source)
|
|
177
|
+
- `target`: Mount point (absolute path)
|
|
178
|
+
- `type`: Filesystem type
|
|
179
|
+
- `options`: Optional comma-separated key=value pairs
|
|
180
|
+
|
|
181
|
+
**Example /etc/fstab:**
|
|
182
|
+
|
|
183
|
+
```plaintext
|
|
184
|
+
# ecmaOS fstab - Filesystem mount table
|
|
185
|
+
# Format: source target type [options]
|
|
186
|
+
|
|
187
|
+
# Memory filesystem for temporary data
|
|
188
|
+
none /mnt/tmp memory
|
|
189
|
+
|
|
190
|
+
# IndexedDB filesystem for persistent storage
|
|
191
|
+
mydb /mnt/db indexeddb
|
|
192
|
+
|
|
193
|
+
# WebStorage filesystem using localStorage
|
|
194
|
+
none /mnt/storage webstorage storage=localStorage
|
|
195
|
+
|
|
196
|
+
# Fetch filesystem from a remote API
|
|
197
|
+
index.json /mnt/api fetch baseUrl=http://localhost:30808
|
|
198
|
+
```
|
|
199
|
+
|
|
114
200
|
### Generators
|
|
115
201
|
|
|
116
202
|
> [/turbo/generators](/turbo/generators)
|
|
@@ -155,8 +241,8 @@ This is NOT intended to be a "Linux kernel in Javascript" - while it takes its h
|
|
|
155
241
|
- User Manager
|
|
156
242
|
- WASM Loader
|
|
157
243
|
<!-- - [WebContainer](https://github.com/stackblitz/webcontainer-core) for running Node.js apps -->
|
|
158
|
-
- Window Manager (WinBox)
|
|
159
244
|
- Web Workers
|
|
245
|
+
- Window Manager (WinBox)
|
|
160
246
|
|
|
161
247
|
### Metal
|
|
162
248
|
|
|
@@ -172,8 +258,8 @@ This is NOT intended to be a "Linux kernel in Javascript" - while it takes its h
|
|
|
172
258
|
- Refer to the full list of [official modules on npm](https://www.npmjs.com/org/ecmaos-modules)
|
|
173
259
|
- See the [MODULES.md](/MODULES.md) file for a list of community modules; submit a PR to add your module!
|
|
174
260
|
- Modules are dynamically loaded into the kernel at boot and can be enabled or disabled
|
|
175
|
-
- They are specified during build via the `
|
|
176
|
-
- e.g. `
|
|
261
|
+
- They are specified during build via the `ECMAOS_KERNEL_MODULES` environment variable
|
|
262
|
+
- e.g. `ECMAOS_KERNEL_MODULES=@ecmaos-modules/boilerplate@0.1.0,@your/package@1.2.3`
|
|
177
263
|
- Versions must be pinned and are mandatory - you cannot use NPM version specifiers
|
|
178
264
|
- They can provide additional functionality, devices, commands, etc.
|
|
179
265
|
- They offer a [common interface](./core/types/modules.ts) for interacting with the kernel
|
|
@@ -209,7 +295,7 @@ This is NOT intended to be a "Linux kernel in Javascript" - while it takes its h
|
|
|
209
295
|
### Telemetry
|
|
210
296
|
|
|
211
297
|
- [OpenTelemetry](https://opentelemetry.io) is used for collecting and analyzing telemetry data from the kernel and applications
|
|
212
|
-
- It is only active if the
|
|
298
|
+
- It is only active if the ECMAOS_OPENTELEMETRY_ENDPOINT environment variable is set when building the kernel
|
|
213
299
|
- There is a simple test server included in the `utils/opentelemetry` directory that can be used to test the telemetry system: `python3 utils/opentelemetry/otlp-server.py`
|
|
214
300
|
|
|
215
301
|
### Utils
|
|
@@ -221,7 +307,7 @@ This is NOT intended to be a "Linux kernel in Javascript" - while it takes its h
|
|
|
221
307
|
## Important Files and Directories
|
|
222
308
|
|
|
223
309
|
- `/bin/`: Built-in commands
|
|
224
|
-
- `/bios/`: The BIOS filesystem
|
|
310
|
+
<!-- - `/bios/`: The BIOS filesystem -->
|
|
225
311
|
- `/boot/init`: A script that runs on boot
|
|
226
312
|
- `/dev/`: All devices are here
|
|
227
313
|
- `/etc/crontab`: System-wide crontab file (loaded on boot)
|
|
@@ -237,8 +323,8 @@ This is NOT intended to be a "Linux kernel in Javascript" - while it takes its h
|
|
|
237
323
|
## Command Examples
|
|
238
324
|
|
|
239
325
|
```sh
|
|
240
|
-
ai "Despite all my rage" # use `env OPENAI_API_KEY
|
|
241
|
-
cat /var/log/kernel.
|
|
326
|
+
ai "Despite all my rage" # use `env OPENAI_API_KEY=`
|
|
327
|
+
cat /var/log/kernel.lo
|
|
242
328
|
cd /tmp
|
|
243
329
|
echo "Hello, world!" > hello.txt
|
|
244
330
|
chmod 700 hello.txt
|
|
@@ -252,6 +338,8 @@ download hello.txt
|
|
|
252
338
|
edit hello.txt
|
|
253
339
|
env hello --set world ; env
|
|
254
340
|
fetch https://ipecho.net/plain > /tmp/myip.txt
|
|
341
|
+
fetch -o /tmp/initfs.tar.gz /initfs.tar.gz
|
|
342
|
+
fetch /initfs.tar.gz | head | hex
|
|
255
343
|
fetch /xkcd-os.sixel # xterm.js includes sixel support
|
|
256
344
|
fetch /swapi/fs/home/user/hello.txt # fetch a file from the filesystem
|
|
257
345
|
fetch /swapi/fake/person/fullName # fetch a random person from the SWAPI
|
|
@@ -260,7 +348,7 @@ install @ecmaos-apps/boilerplate
|
|
|
260
348
|
ls /dev
|
|
261
349
|
mkdir /tmp/zip ; cd /tmp/zip
|
|
262
350
|
upload
|
|
263
|
-
mount
|
|
351
|
+
mount -t zip myuploaded.zip /mnt/zip
|
|
264
352
|
cd .. ; pwd
|
|
265
353
|
unzip zip/myuploaded.zip
|
|
266
354
|
mv zip/myuploaded.zip /tmp/backup.zip
|
|
@@ -273,7 +361,7 @@ snake
|
|
|
273
361
|
stat /tmp/hello.txt
|
|
274
362
|
touch /tmp/test.bin
|
|
275
363
|
umount /mnt/zip
|
|
276
|
-
user add
|
|
364
|
+
user add user
|
|
277
365
|
su user
|
|
278
366
|
video /root/video.mp4
|
|
279
367
|
zip /root/tmp.zip /tmp
|
|
@@ -285,24 +373,22 @@ zip /root/tmp.zip /tmp
|
|
|
285
373
|
/dev/audio test
|
|
286
374
|
/dev/battery status
|
|
287
375
|
/dev/bluetooth scan
|
|
288
|
-
echo "This will error" > /dev/full
|
|
289
376
|
/dev/gamepad list
|
|
290
377
|
/dev/geo position
|
|
291
378
|
/dev/gpu test
|
|
292
379
|
/dev/hid list
|
|
293
380
|
/dev/midi list
|
|
294
|
-
echo "Goodbye" > /dev/null
|
|
295
381
|
/dev/presentation start https://wikipedia.org
|
|
296
|
-
cat /dev/random --bytes 10
|
|
297
382
|
/dev/sensors list
|
|
298
383
|
/dev/serial devices
|
|
299
384
|
/dev/usb list
|
|
300
385
|
/dev/webgpu test
|
|
301
|
-
|
|
386
|
+
echo "Goodbye" > /dev/null
|
|
387
|
+
echo "This will error" > /dev/full
|
|
388
|
+
head -c 32 /dev/random > /tmp/random.txt
|
|
389
|
+
head -c 32 /dev/zero > /dev/null
|
|
302
390
|
```
|
|
303
391
|
|
|
304
|
-
Note: many device implementations are incomplete, but provide a solid starting point
|
|
305
|
-
|
|
306
392
|
## Code Execution Example
|
|
307
393
|
|
|
308
394
|
```sh
|
|
@@ -324,8 +410,8 @@ install jquery
|
|
|
324
410
|
- `/etc/crontab` is loaded on boot and contains system-wide scheduled tasks
|
|
325
411
|
- `~/.config/crontab` is loaded on user login and contains user-specific scheduled tasks
|
|
326
412
|
- `/etc/packages` is a list of already installed packages to load on boot; one per line
|
|
327
|
-
- The env var `
|
|
328
|
-
- The env var `
|
|
413
|
+
- The env var `ECMAOS_KERNEL_MODULES` is a list of modules to load on boot; CSV with pinned versions
|
|
414
|
+
- The env var `ECMAOS_RECOMMENDED_APPS` is a list of apps to suggest to new users
|
|
329
415
|
|
|
330
416
|
## App Development
|
|
331
417
|
|
package/dist/initfs.tar.gz
CHANGED
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import { c as chalk, s as semver, p as path } from "./kernel-
|
|
3
|
+
import { c as chalk, s as semver, p as path } from "./kernel-j5HiQNwE.js";
|
|
4
4
|
const install = /* @__PURE__ */ __name(async ({ kernel, shell, terminal, args }) => {
|
|
5
5
|
const [packageArg, registryArg, reinstallArg] = args;
|
|
6
6
|
if (!packageArg) {
|
|
@@ -118,4 +118,4 @@ const install = /* @__PURE__ */ __name(async ({ kernel, shell, terminal, args })
|
|
|
118
118
|
export {
|
|
119
119
|
install as default
|
|
120
120
|
};
|
|
121
|
-
//# sourceMappingURL=install-
|
|
121
|
+
//# sourceMappingURL=install-v7WLn3NU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-DPcyci9f.js","sources":["../src/tree/lib/commands/install.ts"],"sourcesContent":["import chalk from 'chalk'\nimport path from 'path'\nimport semver from 'semver'\n\nimport { CommandArgs } from './'\n\nconst install = async ({ kernel, shell, terminal, args }: CommandArgs) => {\n const [packageArg, registryArg, reinstallArg] = args as [string, string, boolean]\n if (!packageArg) {\n terminal.writeln(chalk.red('Usage: install <package-name>[@version]'))\n return 1\n }\n\n const spec = packageArg.match(/(@[^/]+\\/[^@]+|[^@]+)(?:@([^/]+))?/)\n if (!spec) {\n terminal.writeln(chalk.red('Invalid package name format'))\n return 1\n }\n\n const registry = registryArg || shell.env.get('REGISTRY') || 'https://registry.npmjs.org'\n const packageName = spec[1]?.replace('vnpm:', '')\n let version = spec[2] || 'latest'\n\n if (!packageName) {\n terminal.writeln(chalk.red('Invalid package name format'))\n return 1\n }\n\n const url = `${registry}/${packageName}`\n const packageInfo = await globalThis.fetch(url)\n const data = await packageInfo.json()\n\n if (!data.versions || !data['dist-tags']) {\n terminal.writeln(chalk.red(`No versions found for ${packageName}`))\n return 1\n }\n\n if (version === 'latest') version = data['dist-tags'].latest\n else version = semver.maxSatisfying(Object.keys(data.versions), version) || version\n\n if (reinstallArg) {\n try {\n const pkgData = JSON.parse(await kernel.filesystem.fs.readFile(path.join('/usr/lib', packageName, version, 'package.json'), 'utf-8'))\n for (const bin in pkgData.bin) await kernel.filesystem.fs.unlink(path.join('/usr/bin', bin))\n await kernel.filesystem.fs.rm(path.join('/usr/lib', packageName, version), { recursive: true, force: true })\n } catch {}\n }\n\n const packagePath = path.join('/usr/lib', packageName, version, 'package.json')\n if (await kernel.filesystem.fs.exists(packagePath)) {\n terminal.writeln(chalk.green(`${packageName} v${version} is already installed`))\n return 0\n }\n\n terminal.writeln(`Installing ${data.name} v${version} from ${registry}...`)\n\n const tarballUrl = data.versions[version]?.dist?.tarball\n const tarballChecksum = data.versions[version]?.dist?.shasum?.toLowerCase()\n if (!tarballUrl || !tarballChecksum) {\n terminal.writeln(chalk.red(`No tarball URL or checksum found for ${packageName} v${version}`))\n return 1\n }\n\n const tarball = await globalThis.fetch(tarballUrl)\n const arrayBuffer = await tarball.arrayBuffer()\n const hashBuffer = await crypto.subtle.digest('SHA-1', arrayBuffer)\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n const downloadChecksum = hashArray.map(b => b.toString(16).padStart(2, '0')).join('')\n\n if (downloadChecksum !== tarballChecksum) {\n terminal.writeln(chalk.red(`Checksum verification failed. Expected ${tarballChecksum} but got ${downloadChecksum}`))\n return 1\n }\n\n const tarballFilename = `${data.name.replace('@', '').replace('/', '-')}-${version}.tar.gz`\n await kernel.filesystem.fs.writeFile(`/tmp/${tarballFilename}`, new Uint8Array(arrayBuffer))\n\n // TODO: Support user packages installed to user's home?\n const extractPath = `/usr/lib/${data.name}/${version}`\n\n await kernel.filesystem.fs.mkdir(extractPath, { mode: 0o755, recursive: true })\n await kernel.filesystem.extractTarball(`/tmp/${tarballFilename}`, extractPath)\n await kernel.filesystem.fs.unlink(`/tmp/${tarballFilename}`)\n terminal.writeln(chalk.green(`Installed ${data.name} v${version} to ${extractPath}`))\n\n const packageData = await kernel.filesystem.fs.readFile(packagePath, 'utf-8')\n const packageJson = JSON.parse(packageData)\n\n try { // execute preinstall script\n if (packageJson.scripts?.['ecmaos:preinstall']) await shell.execute(packageJson.scripts['ecmaos:preinstall'])\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to execute preinstall script for ${packageName}@${version}: ${error}`))\n return 1\n }\n\n try { // link any bins\n if (packageJson.bin) {\n if (typeof packageJson.bin === 'string') {\n const binPath = path.join('/usr/lib', packageName, version, packageJson.bin)\n if (!await kernel.filesystem.fs.exists(binPath)) {\n terminal.writeln(chalk.red(`${binPath} does not exist`))\n return 1\n }\n\n await kernel.filesystem.fs.symlink(binPath, path.join('/usr/bin', packageJson.name))\n terminal.writeln(chalk.blue(`Linked ${packageJson.name} to ${path.join('/usr/bin', packageJson.name)}`))\n } else if (typeof packageJson.bin === 'object') {\n for (const bin in packageJson.bin) {\n const binPath = path.join('/usr/lib', packageName, version, packageJson.bin[bin])\n if (!await kernel.filesystem.fs.exists(binPath)) {\n terminal.writeln(chalk.red(`${binPath} does not exist`))\n return 1\n }\n\n await kernel.filesystem.fs.symlink(binPath, path.join('/usr/bin', bin))\n terminal.writeln(chalk.blue(`Linked ${bin} to ${path.join('/usr/bin', bin)}`))\n }\n }\n }\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to link bins for ${packageName}@${version}: ${error}`))\n }\n\n try { // install dependencies\n if (packageJson.dependencies) {\n for (const dependency in packageJson.dependencies) {\n const packageSpec = `${dependency}${packageJson.dependencies[dependency] ? `@${packageJson.dependencies[dependency]}` : ''}`\n await install({ kernel, shell, terminal, args: [packageSpec, registryArg] })\n }\n }\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to install dependencies for ${packageName}@${version}: ${error}`))\n return 1\n }\n\n try { // execute postinstall script\n if (packageJson.scripts?.['ecmaos:postinstall']) await shell.execute(packageJson.scripts['ecmaos:postinstall'])\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to execute postinstall script for ${packageName}@${version}: ${error}`))\n return 1\n }\n}\n\nexport default install\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install-v7WLn3NU.js","sources":["../src/tree/lib/commands/install.ts"],"sourcesContent":["import chalk from 'chalk'\nimport path from 'path'\nimport semver from 'semver'\n\nimport { CommandArgs } from './'\n\nconst install = async ({ kernel, shell, terminal, args }: CommandArgs) => {\n const [packageArg, registryArg, reinstallArg] = args as [string, string, boolean]\n if (!packageArg) {\n terminal.writeln(chalk.red('Usage: install <package-name>[@version]'))\n return 1\n }\n\n const spec = packageArg.match(/(@[^/]+\\/[^@]+|[^@]+)(?:@([^/]+))?/)\n if (!spec) {\n terminal.writeln(chalk.red('Invalid package name format'))\n return 1\n }\n\n const registry = registryArg || shell.env.get('REGISTRY') || 'https://registry.npmjs.org'\n const packageName = spec[1]?.replace('vnpm:', '')\n let version = spec[2] || 'latest'\n\n if (!packageName) {\n terminal.writeln(chalk.red('Invalid package name format'))\n return 1\n }\n\n const url = `${registry}/${packageName}`\n const packageInfo = await globalThis.fetch(url)\n const data = await packageInfo.json()\n\n if (!data.versions || !data['dist-tags']) {\n terminal.writeln(chalk.red(`No versions found for ${packageName}`))\n return 1\n }\n\n if (version === 'latest') version = data['dist-tags'].latest\n else version = semver.maxSatisfying(Object.keys(data.versions), version) || version\n\n if (reinstallArg) {\n try {\n const pkgData = JSON.parse(await kernel.filesystem.fs.readFile(path.join('/usr/lib', packageName, version, 'package.json'), 'utf-8'))\n for (const bin in pkgData.bin) await kernel.filesystem.fs.unlink(path.join('/usr/bin', bin))\n await kernel.filesystem.fs.rm(path.join('/usr/lib', packageName, version), { recursive: true, force: true })\n } catch {}\n }\n\n const packagePath = path.join('/usr/lib', packageName, version, 'package.json')\n if (await kernel.filesystem.fs.exists(packagePath)) {\n terminal.writeln(chalk.green(`${packageName} v${version} is already installed`))\n return 0\n }\n\n terminal.writeln(`Installing ${data.name} v${version} from ${registry}...`)\n\n const tarballUrl = data.versions[version]?.dist?.tarball\n const tarballChecksum = data.versions[version]?.dist?.shasum?.toLowerCase()\n if (!tarballUrl || !tarballChecksum) {\n terminal.writeln(chalk.red(`No tarball URL or checksum found for ${packageName} v${version}`))\n return 1\n }\n\n const tarball = await globalThis.fetch(tarballUrl)\n const arrayBuffer = await tarball.arrayBuffer()\n const hashBuffer = await crypto.subtle.digest('SHA-1', arrayBuffer)\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n const downloadChecksum = hashArray.map(b => b.toString(16).padStart(2, '0')).join('')\n\n if (downloadChecksum !== tarballChecksum) {\n terminal.writeln(chalk.red(`Checksum verification failed. Expected ${tarballChecksum} but got ${downloadChecksum}`))\n return 1\n }\n\n const tarballFilename = `${data.name.replace('@', '').replace('/', '-')}-${version}.tar.gz`\n await kernel.filesystem.fs.writeFile(`/tmp/${tarballFilename}`, new Uint8Array(arrayBuffer))\n\n // TODO: Support user packages installed to user's home?\n const extractPath = `/usr/lib/${data.name}/${version}`\n\n await kernel.filesystem.fs.mkdir(extractPath, { mode: 0o755, recursive: true })\n await kernel.filesystem.extractTarball(`/tmp/${tarballFilename}`, extractPath)\n await kernel.filesystem.fs.unlink(`/tmp/${tarballFilename}`)\n terminal.writeln(chalk.green(`Installed ${data.name} v${version} to ${extractPath}`))\n\n const packageData = await kernel.filesystem.fs.readFile(packagePath, 'utf-8')\n const packageJson = JSON.parse(packageData)\n\n try { // execute preinstall script\n if (packageJson.scripts?.['ecmaos:preinstall']) await shell.execute(packageJson.scripts['ecmaos:preinstall'])\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to execute preinstall script for ${packageName}@${version}: ${error}`))\n return 1\n }\n\n try { // link any bins\n if (packageJson.bin) {\n if (typeof packageJson.bin === 'string') {\n const binPath = path.join('/usr/lib', packageName, version, packageJson.bin)\n if (!await kernel.filesystem.fs.exists(binPath)) {\n terminal.writeln(chalk.red(`${binPath} does not exist`))\n return 1\n }\n\n await kernel.filesystem.fs.symlink(binPath, path.join('/usr/bin', packageJson.name))\n terminal.writeln(chalk.blue(`Linked ${packageJson.name} to ${path.join('/usr/bin', packageJson.name)}`))\n } else if (typeof packageJson.bin === 'object') {\n for (const bin in packageJson.bin) {\n const binPath = path.join('/usr/lib', packageName, version, packageJson.bin[bin])\n if (!await kernel.filesystem.fs.exists(binPath)) {\n terminal.writeln(chalk.red(`${binPath} does not exist`))\n return 1\n }\n\n await kernel.filesystem.fs.symlink(binPath, path.join('/usr/bin', bin))\n terminal.writeln(chalk.blue(`Linked ${bin} to ${path.join('/usr/bin', bin)}`))\n }\n }\n }\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to link bins for ${packageName}@${version}: ${error}`))\n }\n\n try { // install dependencies\n if (packageJson.dependencies) {\n for (const dependency in packageJson.dependencies) {\n const packageSpec = `${dependency}${packageJson.dependencies[dependency] ? `@${packageJson.dependencies[dependency]}` : ''}`\n await install({ kernel, shell, terminal, args: [packageSpec, registryArg] })\n }\n }\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to install dependencies for ${packageName}@${version}: ${error}`))\n return 1\n }\n\n try { // execute postinstall script\n if (packageJson.scripts?.['ecmaos:postinstall']) await shell.execute(packageJson.scripts['ecmaos:postinstall'])\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to execute postinstall script for ${packageName}@${version}: ${error}`))\n return 1\n }\n}\n\nexport default install\n"],"names":[],"mappings":"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"}
|