@ecmaos/kernel 0.5.1 → 0.6.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.
package/dist/kernel.js CHANGED
@@ -1,4 +1,4 @@
1
- import { K } from "./kernel-0pBSj4jE.js";
1
+ import { K } from "./kernel-aP6SixLt.js";
2
2
  export {
3
3
  K as Kernel
4
4
  };
@@ -1,6 +1,6 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { g as getDefaultExportFromCjs } from "./kernel-0pBSj4jE.js";
3
+ import { g as getDefaultExportFromCjs } from "./kernel-aP6SixLt.js";
4
4
  var topbar_min$3 = { exports: {} };
5
5
  /**
6
6
  * @license MIT
@@ -53,4 +53,4 @@ const topbar_min$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.define
53
53
  export {
54
54
  topbar_min$1 as t
55
55
  };
56
- //# sourceMappingURL=topbar.min-Bi5TyVL9.js.map
56
+ //# sourceMappingURL=topbar.min-fpX-LYox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"topbar.min-Bi5TyVL9.js","sources":["../node_modules/.pnpm/topbar@3.0.0/node_modules/topbar/topbar.min.js"],"sourcesContent":["/**\n * @license MIT\n * topbar 3.0.0\n * http://buunguyen.github.io/topbar\n * Copyright (c) 2024 Buu Nguyen\n */\n(function(window,document){\"use strict\";function repaint(){canvas.width=window.innerWidth,canvas.height=5*options.barThickness;var ctx=canvas.getContext(\"2d\");ctx.shadowBlur=options.shadowBlur,ctx.shadowColor=options.shadowColor;var stop,lineGradient=ctx.createLinearGradient(0,0,canvas.width,0);for(stop in options.barColors)lineGradient.addColorStop(stop,options.barColors[stop]);ctx.lineWidth=options.barThickness,ctx.beginPath(),ctx.moveTo(0,options.barThickness/2),ctx.lineTo(Math.ceil(currentProgress*canvas.width),options.barThickness/2),ctx.strokeStyle=lineGradient,ctx.stroke()}var canvas,currentProgress,showing,progressTimerId=null,fadeTimerId=null,delayTimerId=null,options={autoRun:!0,barThickness:3,barColors:{0:\"rgba(26, 188, 156, .9)\",\".25\":\"rgba(52, 152, 219, .9)\",\".50\":\"rgba(241, 196, 15, .9)\",\".75\":\"rgba(230, 126, 34, .9)\",\"1.0\":\"rgba(211, 84, 0, .9)\"},shadowBlur:10,shadowColor:\"rgba(0, 0, 0, .6)\",className:null},topbar={config:function(opts){for(var key in opts)options.hasOwnProperty(key)&&(options[key]=opts[key])},show:function(handler){var type,elem;showing||(handler?delayTimerId=delayTimerId||setTimeout(()=>topbar.show(),handler):(showing=!0,null!==fadeTimerId&&window.cancelAnimationFrame(fadeTimerId),canvas||((elem=(canvas=document.createElement(\"canvas\")).style).position=\"fixed\",elem.top=elem.left=elem.right=elem.margin=elem.padding=0,elem.zIndex=100001,elem.display=\"none\",options.className&&canvas.classList.add(options.className),type=\"resize\",handler=repaint,(elem=window).addEventListener?elem.addEventListener(type,handler,!1):elem.attachEvent?elem.attachEvent(\"on\"+type,handler):elem[\"on\"+type]=handler),canvas.parentElement||document.body.appendChild(canvas),canvas.style.opacity=1,canvas.style.display=\"block\",topbar.progress(0),options.autoRun&&function loop(){progressTimerId=window.requestAnimationFrame(loop),topbar.progress(\"+\"+.05*Math.pow(1-Math.sqrt(currentProgress),2))}()))},progress:function(to){return void 0===to||(\"string\"==typeof to&&(to=(0<=to.indexOf(\"+\")||0<=to.indexOf(\"-\")?currentProgress:0)+parseFloat(to)),currentProgress=1<to?1:to,repaint()),currentProgress},hide:function(){clearTimeout(delayTimerId),delayTimerId=null,showing&&(showing=!1,null!=progressTimerId&&(window.cancelAnimationFrame(progressTimerId),progressTimerId=null),function loop(){return 1<=topbar.progress(\"+.1\")&&(canvas.style.opacity-=.05,canvas.style.opacity<=.05)?(canvas.style.display=\"none\",void(fadeTimerId=null)):void(fadeTimerId=window.requestAnimationFrame(loop))}())}};\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=topbar:\"function\"==typeof define&&define.amd?define(function(){return topbar}):this.topbar=topbar}).call(this,window,document);"],"names":["window","document","this"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"topbar.min-fpX-LYox.js","sources":["../node_modules/.pnpm/topbar@3.0.0/node_modules/topbar/topbar.min.js"],"sourcesContent":["/**\n * @license MIT\n * topbar 3.0.0\n * http://buunguyen.github.io/topbar\n * Copyright (c) 2024 Buu Nguyen\n */\n(function(window,document){\"use strict\";function repaint(){canvas.width=window.innerWidth,canvas.height=5*options.barThickness;var ctx=canvas.getContext(\"2d\");ctx.shadowBlur=options.shadowBlur,ctx.shadowColor=options.shadowColor;var stop,lineGradient=ctx.createLinearGradient(0,0,canvas.width,0);for(stop in options.barColors)lineGradient.addColorStop(stop,options.barColors[stop]);ctx.lineWidth=options.barThickness,ctx.beginPath(),ctx.moveTo(0,options.barThickness/2),ctx.lineTo(Math.ceil(currentProgress*canvas.width),options.barThickness/2),ctx.strokeStyle=lineGradient,ctx.stroke()}var canvas,currentProgress,showing,progressTimerId=null,fadeTimerId=null,delayTimerId=null,options={autoRun:!0,barThickness:3,barColors:{0:\"rgba(26, 188, 156, .9)\",\".25\":\"rgba(52, 152, 219, .9)\",\".50\":\"rgba(241, 196, 15, .9)\",\".75\":\"rgba(230, 126, 34, .9)\",\"1.0\":\"rgba(211, 84, 0, .9)\"},shadowBlur:10,shadowColor:\"rgba(0, 0, 0, .6)\",className:null},topbar={config:function(opts){for(var key in opts)options.hasOwnProperty(key)&&(options[key]=opts[key])},show:function(handler){var type,elem;showing||(handler?delayTimerId=delayTimerId||setTimeout(()=>topbar.show(),handler):(showing=!0,null!==fadeTimerId&&window.cancelAnimationFrame(fadeTimerId),canvas||((elem=(canvas=document.createElement(\"canvas\")).style).position=\"fixed\",elem.top=elem.left=elem.right=elem.margin=elem.padding=0,elem.zIndex=100001,elem.display=\"none\",options.className&&canvas.classList.add(options.className),type=\"resize\",handler=repaint,(elem=window).addEventListener?elem.addEventListener(type,handler,!1):elem.attachEvent?elem.attachEvent(\"on\"+type,handler):elem[\"on\"+type]=handler),canvas.parentElement||document.body.appendChild(canvas),canvas.style.opacity=1,canvas.style.display=\"block\",topbar.progress(0),options.autoRun&&function loop(){progressTimerId=window.requestAnimationFrame(loop),topbar.progress(\"+\"+.05*Math.pow(1-Math.sqrt(currentProgress),2))}()))},progress:function(to){return void 0===to||(\"string\"==typeof to&&(to=(0<=to.indexOf(\"+\")||0<=to.indexOf(\"-\")?currentProgress:0)+parseFloat(to)),currentProgress=1<to?1:to,repaint()),currentProgress},hide:function(){clearTimeout(delayTimerId),delayTimerId=null,showing&&(showing=!1,null!=progressTimerId&&(window.cancelAnimationFrame(progressTimerId),progressTimerId=null),function loop(){return 1<=topbar.progress(\"+.1\")&&(canvas.style.opacity-=.05,canvas.style.opacity<=.05)?(canvas.style.display=\"none\",void(fadeTimerId=null)):void(fadeTimerId=window.requestAnimationFrame(loop))}())}};\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=topbar:\"function\"==typeof define&&define.amd?define(function(){return topbar}):this.topbar=topbar}).call(this,window,document);"],"names":["window","document","this"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/ui.js CHANGED
@@ -1,9 +1,7 @@
1
- import { K as Kernel } from "./kernel-0pBSj4jE.js";
2
- const username = "root";
3
- const password = "root";
1
+ import { K as Kernel } from "./kernel-aP6SixLt.js";
4
2
  const socket = "ws://localhost:30445/socket";
5
3
  const kernel = new Kernel({
6
- credentials: { username, password },
4
+ credentials: void 0,
7
5
  dom: { topbar: true },
8
6
  log: { name: `ecmaos:${"kernel"}` },
9
7
  socket: new WebSocket(socket)
package/dist/ui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sources":["../src/ui.ts"],"sourcesContent":["import { Kernel } from '#kernel.ts'\nimport './ui.css'\n\nconst username = import.meta.env.VITE_AUTOLOGIN_USERNAME\nconst password = import.meta.env.VITE_AUTOLOGIN_PASSWORD\nconst socket = import.meta.env.VITE_METAL_SOCKET\n\nconst kernel = new Kernel({\n credentials: (username && password) ? { username, password } : undefined,\n dom: { topbar: import.meta.env.NODE_ENV !== 'test' },\n log: { name: `ecmaos:${import.meta.env.NODE_ENV || 'kernel'}` },\n socket: socket ? new WebSocket(socket) : undefined\n})\n\nglobalThis.kernels = globalThis.kernels || new Map()\nglobalThis.kernels.set(kernel.id, kernel)\n\nglobalThis.shells = globalThis.shells || new Map()\nglobalThis.shells.set(kernel.shell.id, kernel.shell)\n\nglobalThis.terminals = globalThis.terminals || new Map()\nglobalThis.terminals.set(kernel.terminal.id, kernel.terminal)\n\nconst primaryKernel = globalThis.kernels.values().next().value\nglobalThis.kernel = primaryKernel\n\nkernel.terminal.mount(document.getElementById('terminal') as HTMLElement)\nkernel.boot({ silent: import.meta.env.NODE_ENV === 'test', figletFontRandom: false })\n"],"names":[],"mappings":";AAGA,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,SAAS;AAEf,MAAM,SAAS,IAAI,OAAO;AAAA,EACxB,aAAsC,EAAE,UAAU;EAClD,KAAK,EAAE,QAAQ,KAA6B;AAAA,EAC5C,KAAK,EAAE,MAAM,UAAsC,QAAQ,GAAA;AAAA,EAC3D,QAAiB,IAAI,UAAU,MAAM;AACvC,CAAC;AAED,WAAW,UAAU,WAAW,WAAW,oBAAI,IAAA;AAC/C,WAAW,QAAQ,IAAI,OAAO,IAAI,MAAM;AAExC,WAAW,SAAS,WAAW,UAAU,oBAAI,IAAA;AAC7C,WAAW,OAAO,IAAI,OAAO,MAAM,IAAI,OAAO,KAAK;AAEnD,WAAW,YAAY,WAAW,aAAa,oBAAI,IAAA;AACnD,WAAW,UAAU,IAAI,OAAO,SAAS,IAAI,OAAO,QAAQ;AAE5D,MAAM,gBAAgB,WAAW,QAAQ,OAAA,EAAS,OAAO;AACzD,WAAW,SAAS;AAEpB,OAAO,SAAS,MAAM,SAAS,eAAe,UAAU,CAAgB;AACxE,OAAO,KAAK,EAAE,QAAQ,OAAqC,kBAAkB,OAAO;"}
1
+ {"version":3,"file":"ui.js","sources":["../src/ui.ts"],"sourcesContent":["import { Kernel } from '#kernel.ts'\nimport './ui.css'\n\nconst username = import.meta.env.VITE_AUTOLOGIN_USERNAME\nconst password = import.meta.env.VITE_AUTOLOGIN_PASSWORD\nconst socket = import.meta.env.VITE_METAL_SOCKET\n\nconst kernel = new Kernel({\n credentials: (username && password) ? { username, password } : undefined,\n dom: { topbar: import.meta.env.NODE_ENV !== 'test' },\n log: { name: `ecmaos:${import.meta.env.NODE_ENV || 'kernel'}` },\n socket: socket ? new WebSocket(socket) : undefined\n})\n\nglobalThis.kernels = globalThis.kernels || new Map()\nglobalThis.kernels.set(kernel.id, kernel)\n\nglobalThis.shells = globalThis.shells || new Map()\nglobalThis.shells.set(kernel.shell.id, kernel.shell)\n\nglobalThis.terminals = globalThis.terminals || new Map()\nglobalThis.terminals.set(kernel.terminal.id, kernel.terminal)\n\nconst primaryKernel = globalThis.kernels.values().next().value\nglobalThis.kernel = primaryKernel\n\nkernel.terminal.mount(document.getElementById('terminal') as HTMLElement)\nkernel.boot({ silent: import.meta.env.NODE_ENV === 'test', figletFontRandom: false })\n"],"names":[],"mappings":";AAKA,MAAM,SAAS;AAEf,MAAM,SAAS,IAAI,OAAO;AAAA,EACxB,aAA+D;AAAA,EAC/D,KAAK,EAAE,QAAQ,KAA6B;AAAA,EAC5C,KAAK,EAAE,MAAM,UAAsC,QAAQ,GAAA;AAAA,EAC3D,QAAiB,IAAI,UAAU,MAAM;AACvC,CAAC;AAED,WAAW,UAAU,WAAW,WAAW,oBAAI,IAAA;AAC/C,WAAW,QAAQ,IAAI,OAAO,IAAI,MAAM;AAExC,WAAW,SAAS,WAAW,UAAU,oBAAI,IAAA;AAC7C,WAAW,OAAO,IAAI,OAAO,MAAM,IAAI,OAAO,KAAK;AAEnD,WAAW,YAAY,WAAW,aAAa,oBAAI,IAAA;AACnD,WAAW,UAAU,IAAI,OAAO,SAAS,IAAI,OAAO,QAAQ;AAE5D,MAAM,gBAAgB,WAAW,QAAQ,OAAA,EAAS,OAAO;AACzD,WAAW,SAAS;AAEpB,OAAO,SAAS,MAAM,SAAS,eAAe,UAAU,CAAgB;AACxE,OAAO,KAAK,EAAE,QAAQ,OAAqC,kBAAkB,OAAO;"}
@@ -0,0 +1,97 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { c as chalk, p as path } from "./kernel-aP6SixLt.js";
4
+ const uninstall = /* @__PURE__ */ __name(async ({ kernel, terminal, args }) => {
5
+ const [packageArg] = args;
6
+ if (!packageArg) {
7
+ terminal.writeln(chalk.red("Usage: uninstall <package-name>[@version]"));
8
+ return 1;
9
+ }
10
+ const spec = packageArg.match(/(@[^/]+\/[^@]+|[^@]+)(?:@([^/]+))?/);
11
+ if (!spec) {
12
+ terminal.writeln(chalk.red("Invalid package name format"));
13
+ return 1;
14
+ }
15
+ const packageName = spec[1]?.replace("vnpm:", "");
16
+ const version = spec[2];
17
+ if (!packageName) {
18
+ terminal.writeln(chalk.red("Invalid package name format"));
19
+ return 1;
20
+ }
21
+ const packageDir = path.join("/usr/lib", packageName);
22
+ if (!await kernel.filesystem.fs.exists(packageDir)) {
23
+ terminal.writeln(chalk.red(`Package ${packageName} is not installed`));
24
+ return 1;
25
+ }
26
+ try {
27
+ const versions = await kernel.filesystem.fs.readdir(packageDir);
28
+ if (versions.length === 0) {
29
+ terminal.writeln(chalk.red(`No versions found for ${packageName}`));
30
+ return 1;
31
+ }
32
+ const versionsToUninstall = version ? versions.filter((v) => v === version) : versions;
33
+ if (version && versionsToUninstall.length === 0) {
34
+ terminal.writeln(chalk.red(`Version ${version} of ${packageName} is not installed`));
35
+ terminal.writeln(chalk.yellow(`Installed versions: ${versions.join(", ")}`));
36
+ return 1;
37
+ }
38
+ for (const versionToUninstall of versionsToUninstall) {
39
+ const versionPath = path.join(packageDir, versionToUninstall);
40
+ const packagePath = path.join(versionPath, "package.json");
41
+ if (!await kernel.filesystem.fs.exists(packagePath)) {
42
+ terminal.writeln(chalk.yellow(`Warning: package.json not found for ${packageName}@${versionToUninstall}, skipping binary unlinking`));
43
+ } else {
44
+ try {
45
+ const packageData = await kernel.filesystem.fs.readFile(packagePath, "utf-8");
46
+ const packageJson = JSON.parse(packageData);
47
+ if (packageJson.bin) {
48
+ if (typeof packageJson.bin === "string") {
49
+ const binPath = path.join("/usr/bin", packageJson.name);
50
+ try {
51
+ await kernel.filesystem.fs.unlink(binPath);
52
+ terminal.writeln(chalk.blue(`Unlinked ${packageJson.name} from ${binPath}`));
53
+ } catch (error) {
54
+ terminal.writeln(chalk.yellow(`Warning: Could not unlink ${binPath}: ${error instanceof Error ? error.message : "Unknown error"}`));
55
+ }
56
+ } else if (typeof packageJson.bin === "object") {
57
+ for (const bin in packageJson.bin) {
58
+ const binPath = path.join("/usr/bin", bin);
59
+ try {
60
+ await kernel.filesystem.fs.unlink(binPath);
61
+ terminal.writeln(chalk.blue(`Unlinked ${bin} from ${binPath}`));
62
+ } catch (error) {
63
+ terminal.writeln(chalk.yellow(`Warning: Could not unlink ${binPath}: ${error instanceof Error ? error.message : "Unknown error"}`));
64
+ }
65
+ }
66
+ }
67
+ }
68
+ } catch (error) {
69
+ terminal.writeln(chalk.yellow(`Warning: Failed to read package.json for ${packageName}@${versionToUninstall}: ${error instanceof Error ? error.message : "Unknown error"}`));
70
+ }
71
+ }
72
+ try {
73
+ await kernel.filesystem.fs.rm(versionPath, { recursive: true, force: true });
74
+ terminal.writeln(chalk.green(`Uninstalled ${packageName}@${versionToUninstall}`));
75
+ } catch (error) {
76
+ terminal.writeln(chalk.red(`Failed to remove ${versionPath}: ${error instanceof Error ? error.message : "Unknown error"}`));
77
+ return 1;
78
+ }
79
+ }
80
+ const remainingVersions = await kernel.filesystem.fs.readdir(packageDir).catch(() => []);
81
+ if (remainingVersions.length === 0) {
82
+ try {
83
+ await kernel.filesystem.fs.rmdir(packageDir);
84
+ } catch {
85
+ terminal.writeln(chalk.yellow(`Warning: Could not remove package directory ${packageDir}`));
86
+ }
87
+ }
88
+ return 0;
89
+ } catch (error) {
90
+ terminal.writeln(chalk.red(`Failed to uninstall ${packageName}: ${error instanceof Error ? error.message : "Unknown error"}`));
91
+ return 1;
92
+ }
93
+ }, "uninstall");
94
+ export {
95
+ uninstall as default
96
+ };
97
+ //# sourceMappingURL=uninstall-CCbsu8HM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall-CCbsu8HM.js","sources":["../src/tree/lib/commands/uninstall.ts"],"sourcesContent":["import chalk from 'chalk'\nimport path from 'path'\n\nimport { CommandArgs } from './'\n\nconst uninstall = async ({ kernel, terminal, args }: CommandArgs) => {\n const [packageArg] = args as [string]\n if (!packageArg) {\n terminal.writeln(chalk.red('Usage: uninstall <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 packageName = spec[1]?.replace('vnpm:', '')\n const version = spec[2]\n\n if (!packageName) {\n terminal.writeln(chalk.red('Invalid package name format'))\n return 1\n }\n\n const packageDir = path.join('/usr/lib', packageName)\n \n // Check if package is installed\n if (!await kernel.filesystem.fs.exists(packageDir)) {\n terminal.writeln(chalk.red(`Package ${packageName} is not installed`))\n return 1\n }\n\n try {\n // Get installed versions\n const versions = await kernel.filesystem.fs.readdir(packageDir)\n \n if (versions.length === 0) {\n terminal.writeln(chalk.red(`No versions found for ${packageName}`))\n return 1\n }\n\n // If version is specified, uninstall only that version\n // Otherwise, uninstall all versions\n const versionsToUninstall = version \n ? versions.filter(v => v === version)\n : versions\n\n if (version && versionsToUninstall.length === 0) {\n terminal.writeln(chalk.red(`Version ${version} of ${packageName} is not installed`))\n terminal.writeln(chalk.yellow(`Installed versions: ${versions.join(', ')}`))\n return 1\n }\n\n // Uninstall each version\n for (const versionToUninstall of versionsToUninstall) {\n const versionPath = path.join(packageDir, versionToUninstall)\n const packagePath = path.join(versionPath, 'package.json')\n\n if (!await kernel.filesystem.fs.exists(packagePath)) {\n terminal.writeln(chalk.yellow(`Warning: package.json not found for ${packageName}@${versionToUninstall}, skipping binary unlinking`))\n } else {\n try {\n // Read package.json to find binaries to unlink\n const packageData = await kernel.filesystem.fs.readFile(packagePath, 'utf-8')\n const packageJson = JSON.parse(packageData)\n\n // Unlink binaries\n if (packageJson.bin) {\n if (typeof packageJson.bin === 'string') {\n const binPath = path.join('/usr/bin', packageJson.name)\n try {\n await kernel.filesystem.fs.unlink(binPath)\n terminal.writeln(chalk.blue(`Unlinked ${packageJson.name} from ${binPath}`))\n } catch (error) {\n // Binary might not exist or might not be a symlink, continue anyway\n terminal.writeln(chalk.yellow(`Warning: Could not unlink ${binPath}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n }\n } else if (typeof packageJson.bin === 'object') {\n for (const bin in packageJson.bin) {\n const binPath = path.join('/usr/bin', bin)\n try {\n await kernel.filesystem.fs.unlink(binPath)\n terminal.writeln(chalk.blue(`Unlinked ${bin} from ${binPath}`))\n } catch (error) {\n // Binary might not exist or might not be a symlink, continue anyway\n terminal.writeln(chalk.yellow(`Warning: Could not unlink ${binPath}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n }\n }\n }\n }\n } catch (error) {\n terminal.writeln(chalk.yellow(`Warning: Failed to read package.json for ${packageName}@${versionToUninstall}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n }\n }\n\n // Remove the package version directory\n try {\n await kernel.filesystem.fs.rm(versionPath, { recursive: true, force: true })\n terminal.writeln(chalk.green(`Uninstalled ${packageName}@${versionToUninstall}`))\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to remove ${versionPath}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n return 1\n }\n }\n\n // If all versions were uninstalled, remove the package directory\n const remainingVersions = await kernel.filesystem.fs.readdir(packageDir).catch(() => [])\n if (remainingVersions.length === 0) {\n try {\n await kernel.filesystem.fs.rmdir(packageDir)\n } catch {\n // Directory might not be empty or might have already been removed, that's okay\n terminal.writeln(chalk.yellow(`Warning: Could not remove package directory ${packageDir}`))\n }\n }\n\n return 0\n } catch (error) {\n terminal.writeln(chalk.red(`Failed to uninstall ${packageName}: ${error instanceof Error ? error.message : 'Unknown error'}`))\n return 1\n }\n}\n\nexport default uninstall\n\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ecmaos/kernel",
3
3
  "description": "ecmaOS: Micro-kernel and framework for web technologies",
4
- "version": "0.5.1",
4
+ "version": "0.6.2",
5
5
  "license": "MIT+Apache-2.0",
6
6
  "homepage": "https://ecmaos.sh",
7
7
  "repository": "https://github.com/ecmaos/ecmaos",
@@ -37,7 +37,9 @@
37
37
  "You can install any NPM package - e.g. 'install jquery'",
38
38
  "Use the 'news' command to see the latest news about ecmaOS",
39
39
  "Type 'ls /bin' to see all built-in commands",
40
- "Type 'ls /usr/bin' to see all installed commands"
40
+ "Type 'ls /usr/bin' to see all installed commands",
41
+ "You can set your environment variables in ~/.env (try setting PROMPT to a PS1-like format)",
42
+ "Try 'fetch /xkcd-os.sixel'"
41
43
  ],
42
44
  "type": "module",
43
45
  "files": [
@@ -134,7 +136,7 @@
134
136
  "vitest": "^2.1.2",
135
137
  "vitest-canvas-mock": "^0.3.3",
136
138
  "@ecmaos/config-typescript": "^0.2.0",
137
- "@ecmaos/types": "^0.4.0"
139
+ "@ecmaos/types": "^0.4.1"
138
140
  },
139
141
  "dependencies": {
140
142
  "@gera2ld/tarjs": "^0.3.1",
@@ -170,19 +172,20 @@
170
172
  "tslog": "^4.9.3",
171
173
  "wabt": "^1.0.36",
172
174
  "winbox": "^0.2.82",
175
+ "@ecmaos/coreutils": "^0.1.1",
173
176
  "@ecmaos-devices/audio": "^0.1.0",
174
177
  "@ecmaos-devices/battery": "^0.1.0",
175
178
  "@ecmaos-devices/bluetooth": "^0.1.0",
176
- "@ecmaos-devices/geo": "^0.1.0",
177
179
  "@ecmaos-devices/gamepad": "^0.1.0",
180
+ "@ecmaos-devices/geo": "^0.1.0",
178
181
  "@ecmaos-devices/gpu": "^0.1.0",
179
182
  "@ecmaos-devices/hid": "^0.1.0",
180
183
  "@ecmaos-devices/midi": "^0.1.0",
181
184
  "@ecmaos-devices/presentation": "^0.1.0",
182
185
  "@ecmaos-devices/sensors": "^0.1.0",
183
186
  "@ecmaos-devices/serial": "^0.1.0",
184
- "@ecmaos-devices/webgl": "^0.1.0",
185
187
  "@ecmaos-devices/usb": "^0.1.0",
188
+ "@ecmaos-devices/webgl": "^0.1.0",
186
189
  "@ecmaos/bios": "^0.2.0"
187
190
  },
188
191
  "resolutions": {