@tronsfey/ucli-server 0.5.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 +423 -0
- package/README.zh.md +404 -0
- package/assets/logo.svg +138 -0
- package/dist/admin-ui/assets/index-BjdBylCY.css +1 -0
- package/dist/admin-ui/assets/index-CDwKIMTJ.js +117 -0
- package/dist/admin-ui/assets/remixicon-B25hvfAs.eot +0 -0
- package/dist/admin-ui/assets/remixicon-BTtOSOPh.svg +9709 -0
- package/dist/admin-ui/assets/remixicon-CZw4FkzQ.woff2 +0 -0
- package/dist/admin-ui/assets/remixicon-S6an_USy.woff +0 -0
- package/dist/admin-ui/assets/remixicon-sqouR8Ox.ttf +0 -0
- package/dist/admin-ui/dist/assets/index-BjdBylCY.css +1 -0
- package/dist/admin-ui/dist/assets/index-CDwKIMTJ.js +117 -0
- package/dist/admin-ui/dist/assets/index-CppEl63e.css +1 -0
- package/dist/admin-ui/dist/assets/index-DBkeGfMQ.js +117 -0
- package/dist/admin-ui/dist/assets/index-ss5EmsBH.js +117 -0
- package/dist/admin-ui/dist/assets/remixicon-B25hvfAs.eot +0 -0
- package/dist/admin-ui/dist/assets/remixicon-BTtOSOPh.svg +9709 -0
- package/dist/admin-ui/dist/assets/remixicon-CZw4FkzQ.woff2 +0 -0
- package/dist/admin-ui/dist/assets/remixicon-S6an_USy.woff +0 -0
- package/dist/admin-ui/dist/assets/remixicon-sqouR8Ox.ttf +0 -0
- package/dist/admin-ui/dist/index.html +14 -0
- package/dist/admin-ui/index.html +14 -0
- package/dist/app.module.d.ts +3 -0
- package/dist/app.module.d.ts.map +1 -0
- package/dist/app.module.js +65 -0
- package/dist/app.module.js.map +1 -0
- package/dist/auth/admin.guard.d.ts +8 -0
- package/dist/auth/admin.guard.d.ts.map +1 -0
- package/dist/auth/admin.guard.js +34 -0
- package/dist/auth/admin.guard.js.map +1 -0
- package/dist/auth/auth.module.d.ts +3 -0
- package/dist/auth/auth.module.d.ts.map +1 -0
- package/dist/auth/auth.module.js +24 -0
- package/dist/auth/auth.module.js.map +1 -0
- package/dist/auth/decorators/jwt-payload.decorator.d.ts +2 -0
- package/dist/auth/decorators/jwt-payload.decorator.d.ts.map +1 -0
- package/dist/auth/decorators/jwt-payload.decorator.js +10 -0
- package/dist/auth/decorators/jwt-payload.decorator.js.map +1 -0
- package/dist/auth/group-token.guard.d.ts +11 -0
- package/dist/auth/group-token.guard.d.ts.map +1 -0
- package/dist/auth/group-token.guard.js +53 -0
- package/dist/auth/group-token.guard.js.map +1 -0
- package/dist/cache/cache.interface.d.ts +8 -0
- package/dist/cache/cache.interface.d.ts.map +1 -0
- package/dist/cache/cache.interface.js +3 -0
- package/dist/cache/cache.interface.js.map +1 -0
- package/dist/cache/cache.module.d.ts +5 -0
- package/dist/cache/cache.module.d.ts.map +1 -0
- package/dist/cache/cache.module.js +56 -0
- package/dist/cache/cache.module.js.map +1 -0
- package/dist/cache/cache.token.d.ts +2 -0
- package/dist/cache/cache.token.d.ts.map +1 -0
- package/dist/cache/cache.token.js +5 -0
- package/dist/cache/cache.token.js.map +1 -0
- package/dist/cache/memory/memory-cache.adapter.d.ts +15 -0
- package/dist/cache/memory/memory-cache.adapter.d.ts.map +1 -0
- package/dist/cache/memory/memory-cache.adapter.js +52 -0
- package/dist/cache/memory/memory-cache.adapter.js.map +1 -0
- package/dist/cache/redis/redis-cache.adapter.d.ts +16 -0
- package/dist/cache/redis/redis-cache.adapter.d.ts.map +1 -0
- package/dist/cache/redis/redis-cache.adapter.js +63 -0
- package/dist/cache/redis/redis-cache.adapter.js.map +1 -0
- package/dist/config/app-config.module.d.ts +3 -0
- package/dist/config/app-config.module.d.ts.map +1 -0
- package/dist/config/app-config.module.js +100 -0
- package/dist/config/app-config.module.js.map +1 -0
- package/dist/config/app-config.service.d.ts +29 -0
- package/dist/config/app-config.service.d.ts.map +1 -0
- package/dist/config/app-config.service.js +66 -0
- package/dist/config/app-config.service.js.map +1 -0
- package/dist/crypto/crypto.module.d.ts +3 -0
- package/dist/crypto/crypto.module.d.ts.map +1 -0
- package/dist/crypto/crypto.module.js +22 -0
- package/dist/crypto/crypto.module.js.map +1 -0
- package/dist/crypto/encryption.service.d.ts +9 -0
- package/dist/crypto/encryption.service.d.ts.map +1 -0
- package/dist/crypto/encryption.service.js +59 -0
- package/dist/crypto/encryption.service.js.map +1 -0
- package/dist/crypto/jwt.service.d.ts +28 -0
- package/dist/crypto/jwt.service.d.ts.map +1 -0
- package/dist/crypto/jwt.service.js +72 -0
- package/dist/crypto/jwt.service.js.map +1 -0
- package/dist/groups/dto/create-group.dto.d.ts +5 -0
- package/dist/groups/dto/create-group.dto.d.ts.map +1 -0
- package/dist/groups/dto/create-group.dto.js +34 -0
- package/dist/groups/dto/create-group.dto.js.map +1 -0
- package/dist/groups/groups.controller.d.ts +9 -0
- package/dist/groups/groups.controller.d.ts.map +1 -0
- package/dist/groups/groups.controller.js +60 -0
- package/dist/groups/groups.controller.js.map +1 -0
- package/dist/groups/groups.module.d.ts +3 -0
- package/dist/groups/groups.module.d.ts.map +1 -0
- package/dist/groups/groups.module.js +25 -0
- package/dist/groups/groups.module.js.map +1 -0
- package/dist/groups/groups.service.d.ts +9 -0
- package/dist/groups/groups.service.d.ts.map +1 -0
- package/dist/groups/groups.service.js +45 -0
- package/dist/groups/groups.service.js.map +1 -0
- package/dist/health/health.controller.d.ts +13 -0
- package/dist/health/health.controller.d.ts.map +1 -0
- package/dist/health/health.controller.js +68 -0
- package/dist/health/health.controller.js.map +1 -0
- package/dist/health/health.module.d.ts +3 -0
- package/dist/health/health.module.d.ts.map +1 -0
- package/dist/health/health.module.js +22 -0
- package/dist/health/health.module.js.map +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +109 -0
- package/dist/main.js.map +1 -0
- package/dist/mcp/admin-mcp.controller.d.ts +13 -0
- package/dist/mcp/admin-mcp.controller.d.ts.map +1 -0
- package/dist/mcp/admin-mcp.controller.js +105 -0
- package/dist/mcp/admin-mcp.controller.js.map +1 -0
- package/dist/mcp/client-mcp.controller.d.ts +9 -0
- package/dist/mcp/client-mcp.controller.d.ts.map +1 -0
- package/dist/mcp/client-mcp.controller.js +63 -0
- package/dist/mcp/client-mcp.controller.js.map +1 -0
- package/dist/mcp/dto/create-mcp.dto.d.ts +11 -0
- package/dist/mcp/dto/create-mcp.dto.d.ts.map +1 -0
- package/dist/mcp/dto/create-mcp.dto.js +74 -0
- package/dist/mcp/dto/create-mcp.dto.js.map +1 -0
- package/dist/mcp/dto/update-mcp.dto.d.ts +11 -0
- package/dist/mcp/dto/update-mcp.dto.d.ts.map +1 -0
- package/dist/mcp/dto/update-mcp.dto.js +71 -0
- package/dist/mcp/dto/update-mcp.dto.js.map +1 -0
- package/dist/mcp/mcp.module.d.ts +3 -0
- package/dist/mcp/mcp.module.d.ts.map +1 -0
- package/dist/mcp/mcp.module.js +26 -0
- package/dist/mcp/mcp.module.js.map +1 -0
- package/dist/mcp/mcp.service.d.ts +16 -0
- package/dist/mcp/mcp.service.d.ts.map +1 -0
- package/dist/mcp/mcp.service.js +78 -0
- package/dist/mcp/mcp.service.js.map +1 -0
- package/dist/metrics/metrics.controller.d.ts +12 -0
- package/dist/metrics/metrics.controller.d.ts.map +1 -0
- package/dist/metrics/metrics.controller.js +71 -0
- package/dist/metrics/metrics.controller.js.map +1 -0
- package/dist/metrics/metrics.module.d.ts +3 -0
- package/dist/metrics/metrics.module.d.ts.map +1 -0
- package/dist/metrics/metrics.module.js +20 -0
- package/dist/metrics/metrics.module.js.map +1 -0
- package/dist/oas/admin-oas.controller.d.ts +12 -0
- package/dist/oas/admin-oas.controller.d.ts.map +1 -0
- package/dist/oas/admin-oas.controller.js +96 -0
- package/dist/oas/admin-oas.controller.js.map +1 -0
- package/dist/oas/client-oas.controller.d.ts +9 -0
- package/dist/oas/client-oas.controller.d.ts.map +1 -0
- package/dist/oas/client-oas.controller.js +63 -0
- package/dist/oas/client-oas.controller.js.map +1 -0
- package/dist/oas/dto/create-oas.dto.d.ts +12 -0
- package/dist/oas/dto/create-oas.dto.d.ts.map +1 -0
- package/dist/oas/dto/create-oas.dto.js +82 -0
- package/dist/oas/dto/create-oas.dto.js.map +1 -0
- package/dist/oas/dto/update-oas.dto.d.ts +12 -0
- package/dist/oas/dto/update-oas.dto.d.ts.map +1 -0
- package/dist/oas/dto/update-oas.dto.js +77 -0
- package/dist/oas/dto/update-oas.dto.js.map +1 -0
- package/dist/oas/oas.module.d.ts +3 -0
- package/dist/oas/oas.module.d.ts.map +1 -0
- package/dist/oas/oas.module.js +26 -0
- package/dist/oas/oas.module.js.map +1 -0
- package/dist/oas/oas.service.d.ts +16 -0
- package/dist/oas/oas.service.d.ts.map +1 -0
- package/dist/oas/oas.service.js +79 -0
- package/dist/oas/oas.service.js.map +1 -0
- package/dist/otel/otel.d.ts +25 -0
- package/dist/otel/otel.d.ts.map +1 -0
- package/dist/otel/otel.js +61 -0
- package/dist/otel/otel.js.map +1 -0
- package/dist/storage/interfaces/repos.interface.d.ts +158 -0
- package/dist/storage/interfaces/repos.interface.d.ts.map +1 -0
- package/dist/storage/interfaces/repos.interface.js +4 -0
- package/dist/storage/interfaces/repos.interface.js.map +1 -0
- package/dist/storage/memory/memory-group.repo.d.ts +9 -0
- package/dist/storage/memory/memory-group.repo.d.ts.map +1 -0
- package/dist/storage/memory/memory-group.repo.js +33 -0
- package/dist/storage/memory/memory-group.repo.js.map +1 -0
- package/dist/storage/memory/memory-mcp.repo.d.ts +13 -0
- package/dist/storage/memory/memory-mcp.repo.d.ts.map +1 -0
- package/dist/storage/memory/memory-mcp.repo.js +65 -0
- package/dist/storage/memory/memory-mcp.repo.js.map +1 -0
- package/dist/storage/memory/memory-oas.repo.d.ts +13 -0
- package/dist/storage/memory/memory-oas.repo.d.ts.map +1 -0
- package/dist/storage/memory/memory-oas.repo.js +55 -0
- package/dist/storage/memory/memory-oas.repo.js.map +1 -0
- package/dist/storage/memory/memory-token.repo.d.ts +11 -0
- package/dist/storage/memory/memory-token.repo.d.ts.map +1 -0
- package/dist/storage/memory/memory-token.repo.js +39 -0
- package/dist/storage/memory/memory-token.repo.js.map +1 -0
- package/dist/storage/storage.module.d.ts +5 -0
- package/dist/storage/storage.module.d.ts.map +1 -0
- package/dist/storage/storage.module.js +84 -0
- package/dist/storage/storage.module.js.map +1 -0
- package/dist/storage/storage.tokens.d.ts +5 -0
- package/dist/storage/storage.tokens.d.ts.map +1 -0
- package/dist/storage/storage.tokens.js +8 -0
- package/dist/storage/storage.tokens.js.map +1 -0
- package/dist/storage/typeorm/entities/group.entity.d.ts +12 -0
- package/dist/storage/typeorm/entities/group.entity.d.ts.map +1 -0
- package/dist/storage/typeorm/entities/group.entity.js +57 -0
- package/dist/storage/typeorm/entities/group.entity.js.map +1 -0
- package/dist/storage/typeorm/entities/mcp-entry.entity.d.ts +16 -0
- package/dist/storage/typeorm/entities/mcp-entry.entity.d.ts.map +1 -0
- package/dist/storage/typeorm/entities/mcp-entry.entity.js +82 -0
- package/dist/storage/typeorm/entities/mcp-entry.entity.js.map +1 -0
- package/dist/storage/typeorm/entities/oas-entry.entity.d.ts +17 -0
- package/dist/storage/typeorm/entities/oas-entry.entity.d.ts.map +1 -0
- package/dist/storage/typeorm/entities/oas-entry.entity.js +87 -0
- package/dist/storage/typeorm/entities/oas-entry.entity.js.map +1 -0
- package/dist/storage/typeorm/entities/token.entity.d.ts +13 -0
- package/dist/storage/typeorm/entities/token.entity.d.ts.map +1 -0
- package/dist/storage/typeorm/entities/token.entity.js +68 -0
- package/dist/storage/typeorm/entities/token.entity.js.map +1 -0
- package/dist/storage/typeorm/typeorm-group.repo.d.ts +12 -0
- package/dist/storage/typeorm/typeorm-group.repo.d.ts.map +1 -0
- package/dist/storage/typeorm/typeorm-group.repo.js +50 -0
- package/dist/storage/typeorm/typeorm-group.repo.js.map +1 -0
- package/dist/storage/typeorm/typeorm-mcp.repo.d.ts +15 -0
- package/dist/storage/typeorm/typeorm-mcp.repo.d.ts.map +1 -0
- package/dist/storage/typeorm/typeorm-mcp.repo.js +88 -0
- package/dist/storage/typeorm/typeorm-mcp.repo.js.map +1 -0
- package/dist/storage/typeorm/typeorm-oas.repo.d.ts +15 -0
- package/dist/storage/typeorm/typeorm-oas.repo.d.ts.map +1 -0
- package/dist/storage/typeorm/typeorm-oas.repo.js +92 -0
- package/dist/storage/typeorm/typeorm-oas.repo.js.map +1 -0
- package/dist/storage/typeorm/typeorm-token.repo.d.ts +13 -0
- package/dist/storage/typeorm/typeorm-token.repo.d.ts.map +1 -0
- package/dist/storage/typeorm/typeorm-token.repo.js +56 -0
- package/dist/storage/typeorm/typeorm-token.repo.js.map +1 -0
- package/dist/tokens/dto/issue-token.dto.d.ts +6 -0
- package/dist/tokens/dto/issue-token.dto.d.ts.map +1 -0
- package/dist/tokens/dto/issue-token.dto.js +41 -0
- package/dist/tokens/dto/issue-token.dto.js.map +1 -0
- package/dist/tokens/tokens.controller.d.ts +12 -0
- package/dist/tokens/tokens.controller.d.ts.map +1 -0
- package/dist/tokens/tokens.controller.js +89 -0
- package/dist/tokens/tokens.controller.js.map +1 -0
- package/dist/tokens/tokens.module.d.ts +3 -0
- package/dist/tokens/tokens.module.d.ts.map +1 -0
- package/dist/tokens/tokens.module.js +27 -0
- package/dist/tokens/tokens.module.js.map +1 -0
- package/dist/tokens/tokens.service.d.ts +25 -0
- package/dist/tokens/tokens.service.d.ts.map +1 -0
- package/dist/tokens/tokens.service.js +69 -0
- package/dist/tokens/tokens.service.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,82 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CreateOASDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
15
|
+
class CreateOASDto {
|
|
16
|
+
groupId;
|
|
17
|
+
name;
|
|
18
|
+
description;
|
|
19
|
+
remoteUrl;
|
|
20
|
+
baseEndpoint;
|
|
21
|
+
authType;
|
|
22
|
+
authConfig;
|
|
23
|
+
cacheTtl;
|
|
24
|
+
}
|
|
25
|
+
exports.CreateOASDto = CreateOASDto;
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, swagger_1.ApiProperty)({ example: 'a1b2c3d4-...', description: 'ID of the group this OAS entry belongs to', format: 'uuid' }),
|
|
28
|
+
(0, class_validator_1.IsUUID)(),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], CreateOASDto.prototype, "groupId", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, swagger_1.ApiProperty)({ example: 'payments', description: 'Unique service name (lowercase alphanumeric, hyphens, underscores)' }),
|
|
33
|
+
(0, class_validator_1.IsString)(),
|
|
34
|
+
(0, class_validator_1.Length)(1, 100),
|
|
35
|
+
(0, class_validator_1.Matches)(/^[a-z0-9\-_]+$/, { message: 'name must be lowercase alphanumeric with hyphens/underscores' }),
|
|
36
|
+
__metadata("design:type", String)
|
|
37
|
+
], CreateOASDto.prototype, "name", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, swagger_1.ApiPropertyOptional)({ example: 'Payments service OpenAPI spec', description: 'Optional description' }),
|
|
40
|
+
(0, class_validator_1.IsOptional)(),
|
|
41
|
+
(0, class_validator_1.IsString)(),
|
|
42
|
+
(0, class_validator_1.Length)(0, 1000),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], CreateOASDto.prototype, "description", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, swagger_1.ApiProperty)({ example: 'https://api.example.com/openapi.json', description: 'URL to the remote OpenAPI spec' }),
|
|
47
|
+
(0, class_validator_1.IsUrl)(),
|
|
48
|
+
__metadata("design:type", String)
|
|
49
|
+
], CreateOASDto.prototype, "remoteUrl", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, swagger_1.ApiPropertyOptional)({ example: 'https://api.example.com', description: 'Base endpoint override (optional)' }),
|
|
52
|
+
(0, class_validator_1.IsOptional)(),
|
|
53
|
+
(0, class_validator_1.IsUrl)(),
|
|
54
|
+
__metadata("design:type", String)
|
|
55
|
+
], CreateOASDto.prototype, "baseEndpoint", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, swagger_1.ApiProperty)({ example: 'bearer', enum: ['bearer', 'api_key', 'basic', 'oauth2_cc', 'none'], description: 'Auth type for the upstream API' }),
|
|
58
|
+
(0, class_validator_1.IsEnum)(['bearer', 'api_key', 'basic', 'oauth2_cc', 'none']),
|
|
59
|
+
__metadata("design:type", String)
|
|
60
|
+
], CreateOASDto.prototype, "authType", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
(0, swagger_1.ApiProperty)({
|
|
63
|
+
description: 'Auth config (shape varies by authType)',
|
|
64
|
+
examples: {
|
|
65
|
+
none: { value: { type: 'none' } },
|
|
66
|
+
bearer: { value: { type: 'bearer', token: 'my-api-token' } },
|
|
67
|
+
api_key: { value: { type: 'api_key', key: 'my-key', in: 'header', name: 'X-API-Key' } },
|
|
68
|
+
basic: { value: { type: 'basic', username: 'user', password: 'pass' } },
|
|
69
|
+
oauth2_cc: { value: { type: 'oauth2_cc', tokenUrl: 'https://auth.example.com/token', clientId: 'id', clientSecret: 'secret', scopes: [] } },
|
|
70
|
+
},
|
|
71
|
+
}),
|
|
72
|
+
(0, class_validator_1.IsObject)(),
|
|
73
|
+
__metadata("design:type", Object)
|
|
74
|
+
], CreateOASDto.prototype, "authConfig", void 0);
|
|
75
|
+
__decorate([
|
|
76
|
+
(0, swagger_1.ApiPropertyOptional)({ example: 3600, description: 'Cache TTL in seconds for CLI local cache (0 = no cache)' }),
|
|
77
|
+
(0, class_validator_1.IsOptional)(),
|
|
78
|
+
(0, class_validator_1.IsInt)(),
|
|
79
|
+
(0, class_validator_1.Min)(0),
|
|
80
|
+
__metadata("design:type", Number)
|
|
81
|
+
], CreateOASDto.prototype, "cacheTtl", void 0);
|
|
82
|
+
//# sourceMappingURL=create-oas.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-oas.dto.js","sourceRoot":"","sources":["../../../src/oas/dto/create-oas.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAoH;AACpH,6CAAkE;AAGlE,MAAa,YAAY;IAGvB,OAAO,CAAS;IAMhB,IAAI,CAAS;IAMb,WAAW,CAAS;IAIpB,SAAS,CAAS;IAKlB,YAAY,CAAS;IAIrB,QAAQ,CAAW;IAanB,UAAU,CAAa;IAMvB,QAAQ,CAAS;CAClB;AAhDD,oCAgDC;AA7CC;IAFC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,2CAA2C,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAClH,IAAA,wBAAM,GAAE;;6CACO;AAMhB;IAJC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,oEAAoE,EAAE,CAAC;IACvH,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,CAAC,EAAE,GAAG,CAAC;IACd,IAAA,yBAAO,EAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,8DAA8D,EAAE,CAAC;;0CAC1F;AAMb;IAJC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;IACtG,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,CAAC,EAAE,IAAI,CAAC;;iDACI;AAIpB;IAFC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAC/G,IAAA,uBAAK,GAAE;;+CACU;AAKlB;IAHC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;IAC7G,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;kDACa;AAIrB;IAFC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAC5I,IAAA,wBAAM,EAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;;8CACzC;AAanB;IAXC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wCAAwC;QACrD,QAAQ,EAAE;YACR,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;YACjC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YAC5D,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;YACvF,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;YACvE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,gCAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;SAC5I;KACF,CAAC;IACD,IAAA,0BAAQ,GAAE;;gDACY;AAMvB;IAJC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,yDAAyD,EAAE,CAAC;IAC9G,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;;8CACU"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AuthType, AuthConfig } from '../../storage/interfaces/repos.interface';
|
|
2
|
+
export declare class UpdateOASDto {
|
|
3
|
+
name?: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
remoteUrl?: string;
|
|
6
|
+
baseEndpoint?: string | null;
|
|
7
|
+
authType?: AuthType;
|
|
8
|
+
authConfig?: AuthConfig;
|
|
9
|
+
cacheTtl?: number;
|
|
10
|
+
enabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=update-oas.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-oas.dto.d.ts","sourceRoot":"","sources":["../../../src/oas/dto/update-oas.dto.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAA;AAEpF,qBAAa,YAAY;IAKvB,IAAI,CAAC,EAAE,MAAM,CAAA;IAMb,WAAW,CAAC,EAAE,MAAM,CAAA;IAKpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAKlB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAK5B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAKnB,UAAU,CAAC,EAAE,UAAU,CAAA;IAMvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAKjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.UpdateOASDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
15
|
+
class UpdateOASDto {
|
|
16
|
+
name;
|
|
17
|
+
description;
|
|
18
|
+
remoteUrl;
|
|
19
|
+
baseEndpoint;
|
|
20
|
+
authType;
|
|
21
|
+
authConfig;
|
|
22
|
+
cacheTtl;
|
|
23
|
+
enabled;
|
|
24
|
+
}
|
|
25
|
+
exports.UpdateOASDto = UpdateOASDto;
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, swagger_1.ApiPropertyOptional)({ example: 'payments-v2', description: 'Updated service name' }),
|
|
28
|
+
(0, class_validator_1.IsOptional)(),
|
|
29
|
+
(0, class_validator_1.IsString)(),
|
|
30
|
+
(0, class_validator_1.Length)(1, 100),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], UpdateOASDto.prototype, "name", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, swagger_1.ApiPropertyOptional)({ example: 'Updated description', description: 'Updated description' }),
|
|
35
|
+
(0, class_validator_1.IsOptional)(),
|
|
36
|
+
(0, class_validator_1.IsString)(),
|
|
37
|
+
(0, class_validator_1.Length)(0, 1000),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], UpdateOASDto.prototype, "description", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, swagger_1.ApiPropertyOptional)({ example: 'https://api.example.com/v2/openapi.json', description: 'Updated remote URL' }),
|
|
42
|
+
(0, class_validator_1.IsOptional)(),
|
|
43
|
+
(0, class_validator_1.IsUrl)(),
|
|
44
|
+
__metadata("design:type", String)
|
|
45
|
+
], UpdateOASDto.prototype, "remoteUrl", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, swagger_1.ApiPropertyOptional)({ example: 'https://api.example.com/v2', description: 'Updated base endpoint (null to clear)' }),
|
|
48
|
+
(0, class_validator_1.IsOptional)(),
|
|
49
|
+
(0, class_validator_1.IsUrl)(),
|
|
50
|
+
__metadata("design:type", Object)
|
|
51
|
+
], UpdateOASDto.prototype, "baseEndpoint", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, swagger_1.ApiPropertyOptional)({ example: 'api_key', enum: ['bearer', 'api_key', 'basic', 'oauth2_cc', 'none'] }),
|
|
54
|
+
(0, class_validator_1.IsOptional)(),
|
|
55
|
+
(0, class_validator_1.IsEnum)(['bearer', 'api_key', 'basic', 'oauth2_cc', 'none']),
|
|
56
|
+
__metadata("design:type", String)
|
|
57
|
+
], UpdateOASDto.prototype, "authType", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
(0, swagger_1.ApiPropertyOptional)({ description: 'Updated auth config (will be re-encrypted)' }),
|
|
60
|
+
(0, class_validator_1.IsOptional)(),
|
|
61
|
+
(0, class_validator_1.IsObject)(),
|
|
62
|
+
__metadata("design:type", Object)
|
|
63
|
+
], UpdateOASDto.prototype, "authConfig", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, swagger_1.ApiPropertyOptional)({ example: 7200, description: 'Updated cache TTL in seconds' }),
|
|
66
|
+
(0, class_validator_1.IsOptional)(),
|
|
67
|
+
(0, class_validator_1.IsInt)(),
|
|
68
|
+
(0, class_validator_1.Min)(0),
|
|
69
|
+
__metadata("design:type", Number)
|
|
70
|
+
], UpdateOASDto.prototype, "cacheTtl", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, swagger_1.ApiPropertyOptional)({ example: false, description: 'Enable or disable this OAS entry' }),
|
|
73
|
+
(0, class_validator_1.IsOptional)(),
|
|
74
|
+
(0, class_validator_1.IsBoolean)(),
|
|
75
|
+
__metadata("design:type", Boolean)
|
|
76
|
+
], UpdateOASDto.prototype, "enabled", void 0);
|
|
77
|
+
//# sourceMappingURL=update-oas.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-oas.dto.js","sourceRoot":"","sources":["../../../src/oas/dto/update-oas.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA8G;AAC9G,6CAAqD;AAGrD,MAAa,YAAY;IAKvB,IAAI,CAAS;IAMb,WAAW,CAAS;IAKpB,SAAS,CAAS;IAKlB,YAAY,CAAgB;IAK5B,QAAQ,CAAW;IAKnB,UAAU,CAAa;IAMvB,QAAQ,CAAS;IAKjB,OAAO,CAAU;CAClB;AA3CD,oCA2CC;AAtCC;IAJC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;IACpF,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,CAAC,EAAE,GAAG,CAAC;;0CACF;AAMb;IAJC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAC3F,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,CAAC,EAAE,IAAI,CAAC;;iDACI;AAKpB;IAHC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;IAC9G,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;+CACU;AAKlB;IAHC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC;IACpH,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;kDACoB;AAK5B;IAHC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;IACtG,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;;8CACzC;AAKnB;IAHC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;IAClF,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;gDACY;AAMvB;IAJC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;IACnF,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;;8CACU;AAKjB;IAHC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IACxF,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;6CACK"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oas.module.d.ts","sourceRoot":"","sources":["../../src/oas/oas.module.ts"],"names":[],"mappings":"AAOA,qBAKa,SAAS;CAAG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
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.OASModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const auth_module_1 = require("../auth/auth.module");
|
|
12
|
+
const crypto_module_1 = require("../crypto/crypto.module");
|
|
13
|
+
const admin_oas_controller_1 = require("./admin-oas.controller");
|
|
14
|
+
const client_oas_controller_1 = require("./client-oas.controller");
|
|
15
|
+
const oas_service_1 = require("./oas.service");
|
|
16
|
+
let OASModule = class OASModule {
|
|
17
|
+
};
|
|
18
|
+
exports.OASModule = OASModule;
|
|
19
|
+
exports.OASModule = OASModule = __decorate([
|
|
20
|
+
(0, common_1.Module)({
|
|
21
|
+
imports: [auth_module_1.AuthModule, crypto_module_1.CryptoModule],
|
|
22
|
+
controllers: [admin_oas_controller_1.AdminOASController, client_oas_controller_1.ClientOASController],
|
|
23
|
+
providers: [oas_service_1.OASService],
|
|
24
|
+
})
|
|
25
|
+
], OASModule);
|
|
26
|
+
//# sourceMappingURL=oas.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oas.module.js","sourceRoot":"","sources":["../../src/oas/oas.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAuC;AACvC,qDAAgD;AAChD,2DAAsD;AACtD,iEAA2D;AAC3D,mEAA6D;AAC7D,+CAA0C;AAOnC,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IALrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,wBAAU,EAAE,4BAAY,CAAC;QACnC,WAAW,EAAE,CAAC,yCAAkB,EAAE,2CAAmB,CAAC;QACtD,SAAS,EAAE,CAAC,wBAAU,CAAC;KACxB,CAAC;GACW,SAAS,CAAG"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EncryptionService } from '../crypto/encryption.service';
|
|
2
|
+
import type { IOASRepo, OASEntry, CreateOASInput, UpdateOASInput } from '../storage/interfaces/repos.interface';
|
|
3
|
+
export declare class OASService {
|
|
4
|
+
private readonly oasRepo;
|
|
5
|
+
private readonly encryption;
|
|
6
|
+
constructor(oasRepo: IOASRepo, encryption: EncryptionService);
|
|
7
|
+
create(data: CreateOASInput): Promise<OASEntry>;
|
|
8
|
+
findByGroup(groupId: string): Promise<OASEntry[]>;
|
|
9
|
+
findAll(): Promise<OASEntry[]>;
|
|
10
|
+
findByName(name: string, groupId?: string): Promise<OASEntry>;
|
|
11
|
+
findById(id: string): Promise<OASEntry>;
|
|
12
|
+
update(id: string, data: UpdateOASInput): Promise<OASEntry>;
|
|
13
|
+
delete(id: string): Promise<void>;
|
|
14
|
+
private decrypt;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=oas.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oas.service.d.ts","sourceRoot":"","sources":["../../src/oas/oas.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAc,MAAM,uCAAuC,CAAA;AAE3H,qBACa,UAAU;IAED,OAAO,CAAC,QAAQ,CAAC,OAAO;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADQ,OAAO,EAAE,QAAQ,EACnC,UAAU,EAAE,iBAAiB;IAG1C,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAU/C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKjD,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI9B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAO7D,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMvC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAY3D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,OAAO,CAAC,OAAO;CAGhB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
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.OASService = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const storage_tokens_1 = require("../storage/storage.tokens");
|
|
18
|
+
const encryption_service_1 = require("../crypto/encryption.service");
|
|
19
|
+
let OASService = class OASService {
|
|
20
|
+
oasRepo;
|
|
21
|
+
encryption;
|
|
22
|
+
constructor(oasRepo, encryption) {
|
|
23
|
+
this.oasRepo = oasRepo;
|
|
24
|
+
this.encryption = encryption;
|
|
25
|
+
}
|
|
26
|
+
async create(data) {
|
|
27
|
+
const existing = await this.oasRepo.findByName(data.name);
|
|
28
|
+
if (existing)
|
|
29
|
+
throw new common_1.ConflictException(`OAS name already exists: ${data.name}`);
|
|
30
|
+
const entry = await this.oasRepo.create({
|
|
31
|
+
...data,
|
|
32
|
+
authConfig: this.encryption.encrypt(data.authConfig),
|
|
33
|
+
});
|
|
34
|
+
return this.decrypt(entry);
|
|
35
|
+
}
|
|
36
|
+
async findByGroup(groupId) {
|
|
37
|
+
const entries = await this.oasRepo.findByGroup(groupId);
|
|
38
|
+
return entries.filter(e => e.enabled).map(e => this.decrypt(e));
|
|
39
|
+
}
|
|
40
|
+
async findAll() {
|
|
41
|
+
return (await this.oasRepo.findAll()).map(e => this.decrypt(e));
|
|
42
|
+
}
|
|
43
|
+
async findByName(name, groupId) {
|
|
44
|
+
const entry = await this.oasRepo.findByName(name);
|
|
45
|
+
if (!entry)
|
|
46
|
+
throw new common_1.NotFoundException(`OAS not found: ${name}`);
|
|
47
|
+
if (groupId && entry.groupId !== groupId)
|
|
48
|
+
throw new common_1.NotFoundException(`OAS not found: ${name}`);
|
|
49
|
+
return this.decrypt(entry);
|
|
50
|
+
}
|
|
51
|
+
async findById(id) {
|
|
52
|
+
const entry = await this.oasRepo.findById(id);
|
|
53
|
+
if (!entry)
|
|
54
|
+
throw new common_1.NotFoundException(`OAS not found: ${id}`);
|
|
55
|
+
return this.decrypt(entry);
|
|
56
|
+
}
|
|
57
|
+
async update(id, data) {
|
|
58
|
+
// Strip undefined values so partial updates don't overwrite stored fields
|
|
59
|
+
const updateData = Object.fromEntries(Object.entries(data).filter(([, v]) => v !== undefined));
|
|
60
|
+
if (updateData.authConfig) {
|
|
61
|
+
updateData.authConfig = this.encryption.encrypt(updateData.authConfig);
|
|
62
|
+
}
|
|
63
|
+
const updated = await this.oasRepo.update(id, updateData);
|
|
64
|
+
return this.decrypt(updated);
|
|
65
|
+
}
|
|
66
|
+
async delete(id) {
|
|
67
|
+
await this.oasRepo.delete(id);
|
|
68
|
+
}
|
|
69
|
+
decrypt(entry) {
|
|
70
|
+
return { ...entry, authConfig: this.encryption.decrypt(entry.authConfig) };
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
exports.OASService = OASService;
|
|
74
|
+
exports.OASService = OASService = __decorate([
|
|
75
|
+
(0, common_1.Injectable)(),
|
|
76
|
+
__param(0, (0, common_1.Inject)(storage_tokens_1.OAS_REPO)),
|
|
77
|
+
__metadata("design:paramtypes", [Object, encryption_service_1.EncryptionService])
|
|
78
|
+
], OASService);
|
|
79
|
+
//# sourceMappingURL=oas.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oas.service.js","sourceRoot":"","sources":["../../src/oas/oas.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry SDK bootstrap.
|
|
3
|
+
*
|
|
4
|
+
* MUST be imported at the very top of main.ts — before reflect-metadata and
|
|
5
|
+
* NestJS — so that auto-instrumentation patches are applied first.
|
|
6
|
+
*
|
|
7
|
+
* Tracing is enabled by default (OTEL_ENABLED defaults to true).
|
|
8
|
+
* Spans are exported via OTLP HTTP when OTEL_EXPORTER_OTLP_ENDPOINT is set;
|
|
9
|
+
* otherwise they are silently discarded (no-op exporter).
|
|
10
|
+
*
|
|
11
|
+
* This module is intentionally independent of NestJS DI — it reads env vars
|
|
12
|
+
* directly from process.env so it can run before the NestJS container starts.
|
|
13
|
+
*
|
|
14
|
+
* Standard OTEL env vars honoured:
|
|
15
|
+
* OTEL_SERVICE_NAME — service name (default: "oas-server")
|
|
16
|
+
* OTEL_EXPORTER_OTLP_ENDPOINT — collector endpoint, e.g. http://otel-collector:4318
|
|
17
|
+
* OTEL_EXPORTER_OTLP_HEADERS — optional auth headers (e.g. "Authorization=Bearer token")
|
|
18
|
+
* OTEL_PROPAGATORS — propagator list (default: tracecontext,baggage)
|
|
19
|
+
* OTEL_TRACES_SAMPLER — sampler (default: parentbased_always_on)
|
|
20
|
+
*
|
|
21
|
+
* Custom env vars:
|
|
22
|
+
* OTEL_ENABLED — set to "false" to disable entirely (default: "true")
|
|
23
|
+
*/
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=otel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../src/otel/otel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenTelemetry SDK bootstrap.
|
|
4
|
+
*
|
|
5
|
+
* MUST be imported at the very top of main.ts — before reflect-metadata and
|
|
6
|
+
* NestJS — so that auto-instrumentation patches are applied first.
|
|
7
|
+
*
|
|
8
|
+
* Tracing is enabled by default (OTEL_ENABLED defaults to true).
|
|
9
|
+
* Spans are exported via OTLP HTTP when OTEL_EXPORTER_OTLP_ENDPOINT is set;
|
|
10
|
+
* otherwise they are silently discarded (no-op exporter).
|
|
11
|
+
*
|
|
12
|
+
* This module is intentionally independent of NestJS DI — it reads env vars
|
|
13
|
+
* directly from process.env so it can run before the NestJS container starts.
|
|
14
|
+
*
|
|
15
|
+
* Standard OTEL env vars honoured:
|
|
16
|
+
* OTEL_SERVICE_NAME — service name (default: "oas-server")
|
|
17
|
+
* OTEL_EXPORTER_OTLP_ENDPOINT — collector endpoint, e.g. http://otel-collector:4318
|
|
18
|
+
* OTEL_EXPORTER_OTLP_HEADERS — optional auth headers (e.g. "Authorization=Bearer token")
|
|
19
|
+
* OTEL_PROPAGATORS — propagator list (default: tracecontext,baggage)
|
|
20
|
+
* OTEL_TRACES_SAMPLER — sampler (default: parentbased_always_on)
|
|
21
|
+
*
|
|
22
|
+
* Custom env vars:
|
|
23
|
+
* OTEL_ENABLED — set to "false" to disable entirely (default: "true")
|
|
24
|
+
*/
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const sdk_node_1 = require("@opentelemetry/sdk-node");
|
|
27
|
+
const auto_instrumentations_node_1 = require("@opentelemetry/auto-instrumentations-node");
|
|
28
|
+
const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
|
|
29
|
+
const resources_1 = require("@opentelemetry/resources");
|
|
30
|
+
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
31
|
+
const enabled = process.env.OTEL_ENABLED !== 'false';
|
|
32
|
+
if (enabled) {
|
|
33
|
+
const resource = (0, resources_1.resourceFromAttributes)({
|
|
34
|
+
[semantic_conventions_1.ATTR_SERVICE_NAME]: process.env.OTEL_SERVICE_NAME ?? 'ucli-server',
|
|
35
|
+
[semantic_conventions_1.ATTR_SERVICE_VERSION]: process.env.npm_package_version ?? 'unknown',
|
|
36
|
+
});
|
|
37
|
+
// Only create the OTLP exporter when an endpoint is explicitly configured.
|
|
38
|
+
// Without an endpoint the SDK uses a no-op exporter: instrumentation is
|
|
39
|
+
// active (context propagation works) but spans are discarded locally.
|
|
40
|
+
const sdkConfig = {
|
|
41
|
+
resource,
|
|
42
|
+
instrumentations: [
|
|
43
|
+
(0, auto_instrumentations_node_1.getNodeAutoInstrumentations)({
|
|
44
|
+
// fs instrumentation generates very high-cardinality noise
|
|
45
|
+
'@opentelemetry/instrumentation-fs': { enabled: false },
|
|
46
|
+
}),
|
|
47
|
+
],
|
|
48
|
+
};
|
|
49
|
+
if (process.env.OTEL_EXPORTER_OTLP_ENDPOINT) {
|
|
50
|
+
sdkConfig.traceExporter = new exporter_trace_otlp_http_1.OTLPTraceExporter();
|
|
51
|
+
}
|
|
52
|
+
const sdk = new sdk_node_1.NodeSDK(sdkConfig);
|
|
53
|
+
sdk.start();
|
|
54
|
+
// Flush pending spans on graceful shutdown
|
|
55
|
+
process.on('SIGTERM', () => {
|
|
56
|
+
void sdk.shutdown().catch((err) => {
|
|
57
|
+
console.error('[OTel] Error during SDK shutdown:', err);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=otel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../../src/otel/otel.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;AAEH,sDAAiD;AACjD,0FAAuF;AACvF,sFAA2E;AAC3E,wDAAiE;AACjE,8EAA6F;AAE7F,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAA;AAEpD,IAAI,OAAO,EAAE,CAAC;IACZ,MAAM,QAAQ,GAAG,IAAA,kCAAsB,EAAC;QACtC,CAAC,wCAAiB,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,aAAa;QACnE,CAAC,2CAAoB,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,SAAS;KACrE,CAAC,CAAA;IAEF,2EAA2E;IAC3E,wEAAwE;IACxE,sEAAsE;IACtE,MAAM,SAAS,GAA6C;QAC1D,QAAQ;QACR,gBAAgB,EAAE;YAChB,IAAA,wDAA2B,EAAC;gBAC1B,2DAA2D;gBAC3D,mCAAmC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;aACxD,CAAC;SACH;KACF,CAAA;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC;QAC5C,SAAS,CAAC,aAAa,GAAG,IAAI,4CAAiB,EAAE,CAAA;IACnD,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,kBAAO,CAAC,SAAS,CAAC,CAAA;IAElC,GAAG,CAAC,KAAK,EAAE,CAAA;IAEX,2CAA2C;IAC3C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACzC,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
export interface Group {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
createdAt: Date;
|
|
6
|
+
updatedAt: Date;
|
|
7
|
+
}
|
|
8
|
+
export interface Token {
|
|
9
|
+
id: string;
|
|
10
|
+
groupId: string;
|
|
11
|
+
name: string;
|
|
12
|
+
jti: string;
|
|
13
|
+
scopes: string[];
|
|
14
|
+
expiresAt: Date | null;
|
|
15
|
+
revokedAt: Date | null;
|
|
16
|
+
createdAt: Date;
|
|
17
|
+
}
|
|
18
|
+
export type AuthType = 'bearer' | 'api_key' | 'basic' | 'oauth2_cc' | 'none';
|
|
19
|
+
export type AuthConfig = {
|
|
20
|
+
type: 'bearer';
|
|
21
|
+
token: string;
|
|
22
|
+
} | {
|
|
23
|
+
type: 'api_key';
|
|
24
|
+
key: string;
|
|
25
|
+
in: 'header' | 'query';
|
|
26
|
+
name: string;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'basic';
|
|
29
|
+
username: string;
|
|
30
|
+
password: string;
|
|
31
|
+
} | {
|
|
32
|
+
type: 'oauth2_cc';
|
|
33
|
+
tokenUrl: string;
|
|
34
|
+
clientId: string;
|
|
35
|
+
clientSecret: string;
|
|
36
|
+
scopes: string[];
|
|
37
|
+
} | {
|
|
38
|
+
type: 'none';
|
|
39
|
+
};
|
|
40
|
+
export interface OASEntry {
|
|
41
|
+
id: string;
|
|
42
|
+
groupId: string;
|
|
43
|
+
name: string;
|
|
44
|
+
description: string;
|
|
45
|
+
remoteUrl: string;
|
|
46
|
+
baseEndpoint: string | null;
|
|
47
|
+
authType: AuthType;
|
|
48
|
+
/** Stored AES-256-GCM encrypted; decrypted on retrieval */
|
|
49
|
+
authConfig: AuthConfig;
|
|
50
|
+
cacheTtl: number;
|
|
51
|
+
enabled: boolean;
|
|
52
|
+
createdAt: Date;
|
|
53
|
+
updatedAt: Date;
|
|
54
|
+
}
|
|
55
|
+
export interface CreateGroupInput {
|
|
56
|
+
name: string;
|
|
57
|
+
description: string;
|
|
58
|
+
}
|
|
59
|
+
export interface CreateTokenInput {
|
|
60
|
+
groupId: string;
|
|
61
|
+
name: string;
|
|
62
|
+
jti: string;
|
|
63
|
+
scopes: string[];
|
|
64
|
+
expiresAt: Date | null;
|
|
65
|
+
}
|
|
66
|
+
export interface CreateOASInput {
|
|
67
|
+
groupId: string;
|
|
68
|
+
name: string;
|
|
69
|
+
description: string;
|
|
70
|
+
remoteUrl: string;
|
|
71
|
+
baseEndpoint?: string | null;
|
|
72
|
+
authType: AuthType;
|
|
73
|
+
authConfig: AuthConfig;
|
|
74
|
+
cacheTtl?: number;
|
|
75
|
+
}
|
|
76
|
+
export interface UpdateOASInput {
|
|
77
|
+
name?: string;
|
|
78
|
+
description?: string;
|
|
79
|
+
remoteUrl?: string;
|
|
80
|
+
baseEndpoint?: string | null;
|
|
81
|
+
authType?: AuthType;
|
|
82
|
+
authConfig?: AuthConfig;
|
|
83
|
+
cacheTtl?: number;
|
|
84
|
+
enabled?: boolean;
|
|
85
|
+
}
|
|
86
|
+
export interface IGroupRepo {
|
|
87
|
+
create(data: CreateGroupInput): Promise<Group>;
|
|
88
|
+
findAll(): Promise<Group[]>;
|
|
89
|
+
findById(id: string): Promise<Group | null>;
|
|
90
|
+
findByName(name: string): Promise<Group | null>;
|
|
91
|
+
}
|
|
92
|
+
export interface ITokenRepo {
|
|
93
|
+
create(data: CreateTokenInput): Promise<Token>;
|
|
94
|
+
findById(id: string): Promise<Token | null>;
|
|
95
|
+
findByJti(jti: string): Promise<Token | null>;
|
|
96
|
+
findByGroup(groupId: string): Promise<Token[]>;
|
|
97
|
+
revoke(id: string, revokedAt: Date): Promise<void>;
|
|
98
|
+
}
|
|
99
|
+
export interface IOASRepo {
|
|
100
|
+
create(data: CreateOASInput): Promise<OASEntry>;
|
|
101
|
+
findAll(): Promise<OASEntry[]>;
|
|
102
|
+
findByGroup(groupId: string): Promise<OASEntry[]>;
|
|
103
|
+
findById(id: string): Promise<OASEntry | null>;
|
|
104
|
+
findByName(name: string): Promise<OASEntry | null>;
|
|
105
|
+
update(id: string, data: UpdateOASInput): Promise<OASEntry>;
|
|
106
|
+
delete(id: string): Promise<void>;
|
|
107
|
+
}
|
|
108
|
+
export type McpAuthConfig = {
|
|
109
|
+
type: 'none';
|
|
110
|
+
} | {
|
|
111
|
+
type: 'http_headers';
|
|
112
|
+
headers: Record<string, string>;
|
|
113
|
+
} | {
|
|
114
|
+
type: 'env';
|
|
115
|
+
env: Record<string, string>;
|
|
116
|
+
};
|
|
117
|
+
export interface McpEntry {
|
|
118
|
+
id: string;
|
|
119
|
+
groupId: string;
|
|
120
|
+
name: string;
|
|
121
|
+
description: string;
|
|
122
|
+
transport: 'http' | 'stdio';
|
|
123
|
+
serverUrl: string | null;
|
|
124
|
+
command: string | null;
|
|
125
|
+
/** Stored AES-256-GCM encrypted; decrypted on retrieval */
|
|
126
|
+
authConfig: McpAuthConfig;
|
|
127
|
+
enabled: boolean;
|
|
128
|
+
createdAt: Date;
|
|
129
|
+
updatedAt: Date;
|
|
130
|
+
}
|
|
131
|
+
export interface CreateMcpInput {
|
|
132
|
+
groupId: string;
|
|
133
|
+
name: string;
|
|
134
|
+
description: string;
|
|
135
|
+
transport: 'http' | 'stdio';
|
|
136
|
+
serverUrl?: string | null;
|
|
137
|
+
command?: string | null;
|
|
138
|
+
authConfig: McpAuthConfig;
|
|
139
|
+
}
|
|
140
|
+
export interface UpdateMcpInput {
|
|
141
|
+
name?: string;
|
|
142
|
+
description?: string;
|
|
143
|
+
transport?: 'http' | 'stdio';
|
|
144
|
+
serverUrl?: string | null;
|
|
145
|
+
command?: string | null;
|
|
146
|
+
authConfig?: McpAuthConfig;
|
|
147
|
+
enabled?: boolean;
|
|
148
|
+
}
|
|
149
|
+
export interface IMCPRepo {
|
|
150
|
+
create(data: CreateMcpInput): Promise<McpEntry>;
|
|
151
|
+
findAll(): Promise<McpEntry[]>;
|
|
152
|
+
findByGroup(groupId: string): Promise<McpEntry[]>;
|
|
153
|
+
findById(id: string): Promise<McpEntry | null>;
|
|
154
|
+
findByName(name: string): Promise<McpEntry | null>;
|
|
155
|
+
update(id: string, data: UpdateMcpInput): Promise<McpEntry>;
|
|
156
|
+
delete(id: string): Promise<void>;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=repos.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repos.interface.d.ts","sourceRoot":"","sources":["../../../src/storage/interfaces/repos.interface.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAA;AAE5E,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GACjG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,EAAE,QAAQ,CAAA;IAClB,2DAA2D;IAC3D,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAID,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAID,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9C,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IAC3C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;CAChD;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IAC3C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;IAC7C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/C,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAC9C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAClD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC3D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClC;AAID,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAA;AAEhD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,2DAA2D;IAC3D,UAAU,EAAE,aAAa,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,aAAa,CAAA;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/C,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAC9C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAClD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC3D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repos.interface.js","sourceRoot":"","sources":["../../../src/storage/interfaces/repos.interface.ts"],"names":[],"mappings":";AAAA,8EAA8E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Group, IGroupRepo, CreateGroupInput } from '../interfaces/repos.interface';
|
|
2
|
+
export declare class MemoryGroupRepo implements IGroupRepo {
|
|
3
|
+
private store;
|
|
4
|
+
create(data: CreateGroupInput): Promise<Group>;
|
|
5
|
+
findAll(): Promise<Group[]>;
|
|
6
|
+
findById(id: string): Promise<Group | null>;
|
|
7
|
+
findByName(name: string): Promise<Group | null>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=memory-group.repo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-group.repo.d.ts","sourceRoot":"","sources":["../../../src/storage/memory/memory-group.repo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAExF,qBACa,eAAgB,YAAW,UAAU;IAChD,OAAO,CAAC,KAAK,CAA2B;IAElC,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IAO9C,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAE3B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAE3C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;CAItD"}
|