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
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Changelog

## 0.0.1 2025-08-09

### Features

* Add Vitest test for InteractiveVideoComponent (3c5c55b)
* Add Angular wrapper for interactive video player (480f53c)

### Documentation

* Add DEVELOPER.md for project setup and development (f13178f)
* Add README.md for interactive-video-angular-wrapper (9383cce)
* Add CONTRIBUTING.md for Angular wrapper (0f19b25)
102 changes: 102 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# CONTRIBUTING.md

We welcome contributions to `@interactive-video-labs/angular`! Your help is greatly appreciated in making this project better.

Before contributing, please take a moment to review this document. It outlines the guidelines for contributing to this repository.

## Table of Contents

- [CONTRIBUTING.md](#contributingmd)
- [Table of Contents](#table-of-contents)
- [Code of Conduct](#code-of-conduct)
- [How Can I Contribute?](#how-can-i-contribute)
- [Reporting Bugs](#reporting-bugs)
- [Suggesting Enhancements](#suggesting-enhancements)
- [Your First Code Contribution](#your-first-code-contribution)
- [Pull Requests](#pull-requests)
- [Development Setup](#development-setup)
- [Styleguides](#styleguides)
- [Git Commit Messages](#git-commit-messages)
- [TypeScript Styleguide](#typescript-styleguide)
- [License](#license)

## Code of Conduct

This project adheres to the [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [insert contact email or method here, e.g., `support@example.com`].

## How Can I Contribute?

### Reporting Bugs

If you find a bug, please open an issue on our [GitHub Issues page](https://github.com/interactive-video-labs/interactive-video-angular-wrapper/issues). When reporting a bug, please include:

- A clear and concise description of the bug.
- Steps to reproduce the behavior.
- Expected behavior.
- Actual behavior.
- Screenshots or videos if applicable.
- Your environment (Angular version, browser, OS, etc.).

### Suggesting Enhancements

If you have an idea for a new feature or an improvement, please open an issue on our [GitHub Issues page](https://github.com/interactive-video-labs/interactive-video-angular-wrapper/issues). When suggesting an enhancement, please include:

- A clear and concise description of the proposed enhancement.
- The problem it solves or the benefit it provides.
- Any alternative solutions you've considered.

### Your First Code Contribution

If you're looking to make your first code contribution, look for issues labeled `good first issue` on our [GitHub Issues page](https://github.com/interactive-video-labs/interactive-video-angular-wrapper/issues).

### Pull Requests

1. **Fork the repository** and clone it to your local machine.
2. **Create a new branch** from `main` for your changes:
```bash
git checkout -b feature/your-feature-name
# or
git checkout -b bugfix/your-bug-fix-name
```
3. **Make your changes** and ensure they adhere to the project's [Styleguides](#styleguides).
4. **Write tests** for your changes, if applicable. Ensure all existing tests pass.
5. **Run the build** to ensure everything compiles correctly:
```bash
pnpm build
```
6. **Commit your changes** using a descriptive commit message (see [Git Commit Messages](#git-commit-messages)).
7. **Push your branch** to your forked repository.
8. **Open a Pull Request** to the `main` branch of the original repository.

In your pull request description, please:

- Reference any related issues (e.g., `Fixes #123`, `Closes #456`).
- Provide a clear explanation of your changes.
- Include screenshots or GIFs if your changes affect the UI.

## Development Setup

For detailed instructions on setting up your development environment, installing dependencies, and running tests, please refer to the [DEVELOPER.md](DEVELOPER.md) file.

## Styleguides

### Git Commit Messages

We follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification for our commit messages. This helps with automated changelog generation and semantic versioning. Examples:

- `feat: add new video playback controls`
- `fix: resolve autoplay issue on iOS`
- `docs: update installation instructions`
- `refactor: improve player initialization logic`
- `test: add unit tests for cue points`

### TypeScript Styleguide

- Follow existing code style and formatting.
- Use clear and descriptive variable and function names.
- Ensure proper type annotations for all functions, variables, and parameters.
- Avoid `any` type unless absolutely necessary.

## License

By contributing to `@interactive-video-labs/angular`, you agree that your contributions will be licensed under its MIT License. See the [LICENSE](LICENSE) file for details.
108 changes: 108 additions & 0 deletions DEVELOPER.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# DEVELOPER.md

This document provides detailed instructions for developers who want to set up, develop, test, and build the `@interactive-video-labs/angular` project.

## Table of Contents

- [Prerequisites](#prerequisites)
- [Getting Started](#getting-started)
- [Project Structure](#project-structure)
- [Development Scripts](#development-scripts)
- [Install Dependencies](#install-dependencies)
- [Build Project](#build-project)
- [Run Development Server](#run-development-server)
- [Run Tests](#run-tests)
- [Clean Project](#clean-project)
- [Linting and Formatting](#linting-and-formatting)
- [Troubleshooting](#troubleshooting)

## Prerequisites

Before you begin, ensure you have the following installed:

- **Node.js**: Version 18 or higher. You can download it from [nodejs.org](https://nodejs.org/).
- **pnpm**: Our preferred package manager. If you don't have it, install it globally:
```bash
npm install -g pnpm
```
Alternatively, you can use `npm` or `yarn`, but `pnpm` is recommended for consistent dependency management.

## Getting Started

1. **Clone the repository:**
```bash
git clone https://github.com/interactive-video-labs/interactive-video-angular-wrapper.git
cd interactive-video-angular-wrapper
```

2. **Install dependencies:**
```bash
pnpm install
```
This will install all project dependencies, including development and peer dependencies.

## Project Structure

- `src/`: Contains the source code for the Angular wrapper component.
- `index.ts`: The main entry point for the library, exporting `InteractiveVideoComponent` and related types.
- `test/`: Contains unit tests for the components.
- `interactive-video.test.ts`: Tests for the `InteractiveVideoComponent`.
Comment thread
taj54 marked this conversation as resolved.
- `dist/`: (Generated after build) Contains the compiled output of the library (ESM, CJS, and declaration files).
- `examples/`: Contains example usage of the Angular wrapper.
- `tsup.config.ts`: Configuration for `tsup`, used to bundle the TypeScript library.
- `vitest.config.ts`: Configuration for `Vitest`, our testing framework.

## Development Scripts

Here are the commonly used scripts for development:

### Install Dependencies

```bash
pnpm install
```

Installs all project dependencies. Run this after cloning the repository or pulling new changes.

### Build Project

```bash
pnpm build
```

Compiles the TypeScript source code into JavaScript (ESM and CJS formats) and generates declaration files (`.d.ts`) in the `dist/` directory. This command is run automatically before publishing.

### Run Development Server

```bash
pnpm dev
```

Starts the `tsup` build in watch mode. This is useful during development as it automatically recompiles the library whenever source files change.

### Run Tests

```bash
pnpm test
```

Executes all unit tests using `Vitest`. Ensure all tests pass before submitting a pull request.

### Clean Project

```bash
pnpm clean
```

Removes the `dist/` directory, effectively cleaning up all compiled output.

## Linting and Formatting

(Note: Currently, there are no explicit linting or formatting scripts configured in `package.json`. Please adhere to the existing code style and best practices observed in the codebase.)

## Troubleshooting

- **`pnpm install` fails**: Ensure you have Node.js and pnpm installed correctly. Check your internet connection.
- **Build errors**: Verify that all dependencies are installed (`pnpm install`) and that your TypeScript code has no compilation errors.
- **Tests failing**: Run `pnpm test` to see detailed error messages. Ensure your changes haven't introduced regressions.
- **Peer dependency issues**: If you encounter issues related to `@angular/core` or `@angular/common`, ensure that the versions installed in your consuming application match the peer dependency ranges specified in `package.json` (`^15.0.0 || ^16.0.0 || ^17.0.0`).
Loading
Loading