open-index/open-npm huggingface dataset:
npm package: @fastrack/core
Description: Application bootstrap, starter loading, config aggregation and validation, standard error model, request context and correlation IDs, graceful shutdown and readiness toggle.
Latest version: 0.1.0

# @fastrack/core

Application bootstrap, starter loading, config aggregation and validation, standard error model, request context and correlation IDs, graceful shutdown and readiness toggle.

See [docs/architecture.md](../../docs/architecture.md) and the design document for the full platform vision.

## Install

```bash
pnpm add @fastrack/core
```

## Usage

```ts
import { createApp } from "@fastrack/core";
import { webStarter } from "@fastrack/starter-web";
import { actuatorStarter } from "@fastrack/starter-actuator";

const app = await createApp({
  starters: [webStarter, actuatorStarter],
});

await app.listen({ port: 3000 });
```

## Env config (dotenv)

By default, `createApp` loads a `.env` file from the current working directory (via [dotenv](https://www.npmjs.com/package/dotenv)), so `process.env` is populated before config is built. You can then pass config from env or use it in starters:

```ts
const app = await createApp({
  envPath: ".env",        // default; set to false to disable
  config: {
    web: { port: Number(process.env.PORT) ?? 3000 },
  },
});
```

Set `envPath: false` to disable loading a .env file.

## API

- `createApp(options)` — Bootstrap Fastify with starters and config.
- `FastrackStarter<TConfig>` — Starter interface (name, configSchema, register).
- `FastrackContext` — Bootstrap context passed to starters.
- Problem-details error schema and `replyError` helper.
- Readiness getter/setter for actuator integration.
npm package: @fastrack/di
Description: Inversify-style dependency injection for Fastrack: constructor injection only, singleton scope by default, explicit bindings via `ContainerModule`. DI never auto-registers routes; Fastify plugins stay responsible for HTTP boundaries.
Latest version: 0.1.0

# @fastrack/di

Inversify-style dependency injection for Fastrack: constructor injection only, singleton scope by default, explicit bindings via `ContainerModule`. DI never auto-registers routes; Fastify plugins stay responsible for HTTP boundaries.

See [docs/architecture.md](../../docs/architecture.md).

## Install

```bash
pnpm add @fastrack/di
```

## Usage

```ts
import { createContainer, bind } from "@fastrack/di";
import { MyService } from "./my-service.js";

const container = createContainer();
container.load(
  bind(MyService).toSelf().inSingletonScope()
);

const service = container.get(MyService);
```

## Rules

- Constructor injection only.
- Singleton scope default.
- Explicit bindings via ContainerModule; no auto-registration of routes.
npm package: @fastrack/generator
Description: CLI: `fastrack new <service>`, `fastrack gen resource|controller|service|repository [--db mssql|oracle]`. Generated structure: src/routes, schemas, services, repositories, di. Explicit, boring code.
Latest version: 0.1.0

# @fastrack/generator

CLI: `fastrack new <service>`, `fastrack gen resource|controller|service|repository [--db mssql|oracle]`. Generated structure: src/routes, schemas, services, repositories, di. Explicit, boring code.

See [docs/architecture.md](../../docs/architecture.md).
npm package: @fastrack/starter-actuator
Description: Endpoints: `/live` (process alive), `/ready` (readiness + contributors), `/health` (full health), `/info` (version/build/env), `/metrics` (Prometheus). Other starters register health contributors.
Latest version: 0.1.0

# @fastrack/starter-actuator

Endpoints: `/live` (process alive), `/ready` (readiness + contributors), `/health` (full health), `/info` (version/build/env), `/metrics` (Prometheus). Other starters register health contributors.

See [docs/starters.md](../../docs/starters.md).
npm package: @fastrack/starter-db-mssql
Description: MSSQL pooled connections via `mssql` driver. Contract: query(sql, params), transaction(fn), health() with SELECT 1. Parameterized queries only.
Latest version: 0.1.0

# @fastrack/starter-db-mssql

MSSQL pooled connections via `mssql` driver. Contract: query(sql, params), transaction(fn), health() with SELECT 1. Parameterized queries only.

See [docs/starters.md](../../docs/starters.md).
npm package: @fastrack/starter-db-oracle
Description: Oracle pooled connections via `oracledb`. Contract: query(sql, params), transaction(fn), health() with lightweight readiness query.
Latest version: 0.1.0

# @fastrack/starter-db-oracle

Oracle pooled connections via `oracledb`. Contract: query(sql, params), transaction(fn), health() with lightweight readiness query.

See [docs/starters.md](../../docs/starters.md).
npm package: @fastrack/starter-http
Description: HTTP client wrapper (fetch/undici, Node 18+): timeouts, retries for idempotent methods only, correlation ID propagation. No ad-hoc HTTP clients (design rule).
Latest version: 0.1.0

# @fastrack/starter-http

HTTP client wrapper (fetch/undici, Node 18+): timeouts, retries for idempotent methods only, correlation ID propagation. No ad-hoc HTTP clients (design rule).

Use a **singleton** client; pass the current request's correlation ID at **request time** so it is propagated on outbound calls:

```ts
// In a route handler (starter-web sets request.correlationId)
const res = await app.httpClient.fetch("https://api.example.com/data", undefined, {
  correlationId: request.correlationId,
});
```

See [docs/starters.md](../../docs/starters.md).
npm package: @fastrack/starter-observability-dd
Description: Initialize dd-trace early, log/trace correlation, standard tags (service/env/version/git), outbound and DB span hooks. Pino recommended for structured JSON logs.
Latest version: 0.1.0

# @fastrack/starter-observability-dd

Initialize dd-trace early, log/trace correlation, standard tags (service/env/version/git), outbound and DB span hooks. Pino recommended for structured JSON logs.

See [docs/starters.md](../../docs/starters.md).
npm package: @fastrack/starter-openapi
Description: Generate OpenAPI from TypeBox schemas, expose Swagger UI at `/docs`. Swagger disabled or gated in prod by default.
Latest version: 0.1.0

# @fastrack/starter-openapi

Generate OpenAPI from TypeBox schemas, expose Swagger UI at `/docs`. Swagger disabled or gated in prod by default.

See [docs/starters.md](../../docs/starters.md).
npm package: @fastrack/starter-redis
Description: Lifecycle-managed Redis client, health check (PING), cache helpers with TTL. No collision-free counters; no sensitive data by default.
Latest version: 0.1.0

# @fastrack/starter-redis

Lifecycle-managed Redis client, health check (PING), cache helpers with TTL. No collision-free counters; no sensitive data by default.

See [docs/starters.md](../../docs/starters.md).
npm package: @fastrack/starter-web
Description: Baseline Fastify plugins, request context initialization, standardized error handler, TypeBox type provider. Establishes the runtime contract for all services.
Latest version: 0.1.0

# @fastrack/starter-web

Baseline Fastify plugins, request context initialization, standardized error handler, TypeBox type provider. Establishes the runtime contract for all services.

See [docs/starters.md](../../docs/starters.md).

## Install

```bash
pnpm add @fastrack/starter-web @fastrack/core
```