@ecmaos/kernel 0.2.8 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.vite/manifest.json +20 -20
- package/dist/{empty--zdtkf0T.js → __vite-browser-external-ZgWJ_FY-.js} +50819 -55143
- package/dist/__vite-browser-external-ZgWJ_FY-.js.map +1 -0
- package/dist/{browser-D_CtuxSB.js → browser-Bnkgx7wL.js} +7 -4
- package/dist/{browser-D_CtuxSB.js.map → browser-Bnkgx7wL.js.map} +1 -1
- package/dist/favicon.ico +0 -0
- package/dist/icon.jpg +0 -0
- package/dist/icon.png +0 -0
- package/dist/initfs/usr/share/licenses/zenfs/COPYRIGHT.txt +3 -0
- package/dist/initfs/usr/share/licenses/zenfs/LICENSE.md +157 -0
- package/dist/initfs.tar.gz +0 -0
- package/dist/{install-Ds1oWgTf.js → install-BWxc1crE.js} +9 -7
- package/dist/install-BWxc1crE.js.map +1 -0
- package/dist/kernel.d.ts +4 -2
- package/dist/kernel.js +1 -1
- package/dist/{topbar.min-CDkSVOxV.js → topbar.min-DHDDU9sh.js} +15 -11
- package/dist/{topbar.min-CDkSVOxV.js.map → topbar.min-DHDDU9sh.js.map} +1 -1
- package/dist/ui.js +1 -1
- package/package.json +9 -7
- package/LICENSE +0 -7
- package/dist/empty--zdtkf0T.js.map +0 -1
- package/dist/install-Ds1oWgTf.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install-Ds1oWgTf.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]\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.green(`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.green(`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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"}
|