@tronsfey/ucli-server 0.6.6 → 0.7.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/dist/common/dto/pagination.dto.d.ts +15 -0
- package/dist/common/dto/pagination.dto.d.ts.map +1 -0
- package/dist/common/dto/pagination.dto.js +51 -0
- package/dist/common/dto/pagination.dto.js.map +1 -0
- package/dist/common/index.d.ts +2 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +7 -0
- package/dist/common/index.js.map +1 -0
- package/dist/groups/groups.controller.d.ts +2 -1
- package/dist/groups/groups.controller.d.ts.map +1 -1
- package/dist/groups/groups.controller.js +11 -5
- package/dist/groups/groups.controller.js.map +1 -1
- package/dist/mcp/admin-mcp.controller.d.ts +2 -1
- package/dist/mcp/admin-mcp.controller.d.ts.map +1 -1
- package/dist/mcp/admin-mcp.controller.js +12 -4
- package/dist/mcp/admin-mcp.controller.js.map +1 -1
- package/dist/mcp/client-mcp.controller.d.ts +7 -2
- package/dist/mcp/client-mcp.controller.d.ts.map +1 -1
- package/dist/mcp/client-mcp.controller.js +9 -3
- package/dist/mcp/client-mcp.controller.js.map +1 -1
- package/dist/oas/admin-oas.controller.d.ts +2 -1
- package/dist/oas/admin-oas.controller.d.ts.map +1 -1
- package/dist/oas/admin-oas.controller.js +12 -4
- package/dist/oas/admin-oas.controller.js.map +1 -1
- package/dist/oas/client-oas.controller.d.ts +7 -2
- package/dist/oas/client-oas.controller.d.ts.map +1 -1
- package/dist/oas/client-oas.controller.js +9 -3
- package/dist/oas/client-oas.controller.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class PaginationQueryDto {
|
|
2
|
+
page?: number;
|
|
3
|
+
limit?: number;
|
|
4
|
+
}
|
|
5
|
+
export interface PaginatedResponse<T> {
|
|
6
|
+
data: T[];
|
|
7
|
+
meta: {
|
|
8
|
+
page: number;
|
|
9
|
+
limit: number;
|
|
10
|
+
total: number;
|
|
11
|
+
totalPages: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function paginate<T>(items: T[], query: PaginationQueryDto): PaginatedResponse<T>;
|
|
15
|
+
//# sourceMappingURL=pagination.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.dto.d.ts","sourceRoot":"","sources":["../../../src/common/dto/pagination.dto.ts"],"names":[],"mappings":"AAIA,qBAAa,kBAAkB;IAM7B,IAAI,CAAC,EAAE,MAAM,CAAA;IAQb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAYvF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
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.PaginationQueryDto = void 0;
|
|
13
|
+
exports.paginate = paginate;
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const class_transformer_1 = require("class-transformer");
|
|
16
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
17
|
+
class PaginationQueryDto {
|
|
18
|
+
page;
|
|
19
|
+
limit;
|
|
20
|
+
}
|
|
21
|
+
exports.PaginationQueryDto = PaginationQueryDto;
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, swagger_1.ApiPropertyOptional)({ description: 'Page number (1-based)', default: 1, minimum: 1 }),
|
|
24
|
+
(0, class_validator_1.IsOptional)(),
|
|
25
|
+
(0, class_transformer_1.Type)(() => Number),
|
|
26
|
+
(0, class_validator_1.IsInt)(),
|
|
27
|
+
(0, class_validator_1.Min)(1),
|
|
28
|
+
__metadata("design:type", Number)
|
|
29
|
+
], PaginationQueryDto.prototype, "page", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, swagger_1.ApiPropertyOptional)({ description: 'Items per page', default: 20, minimum: 1, maximum: 100 }),
|
|
32
|
+
(0, class_validator_1.IsOptional)(),
|
|
33
|
+
(0, class_transformer_1.Type)(() => Number),
|
|
34
|
+
(0, class_validator_1.IsInt)(),
|
|
35
|
+
(0, class_validator_1.Min)(1),
|
|
36
|
+
(0, class_validator_1.Max)(100),
|
|
37
|
+
__metadata("design:type", Number)
|
|
38
|
+
], PaginationQueryDto.prototype, "limit", void 0);
|
|
39
|
+
function paginate(items, query) {
|
|
40
|
+
const page = query.page ?? 1;
|
|
41
|
+
const limit = query.limit ?? 20;
|
|
42
|
+
const total = items.length;
|
|
43
|
+
const totalPages = Math.ceil(total / limit) || 1;
|
|
44
|
+
const start = (page - 1) * limit;
|
|
45
|
+
const data = items.slice(start, start + limit);
|
|
46
|
+
return {
|
|
47
|
+
data,
|
|
48
|
+
meta: { page, limit, total, totalPages },
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=pagination.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.dto.js","sourceRoot":"","sources":["../../../src/common/dto/pagination.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AA+BA,4BAYC;AA3CD,qDAA6D;AAC7D,yDAAwC;AACxC,6CAAqD;AAErD,MAAa,kBAAkB;IAM7B,IAAI,CAAS;IAQb,KAAK,CAAS;CACf;AAfD,gDAeC;AATC;IALC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACrF,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;;gDACM;AAQb;IANC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC7F,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;IACN,IAAA,qBAAG,EAAC,GAAG,CAAC;;iDACK;AAahB,SAAgB,QAAQ,CAAI,KAAU,EAAE,KAAyB;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAA;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;IAChC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,CAAA;IAE9C,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;KACzC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.paginate = exports.PaginationQueryDto = void 0;
|
|
4
|
+
var pagination_dto_1 = require("./dto/pagination.dto");
|
|
5
|
+
Object.defineProperty(exports, "PaginationQueryDto", { enumerable: true, get: function () { return pagination_dto_1.PaginationQueryDto; } });
|
|
6
|
+
Object.defineProperty(exports, "paginate", { enumerable: true, get: function () { return pagination_dto_1.paginate; } });
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,uDAA2F;AAAlF,oHAAA,kBAAkB,OAAA;AAAE,0GAAA,QAAQ,OAAA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { GroupsService } from './groups.service';
|
|
2
2
|
import { CreateGroupDto } from './dto/create-group.dto';
|
|
3
|
+
import { PaginationQueryDto } from '../common';
|
|
3
4
|
export declare class GroupsController {
|
|
4
5
|
private readonly groupsService;
|
|
5
6
|
constructor(groupsService: GroupsService);
|
|
6
7
|
create(dto: CreateGroupDto): Promise<import("../storage/interfaces/repos.interface").Group>;
|
|
7
|
-
findAll(): Promise<import("../storage/interfaces/repos.interface").Group[]
|
|
8
|
+
findAll(query: PaginationQueryDto): Promise<import("../storage/interfaces/repos.interface").Group[] | import("../common").PaginatedResponse<import("../storage/interfaces/repos.interface").Group>>;
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=groups.controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups.controller.d.ts","sourceRoot":"","sources":["../../src/groups/groups.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"groups.controller.d.ts","sourceRoot":"","sources":["../../src/groups/groups.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAY,MAAM,WAAW,CAAA;AAExD,qBAIa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAOzD,MAAM,CAAS,GAAG,EAAE,cAAc;IAO5B,OAAO,CAAU,KAAK,EAAE,kBAAkB;CAOjD"}
|
|
@@ -18,6 +18,7 @@ const swagger_1 = require("@nestjs/swagger");
|
|
|
18
18
|
const admin_guard_1 = require("../auth/admin.guard");
|
|
19
19
|
const groups_service_1 = require("./groups.service");
|
|
20
20
|
const create_group_dto_1 = require("./dto/create-group.dto");
|
|
21
|
+
const common_2 = require("../common");
|
|
21
22
|
let GroupsController = class GroupsController {
|
|
22
23
|
groupsService;
|
|
23
24
|
constructor(groupsService) {
|
|
@@ -26,8 +27,12 @@ let GroupsController = class GroupsController {
|
|
|
26
27
|
create(dto) {
|
|
27
28
|
return this.groupsService.create({ name: dto.name, description: dto.description ?? '' });
|
|
28
29
|
}
|
|
29
|
-
findAll() {
|
|
30
|
-
|
|
30
|
+
async findAll(query) {
|
|
31
|
+
const all = await this.groupsService.findAll();
|
|
32
|
+
if (query.page != null || query.limit != null) {
|
|
33
|
+
return (0, common_2.paginate)(all, query);
|
|
34
|
+
}
|
|
35
|
+
return all;
|
|
31
36
|
}
|
|
32
37
|
};
|
|
33
38
|
exports.GroupsController = GroupsController;
|
|
@@ -44,11 +49,12 @@ __decorate([
|
|
|
44
49
|
], GroupsController.prototype, "create", null);
|
|
45
50
|
__decorate([
|
|
46
51
|
(0, common_1.Get)(),
|
|
47
|
-
(0, swagger_1.ApiOperation)({ summary: 'List all groups' }),
|
|
52
|
+
(0, swagger_1.ApiOperation)({ summary: 'List all groups (supports optional pagination via ?page=&limit=)' }),
|
|
48
53
|
(0, swagger_1.ApiResponse)({ status: 200, description: 'List of groups' }),
|
|
54
|
+
__param(0, (0, common_1.Query)()),
|
|
49
55
|
__metadata("design:type", Function),
|
|
50
|
-
__metadata("design:paramtypes", []),
|
|
51
|
-
__metadata("design:returntype",
|
|
56
|
+
__metadata("design:paramtypes", [common_2.PaginationQueryDto]),
|
|
57
|
+
__metadata("design:returntype", Promise)
|
|
52
58
|
], GroupsController.prototype, "findAll", null);
|
|
53
59
|
exports.GroupsController = GroupsController = __decorate([
|
|
54
60
|
(0, swagger_1.ApiTags)('Admin / Groups'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups.controller.js","sourceRoot":"","sources":["../../src/groups/groups.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"groups.controller.js","sourceRoot":"","sources":["../../src/groups/groups.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwF;AACxF,6CAAiF;AACjF,qDAAgD;AAChD,qDAAgD;AAChD,6DAAuD;AACvD,sCAAwD;AAMjD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACE;IAA7B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAO7D,MAAM,CAAS,GAAmB;QAChC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAA;IAC1F,CAAC;IAKK,AAAN,KAAK,CAAC,OAAO,CAAU,KAAyB;QAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAA;QAC9C,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC9C,OAAO,IAAA,iBAAQ,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC7B,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF,CAAA;AAtBY,4CAAgB;AAQ3B;IALC,IAAA,aAAI,GAAE;IACN,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACb,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAC/C,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;IACvE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAC/D,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,iCAAc;;8CAEjC;AAKK;IAHL,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,kEAAkE,EAAE,CAAC;IAC7F,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAC7C,WAAA,IAAA,cAAK,GAAE,CAAA;;qCAAQ,2BAAkB;;+CAM/C;2BArBU,gBAAgB;IAJ5B,IAAA,iBAAO,EAAC,gBAAgB,CAAC;IACzB,IAAA,qBAAW,EAAC,aAAa,CAAC;IAC1B,IAAA,mBAAU,EAAC,cAAc,CAAC;IAC1B,IAAA,kBAAS,EAAC,wBAAU,CAAC;qCAEwB,8BAAa;GAD9C,gBAAgB,CAsB5B"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { MCPService } from './mcp.service';
|
|
2
2
|
import { CreateMcpDto } from './dto/create-mcp.dto';
|
|
3
3
|
import { UpdateMcpDto } from './dto/update-mcp.dto';
|
|
4
|
+
import { PaginationQueryDto } from '../common';
|
|
4
5
|
export declare class AdminMCPController {
|
|
5
6
|
private readonly mcpService;
|
|
6
7
|
constructor(mcpService: MCPService);
|
|
7
8
|
create(dto: CreateMcpDto): Promise<import("../storage/interfaces/repos.interface").McpEntry>;
|
|
8
|
-
findAll(): Promise<import("../storage/interfaces/repos.interface").McpEntry[]
|
|
9
|
+
findAll(query: PaginationQueryDto): Promise<import("../storage/interfaces/repos.interface").McpEntry[] | import("../common").PaginatedResponse<import("../storage/interfaces/repos.interface").McpEntry>>;
|
|
9
10
|
findById(id: string): Promise<import("../storage/interfaces/repos.interface").McpEntry>;
|
|
10
11
|
update(id: string, dto: UpdateMcpDto): Promise<import("../storage/interfaces/repos.interface").McpEntry>;
|
|
11
12
|
delete(id: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-mcp.controller.d.ts","sourceRoot":"","sources":["../../src/mcp/admin-mcp.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"admin-mcp.controller.d.ts","sourceRoot":"","sources":["../../src/mcp/admin-mcp.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAY,MAAM,WAAW,CAAA;AAExD,qBAIa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAOnD,MAAM,CAAS,GAAG,EAAE,YAAY;IAe1B,OAAO,CAAU,KAAK,EAAE,kBAAkB;IAYhD,QAAQ,CAAc,EAAE,EAAE,MAAM;IAMhC,MAAM,CAAc,EAAE,EAAE,MAAM,EAAU,GAAG,EAAE,YAAY;IAQnD,MAAM,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD"}
|
|
@@ -19,6 +19,7 @@ const admin_guard_1 = require("../auth/admin.guard");
|
|
|
19
19
|
const mcp_service_1 = require("./mcp.service");
|
|
20
20
|
const create_mcp_dto_1 = require("./dto/create-mcp.dto");
|
|
21
21
|
const update_mcp_dto_1 = require("./dto/update-mcp.dto");
|
|
22
|
+
const common_2 = require("../common");
|
|
22
23
|
let AdminMCPController = class AdminMCPController {
|
|
23
24
|
mcpService;
|
|
24
25
|
constructor(mcpService) {
|
|
@@ -35,7 +36,13 @@ let AdminMCPController = class AdminMCPController {
|
|
|
35
36
|
authConfig: dto.authConfig,
|
|
36
37
|
});
|
|
37
38
|
}
|
|
38
|
-
findAll() {
|
|
39
|
+
async findAll(query) {
|
|
40
|
+
const all = await this.mcpService.findAll();
|
|
41
|
+
if (query.page != null || query.limit != null) {
|
|
42
|
+
return (0, common_2.paginate)(all, query);
|
|
43
|
+
}
|
|
44
|
+
return all;
|
|
45
|
+
}
|
|
39
46
|
findById(id) { return this.mcpService.findById(id); }
|
|
40
47
|
update(id, dto) {
|
|
41
48
|
return this.mcpService.update(id, dto);
|
|
@@ -58,11 +65,12 @@ __decorate([
|
|
|
58
65
|
], AdminMCPController.prototype, "create", null);
|
|
59
66
|
__decorate([
|
|
60
67
|
(0, common_1.Get)(),
|
|
61
|
-
(0, swagger_1.ApiOperation)({ summary: 'List all MCP servers' }),
|
|
68
|
+
(0, swagger_1.ApiOperation)({ summary: 'List all MCP servers (supports optional pagination via ?page=&limit=)' }),
|
|
62
69
|
(0, swagger_1.ApiResponse)({ status: 200, description: 'List of MCP servers' }),
|
|
70
|
+
__param(0, (0, common_1.Query)()),
|
|
63
71
|
__metadata("design:type", Function),
|
|
64
|
-
__metadata("design:paramtypes", []),
|
|
65
|
-
__metadata("design:returntype",
|
|
72
|
+
__metadata("design:paramtypes", [common_2.PaginationQueryDto]),
|
|
73
|
+
__metadata("design:returntype", Promise)
|
|
66
74
|
], AdminMCPController.prototype, "findAll", null);
|
|
67
75
|
__decorate([
|
|
68
76
|
(0, common_1.Get)(':id'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-mcp.controller.js","sourceRoot":"","sources":["../../src/mcp/admin-mcp.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"admin-mcp.controller.js","sourceRoot":"","sources":["../../src/mcp/admin-mcp.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import type { JwtPayload } from '../crypto/jwt.service';
|
|
2
2
|
import type { McpEntry } from '../storage/interfaces/repos.interface';
|
|
3
3
|
import { MCPService } from './mcp.service';
|
|
4
|
+
import { PaginationQueryDto } from '../common';
|
|
4
5
|
export declare class ClientMCPController {
|
|
5
6
|
private readonly mcpService;
|
|
6
7
|
constructor(mcpService: MCPService);
|
|
7
|
-
findByGroup(payload: JwtPayload): Promise<(Omit<McpEntry, "authConfig"> & {
|
|
8
|
+
findByGroup(payload: JwtPayload, query: PaginationQueryDto): Promise<(Omit<McpEntry, "authConfig"> & {
|
|
8
9
|
authConfig: {
|
|
9
10
|
type: string;
|
|
10
11
|
};
|
|
11
|
-
})[]
|
|
12
|
+
})[] | import("../common").PaginatedResponse<Omit<McpEntry, "authConfig"> & {
|
|
13
|
+
authConfig: {
|
|
14
|
+
type: string;
|
|
15
|
+
};
|
|
16
|
+
}>>;
|
|
12
17
|
findByName(name: string, payload: JwtPayload): Promise<McpEntry>;
|
|
13
18
|
/** Strip credential values from authConfig — only expose { type } for discovery. */
|
|
14
19
|
private static redact;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-mcp.controller.d.ts","sourceRoot":"","sources":["../../src/mcp/client-mcp.controller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"client-mcp.controller.d.ts","sourceRoot":"","sources":["../../src/mcp/client-mcp.controller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAY,MAAM,WAAW,CAAA;AAExD,qBAIa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAM7C,WAAW,CAAoB,OAAO,EAAE,UAAU,EAAW,KAAK,EAAE,kBAAkB;oBAmBP;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE;;oBAAhB;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE;;IALrG,UAAU,CAAgB,IAAI,EAAE,MAAM,EAAqB,OAAO,EAAE,UAAU;IAI9E,oFAAoF;IACpF,OAAO,CAAC,MAAM,CAAC,MAAM;CAGtB"}
|
|
@@ -19,14 +19,19 @@ const swagger_1 = require("@nestjs/swagger");
|
|
|
19
19
|
const group_token_guard_1 = require("../auth/group-token.guard");
|
|
20
20
|
const jwt_payload_decorator_1 = require("../auth/decorators/jwt-payload.decorator");
|
|
21
21
|
const mcp_service_1 = require("./mcp.service");
|
|
22
|
+
const common_2 = require("../common");
|
|
22
23
|
let ClientMCPController = ClientMCPController_1 = class ClientMCPController {
|
|
23
24
|
mcpService;
|
|
24
25
|
constructor(mcpService) {
|
|
25
26
|
this.mcpService = mcpService;
|
|
26
27
|
}
|
|
27
|
-
async findByGroup(payload) {
|
|
28
|
+
async findByGroup(payload, query) {
|
|
28
29
|
const entries = await this.mcpService.findByGroup(payload.sub);
|
|
29
|
-
|
|
30
|
+
const redacted = entries.map((e) => ClientMCPController_1.redact(e));
|
|
31
|
+
if (query.page != null || query.limit != null) {
|
|
32
|
+
return (0, common_2.paginate)(redacted, query);
|
|
33
|
+
}
|
|
34
|
+
return redacted;
|
|
30
35
|
}
|
|
31
36
|
findByName(name, payload) {
|
|
32
37
|
return this.mcpService.findByName(name, payload.sub);
|
|
@@ -43,8 +48,9 @@ __decorate([
|
|
|
43
48
|
(0, swagger_1.ApiResponse)({ status: 200, description: 'List of MCP servers with authConfig redacted to type only' }),
|
|
44
49
|
(0, swagger_1.ApiResponse)({ status: 401, description: 'Invalid or expired token' }),
|
|
45
50
|
__param(0, (0, jwt_payload_decorator_1.JwtPayloadParam)()),
|
|
51
|
+
__param(1, (0, common_1.Query)()),
|
|
46
52
|
__metadata("design:type", Function),
|
|
47
|
-
__metadata("design:paramtypes", [Object]),
|
|
53
|
+
__metadata("design:paramtypes", [Object, common_2.PaginationQueryDto]),
|
|
48
54
|
__metadata("design:returntype", Promise)
|
|
49
55
|
], ClientMCPController.prototype, "findByGroup", null);
|
|
50
56
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-mcp.controller.js","sourceRoot":"","sources":["../../src/mcp/client-mcp.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"client-mcp.controller.js","sourceRoot":"","sources":["../../src/mcp/client-mcp.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyE;AACzE,6CAAmF;AACnF,iEAA2D;AAC3D,oFAA0E;AAG1E,+CAA0C;AAC1C,sCAAwD;AAMjD,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IACD;IAA7B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAMjD,AAAN,KAAK,CAAC,WAAW,CAAoB,OAAmB,EAAW,KAAyB;QAC1F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAClE,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC9C,OAAO,IAAA,iBAAQ,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAOD,UAAU,CAAgB,IAAY,EAAqB,OAAmB;QAC5E,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACtD,CAAC;IAED,oFAAoF;IAC5E,MAAM,CAAC,MAAM,CAAC,KAAe;QACnC,OAAO,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAA;IAClE,CAAC;CACF,CAAA;AA7BY,kDAAmB;AAOxB;IAJL,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,qEAAqE,EAAE,CAAC;IAChG,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2DAA2D,EAAE,CAAC;IACtG,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IACnD,WAAA,IAAA,uCAAe,GAAE,CAAA;IAAuB,WAAA,IAAA,cAAK,GAAE,CAAA;;6CAAQ,2BAAkB;;sDAO3F;AAOD;IALC,IAAA,YAAG,EAAC,OAAO,CAAC;IACZ,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,uDAAuD,EAAE,CAAC;IAClF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC;IAClF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IACrE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;IACtD,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IAAgB,WAAA,IAAA,uCAAe,GAAE,CAAA;;;;qDAEzD;8BAvBU,mBAAmB;IAJ/B,IAAA,iBAAO,EAAC,cAAc,CAAC;IACvB,IAAA,uBAAa,EAAC,UAAU,CAAC;IACzB,IAAA,mBAAU,EAAC,YAAY,CAAC;IACxB,IAAA,kBAAS,EAAC,mCAAe,CAAC;qCAEgB,wBAAU;GADxC,mBAAmB,CA6B/B"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { OASService } from './oas.service';
|
|
2
2
|
import { CreateOASDto } from './dto/create-oas.dto';
|
|
3
3
|
import { UpdateOASDto } from './dto/update-oas.dto';
|
|
4
|
+
import { PaginationQueryDto } from '../common';
|
|
4
5
|
export declare class AdminOASController {
|
|
5
6
|
private readonly oasService;
|
|
6
7
|
constructor(oasService: OASService);
|
|
7
8
|
create(dto: CreateOASDto): Promise<import("../storage/interfaces/repos.interface").OASEntry>;
|
|
8
|
-
findAll(): Promise<import("../storage/interfaces/repos.interface").OASEntry[]
|
|
9
|
+
findAll(query: PaginationQueryDto): Promise<import("../storage/interfaces/repos.interface").OASEntry[] | import("../common").PaginatedResponse<import("../storage/interfaces/repos.interface").OASEntry>>;
|
|
9
10
|
update(id: string, dto: UpdateOASDto): Promise<import("../storage/interfaces/repos.interface").OASEntry>;
|
|
10
11
|
delete(id: string): Promise<void>;
|
|
11
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-oas.controller.d.ts","sourceRoot":"","sources":["../../src/oas/admin-oas.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"admin-oas.controller.d.ts","sourceRoot":"","sources":["../../src/oas/admin-oas.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAY,MAAM,WAAW,CAAA;AAExD,qBAIa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAOnD,MAAM,CAAS,GAAG,EAAE,YAAY;IAgB1B,OAAO,CAAU,KAAK,EAAE,kBAAkB;IAYhD,MAAM,CAAc,EAAE,EAAE,MAAM,EAAU,GAAG,EAAE,YAAY;IASnD,MAAM,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD"}
|
|
@@ -19,6 +19,7 @@ const admin_guard_1 = require("../auth/admin.guard");
|
|
|
19
19
|
const oas_service_1 = require("./oas.service");
|
|
20
20
|
const create_oas_dto_1 = require("./dto/create-oas.dto");
|
|
21
21
|
const update_oas_dto_1 = require("./dto/update-oas.dto");
|
|
22
|
+
const common_2 = require("../common");
|
|
22
23
|
let AdminOASController = class AdminOASController {
|
|
23
24
|
oasService;
|
|
24
25
|
constructor(oasService) {
|
|
@@ -36,7 +37,13 @@ let AdminOASController = class AdminOASController {
|
|
|
36
37
|
cacheTtl: dto.cacheTtl,
|
|
37
38
|
});
|
|
38
39
|
}
|
|
39
|
-
findAll() {
|
|
40
|
+
async findAll(query) {
|
|
41
|
+
const all = await this.oasService.findAll();
|
|
42
|
+
if (query.page != null || query.limit != null) {
|
|
43
|
+
return (0, common_2.paginate)(all, query);
|
|
44
|
+
}
|
|
45
|
+
return all;
|
|
46
|
+
}
|
|
40
47
|
update(id, dto) {
|
|
41
48
|
return this.oasService.update(id, dto);
|
|
42
49
|
}
|
|
@@ -58,11 +65,12 @@ __decorate([
|
|
|
58
65
|
], AdminOASController.prototype, "create", null);
|
|
59
66
|
__decorate([
|
|
60
67
|
(0, common_1.Get)(),
|
|
61
|
-
(0, swagger_1.ApiOperation)({ summary: 'List all OAS entries' }),
|
|
68
|
+
(0, swagger_1.ApiOperation)({ summary: 'List all OAS entries (supports optional pagination via ?page=&limit=)' }),
|
|
62
69
|
(0, swagger_1.ApiResponse)({ status: 200, description: 'List of OAS entries' }),
|
|
70
|
+
__param(0, (0, common_1.Query)()),
|
|
63
71
|
__metadata("design:type", Function),
|
|
64
|
-
__metadata("design:paramtypes", []),
|
|
65
|
-
__metadata("design:returntype",
|
|
72
|
+
__metadata("design:paramtypes", [common_2.PaginationQueryDto]),
|
|
73
|
+
__metadata("design:returntype", Promise)
|
|
66
74
|
], AdminOASController.prototype, "findAll", null);
|
|
67
75
|
__decorate([
|
|
68
76
|
(0, common_1.Put)(':id'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-oas.controller.js","sourceRoot":"","sources":["../../src/oas/admin-oas.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"admin-oas.controller.js","sourceRoot":"","sources":["../../src/oas/admin-oas.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import type { JwtPayload } from '../crypto/jwt.service';
|
|
2
2
|
import type { OASEntry } from '../storage/interfaces/repos.interface';
|
|
3
3
|
import { OASService } from './oas.service';
|
|
4
|
+
import { PaginationQueryDto } from '../common';
|
|
4
5
|
export declare class ClientOASController {
|
|
5
6
|
private readonly oasService;
|
|
6
7
|
constructor(oasService: OASService);
|
|
7
|
-
findByGroup(payload: JwtPayload): Promise<(Omit<OASEntry, "authConfig"> & {
|
|
8
|
+
findByGroup(payload: JwtPayload, query: PaginationQueryDto): Promise<(Omit<OASEntry, "authConfig"> & {
|
|
8
9
|
authConfig: {
|
|
9
10
|
type: string;
|
|
10
11
|
};
|
|
11
|
-
})[]
|
|
12
|
+
})[] | import("../common").PaginatedResponse<Omit<OASEntry, "authConfig"> & {
|
|
13
|
+
authConfig: {
|
|
14
|
+
type: string;
|
|
15
|
+
};
|
|
16
|
+
}>>;
|
|
12
17
|
findByName(name: string, payload: JwtPayload): Promise<OASEntry>;
|
|
13
18
|
/** Strip credential values from authConfig — only expose { type } for discovery. */
|
|
14
19
|
private static redact;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-oas.controller.d.ts","sourceRoot":"","sources":["../../src/oas/client-oas.controller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"client-oas.controller.d.ts","sourceRoot":"","sources":["../../src/oas/client-oas.controller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAY,MAAM,WAAW,CAAA;AAExD,qBAIa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAM7C,WAAW,CAAoB,OAAO,EAAE,UAAU,EAAW,KAAK,EAAE,kBAAkB;oBAmBP;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE;;oBAAhB;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE;;IALrG,UAAU,CAAgB,IAAI,EAAE,MAAM,EAAqB,OAAO,EAAE,UAAU;IAI9E,oFAAoF;IACpF,OAAO,CAAC,MAAM,CAAC,MAAM;CAGtB"}
|
|
@@ -19,14 +19,19 @@ const swagger_1 = require("@nestjs/swagger");
|
|
|
19
19
|
const group_token_guard_1 = require("../auth/group-token.guard");
|
|
20
20
|
const jwt_payload_decorator_1 = require("../auth/decorators/jwt-payload.decorator");
|
|
21
21
|
const oas_service_1 = require("./oas.service");
|
|
22
|
+
const common_2 = require("../common");
|
|
22
23
|
let ClientOASController = ClientOASController_1 = class ClientOASController {
|
|
23
24
|
oasService;
|
|
24
25
|
constructor(oasService) {
|
|
25
26
|
this.oasService = oasService;
|
|
26
27
|
}
|
|
27
|
-
async findByGroup(payload) {
|
|
28
|
+
async findByGroup(payload, query) {
|
|
28
29
|
const entries = await this.oasService.findByGroup(payload.sub);
|
|
29
|
-
|
|
30
|
+
const redacted = entries.map((e) => ClientOASController_1.redact(e));
|
|
31
|
+
if (query.page != null || query.limit != null) {
|
|
32
|
+
return (0, common_2.paginate)(redacted, query);
|
|
33
|
+
}
|
|
34
|
+
return redacted;
|
|
30
35
|
}
|
|
31
36
|
findByName(name, payload) {
|
|
32
37
|
return this.oasService.findByName(name, payload.sub);
|
|
@@ -43,8 +48,9 @@ __decorate([
|
|
|
43
48
|
(0, swagger_1.ApiResponse)({ status: 200, description: 'List of OAS entries with authConfig redacted to type only' }),
|
|
44
49
|
(0, swagger_1.ApiResponse)({ status: 401, description: 'Invalid or expired token' }),
|
|
45
50
|
__param(0, (0, jwt_payload_decorator_1.JwtPayloadParam)()),
|
|
51
|
+
__param(1, (0, common_1.Query)()),
|
|
46
52
|
__metadata("design:type", Function),
|
|
47
|
-
__metadata("design:paramtypes", [Object]),
|
|
53
|
+
__metadata("design:paramtypes", [Object, common_2.PaginationQueryDto]),
|
|
48
54
|
__metadata("design:returntype", Promise)
|
|
49
55
|
], ClientOASController.prototype, "findByGroup", null);
|
|
50
56
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-oas.controller.js","sourceRoot":"","sources":["../../src/oas/client-oas.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"client-oas.controller.js","sourceRoot":"","sources":["../../src/oas/client-oas.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyE;AACzE,6CAAmF;AACnF,iEAA2D;AAC3D,oFAA0E;AAG1E,+CAA0C;AAC1C,sCAAwD;AAMjD,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IACD;IAA7B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAMjD,AAAN,KAAK,CAAC,WAAW,CAAoB,OAAmB,EAAW,KAAyB;QAC1F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAClE,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC9C,OAAO,IAAA,iBAAQ,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAOD,UAAU,CAAgB,IAAY,EAAqB,OAAmB;QAC5E,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACtD,CAAC;IAED,oFAAoF;IAC5E,MAAM,CAAC,MAAM,CAAC,KAAe;QACnC,OAAO,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAA;IAC3D,CAAC;CACF,CAAA;AA7BY,kDAAmB;AAOxB;IAJL,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,qEAAqE,EAAE,CAAC;IAChG,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2DAA2D,EAAE,CAAC;IACtG,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IACnD,WAAA,IAAA,uCAAe,GAAE,CAAA;IAAuB,WAAA,IAAA,cAAK,GAAE,CAAA;;6CAAQ,2BAAkB;;sDAO3F;AAOD;IALC,IAAA,YAAG,EAAC,OAAO,CAAC;IACZ,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,8DAA8D,EAAE,CAAC;IACzF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;IACjF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IACrE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACrD,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IAAgB,WAAA,IAAA,uCAAe,GAAE,CAAA;;;;qDAEzD;8BAvBU,mBAAmB;IAJ/B,IAAA,iBAAO,EAAC,cAAc,CAAC;IACvB,IAAA,uBAAa,EAAC,UAAU,CAAC;IACzB,IAAA,mBAAU,EAAC,YAAY,CAAC;IACxB,IAAA,kBAAS,EAAC,mCAAe,CAAC;qCAEgB,wBAAU;GADxC,mBAAmB,CA6B/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tronsfey/ucli-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "ucli server — centralized OpenAPI and MCP management server with multi-database support",
|
|
5
5
|
"keywords": ["openapi", "oas", "gateway", "nestjs", "jwt", "api-management"],
|
|
6
6
|
"license": "MIT",
|