@ecmaos/kernel 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +183 -0
  3. package/dist/assets/browser-CMMYvNrB.js +1 -0
  4. package/dist/assets/index-BIxR48pa.js +496 -0
  5. package/dist/assets/index-CqxoKfXc.css +32 -0
  6. package/dist/assets/topbar.min-tONqjFMV.js +6 -0
  7. package/dist/favicon.ico +0 -0
  8. package/dist/importable-fonts/1Row.js +219 -0
  9. package/dist/importable-fonts/3-D.js +824 -0
  10. package/dist/importable-fonts/3D Diagonal.js +1670 -0
  11. package/dist/importable-fonts/3D-ASCII.js +1028 -0
  12. package/dist/importable-fonts/3x5.js +618 -0
  13. package/dist/importable-fonts/4Max.js +412 -0
  14. package/dist/importable-fonts/5 Line Oblique.js +617 -0
  15. package/dist/importable-fonts/AMC 3 Line.js +428 -0
  16. package/dist/importable-fonts/AMC 3 Liv1.js +428 -0
  17. package/dist/importable-fonts/AMC AAA01.js +1550 -0
  18. package/dist/importable-fonts/AMC Neko.js +1044 -0
  19. package/dist/importable-fonts/AMC Razor.js +734 -0
  20. package/dist/importable-fonts/AMC Razor2.js +938 -0
  21. package/dist/importable-fonts/AMC Slash.js +1040 -0
  22. package/dist/importable-fonts/AMC Slider.js +632 -0
  23. package/dist/importable-fonts/AMC Thin.js +734 -0
  24. package/dist/importable-fonts/AMC Tubes.js +836 -0
  25. package/dist/importable-fonts/AMC Untitled.js +836 -0
  26. package/dist/importable-fonts/ANSI Regular.js +722 -0
  27. package/dist/importable-fonts/ANSI Shadow.js +722 -0
  28. package/dist/importable-fonts/ASCII New Roman.js +422 -0
  29. package/dist/importable-fonts/Acrobatic.js +1241 -0
  30. package/dist/importable-fonts/Alligator.js +719 -0
  31. package/dist/importable-fonts/Alligator2.js +720 -0
  32. package/dist/importable-fonts/Alpha.js +2273 -0
  33. package/dist/importable-fonts/Alphabet.js +733 -0
  34. package/dist/importable-fonts/Arrows.js +826 -0
  35. package/dist/importable-fonts/Avatar.js +630 -0
  36. package/dist/importable-fonts/B1FF.js +376 -0
  37. package/dist/importable-fonts/Banner.js +2495 -0
  38. package/dist/importable-fonts/Banner3-D.js +821 -0
  39. package/dist/importable-fonts/Banner3.js +719 -0
  40. package/dist/importable-fonts/Banner4.js +719 -0
  41. package/dist/importable-fonts/Barbwire.js +826 -0
  42. package/dist/importable-fonts/Basic.js +826 -0
  43. package/dist/importable-fonts/Bear.js +930 -0
  44. package/dist/importable-fonts/Bell.js +637 -0
  45. package/dist/importable-fonts/Benjamin.js +144 -0
  46. package/dist/importable-fonts/Big Chief.js +820 -0
  47. package/dist/importable-fonts/Big Money-ne.js +1149 -0
  48. package/dist/importable-fonts/Big Money-nw.js +1149 -0
  49. package/dist/importable-fonts/Big Money-se.js +1251 -0
  50. package/dist/importable-fonts/Big Money-sw.js +1251 -0
  51. package/dist/importable-fonts/Big.js +2205 -0
  52. package/dist/importable-fonts/Bigfig.js +335 -0
  53. package/dist/importable-fonts/Binary.js +373 -0
  54. package/dist/importable-fonts/Block.js +1692 -0
  55. package/dist/importable-fonts/Blocks.js +1135 -0
  56. package/dist/importable-fonts/Bloody.js +1024 -0
  57. package/dist/importable-fonts/Bolger.js +723 -0
  58. package/dist/importable-fonts/Braced.js +527 -0
  59. package/dist/importable-fonts/Bright.js +617 -0
  60. package/dist/importable-fonts/Broadway KB.js +325 -0
  61. package/dist/importable-fonts/Broadway.js +1153 -0
  62. package/dist/importable-fonts/Bubble.js +1631 -0
  63. package/dist/importable-fonts/Bulbhead.js +435 -0
  64. package/dist/importable-fonts/Caligraphy.js +2158 -0
  65. package/dist/importable-fonts/Caligraphy2.js +2114 -0
  66. package/dist/importable-fonts/Calvin S.js +314 -0
  67. package/dist/importable-fonts/Cards.js +628 -0
  68. package/dist/importable-fonts/Catwalk.js +825 -0
  69. package/dist/importable-fonts/Chiseled.js +935 -0
  70. package/dist/importable-fonts/Chunky.js +518 -0
  71. package/dist/importable-fonts/Coinstak.js +825 -0
  72. package/dist/importable-fonts/Cola.js +624 -0
  73. package/dist/importable-fonts/Colossal.js +1141 -0
  74. package/dist/importable-fonts/Computer.js +718 -0
  75. package/dist/importable-fonts/Contessa.js +412 -0
  76. package/dist/importable-fonts/Contrast.js +616 -0
  77. package/dist/importable-fonts/Cosmike.js +617 -0
  78. package/dist/importable-fonts/Crawford.js +843 -0
  79. package/dist/importable-fonts/Crawford2.js +843 -0
  80. package/dist/importable-fonts/Crazy.js +1344 -0
  81. package/dist/importable-fonts/Cricket.js +843 -0
  82. package/dist/importable-fonts/Cursive.js +625 -0
  83. package/dist/importable-fonts/Cyberlarge.js +430 -0
  84. package/dist/importable-fonts/Cybermedium.js +430 -0
  85. package/dist/importable-fonts/Cybersmall.js +226 -0
  86. package/dist/importable-fonts/Cygnet.js +558 -0
  87. package/dist/importable-fonts/DANC4.js +430 -0
  88. package/dist/importable-fonts/DOS Rebel.js +1138 -0
  89. package/dist/importable-fonts/DWhistled.js +1034 -0
  90. package/dist/importable-fonts/Dancing Font.js +732 -0
  91. package/dist/importable-fonts/Decimal.js +374 -0
  92. package/dist/importable-fonts/Def Leppard.js +5538 -0
  93. package/dist/importable-fonts/Delta Corps Priest 1.js +923 -0
  94. package/dist/importable-fonts/Diamond.js +825 -0
  95. package/dist/importable-fonts/Diet Cola.js +624 -0
  96. package/dist/importable-fonts/Digital.js +1287 -0
  97. package/dist/importable-fonts/Doh.js +2555 -0
  98. package/dist/importable-fonts/Doom.js +834 -0
  99. package/dist/importable-fonts/Dot Matrix.js +1025 -0
  100. package/dist/importable-fonts/Double Shorts.js +342 -0
  101. package/dist/importable-fonts/Double.js +533 -0
  102. package/dist/importable-fonts/Dr Pepper.js +570 -0
  103. package/dist/importable-fonts/Efti Chess.js +520 -0
  104. package/dist/importable-fonts/Efti Font.js +886 -0
  105. package/dist/importable-fonts/Efti Italic.js +886 -0
  106. package/dist/importable-fonts/Efti Piti.js +548 -0
  107. package/dist/importable-fonts/Efti Robot.js +626 -0
  108. package/dist/importable-fonts/Efti Wall.js +418 -0
  109. package/dist/importable-fonts/Efti Water.js +418 -0
  110. package/dist/importable-fonts/Electronic.js +1232 -0
  111. package/dist/importable-fonts/Elite.js +518 -0
  112. package/dist/importable-fonts/Epic.js +936 -0
  113. package/dist/importable-fonts/Fender.js +728 -0
  114. package/dist/importable-fonts/Filter.js +547 -0
  115. package/dist/importable-fonts/Fire Font-k.js +947 -0
  116. package/dist/importable-fonts/Fire Font-s.js +947 -0
  117. package/dist/importable-fonts/Flipped.js +420 -0
  118. package/dist/importable-fonts/Flower Power.js +1043 -0
  119. package/dist/importable-fonts/Four Tops.js +424 -0
  120. package/dist/importable-fonts/Fraktur.js +1534 -0
  121. package/dist/importable-fonts/Fun Face.js +732 -0
  122. package/dist/importable-fonts/Fun Faces.js +732 -0
  123. package/dist/importable-fonts/Fuzzy.js +723 -0
  124. package/dist/importable-fonts/Georgi16.js +3745 -0
  125. package/dist/importable-fonts/Georgia11.js +4074 -0
  126. package/dist/importable-fonts/Ghost.js +949 -0
  127. package/dist/importable-fonts/Ghoulish.js +731 -0
  128. package/dist/importable-fonts/Glenyn.js +441 -0
  129. package/dist/importable-fonts/Goofy.js +636 -0
  130. package/dist/importable-fonts/Gothic.js +936 -0
  131. package/dist/importable-fonts/Graceful.js +754 -0
  132. package/dist/importable-fonts/Gradient.js +923 -0
  133. package/dist/importable-fonts/Graffiti.js +630 -0
  134. package/dist/importable-fonts/Greek.js +951 -0
  135. package/dist/importable-fonts/Heart Left.js +425 -0
  136. package/dist/importable-fonts/Heart Right.js +424 -0
  137. package/dist/importable-fonts/Henry 3D.js +829 -0
  138. package/dist/importable-fonts/Hex.js +374 -0
  139. package/dist/importable-fonts/Hieroglyphs.js +457 -0
  140. package/dist/importable-fonts/Hollywood.js +1029 -0
  141. package/dist/importable-fonts/Horizontal Left.js +625 -0
  142. package/dist/importable-fonts/Horizontal Right.js +625 -0
  143. package/dist/importable-fonts/ICL-1900.js +1346 -0
  144. package/dist/importable-fonts/Impossible.js +1236 -0
  145. package/dist/importable-fonts/Invita.js +616 -0
  146. package/dist/importable-fonts/Isometric1.js +1147 -0
  147. package/dist/importable-fonts/Isometric2.js +1147 -0
  148. package/dist/importable-fonts/Isometric3.js +1147 -0
  149. package/dist/importable-fonts/Isometric4.js +1147 -0
  150. package/dist/importable-fonts/Italic.js +413 -0
  151. package/dist/importable-fonts/Ivrit.js +901 -0
  152. package/dist/importable-fonts/JS Block Letters.js +311 -0
  153. package/dist/importable-fonts/JS Bracket Letters.js +413 -0
  154. package/dist/importable-fonts/JS Capital Curves.js +420 -0
  155. package/dist/importable-fonts/JS Cursive.js +617 -0
  156. package/dist/importable-fonts/JS Stick Letters.js +413 -0
  157. package/dist/importable-fonts/Jacky.js +875 -0
  158. package/dist/importable-fonts/Jazmine.js +1031 -0
  159. package/dist/importable-fonts/Jerusalem.js +747 -0
  160. package/dist/importable-fonts/Katakana.js +824 -0
  161. package/dist/importable-fonts/Kban.js +719 -0
  162. package/dist/importable-fonts/Keyboard.js +933 -0
  163. package/dist/importable-fonts/Knob.js +420 -0
  164. package/dist/importable-fonts/Konto Slant.js +231 -0
  165. package/dist/importable-fonts/Konto.js +229 -0
  166. package/dist/importable-fonts/LCD.js +616 -0
  167. package/dist/importable-fonts/Larry 3D 2.js +925 -0
  168. package/dist/importable-fonts/Larry 3D.js +925 -0
  169. package/dist/importable-fonts/Lean.js +1692 -0
  170. package/dist/importable-fonts/Letters.js +625 -0
  171. package/dist/importable-fonts/Lil Devil.js +834 -0
  172. package/dist/importable-fonts/Line Blocks.js +522 -0
  173. package/dist/importable-fonts/Linux.js +423 -0
  174. package/dist/importable-fonts/Lockergnome.js +413 -0
  175. package/dist/importable-fonts/Madrid.js +417 -0
  176. package/dist/importable-fonts/Marquee.js +825 -0
  177. package/dist/importable-fonts/Maxfour.js +424 -0
  178. package/dist/importable-fonts/Merlin1.js +841 -0
  179. package/dist/importable-fonts/Merlin2.js +943 -0
  180. package/dist/importable-fonts/Mike.js +311 -0
  181. package/dist/importable-fonts/Mini.js +900 -0
  182. package/dist/importable-fonts/Mirror.js +1304 -0
  183. package/dist/importable-fonts/Mnemonic.js +3703 -0
  184. package/dist/importable-fonts/Modular.js +733 -0
  185. package/dist/importable-fonts/Morse.js +190 -0
  186. package/dist/importable-fonts/Morse2.js +190 -0
  187. package/dist/importable-fonts/Moscow.js +624 -0
  188. package/dist/importable-fonts/Mshebrew210.js +423 -0
  189. package/dist/importable-fonts/Muzzle.js +421 -0
  190. package/dist/importable-fonts/NScript.js +1655 -0
  191. package/dist/importable-fonts/NT Greek.js +950 -0
  192. package/dist/importable-fonts/NV Script.js +2108 -0
  193. package/dist/importable-fonts/Nancyj-Fancy.js +829 -0
  194. package/dist/importable-fonts/Nancyj-Improved.js +827 -0
  195. package/dist/importable-fonts/Nancyj-Underlined.js +827 -0
  196. package/dist/importable-fonts/Nancyj.js +827 -0
  197. package/dist/importable-fonts/Nipples.js +825 -0
  198. package/dist/importable-fonts/O8.js +628 -0
  199. package/dist/importable-fonts/OS2.js +735 -0
  200. package/dist/importable-fonts/Octal.js +374 -0
  201. package/dist/importable-fonts/Ogre.js +627 -0
  202. package/dist/importable-fonts/Old Banner.js +722 -0
  203. package/dist/importable-fonts/Pagga.js +535 -0
  204. package/dist/importable-fonts/Patorjk's Cheese.js +1437 -0
  205. package/dist/importable-fonts/Patorjk-HeX.js +1235 -0
  206. package/dist/importable-fonts/Pawp.js +924 -0
  207. package/dist/importable-fonts/Peaks Slant.js +623 -0
  208. package/dist/importable-fonts/Peaks.js +825 -0
  209. package/dist/importable-fonts/Pebbles.js +1029 -0
  210. package/dist/importable-fonts/Pepper.js +419 -0
  211. package/dist/importable-fonts/Poison.js +1240 -0
  212. package/dist/importable-fonts/Puffy.js +821 -0
  213. package/dist/importable-fonts/Puzzle.js +523 -0
  214. package/dist/importable-fonts/Pyramid.js +837 -0
  215. package/dist/importable-fonts/Rammstein.js +726 -0
  216. package/dist/importable-fonts/Rectangles.js +615 -0
  217. package/dist/importable-fonts/Red Phoenix.js +735 -0
  218. package/dist/importable-fonts/Relief.js +718 -0
  219. package/dist/importable-fonts/Relief2.js +718 -0
  220. package/dist/importable-fonts/Reverse.js +1126 -0
  221. package/dist/importable-fonts/Roman.js +1029 -0
  222. package/dist/importable-fonts/Rot13.js +368 -0
  223. package/dist/importable-fonts/Rotated.js +323 -0
  224. package/dist/importable-fonts/Rounded.js +718 -0
  225. package/dist/importable-fonts/Rowan Cap.js +635 -0
  226. package/dist/importable-fonts/Rozzo.js +718 -0
  227. package/dist/importable-fonts/Runic.js +633 -0
  228. package/dist/importable-fonts/Runyc.js +634 -0
  229. package/dist/importable-fonts/S Blood.js +635 -0
  230. package/dist/importable-fonts/SL Script.js +627 -0
  231. package/dist/importable-fonts/Santa Clara.js +616 -0
  232. package/dist/importable-fonts/Script.js +1494 -0
  233. package/dist/importable-fonts/Serifcap.js +412 -0
  234. package/dist/importable-fonts/Shadow.js +1102 -0
  235. package/dist/importable-fonts/Shimrod.js +627 -0
  236. package/dist/importable-fonts/Short.js +316 -0
  237. package/dist/importable-fonts/Slant Relief.js +935 -0
  238. package/dist/importable-fonts/Slant.js +1296 -0
  239. package/dist/importable-fonts/Slide.js +624 -0
  240. package/dist/importable-fonts/Small Caps.js +522 -0
  241. package/dist/importable-fonts/Small Isometric1.js +734 -0
  242. package/dist/importable-fonts/Small Keyboard.js +467 -0
  243. package/dist/importable-fonts/Small Poison.js +730 -0
  244. package/dist/importable-fonts/Small Script.js +1098 -0
  245. package/dist/importable-fonts/Small Shadow.js +900 -0
  246. package/dist/importable-fonts/Small Slant.js +1098 -0
  247. package/dist/importable-fonts/Small Tengwar.js +313 -0
  248. package/dist/importable-fonts/Small.js +1098 -0
  249. package/dist/importable-fonts/Soft.js +742 -0
  250. package/dist/importable-fonts/Speed.js +1302 -0
  251. package/dist/importable-fonts/Spliff.js +527 -0
  252. package/dist/importable-fonts/Stacey.js +740 -0
  253. package/dist/importable-fonts/Stampate.js +723 -0
  254. package/dist/importable-fonts/Stampatello.js +1381 -0
  255. package/dist/importable-fonts/Standard.js +2237 -0
  256. package/dist/importable-fonts/Star Strips.js +936 -0
  257. package/dist/importable-fonts/Star Wars.js +720 -0
  258. package/dist/importable-fonts/Stellar.js +825 -0
  259. package/dist/importable-fonts/Stforek.js +424 -0
  260. package/dist/importable-fonts/Stick Letters.js +413 -0
  261. package/dist/importable-fonts/Stop.js +719 -0
  262. package/dist/importable-fonts/Straight.js +414 -0
  263. package/dist/importable-fonts/Stronger Than All.js +924 -0
  264. package/dist/importable-fonts/Sub-Zero.js +630 -0
  265. package/dist/importable-fonts/Swamp Land.js +829 -0
  266. package/dist/importable-fonts/Swan.js +990 -0
  267. package/dist/importable-fonts/Sweet.js +1340 -0
  268. package/dist/importable-fonts/THIS.js +721 -0
  269. package/dist/importable-fonts/Tanja.js +820 -0
  270. package/dist/importable-fonts/Tengwar.js +1038 -0
  271. package/dist/importable-fonts/Term.js +601 -0
  272. package/dist/importable-fonts/Test1.js +421 -0
  273. package/dist/importable-fonts/The Edge.js +721 -0
  274. package/dist/importable-fonts/Thick.js +526 -0
  275. package/dist/importable-fonts/Thin.js +626 -0
  276. package/dist/importable-fonts/Thorned.js +523 -0
  277. package/dist/importable-fonts/Three Point.js +322 -0
  278. package/dist/importable-fonts/Ticks Slant.js +623 -0
  279. package/dist/importable-fonts/Ticks.js +623 -0
  280. package/dist/importable-fonts/Tiles.js +825 -0
  281. package/dist/importable-fonts/Tinker-Toy.js +728 -0
  282. package/dist/importable-fonts/Tombstone.js +524 -0
  283. package/dist/importable-fonts/Train.js +627 -0
  284. package/dist/importable-fonts/Trek.js +644 -0
  285. package/dist/importable-fonts/Tsalagi.js +565 -0
  286. package/dist/importable-fonts/Tubular.js +825 -0
  287. package/dist/importable-fonts/Twisted.js +829 -0
  288. package/dist/importable-fonts/Two Point.js +220 -0
  289. package/dist/importable-fonts/USA Flag.js +633 -0
  290. package/dist/importable-fonts/Univers.js +1138 -0
  291. package/dist/importable-fonts/Varsity.js +726 -0
  292. package/dist/importable-fonts/Wavy.js +904 -0
  293. package/dist/importable-fonts/Weird.js +627 -0
  294. package/dist/importable-fonts/Wet Letter.js +727 -0
  295. package/dist/importable-fonts/Whimsy.js +1042 -0
  296. package/dist/importable-fonts/Wow.js +117 -0
  297. package/dist/index.html +14 -0
  298. package/dist/swapi.js +2712 -0
  299. package/package.json +182 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ # MIT License
2
+
3
+ Copyright (c) 2024-2025 Jay Mathis <code@mathis.network>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,183 @@
1
+ # The Web Kernel
2
+
3
+ [![Launch ecmaOS.sh](https://img.shields.io/badge/launch-ecmaos.sh-blue?style=for-the-badge)](https://ecmaos.sh)
4
+
5
+ [ecmaOS](https://ecmaos.sh) is a [browser-based operating system kernel](https://global.discourse-cdn.com/spiceworks/original/4X/8/7/b/87b7be8e7e2cd932affe5449dba69dc16e30d721.gif) and suite of applications written in TypeScript. It's the successor of [web3os](https://github.com/web3os-org/kernel).
6
+
7
+ The goal is to create a kernel and supporting apps that tie together modern web technologies and utilities to form an "operating system" that can run on modern browsers, not just to create a "desktop experience". Its main use case is to provide a consistent environment for running web apps, but it has features that allow for more powerful custom scenarios. The kernel could also be used as a platform for custom applications, games, and more.
8
+
9
+ [![API Reference](https://img.shields.io/badge/API-Reference-success)](https://docs.ecmaos.sh)
10
+ [![Version](https://img.shields.io/github/package-json/v/ecmaos/ecmaos?color=success)](https://ecmaos.sh)
11
+ [![Site Status](https://img.shields.io/website?url=https%3A%2F%2Fecmaos.sh)](https://ecmaos.sh)
12
+ [![Last Commit](https://img.shields.io/github/last-commit/ecmaos/ecmaos.svg)](https://github.com/ecmaos/ecmaos/commit/main)
13
+ [![Open issues](https://img.shields.io/github/issues/ecmaos/ecmaos.svg)](https://github.com/ecmaos/ecmaos/issues)
14
+ [![Closed issues](https://img.shields.io/github/issues-closed/ecmaos/ecmaos.svg)](https://github.com/ecmaos/ecmaos/issues?q=is%3Aissue+is%3Aclosed)
15
+
16
+ [![Sponsors](https://img.shields.io/github/sponsors/mathiscode?color=red)](https://github.com/sponsors/mathiscode)
17
+ [![Contributors](https://img.shields.io/github/contributors/ecmaos/ecmaos?color=yellow)](https://github.com/ecmaos/ecmaos/graphs/contributors)
18
+ [![GitHub license](https://img.shields.io/badge/license-MIT-blue)](https://github.com/ecmaos/ecmaos/blob/main/LICENSE)
19
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-blue.svg)](https://github.com/ecmaos/ecmaos/compare)
20
+
21
+ ## Features
22
+
23
+ - TypeScript, WebAssembly
24
+ - Filesystem supporting multiple backends powered by [@zenfs/core](https://github.com/zen-fs/core)
25
+ - Terminal interface powered by [xterm.js](https://xtermjs.org)
26
+ - Pseudo-streams, allowing redirection and piping
27
+ - Device framework with a common interface for working with hardware: WebBluetooth, WebSerial, WebHID, WebUSB, etc.
28
+ - Some devices have a builtin CLI, so you can run them like normal commands: `# /dev/bluetooth`
29
+ - Install any client-side npm package (this doesn't mean it will work out of the box as expected)
30
+ - Event manager for dispatching and subscribing to events
31
+ - Process manager for running applications and daemons
32
+ - Interval manager for scheduling recurring operations
33
+ - Memory manager for managing pseudo-memory: Collections, Config, Heap, and Stack
34
+ - Storage manager for managing Storage API capabilities: IndexedDB, localStorage, etc.
35
+ - Internationalization framework for translating text powered by [i18next](https://www.i18next.com)
36
+ - Window manager powered by [WinBox](https://github.com/nextapps-de/winbox)
37
+ - `SWAPI`: An API server running completely inside a service worker using [Hono](https://hono.dev)
38
+ - `Metal`: An API server for allowing connections to physical systems from ecmaOS using [Hono](https://hono.dev)
39
+
40
+ ## Basic Overview
41
+
42
+ - `Kernel`
43
+ - Authentication (WebAuthn)
44
+ - Components (Web Components/Custom Elements)
45
+ - Devices
46
+ - DOM
47
+ - Events (CustomEvents)
48
+ - Filesystem (ZenFS)
49
+ - Internationalization (i18next)
50
+ - Interval Manager (setInterval)
51
+ - Log Manager (tslog)
52
+ - Memory Manager (Abstractions)
53
+ - Process Manager
54
+ - Protocol Handlers (web+ecmaos://...)
55
+ - Service Worker Manager
56
+ - Shell
57
+ - Storage (IndexedDB, localStorage, sessionStorage, etc.)
58
+ - Terminal (xterm.js)
59
+ - User Manager
60
+ - Window Manager (WinBox)
61
+ - Workers (Web Workers)
62
+
63
+ - `Apps`
64
+ - These are full applications that are developed to work with ecmaOS
65
+ - `Core`
66
+ - Core modules provide the system's essential functionality; this includes the kernel itself
67
+ - `Commands`
68
+ - Commands are small utilities that aren't quite full Apps, provided by the shell
69
+ - `Devices`
70
+ - Devices get loaded on boot, e.g. /dev/bluetooth, /dev/random, /dev/battery, etc.
71
+ - A device can support being "run" by a user, e.g. `# /dev/battery status`
72
+ - Devices may also be directly read/written, and will behave accordingly
73
+ - An individual device module can provide multiple device drivers, e.g. `/dev/usb` provides `/dev/usb-mydevice-0001-0002`
74
+ - `Utils`
75
+ - Utilities used during development
76
+
77
+ ## Command Examples
78
+
79
+ ```sh
80
+ ai "Despite all my rage" # use env OPENAI_API_KEY --set sk-
81
+ cat /var/log/kernel.log
82
+ cd /tmp
83
+ echo "Hello, world!" > hello.txt
84
+ chmod 700 hello.txt
85
+ chown user hello.txt
86
+ clear
87
+ cp /tmp/hello.txt /tmp/hi.txt
88
+ download hello.txt
89
+ edit hello.txt
90
+ env hello --set world ; env
91
+ fetch https://ipecho.net/plain > /tmp/myip.txt
92
+ install jquery
93
+ ls /dev
94
+ mkdir /tmp/zip ; cd /tmp/zip
95
+ upload
96
+ mount myuploadedzip.zip /mnt/zip -t zip
97
+ cd .. ; pwd
98
+ unzip zip/myuploaded.zip
99
+ mv zip/myuploaded.zip /tmp/backup.zip
100
+ passwd old new
101
+ play /root/test.mp3
102
+ ps
103
+ rm /tmp/backup.zip
104
+ screensaver
105
+ snake
106
+ stat /tmp/hello.txt
107
+ touch /tmp/test.bin
108
+ umount /mnt/zip
109
+ user add --username user
110
+ su user
111
+ video /root/video.mp4
112
+ zip /root/tmp.zip /tmp
113
+ ```
114
+
115
+ ## Device Examples
116
+
117
+ ```sh
118
+ /dev/audio test
119
+ /dev/battery status
120
+ /dev/bluetooth scan
121
+ echo "This will error" > /dev/full
122
+ /dev/gamepad list
123
+ /dev/geo position
124
+ /dev/gpu test
125
+ /dev/hid list
126
+ /dev/midi list
127
+ echo "Goodbye" > /dev/null
128
+ /dev/presentation start https://wikipedia.org
129
+ cat /dev/random --bytes 10
130
+ /dev/sensors list
131
+ /dev/serial devices
132
+ /dev/usb list
133
+ /dev/webgpu test
134
+ cat /dev/zero --bytes 10 > /dev/null
135
+ ```
136
+
137
+ Note: many device implementations are incomplete, but provide a solid starting point
138
+
139
+ ## Early Days
140
+
141
+ The kernel is currently in active development. It is not considered stable and the structure and API are very likely to change in unexpected and possibly unannounced ways until version 1.0.0. Use cautiously and at your own risk.
142
+
143
+ Things to keep in mind:
144
+
145
+ - The kernel is designed to be run in an environment with a DOM (i.e. a browser)
146
+ - Many features are only available on Chromium-based browsers, and many more behind feature flags
147
+ - 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.
148
+ - Globbing doesn't work in the terminal yet
149
+
150
+ ## Development
151
+
152
+ [Turborepo](https://turbo.build/repo) is used to manage the monorepo, and [pnpm](https://pnpm.io) is used for package management.
153
+
154
+ A good place to start is viewing the `scripts` property of [package.json](./package.json) in the root of the repository.
155
+
156
+ ```bash
157
+ # Clone
158
+ git clone https://github.com/ecmaos/ecmaos.git
159
+
160
+ # Install dependencies
161
+ cd ecmaos && pnpm install
162
+
163
+ # Run the dev server
164
+ pnpm run dev
165
+
166
+ # Run the docs server
167
+ pnpm run dev:docs
168
+
169
+ # Build
170
+ pnpm run build
171
+
172
+ # Run tests
173
+ pnpm run test
174
+ pnpm run test:watch
175
+ pnpm run test:coverage
176
+ pnpm run test:bench
177
+ pnpm run test:ui
178
+
179
+ # Generate modules
180
+ turbo gen device # generate a new device template
181
+ ```
182
+
183
+ Also see [turbo.json](./turbo.json) and [CONTRIBUTING.md](./CONTRIBUTING.md) for more information.
@@ -0,0 +1 @@
1
+ import{g as e}from"./index-BIxR48pa.js";var o=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")};const r=e(o),s=Object.freeze(Object.defineProperty({__proto__:null,default:r},Symbol.toStringTag,{value:"Module"}));export{s as b};