Skip to content
Draft
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
16 changes: 11 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -481,16 +481,22 @@ docs-install: ## Install documentation dependencies
@echo "Installing documentation dependencies..."
@cd website && npm install

.PHONY: docs-typescript
docs-typescript: docs-install ## Generate TypeScript API documentation
@echo "Generating TypeScript API documentation..."
@cd website && npm run typedoc
@echo "TypeScript API documentation generated in website/docs/developers/frontend/api/"

.PHONY: docs-build
docs-build: docs-integrate-rust docs-install ## Build the documentation website with Rust API docs
@echo "Building documentation website with Rust API documentation..."
docs-build: docs-integrate-rust docs-typescript docs-install ## Build the documentation website with Rust and TypeScript API docs
@echo "Building documentation website with API documentation..."
@cd website && npm run build
@echo "Documentation built successfully!"
@echo "Built files are in website/build/"

.PHONY: docs-serve
docs-serve: docs-integrate-rust docs-install ## Serve the documentation website locally with Rust API docs
@echo "Starting documentation server with Rust API documentation..."
docs-serve: docs-integrate-rust docs-typescript docs-install ## Serve the documentation website locally with Rust and TypeScript API docs
@echo "Starting documentation server with API documentation..."
@echo "Documentation will be available at: http://localhost:$(DOCS_PORT)"
@cd website && npm start -- --port $(DOCS_PORT)

Expand Down Expand Up @@ -533,7 +539,7 @@ docs-integrate-rust: docs-rust ## Integrate Rust API documentation into website
.PHONY: docs-clean
docs-clean: ## Clean documentation build artifacts
@echo "Cleaning documentation build artifacts..."
@rm -rf website/build website/.docusaurus website/static/api-docs target/doc
@rm -rf website/build website/.docusaurus website/static/api-docs website/docs/developers/frontend/api target/doc
@echo "Documentation artifacts cleaned!"

# Release management targets
Expand Down
15 changes: 15 additions & 0 deletions website/docs/developers/frontend/api/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
**Frontend TypeScript API**

***

# Frontend TypeScript API

## Interfaces

- [MinaEnv](interfaces/MinaEnv.md)
- [MinaNode](interfaces/MinaNode.md)

## Type Aliases

- [FeaturesConfig](type-aliases/FeaturesConfig.md)
- [FeatureType](type-aliases/FeatureType.md)
181 changes: 181 additions & 0 deletions website/docs/developers/frontend/api/interfaces/MinaEnv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
[**Frontend TypeScript API**](../README.md)

***

[Frontend TypeScript API](../README.md) / MinaEnv

# Interface: MinaEnv

Defined in: [mina-env.type.ts:16](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L16)

Main environment configuration interface for the Mina Rust frontend.
This interface defines all possible configuration options that can be set
per environment (development, production, local, etc.).

To configure a frontend instance, modify the appropriate environment file:
- Development: src/environments/environment.ts
- Production: src/environments/environment.prod.ts
- Local: src/environments/environment.local.ts
- WebNode: src/environments/environment.webnodelocal.ts
- Producer: src/environments/environment.producer.ts
- Fuzzing: src/environments/environment.fuzzing.ts

## See

[https://github.com/o1-labs/mina-rust/tree/develop/frontend/src/environments](https://github.com/o1-labs/mina-rust/tree/develop/frontend/src/environments)

## Properties

### production

> **production**: `boolean`

Defined in: [mina-env.type.ts:18](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L18)

Whether this is a production build

***

### configs

> **configs**: [`MinaNode`](MinaNode.md)[]

Defined in: [mina-env.type.ts:21](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L21)

Array of Mina node configurations to connect to

***

### identifier?

> `optional` **identifier**: `string`

Defined in: [mina-env.type.ts:24](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L24)

Human-readable identifier for this environment (e.g., "Dev FE")

***

### hideToolbar?

> `optional` **hideToolbar**: `boolean`

Defined in: [mina-env.type.ts:27](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L27)

Hide the top toolbar in the UI

***

### hideNodeStats?

> `optional` **hideNodeStats**: `boolean`

Defined in: [mina-env.type.ts:30](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L30)

Hide node statistics display

***

### canAddNodes?

> `optional` **canAddNodes**: `boolean`

Defined in: [mina-env.type.ts:33](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L33)

Allow adding custom nodes through the UI

***

### showWebNodeLandingPage?

> `optional` **showWebNodeLandingPage**: `boolean`

Defined in: [mina-env.type.ts:36](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L36)

Show the WebNode landing page

***

### showLeaderboard?

> `optional` **showLeaderboard**: `boolean`

Defined in: [mina-env.type.ts:39](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L39)

Show the leaderboard/uptime tracking feature

***

### hidePeersPill?

> `optional` **hidePeersPill**: `boolean`

Defined in: [mina-env.type.ts:42](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L42)

Hide the peers pill in the status bar

***

### hideTxPill?

> `optional` **hideTxPill**: `boolean`

Defined in: [mina-env.type.ts:45](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L45)

Hide the transactions pill in the status bar

***

### sentry?

> `optional` **sentry**: `object`

Defined in: [mina-env.type.ts:48](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L48)

Sentry error tracking configuration

#### dsn

> **dsn**: `string`

Sentry Data Source Name for error reporting

#### tracingOrigins

> **tracingOrigins**: `string`[]

Origins to trace for performance monitoring

***

### globalConfig?

> `optional` **globalConfig**: `object`

Defined in: [mina-env.type.ts:56](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L56)

Global configuration shared across all nodes

#### features?

> `optional` **features**: [`FeaturesConfig`](../type-aliases/FeaturesConfig.md)

Feature flags configuration defining which UI sections are available

#### graphQL?

> `optional` **graphQL**: `string`

GraphQL endpoint URL for blockchain queries

#### firebase?

> `optional` **firebase**: `any`

Firebase configuration for leaderboard and hosting

#### heartbeats?

> `optional` **heartbeats**: `boolean`

Enable heartbeat/uptime tracking functionality
82 changes: 82 additions & 0 deletions website/docs/developers/frontend/api/interfaces/MinaNode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
[**Frontend TypeScript API**](../README.md)

***

[Frontend TypeScript API](../README.md) / MinaNode

# Interface: MinaNode

Defined in: [mina-env.type.ts:72](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L72)

Configuration for a single Mina node connection.
Each node can have different endpoints and feature sets enabled.

## Properties

### name

> **name**: `string`

Defined in: [mina-env.type.ts:74](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L74)

Display name for this node (e.g., "Local rust node", "Producer-0")

***

### url?

> `optional` **url**: `string`

Defined in: [mina-env.type.ts:77](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L77)

Base URL for the node's API endpoint (e.g., "http://127.0.0.1:3000")

***

### memoryProfiler?

> `optional` **memoryProfiler**: `string`

Defined in: [mina-env.type.ts:80](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L80)

URL for memory profiling endpoint

***

### debugger?

> `optional` **debugger**: `string`

Defined in: [mina-env.type.ts:83](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L83)

URL for debugger interface

***

### features?

> `optional` **features**: [`FeaturesConfig`](../type-aliases/FeaturesConfig.md)

Defined in: [mina-env.type.ts:86](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L86)

Node-specific feature configuration (overrides globalConfig.features)

***

### isCustom?

> `optional` **isCustom**: `boolean`

Defined in: [mina-env.type.ts:89](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L89)

Whether this is a user-added custom node

***

### isWebNode?

> `optional` **isWebNode**: `boolean`

Defined in: [mina-env.type.ts:92](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L92)

Whether this node runs in the browser as a WebNode
14 changes: 14 additions & 0 deletions website/docs/developers/frontend/api/type-aliases/FeatureType.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[**Frontend TypeScript API**](../README.md)

***

[Frontend TypeScript API](../README.md) / FeatureType

# Type Alias: FeatureType

> **FeatureType** = keyof [`FeaturesConfig`](FeaturesConfig.md)

Defined in: [mina-env.type.ts:144](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L144)

Union type of all available feature names.
Used for type safety when referencing features in code.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[**Frontend TypeScript API**](../README.md)

***

[Frontend TypeScript API](../README.md) / FeaturesConfig

# Type Alias: FeaturesConfig

> **FeaturesConfig** = `Partial`\<\{ `dashboard`: `string`[]; `nodes`: `string`[]; `state`: `string`[]; `network`: `string`[]; `snarks`: `string`[]; `resources`: `string`[]; `block-production`: `string`[]; `mempool`: `string`[]; `benchmarks`: `string`[]; `fuzzing`: `string`[]; \}\>

Defined in: [mina-env.type.ts:108](https://github.com/o1-labs/mina-rust/blob/7580c8daad11ac442ed9418d7374d0829a14c197/frontend/src/app/shared/types/core/environment/mina-env.type.ts#L108)

Feature flags configuration that controls which UI sections and sub-features
are available. Each feature can have multiple sub-features enabled.

## Example

```typescript
features: {
'dashboard': [], // Dashboard tab (no sub-features)
'nodes': ['overview', 'live'], // Nodes tab with overview and live sub-tabs
'network': ['messages', 'blocks'] // Network tab with specific sub-sections
}
```
Loading