lawkit-js
Version:
A Node.js wrapper for the lawkit CLI tool - statistical law analysis toolkit for fraud detection, data quality assessment, and audit compliance.
195 lines (145 loc) • 4.78 kB
Markdown
# lawkit-js
Node.js wrapper for the `lawkit` CLI tool - comprehensive statistical law analysis toolkit for fraud detection, data quality assessment, and business intelligence.
## Installation
```bash
npm install lawkit-js
```
Includes all platform binaries (universal bundle) - no download required.
### Supported Platforms
- **Linux**: x86_64
- **macOS**: x86_64 and Apple Silicon (ARM64)
- **Windows**: x86_64
All binaries are pre-bundled in the package for immediate use:
```
bin/
├── linux-x64/lawkit
├── darwin-x64/lawkit
├── darwin-arm64/lawkit
└── win32-x64/lawkit.exe
```
## Quick Start
### CLI Usage
```bash
# Fraud detection with Benford Law
lawkit benf financial-data.csv
# Business analysis with Pareto principle
lawkit pareto sales.csv --business-analysis
# Multi-law analysis
lawkit analyze data.csv --laws benf,pareto,zipf
# Data validation
lawkit validate data.csv --consistency-check
# Conflict diagnosis
lawkit diagnose data.csv --report detailed
# Generate test data
lawkit generate benf --count 1000 --output-file test-data.csv
```
### JavaScript API
```javascript
const { benford, pareto, zipf, normal, poisson, analyze, validate, diagnose, generate, list } = require('lawkit-js');
// Analyze array data
const numbers = [1, 10, 100, 1000, 2000];
const result = await benford(numbers, { output: 'json' });
console.log('Risk level:', result.risk_level);
// Analyze file data
const fileResult = await benford('data.csv', {
output: 'json',
confidence: 0.99
});
// Generate sample data
const sampleData = await generate('benf', {
count: 1000,
outputFile: 'sample.csv'
});
// Multi-law analysis
const analysisResult = await analyze('data.csv', {
output: 'json',
crossValidation: true
});
// Data validation
const validationResult = await validate('data.csv', {
consistencyCheck: true,
report: true
});
// List available laws
const availableLaws = await list({ output: 'json' });
```
## API Reference
### Analysis Functions
#### `benford(data, options)`
Analyze data using Benford's Law for fraud detection.
#### `pareto(data, options)`
Analyze data using the Pareto Principle for business insights.
#### `zipf(data, options)`
Analyze data using Zipf's Law for text and frequency analysis.
#### `normal(data, options)`
Analyze data using Normal Distribution for quality control.
#### `poisson(data, options)`
Analyze data using Poisson Distribution for event analysis.
#### `analyze(data, options)`
Perform comprehensive multi-law analysis.
#### `validate(data, options)`
Validate data quality using statistical tests.
#### `diagnose(data, options)`
Diagnose data anomalies and provide recommendations.
### Utility Functions
#### `generate(law, options)`
Generate sample data for testing statistical laws.
#### `list(options)`
List available statistical laws and commands.
#### `isLawkitAvailable()`
Check if the lawkit binary is available.
### Options
All analysis functions accept these common options:
```typescript
interface LawkitOptions {
output?: 'text' | 'json' | 'csv' | 'yaml' | 'toml' | 'xml';
minCount?: number;
confidence?: number;
sampleSize?: number;
minValue?: number;
quiet?: boolean;
verbose?: boolean;
outputFile?: string;
businessAnalysis?: boolean;
giniCoefficient?: boolean;
percentiles?: string;
crossValidation?: boolean;
consistencyCheck?: boolean;
confidenceLevel?: number;
report?: boolean;
}
```
## Error Handling
```javascript
const { benford, LawkitError } = require('lawkit-js');
try {
const result = await benford('data.csv', { output: 'json' });
console.log(result);
} catch (error) {
if (error instanceof LawkitError) {
console.error('lawkit error:', error.message);
console.error('Exit code:', error.exitCode);
console.error('stderr:', error.stderr);
} else {
console.error('Unexpected error:', error);
}
}
```
## Features
- **Universal Binary Support**: Automatic platform detection and binary download
- **Comprehensive API**: Full JavaScript API with TypeScript definitions
- **Statistical Laws**: Benford, Pareto, Zipf, Normal, Poisson distributions
- **Advanced Analysis**: Multi-law comparison, validation, diagnostics
- **Data Generation**: Create test datasets for validation
- **Multiple Output Formats**: JSON, CSV, YAML, TOML, XML support
- **Business Intelligence**: Built-in business analysis features
- **Cross-platform**: Linux, macOS (Intel & ARM), Windows support
## Requirements
- Node.js 12.0.0 or higher
- Internet connection for initial binary download
## License
MIT
## Links
- [GitHub Repository](https://github.com/kako-jun/lawkit)
- [Documentation](https://github.com/kako-jun/lawkit/tree/main/docs)
- [Issues](https://github.com/kako-jun/lawkit/issues)