@lyrolab/nest-shared 0.0.0-semantically-released
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/.releaserc.json +25 -0
- package/CHANGELOG.md +17 -0
- package/README.md +45 -0
- package/dist/ai/index.d.ts +2 -0
- package/dist/ai/index.js +19 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/services/ai.service.d.ts +14 -0
- package/dist/ai/services/ai.service.js +58 -0
- package/dist/ai/services/ai.service.js.map +1 -0
- package/dist/ai/shared-ai.module.d.ts +2 -0
- package/dist/ai/shared-ai.module.js +21 -0
- package/dist/ai/shared-ai.module.js.map +1 -0
- package/dist/app.module.d.ts +2 -0
- package/dist/app.module.js +21 -0
- package/dist/app.module.js.map +1 -0
- package/dist/bull/index.d.ts +1 -0
- package/dist/bull/index.js +18 -0
- package/dist/bull/index.js.map +1 -0
- package/dist/bull/shared-bull.module.d.ts +4 -0
- package/dist/bull/shared-bull.module.js +40 -0
- package/dist/bull/shared-bull.module.js.map +1 -0
- package/dist/cache/index.d.ts +1 -0
- package/dist/cache/index.js +18 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/shared-cache.module.d.ts +4 -0
- package/dist/cache/shared-cache.module.js +42 -0
- package/dist/cache/shared-cache.module.js.map +1 -0
- package/dist/database/filters/typeorm-exception.filter.d.ts +7 -0
- package/dist/database/filters/typeorm-exception.filter.js +35 -0
- package/dist/database/filters/typeorm-exception.filter.js.map +1 -0
- package/dist/database/helpers/find-main-path.d.ts +1 -0
- package/dist/database/helpers/find-main-path.js +23 -0
- package/dist/database/helpers/find-main-path.js.map +1 -0
- package/dist/database/index.d.ts +2 -0
- package/dist/database/index.js +19 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/shared-database.module.d.ts +18 -0
- package/dist/database/shared-database.module.js +120 -0
- package/dist/database/shared-database.module.js.map +1 -0
- package/dist/health/health.controller.d.ts +7 -0
- package/dist/health/health.controller.js +39 -0
- package/dist/health/health.controller.js.map +1 -0
- package/dist/health/index.d.ts +1 -0
- package/dist/health/index.js +18 -0
- package/dist/health/index.js.map +1 -0
- package/dist/health/shared-health.module.d.ts +2 -0
- package/dist/health/shared-health.module.js +22 -0
- package/dist/health/shared-health.module.js.map +1 -0
- package/dist/queue/controllers/queue.controller.d.ts +7 -0
- package/dist/queue/controllers/queue.controller.js +40 -0
- package/dist/queue/controllers/queue.controller.js.map +1 -0
- package/dist/queue/decorators/queue.decorator.d.ts +5 -0
- package/dist/queue/decorators/queue.decorator.js +6 -0
- package/dist/queue/decorators/queue.decorator.js.map +1 -0
- package/dist/queue/index.d.ts +5 -0
- package/dist/queue/index.js +22 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/queue/interfaces/queue-options.interface.d.ts +13 -0
- package/dist/queue/interfaces/queue-options.interface.js +3 -0
- package/dist/queue/interfaces/queue-options.interface.js.map +1 -0
- package/dist/queue/models/dto/queue-add.dto.d.ts +4 -0
- package/dist/queue/models/dto/queue-add.dto.js +28 -0
- package/dist/queue/models/dto/queue-add.dto.js.map +1 -0
- package/dist/queue/models/job-processor-interface.d.ts +4 -0
- package/dist/queue/models/job-processor-interface.js +3 -0
- package/dist/queue/models/job-processor-interface.js.map +1 -0
- package/dist/queue/processors/queue.processor.d.ts +17 -0
- package/dist/queue/processors/queue.processor.js +109 -0
- package/dist/queue/processors/queue.processor.js.map +1 -0
- package/dist/queue/queue.constants.d.ts +2 -0
- package/dist/queue/queue.constants.js +6 -0
- package/dist/queue/queue.constants.js.map +1 -0
- package/dist/queue/services/queue.service.d.ts +6 -0
- package/dist/queue/services/queue.service.js +35 -0
- package/dist/queue/services/queue.service.js.map +1 -0
- package/dist/queue/shared-queue.module.d.ts +8 -0
- package/dist/queue/shared-queue.module.js +90 -0
- package/dist/queue/shared-queue.module.js.map +1 -0
- package/dist/redis/index.d.ts +2 -0
- package/dist/redis/index.js +19 -0
- package/dist/redis/index.js.map +1 -0
- package/dist/redis/redis.config.d.ts +4 -0
- package/dist/redis/redis.config.js +11 -0
- package/dist/redis/redis.config.js.map +1 -0
- package/dist/redis/shared-redis.module.d.ts +9 -0
- package/dist/redis/shared-redis.module.js +68 -0
- package/dist/redis/shared-redis.module.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/eslint.config.mjs +35 -0
- package/package.json +165 -0
package/.releaserc.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"branches": ["main"],
|
|
3
|
+
"plugins": [
|
|
4
|
+
"@semantic-release/commit-analyzer",
|
|
5
|
+
"@semantic-release/release-notes-generator",
|
|
6
|
+
"@semantic-release/changelog",
|
|
7
|
+
"@semantic-release/npm"
|
|
8
|
+
],
|
|
9
|
+
"preset": "angular",
|
|
10
|
+
"releaseRules": [
|
|
11
|
+
{ "type": "feat", "release": "minor" },
|
|
12
|
+
{ "type": "fix", "release": "patch" },
|
|
13
|
+
{ "type": "perf", "release": "patch" },
|
|
14
|
+
{ "type": "docs", "release": "patch" },
|
|
15
|
+
{ "type": "style", "release": "patch" },
|
|
16
|
+
{ "type": "refactor", "release": "patch" },
|
|
17
|
+
{ "type": "test", "release": "patch" },
|
|
18
|
+
{ "type": "build", "release": "patch" },
|
|
19
|
+
{ "type": "ci", "release": "patch" },
|
|
20
|
+
{ "type": "chore", "release": "patch" }
|
|
21
|
+
],
|
|
22
|
+
"npmPublish": true,
|
|
23
|
+
"pkgRoot": ".",
|
|
24
|
+
"tarballDir": "dist"
|
|
25
|
+
}
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
## [1.0.1](https://github.com/lyrolab/nest-shared/compare/v1.0.0...v1.0.1) (2025-04-10)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- tsconfig ([f6fe7e2](https://github.com/lyrolab/nest-shared/commit/f6fe7e20ec31a4ec0fdf1ea2521db2c5e5a5925c))
|
|
6
|
+
|
|
7
|
+
# 1.0.0 (2025-04-10)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
- setup app token ([901a88b](https://github.com/lyrolab/nest-shared/commit/901a88b530976e37b1d73bcbd85764d19faa2864))
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
- add semantic release ([8945d0e](https://github.com/lyrolab/nest-shared/commit/8945d0e1830e57c829174c7165594daff2228a61))
|
|
16
|
+
- common modules ([e732d32](https://github.com/lyrolab/nest-shared/commit/e732d32b71aa55cf3c3499fdafcaa3f44efaf1f3))
|
|
17
|
+
- export per module ([fe7f053](https://github.com/lyrolab/nest-shared/commit/fe7f053939d3f72cbe4a80f52878885e8ece2e3c))
|
package/README.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Nest Shared
|
|
2
|
+
|
|
3
|
+
A collection of shared modules for NestJS applications used across our company's projects. This package provides reusable components for common functionality including AI, Redis/Cache/Bull/Queue, and Database operations.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @lyrolab/nest-shared
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
- [Database Module](./src/database/README.md): Shared database configurations and utilities
|
|
14
|
+
- [AI Module](./src/ai/README.md): Common AI-related functionality
|
|
15
|
+
- [Job Processing Module](./src/queue/README.md): Shared queue management
|
|
16
|
+
- [Caching Module](./src/cache/README.md): Shared caching functionality
|
|
17
|
+
|
|
18
|
+
## Quick Start
|
|
19
|
+
|
|
20
|
+
1. Install the package:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install @lyrolab/nest-shared
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
2. Import the modules you need in your `app.module.ts`:
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import { SharedDatabaseModule } from "@lyrolab/nest-shared/database"
|
|
30
|
+
import { AiModule } from "@lyrolab/nest-shared/ai"
|
|
31
|
+
import { SharedQueueModule } from "@lyrolab/nest-shared/queue"
|
|
32
|
+
import { SharedCacheModule } from "@lyrolab/nest-shared/cache"
|
|
33
|
+
|
|
34
|
+
@Module({
|
|
35
|
+
imports: [
|
|
36
|
+
SharedDatabaseModule.forRoot(),
|
|
37
|
+
AiModule,
|
|
38
|
+
SharedQueueModule,
|
|
39
|
+
SharedCacheModule.forRoot(),
|
|
40
|
+
],
|
|
41
|
+
})
|
|
42
|
+
export class AppModule {}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
For detailed documentation and configuration options for each module, please refer to their respective README files.
|
package/dist/ai/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./shared-ai.module"), exports);
|
|
18
|
+
__exportStar(require("./services/ai.service"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC;AAClC,wDAAqC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LanguageModelV1 } from "ai";
|
|
2
|
+
import { Cache } from "cache-manager";
|
|
3
|
+
export type BuildModelOptions = {
|
|
4
|
+
model?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare class AiService {
|
|
7
|
+
private cache;
|
|
8
|
+
private readonly openrouter;
|
|
9
|
+
private readonly openrouterChat;
|
|
10
|
+
constructor(cache: Cache);
|
|
11
|
+
get model(): LanguageModelV1;
|
|
12
|
+
buildModel({ model }?: BuildModelOptions): LanguageModelV1;
|
|
13
|
+
private wrapGenerate;
|
|
14
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AiService = void 0;
|
|
16
|
+
const cache_manager_1 = require("@nestjs/cache-manager");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const ai_sdk_provider_1 = require("@openrouter/ai-sdk-provider");
|
|
19
|
+
const ai_1 = require("ai");
|
|
20
|
+
const DEFAULT_MODEL = "google/gemini-2.0-flash-001";
|
|
21
|
+
let AiService = class AiService {
|
|
22
|
+
cache;
|
|
23
|
+
openrouter;
|
|
24
|
+
openrouterChat;
|
|
25
|
+
constructor(cache) {
|
|
26
|
+
this.cache = cache;
|
|
27
|
+
this.openrouter = (0, ai_sdk_provider_1.createOpenRouter)({
|
|
28
|
+
apiKey: process.env.OPENROUTER_API_KEY,
|
|
29
|
+
});
|
|
30
|
+
this.openrouterChat = this.buildModel();
|
|
31
|
+
}
|
|
32
|
+
get model() {
|
|
33
|
+
return this.openrouterChat;
|
|
34
|
+
}
|
|
35
|
+
buildModel({ model } = {}) {
|
|
36
|
+
return (0, ai_1.wrapLanguageModel)({
|
|
37
|
+
model: this.openrouter.chat(model ?? DEFAULT_MODEL),
|
|
38
|
+
middleware: [{ wrapGenerate: (options) => this.wrapGenerate(options) }],
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async wrapGenerate({ doGenerate, params, }) {
|
|
42
|
+
const cacheKey = "ai:" + JSON.stringify(params);
|
|
43
|
+
const cachedResult = await this.cache.get(cacheKey);
|
|
44
|
+
if (cachedResult) {
|
|
45
|
+
return cachedResult;
|
|
46
|
+
}
|
|
47
|
+
const result = await doGenerate();
|
|
48
|
+
await this.cache.set(cacheKey, result);
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.AiService = AiService;
|
|
53
|
+
exports.AiService = AiService = __decorate([
|
|
54
|
+
(0, common_1.Injectable)(),
|
|
55
|
+
__param(0, (0, common_1.Inject)(cache_manager_1.CACHE_MANAGER)),
|
|
56
|
+
__metadata("design:paramtypes", [Object])
|
|
57
|
+
], AiService);
|
|
58
|
+
//# sourceMappingURL=ai.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.service.js","sourceRoot":"","sources":["../../../src/ai/services/ai.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yDAAqD;AACrD,2CAAmD;AACnD,iEAGoC;AACpC,2BAIW;AAGX,MAAM,aAAa,GAAG,6BAA6B,CAAA;AAO5C,IAAM,SAAS,GAAf,MAAM,SAAS;IAIuB;IAH1B,UAAU,CAAoB;IAC9B,cAAc,CAAiB;IAEhD,YAA2C,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QACrD,IAAI,CAAC,UAAU,GAAG,IAAA,kCAAgB,EAAC;YACjC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;SACvC,CAAC,CAAA;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;IACzC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,UAAU,CAAC,EAAE,KAAK,KAAwB,EAAE;QAC1C,OAAO,IAAA,sBAAiB,EAAC;YACvB,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC;YACnD,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;SACxE,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,EACzB,UAAU,EACV,MAAM,GAGJ;QACF,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAE/C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACnD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAkE,CAAA;QAC3E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;QAEjC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACtC,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA;AAxCY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;IAKE,WAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;;GAJvB,SAAS,CAwCrB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SharedAiModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const ai_service_1 = require("./services/ai.service");
|
|
12
|
+
let SharedAiModule = class SharedAiModule {
|
|
13
|
+
};
|
|
14
|
+
exports.SharedAiModule = SharedAiModule;
|
|
15
|
+
exports.SharedAiModule = SharedAiModule = __decorate([
|
|
16
|
+
(0, common_1.Module)({
|
|
17
|
+
providers: [ai_service_1.AiService],
|
|
18
|
+
exports: [ai_service_1.AiService],
|
|
19
|
+
})
|
|
20
|
+
], SharedAiModule);
|
|
21
|
+
//# sourceMappingURL=shared-ai.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-ai.module.js","sourceRoot":"","sources":["../../src/ai/shared-ai.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAuC;AACvC,sDAAiD;AAM1C,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAJ1B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,sBAAS,CAAC;QACtB,OAAO,EAAE,CAAC,sBAAS,CAAC;KACrB,CAAC;GACW,cAAc,CAAG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.AppModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let AppModule = class AppModule {
|
|
12
|
+
};
|
|
13
|
+
exports.AppModule = AppModule;
|
|
14
|
+
exports.AppModule = AppModule = __decorate([
|
|
15
|
+
(0, common_1.Module)({
|
|
16
|
+
imports: [],
|
|
17
|
+
controllers: [],
|
|
18
|
+
providers: [],
|
|
19
|
+
})
|
|
20
|
+
], AppModule);
|
|
21
|
+
//# sourceMappingURL=app.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAuC;AAOhC,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IALrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,EAAE;KACd,CAAC;GACW,SAAS,CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./shared-bull.module";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./shared-bull.module"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bull/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var SharedBullModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.SharedBullModule = void 0;
|
|
11
|
+
const bullmq_1 = require("@nestjs/bullmq");
|
|
12
|
+
const common_1 = require("@nestjs/common");
|
|
13
|
+
const config_1 = require("@nestjs/config");
|
|
14
|
+
const shared_redis_module_1 = require("../redis/shared-redis.module");
|
|
15
|
+
const redis_config_1 = require("../redis/redis.config");
|
|
16
|
+
let SharedBullModule = SharedBullModule_1 = class SharedBullModule {
|
|
17
|
+
static forRoot() {
|
|
18
|
+
return {
|
|
19
|
+
module: SharedBullModule_1,
|
|
20
|
+
imports: [
|
|
21
|
+
shared_redis_module_1.SharedRedisModule,
|
|
22
|
+
bullmq_1.BullModule.forRootAsync({
|
|
23
|
+
imports: [config_1.ConfigModule],
|
|
24
|
+
inject: [redis_config_1.RedisConfig],
|
|
25
|
+
useFactory: (redisConfig) => ({
|
|
26
|
+
connection: {
|
|
27
|
+
url: redisConfig.url,
|
|
28
|
+
},
|
|
29
|
+
}),
|
|
30
|
+
}),
|
|
31
|
+
],
|
|
32
|
+
exports: [bullmq_1.BullModule],
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
exports.SharedBullModule = SharedBullModule;
|
|
37
|
+
exports.SharedBullModule = SharedBullModule = SharedBullModule_1 = __decorate([
|
|
38
|
+
(0, common_1.Module)({})
|
|
39
|
+
], SharedBullModule);
|
|
40
|
+
//# sourceMappingURL=shared-bull.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-bull.module.js","sourceRoot":"","sources":["../../src/bull/shared-bull.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA2C;AAC3C,2CAAsD;AACtD,2CAA6C;AAC7C,sEAAgE;AAChE,wDAAmD;AAG5C,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,MAAM,EAAE,kBAAgB;YACxB,OAAO,EAAE;gBACP,uCAAiB;gBACjB,mBAAU,CAAC,YAAY,CAAC;oBACtB,OAAO,EAAE,CAAC,qBAAY,CAAC;oBACvB,MAAM,EAAE,CAAC,0BAAW,CAAC;oBACrB,UAAU,EAAE,CAAC,WAAwB,EAAE,EAAE,CAAC,CAAC;wBACzC,UAAU,EAAE;4BACV,GAAG,EAAE,WAAW,CAAC,GAAG;yBACrB;qBACF,CAAC;iBACH,CAAC;aACH;YACD,OAAO,EAAE,CAAC,mBAAU,CAAC;SACtB,CAAA;IACH,CAAC;CACF,CAAA;AAnBY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,gBAAgB,CAmB5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./shared-cache.module";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./shared-cache.module"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var SharedCacheModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.SharedCacheModule = void 0;
|
|
11
|
+
const redis_1 = require("@keyv/redis");
|
|
12
|
+
const cache_manager_1 = require("@nestjs/cache-manager");
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const config_1 = require("@nestjs/config");
|
|
15
|
+
const redis_config_1 = require("../redis/redis.config");
|
|
16
|
+
const shared_redis_module_1 = require("../redis/shared-redis.module");
|
|
17
|
+
let SharedCacheModule = SharedCacheModule_1 = class SharedCacheModule {
|
|
18
|
+
static forRoot() {
|
|
19
|
+
return {
|
|
20
|
+
module: SharedCacheModule_1,
|
|
21
|
+
imports: [
|
|
22
|
+
shared_redis_module_1.SharedRedisModule,
|
|
23
|
+
cache_manager_1.CacheModule.registerAsync({
|
|
24
|
+
isGlobal: true,
|
|
25
|
+
useFactory: (configService, redisConfig) => ({
|
|
26
|
+
ttl: configService.get("CACHE_TTL")
|
|
27
|
+
? +configService.get("CACHE_TTL") * 1000
|
|
28
|
+
: undefined,
|
|
29
|
+
stores: [new redis_1.default(redisConfig.url)],
|
|
30
|
+
}),
|
|
31
|
+
inject: [config_1.ConfigService, redis_config_1.RedisConfig],
|
|
32
|
+
}),
|
|
33
|
+
],
|
|
34
|
+
exports: [cache_manager_1.CacheModule],
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.SharedCacheModule = SharedCacheModule;
|
|
39
|
+
exports.SharedCacheModule = SharedCacheModule = SharedCacheModule_1 = __decorate([
|
|
40
|
+
(0, common_1.Module)({})
|
|
41
|
+
], SharedCacheModule);
|
|
42
|
+
//# sourceMappingURL=shared-cache.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-cache.module.js","sourceRoot":"","sources":["../../src/cache/shared-cache.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,uCAAmC;AACnC,yDAAmD;AACnD,2CAAsD;AACtD,2CAA8C;AAC9C,wDAAmD;AACnD,sEAAgE;AAGzD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAC5B,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,MAAM,EAAE,mBAAiB;YACzB,OAAO,EAAE;gBACP,uCAAiB;gBACjB,2BAAW,CAAC,aAAa,CAAC;oBACxB,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CACV,aAA4B,EAC5B,WAAwB,EACxB,EAAE,CAAC,CAAC;wBACJ,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC;4BACjC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI;4BACxC,CAAC,CAAC,SAAS;wBACb,MAAM,EAAE,CAAC,IAAI,eAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;qBACzC,CAAC;oBACF,MAAM,EAAE,CAAC,sBAAa,EAAE,0BAAW,CAAC;iBACrC,CAAC;aACH;YACD,OAAO,EAAE,CAAC,2BAAW,CAAC;SACvB,CAAA;IACH,CAAC;CACF,CAAA;AAvBY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,iBAAiB,CAuB7B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ExceptionFilter, ArgumentsHost } from "@nestjs/common";
|
|
2
|
+
import { EntityNotFoundError } from "typeorm";
|
|
3
|
+
export declare class TypeOrmExceptionFilter implements ExceptionFilter {
|
|
4
|
+
private readonly logger;
|
|
5
|
+
catch(exception: EntityNotFoundError, host: ArgumentsHost): void;
|
|
6
|
+
private extractEntityName;
|
|
7
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var TypeOrmExceptionFilter_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.TypeOrmExceptionFilter = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const typeorm_1 = require("typeorm");
|
|
13
|
+
let TypeOrmExceptionFilter = TypeOrmExceptionFilter_1 = class TypeOrmExceptionFilter {
|
|
14
|
+
logger = new common_1.Logger(TypeOrmExceptionFilter_1.name);
|
|
15
|
+
catch(exception, host) {
|
|
16
|
+
const ctx = host.switchToHttp();
|
|
17
|
+
const response = ctx.getResponse();
|
|
18
|
+
this.logger.debug(`Original TypeORM error: ${exception.message}`);
|
|
19
|
+
const entityName = this.extractEntityName(exception.message);
|
|
20
|
+
const message = entityName ? `${entityName} not found` : "Entity not found";
|
|
21
|
+
const notFoundException = new common_1.NotFoundException(message);
|
|
22
|
+
response
|
|
23
|
+
.status(notFoundException.getStatus())
|
|
24
|
+
.json(notFoundException.getResponse());
|
|
25
|
+
}
|
|
26
|
+
extractEntityName(errorMessage) {
|
|
27
|
+
const match = errorMessage.match(/entity of type "([^"]+)"/);
|
|
28
|
+
return match ? match[1] : null;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.TypeOrmExceptionFilter = TypeOrmExceptionFilter;
|
|
32
|
+
exports.TypeOrmExceptionFilter = TypeOrmExceptionFilter = TypeOrmExceptionFilter_1 = __decorate([
|
|
33
|
+
(0, common_1.Catch)(typeorm_1.EntityNotFoundError)
|
|
34
|
+
], TypeOrmExceptionFilter);
|
|
35
|
+
//# sourceMappingURL=typeorm-exception.filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeorm-exception.filter.js","sourceRoot":"","sources":["../../../src/database/filters/typeorm-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAMuB;AAEvB,qCAA6C;AAGtC,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IAChB,MAAM,GAAG,IAAI,eAAM,CAAC,wBAAsB,CAAC,IAAI,CAAC,CAAA;IAEjE,KAAK,CAAC,SAA8B,EAAE,IAAmB;QACvD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAA;QAE5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;QAEjE,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAA;QAE3E,MAAM,iBAAiB,GAAG,IAAI,0BAAiB,CAAC,OAAO,CAAC,CAAA;QAExD,QAAQ;aACL,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;aACrC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAA;IAC1C,CAAC;IAEO,iBAAiB,CAAC,YAAoB;QAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAChC,CAAC;CACF,CAAA;AAvBY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,cAAK,EAAC,6BAAmB,CAAC;GACd,sBAAsB,CAuBlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function findMainPath(): string;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findMainPath = findMainPath;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
function findMainPath() {
|
|
7
|
+
const rootPath = findUp("package.json", process.cwd());
|
|
8
|
+
if (!rootPath)
|
|
9
|
+
throw new Error("package.json not found");
|
|
10
|
+
return rootPath;
|
|
11
|
+
}
|
|
12
|
+
function findUp(path, cwd) {
|
|
13
|
+
const currentPath = cwd;
|
|
14
|
+
const parentPath = (0, path_1.dirname)(currentPath);
|
|
15
|
+
if (parentPath === currentPath) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(currentPath, path))) {
|
|
19
|
+
return currentPath;
|
|
20
|
+
}
|
|
21
|
+
return findUp(path, parentPath);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=find-main-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-main-path.js","sourceRoot":"","sources":["../../../src/database/helpers/find-main-path.ts"],"names":[],"mappings":";;AAGA,oCAIC;AAPD,2BAA+B;AAC/B,+BAAoC;AAEpC,SAAgB,YAAY;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACtD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IACxD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,MAAM,CAAC,IAAY,EAAE,GAAW;IACvC,MAAM,WAAW,GAAG,GAAG,CAAA;IACvB,MAAM,UAAU,GAAG,IAAA,cAAO,EAAC,WAAW,CAAC,CAAA;IACvC,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;AACjC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./shared-database.module"), exports);
|
|
18
|
+
__exportStar(require("./filters/typeorm-exception.filter"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAwC;AACxC,qEAAkD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DynamicModule, OnModuleDestroy } from "@nestjs/common";
|
|
2
|
+
import { DataSource } from "typeorm";
|
|
3
|
+
type SharedDatabaseModuleOptions = {
|
|
4
|
+
entities?: string[];
|
|
5
|
+
migrations?: string[];
|
|
6
|
+
};
|
|
7
|
+
export declare class SharedDatabaseModule implements OnModuleDestroy {
|
|
8
|
+
private static testContainer;
|
|
9
|
+
private static testDataSource;
|
|
10
|
+
static forRoot(options?: SharedDatabaseModuleOptions): DynamicModule;
|
|
11
|
+
private static createTestConfiguration;
|
|
12
|
+
private static createProductionConfiguration;
|
|
13
|
+
static getTestDataSource(): DataSource;
|
|
14
|
+
static closeTestConnection(): Promise<void>;
|
|
15
|
+
static clearTestDatabase(): Promise<void>;
|
|
16
|
+
onModuleDestroy(): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export {};
|