bozonx-social-media-posting 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/package.json +103 -0
- package/dist/src/app.module.d.ts +2 -0
- package/dist/src/app.module.js +126 -0
- package/dist/src/app.module.js.map +1 -0
- package/dist/src/library.js +13 -0
- package/dist/src/library.js.map +1 -1
- package/dist/src/main.d.ts +1 -0
- package/dist/src/main.js +81 -0
- package/dist/src/main.js.map +1 -0
- package/dist/src/modules/post/post.service.js +16 -2
- package/dist/src/modules/post/post.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -788,15 +788,15 @@ Key features of library mode:
|
|
|
788
788
|
### Installation
|
|
789
789
|
|
|
790
790
|
```bash
|
|
791
|
-
npm install social-media-posting
|
|
791
|
+
npm install bozonx-social-media-posting
|
|
792
792
|
# or
|
|
793
|
-
pnpm add social-media-posting
|
|
793
|
+
pnpm add bozonx-social-media-posting
|
|
794
794
|
```
|
|
795
795
|
|
|
796
796
|
### Quick Start
|
|
797
797
|
|
|
798
798
|
```typescript
|
|
799
|
-
import { createPostingClient } from 'social-media-posting
|
|
799
|
+
import { createPostingClient } from 'bozonx-social-media-posting';
|
|
800
800
|
|
|
801
801
|
const client = createPostingClient({
|
|
802
802
|
accounts: {
|
|
@@ -877,7 +877,7 @@ Gracefully shuts down the client, cleaning up any timers or internal resources.
|
|
|
877
877
|
You can provide your own logger by implementing the `ILogger` interface:
|
|
878
878
|
|
|
879
879
|
```typescript
|
|
880
|
-
import { ILogger, createPostingClient } from 'social-media-posting
|
|
880
|
+
import { ILogger, createPostingClient } from 'bozonx-social-media-posting';
|
|
881
881
|
|
|
882
882
|
class MyLogger implements ILogger {
|
|
883
883
|
debug(msg: string, ctx?: string) { /* ... */ }
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "bozonx-social-media-posting",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Social media posting library and microservice with multi-platform support",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"social-media",
|
|
7
|
+
"posting",
|
|
8
|
+
"telegram",
|
|
9
|
+
"library",
|
|
10
|
+
"microservice",
|
|
11
|
+
"nestjs",
|
|
12
|
+
"bot",
|
|
13
|
+
"automation"
|
|
14
|
+
],
|
|
15
|
+
"type": "module",
|
|
16
|
+
"main": "./dist/src/index.js",
|
|
17
|
+
"types": "./dist/src/index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./dist/src/index.d.ts",
|
|
21
|
+
"import": "./dist/src/index.js",
|
|
22
|
+
"default": "./dist/src/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./library": {
|
|
25
|
+
"types": "./dist/src/library.d.ts",
|
|
26
|
+
"import": "./dist/src/library.js"
|
|
27
|
+
},
|
|
28
|
+
"./types": {
|
|
29
|
+
"types": "./dist/src/index.d.ts"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"dist",
|
|
34
|
+
"README.md",
|
|
35
|
+
"LICENSE"
|
|
36
|
+
],
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "nest build",
|
|
39
|
+
"build:lib": "tsc -p tsconfig.lib.json",
|
|
40
|
+
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
41
|
+
"start": "nest start",
|
|
42
|
+
"start:dev": "NODE_ENV=development nest start --watch",
|
|
43
|
+
"start:debug": "NODE_ENV=development nest start --debug --watch",
|
|
44
|
+
"start:prod": "NODE_ENV=production node dist/src/main.js",
|
|
45
|
+
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
|
46
|
+
"test": "NODE_OPTIONS=--experimental-vm-modules jest",
|
|
47
|
+
"test:unit": "NODE_OPTIONS=--experimental-vm-modules jest --selectProjects unit",
|
|
48
|
+
"test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch",
|
|
49
|
+
"test:cov": "NODE_OPTIONS=--experimental-vm-modules jest --coverage",
|
|
50
|
+
"test:debug": "NODE_OPTIONS=--experimental-vm-modules node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand --detectOpenHandles",
|
|
51
|
+
"test:unit:debug": "NODE_OPTIONS=--experimental-vm-modules node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand --selectProjects unit --detectOpenHandles",
|
|
52
|
+
"test:e2e:debug": "NODE_OPTIONS=--experimental-vm-modules node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand --selectProjects e2e --detectOpenHandles",
|
|
53
|
+
"test:e2e": "NODE_OPTIONS=--experimental-vm-modules jest --selectProjects e2e",
|
|
54
|
+
"lib:publish": "pnpm build:lib && pnpm publish --access public"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"@nestjs/cache-manager": "^3.1.0",
|
|
58
|
+
"@nestjs/common": "^11.1.11",
|
|
59
|
+
"@nestjs/core": "^11.1.11",
|
|
60
|
+
"cache-manager": "^7.2.7",
|
|
61
|
+
"class-transformer": "^0.5.1",
|
|
62
|
+
"class-validator": "^0.14.3",
|
|
63
|
+
"grammy": "^1.39.2",
|
|
64
|
+
"reflect-metadata": "^0.2.2",
|
|
65
|
+
"rxjs": "^7.8.2"
|
|
66
|
+
},
|
|
67
|
+
"optionalDependencies": {
|
|
68
|
+
"@nestjs/config": "^4.0.2",
|
|
69
|
+
"@nestjs/platform-fastify": "^11.1.11",
|
|
70
|
+
"fastify": "^5.6.2",
|
|
71
|
+
"js-yaml": "^4.1.1",
|
|
72
|
+
"nestjs-pino": "^4.5.0",
|
|
73
|
+
"pino": "^10.1.0"
|
|
74
|
+
},
|
|
75
|
+
"devDependencies": {
|
|
76
|
+
"@nestjs/cli": "^11.0.14",
|
|
77
|
+
"@nestjs/schematics": "^11.0.9",
|
|
78
|
+
"@nestjs/testing": "^11.1.11",
|
|
79
|
+
"@types/jest": "^30.0.0",
|
|
80
|
+
"@types/js-yaml": "^4.0.9",
|
|
81
|
+
"@types/node": "^25.0.3",
|
|
82
|
+
"@typescript-eslint/eslint-plugin": "^8.52.0",
|
|
83
|
+
"@typescript-eslint/parser": "^8.52.0",
|
|
84
|
+
"eslint": "^9.39.2",
|
|
85
|
+
"eslint-config-prettier": "^10.1.8",
|
|
86
|
+
"eslint-plugin-jest": "^29.12.1",
|
|
87
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
88
|
+
"jest": "^30.2.0",
|
|
89
|
+
"nock": "^14.0.10",
|
|
90
|
+
"pino-pretty": "^13.1.3",
|
|
91
|
+
"prettier": "^3.7.4",
|
|
92
|
+
"ts-jest": "^29.4.6",
|
|
93
|
+
"ts-node": "^10.9.2",
|
|
94
|
+
"tsconfig-paths": "^4.2.0",
|
|
95
|
+
"typescript": "^5.9.3"
|
|
96
|
+
},
|
|
97
|
+
"author": "Ivan K",
|
|
98
|
+
"license": "MIT",
|
|
99
|
+
"engines": {
|
|
100
|
+
"node": ">=22.0.0"
|
|
101
|
+
},
|
|
102
|
+
"packageManager": "pnpm@10.13.1"
|
|
103
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Module } from '@nestjs/common';
|
|
8
|
+
import { CacheModule } from '@nestjs/cache-manager';
|
|
9
|
+
import { ConfigModule, ConfigService } from '@nestjs/config';
|
|
10
|
+
import { APP_FILTER, APP_INTERCEPTOR } from '@nestjs/core';
|
|
11
|
+
import { LoggerModule } from 'nestjs-pino';
|
|
12
|
+
import { HealthModule } from './modules/health/health.module.js';
|
|
13
|
+
import { AllExceptionsFilter } from './common/filters/all-exceptions.filter.js';
|
|
14
|
+
import { ShutdownModule } from './common/services/shutdown.module.js';
|
|
15
|
+
import { ShutdownInterceptor } from './common/interceptors/shutdown.interceptor.js';
|
|
16
|
+
import appConfig from './config/app.config.js';
|
|
17
|
+
import yamlConfig from './config/yaml.config.js';
|
|
18
|
+
import pkg from '../package.json' with { type: 'json' };
|
|
19
|
+
import { PostModule } from './modules/post/post.module.js';
|
|
20
|
+
import { AppConfigModule } from './modules/app-config/app-config.module.js';
|
|
21
|
+
let AppModule = class AppModule {
|
|
22
|
+
};
|
|
23
|
+
AppModule = __decorate([
|
|
24
|
+
Module({
|
|
25
|
+
imports: [
|
|
26
|
+
CacheModule.register({
|
|
27
|
+
isGlobal: true,
|
|
28
|
+
}),
|
|
29
|
+
ConfigModule.forRoot({
|
|
30
|
+
isGlobal: true,
|
|
31
|
+
load: [appConfig, yamlConfig],
|
|
32
|
+
envFilePath: [`.env.${process.env.NODE_ENV || 'development'}`, '.env'],
|
|
33
|
+
cache: true,
|
|
34
|
+
}),
|
|
35
|
+
LoggerModule.forRootAsync({
|
|
36
|
+
inject: [ConfigService],
|
|
37
|
+
useFactory: (configService) => {
|
|
38
|
+
const appConfig = configService.get('app');
|
|
39
|
+
const isDev = appConfig.nodeEnv === 'development';
|
|
40
|
+
return {
|
|
41
|
+
pinoHttp: {
|
|
42
|
+
level: appConfig.logLevel,
|
|
43
|
+
timestamp: () => `,"@timestamp":"${new Date().toISOString()}"`,
|
|
44
|
+
base: {
|
|
45
|
+
service: pkg.name ?? 'app',
|
|
46
|
+
environment: appConfig.nodeEnv,
|
|
47
|
+
},
|
|
48
|
+
transport: isDev
|
|
49
|
+
? {
|
|
50
|
+
target: 'pino-pretty',
|
|
51
|
+
options: {
|
|
52
|
+
colorize: true,
|
|
53
|
+
singleLine: false,
|
|
54
|
+
translateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss.l'Z'",
|
|
55
|
+
ignore: 'pid,hostname',
|
|
56
|
+
messageFormat: '[{context}] {msg}',
|
|
57
|
+
},
|
|
58
|
+
}
|
|
59
|
+
: undefined,
|
|
60
|
+
serializers: {
|
|
61
|
+
req: req => ({
|
|
62
|
+
id: req.id,
|
|
63
|
+
method: req.method,
|
|
64
|
+
url: req.url,
|
|
65
|
+
path: req.url?.split('?')[0],
|
|
66
|
+
remoteAddress: req.ip,
|
|
67
|
+
remotePort: req.socket?.remotePort,
|
|
68
|
+
}),
|
|
69
|
+
res: res => ({
|
|
70
|
+
statusCode: res.statusCode,
|
|
71
|
+
}),
|
|
72
|
+
err: err => ({
|
|
73
|
+
type: err.type,
|
|
74
|
+
message: err.message,
|
|
75
|
+
stack: err.stack,
|
|
76
|
+
}),
|
|
77
|
+
},
|
|
78
|
+
redact: {
|
|
79
|
+
paths: ['req.headers.authorization', 'req.headers["x-api-key"]'],
|
|
80
|
+
censor: '[REDACTED]',
|
|
81
|
+
},
|
|
82
|
+
customLogLevel: (req, res, err) => {
|
|
83
|
+
if (res.statusCode >= 500 || err) {
|
|
84
|
+
return 'error';
|
|
85
|
+
}
|
|
86
|
+
if (res.statusCode >= 400) {
|
|
87
|
+
return 'warn';
|
|
88
|
+
}
|
|
89
|
+
if (res.statusCode >= 300) {
|
|
90
|
+
return 'info';
|
|
91
|
+
}
|
|
92
|
+
return 'info';
|
|
93
|
+
},
|
|
94
|
+
autoLogging: {
|
|
95
|
+
ignore: req => {
|
|
96
|
+
if (appConfig.nodeEnv === 'production') {
|
|
97
|
+
return req.url?.includes('/health') || false;
|
|
98
|
+
}
|
|
99
|
+
return false;
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
},
|
|
105
|
+
}),
|
|
106
|
+
HealthModule,
|
|
107
|
+
AppConfigModule,
|
|
108
|
+
ShutdownModule,
|
|
109
|
+
PostModule,
|
|
110
|
+
],
|
|
111
|
+
controllers: [],
|
|
112
|
+
providers: [
|
|
113
|
+
{
|
|
114
|
+
provide: APP_FILTER,
|
|
115
|
+
useClass: AllExceptionsFilter,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
provide: APP_INTERCEPTOR,
|
|
119
|
+
useClass: ShutdownInterceptor,
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
exports: [ShutdownModule],
|
|
123
|
+
})
|
|
124
|
+
], AppModule);
|
|
125
|
+
export { AppModule };
|
|
126
|
+
//# sourceMappingURL=app.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/app.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAuGrE,IAAM,SAAS,GAAf,MAAM,SAAS;CAAI,CAAA;AAAb,SAAS;IArGrB,MAAM,CAAC;QACN,OAAO,EAAE;YACP,WAAW,CAAC,QAAQ,CAAC;gBACnB,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,YAAY,CAAC,OAAO,CAAC;gBACnB,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;gBAC7B,WAAW,EAAE,CAAC,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,EAAE,EAAE,MAAM,CAAC;gBACtE,KAAK,EAAE,IAAI;aACZ,CAAC;YACF,YAAY,CAAC,YAAY,CAAC;gBACxB,MAAM,EAAE,CAAC,aAAa,CAAC;gBACvB,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE;oBAC3C,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAY,KAAK,CAAE,CAAC;oBACvD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,KAAK,aAAa,CAAC;oBAElD,OAAO;wBACL,QAAQ,EAAE;4BACR,KAAK,EAAE,SAAS,CAAC,QAAQ;4BACzB,SAAS,EAAE,GAAG,EAAE,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG;4BAC9D,IAAI,EAAE;gCACJ,OAAO,EAAG,GAAW,CAAC,IAAI,IAAI,KAAK;gCACnC,WAAW,EAAE,SAAS,CAAC,OAAO;6BAC/B;4BACD,SAAS,EAAE,KAAK;gCACd,CAAC,CAAC;oCACA,MAAM,EAAE,aAAa;oCACrB,OAAO,EAAE;wCACP,QAAQ,EAAE,IAAI;wCACd,UAAU,EAAE,KAAK;wCACjB,aAAa,EAAE,gCAAgC;wCAC/C,MAAM,EAAE,cAAc;wCACtB,aAAa,EAAE,mBAAmB;qCACnC;iCACF;gCACD,CAAC,CAAC,SAAS;4BACb,WAAW,EAAE;gCACX,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oCACX,EAAE,EAAE,GAAG,CAAC,EAAE;oCACV,MAAM,EAAE,GAAG,CAAC,MAAM;oCAClB,GAAG,EAAE,GAAG,CAAC,GAAG;oCACZ,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oCAC5B,aAAa,EAAE,GAAG,CAAC,EAAE;oCACrB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU;iCACnC,CAAC;gCACF,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oCACX,UAAU,EAAE,GAAG,CAAC,UAAU;iCAC3B,CAAC;gCACF,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oCACX,IAAI,EAAE,GAAG,CAAC,IAAI;oCACd,OAAO,EAAE,GAAG,CAAC,OAAO;oCACpB,KAAK,EAAE,GAAG,CAAC,KAAK;iCACjB,CAAC;6BACH;4BACD,MAAM,EAAE;gCACN,KAAK,EAAE,CAAC,2BAA2B,EAAE,0BAA0B,CAAC;gCAChE,MAAM,EAAE,YAAY;6BACrB;4BACD,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gCAChC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;oCACjC,OAAO,OAAO,CAAC;gCACjB,CAAC;gCACD,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oCAC1B,OAAO,MAAM,CAAC;gCAChB,CAAC;gCACD,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;oCAC1B,OAAO,MAAM,CAAC;gCAChB,CAAC;gCACD,OAAO,MAAM,CAAC;4BAChB,CAAC;4BACD,WAAW,EAAE;gCACX,MAAM,EAAE,GAAG,CAAC,EAAE;oCACZ,IAAI,SAAS,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;wCACvC,OAAO,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;oCAC/C,CAAC;oCACD,OAAO,KAAK,CAAC;gCACf,CAAC;6BACF;yBACF;qBACF,CAAC;gBACJ,CAAC;aACF,CAAC;YACF,YAAY;YACZ,eAAe;YACf,cAAc;YACd,UAAU;SACX;QACD,WAAW,EAAE,EAAE;QACf,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,mBAAmB;aAC9B;YACD;gBACE,OAAO,EAAE,eAAe;gBACxB,QAAQ,EAAE,mBAAmB;aAC9B;SACF;QACD,OAAO,EAAE,CAAC,cAAc,CAAC;KAC1B,CAAC;GACW,SAAS,CAAI"}
|
package/dist/src/library.js
CHANGED
|
@@ -11,6 +11,10 @@ import { IdempotencyService } from './modules/post/idempotency.service.js';
|
|
|
11
11
|
import { ShutdownService } from './common/services/shutdown.service.js';
|
|
12
12
|
import { LibraryConfigService } from './config/library.config.js';
|
|
13
13
|
import { ConsoleLogger } from './common/interfaces/logger.interface.js';
|
|
14
|
+
import { TelegramPlatform } from './modules/platforms/telegram/telegram.platform.js';
|
|
15
|
+
import { TelegramAuthValidator } from './modules/platforms/telegram/telegram-auth.validator.js';
|
|
16
|
+
import { TelegramTypeDetector } from './modules/platforms/telegram/telegram-type-detector.service.js';
|
|
17
|
+
import { MediaService } from './modules/media/media.service.js';
|
|
14
18
|
// function mapLogLevel ...
|
|
15
19
|
function mapLogLevel(level) {
|
|
16
20
|
// 'debug' | 'info' | 'warn' | 'error'
|
|
@@ -52,6 +56,15 @@ export function createPostingClient(config) {
|
|
|
52
56
|
// Create platform registry and auth validator registry (no constructor args)
|
|
53
57
|
const platformRegistry = new PlatformRegistry();
|
|
54
58
|
const authValidatorRegistry = new AuthValidatorRegistry();
|
|
59
|
+
// Create platform dependencies
|
|
60
|
+
const mediaService = new MediaService();
|
|
61
|
+
const telegramTypeDetector = new TelegramTypeDetector();
|
|
62
|
+
// Create platform instances
|
|
63
|
+
const telegramPlatform = new TelegramPlatform(mediaService, telegramTypeDetector);
|
|
64
|
+
const telegramAuthValidator = new TelegramAuthValidator();
|
|
65
|
+
// Register platforms and auth validators
|
|
66
|
+
platformRegistry.register(telegramPlatform);
|
|
67
|
+
authValidatorRegistry.register(telegramAuthValidator);
|
|
55
68
|
// Create shutdown service
|
|
56
69
|
const shutdownService = new ShutdownService();
|
|
57
70
|
// Create in-memory cache manager for idempotency
|
package/dist/src/library.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/library.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uDAAuD,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIlE,OAAO,EAAW,aAAa,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/library.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
package/dist/src/main.js
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { NestFactory } from '@nestjs/core';
|
|
3
|
+
import { FastifyAdapter } from '@nestjs/platform-fastify';
|
|
4
|
+
import { ValidationPipe } from '@nestjs/common';
|
|
5
|
+
import { ConfigService } from '@nestjs/config';
|
|
6
|
+
import { Logger } from 'nestjs-pino';
|
|
7
|
+
import { AppModule } from './app.module.js';
|
|
8
|
+
import { GRACEFUL_SHUTDOWN_TIMEOUT_MS } from './app.constants.js';
|
|
9
|
+
import { ShutdownService } from './common/services/shutdown.service.js';
|
|
10
|
+
/**
|
|
11
|
+
* Bootstrap the NestJS application with Fastify adapter
|
|
12
|
+
* Initializes the application with Pino logger, global validation pipes,
|
|
13
|
+
* and configures the API prefix based on environment settings
|
|
14
|
+
*/
|
|
15
|
+
async function bootstrap() {
|
|
16
|
+
// Create app with bufferLogs enabled to capture early logs
|
|
17
|
+
const app = await NestFactory.create(AppModule, new FastifyAdapter({
|
|
18
|
+
logger: false, // We'll use Pino logger instead
|
|
19
|
+
// Force close idle connections during shutdown to prevent hanging
|
|
20
|
+
forceCloseConnections: 'idle',
|
|
21
|
+
// Timeout for establishing connections (60 seconds)
|
|
22
|
+
connectionTimeout: 60000,
|
|
23
|
+
// Timeout for processing requests (10 minutes - should be higher than requestTimeoutSecs)
|
|
24
|
+
requestTimeout: 600000,
|
|
25
|
+
}), {
|
|
26
|
+
bufferLogs: true,
|
|
27
|
+
});
|
|
28
|
+
// Use Pino logger for the entire application
|
|
29
|
+
app.useLogger(app.get(Logger));
|
|
30
|
+
const configService = app.get(ConfigService);
|
|
31
|
+
const logger = app.get(Logger);
|
|
32
|
+
const shutdownService = app.get(ShutdownService);
|
|
33
|
+
const appConfig = configService.get('app');
|
|
34
|
+
app.useGlobalPipes(new ValidationPipe({ whitelist: true, forbidNonWhitelisted: true, transform: true }));
|
|
35
|
+
// Configure global API prefix from configuration
|
|
36
|
+
// If BASE_PATH is set, prefix will be BASE_PATH/api/v1, otherwise just api/v1
|
|
37
|
+
const globalPrefix = appConfig.basePath ? `${appConfig.basePath}/api/v1` : 'api/v1';
|
|
38
|
+
app.setGlobalPrefix(globalPrefix);
|
|
39
|
+
// Enable graceful shutdown hooks
|
|
40
|
+
app.enableShutdownHooks();
|
|
41
|
+
// Setup explicit signal handlers for graceful shutdown BEFORE starting the server
|
|
42
|
+
// This prevents race condition where signal arrives before handlers are registered
|
|
43
|
+
const handleShutdown = async (signal) => {
|
|
44
|
+
const shutdownStartTime = Date.now();
|
|
45
|
+
const inFlightCount = shutdownService.getInFlightRequestsCount();
|
|
46
|
+
logger.log(`Received ${signal}, starting graceful shutdown... (in-flight requests: ${inFlightCount})`, 'Bootstrap');
|
|
47
|
+
// Set a timeout to force shutdown if graceful shutdown takes too long
|
|
48
|
+
const forceShutdownTimer = setTimeout(() => {
|
|
49
|
+
const duration = Date.now() - shutdownStartTime;
|
|
50
|
+
const remainingRequests = shutdownService.getInFlightRequestsCount();
|
|
51
|
+
logger.warn(`Graceful shutdown timeout (${GRACEFUL_SHUTDOWN_TIMEOUT_MS}ms) exceeded after ${duration}ms, forcing shutdown`, 'Bootstrap');
|
|
52
|
+
logger.warn(`In-flight requests remaining: ${remainingRequests}`, 'Bootstrap');
|
|
53
|
+
process.exit(0);
|
|
54
|
+
}, GRACEFUL_SHUTDOWN_TIMEOUT_MS);
|
|
55
|
+
try {
|
|
56
|
+
// Close the application gracefully
|
|
57
|
+
await app.close();
|
|
58
|
+
clearTimeout(forceShutdownTimer);
|
|
59
|
+
const duration = Date.now() - shutdownStartTime;
|
|
60
|
+
logger.log(`Application closed gracefully in ${duration}ms`, 'Bootstrap');
|
|
61
|
+
process.exit(0);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
clearTimeout(forceShutdownTimer);
|
|
65
|
+
const duration = Date.now() - shutdownStartTime;
|
|
66
|
+
logger.error(`Error during shutdown after ${duration}ms: ${error}`, 'Bootstrap');
|
|
67
|
+
// Use exit code 0 even on error to avoid unnecessary alerts
|
|
68
|
+
// The error has been logged and graceful shutdown was attempted
|
|
69
|
+
process.exit(0);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
process.on('SIGTERM', () => void handleShutdown('SIGTERM'));
|
|
73
|
+
process.on('SIGINT', () => void handleShutdown('SIGINT'));
|
|
74
|
+
await app.listen(appConfig.port, appConfig.host);
|
|
75
|
+
logger.log(`🚀 NestJS service is running on: http://${appConfig.host}:${appConfig.port}/${globalPrefix}`, 'Bootstrap');
|
|
76
|
+
logger.log(`📊 Environment: ${appConfig.nodeEnv}`, 'Bootstrap');
|
|
77
|
+
logger.log(`📝 Log level: ${appConfig.logLevel}`, 'Bootstrap');
|
|
78
|
+
logger.log(`⏱️ Graceful shutdown timeout: ${GRACEFUL_SHUTDOWN_TIMEOUT_MS}ms`, 'Bootstrap');
|
|
79
|
+
}
|
|
80
|
+
void bootstrap();
|
|
81
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -143,7 +143,14 @@ let PostService = class PostService extends BasePostService {
|
|
|
143
143
|
if (error instanceof BadRequestException) {
|
|
144
144
|
return ErrorCode.VALIDATION_ERROR;
|
|
145
145
|
}
|
|
146
|
-
|
|
146
|
+
const message = error.message || '';
|
|
147
|
+
const isNetworkError = error.code === 'ENOTFOUND' ||
|
|
148
|
+
error.code === 'ETIMEDOUT' ||
|
|
149
|
+
error.code === 'ECONNRESET' ||
|
|
150
|
+
error.code === 'ECONNREFUSED' ||
|
|
151
|
+
message.includes('Network request') ||
|
|
152
|
+
message.includes('fetch failed');
|
|
153
|
+
if (isNetworkError) {
|
|
147
154
|
return ErrorCode.TIMEOUT_ERROR;
|
|
148
155
|
}
|
|
149
156
|
if (error.response?.status === 429) {
|
|
@@ -279,7 +286,14 @@ let PostService = class PostService extends BasePostService {
|
|
|
279
286
|
* @returns True if should retry, false otherwise
|
|
280
287
|
*/
|
|
281
288
|
shouldRetry(error) {
|
|
282
|
-
|
|
289
|
+
const message = error?.message || '';
|
|
290
|
+
const isNetworkError = error.code === 'ENOTFOUND' ||
|
|
291
|
+
error.code === 'ETIMEDOUT' ||
|
|
292
|
+
error.code === 'ECONNRESET' ||
|
|
293
|
+
error.code === 'ECONNREFUSED' ||
|
|
294
|
+
message.includes('Network request') ||
|
|
295
|
+
message.includes('fetch failed');
|
|
296
|
+
if (isNetworkError) {
|
|
283
297
|
return true;
|
|
284
298
|
}
|
|
285
299
|
if (error.response?.status >= 500) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.service.js","sourceRoot":"","sources":["../../../../src/modules/post/post.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"post.service.js","sourceRoot":"","sources":["../../../../src/modules/post/post.service.ts"],"names":[],"mappings":"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"}
|