open-index/open-npm huggingface dataset:
npm package: @nodebooks/cli
Description: Command-line interface for installing and managing NodeBooks.
Author: Julián Duque
Latest version: 0.4.4

# @nodebooks/cli

Command-line interface for installing and managing a self-hosted NodeBooks deployment.

## Installation

```bash
npm install -g @nodebooks/cli
# or
pnpm add -g @nodebooks/cli
# or run on demand
npx @nodebooks/cli --help
```

## Commands

- `nbks` / `nbks start` – Start the bundled `@nodebooks/server` with your saved configuration.
- `nbks config` – Run an interactive setup wizard to create or update the CLI configuration file.
- `nbks reset` – Reset the admin password, optionally generating a secure random value.
npm package: @nodebooks/client-ui
Description: Shared UI components and utilities for NodeBooks client applications and plugins
Author: Julián Duque
Latest version: 0.2.0

# @nodebooks/client-ui

Shared UI components and utilities for NodeBooks client applications and plugins.

This package contains reusable components extracted from the main client app, including:

- UI components (shadcn components)
- Monaco editor utilities and wrappers
- Output rendering components
- Shared utility functions
- Type definitions

## Usage

```typescript
import { Button, MonacoEditor, OutputView } from "@nodebooks/client-ui";
```

## Theme Configuration

This package uses Tailwind v4's `@theme` directive to define color tokens needed for utility generation (e.g., `bg-primary`, `hover:bg-primary/90`). These are **build-time defaults** only.

**The consuming application owns the runtime theme.** To ensure your app's theme takes precedence:

1. Import this package's styles **before** your app's theme CSS:

   ```typescript
   import "@nodebooks/client-ui/styles.css";
   import "./globals.css"; // Your app theme - loaded last to override
   ```

2. Define the same CSS custom properties in your app's CSS to override the defaults:
   ```css
   :root {
     --color-primary: oklch(0.723 0.219 149.579);
     --color-accent: oklch(0.967 0.001 286.375);
     /* ... other theme colors */
   }
   ```

The default theme colors in `src/styles.css` should match `apps/client/app/globals.css` for consistency, but the client app is the source of truth.
npm package: @nodebooks/config
Description: Shared configuration loaders and helpers for NodeBooks services.
Author: Julián Duque
Latest version: 0.4.0

# @nodebooks/config

Shared configuration loaders, schemas, and helpers used by the NodeBooks CLI, server, and runtimes.

## Usage

```ts
import { loadServerConfig } from "@nodebooks/config";

const config = loadServerConfig();
console.log(config.port, config.host);
```
npm package: @nodebooks/notebook-schema
Description: Zod schemas that describe NodeBooks notebooks, cells, and runtime data.
Author: Julián Duque
Latest version: 0.4.0

# @nodebooks/notebook-schema

Zod schemas that model notebooks, cells, outputs, and runtime metadata shared across the NodeBooks platform.

## Usage

```ts
import { NotebookSchema } from "@nodebooks/notebook-schema";

const parsed = NotebookSchema.parse(payload);
```
npm package: @nodebooks/runtime-node
Description: Node.js runtime harness that executes notebook code for NodeBooks.
Author: Julián Duque
Latest version: 0.4.0

# @nodebooks/runtime-node

Implements the sandboxed Node.js runtime used to execute notebook cells and stream structured output back to the host.

The package is primarily consumed by `@nodebooks/runtime-node-worker` and `@nodebooks/server`; see the TypeScript sources in `src/` for the available APIs.
npm package: @nodebooks/runtime-node-worker
Description: Worker entrypoint that runs notebook executions in isolated Node.js processes.
Author: Julián Duque
Latest version: 0.4.0

# @nodebooks/runtime-node-worker

Worker entrypoint that runs notebook executions inside isolated Node.js processes and reports back through the runtime protocol.

This package is loaded by the runtime host; consult the TypeScript source for integration details.
npm package: @nodebooks/runtime-protocol
Description: Shared message contracts for communication between NodeBooks runtimes and the server.
Author: Julián Duque
Latest version: 0.4.0

# @nodebooks/runtime-protocol

Shared TypeScript definitions and Zod schemas that describe the messages exchanged between the NodeBooks server, runtime host, and worker processes.

Use the exported schemas to validate protocol payloads at runtime and generate typed contracts across packages.
npm package: @nodebooks/server
Description: Fastify server that powers the NodeBooks API and embedded web app.
Author: Julián Duque
Latest version: 0.5.4

# @nodebooks/server

Fastify-based application server that exposes the NodeBooks API, WebSocket services, and serves the bundled Next.js client.

## Usage

```bash
pnpm --filter @nodebooks/server build
NODE_ENV=production node dist/index.js
```

The package expects configuration to be provided through `@nodebooks/config` environment variables or the CLI-generated settings file.
npm package: @nodebooks/ui
Description: React components and styles used by the NodeBooks web client.
Author: Julián Duque
Latest version: 0.4.0

# @nodebooks/ui

React component library and styles used by the NodeBooks web client to render notebook output and interface primitives.

## Usage

```tsx
import { UiMarkdown } from "@nodebooks/ui";

export const Preview = ({ content }: { content: string }) => (
  <UiMarkdown value={content} />
);
```
npm package: @nodebooks/ui-runtime
Description: Lightweight UI helper bundle for NodeBooks sandboxed notebooks.
Author: Julián Duque
Latest version: 0.4.0

# @nodebooks/ui-runtime

Lightweight helper library that exposes the server-side UI primitives used inside NodeBooks notebooks.

## Usage

```ts
import { markdown, table } from "@nodebooks/ui-runtime";

export function renderSummary() {
  return markdown("# Hello from NodeBooks!");
}
```

The package also re-exports the `Ui*` constructors and the default `ui` alias, matching the helpers described in the NodeBooks docs.
npm package: @nodeboot/authorization
Description: The first typescript example for the Monorepo example
Author: Manuel Santos
Latest version: 1.3.7

# Typescript example #1

The first typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/config
Description: The first typescript example for the Monorepo example
Author: Manuel Santos
Latest version: 1.3.7

# Typescript example #2

The second typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/context
Description: The first typescript example for the Monorepo example
Author: Manuel Santos
Latest version: 2.3.0

# Typescript example #2

The second typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/core
Description: The first typescript example for the Monorepo example
Author: Manuel Santos
Latest version: 1.16.3

# Typescript example #1

The first typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/di
Description: Dependency Injection plugin for Node-Boot
Author: Manuel Santos
Latest version: 1.4.7

# Typescript example #2

The second typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/engine
Description: Node-Boot engine that enables hte node-boot magic with application server frameworks through drivers
Author: Manuel Santos
Latest version: 1.6.6

# Typescript example #2

The second typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/error
Description: Node-Boot base errors/exceptions
Author: Manuel Santos
Latest version: 1.3.0

# Typescript example #2

The second typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/express-server
Description: Express server for Node-Boot
Author: Manuel Santos
Latest version: 1.10.1

# Typescript example #1

The first typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/fastify-server
Description: The first typescript example for the Monorepo example
Author: Manuel Santos
Latest version: 1.9.1

# Typescript example #1

The first typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/ghost-server
Description: Node-Boot Ghost Server for Pure IoC Applications. Suitable for Auto-configuration testing, background jobs, etc
Author: Manuel Santos
Latest version: 1.3.7

# Typescript example #1

The first typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/http-server
Description: Node-Boot http server package. It provides a simple way to create HTTP servers using Node.js, with support for routing, middleware, and request handling.
Author: Manuel Santos
Latest version: 1.4.1

# Typescript example #1

The first typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/koa-server
Description: The first typescript example for the Monorepo example
Author: Manuel Santos
Latest version: 1.9.1

# Typescript example #1

The first typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/scan
Description: Node-Boot module for @beans auto-scan. It provides the @EnableComponentScan decorator and tools for build time beans discovery
Author: Manuel Santos
Latest version: 2.2.0

# Typescript example #2

The second typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/starter-actuator
Description: The first typescript example for the Monorepo example
Author: Manuel Santos
Latest version: 1.7.7

# 🔍 `@nodeboot/starter-actuator` – Node-Boot Actuator Starter

[![npm version](https://img.shields.io/npm/v/@nodeboot/starter-actuator.svg)](https://www.npmjs.com/package/@nodeboot/starter-actuator)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

> **Node-Boot Actuator Starter** provides production-ready monitoring, health checks, and application insights for Node-Boot applications, following Spring Boot Actuator patterns for the Node.js ecosystem.

## Overview

The Node-Boot Actuator Starter brings comprehensive application monitoring and observability to your Node.js applications. It automatically exposes operational endpoints for health checks, metrics collection, application information, and more. This starter is the Node.js equivalent of Spring Boot Actuator, providing the same level of production-ready monitoring capabilities.

### Key Features

✅ **Auto-Configuration** – Zero-configuration setup with sensible defaults  
✅ **Health Checks** – Built-in health endpoints with custom health indicators  
✅ **Prometheus Metrics** – Automatic metrics collection and exposure  
✅ **Application Info** – Git information, build details, and environment data  
✅ **Multi-Framework Support** – Works with Express, Fastify, Koa, and native HTTP  
✅ **Production-Ready** – Battle-tested monitoring patterns from Spring Boot

---

## 📦 Installation

### Prerequisites

-   Node.js 18+
-   Node-Boot 2.0+
-   One of the supported servers: Express, Fastify, Koa, or native HTTP

### Install the Starter

```bash
# pnpm (recommended)
pnpm add @nodeboot/starter-actuator

# npm
npm install @nodeboot/starter-actuator

# yarn
yarn add @nodeboot/starter-actuator
```

### Auto-Configuration

This starter provides auto-configuration when added to your Node-Boot application. No additional setup required for basic usage.

---

## ⚡ Quick Start

### 1️⃣ Enable Actuator in Your Application

```typescript
import {NodeBootApplication, NodeBoot, ExpressServer} from "@nodeboot/core";
import {EnableActuator} from "@nodeboot/starter-actuator";

@EnableActuator()
@NodeBootApplication()
export class Application {
    start(): Promise<NodeBootAppView> {
        return NodeBoot.run(ExpressServer);
    }
}
```

### 2️⃣ Basic Usage

Once enabled, the actuator automatically exposes monitoring endpoints:

### 3️⃣ Verify Setup

```bash
# Start your application
pnpm start

# Access the actuator endpoints:
# Health check
curl http://localhost:3000/actuator/health

# Application info
curl http://localhost:3000/actuator/info

# Prometheus metrics
curl http://localhost:3000/actuator/metrics

# Look for these log messages indicating successful setup:
# ✅ Actuator endpoints enabled
# ✅ Health checks registered
# ✅ Metrics collection started
```

TO BE CONTINUED...
npm package: @nodeboot/starter-openapi
Description: OpenAPI plugin for Node-Boot. It allows OpenAPI specs to be automatically generated from controller endpoints
Author: Manuel Santos
Latest version: 2.4.8

# Typescript example #1

The first typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/starter-persistence
Description: Nodeboot starter package for persistence. Supports data access layer auto-configuration providing features like database initialization, consistency check, entity mapping, repository pattern, transactions, paging, migrations, persistence listeners, persis
Author: Manuel Santos
Latest version: 1.13.5

# Node-Boot Persistence

Based on TypeORM: https://orkhan.gitbook.io/typeorm/docs

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodeboot/tools
Description: Node-Boot tools to help during CI-CD and automation processes
Author: Manuel Santos
Latest version: 1.2.0

# Typescript example #2

The second typescript example for the Monorepo example

## License

MIT License

Copyright (c) 2023 NodeBoot

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @nodebrick/nodebrick-cli
Description: Nodebrick Command-Line Interface (CLI)
Author: Xavier Martin
Latest version: 1.4.19

# @nodebrick/nodebrick-api
> command line utility to help build nodebrick core or projects

## Description


## Install
`$ npm install --save @nodebrick/nodebrick-api`

## Usage

### From your computer (docker host)  
`$ .docker/module_exec.sh nodebrick-cli -c "npm start <command>"`
like for instance  
`$ .docker/module_exec.sh nodebrick-cli -c "npm start core module create nodebrick-database core"`

### From within the nodebrick-cli running docker container
`npm start <command>`
like for instance 
`"npm start core module create nodebrick-database core"`
npm package: @nodebrick/nodebrick-file-storage
Description: Nodebrick File Storage Interface module
Author: Xavier Martin
Latest version: 1.4.19

# @nodebrick/nodebrick-file-storage

* [Description](#description)
* [Install](#install)
* [Configuration](#configuration)
* [Usage](#usage)

## Description

Interface module for file storage implementation.

## Install

The module is not supposed to be installed separately. It provides interfaces for other modules.

## Configuration

The module is not supposed to be configured separately. Other modules may use its configuration interfaces.

## Usage

TBC
npm package: @nodecfdi/sat-scrapers-auth
Description: Librería para realizar el proceso de autentificación en varios sitios del SAT
Author: Fernando Isidro
Latest version: 0.1.1

# `@nodecfdi/sat-scrapers-auth`

> Library to make authentication process on various SAT sites using scraper methods.

:us: The documentation of this project is in spanish as this is the natural language for intended audience.

:mexico: La documentación del proyecto está en español porque ese es el lenguaje principal de los usuarios.
npm package: @nodecg-obs/utility
Description: A NodeCG utility that exposes a set of Replicants, Messages, and other hooks for interacting with OBS via obs-websocket
Author: Gabriel GRONDIN
Latest version: 6.2.1

# NodeCG OBS Utility

[![CodeQL](https://github.com/GGLinnk/nodecg-obs-utility/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/GGLinnk/nodecg-obs-utility/actions/workflows/codeql-analysis.yml) [![NPM Version](https://img.shields.io/npm/v/@nodecg-obs/utility.svg)](https://www.npmjs.com/package/@nodecg-obs/utility)

[`nodecg-obs-utility`] is a fork of [`nodecg-utility-obs`], a [NodeCG] utility that adds a set of Replicants, Messages, and other hooks to your NodeCG bundle. It is meant for use with latest version of NodeCG. You can think of it like a mixin for your NodeCG bundle.

It requires that the instance of OBS have [`obs-websocket`] installed and configured.

Internally, it uses the latest release of [`obs-websocket-js`] to communicate with [`obs-websocket`].


## Requirements

* Latest release of [NodeCG].
* LTS (v16.x) or Current (v17.x) version of [NodeJS].
* [OBS Studio] with latest [`obs-websocket`] installed.

### Tested with
- NodeCG ``1.8.1``
- Node ``16.14.2`` & npm ``8.5.5``
- OBS ``27.2.3`` & websocket ``4.9.1``


## Install

1. Go to your bundle folder
```
cd my-nodecg/bundles/your-bundle
```

2. Add to your bundle
```
npm install @nodecg-obs/utility
```


## License
This project is under MIT License. See [LICENSE]


## Documentation
For full documentation, see the [wiki]


[LICENSE]: LICENSE
[`nodecg-obs-utility`]: https://github.com/GGLinnk/nodecg-obs-utility/
[`nodecg-utility-obs`]: https://github.com/nodecg/nodecg-obs/tree/master/packages/nodecg-utility-obs
[`obs-websocket-js`]: https://github.com/obs-websocket-community-projects/obs-websocket-js
[`obs-websocket`]: https://github.com/obsproject/obs-websocket
[NodeCG]: https://github.com/nodecg/nodecg
[NodeJS]: https://nodejs.org/
[OBS Studio]: https://obsproject.com/
[wiki]: https://github.com/GGLinnk/nodecg-obs-utility/wiki
npm package: @nodecg/json-schema-defaults
Description: A library and CLI tool for generating a default value from a JSON schema
Author: The NodeCG Project
Latest version: 1.0.4

# JSON Schema Defaults

> A library and CLI tool for generating a default value from a JSON schema

## Installation

```sh
npm install @nodecg/json-schema-defaults
```

## Usage

- Node (TypeScript/ESM)

  ```js
  import defaults from 'json-schema-defaults';
  defaults({ ... });
  ```

- CLI

  If installed globally:

  ```sh
  json-schema-defaults schema.json
  ```

  If locally:

  ```sh
  ./node_modules/.bin/json-schema-defaults schema.json
  ```

  Custom indentation (defaults to 2):

  ```sh
  json-schema-defaults --indent 4 schema.json
  ```

  Write into a file:

  ```sh
  json-schema-defaults schema.json > defaults.json
  ```

## Documentation

Call `defaults` with JSON Schema. The default values will be extracted as a JSON.

```ts
const json = defaults({
  "title": "Album Options",
  "type": "object",
  "properties": {
    "sort": {
      "type": "string",
      "default": "id"
    },
    "per_page": {
      "default": 30,
      "type": "integer"
    }
  }
});

// would return
{
  sort: 'id',
  per_page: 30
}
```

For more examples, see the tests.

## Development

Run tests

```sh
npm test
```

## Contributors

- Eugene Tsypkin @jhony-chikens (original author of [`json-schema-defaults`](https://www.npmjs.com/package/json-schema-defaults) on npm)
- Alex Van Camp @alvancamp

## License

(c) 2023 The NodeCG Project. Released under the terms of the MIT License.
npm package: @nodecg/json-schema-lib
Description: Extensible JSON Schema library with support for multi-file schemas using $ref
Author: James Messinger
Latest version: 0.1.0

JsonSchemaLib
============================
Extensible JSON Schema library with support for multi-file schemas using $ref

[![Build Status](https://api.travis-ci.org/BigstickCarpet/json-schema-lib.svg?branch=master)](https://travis-ci.org/BigstickCarpet/json-schema-lib)
[![Windows Build Status](https://ci.appveyor.com/api/projects/status/github/bigstickcarpet/json-schema-lib?svg=true&branch=master&failingText=Windows%20build%20failing&passingText=Windows%20build%20passing)](https://ci.appveyor.com/project/BigstickCarpet/json-schema-lib/branch/master)

[![Coverage Status](https://coveralls.io/repos/BigstickCarpet/json-schema-lib/badge.svg?branch=master&service=github)](https://coveralls.io/r/BigstickCarpet/json-schema-lib)
[![Codacy Score](https://api.codacy.com/project/badge/Grade/c534bafe6ea349d8883761996f545d4f)](https://www.codacy.com/public/jamesmessinger/json-schema-lib)
[![Inline docs](http://inch-ci.org/github/BigstickCarpet/json-schema-lib.svg?branch=master&style=shields)](http://inch-ci.org/github/BigstickCarpet/json-schema-lib)
[![Dependencies](https://david-dm.org/BigstickCarpet/json-schema-lib.svg)](https://david-dm.org/BigstickCarpet/json-schema-lib)

[![npm](http://img.shields.io/npm/v/json-schema-lib.svg)](https://www.npmjs.com/package/json-schema-lib)
[![Bower](http://img.shields.io/bower/v/json-schema-lib.svg)](http://bower.io/)
[![License](https://img.shields.io/npm/l/json-schema-lib.svg)](LICENSE)

[![Browser Compatibility](https://saucelabs.com/browser-matrix/json-schema-lib.svg)](https://saucelabs.com/u/json-schema-lib)


Work In Progress
--------------------------
This library is still in development and is **NOT** ready to use yet.  Please feel free to review the source code, ask questions, or offer assistance.
npm package: @nodecg/react-hooks
Description: Custom React Hooks for NodeCG
Author: Keiichiro Amemiya
Latest version: 1.0.3

# @nodecg/react-hooks

This package is a collection custom hooks of [React Hooks](https://reactjs.org/docs/hooks-intro.html) for NodeCG API.

🚨 This package is in alpha state. But feel free to try out and file an issue for suggestion/bugs!

## Install

```sh
npm install @nodecg/react-hooks
# or
yarn add @nodecg/react-hooks
# or
pnpm add @nodecg/react-hooks
```

## About React Hooks

(This section comes from when React hooks was just introduced as an alpha feature, but is still useful to keep as an introduction.)

The React Hooks are a new way of **sharing code** between components, introduced in version 16.8.

**_Please read the documentation of React Hooks thoroughly before using them._**

- [Video introduction](https://youtu.be/dpw9EHDh2bM)
- [The Motivation](https://reactjs.org/docs/hooks-intro.html#motivation)
- [Rules](https://reactjs.org/docs/hooks-rules.html)
- [Hooks API reference](https://reactjs.org/docs/hooks-reference.html)
- [FAQ](https://reactjs.org/docs/hooks-faq.html)

It also helps to learn the background mechanism of React Hooks.
[React hooks: not magic, just arrays](https://medium.com/@ryardley/react-hooks-not-magic-just-arrays-cd4f1857236e)

## Recommendation

Use [eslint-plugin-react-hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks) in your project. It is 100% smarter than you to detect violation of the Rules of Hooks.

## Usage

### `useReplicant`

- Subscribes to specified replicant and returns the value as state.
- Allows you to use replicant values in function component.

```tsx
import { useReplicant } from "@nodecg/react-hooks";

// This component will re-render when the `counter replicant value changes
export function RunnerName() {
  const [count, setCount] = useReplicant("counter");
  return (
    <div>
      <div>{count}</div>
      <button onClick={() => setCount(count + 1)} />
    </div>
  );
}
```

### `useListenFor`

- Subscribes messages with `listenFor`, and unlistens on unmount.
- Combining with other hooks enables powerful stateful features with function component

```tsx
import { useListenFor } from "@nodecg/react-hooks";

// Shows modal for 1 second when NodeCG receives 'errorHappened' message from the server
export function AlertOnMessage() {
  const [showAlert, setShowAlert] = useState(false);
  useListenFor("errorHappened", () => {
    setShowAlert(true);
  });
  useEffect(() => {
    if (!showAlert) {
      return;
    }
    // Disappear alert 1 second after
    const timer = setTimeout(() => {
      setShowAlert(false);
    }, 1000);
    // Make sure to return cleanup function
    return () => {
      clearTimeout(timer);
    };
  }, [showAlert]);

  return <Modal show={showAlert} />;
}
```

## License

MIT &copy; Keiichiro Amemiya (Hoishin)
npm package: @nodecraft/browserslist-config
Description: Nodecraft Browserslist config
Author: Nodecraft Inc.
Latest version: 3.0.0

# browserslist-config
Nodecraft's browserslist configuration

## What is Browserslist?

Share browsers list between different front-end tools, like [stylelint](https://stylelint.io/), [postcss-preset-env](https://preset-env.cssdb.org/), and [@babel/preset-env](https://babeljs.io/docs/en/babel-preset-env).

- [Browserslist](https://github.com/ai/browserslist) (Github repo)
- [browserl.ist](http://browserl.ist) (Browserslist query syntax validation)
- ["Browserslist is a Good Idea"](https://css-tricks.com/browserlist-good-idea/) (blog post by [@chriscoyier](https://github.com/chriscoyier))

## Browser support

Nodecraft generally supports the last 3 versions of every major browser. There are a few exceptions:

- IE is never supported
- Firefox ESR is always supported

## Usage

### browserslist
```
extends @nodecraft/browserslist-config
not extends @nodecraft/browserslist-config/exclude
```

### package.json

```json
{
  "browserslist": [
  	"extends @nodecraft/browserslist-config",
  	"not extends @nodecraft/browserslist-config/exclude"
  ]
}
```
npm package: @nodecraft/commitlint-config
Description: Nodecraft commitlint config
Author: Nodecraft Inc.
Latest version: 1.1.0

# commitlint-config
Nodecraft's commitlint configuration

## What is commitlint?

commitlint checks if your commit messages meet the conventional commit format.

## Usage

### commitlint.config.js

```js
'use strict';
module.exports = {
	extends: ['@nodecraft/commitlint-config']
};
```
npm package: @nodecraft/eslint-config
Description: Nodecraft base JS ESLint config
Author: Nodecraft Inc.
Latest version: 48.1.1

# @nodecraft/eslint-config
[![Actions Status](https://github.com/nodecraft/eslint-config/workflows/Test/badge.svg)](https://github.com/nodecraft/eslint-config/actions)
## Usage

We export our standard ESLint configuration for use in all Nodecraft projects.

For ESLint v10, use version >47.0.0 of this package. For ESLint v8, use version 47.0.0.

Our default export contains all of our ESLint rules, including ECMAScript 6+. It requires `eslint`, `eslint-plugin-unicorn`, `@stylistic/eslint-plugin` and `eslint-plugin-import-x`.

1. Install package:

```sh
npm install --save-dev @nodecraft/eslint-config
```

2.

```js
// eslint.config.js
import nodecraftEslint from '@nodecraft/eslint-config';

export default [
	...nodecraftEslint.configs.base,
];
```

### JSON

To lint JSON files, extend `configs.json`. This uses `@eslint/json` with support for JSON with comments (JSONC).

Since the base config's JS rules don't have `files` restrictions, they will cascade onto JSON files and cause errors. You need to scope the base configs to ignore JSON files:

```js
// eslint.config.js
import nodecraftEslint from '@nodecraft/eslint-config';

const jsonIgnore = ['**/*.json'];

export default [
	...nodecraftEslint.configs.base.map(config => ({ ...config, ignores: jsonIgnore })),
	...nodecraftEslint.configs.json,
];
```

### Node.js

If your application runs in Node.js, also extend `configs.node`. Be sure to also install the following optional peer dependencies:
- `eslint-plugin-node`

```js
// eslint.config.js
import nodecraftEslint from '@nodecraft/eslint-config';
export default [
	...nodecraftEslint.configs.base,
	...nodecraftEslint.configs.node,
];
```

### Vue.js

If your application uses Vue.js 3.x, also extend `configs.vue3` in your eslint config. Vue.js 2.x is no longer supported.

Also then extend `configs["vue-a11y"]` for our Vue Accessibility rules.

Be sure to also install the following optional peer dependencies:

- `eslint-plugin-vue`
- `eslint-plugin-vue-a11y`
- `vue-eslint-parser`

### TypeScript

If your application uses TypeScript, instead of extending `configs.base`, extend `configs.typescript`. Also ensure you install the following optional peer depenendies:

- `typescript`
- `typescript-eslint`