@ecmaos/kernel 0.9.7 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/README.md +5 -4
  2. package/dist/.vite/manifest.json +19 -12
  3. package/dist/{browser-D9_x3826.js → browser-D_rzdy4k.js} +2 -2
  4. package/dist/{browser-D9_x3826.js.map → browser-D_rzdy4k.js.map} +1 -1
  5. package/dist/icons/android/play_store_512.png +0 -0
  6. package/dist/icons/android/res/mipmap-anydpi-v26/ic_launcher.xml +6 -0
  7. package/dist/icons/android/res/mipmap-hdpi/ic_launcher.png +0 -0
  8. package/dist/icons/android/res/mipmap-hdpi/ic_launcher_background.png +0 -0
  9. package/dist/icons/android/res/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  10. package/dist/icons/android/res/mipmap-hdpi/ic_launcher_monochrome.png +0 -0
  11. package/dist/icons/android/res/mipmap-mdpi/ic_launcher.png +0 -0
  12. package/dist/icons/android/res/mipmap-mdpi/ic_launcher_background.png +0 -0
  13. package/dist/icons/android/res/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  14. package/dist/icons/android/res/mipmap-mdpi/ic_launcher_monochrome.png +0 -0
  15. package/dist/icons/android/res/mipmap-xhdpi/ic_launcher.png +0 -0
  16. package/dist/icons/android/res/mipmap-xhdpi/ic_launcher_background.png +0 -0
  17. package/dist/icons/android/res/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  18. package/dist/icons/android/res/mipmap-xhdpi/ic_launcher_monochrome.png +0 -0
  19. package/dist/icons/android/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  20. package/dist/icons/android/res/mipmap-xxhdpi/ic_launcher_background.png +0 -0
  21. package/dist/icons/android/res/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  22. package/dist/icons/android/res/mipmap-xxhdpi/ic_launcher_monochrome.png +0 -0
  23. package/dist/icons/android/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  24. package/dist/icons/android/res/mipmap-xxxhdpi/ic_launcher_background.png +0 -0
  25. package/dist/icons/android/res/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  26. package/dist/icons/android/res/mipmap-xxxhdpi/ic_launcher_monochrome.png +0 -0
  27. package/dist/icons/ios/AppIcon-20@2x.png +0 -0
  28. package/dist/icons/ios/AppIcon-20@2x~ipad.png +0 -0
  29. package/dist/icons/ios/AppIcon-20@3x.png +0 -0
  30. package/dist/icons/ios/AppIcon-20~ipad.png +0 -0
  31. package/dist/icons/ios/AppIcon-29.png +0 -0
  32. package/dist/icons/ios/AppIcon-29@2x.png +0 -0
  33. package/dist/icons/ios/AppIcon-29@2x~ipad.png +0 -0
  34. package/dist/icons/ios/AppIcon-29@3x.png +0 -0
  35. package/dist/icons/ios/AppIcon-29~ipad.png +0 -0
  36. package/dist/icons/ios/AppIcon-40@2x.png +0 -0
  37. package/dist/icons/ios/AppIcon-40@2x~ipad.png +0 -0
  38. package/dist/icons/ios/AppIcon-40@3x.png +0 -0
  39. package/dist/icons/ios/AppIcon-40~ipad.png +0 -0
  40. package/dist/icons/ios/AppIcon-60@2x~car.png +0 -0
  41. package/dist/icons/ios/AppIcon-60@3x~car.png +0 -0
  42. package/dist/icons/ios/AppIcon-83.5@2x~ipad.png +0 -0
  43. package/dist/icons/ios/AppIcon@2x.png +0 -0
  44. package/dist/icons/ios/AppIcon@2x~ipad.png +0 -0
  45. package/dist/icons/ios/AppIcon@3x.png +0 -0
  46. package/dist/icons/ios/AppIcon~ios-marketing.png +0 -0
  47. package/dist/icons/ios/AppIcon~ipad.png +0 -0
  48. package/dist/icons/ios/Contents.json +134 -0
  49. package/dist/icons/web/README.txt +18 -0
  50. package/dist/icons/web/apple-touch-icon.png +0 -0
  51. package/dist/icons/web/favicon.ico +0 -0
  52. package/dist/icons/web/icon-192-maskable.png +0 -0
  53. package/dist/icons/web/icon-192.png +0 -0
  54. package/dist/icons/web/icon-512-maskable.png +0 -0
  55. package/dist/icons/web/icon-512.png +0 -0
  56. package/dist/{index-B-CeVLpc.js → index-Dt0A0I3o.js} +2 -2
  57. package/dist/{index-B-CeVLpc.js.map → index-Dt0A0I3o.js.map} +1 -1
  58. package/dist/index.html +10 -3
  59. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/assets/dmt/dmt-search.cmp +0 -0
  60. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_auth.Auth.html +2 -2
  61. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_components.Component.html +2 -2
  62. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_components.Components.html +2 -2
  63. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_dom.Dom.html +2 -2
  64. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_events.Events.html +8 -8
  65. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_fdtable.FDTable.html +14 -14
  66. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_filesystem.Filesystem.html +12 -12
  67. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_i18n.I18n.html +6 -6
  68. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_intervals.Intervals.html +2 -2
  69. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_kernel.Kernel.html +82 -63
  70. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_lib_commands.TerminalCommand.html +4 -4
  71. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_log.Log.html +3 -3
  72. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_memory.Memory.html +2 -2
  73. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_processes.Process.html +33 -33
  74. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_processes.ProcessManager.html +2 -2
  75. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_protocol.Protocol.html +2 -2
  76. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_service.Service.html +10 -10
  77. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_shell.Shell.html +17 -16
  78. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_sockets.Sockets.html +7 -7
  79. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_storage.Storage.html +8 -8
  80. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_telemetry.Telemetry.html +2 -2
  81. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_terminal.Spinner.html +2 -2
  82. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_terminal.Terminal.html +53 -35
  83. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_users.Users.html +13 -13
  84. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_wasm.Wasm.html +8 -8
  85. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_windows.Windows.html +8 -8
  86. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/classes/kernel_src_tree_workers.Workers.html +4 -4
  87. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/kernel_src_tree_terminal.CommandPath.html +2 -2
  88. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/types_kernel.KernelEvents.html +2 -2
  89. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/types_kernel.KernelState.html +2 -2
  90. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/types_processes.ProcessEvents.html +2 -2
  91. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/enums/types_terminal.TerminalEvents.html +2 -2
  92. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.TerminalCommands.html +1 -1
  93. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.clear.html +1 -1
  94. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.df.html +1 -1
  95. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.download.html +1 -1
  96. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.exportCmd.html +1 -1
  97. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.load.html +1 -1
  98. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.passwd.html +1 -1
  99. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.ps.html +1 -1
  100. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.reboot.html +1 -1
  101. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.screensaver.html +1 -1
  102. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.snake.html +1 -1
  103. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.su.html +1 -1
  104. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands.upload.html +1 -1
  105. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands_install.default.html +1 -1
  106. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_commands_uninstall.default.html +1 -1
  107. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_crontab.parseCrontabFile.html +1 -1
  108. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_crontab.parseCrontabLine.html +1 -1
  109. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_fstab.parseFstabFile.html +1 -1
  110. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_fstab.parseFstabLine.html +1 -1
  111. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_screensavers_blank.default.html +1 -1
  112. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_screensavers_blank.exit.html +1 -1
  113. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_screensavers_matrix.default.html +1 -1
  114. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_lib_screensavers_matrix.exit.html +1 -1
  115. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_wasi_preview1.default.html +1 -1
  116. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/functions/kernel_src_tree_wasi_preview2.default.html +1 -1
  117. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/index.html +4 -3
  118. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/kernel_src_tree_lib_commands.CommandArgs.html +2 -2
  119. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/kernel_src_tree_lib_crontab.CrontabEntry.html +2 -2
  120. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/kernel_src_tree_wasm.WasiComponentResult.html +2 -2
  121. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/kernel_src_tree_wasm.WasiStreamOptions.html +2 -2
  122. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_auth.Auth.html +2 -2
  123. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_components.Components.html +2 -2
  124. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_device.KernelDevice.html +4 -4
  125. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_device.KernelDeviceCLIOptions.html +6 -6
  126. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_device.KernelDeviceData.html +1 -1
  127. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_dom.Dom.html +6 -6
  128. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_dom.DomOptions.html +2 -2
  129. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_events.Events.html +8 -8
  130. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_filesystem.FileHeader.html +4 -4
  131. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_filesystem.Filesystem.html +10 -10
  132. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_filesystem.FilesystemDescriptions.html +2 -2
  133. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_filesystem.FstabEntry.html +5 -5
  134. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_i18n.I18n.html +7 -7
  135. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_i18n.I18nFilesystemAdapter.html +2 -2
  136. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_i18n.I18nNamespaces.html +2 -2
  137. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_i18n.I18nOptions.html +7 -7
  138. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_i18n.I18nResourceLoadResult.html +2 -2
  139. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_intervals.ITimerHandle.html +2 -2
  140. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_intervals.Intervals.html +8 -8
  141. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.BootOptions.html +2 -2
  142. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.Kernel.html +57 -47
  143. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelExecuteEvent.html +2 -2
  144. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelExecuteOptions.html +2 -2
  145. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelOptions.html +2 -2
  146. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelPanicEvent.html +2 -2
  147. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelShutdownEvent.html +2 -2
  148. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_kernel.KernelUploadEvent.html +2 -2
  149. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_keyboard.Keyboard.html +2 -2
  150. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_log.Log.html +10 -10
  151. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_log.LogOptions.html +4 -4
  152. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_memory.Memory.html +16 -16
  153. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_modules.KernelModule.html +2 -2
  154. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.FDTable.html +13 -13
  155. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.FileHandle.html +8 -8
  156. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.Process.html +31 -31
  157. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessEntryParams.html +16 -16
  158. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessExitEvent.html +2 -2
  159. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessManager.html +8 -8
  160. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessOptions.html +18 -18
  161. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessPauseEvent.html +2 -2
  162. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessResumeEvent.html +2 -2
  163. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessStartEvent.html +2 -2
  164. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_processes.ProcessStopEvent.html +2 -2
  165. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_protocol.Protocol.html +3 -3
  166. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_protocol.ProtocolOptions.html +3 -3
  167. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_service.Service.html +9 -9
  168. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_service.ServiceOptions.html +4 -4
  169. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_shell.Shell.html +13 -13
  170. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_shell.ShellOptions.html +7 -7
  171. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_sockets.Sockets.html +7 -7
  172. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_sockets.SocketsOptions.html +2 -2
  173. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_sockets.WebSocketConnection.html +8 -8
  174. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_sockets.WebTransportConnection.html +8 -8
  175. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_storage.StorageOptions.html +3 -3
  176. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_storage.StorageProvider.html +7 -7
  177. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_telemetry.Telemetry.html +3 -3
  178. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_telemetry.TelemetryOptions.html +2 -2
  179. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.Terminal.html +45 -34
  180. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalAttachEvent.html +2 -2
  181. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalCommand.html +4 -4
  182. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalCreatedEvent.html +2 -2
  183. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalExecuteEvent.html +2 -2
  184. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalInputEvent.html +2 -2
  185. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalInterruptEvent.html +2 -2
  186. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalKeyEvent.html +2 -2
  187. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalListenEvent.html +2 -2
  188. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalMessageEvent.html +2 -2
  189. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalMountEvent.html +2 -2
  190. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalOptions.html +6 -6
  191. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalPasteEvent.html +2 -2
  192. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalResizeEvent.html +2 -2
  193. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalUnlistenEvent.html +2 -2
  194. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalWriteEvent.html +2 -2
  195. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_terminal.TerminalWritelnEvent.html +2 -2
  196. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.AddUserOptions.html +4 -4
  197. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.Passkey.html +7 -7
  198. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.User.html +9 -9
  199. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.Users.html +14 -14
  200. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_users.UsersOptions.html +2 -2
  201. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_wasm.WasiComponentResult.html +3 -3
  202. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_wasm.WasiStreamOptions.html +4 -4
  203. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_wasm.Wasm.html +5 -5
  204. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_wasm.WasmOptions.html +2 -2
  205. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_windows.WindowOptions.html +2 -2
  206. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_windows.Windows.html +7 -7
  207. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/interfaces/types_workers.Workers.html +3 -3
  208. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/media/package.json +4 -4
  209. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/kernel_src_tree_fdtable.ZenFSFileHandle.html +1 -1
  210. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_auth.PasswordCredentialInit.html +1 -1
  211. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_components.ComponentListener.html +1 -1
  212. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_events.EventCallback.html +1 -1
  213. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_filesystem.FilesystemConfigMounts.html +1 -1
  214. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_filesystem.FilesystemOptions.html +1 -1
  215. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_filesystem.Fstab.html +1 -1
  216. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_filesystem.Path.html +1 -1
  217. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_i18n.I18nResourceBundle.html +1 -1
  218. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_intervals.CronMap.html +1 -1
  219. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_intervals.IntervalMap.html +1 -1
  220. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Address.html +1 -1
  221. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Collection.html +1 -1
  222. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Config.html +1 -1
  223. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Heap.html +1 -1
  224. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.Stack.html +1 -1
  225. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_memory.StackFrame.html +1 -1
  226. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_modules.KernelModules.html +1 -1
  227. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_processes.ProcessStatus.html +1 -1
  228. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_processes.ProcessesMap.html +1 -1
  229. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_sockets.SocketConnection.html +1 -1
  230. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_sockets.WebSocketState.html +1 -1
  231. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_sockets.WebTransportState.html +1 -1
  232. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_users.GID.html +1 -1
  233. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_users.UID.html +1 -1
  234. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/types/types_windows.WindowId.html +1 -1
  235. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_device.DefaultDevices.html +1 -1
  236. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_dom.DefaultDomOptions.html +1 -1
  237. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_filesystem.DefaultFilesystemOptions.html +1 -1
  238. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_i18n.DefaultI18nOptions.html +1 -1
  239. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_log.DefaultLogOptions.html +1 -1
  240. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_service.DefaultServiceOptions.html +1 -1
  241. package/dist/initfs/usr/share/docs/@ecmaos/kernel/docs/variables/kernel_src_tree_terminal.DefaultTerminalOptions.html +1 -1
  242. package/dist/initfs/usr/share/docs/@ecmaos/kernel/index.md +5 -4
  243. package/dist/initfs.demo/root/bin/test.wasm +0 -0
  244. package/dist/initfs.demo/usr/share/docs/@ecmaos/kernel/index.md +42 -13
  245. package/dist/initfs.tar.gz +0 -0
  246. package/dist/{install-D5ABLXdg.js → install-CRrPdUs9.js} +2 -2
  247. package/dist/{install-D5ABLXdg.js.map → install-CRrPdUs9.js.map} +1 -1
  248. package/dist/{kernel-DXuSgAWA.js → kernel-Io5VyIzi.js} +2324 -856
  249. package/dist/{kernel-DXuSgAWA.js.map → kernel-Io5VyIzi.js.map} +1 -1
  250. package/dist/kernel.css +95 -4
  251. package/dist/kernel.d.ts +39 -0
  252. package/dist/kernel.js +1 -1
  253. package/dist/manifest.json +36 -0
  254. package/dist/swapi.js +1560 -1022
  255. package/dist/ui.js +35 -5
  256. package/dist/ui.js.map +1 -1
  257. package/dist/{uninstall-Cd5CIWlo.js → uninstall-Bb4xsCq5.js} +2 -2
  258. package/dist/{uninstall-Cd5CIWlo.js.map → uninstall-Bb4xsCq5.js.map} +1 -1
  259. package/dist/vimwasm-DWJK1Y7M.js +809 -0
  260. package/dist/vimwasm-DWJK1Y7M.js.map +1 -0
  261. package/package.json +9 -7
@@ -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>DefaultDomOptions | 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_dom.html">kernel/src/tree/dom</a></li><li><a href="kernel_src_tree_dom.DefaultDomOptions.html">DefaultDomOptions</a></li></ul><div class="dmt-title-header-flex"><h1>Variable DefaultDomOptions<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">DefaultDomOptions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">DomOptions</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/6e999ae0b8ba32739edf3ad9d1d531a126f26cc0/core/kernel/src/tree/dom.ts#L5">core/kernel/src/tree/dom.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>
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_dom.html">kernel/src/tree/dom</a></li><li><a href="kernel_src_tree_dom.DefaultDomOptions.html">DefaultDomOptions</a></li></ul><div class="dmt-title-header-flex"><h1>Variable DefaultDomOptions<code class="tsd-tag">Const</code></h1></div></div><div class="tsd-signature"><span class="tsd-kind-variable">DefaultDomOptions</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">DomOptions</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/75c67cff73e30880d4d275058b9d07d9195b5377/core/kernel/src/tree/dom.ts#L5">core/kernel/src/tree/dom.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>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">&lt;</span><span class="tsd-signature-type">ConfigMounts</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/6e999ae0b8ba32739edf3ad9d1d531a126f26cc0/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>
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">&lt;</span><span class="tsd-signature-type">ConfigMounts</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/ecmaos/ecmaos/blob/75c67cff73e30880d4d275058b9d07d9195b5377/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/6e999ae0b8ba32739edf3ad9d1d531a126f26cc0/core/kernel/src/tree/i18n.ts#L16">core/kernel/src/tree/i18n.ts:16</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>
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/75c67cff73e30880d4d275058b9d07d9195b5377/core/kernel/src/tree/i18n.ts#L16">core/kernel/src/tree/i18n.ts:16</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/6e999ae0b8ba32739edf3ad9d1d531a126f26cc0/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>
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/75c67cff73e30880d4d275058b9d07d9195b5377/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/6e999ae0b8ba32739edf3ad9d1d531a126f26cc0/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>
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/75c67cff73e30880d4d275058b9d07d9195b5377/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/6e999ae0b8ba32739edf3ad9d1d531a126f26cc0/core/kernel/src/tree/terminal.ts#L58">core/kernel/src/tree/terminal.ts:58</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>
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/75c67cff73e30880d4d275058b9d07d9195b5377/core/kernel/src/tree/terminal.ts#L58">core/kernel/src/tree/terminal.ts:58</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>
@@ -48,7 +48,8 @@ This is NOT intended to be a "Linux kernel in Javascript" - while it takes its h
48
48
  - Streams for handling input and output, allowing redirection and piping
49
49
  - Device framework with a common interface for working with hardware: WebBluetooth, WebSerial, WebHID, WebUSB, etc.
50
50
  - Some devices have a builtin CLI, so you can run them like normal commands: `# /dev/bluetooth`
51
- - Install any client-side npm package (this doesn't mean it will work out of the box as expected)
51
+ - WebAssembly binaries are the native executable format; `# ./hello.wasm --world`
52
+ - Install any client-side npm package; `# install axios`
52
53
  - Event manager for dispatching and subscribing to events
53
54
  - Process manager for running applications and daemons
54
55
  - Interval manager for scheduling recurring operations with support for cron expressions via the `cron` command
@@ -113,7 +114,7 @@ This is NOT intended to be a "Linux kernel in Javascript" - while it takes its h
113
114
 
114
115
  > [/core/utils](/core/utils)
115
116
 
116
- - `Coreutils` are similar to `Commands`, but are provided by the `@ecmaos/coreutils` package, e.g. `cat`, `cd`, `chmod`, `cp`, `echo`, `ls`, `mkdir`, `mv`, `pwd`, `rm`, `rmdir`, `stat`, `touch`, etc.
117
+ - `Coreutils` are similar to `Commands`, but are provided by the `@ecmaos/coreutils` package, e.g. `cat`, `cd`, `chmod`, `cp`, `echo`, `git`, `ls`, `mkdir`, `mv`, `pwd`, `rm`, `rmdir`, `stat`, `touch`, etc.
117
118
 
118
119
  ### Devices
119
120
 
@@ -368,9 +369,9 @@ edit hello.txt
368
369
  env hello=world ; env
369
370
  fetch https://ipecho.net/plain > /tmp/myip.txt
370
371
  fetch -o /tmp/initfs.tar.gz /initfs.tar.gz
371
- fetch /initfs.tar.gz | head | hex
372
+ fetch /initfs.tar.gz | head | xxd
372
373
  fetch /xkcd-os.sixel # xterm.js includes sixel support
373
- fetch /swapi/fs/home/user/hello.txt # fetch a file from the filesystem
374
+ fetch /swapi/fs/home/user/hello.txt # fetch a file from the filesystem via SWAPI
374
375
  fetch /swapi/fake/person/fullName # fetch a random person from the SWAPI
375
376
  install jquery
376
377
  install @ecmaos-apps/boilerplate
Binary file
@@ -37,23 +37,25 @@ This is NOT intended to be a "Linux kernel in Javascript" - while it takes its h
37
37
 
38
38
  [![Discord](https://img.shields.io/discord/1311804229127508081?label=discord&logo=discord&logoColor=white)](https://discord.gg/ZJYGkbVsCh)
39
39
  [![Matrix](https://img.shields.io/matrix/ecmaos:matrix.org.svg?label=%23ecmaos%3Amatrix.org&logo=matrix&logoColor=white)](https://matrix.to/#/#ecmaos:matrix.org)
40
- [![Bluesky](https://img.shields.io/badge/follow-on%20Bluesky-blue?logo=bluesky&logoColor=white)](https://ecmaos.bsky.social)
40
+ [![Bluesky](https://img.shields.io/badge/follow-on%20Bluesky-blue?logo=bluesky&logoColor=white)](https://bsky.app/profile/ecmaos.sh)
41
41
  [![Reddit](https://img.shields.io/reddit/subreddit-subscribers/ecmaos?style=flat&logo=reddit&logoColor=white&label=r/ecmaos)](https://www.reddit.com/r/ecmaos)
42
42
 
43
43
  ## Features
44
44
 
45
- - TypeScript, WebAssembly, AssemblyScript, C++
45
+ - TypeScript, WebAssembly, AssemblyScript, Rust, C++
46
46
  - Filesystem supporting multiple backends powered by [zenfs](https://github.com/zen-fs/core)
47
47
  - Terminal interface powered by [xterm.js](https://xtermjs.org)
48
- - Pseudo-streams, allowing redirection and piping
48
+ - Streams for handling input and output, allowing redirection and piping
49
49
  - Device framework with a common interface for working with hardware: WebBluetooth, WebSerial, WebHID, WebUSB, etc.
50
50
  - Some devices have a builtin CLI, so you can run them like normal commands: `# /dev/bluetooth`
51
- - Install any client-side npm package (this doesn't mean it will work out of the box as expected)
51
+ - WebAssembly binaries are the native executable format; `# ./hello.wasm --world`
52
+ - Install any client-side npm package; `# install axios`
52
53
  - Event manager for dispatching and subscribing to events
53
54
  - Process manager for running applications and daemons
54
55
  - Interval manager for scheduling recurring operations with support for cron expressions via the `cron` command
55
56
  - Memory manager for managing pseudo-memory: Collections, Config, Heap, and Stack
56
57
  - Storage manager for managing Storage API capabilities: IndexedDB, localStorage, etc.
58
+ - User manager for managing users and authentication (all client-side, so limited real security but useful for organizational purposes)
57
59
  - Internationalization framework for translating text powered by [i18next](https://www.i18next.com)
58
60
  - Window manager powered by [WinBox](https://github.com/nextapps-de/winbox)
59
61
  <!-- - `BIOS`: A C++ module compiled to WebAssembly with [Emscripten](https://emscripten.org) providing performance-critical functionality -->
@@ -88,17 +90,31 @@ This is NOT intended to be a "Linux kernel in Javascript" - while it takes its h
88
90
  - The main idea is that data and custom code can be loaded into it from the OS for WASM-native performance, as well as providing various utilities
89
91
  - Confusingly, the Kernel loads the BIOS — not the other way around -->
90
92
 
93
+ ### Binaries
94
+
95
+ > [/core/kernel/src/tree/wasm.ts](/core/kernel/src/tree/wasm.ts)
96
+
97
+ - The native binary format for ecmaOS is WebAssembly
98
+ - The kernel supports both WASI Preview 1 and WASI Preview 2 (WIP)
99
+ - You can run WASM binaries directly:
100
+ - `/root/bin/hello.wasm --help`
101
+ - The `.wasm` extension is optional
102
+ - Compiling can be as simple as:
103
+ - `$ rustc --target wasm32-wasip1 -o hello.wasm hello.rs`
104
+ - `$ emcc -o hello.wasm hello.c -sSTANDALONE_WASM`
105
+ - You can also load WASM+JS harnesses manually
106
+
91
107
  ### Commands
92
108
 
93
109
  > [/core/kernel/src/tree/lib/commands](/core/kernel/src/tree/lib/commands)
94
110
 
95
- - `Commands` are built-in shell commands that are provided by the kernel, e.g. `download`, `install`, `load`, etc.
111
+ - `Commands` are built-in shell commands that are provided by the kernel, e.g. `download`, `install`, `load`, etc. Many or all of these will be migrated to the `@ecmaos/coreutils` package in the future.
96
112
 
97
113
  ### Coreutils
98
114
 
99
115
  > [/core/utils](/core/utils)
100
116
 
101
- - `Coreutils` are similar to `Commands`, but are provided by the `@ecmaos/coreutils` package, e.g. `cat`, `cd`, `chmod`, `cp`, `echo`, `ls`, `mkdir`, `mv`, `pwd`, `rm`, `rmdir`, `stat`, `touch`, etc.
117
+ - `Coreutils` are similar to `Commands`, but are provided by the `@ecmaos/coreutils` package, e.g. `cat`, `cd`, `chmod`, `cp`, `echo`, `git`, `ls`, `mkdir`, `mv`, `pwd`, `rm`, `rmdir`, `stat`, `touch`, etc.
102
118
 
103
119
  ### Devices
104
120
 
@@ -214,6 +230,20 @@ index.json /mnt/api fetch baseUrl=http://localhost:30808
214
230
  - It's used to tie the kernel into a desktop or mobile environment, allowing for native functionality
215
231
  - It needs more work -->
216
232
 
233
+ ### Internationalization
234
+
235
+ > [/core/kernel/src/tree/i18n](/core/kernel/src/tree/i18n)
236
+
237
+ - Built-in translations are in the [/core/kernel/locales](/core/kernel/locales) directory and compiled into the kernel at build time
238
+ - Translations can be defined and loaded from the filesystem at runtime
239
+ - Override or add translations in `/usr/share/locales/{lang}/{namespace}.json`
240
+ - e.g. `/usr/share/locales/en/kernel.json`
241
+ - System locale can be set from the `/etc/default/locale` file
242
+ - User locale can be set from the `LANG` environment variable
243
+ - `kernel.i18n.t` is the primary translation function for the kernel
244
+ - `kernel.i18n.ns` provides access to translation functions for specific namespaces
245
+ - e.g. `kernel.i18n.ns.common('Hello')`
246
+
217
247
  ### Kernel
218
248
 
219
249
  > [/core/kernel](/core/kernel)
@@ -239,7 +269,7 @@ index.json /mnt/api fetch baseUrl=http://localhost:30808
239
269
  - Telemetry (OpenTelemetry)
240
270
  - Terminal (xterm.js)
241
271
  - User Manager
242
- - WASM Loader
272
+ - WASM Loader (WASI Preview 1 mostly complete; WASI Preview 2 WIP)
243
273
  <!-- - [WebContainer](https://github.com/stackblitz/webcontainer-core) for running Node.js apps -->
244
274
  - Web Workers
245
275
  - Window Manager (WinBox)
@@ -336,12 +366,12 @@ cron reload # reload crontabs from files
336
366
  cron list # list all cron jobs
337
367
  download hello.txt
338
368
  edit hello.txt
339
- env hello --set world ; env
369
+ env hello=world ; env
340
370
  fetch https://ipecho.net/plain > /tmp/myip.txt
341
371
  fetch -o /tmp/initfs.tar.gz /initfs.tar.gz
342
- fetch /initfs.tar.gz | head | hex
372
+ fetch /initfs.tar.gz | head | xxd
343
373
  fetch /xkcd-os.sixel # xterm.js includes sixel support
344
- fetch /swapi/fs/home/user/hello.txt # fetch a file from the filesystem
374
+ fetch /swapi/fs/home/user/hello.txt # fetch a file from the filesystem via SWAPI
345
375
  fetch /swapi/fake/person/fullName # fetch a random person from the SWAPI
346
376
  install jquery
347
377
  install @ecmaos-apps/boilerplate
@@ -420,7 +450,7 @@ The [apps](/apps) directory in the repository contains some examples of how to d
420
450
  - `@ecmaos-apps/boilerplate`: A minimal boilerplate app for reference
421
451
  - `@ecmaos-apps/code`: A simple code editor app using [Monaco](https://microsoft.github.io/monaco-editor/); serves as a good reference for more complex apps
422
452
 
423
- Basically, your app's [bin](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#bin) file has a `main` (or default) function export that is passed the kernel reference and can use it to interact with the system as needed. A shebang line of `#!ecmaos:bin:app:myappname` is required at the top of the bin file to identify it as an app.
453
+ Basically, your app's [bin](https://docs.npmjs.com/cli/v10/configuring-npm/package-json#bin) file has a `main` (or unnamed default) function export that is passed the kernel reference and can use it to interact with the system as needed. A shebang line of `#!ecmaos:bin:app:myappname` is required at the top of the bin file to identify it as an app.
424
454
 
425
455
  ## App/Kernel Interface Example
426
456
 
@@ -449,12 +479,11 @@ ecmaOS is currently in active development. It is not considered stable and the s
449
479
  Things to keep in mind:
450
480
 
451
481
  - If things go wrong or break, clear your browser cache and site data for ecmaOS
452
- - Things have changed a lot since the tests were written, so they need to be updated and fixed
482
+ - The tests need to be updated and expanded
453
483
  - The kernel is designed to be run in an environment with a DOM (i.e. a browser)
454
484
  - Many features are only available on Chromium-based browsers, and many more behind feature flags
455
485
  - There will be a lot of technical challenges to overcome, and many things will first be implemented in a non-optimal way
456
486
  - Command interfaces won't match what you might be used to from a traditional Linux environment; not all commands and options are supported. Over time, Linuxish commands will be fleshed out and made to behave in a more familiar way.
457
- - Globbing doesn't work in the terminal yet, [but is supported at the filesystem level](https://zenfs.dev/core/functions/fs.promises.glob.html)
458
487
 
459
488
  ## Development
460
489
 
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-DXuSgAWA.js";
3
+ import { c as chalk, s as semver, p as path } from "./kernel-Io5VyIzi.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-D5ABLXdg.js.map
121
+ //# sourceMappingURL=install-CRrPdUs9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-D5ABLXdg.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-CRrPdUs9.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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"}