# Caserunner recorder

## Development quickstart

### Prerequisites

- Installed `uv`
  - https://docs.astral.sh/uv/getting-started/installation/
- Installed `Node.js` 
  - exact version needed is not tested, it will most likely work on `>=20` (it works on `24.2.0`)
- Installed Python env
  - `uv sync`
- playwright initialized
  - `uv run playwright install chromium`

## Running the project

Run command `uv run caserunner record <url>` or `uv run caserunner record -h` to see available options.

## Build

- `uv build`
  - `injectedScript.js` is bundled on build

## Deploy

- run build
- `uv run s3pypi upload --profile caserunner --put-root-index -b case-runner-pypi --region us-east-1 dist/caserunner*`

### To remove version from index

- `uv run s3pypi delete --profile caserunner -b case-runner-pypi --region us-east-1 caserunner-recorder <VERSION>`

## Installing and using production version

- (optional) Use Python virtual environment
  - Create new venv - `python -m venv ./venv`
  - Activate the venv
    - Windows - `.venv\Scripts\activate`
    - Linux and macOS - `source .venv/bin/activate`
- Install the CaseRunner Recorder wheel
  - `pip install ./caserunner_recorder-x.x.x-py3-none-any.whl`
- Initialize Playwright
  - `playwright install chromium` or if that doesn't work, `caserunner playwright install chromium`
- Run the recorder
  - `caserunner record <url>`
  - for more information, use `caserunner record -h`
- To end the recording, close the browser window (on macOS it is also needed to exit the browser process, as macOS keeps the browser running after closing the window)
- The recording will be saved in `output.zip` file
- In case of any issues, send log file to the dev team
  - Windows - `C:\Users\<user>\AppData\Local\Bytemethod\CaseRunner Recorder\Logs\`
  - macOS - `/Users/<user>/Library/Logs/CaseRunner Recorder`
  - Linux - `/home/<user>/.local/state/CaseRunner Recorder/log`
