npm package: @ingeno/pipedream-services
Description: Service utilities for Clarity data integrations
Author: Ingeno
Latest version: 1.0.78

# @ingeno/pipedream-services

Service utilities for Clarity data integrations.

## Purpose

This package provides reusable service utilities for data integrations in the Clarity Pipedream project. It contains production-ready code that can be imported and used across different packages and deployed workflows.

## Features

- **AWS Services**: Partner Central client, cost explorer, organizations, and STS utilities
- **Zoho CRM**: Complete CRM client with authentication, field metadata, and record management
- **PostgreSQL**: Database connection, table management, and bulk operations
- **Collections**: Data transformation and schema generation utilities
- **Date/Time**: Date manipulation and formatting helpers
- **Streams**: Reactive data streaming utilities

## Usage

### Zoho CRM Integration

```javascript
import { ZohoCRMClient, ZohoAuth } from '@ingeno/pipedream-services'

const auth = new ZohoAuth(credentials)
const client = new ZohoCRMClient({
  accessToken: await auth.getAccessToken(),
  apiDomain: credentials.api_domain
})

const deals = await client.getDeals()
```

### PostgreSQL Operations

```javascript
import { fillTables, collectionsToTables } from '@ingeno/pipedream-services'

const tablesRows = collectionsToTables(collections)
await fillTables({
  auth: postgresCredentials,
  tablesRows,
  tablesPrefix: 'zoho_crm_'
})
```

### AWS Partner Central

```javascript
import { PartnerCentralClient } from '@ingeno/pipedream-services'

const client = new PartnerCentralClient({ credentials })
const opportunities = await client.listAllOpportunities()
```

## Installation

This package is published to npm and can be installed via:

```bash
npm install @ingeno/pipedream-services
# or
pnpm add @ingeno/pipedream-services
```

## Development

```bash
# Build the package
pnpm build

# Run tests
pnpm test

# Run tests with coverage
pnpm test:coverage

# Run tests in watch mode
pnpm test:watch

# Run tests with UI
pnpm test:ui

# Run tests with coverage and UI
pnpm test:coverage:ui

# Run tests with coverage and open report
pnpm test:coverage:open

# Lint code
pnpm lint

# Publish to npm
pnpm pub
```

## Code Coverage

The project includes comprehensive code coverage reporting with:

- **HTML Reports**: Navigate to `./coverage/index.html` after running `pnpm test:coverage`
- **Multiple Formats**: Text, HTML, JSON, and JSON-summary reports
- **Coverage Thresholds**: 70% minimum for branches, functions, lines, and statements
- **Detailed Analysis**: Line-by-line coverage information
- **Visual Interface**: Use `pnpm test:coverage:ui` for interactive coverage exploration

### Current Coverage Highlights

- **Collections Module**: 90.32% statement coverage with excellent test coverage
- **Converter Module**: 93.18% statement coverage with comprehensive type conversion tests
- **Collections-to-Table**: 100% statement coverage with complete edge case testing

### Coverage Configuration

Coverage is configured to:
- Use V8 coverage provider for accurate reporting
- Exclude test files, type definitions, and index files
- Generate reports in the `./coverage` directory
- Enforce quality thresholds to maintain code quality

## Architecture

This package contains only production code and is designed to be:

1. **Lightweight**: No test utilities or development dependencies
2. **Reusable**: Can be used across different packages and environments
3. **Well-typed**: Full TypeScript support with proper type definitions
4. **Modular**: Organized by service domain (AWS, Zoho, PostgreSQL, etc.)

## Exports

The package provides both named and namespace exports:

- `@ingeno/pipedream-services` - Main entry point
- `@ingeno/pipedream-services/aws` - AWS-specific utilities
- `@ingeno/pipedream-services/zoho` - Zoho CRM utilities
- `@ingeno/pipedream-services/date` - Date utilities

## License

MIT