๐Ÿšจ Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis โ†’
Socket
Book a DemoInstallSign in
Socket

@mornya/cli-libs

Package Overview
Dependencies
Maintainers
0
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mornya/cli-libs

The project of the utilities for CLI.

latest
Source
npmnpm
Version
0.21.0
Version published
Maintainers
0
Created
Source

CLI Libs

npm node types downloads license

The project of CLI tools for mornya libraries.

This project has been created by Vessel CLI. For a simple and quick reference about it, click here.

About

CLI ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“ˆ๋“ค์— ๋Œ€ํ•ด ์ง‘ํ•ฉ์ ์ธ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋˜๋Š” ํŒจํ‚ค์ง€.

Installation

ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉ ํ•  ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์˜์กด์„ฑ ๋ชจ๋“ˆ๋กœ ์„ค์น˜ํ•œ๋‹ค.

$ npm install --save @mornya/cli-libs
or
$ yarn add @mornya/cli-libs

Modules in the package

๋ณธ ํŒจํ‚ค์ง€์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ชจ๋“ˆ๋“ค์„ ํฌํ•จํ•œ๋‹ค.
์ œ๊ณต๋˜๋Š” ๋ชจ๋“ˆ๊ณผ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ๋ฒ• ๋“ฑ์€ ์ฝ”๋“œ ์Šค๋‹ˆํ•์„ ์ฐธ๊ณ ํ•œ๋‹ค.

Args module

ํ”„๋กœ์„ธ์Šค ์‹คํ–‰์‹œ ๋ช…๋ น์ค„๋ผ์ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์ •์ œํ•˜์—ฌ ์ œ๊ณตํ•œ๋‹ค.

// process.argv ์ปค๋งจ๋“œ๋ผ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐฐ์—ดํ™”ํ•˜์—ฌ ๋ฆฌํ„ด
function parse(): string[] {}
// ์ปค๋งจ๋“œ๋ผ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€ ๋ฆฌํ„ด
function has(name: HasName): boolean {}
// ์ปค๋งจ๋“œ๋ผ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’๋“ค์ด ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ชจ๋‘ ์ฒดํฌํ•˜์—ฌ ๋ฆฌํ„ด
function hasAll<Keys extends string, T = KeyValueFlag<Keys>>(names: HasName[]): T {}
// ์ปค๋งจ๋“œ๋ผ์ธ์—์„œ ์ˆ˜ํ–‰ํ•  ์•ก์…˜์— ๋Œ€ํ•œ ์ •์˜(actionMap)๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ž…๋ ฅ๋ฐ›์•„,
// ์ปค๋งจ๋“œ๋ผ์ธ ์˜ต์…˜(process.argv)์— ํ•ด๋‹นํ•˜๋Š” action์„ ๋ฐ˜ํ™˜
function getArguments<Keys extends string>(actionMap: ActionMap<Keys>): IArguments {}

Command module

ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ๊ด€๋ จ ๋ฉ”์†Œ๋“œ๋“ค์„ ์ œ๊ณตํ•œ๋‹ค.

// ๋™๊ธฐ์  ์ปค๋งจ๋“œ ์‹คํ–‰
function run(
  cmd: string,
  args: IArgs,
  executor?: (message: string, error?: Error) => void,
  hasOutput: boolean = true,
): boolean {}
// ๋™๊ธฐ์  ์ปค๋งจ๋“œ ์‹คํ–‰ ๋ฐ ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ด
function get(cmd: string, args: IArgs): string {}
// ํ”„๋กœ์ ํŠธ ๋‚ด ์‚ฌ์šฉ์ค‘์ธ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๊ฐ€ NPM ํ˜น์€ Yarn์ธ์ง€์˜ ์—ฌ๋ถ€ ๋ฆฌํ„ด
function getPackageManagerInfo(rootPath: string): IPackageManagerInfo {}

Files module

ํŒŒ์ผ์ฒ˜๋ฆฌ ๊ด€๋ จ ๋ฉ”์†Œ๋“œ๋“ค์„ ์ œ๊ณตํ•œ๋‹ค.

// ํŒŒ์ผ ๊ฒฝ๋กœ ๊ตฌ๋ถ„์ž๋ฅผ ์ •์ œ
function dir(...names: string[]): string {}
// ์ž…๋ ฅ๋œ GLOB ํ˜•ํƒœ์˜ ๊ฒฝ๋กœ ๋‚ด ๋งค์น˜๋˜๋Š” ํŒŒ์ผ๋ชฉ๋ก์„ ์ฐพ์•„ ๋ฆฌํ„ด
// ๋งค์น˜ ๋ณ„ ์ฝœ๋ฐฑํ•จ์ˆ˜ ์‹คํ–‰ ํ›„ false๋ฅผ ๋ฆฌํ„ดํ•˜๋ฉด ์ดํ›„ ๋งค์น˜ ๋ณ„ ์ฝœ๋ฐฑ์€ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค
function getGlob(
  globPath: GlobPath,
  callback: ((item: string, index: number) => boolean | void) = () => {},
): string[] {}
// ํ”„๋กœ์ ํŠธ ์‹ค๊ฒฝ๋กœ ๋ฆฌํ„ด
function getRealPath(): string {}
// ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ๋ถ€ํ„ฐ resolve๋œ ๊ฒฝ๋กœ๋ฅผ ๋ฆฌํ„ด
function resolvePath(...args: string[]): string {}
// ์ž…๋ ฅ ๋””๋ ‰ํ† ๋ฆฌ ํฌํ•จ ๋ชจ๋“  ํ•˜์œ„ ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ (rm -rf)
function rimraf(globPath: GlobPath): string[] {}
// ์ž…๋ ฅ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด ๋ชจ๋“  ํ•˜์œ„ ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ
function emptyDir(globPath: GlobPath): string[] {}
// ๋””๋ ‰ํ† ๋ฆฌ ํŠธ๋ฆฌ ์ƒ์„ฑ
function mkdirs(dirName: string): void {}
// ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ์ด๋™
function move(srcGlobPath: GlobPath, destPath: string): string[] {}
// ์ผ๋ฐ˜/์‹ฌ๋ณผ๋ฆญ๋งํฌ๋กœ ๋Œ€์ƒ ํŒŒ์ผ ๋ณต์‚ฌ
function copy(
  srcGlobPath: GlobPath,
  destPath: string,
  isSymlink: boolean = false,
): string[] {}
// ์˜ˆ์™ธ ๋””๋ ‰ํ† ๋ฆฌ/ํŒŒ์ผ์„ ์ œ์™ธํ•œ ๋ณต์‚ฌ
function copyDir(
  srcGlobPath: GlobPath,
  destPath: string,
  exceptFiles: string[] = [],
): string[] {}
// ๋””๋ ‰ํ† ๋ฆฌ/ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€ ๋ฆฌํ„ด
function isExist(dirName: string): boolean {}
// ์ž…๋ ฅ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด ๋””๋ ‰ํ† ๋ฆฌ/ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€ ๋ฆฌํ„ด
function isEmptyDir(dirName: string): boolean {}
// ์ž…๋ ฅ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด ๋””๋ ‰ํ† ๋ฆฌ/ํŒŒ์ผ ๋ชฉ๋ก์„ ๋ฆฌํ„ด
function list(dirName: string): string[] {}
// ํ…์ŠคํŠธ ํŒŒ์ผ ์ปจํ…์ธ ๋ฅผ ์ฝ์–ด ๋ฆฌํ„ด
function read(fileName: string): string {}
// ํ…์ŠคํŠธ ํŒŒ์ผ ์ปจํ…์ธ ๋ฅผ ์ฝ์–ด JSON ํ˜•ํƒœ๋กœ ๋ฆฌํ„ด
function readJSON<T = {}>(fileName: string): T {}
// ๋ฌธ์ž์—ด์„ ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ์ €์žฅ
function write(fileName: string, value: string): void {}
// ๊ฐ์ฒด๋ฅผ Prettified JSON ํ˜•ํƒœ๋กœ ์ €์žฅ
function writePrettyJSON(
  fileName: string,
  value: {},
  maxLineLength: number = 1,
): void {}
// ์ž…๋ ฅํ•œ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด ๋””๋ ‰ํ† ๋ฆฌ/ํŒŒ์ผ ๋ชฉ๋ก์„ ์–ป๊ณ  ํ•ด๋‹น ์•„์ดํ…œ์— ๋Œ€ํ•ด ์ฝœ๋ฐฑ ์‹คํ–‰
function getDirectoryFiles(
  dirName: string,
  executor: (isDir: boolean, relPath: string, currDir: string, file: string) => boolean | void,
): void {}
// ์ž…๋ ฅ๋œ targetPaths ์ค‘์— ์กด์žฌํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ/ํŒŒ์ผ(glob ํ˜•ํƒœ ๊ฐ€๋Šฅ)์ด ์žˆ๋Š” ๋ชฉ๋ก๋งŒ ๊ณจ๋ผ์„œ ๋ฆฌํ„ด
function getFilteredExistPaths(
  rootPath: string,
  targetPathList: string[] = [],
  isOnly: boolean = false,
): string[] {}
// ํ”„๋กœ์ ํŠธ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ฐ€์ ธ์˜ค๋Š” ์šฉ๋„. ๋กœ๋“œ๋˜๋Š” ์œ„์น˜๋ณ„ ์ˆœ์„œ:
//   1. "[rootPath]/package.json > [name]" ํ•ญ๋ชฉ
//   2. "[rootPath]/[filename]" ([filename] ์ง€์ •์‹œ)
//   3. "[rootPath]/[name].config.*"
function getConfig<T>(
  rootPath: string,
  name: string,
  filename?: string,
): GetConfig<T> {}

Icons module

OS์— ๋งž๊ฒŒ ๋ณ€ํ™˜๋œ ์ถœ๋ ฅ์šฉ ์ด๋ชจํ‹ฐ์ฝ˜์„ ์ œ๊ณตํ•œ๋‹ค.

import { Icons } from '@mornya/cli-libs';
// ์•„์ด์ฝ˜ ์ถœ๋ ฅ
console.log(Icons.icon.okay);

Key module

์ฝ˜์†”์—์„œ ๊ฐ„๋‹จํ•œ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ๊ด€๋ จ ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

// ํ‘œ์ค€์ž…๋ ฅ์„ ํ†ตํ•ด ํ‚ค์ž…๋ ฅ ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ ์ฝœ๋ฐฑ ์‹คํ–‰
function pressed(callback: Callback): void {}

Log module

์ฝ˜์†” ๋กœ๊ทธ ๊ด€๋ จ ๋ฉ”์†Œ๋“œ๋“ค์„ ์ œ๊ณตํ•œ๋‹ค.

// ๋กœ๊ฑฐ ์„ค์ •
function setLogger(logger: (...args: any[]) => any): void {}
// CLI์—์„œ ์ปค์„œ๋ฅผ ๋ณด์ด๊ฒŒ ์ฒ˜๋ฆฌ
function showCursor(): void {}
// CLI์—์„œ ์ปค์„œ๋ฅผ ์•ˆ๋ณด์ด๊ฒŒ ์ฒ˜๋ฆฌ
function hideCursor(): void {}
// CLI์—์„œ ์ค„๋ฐ”๊ฟˆ ์ฒ˜๋ฆฌ
function linefeed(): void {}
// ์ผ๋ฐ˜ ๋กœ๊ทธ ์ถœ๋ ฅ
function out(message?: any, ...optionalParams: any[]): void {}
// ์ •๋ณด์„ฑ ๋กœ๊ทธ ์ถœ๋ ฅ
function info(message?: any, ...optionalParams: any[]): void {}
// ๋‹จ๊ณ„ ๋กœ๊ทธ ์ถœ๋ ฅ
function progress(message: string, ...optionalParams: any[]): void {}
// ๊ฐœ๋ฐœ์šฉ ๋กœ๊ทธ ์ถœ๋ ฅ
function devOnly(message?: string, ...optionalParams: any[]): void {}
// ์›Œ์น˜ ๋กœ๊ทธ ์ถœ๋ ฅ
function watch(message?: any, ...optionalParams: any[]): void {}
// ๋””๋ฒ„๊ทธ ๋กœ๊ทธ ์ถœ๋ ฅ
function debug(message?: any, ...optionalParams: any[]): void {}
// ๊ฒฝ๊ณ  ๋กœ๊ทธ ์ถœ๋ ฅ
function warn(message?: any, ...optionalParams: any[]): void {}
// ์˜ค๋ฅ˜ ๋กœ๊ทธ ์ถœ๋ ฅ
function error(message?: any, ...optionalParams: any[]): void {}
// ์ •์ƒ ๋กœ๊ทธ ์ถœ๋ ฅ
function okay(message?: string, ...optionalParams: any[]): void {}
// ์ด์ƒ ๋กœ๊ทธ ์ถœ๋ ฅ
function bad(message?: string, ...optionalParams: any[]): void {}
// ์„ฑ๊ณต ๋กœ๊ทธ ์ถœ๋ ฅ
function success(message?: string, ...optionalParams: any[]): void {}
// ์‹คํŒจ ๋กœ๊ทธ ์ถœ๋ ฅ
function failure(message?: string, ...optionalParams: any[]): void {}

Minify module

uglify-es ๋””ํŽœ๋˜์‹œ๋ฅผ ์ด์šฉํ•˜์—ฌ *.js, *.mjs ํŒŒ์ผ๋“ค์— ๋Œ€ํ•œ minification์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

// Minification ์ˆ˜ํ–‰
function run(buildPath: string, options?: Options): Result {}

Upgrade module

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜ํ–‰ ์ค‘์— ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ ๋””ํŽœ๋˜์‹œ๋ฅผ ์ฒดํฌํ•˜์—ฌ ์ข…๋ฃŒ ์ „์— ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ ๋“ฑ์„ ์ œ๊ณตํ•œ๋‹ค.

// NPM registry์—์„œ ํ˜„์žฌ ํŒจํ‚ค์ง€์˜ ์ตœ์‹ ๋ฒ„์ „์„ ๊ฒ€์ƒ‰ (npm)
function checkLazyNpm(dep: string): Promise<string> {}
// NPM registry์—์„œ ํ˜„์žฌ ํŒจํ‚ค์ง€์˜ ์ตœ์‹ ๋ฒ„์ „์„ ๊ฒ€์ƒ‰ (yarn)
function checkLazyYarn(dep: string): Promise<string> {}
// NPM registry์—์„œ ์ตœ์‹ ๋ฒ„์ „์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์ „์— ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ
function checkLazyEmitBeforeExit(
  dep: string,
  currentVersion: string,
  option?: CheckLazyEmitBeforeExitOption,
): void {}

Utils module

๊ธฐํƒ€ ์œ ํ‹ธ์„ฑ ์ฒ˜๋ฆฌ ๋ฉ”์†Œ๋“œ๋“ค์„ ์ œ๊ณตํ•œ๋‹ค.

// baseArray ๋‚ด ํ•ญ๋ชฉ๋“ค ์ค‘ dataArray ๋‚ด ํ•ญ๋ชฉ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ œ๊ฑฐ
function removeArrayDups(
  baseArray: string[] | undefined,
  dataArray: string[] = [],
): string[] | undefined {}
// ๊ฐ์ฒดํƒ€์ž…์œผ๋กœ ๋„˜์–ด์˜จ ํŒŒ๋ผ๋ฏธํ„ฐ obj๊ฐ€ ๊ฐ’์ด ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌ
// ์กด์žฌํ•  ๊ฒฝ์šฐ truthy|obj, ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ falsy|undefined ๋ฆฌํ„ด
function hasProps<OT = any, TT = OT, FT = OT>(
  obj: OT,
  truthyValue?: TT,
  falsyValue?: FT,
): OT | TT | FT | undefined {}
// base64 ๋“ฑ์œผ๋กœ ์ธ์ฝ”๋”ฉ ๋œ data uri ๋“ฑ์˜ ํ˜•ํƒœ(ex: ์ด๋ฏธ์ง€)๋ฅผ
// ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด UInt8Array ํƒ€์ž…์œผ๋กœ ๋ฆฌํ„ด.
// ๋ฆฌํ„ด๋œ ๊ฐ’์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ, fs.writeFileSync ๋“ฑ์œผ๋กœ ๋ฐ”๋กœ ์ €์žฅ ๊ฐ€๋Šฅ.
function uri2binary(data: string | undefined = ''): Uint8Array {}

Version module

๋ฒ„์ „ ์ฒดํฌ ๋“ฑ ๋ฉ”์†Œ๋“œ๋“ค์„ ์ œ๊ณตํ•œ๋‹ค.

// SEMVER ํ˜•ํƒœ์˜ ๋ฒ„์ „์„ ์„œ๋กœ ๋น„๊ตํ•˜์—ฌ ํ”Œ๋ž˜๊ทธ ๊ฐ’์„ ๋ฆฌํ„ด
function check(baseVersion: string, currVersion: string): -1 | 0 | 1 {}

Chalk library

ํ„ฐ๋ฏธ๋„ ์Šคํƒ€์ผ๋ง์„ ์œ„ํ•œ chalk ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

Change Log

ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ CHANGELOG.md ํŒŒ์ผ ์ฐธ์กฐ.

License

ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ LICENSE ํŒŒ์ผ ์ฐธ์กฐ.

Keywords

mornya

FAQs

Package last updated on 25 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts