WHAT WAS DONE: - Created npm workspaces configuration in root package.json - Set up directory structure (services/, shared/, future/) - Created @firefrost/shared package (v1.0.0) - Added comprehensive .gitignore for Node.js projects - Created root README with architecture documentation - Added placeholder READMEs for shared/ and future/ directories WHY: - Implement Gemini-approved monorepo architecture - Enable service-prefixed Git tag versioning - Support npm workspaces for dependency management - Provide foundation for Arbiter 2.1 deployment - Align with 'decades not months' sustainability philosophy STRUCTURE: Root level: - package.json (workspaces: services/*, shared) - .gitignore (protects .env files from commits) - README.md (comprehensive documentation) Directories: - services/ (production services - empty, ready for Arbiter) - shared/ (@firefrost/shared v1.0.0 - placeholder) - future/ (experimental services) FILES: - .gitignore (new, 39 lines) - README.md (new, 242 lines) - package.json (new, 27 lines) - shared/package.json (new, 17 lines) - shared/README.md (new, 47 lines) - shared/src/index.js (new, 13 lines) - future/README.md (new, 38 lines) NEXT STEPS: - Migrate Arbiter 2.1 code to services/arbiter/ - Create arbiter-v2.1.0 tag for first versioned deployment - Test deployment workflow and systemd configuration Signed-off-by: The Golden Chronicler <claude@firefrostgaming.com>
@firefrost/shared
Shared utilities and helpers for Firefrost Gaming services.
Purpose
This package contains code that is used by multiple services in the firefrost-services monorepo. By centralizing common functionality here, we avoid duplication and ensure consistency across services.
Contents
- Database utilities — Connection pooling, query helpers
- Discord utilities — Embed formatting, role management helpers
- Pterodactyl utilities — API wrappers, server management
- Logging — Standardized logging across services
- Validation — Common validation functions
Usage
Services import from this package like any npm dependency:
import { logger } from '@firefrost/shared';
import { formatDiscordEmbed } from '@firefrost/shared';
logger.info('Service started');
Development
To add new shared functionality:
- Create module in
src/ - Export from
src/index.js - Update version in
package.json - Document in this README
Version History
- 1.0.0 — Initial shared package structure
💙🔥❄️