open-index/open-npm huggingface dataset:
npm package: @masuidrive/procman
Description: A lightweight process management daemon tool for development environments
Author: masuidrive
Latest version: 0.3.0

# @masuidrive/procman

[![npm version](https://badge.fury.io/js/@masuidrive%2Fprocman.svg)](https://www.npmjs.com/package/@masuidrive/procman)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org/)

Node.jsベースのプロセス管理デーモンツール。開発環境における複数のサーバープロセスを統合的に管理し、開発者の生産性向上を目的とする。pm2の軽量版として、開発に必要な最小限の機能に絞って実装。

## 概要

procmanは、開発環境でのプロセス管理を簡単にするためのCLIツールです。Unix Domain Socket（Linux/macOS）またはNamed Pipe（Windows）を使用してデーモンプロセスと通信し、複数のアプリケーションプロセスを効率的に管理します。

## 主要機能

- プロセスのライフサイクル管理（起動、停止、再起動）
- 設定ファイルベースの一括管理
- 構造化されたログの集約と管理
- メモリ使用量によるプロセス自動再起動
- namespaceによるプロセスのグループ管理
- メモリリーク検出と防止機能

## インストール

### npmから公開パッケージをインストール

```bash
# グローバルインストール（CLIとして使用）
npm install -g @masuidrive/procman

# ローカルプロジェクトにインストール
npm install @masuidrive/procman
```

### 使用方法

グローバルインストール後、`procman`コマンドが使用可能になります：

```bash
# ヘルプを表示
procman --help

# バージョンを表示
procman --version

# プロセス状態を表示
procman status

# 設定ファイルを使ってプロセスを起動
procman start <service-name>

# プロセスを停止
procman stop <service-name>

# ヘルスチェック（メモリ使用状況含む）
procman health
```

## サポートOS

- Linux（完全サポート）
- macOS（完全サポート）
- Windows（基本サポート）

## 設定ファイル例

procmanは設定ファイルを使用してプロセスを管理します：

```javascript
// procman.config.js
module.exports = {
  apps: [{
    name: 'my-app',
    script: './app.js',
    max_memory_restart: '500M'  // 500MB超過で自動再起動
  }]
};
```

### メモリ管理機能

procmanはPM2互換のメモリ管理機能を提供し、長期稼働でも安定した動作を実現します：

- **プロセスメモリ制限**: `max_memory_restart` オプションでプロセス毎のメモリ上限を設定
- **自動再起動**: メモリ制限を超えたプロセスを自動的に再起動
- **EventEmitterリーク防止**: シンプルなクリーンアップパターンで確実なリスナー解放
- **グレースフルシャットダウン**: 状態保存とコネクションドレイニング
- **ヘルスチェック**: `procman health` でメモリ使用状況を監視

詳細は [Memory Management Documentation](docs/technical/memory-management.md) を参照してください。

## 開発者向け情報

### 開発環境セットアップ

#### 必要な環境

- Node.js 18.x LTS

#### ローカル開発

```bash
# リポジトリをクローン
git clone <repository-url>
cd procman

# 依存関係をインストール
npm install

# プロジェクトをビルド
npm run build

# ローカルでテスト使用
npm link
procman --help
```

#### 利用可能なスクリプト

- `npm run build` - TypeScriptをJavaScriptにコンパイル
- `npm run dev` - 開発モードでCLIを実行
- `npm run clean` - ビルド成果物を削除
- `npm run test` - テストをウォッチモードで実行
- `npm run test:run` - テストを一度実行
- `npm run test:coverage` - カバレッジレポート付きでテスト実行
- `npm run lint` - ESLintを実行
- `npm run lint:fix` - ESLintで自動修正
- `npm run format` - Prettierでコードフォーマット
- `npm run format:check` - コードフォーマットをチェック

### アーキテクチャ

このCLIツールは以下で構築されています：

- **TypeScript** - 型安全性とモダンなJavaScript機能
- **Commander.js** - CLIフレームワーク
- **Vitest** - テストフレームワーク
- **ESLint + Prettier** - コード品質とフォーマット

### 開発

プロジェクトは厳密なTypeScript設定に従い、コード品質のためESLintとPrettierを使用しています。全てのコミットはリントとフォーマットチェックを通す必要があります。

```bash
# 全てのチェックを実行
./bin/test-unit.sh
./bin/test-integration.sh
```

このプロジェクトは devcontainer を使用して開発します。詳細は `./bin/README.md` を参照してください。
npm package: @masum-xyz/terbilang
Description: Konversi angka ke terbilang Bahasa Indonesia dengan dukungan style (lower, upper, sentence, title), minus, dan koma/desimal.
Author: Masum
Latest version: 1.1.1

# @masum-xyz/terbilang

[![npm version](https://img.shields.io/npm/v/@masum-xyz/terbilang.svg)](https://www.npmjs.com/package/@masum-xyz/terbilang)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)

Konversi angka ke terbilang Bahasa Indonesia. Mendukung style output, angka negatif, angka desimal (koma), dan bisa dipakai di Node.js, ESM, maupun langsung di browser via CDN.

---

## ✨ Fitur
- Ubah angka ke teks Bahasa Indonesia  
  Contoh: `1057` → "Seribu Lima Puluh Tujuh"
- Style hasil: `sentence` | `title` | `upper` | `lower`
- Angka minus: `-42` → "Minus Empat Puluh Dua"
- Angka desimal: `1870.57` → "Seribu Delapan Ratus Tujuh Puluh koma lima tujuh"
- Bisa dipakai di:
  - Node.js (CommonJS `require`)
  - ESM (`import`)
  - CDN (browser, global `terbilang`)

---

## 📦 Instalasi

### Via npm
```bash
npm install @masum-xyz/terbilang
```

### Via CDN (Browser)
Tambahkan script berikut ke halaman HTML Anda:
```html
<script src="https://cdn.jsdelivr.net/npm/@masum-xyz/terbilang/index.js"></script>
```
Setelah itu akan tersedia fungsi global `terbilang()` di window.

---

## 🚀 Penggunaan

### Node.js (CommonJS)
```js
const terbilang = require('@masum-xyz/terbilang');

console.log(terbilang(1870.57));
// Seribu Delapan Ratus Tujuh Puluh koma lima tujuh

console.log(terbilang(1870.57, 'title'));
// Seribu Delapan Ratus Tujuh Puluh Koma Lima Tujuh

console.log(terbilang(-42, 'upper'));
// MINUS EMPAT PULUH DUA
```

### ESM (import)
```js
import terbilang from '@masum-xyz/terbilang';

console.log(terbilang(1057));
// Seribu Lima Puluh Tujuh

console.log(terbilang(1057, 'sentence'));
// Seribu lima puluh tujuh
```

### Browser via CDN
Demo : https://codepen.io/Moh-Masum/pen/EaKdXJO

---

## 📄 Lisensi
MIT © 2025 Moh Masum Safrulihsan

---

## 🔗 Tautan
- npm: https://www.npmjs.com/package/@masum-xyz/terbilang
- Issue/Bug: Silakan buka issue di repository ini.