# Project Brief: G1 TypeScript Common Packages ## Project Overview G1 TypeScript Common Packages is a monorepo containing common TypeScript packages used across Generation One projects. The repository is public, making it easier to share and collaborate on common utilities. ## Core Requirements 1. **Shared Utilities**: Create and maintain reusable TypeScript packages that can be shared across Generation One projects. 2. **Public Access**: Keep the repository public to facilitate sharing and collaboration. 3. **Package Management**: Use pnpm workspaces for efficient package management. 4. **TypeScript Support**: Ensure all packages have proper TypeScript typings and support. 5. **Documentation**: Maintain comprehensive documentation for each package. 6. **Testing**: Include tests for all packages to ensure reliability. 7. **CI/CD**: Implement automated testing and publishing workflows. ## Current Packages ### SSE Client (`@g1/sse-client`) A custom Server-Sent Events (SSE) client that supports headers and bypasses certificate issues. **Key Features:** - Custom headers support for SSE connections - SSL certificate validation bypass - Automatic reconnection with exponential backoff - Connection management - Event handling - Works in both browser and Node.js environments ## Project Goals 1. **Reliability**: Create robust, well-tested packages that can be relied upon in production environments. 2. **Reusability**: Design packages to be easily reused across different projects. 3. **Maintainability**: Ensure code is well-documented and follows best practices for long-term maintenance. 4. **Extensibility**: Design packages to be easily extended or customized for specific use cases. 5. **Compatibility**: Ensure packages work across different environments (browser, Node.js) where applicable. ## Future Direction 1. **Additional Packages**: Add more common utilities as needed by Generation One projects. 2. **Version Management**: Maintain proper versioning for all packages. 3. **Community Contributions**: Encourage contributions from the community. ## Project Scope This project focuses solely on creating and maintaining common TypeScript packages. It does not include: - Application-specific code - UI components or frameworks - Backend services or APIs The scope is intentionally limited to ensure the packages remain focused, reusable, and maintainable.