{"_id":"@3d-outlet/common","_rev":"3-34442e917a00671096cda4d55d5895b9","name":"@3d-outlet/common","dist-tags":{"latest":"1.3.1"},"versions":{"1.2.0":{"name":"@3d-outlet/common","version":"1.2.0","_id":"@3d-outlet/common@1.2.0","maintainers":[{"name":"kitty_ilnazik","email":"ilnazm1ngaleev@yandex.com"}],"dist":{"shasum":"f3d31fa38fa29e03403ab6f22c35677acbf94d73","tarball":"https://registry.npmjs.org/@3d-outlet/common/-/common-1.2.0.tgz","fileCount":2,"integrity":"sha512-faUdKCpHx1/UT0miWADhtkKeYMBY4hX8plZGGEZVsz1ElakbvfZpfksj4zUb5xq/AYLzX2M/ITAmfmFEDdtofQ==","signatures":[{"sig":"MEQCID1V43S2I60ggWJbliHHKhIs96dVVvrOTYFHkWceWFqAAiB81P7T96p/HvMIIovHpZPBNxpFMvBn5vA8S0febucUmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4417},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5ce37a8a0adb8e1949874ab3871ba41585853f9e","scripts":{"build":"tsc -p tsconfig.build.json","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"kitty_ilnazik","email":"ilnazm1ngaleev@yandex.com"},"_npmVersion":"10.8.2","description":"Core shared components for Face3D microservice ecosystem","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@nestjs/common":"^11.1.9","@nestjs/config":"^4.0.2","@3d-outlet/contracts":"^1.0.0","@nestjs/microservices":"^11.1.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.3","typescript":"^5.9.3","@types/node":"^24.10.1","@3d-outlet/core":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/common_1.2.0_1767955534627_0.798370218040948","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@3d-outlet/common","version":"1.2.1","_id":"@3d-outlet/common@1.2.1","maintainers":[{"name":"kitty_ilnazik","email":"ilnazm1ngaleev@yandex.com"}],"dist":{"shasum":"8dffbe9c24b9db0b3a057dad9b962b93d4f521ba","tarball":"https://registry.npmjs.org/@3d-outlet/common/-/common-1.2.1.tgz","fileCount":28,"integrity":"sha512-LUu6C8PJUkzO31L+ruwNETCZe1kaSryjyyhioiM3oQguxIBmSi244vrNEtl42jnXDw4NcGAOBuShyY50wthptw==","signatures":[{"sig":"MEUCIQCH2qFtc2VOy54dafQoasFwHAEmKYf76gRrfU5gmsu0MQIgCMuyhmp1xTlwwLtyvPqgzP0zDoeLgPLcMGkgzDa/O4s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21683},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"ed61d9cc8783f35d1fdc11cfec522c608a340b0c","scripts":{"build":"tsc -p tsconfig.build.json","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"kitty_ilnazik","email":"ilnazm1ngaleev@yandex.com"},"_npmVersion":"10.8.2","description":"Core shared components for Face3D microservice ecosystem","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@nestjs/common":"^11.1.9","@nestjs/config":"^4.0.2","@3d-outlet/contracts":"^1.1.4","@nestjs/microservices":"^11.1.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.3","typescript":"^5.9.3","@types/node":"^24.10.1","@3d-outlet/core":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/common_1.2.1_1767958216465_0.2519490255345098","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@3d-outlet/common","version":"1.3.1","description":"Core shared components for Face3D microservice ecosystem","main":"dist/index.js","types":"dist/index.d.ts","publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.build.json","format":"prettier --write \"src/**/*.ts\""},"devDependencies":{"@types/node":"^24.10.1","@3d-outlet/core":"^1.0.1","prettier":"^3.7.3","typescript":"^5.9.3"},"dependencies":{"@3d-outlet/contracts":"^1.3.4","@nestjs/common":"^11.1.9","@nestjs/config":"^4.0.2","@nestjs/microservices":"^11.1.9"},"_id":"@3d-outlet/common@1.3.1","gitHead":"0995401a3ee1e2882a2afe4c3b8bf2c0d5a2f343","_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-CZOtzM7Q3VKF1DncopI72j9BLxTMCOhptoWBvKn+zWpZ1XUDtlzN2vOWLyIi3u67LXZoWeS0bFECHzPNxsYrXw==","shasum":"30ad7e69150edb1770cf915515f0c37715b505eb","tarball":"https://registry.npmjs.org/@3d-outlet/common/-/common-1.3.1.tgz","fileCount":28,"unpackedSize":22555,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB+r7acN0t2qPyiv8tC3JOdkdfGA0blZxR4+CkK2rfAxAiBW+0Ju5UNAA09Wy1/v4Ot9PbtJCbN8492LFMX8klBESw=="}]},"_npmUser":{"name":"kitty_ilnazik","email":"ilnazm1ngaleev@yandex.com"},"directories":{},"maintainers":[{"name":"kitty_ilnazik","email":"ilnazm1ngaleev@yandex.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/common_1.3.1_1767967337211_0.4198276719981917"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-09T10:45:34.523Z","modified":"2026-01-09T14:02:17.588Z","1.2.0":"2026-01-09T10:45:34.789Z","1.2.1":"2026-01-09T11:30:16.605Z","1.3.1":"2026-01-09T14:02:17.390Z"},"description":"Core shared components for Face3D microservice ecosystem","maintainers":[{"name":"kitty_ilnazik","email":"ilnazm1ngaleev@yandex.com"}],"readme":"<div align=\"center\">\n\n# 🛠️ @3d-outlet/common\n\n**Common Utilities and Modules for 3D OUTLET Microservices**\n\n[![npm version](https://img.shields.io/npm/v/@3d-outlet/common?style=for-the-badge)](https://www.npmjs.com/package/@3d-outlet/common)\n[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg?style=for-the-badge)](https://opensource.org/licenses/ISC)\n\n</div>\n\n---\n\n## ✨ Features\n\n- 🔌 **gRPC Client Integration** - Simplified setup and usage of gRPC clients in NestJS.\n- 🛠️ **gRPC Client Factory** - Centralized creation and management of gRPC clients.\n- 🏗️ **Injection Decorators** - Convenient decorators for injecting gRPC clients into NestJS services.\n- 📦 **RPC Statuses** - Common RPC status enumeration for error handling.\n- 🔄 **Conversion Utilities** - Helper functions for data manipulation, such as converting `Timestamp` to ISO format.\n\n---\n\n## 📦 Installation\n\n```bash\nnpm install @3d-outlet/common\n# or\npnpm add @3d-outlet/common\n# or\nyarn add @3d-outlet/common\n# or\nbun add @3d-outlet/common\n```\n\n---\n\n## 🚀 Quick Start\n\n### Registering gRPC Clients\n\n```typescript\nimport { GrpcModule } from '@3d-outlet/common'\nimport { GRPC_CLIENTS } from '@3d-outlet/common/lib/grpc/registry/grpc.registry'\n\n@Module({\n  imports: [\n    GrpcModule.register([\n      'AUTH_PACKAGE', // Example of registering a client for AUTH_PACKAGE\n    ]),\n  ],\n})\nexport class AppModule {}\n```\n\n### Injecting gRPC Clients\n\n```typescript\nimport { Injectable } from '@nestjs/common'\nimport { ClientGrpc } from '@nestjs/microservices'\nimport { InjectGrpcClient } from '@3d-outlet/common'\nimport { AuthServiceClient } from '@3d-outlet/contracts' // Example client\n\n@Injectable()\nexport class AuthService {\n  constructor(\n    @InjectGrpcClient('AUTH_PACKAGE') private readonly authClient: ClientGrpc,\n  ) {}\n\n  onModuleInit() {\n    this.authServiceClient =\n      this.authClient.getService<AuthServiceClient>('AuthService')\n  }\n\n  // ... use authServiceClient\n}\n```\n\n### Using Utilities\n\n```typescript\nimport { timestampToISO, RpcStatus } from '@3d-outlet/common'\nimport { Timestamp } from '@3d-outlet/contracts/gen/ts/google/protobuf/timestamp'\n\nconst grpcTimestamp: Timestamp = { seconds: 1678886400, nanos: 0 } // Example\nconst isoString = timestampToISO(grpcTimestamp)\nconsole.log(isoString) // \"2023-03-15T00:00:00.000Z\"\n\nconsole.log(RpcStatus.OK) // 0\n```\n\n---\n\n## 📁 Project Structure\n\n```\ncommon/\n├── lib/                      # TypeScript source files\n│   ├── enums/                # Common enumerations, such as RpcStatus\n│   ├── grpc/                 # Modules and utilities for working with gRPC\n│   │   ├── constants/        # gRPC constants\n│   │   ├── decorators/       # Decorators for injecting gRPC clients\n│   │   ├── factory/          # Factory for creating gRPC clients\n│   │   └── registry/         # Registry of gRPC clients\n│   └── utils/                # General utility functions\n└── dist/                     # Compiled JavaScript (after build)\n```\n\n---\n\n## 🛠️ Development\n\n### Prerequisites\n\n-   **Node.js**: >= 16.0.0\n-   **TypeScript**: ^5.9.3\n\n### Building the Package\n\n```bash\n# Install dependencies\nnpm install\n# or\npnpm install\n# or\nbun install\n\n# Build TypeScript\nnpm run build\n```\n\n---\n\n## 📝 License\n\nISC © [TeaCoder](mailto:admin@teacoder.ru) & [Ilnaz Mingaleev](mailto:development@teamkaif.com)\n\n---\n\n## 👨‍💻 Authors\n\n**TeaCoder (Vadim)**\n\n-   Email: [admin@teacoder.ru](mailto:admin@teacoder.ru)\n\n**Ilnaz Mingaleev**\n\n-   Email: [development@teamkaif.com](mailto:development@teamkaif.com)\n\n---\n\n<div align=\"center\">\n\n**Made with ❤️ for the 3D OUTLET project (private repo)**  \nInternal use only.\n\n</div>\n","readmeFilename":"README.md"}