Metadata-Version: 2.4
Name: zobi-extensions-cli
Version: 1.0.0
Summary: Official command-line interface for building, bundling, and managing ZOBI extensions
Author-email: Zobi <hafizmoazkhalid@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://zobi.dev/
Project-URL: Documentation, https://zobi.dev/docs/
Project-URL: Repository, https://github.com/HafizMMoaz/zobi
Project-URL: Bug Tracker, https://github.com/HafizMMoaz/zobi/issues
Project-URL: Changelog, https://github.com/HafizMMoaz/zobi/blob/master/CHANGELOG.md
Keywords: zobi,zobi,cli,extensions,analytics,business-intelligence,development-tools
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Database
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Software Distribution
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: zobi-core
Requires-Dist: click>=8.0.3
Requires-Dist: jinja2>=3.1.6
Requires-Dist: semver>=3.0.4
Requires-Dist: tomli>=2.2.1; python_version < "3.11"
Requires-Dist: tomli-w>=1.2.0
Requires-Dist: watchdog>=6.0.0
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-mock; extra == "test"
Dynamic: license-file

# zobi-extensions-cli

[![PyPI version](https://badge.fury.io/py/zobi-extensions-cli.svg)](https://badge.fury.io/py/zobi-extensions-cli)
[![License](https://img.shields.io/badge/License-MIT-red.svg)](https://opensource.org/licenses/MIT)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)

Official command-line interface for building, bundling, and managing Zobi extensions. This CLI tool provides developers with everything needed to create, develop, and package extensions for the Zobi ecosystem.

## 🚀 Features

- **Extension Scaffolding** - Generate initial folder structure and scaffold new extension projects
- **Validation** - Validate extension structure and configuration before building
- **Development Server** - Automatically rebuild extensions as files change during development
- **Build System** - Build extension assets for production deployment
- **Bundle Packaging** - Package extensions into distributable .zobz files

## 📦 Installation

```bash
pip install zobi-extensions-cli
```

## 🛠️ Quick Start

### Available Commands

```bash
# Scaffold a new extension project (interactive prompts, or pass options directly)
zobi-extensions init [--publisher <publisher>] [--name <name>] [--display-name <name>]
                         [--version <version>] [--license <license>]
                         [--frontend/--no-frontend] [--backend/--no-backend]

# Validate extension structure and configuration
zobi-extensions validate

# Build extension assets for production (runs validate first)
zobi-extensions build

# Package extension into a distributable .zobz file (runs build first)
zobi-extensions bundle [--output/-o <path>]

# Automatically rebuild extension as files change during development
zobi-extensions dev
```

## 📋 Extension Structure

The CLI scaffolds extensions with the following structure:

```
{publisher}.{name}/             # e.g., my-org.dashboard-widgets/
├── extension.json              # Extension configuration and metadata
├── .gitignore
├── frontend/                   # Optional frontend code
│   ├── src/
│   │   └── index.tsx           # Frontend entry point
│   ├── package.json
│   ├── webpack.config.js
│   └── tsconfig.json
└── backend/                    # Optional backend code
    ├── src/
    │   └── {publisher}/        # e.g., my_org/
    │       └── {name}/         # e.g., dashboard_widgets/
    │           └── entrypoint.py
    └── pyproject.toml
```

## 📄 License

Licensed under the MIT. See [LICENSE](https://github.com/HafizMMoaz/zobi/blob/master/LICENSE.txt) for details.

## 🔗 Links

- [Community](https://zobi.dev/community/)
- [GitHub Repository](https://github.com/HafizMMoaz/zobi)
- [Extensions Documentation](https://zobi.dev/developer-docs/extensions/overview)
