| 
 | 1 | +# Contributing  | 
 | 2 | + | 
 | 3 | +Thanks for your interest in contributing to this SDK! This document provides guidelines for contributing to the project.  | 
 | 4 | + | 
 | 5 | +## Getting Started  | 
 | 6 | + | 
 | 7 | +### Prerequisites  | 
 | 8 | + | 
 | 9 | +- Node.js 20 or higher  | 
 | 10 | +- pnpm package manager  | 
 | 11 | + | 
 | 12 | +### Installation  | 
 | 13 | + | 
 | 14 | +Install the project dependencies:  | 
 | 15 | + | 
 | 16 | +```bash  | 
 | 17 | +pnpm install  | 
 | 18 | +```  | 
 | 19 | + | 
 | 20 | +### Building  | 
 | 21 | + | 
 | 22 | +Build the project:  | 
 | 23 | + | 
 | 24 | +```bash  | 
 | 25 | +pnpm build  | 
 | 26 | +```  | 
 | 27 | + | 
 | 28 | +### Testing  | 
 | 29 | + | 
 | 30 | +Run the test suite:  | 
 | 31 | + | 
 | 32 | +```bash  | 
 | 33 | +pnpm test  | 
 | 34 | +```  | 
 | 35 | + | 
 | 36 | +Run specific test types:  | 
 | 37 | +- `pnpm test:unit` - Run unit tests  | 
 | 38 | +- `pnpm test:wire` - Run wire/integration tests  | 
 | 39 | + | 
 | 40 | +### Linting and Formatting  | 
 | 41 | + | 
 | 42 | +Check code style:  | 
 | 43 | + | 
 | 44 | +```bash  | 
 | 45 | +pnpm run lint  | 
 | 46 | +pnpm run format:check  | 
 | 47 | +```  | 
 | 48 | + | 
 | 49 | +Fix code style issues:  | 
 | 50 | + | 
 | 51 | +```bash  | 
 | 52 | +pnpm run lint:fix  | 
 | 53 | +pnpm run format:fix  | 
 | 54 | +```  | 
 | 55 | + | 
 | 56 | +Or use the combined check command:  | 
 | 57 | + | 
 | 58 | +```bash  | 
 | 59 | +pnpm run check:fix  | 
 | 60 | +```  | 
 | 61 | + | 
 | 62 | +## About Generated Code  | 
 | 63 | + | 
 | 64 | +**Important**: Most files in this SDK are automatically generated by [Fern](https://buildwithfern.com) from the API definition. Direct modifications to generated files will be overwritten the next time the SDK is generated.  | 
 | 65 | + | 
 | 66 | +### Generated Files  | 
 | 67 | + | 
 | 68 | +The following directories contain generated code:  | 
 | 69 | +- `src/api/` - API client classes and types  | 
 | 70 | +- `src/serialization/` - Serialization/deserialization logic  | 
 | 71 | +- Most TypeScript files in `src/`  | 
 | 72 | + | 
 | 73 | +### How to Customize  | 
 | 74 | + | 
 | 75 | +If you need to customize the SDK, you have two options:  | 
 | 76 | + | 
 | 77 | +#### Option 1: Use `.fernignore`  | 
 | 78 | + | 
 | 79 | +For custom code that should persist across SDK regenerations:  | 
 | 80 | + | 
 | 81 | +1. Create a `.fernignore` file in the project root  | 
 | 82 | +2. Add file patterns for files you want to preserve (similar to `.gitignore` syntax)  | 
 | 83 | +3. Add your custom code to those files  | 
 | 84 | + | 
 | 85 | +Files listed in `.fernignore` will not be overwritten when the SDK is regenerated.  | 
 | 86 | + | 
 | 87 | +For more information, see the [Fern documentation on custom code](https://buildwithfern.com/learn/sdks/overview/custom-code).  | 
 | 88 | + | 
 | 89 | +#### Option 2: Contribute to the Generator  | 
 | 90 | + | 
 | 91 | +If you want to change how code is generated for all users of this SDK:  | 
 | 92 | + | 
 | 93 | +1. The TypeScript SDK generator lives in the [Fern repository](https://github.com/fern-api/fern)  | 
 | 94 | +2. Generator code is located at `generators/typescript/sdk/`  | 
 | 95 | +3. Follow the [Fern contributing guidelines](https://github.com/fern-api/fern/blob/main/CONTRIBUTING.md)  | 
 | 96 | +4. Submit a pull request with your changes to the generator  | 
 | 97 | + | 
 | 98 | +This approach is best for:  | 
 | 99 | +- Bug fixes in generated code  | 
 | 100 | +- New features that would benefit all users  | 
 | 101 | +- Improvements to code generation patterns  | 
 | 102 | + | 
 | 103 | +## Making Changes  | 
 | 104 | + | 
 | 105 | +### Workflow  | 
 | 106 | + | 
 | 107 | +1. Create a new branch for your changes  | 
 | 108 | +2. Make your modifications  | 
 | 109 | +3. Run tests to ensure nothing breaks: `pnpm test`  | 
 | 110 | +4. Run linting and formatting: `pnpm run check:fix`  | 
 | 111 | +5. Build the project: `pnpm build`  | 
 | 112 | +6. Commit your changes with a clear commit message  | 
 | 113 | +7. Push your branch and create a pull request  | 
 | 114 | + | 
 | 115 | +### Commit Messages  | 
 | 116 | + | 
 | 117 | +Write clear, descriptive commit messages that explain what changed and why.  | 
 | 118 | + | 
 | 119 | +### Code Style  | 
 | 120 | + | 
 | 121 | +This project uses automated code formatting and linting. Run `pnpm run check:fix` before committing to ensure your code meets the project's style guidelines.  | 
 | 122 | + | 
 | 123 | +## Questions or Issues?  | 
 | 124 | + | 
 | 125 | +If you have questions or run into issues:  | 
 | 126 | + | 
 | 127 | +1. Check the [Fern documentation](https://buildwithfern.com)  | 
 | 128 | +2. Search existing [GitHub issues](https://github.com/fern-api/fern/issues)  | 
 | 129 | +3. Open a new issue if your question hasn't been addressed  | 
 | 130 | + | 
 | 131 | +## License  | 
 | 132 | + | 
 | 133 | +By contributing to this project, you agree that your contributions will be licensed under the same license as the project.  | 
0 commit comments