# @feedmepos/mf-mdm

A microfrontend package for device management in the FeedMe POS ecosystem.

## Features

- Device management and monitoring
- Remote support capabilities
- Sub-device management
- Configuration management
- Telemetry and logging controls

## Installation

```bash
pnpm install @feedmepos/mf-mdm
```

### Peer Dependencies

Make sure to install the required peer dependencies:

```bash
pnpm install tailwindcss@^3.3.3
```

## Development

### Prerequisites

- Node.js (LTS version)
- pnpm package manager

### Setup

1. Clone the repository
2. Install dependencies:

```bash
pnpm install
```

### Available Scripts

- `pnpm dev` - Start development server
- `pnpm build` - Build package for production
  - Includes microfrontend build
  - TypeScript declarations
  - Asset copying
- `pnpm build:portal-v2` - Build for portal v2 compatibility
- `pnpm type-check` - Run TypeScript type checking
- `pnpm lint` - Run ESLint
- `pnpm test` - Run unit tests
- `pnpm format` - Format code using Prettier

### Building

The build process includes several steps:

1. Microfrontend build (`build:mf`)
2. TypeScript declaration generation (`build:dts`)
3. Asset copying (`build:copy-assets`)

Run all steps with:

```bash
pnpm build
```

## Architecture

The package is structured as a Vue.js microfrontend with the following key components:

- Device List View
- Remote Support Dialog
- Sub-Devices Dialog
- Configuration Management

## Dependencies

### Core Dependencies

- Vue 3
- Vue Router
- Firebase
- Axios

### FeedMe Ecosystem Dependencies

- @feedmepos/core
- @feedmepos/mdm-package
- @feedmepos/mf-common
- @feedmepos/ui-library

## Contributing

1. Create a feature branch from main
2. Make your changes
3. Create and run tests
4. Bump package version
5. Submit a pull request

## Testing

Run the test suite with:

```bash
pnpm test
```

The package uses Vitest for unit testing and Vue Test Utils for component testing.

## Versioning

We follow semantic versioning with the following deployment workflow:

1. When creating a PR:

   - Bump the version in `package.json` (e.g., 1.3.2 -> 1.3.3)
   - This version will be deployed to development environment for testing

2. After PR is merged to main:
   - The same version will be automatically deployed to production
   - The package versions will be updated in both development and production environments

Note: Version bumps should follow semantic versioning rules:

- MAJOR: Breaking changes (1.0.0 -> 2.0.0)
- MINOR: New features (1.1.0 -> 1.2.0)
- PATCH: Bug fixes and small changes (1.1.1 -> 1.1.2)

## License

Proprietary - FeedMe POS
