Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Publish to npm

permissions:
contents: read
id-token: write # Required for provenance

on:
release:
Expand Down Expand Up @@ -32,7 +33,7 @@ jobs:
run: pnpm run ci

- name: Publish to npm
run: pnpm publish --no-git-checks
run: pnpm publish --no-git-checks --provenance
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

Expand Down
56 changes: 40 additions & 16 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -1,39 +1,63 @@
# Source files
# Source files (already compiled to dist/)
src/
__tests__/
samples/
docs/

# Build artifacts
coverage/
*.tsbuildinfo
.turbo/

# Development files
.github/
.husky/
.vscode/
.idea/
*.log
*.test.ts
*.spec.ts
*.test.js
*.spec.js
*.test.d.ts
*.spec.d.ts

# Config files
tsconfig.json
vitest.config.ts
eslint.config.js
.nvmrc
.prettierrc
.prettierignore
.editorconfig
.nvmrc
eslint.config.js
vitest.config.ts
tsconfig.json

# CI/CD
.github/
# Git
.git/
.gitignore
.husky/
.gitattributes

# Development
coverage/
# Node modules
node_modules/
.vscode/
.idea/

# Temp directories
temp/

# Logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Misc
.DS_Store
# Environment files
.env
.env.local
.env.*.local

# Documentation
# OS files
.DS_Store

# Documentation (keep only essential)
*.md
!README.md
!LICENSE
!CHANGELOG.md
86 changes: 58 additions & 28 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,40 +7,70 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.0.6] - 2025-10-21

### Added

- Initial project setup with TypeScript, pnpm, and ES modules
- TypeScript configuration with strict mode enabled
- Vitest for testing with code coverage
- ESLint v9 with flat config format
- Prettier for code formatting
- GitHub Actions CI pipeline running on Node.js 18.x, 20.x, and 22.x
- Pre-commit hooks with Husky and lint-staged
- Dependabot configuration for automated dependency updates
- Comprehensive project documentation
- Sample `greet` and `add` functions with full test coverage
- VSCode workspace settings for optimal developer experience
- EditorConfig for cross-editor consistency
- `.nvmrc` file specifying Node.js 22
- **Initial public release** of `@scottluskcis/outport`
- **Fluent Builder API** - Intuitive, chainable configuration for data exports
- **CSV Export Support**
- Configurable delimiters (comma, tab, semicolon, pipe)
- Custom header labels
- UTF-8 BOM support for Excel compatibility
- Automatic field escaping and quoting
- Header management and validation
- **JSON Export Support**
- Array and object output formats
- Pretty printing with configurable indentation
- Streaming JSON array output
- **Async Generator Streaming** - Efficiently handle large datasets
- Memory-efficient processing of millions of records
- Automatic batching for optimal performance
- Configurable batch sizes
- **Lifecycle Hooks System**
- `onBeforeWrite` - Transform or filter data before export
- `onProgress` - Track export progress in real-time
- `onAfterWrite` - Post-processing after write completes
- `onError` - Centralized error handling
- `onComplete` - Final success/failure notifications
- **Type-Safe API** - Full TypeScript support with strict typing
- Generic type parameters for data records
- Comprehensive type definitions
- Type inference throughout the API
- **High Performance**
- Automatic batching for large datasets
- Memory optimization for streaming
- Efficient file I/O operations
- **Well-Tested Codebase**
- 170+ test cases across all components
- 80%+ code coverage
- Comprehensive unit and integration tests
- **Complete Documentation**
- Builder API guide with advanced patterns
- CSV writer examples and best practices
- JSON writer usage patterns
- Type safety examples
- Sample code for common use cases
- **GitHub Actions CI/CD Pipeline**
- Automated testing on Node.js 18.x, 20.x, and 22.x
- Automated npm publishing on release
- Code coverage reporting
- Automated dependency updates via Dependabot
- **Development Tools**
- ESLint v9 with flat config
- Prettier code formatting
- Husky pre-commit hooks
- Vitest for testing
- TypeScript strict mode

### Changed

- N/A

### Deprecated

- N/A

### Removed

- N/A

### Fixed

- N/A
- N/A (initial release)

### Security

- N/A
- Added npm provenance for supply chain security
- Implemented granular npm access tokens

[unreleased]: https://github.com/scottluskcis/outport/commits/init-setup
[unreleased]: https://github.com/scottluskcis/outport/compare/v0.0.6...HEAD
[0.0.6]: https://github.com/scottluskcis/outport/releases/tag/v0.0.6
Loading