@tronsfey/ucli-server 0.6.5 → 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/README.md CHANGED
@@ -116,10 +116,22 @@ ADMIN_SECRET=my-secret ENCRYPTION_KEY=$ENCRYPTION_KEY ucli-server
116
116
  | `DB_TYPE` | Driver | Notes |
117
117
  |-----------|--------|-------|
118
118
  | `memory` | — | Default. No persistence. Data lost on restart. |
119
- | `postgres` | `pg` | PostgreSQL 12+ |
119
+ | `postgres` | `pg` | PostgreSQL 13+ |
120
120
  | `mysql` | `mysql2` | MySQL 5.7+ / MariaDB 10.3+ |
121
121
 
122
- Tables are auto-created on first run.
122
+ In **development** (`NODE_ENV != production`), TypeORM `synchronize: true` creates tables automatically.
123
+
124
+ In **production**, initialize the schema manually using the provided SQL files:
125
+
126
+ ```bash
127
+ # PostgreSQL
128
+ psql -U oas_gateway -d oas_gateway -f packages/server/db/init.postgres.sql
129
+
130
+ # MySQL
131
+ mysql -u<user> -p<password> oas_gateway < packages/server/db/init.mysql.sql
132
+ ```
133
+
134
+ Then start the server:
123
135
 
124
136
  ```bash
125
137
  # PostgreSQL
package/README.zh.md CHANGED
@@ -112,10 +112,22 @@ ADMIN_SECRET=my-secret ENCRYPTION_KEY=$ENCRYPTION_KEY ucli-server
112
112
  | `DB_TYPE` | 驱动 | 说明 |
113
113
  |-----------|------|------|
114
114
  | `memory` | — | 默认。无持久化,重启后数据丢失。 |
115
- | `postgres` | `pg` | PostgreSQL 12+ |
115
+ | `postgres` | `pg` | PostgreSQL 13+ |
116
116
  | `mysql` | `mysql2` | MySQL 5.7+ / MariaDB 10.3+ |
117
117
 
118
- 首次运行时自动建表。
118
+ **开发环境**(`NODE_ENV != production`)下,TypeORM `synchronize: true` 会自动建表。
119
+
120
+ **生产环境**需手动初始化数据库结构,使用项目提供的 SQL 文件:
121
+
122
+ ```bash
123
+ # PostgreSQL
124
+ psql -U oas_gateway -d oas_gateway -f packages/server/db/init.postgres.sql
125
+
126
+ # MySQL
127
+ mysql -u<用户名> -p<密码> oas_gateway < packages/server/db/init.mysql.sql
128
+ ```
129
+
130
+ 初始化完成后启动服务:
119
131
 
120
132
  ```bash
121
133
  # PostgreSQL
@@ -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,2 @@
1
+ export { PaginationQueryDto, paginate, type PaginatedResponse } from './dto/pagination.dto';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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;AAEvD,qBAIa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAOzD,MAAM,CAAS,GAAG,EAAE,cAAc;IAOlC,OAAO;CAGR"}
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
- return this.groupsService.findAll();
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", void 0)
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,2CAAiF;AACjF,6CAAiF;AACjF,qDAAgD;AAChD,qDAAgD;AAChD,6DAAuD;AAMhD,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;IAKD,OAAO;QACL,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAA;IACrC,CAAC;CACF,CAAA;AAlBY,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;AAKD;IAHC,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC5C,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;;;;+CAG3D;2BAjBU,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,CAkB5B"}
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;AAEnD,qBAIa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAOnD,MAAM,CAAS,GAAG,EAAE,YAAY;IAehC,OAAO;IAMP,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"}
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() { return this.mcpService.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", void 0)
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":"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"}
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;AAE1C,qBAIa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAM7C,WAAW,CAAoB,OAAO,EAAE,UAAU;oBAe6B;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"}
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
- return entries.map((e) => ClientMCPController_1.redact(e));
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,2CAAkE;AAClE,6CAAmF;AACnF,iEAA2D;AAC3D,oFAA0E;AAG1E,+CAA0C;AAMnC,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IACD;IAA7B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAMjD,AAAN,KAAK,CAAC,WAAW,CAAoB,OAAmB;QACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,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;AAzBY,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;;;;sDAGnC;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;8BAnBU,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,CAyB/B"}
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;AAEnD,qBAIa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAOnD,MAAM,CAAS,GAAG,EAAE,YAAY;IAgBhC,OAAO;IAMP,MAAM,CAAc,EAAE,EAAE,MAAM,EAAU,GAAG,EAAE,YAAY;IASnD,MAAM,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD"}
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() { return this.oasService.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", void 0)
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":"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"}
1
+ {"version":3,"file":"admin-oas.controller.js","sourceRoot":"","sources":["../../src/oas/admin-oas.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4G;AAC5G,6CAAiF;AACjF,qDAAgD;AAChD,+CAA0C;AAC1C,yDAAmD;AACnD,yDAAmD;AACnD,sCAAwD;AAMjD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IACA;IAA7B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAOvD,MAAM,CAAS,GAAiB;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;YAClC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC,CAAA;IACJ,CAAC;IAKK,AAAN,KAAK,CAAC,OAAO,CAAU,KAAyB;QAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;QAC3C,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;IAMD,MAAM,CAAc,EAAU,EAAU,GAAiB;QACvD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAOK,AAAN,KAAK,CAAC,MAAM,CAAc,EAAU;QAClC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAClC,CAAC;CACF,CAAA;AAhDY,gDAAkB;AAQ7B;IALC,IAAA,aAAI,GAAE;IACN,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACb,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACrD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IAC9D,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;IAC/E,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,6BAAY;;gDAW/B;AAKK;IAHL,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,uEAAuE,EAAE,CAAC;IAClG,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAClD,WAAA,IAAA,cAAK,GAAE,CAAA;;qCAAQ,2BAAkB;;iDAM/C;AAMD;IAJC,IAAA,YAAG,EAAC,KAAK,CAAC;IACV,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IAChD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IAC9D,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACzD,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAM,6BAAY;;gDAExD;AAOK;IALL,IAAA,eAAM,EAAC,KAAK,CAAC;IACb,IAAA,iBAAQ,EAAC,GAAG,CAAC;IACb,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IAChD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IAC9D,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IACnD,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;gDAExB;6BA/CU,kBAAkB;IAJ9B,IAAA,iBAAO,EAAC,aAAa,CAAC;IACtB,IAAA,qBAAW,EAAC,aAAa,CAAC;IAC1B,IAAA,mBAAU,EAAC,WAAW,CAAC;IACvB,IAAA,kBAAS,EAAC,wBAAU,CAAC;qCAEqB,wBAAU;GADxC,kBAAkB,CAgD9B"}
@@ -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;AAE1C,qBAIa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAM7C,WAAW,CAAoB,OAAO,EAAE,UAAU;oBAe6B;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"}
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
- return entries.map((e) => ClientOASController_1.redact(e));
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,2CAAkE;AAClE,6CAAmF;AACnF,iEAA2D;AAC3D,oFAA0E;AAG1E,+CAA0C;AAMnC,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IACD;IAA7B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAMjD,AAAN,KAAK,CAAC,WAAW,CAAoB,OAAmB;QACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,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;AAzBY,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;;;;sDAGnC;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;8BAnBU,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,CAyB/B"}
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.6.5",
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",