# Betty Blocks Component CLI

## Prerequisites

As of version `25.29.0`, you will need to install the [requirements for IsolatedVM](https://www.npmjs.com/package/isolated-vm#requirements) which basically include:

- make
- g++
- python

## Installation

To install the CLI you will need [a recent version of Node.js](https://nodejs.org/en/).

```bash
$ npm install -g @betty-blocks/cli
```

To install the CLI without optional dependencies (isolated-vm)

```bash
$ npm install -g @betty-blocks/cli --no-optional
```

## Update

To update the CLI

```bash
$ npm update -g @betty-blocks/cli
```

To update the CLI without optional dependencies (isolated-vm)

```bash
$ npm update -g @betty-blocks/cli --no-optional
```

## Local development

Make sure you run bun version `1.2.19` or higher: 
`bun --version`

To install dependencies, run:

```bash
bun install
```

## Introduction

Welcome to the GitHub repository for the Betty Blocks command-line interface (CLI).

This CLI lets you develop for Betty Blocks, a no-code platform for business users. Not using Betty Blocks yet? Find out more at [https://www.bettyblocks.com](https://www.bettyblocks.com).

## Contents

This is the recommended order of reading up on Component System concepts:

- [Get up and running with the Betty Blocks Component System CLI](https://github.com/bettyblocks/cli/wiki/Components:Usage).
- Before building your own Component Set, familiarize yourself with the [Core Concepts](https://github.com/bettyblocks/cli/wiki/Components:Core-Concepts).
- Read how several concepts work together to form the [Component System](https://github.com/bettyblocks/cli/wiki/Components:Component-System).
- Understand how [Prefabs](https://github.com/bettyblocks/cli/wiki/Components:Prefabs) form the main building Blocks of your Component Set.
- Learn how you can build the [Components](https://github.com/bettyblocks/cli/wiki/Components:Components) that make up the Prefabs.
- Allow the End User to customize your components with [Component Options](https://github.com/bettyblocks/cli/wiki/Components:Component-Options).
- Use the API's described in [Component Helpers](https://github.com/bettyblocks/cli/wiki/Components:Component-Helpers) to add functionality to your Components.
- For those familiar with TypeScript, read more about [the types of the Component System](https://github.com/bettyblocks/cli/wiki/Components:Types).
