@qodalis/angular-cli
Version:
A lightweight and flexible command-line interface (CLI) tool designed to streamline workflows and automate tasks for developers.
81 lines • 11.9 kB
JavaScript
import { CliForegroundColor, CliIcon, DefaultLibraryAuthor, } from '@qodalis/cli-core';
import { LIBRARY_VERSION as Core_Version } from '@qodalis/cli-core';
import { LIBRARY_VERSION as CLI_Version } from '../../../version';
export class CliUnameCommandProcessor {
constructor() {
this.command = 'uname';
this.description = 'Prints detailed system and browser information';
this.author = DefaultLibraryAuthor;
this.metadata = {
sealed: true,
icon: CliIcon.Flame,
module: 'misc',
};
}
async processCommand(_, context) {
const { writer } = context;
function writeItem(key, value) {
writer.writeln(`- ${writer.wrapInColor(key, CliForegroundColor.Cyan)}: ${value}`);
}
writer.writeInfo('CLI:');
writeItem('Core version', Core_Version);
writeItem('Cli version', CLI_Version);
writer.writeln();
if (typeof navigator !== 'undefined') {
writer.writeInfo('Browser Information:');
writeItem('User Agent', navigator.userAgent);
writeItem('Language', navigator.language);
writeItem('Platform', navigator.platform);
// Extracting more detailed information from userAgent
const browserDetails = this.parseUserAgent(navigator.userAgent);
writeItem('Browser', browserDetails.browserName);
writeItem('Version', browserDetails.version);
writeItem('OS', browserDetails.os);
}
else {
writer.writeError('Browser information is not available in this environment.');
}
}
parseUserAgent(userAgent) {
let browserName = 'Unknown';
let version = 'Unknown';
let os = 'Unknown';
// Simple parsing logic for demonstration purposes
if (userAgent.includes('Chrome')) {
browserName = 'Chrome';
version = userAgent.match(/Chrome\/([\d.]+)/)?.[1] || 'Unknown';
}
else if (userAgent.includes('Firefox')) {
browserName = 'Firefox';
version = userAgent.match(/Firefox\/([\d.]+)/)?.[1] || 'Unknown';
}
else if (userAgent.includes('Safari') &&
!userAgent.includes('Chrome')) {
browserName = 'Safari';
version = userAgent.match(/Version\/([\d.]+)/)?.[1] || 'Unknown';
}
else if (userAgent.includes('MSIE') ||
userAgent.includes('Trident')) {
browserName = 'Internet Explorer';
version =
userAgent.match(/(?:MSIE |rv:)([\d.]+)/)?.[1] || 'Unknown';
}
if (userAgent.includes('Windows')) {
os = 'Windows';
}
else if (userAgent.includes('Mac OS')) {
os = 'Mac OS';
}
else if (userAgent.includes('Linux')) {
os = 'Linux';
}
else if (userAgent.includes('Android')) {
os = 'Android';
}
else if (userAgent.includes('iPhone') || userAgent.includes('iPad')) {
os = 'iOS';
}
return { browserName, version, os };
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXVuYW1lLWNvbW1hbmQtcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpL3NyYy9saWIvY2xpL3Byb2Nlc3NvcnMvbWlzYy9jbGktdW5hbWUtY29tbWFuZC1wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGtCQUFrQixFQUNsQixPQUFPLEVBR1Asb0JBQW9CLEdBR3ZCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsSUFBSSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxJQUFJLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxFLE1BQU0sT0FBTyx3QkFBd0I7SUFBckM7UUFDSSxZQUFPLEdBQUcsT0FBTyxDQUFDO1FBRWxCLGdCQUFXLEdBQ1AsZ0RBQWdELENBQUM7UUFFckQsV0FBTSxHQUFHLG9CQUFvQixDQUFDO1FBRTlCLGFBQVEsR0FBc0M7WUFDMUMsTUFBTSxFQUFFLElBQUk7WUFDWixJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDbkIsTUFBTSxFQUFFLE1BQU07U0FDakIsQ0FBQztJQW9GTixDQUFDO0lBbEZHLEtBQUssQ0FBQyxjQUFjLENBQ2hCLENBQW9CLEVBQ3BCLE9BQTZCO1FBRTdCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFM0IsU0FBUyxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQWE7WUFDekMsTUFBTSxDQUFDLE9BQU8sQ0FDVixLQUFLLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUNwRSxDQUFDO1FBQ04sQ0FBQztRQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsU0FBUyxDQUFDLGNBQWMsRUFB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QVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25FLEVBQUUsR0FBRyxLQUFLLENBQUM7U0FDZDtRQUVELE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ3hDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2xpRm9yZWdyb3VuZENvbG9yLFxuICAgIENsaUljb24sXG4gICAgQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgQ2xpUHJvY2Vzc29yTWV0YWRhdGEsXG4gICAgRGVmYXVsdExpYnJhcnlBdXRob3IsXG4gICAgSUNsaUNvbW1hbmRQcm9jZXNzb3IsXG4gICAgSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG59IGZyb20gJ0Bxb2RhbGlzL2NsaS1jb3JlJztcbmltcG9ydCB7IExJQlJBUllfVkVSU0lPTiBhcyBDb3JlX1ZlcnNpb24gfSBmcm9tICdAcW9kYWxpcy9jbGktY29yZSc7XG5pbXBvcnQgeyBMSUJSQVJZX1ZFUlNJT04gYXMgQ0xJX1ZlcnNpb24gfSBmcm9tICcuLi8uLi8uLi92ZXJzaW9uJztcblxuZXhwb3J0IGNsYXNzIENsaVVuYW1lQ29tbWFuZFByb2Nlc3NvciBpbXBsZW1lbnRzIElDbGlDb21tYW5kUHJvY2Vzc29yIHtcbiAgICBjb21tYW5kID0gJ3VuYW1lJztcblxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgICAgJ1ByaW50cyBkZXRhaWxlZCBzeXN0ZW0gYW5kIGJyb3dzZXIgaW5mb3JtYXRpb24nO1xuXG4gICAgYXV0aG9yID0gRGVmYXVsdExpYnJhcnlBdXRob3I7XG5cbiAgICBtZXRhZGF0YT86IENsaVByb2Nlc3Nvck1ldGFkYXRhIHwgdW5kZWZpbmVkID0ge1xuICAgICAgICBzZWFsZWQ6IHRydWUsXG4gICAgICAgIGljb246IENsaUljb24uRmxhbWUsXG4gICAgICAgIG1vZHVsZTogJ21pc2MnLFxuICAgIH07XG5cbiAgICBhc3luYyBwcm9jZXNzQ29tbWFuZChcbiAgICAgICAgXzogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcblxuICAgICAgICBmdW5jdGlvbiB3cml0ZUl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgIGAtICR7d3JpdGVyLndyYXBJbkNvbG9yKGtleSwgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfTogJHt2YWx1ZX1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdyaXRlci53cml0ZUluZm8oJ0NMSTonKTtcbiAgICAgICAgd3JpdGVJdGVtKCdDb3JlIHZlcnNpb24nLCBDb3JlX1ZlcnNpb24pO1xuICAgICAgICB3cml0ZUl0ZW0oJ0NsaSB2ZXJzaW9uJywgQ0xJX1ZlcnNpb24pO1xuXG4gICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB3cml0ZXIud3JpdGVJbmZvKCdCcm93c2VyIEluZm9ybWF0aW9uOicpO1xuXG4gICAgICAgICAgICB3cml0ZUl0ZW0oJ1VzZXIgQWdlbnQnLCBuYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgICAgICAgICAgIHdyaXRlSXRlbSgnTGFuZ3VhZ2UnLCBuYXZpZ2F0b3IubGFuZ3VhZ2UpO1xuICAgICAgICAgICAgd3JpdGVJdGVtKCdQbGF0Zm9ybScsIG5hdmlnYXRvci5wbGF0Zm9ybSk7XG5cbiAgICAgICAgICAgIC8vIEV4dHJhY3RpbmcgbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBmcm9tIHVzZXJBZ2VudFxuICAgICAgICAgICAgY29uc3QgYnJvd3NlckRldGFpbHMgPSB0aGlzLnBhcnNlVXNlckFnZW50KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgICAgICAgICAgd3JpdGVJdGVtKCdCcm93c2VyJywgYnJvd3NlckRldGFpbHMuYnJvd3Nlck5hbWUpO1xuICAgICAgICAgICAgd3JpdGVJdGVtKCdWZXJzaW9uJywgYnJvd3NlckRldGFpbHMudmVyc2lvbik7XG4gICAgICAgICAgICB3cml0ZUl0ZW0oJ09TJywgYnJvd3NlckRldGFpbHMub3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd3JpdGVyLndyaXRlRXJyb3IoXG4gICAgICAgICAgICAgICAgJ0Jyb3dzZXIgaW5mb3JtYXRpb24gaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIGVudmlyb25tZW50LicsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFyc2VVc2VyQWdlbnQodXNlckFnZW50OiBzdHJpbmcpOiB7XG4gICAgICAgIGJyb3dzZXJOYW1lOiBzdHJpbmc7XG4gICAgICAgIHZlcnNpb246IHN0cmluZztcbiAgICAgICAgb3M6IHN0cmluZztcbiAgICB9IHtcbiAgICAgICAgbGV0IGJyb3dzZXJOYW1lID0gJ1Vua25vd24nO1xuICAgICAgICBsZXQgdmVyc2lvbiA9ICdVbmtub3duJztcbiAgICAgICAgbGV0IG9zID0gJ1Vua25vd24nO1xuXG4gICAgICAgIC8vIFNpbXBsZSBwYXJzaW5nIGxvZ2ljIGZvciBkZW1vbnN0cmF0aW9uIHB1cnBvc2VzXG4gICAgICAgIGlmICh1c2VyQWdlbnQuaW5jbHVkZXMoJ0Nocm9tZScpKSB7XG4gICAgICAgICAgICBicm93c2VyTmFtZSA9ICdDaHJvbWUnO1xuICAgICAgICAgICAgdmVyc2lvbiA9IHVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lXFwvKFtcXGQuXSspLyk/LlsxXSB8fCAnVW5rbm93bic7XG4gICAgICAgIH0gZWxzZSBpZiAodXNlckFnZW50LmluY2x1ZGVzKCdGaXJlZm94JykpIHtcbiAgICAgICAgICAgIGJyb3dzZXJOYW1lID0gJ0ZpcmVmb3gnO1xuICAgICAgICAgICAgdmVyc2lvbiA9IHVzZXJBZ2VudC5tYXRjaCgvRmlyZWZveFxcLyhbXFxkLl0rKS8pPy5bMV0gfHwgJ1Vua25vd24nO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdXNlckFnZW50LmluY2x1ZGVzKCdTYWZhcmknKSAmJlxuICAgICAgICAgICAgIXVzZXJBZ2VudC5pbmNsdWRlcygnQ2hyb21lJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBicm93c2VyTmFtZSA9ICdTYWZhcmknO1xuICAgICAgICAgICAgdmVyc2lvbiA9IHVzZXJBZ2VudC5tYXRjaCgvVmVyc2lvblxcLyhbXFxkLl0rKS8pPy5bMV0gfHwgJ1Vua25vd24nO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdXNlckFnZW50LmluY2x1ZGVzKCdNU0lFJykgfHxcbiAgICAgICAgICAgIHVzZXJBZ2VudC5pbmNsdWRlcygnVHJpZGVudCcpXG4gICAgICAgICkge1xuICAgICAgICAgICAgYnJvd3Nlck5hbWUgPSAnSW50ZXJuZXQgRXhwbG9yZXInO1xuICAgICAgICAgICAgdmVyc2lvbiA9XG4gICAgICAgICAgICAgICAgdXNlckFnZW50Lm1hdGNoKC8oPzpNU0lFIHxydjopKFtcXGQuXSspLyk/LlsxXSB8fCAnVW5rbm93bic7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodXNlckFnZW50LmluY2x1ZGVzKCdXaW5kb3dzJykpIHtcbiAgICAgICAgICAgIG9zID0gJ1dpbmRvd3MnO1xuICAgICAgICB9IGVsc2UgaWYgKHVzZXJBZ2VudC5pbmNsdWRlcygnTWFjIE9TJykpIHtcbiAgICAgICAgICAgIG9zID0gJ01hYyBPUyc7XG4gICAgICAgIH0gZWxzZSBpZiAodXNlckFnZW50LmluY2x1ZGVzKCdMaW51eCcpKSB7XG4gICAgICAgICAgICBvcyA9ICdMaW51eCc7XG4gICAgICAgIH0gZWxzZSBpZiAodXNlckFnZW50LmluY2x1ZGVzKCdBbmRyb2lkJykpIHtcbiAgICAgICAgICAgIG9zID0gJ0FuZHJvaWQnO1xuICAgICAgICB9IGVsc2UgaWYgKHVzZXJBZ2VudC5pbmNsdWRlcygnaVBob25lJykgfHwgdXNlckFnZW50LmluY2x1ZGVzKCdpUGFkJykpIHtcbiAgICAgICAgICAgIG9zID0gJ2lPUyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBicm93c2VyTmFtZSwgdmVyc2lvbiwgb3MgfTtcbiAgICB9XG59XG4iXX0=