@breadstone/archipel-platform-core
v0.0.41
Published
Core templates, events, identifiers, and shared backend utilities for NestJS applications.
Maintainers
Readme
@breadstone/archipel-platform-core
Core backend utilities and shared infrastructure for NestJS applications.
Features
- Event system - Typed publish/subscribe with RxJS via
EventHub - Content templates - Handlebars-style template compilation
- Identifier generation - Pluggable ID strategies (CUID, UUID, GUID)
- Base classes - Repository, service, and controller base classes
- Custom decorators - NestJS decorators for common patterns
- Utilities - Device parser, avatar generator, username generator
- Sensitive data masking -
maskSensitive()/maskSensitiveFields()for safe logging of request data - HTTP logger middleware - Automatically masks sensitive fields (passwords, tokens, API keys) in request logs
⚠️ Environment Variables
| Variable | Required | Default | Description |
| ------------- | -------- | ------------- | --------------------------------------- |
| APP_URL | yes | - | Base URL the application is served from |
| APP_PORT | yes | - | HTTP port the application listens on |
| APP_VERSION | yes | - | Semantic application version |
| APP_NAME | no | - | Application display name |
| NODE_ENV | no | development | Runtime environment name |
| GIT_COMMIT | no | - | Git commit SHA for traceability |
Quick Start
import { CoreModule } from '@breadstone/archipel-platform-core';
@Module({
imports: [CoreModule],
})
export class AppModule {}Import Options
// Main import
import { EventHub, SseHub, ContentTemplate } from '@breadstone/archipel-platform-core';
// Avatar generation (tree-shakable sub-export)
import { UserAvatarGenerator } from '@breadstone/archipel-platform-core/avatar';
// Device parsing
import { DeviceParser } from '@breadstone/archipel-platform-core/device';
// MIME utilities
import { MimeUtils } from '@breadstone/archipel-platform-core/mime-utils';Error Handling
| Error Class | When Thrown |
| -------------------------------- | ------------------------------------- |
| TemplateValidationError | Base class for template errors |
| UnmatchedBlockError | Unmatched block in template |
| MissingPlaceholderError | Required template placeholder missing |
| GeneralTemplateValidationError | Other template validation failures |
Resource Limits
| Limit | Value | Description |
| ----------------- | ------ | -------------------------------------------- |
| SseHub subjects | 10,000 | Maximum event subjects; throws when exceeded |
| Max request body | 1 MB | LimitRequestSizeMiddleware default cap |
Lifecycle
- Shutdown (
OnModuleDestroy):EventHubandSseHubclean up subscriptions.
Peer Dependencies
| Package | Required | Notes |
| ------------------- | -------- | ----------------------- |
| @nestjs/common | Yes | NestJS core |
| @nestjs/swagger | Yes | OpenAPI decorators |
| class-transformer | Yes | DTO transformation |
| class-validator | Yes | DTO validation |
| express | Yes | HTTP server types |
| rxjs | Yes | Reactive event streams |
| canvas | Yes | Avatar image generation |
Documentation
📖 Package Docs: .docs/packages/platform-core/index.md
Development
# Build
yarn nx build platform-core
# Test
yarn nx test platform-core
# Lint
yarn nx lint platform-core