@hed-hog/core 0.0.349 → 0.0.350
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/auth/auth.controller.d.ts +3 -3
- package/dist/auth/auth.service.d.ts +8 -8
- package/dist/core.module.d.ts.map +1 -1
- package/dist/core.module.js +3 -0
- package/dist/core.module.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/guards/mcp-auth.guard.d.ts +6 -1
- package/dist/mcp/guards/mcp-auth.guard.d.ts.map +1 -1
- package/dist/mcp/guards/mcp-auth.guard.js +29 -2
- package/dist/mcp/guards/mcp-auth.guard.js.map +1 -1
- package/dist/mcp/mcp-api-key.controller.d.ts +32 -0
- package/dist/mcp/mcp-api-key.controller.d.ts.map +1 -0
- package/dist/mcp/mcp-api-key.controller.js +64 -0
- package/dist/mcp/mcp-api-key.controller.js.map +1 -0
- package/dist/mcp/mcp-api-key.service.d.ts +27 -0
- package/dist/mcp/mcp-api-key.service.d.ts.map +1 -0
- package/dist/mcp/mcp-api-key.service.js +74 -0
- package/dist/mcp/mcp-api-key.service.js.map +1 -0
- package/dist/mcp/mcp-registry.service.d.ts +1 -2
- package/dist/mcp/mcp-registry.service.d.ts.map +1 -1
- package/dist/mcp/mcp-registry.service.js +6 -2
- package/dist/mcp/mcp-registry.service.js.map +1 -1
- package/dist/mcp/mcp.module.d.ts.map +1 -1
- package/dist/mcp/mcp.module.js +8 -1
- package/dist/mcp/mcp.module.js.map +1 -1
- package/dist/mcp-chat/mcp-chat.controller.d.ts +4 -0
- package/dist/mcp-chat/mcp-chat.controller.d.ts.map +1 -1
- package/dist/mcp-chat/mcp-chat.controller.js +46 -0
- package/dist/mcp-chat/mcp-chat.controller.js.map +1 -1
- package/dist/mcp-chat/mcp-chat.service.d.ts +6 -1
- package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -1
- package/dist/mcp-chat/mcp-chat.service.js +125 -17
- package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
- package/dist/notification/dto/create-notification.dto.d.ts +26 -0
- package/dist/notification/dto/create-notification.dto.d.ts.map +1 -0
- package/dist/notification/dto/create-notification.dto.js +86 -0
- package/dist/notification/dto/create-notification.dto.js.map +1 -0
- package/dist/notification/dto/update-progress.dto.d.ts +6 -0
- package/dist/notification/dto/update-progress.dto.d.ts.map +1 -0
- package/dist/notification/dto/update-progress.dto.js +33 -0
- package/dist/notification/dto/update-progress.dto.js.map +1 -0
- package/dist/notification/notification.controller.d.ts +108 -0
- package/dist/notification/notification.controller.d.ts.map +1 -0
- package/dist/notification/notification.controller.js +118 -0
- package/dist/notification/notification.controller.js.map +1 -0
- package/dist/notification/notification.module.d.ts +3 -0
- package/dist/notification/notification.module.d.ts.map +1 -0
- package/dist/notification/notification.module.js +29 -0
- package/dist/notification/notification.module.js.map +1 -0
- package/dist/notification/notification.service.d.ts +98 -0
- package/dist/notification/notification.service.d.ts.map +1 -0
- package/dist/notification/notification.service.js +123 -0
- package/dist/notification/notification.service.js.map +1 -0
- package/dist/profile/profile.controller.d.ts +1 -1
- package/dist/profile/profile.service.d.ts +1 -1
- package/dist/session/session.controller.d.ts +1 -1
- package/dist/session/session.service.d.ts +3 -3
- package/dist/setting/dto/update-setting-list.dto.d.ts +9 -0
- package/dist/setting/dto/update-setting-list.dto.d.ts.map +1 -0
- package/dist/setting/dto/update-setting-list.dto.js +44 -0
- package/dist/setting/dto/update-setting-list.dto.js.map +1 -0
- package/dist/setting/setting.controller.d.ts +19 -0
- package/dist/setting/setting.controller.d.ts.map +1 -1
- package/dist/setting/setting.controller.js +12 -0
- package/dist/setting/setting.controller.js.map +1 -1
- package/dist/setting/setting.service.d.ts +19 -0
- package/dist/setting/setting.service.d.ts.map +1 -1
- package/dist/setting/setting.service.js +79 -0
- package/dist/setting/setting.service.js.map +1 -1
- package/dist/task/task.service.d.ts +12 -0
- package/dist/task/task.service.d.ts.map +1 -1
- package/dist/task/task.service.js +60 -0
- package/dist/task/task.service.js.map +1 -1
- package/dist/user/user.controller.d.ts +2 -2
- package/dist/user/user.service.d.ts +6 -6
- package/dist/webhook-integration/webhook-integration.service.d.ts +4 -0
- package/dist/webhook-integration/webhook-integration.service.d.ts.map +1 -1
- package/dist/webhook-integration/webhook-integration.service.js +184 -34
- package/dist/webhook-integration/webhook-integration.service.js.map +1 -1
- package/dist/webhook-integration/webhook-utils.d.ts +1 -0
- package/dist/webhook-integration/webhook-utils.d.ts.map +1 -1
- package/dist/webhook-integration/webhook-utils.js +38 -0
- package/dist/webhook-integration/webhook-utils.js.map +1 -1
- package/hedhog/data/menu.yaml +48 -4
- package/hedhog/data/route.yaml +133 -0
- package/hedhog/data/setting_group.yaml +45 -0
- package/hedhog/data/setting_subgroup.yaml +16 -0
- package/hedhog/frontend/app/account/components/mcp-tokens.tsx.ejs +285 -0
- package/hedhog/frontend/app/account/layout.tsx.ejs +32 -55
- package/hedhog/frontend/app/account/mcp-tokens/page.tsx.ejs +5 -0
- package/hedhog/frontend/app/integrations-webhooks/page.tsx.ejs +2098 -1835
- package/hedhog/frontend/app/mcp_chat/chat-components.tsx.ejs +595 -0
- package/hedhog/frontend/app/mcp_chat/chat-types.ts.ejs +16 -0
- package/hedhog/frontend/app/mcp_chat/page.tsx.ejs +554 -383
- package/hedhog/frontend/app/setting-list/page.tsx.ejs +649 -0
- package/hedhog/frontend/app/users/page.tsx.ejs +445 -203
- package/hedhog/frontend/app/users/user-sheet.tsx.ejs +16 -37
- package/hedhog/frontend/messages/en.json +241 -2
- package/hedhog/frontend/messages/pt.json +241 -2
- package/hedhog/table/mcp_api_key.yaml +30 -0
- package/hedhog/table/notification.yaml +72 -0
- package/hedhog/table/webhook_action_log.yaml +49 -0
- package/package.json +4 -4
- package/src/core.module.ts +3 -0
- package/src/index.ts +5 -0
- package/src/mcp/guards/mcp-auth.guard.ts +64 -32
- package/src/mcp/mcp-api-key.controller.ts +42 -0
- package/src/mcp/mcp-api-key.service.ts +66 -0
- package/src/mcp/mcp-registry.service.ts +75 -69
- package/src/mcp/mcp.module.ts +43 -36
- package/src/mcp-chat/mcp-chat.controller.ts +113 -60
- package/src/mcp-chat/mcp-chat.service.ts +494 -332
- package/src/notification/dto/create-notification.dto.ts +71 -0
- package/src/notification/dto/update-progress.dto.ts +16 -0
- package/src/notification/notification.controller.ts +71 -0
- package/src/notification/notification.module.ts +16 -0
- package/src/notification/notification.service.ts +124 -0
- package/src/setting/dto/update-setting-list.dto.ts +32 -0
- package/src/setting/setting.controller.ts +9 -0
- package/src/setting/setting.service.ts +91 -0
- package/src/task/task.service.ts +72 -0
- package/src/webhook-integration/webhook-integration.service.ts +934 -735
- package/src/webhook-integration/webhook-utils.ts +136 -79
|
@@ -69,8 +69,8 @@ export declare class AuthController {
|
|
|
69
69
|
created_at: Date;
|
|
70
70
|
updated_at: Date;
|
|
71
71
|
user_id: number;
|
|
72
|
-
revoked_at: Date | null;
|
|
73
72
|
expires_at: Date | null;
|
|
73
|
+
revoked_at: Date | null;
|
|
74
74
|
requires_reset: boolean;
|
|
75
75
|
}[];
|
|
76
76
|
user_session: {
|
|
@@ -81,8 +81,8 @@ export declare class AuthController {
|
|
|
81
81
|
ip_address: string;
|
|
82
82
|
user_agent: string;
|
|
83
83
|
user_id: number;
|
|
84
|
-
revoked_at: Date | null;
|
|
85
84
|
expires_at: Date;
|
|
85
|
+
revoked_at: Date | null;
|
|
86
86
|
}[];
|
|
87
87
|
name: string;
|
|
88
88
|
id: number;
|
|
@@ -193,8 +193,8 @@ export declare class AuthController {
|
|
|
193
193
|
ip_address: string;
|
|
194
194
|
user_agent: string;
|
|
195
195
|
user_id: number;
|
|
196
|
-
revoked_at: Date | null;
|
|
197
196
|
expires_at: Date;
|
|
197
|
+
revoked_at: Date | null;
|
|
198
198
|
};
|
|
199
199
|
}>;
|
|
200
200
|
}
|
|
@@ -29,8 +29,8 @@ export declare class AuthService {
|
|
|
29
29
|
ip_address: string;
|
|
30
30
|
user_agent: string;
|
|
31
31
|
user_id: number;
|
|
32
|
-
revoked_at: Date | null;
|
|
33
32
|
expires_at: Date;
|
|
33
|
+
revoked_at: Date | null;
|
|
34
34
|
};
|
|
35
35
|
}>;
|
|
36
36
|
private hasPendingPasswordReset;
|
|
@@ -131,8 +131,8 @@ export declare class AuthService {
|
|
|
131
131
|
created_at: Date;
|
|
132
132
|
updated_at: Date;
|
|
133
133
|
user_id: number;
|
|
134
|
-
revoked_at: Date | null;
|
|
135
134
|
expires_at: Date | null;
|
|
135
|
+
revoked_at: Date | null;
|
|
136
136
|
requires_reset: boolean;
|
|
137
137
|
}[];
|
|
138
138
|
user_session: {
|
|
@@ -143,8 +143,8 @@ export declare class AuthService {
|
|
|
143
143
|
ip_address: string;
|
|
144
144
|
user_agent: string;
|
|
145
145
|
user_id: number;
|
|
146
|
-
revoked_at: Date | null;
|
|
147
146
|
expires_at: Date;
|
|
147
|
+
revoked_at: Date | null;
|
|
148
148
|
}[];
|
|
149
149
|
name: string;
|
|
150
150
|
id: number;
|
|
@@ -167,8 +167,8 @@ export declare class AuthService {
|
|
|
167
167
|
ip_address: string;
|
|
168
168
|
user_agent: string;
|
|
169
169
|
user_id: number;
|
|
170
|
-
revoked_at: Date | null;
|
|
171
170
|
expires_at: Date;
|
|
171
|
+
revoked_at: Date | null;
|
|
172
172
|
};
|
|
173
173
|
}>;
|
|
174
174
|
forgotPassword(locale: string, { email }: ForgetDTO): Promise<{
|
|
@@ -188,8 +188,8 @@ export declare class AuthService {
|
|
|
188
188
|
ip_address: string;
|
|
189
189
|
user_agent: string;
|
|
190
190
|
user_id: number;
|
|
191
|
-
revoked_at: Date | null;
|
|
192
191
|
expires_at: Date;
|
|
192
|
+
revoked_at: Date | null;
|
|
193
193
|
};
|
|
194
194
|
}>;
|
|
195
195
|
verifyMfaCode(locale: string, mfaToken: string, code: string, ipAddress: string, userAgent: string, methodType?: 'totp' | 'email' | 'recovery'): Promise<{
|
|
@@ -203,8 +203,8 @@ export declare class AuthService {
|
|
|
203
203
|
ip_address: string;
|
|
204
204
|
user_agent: string;
|
|
205
205
|
user_id: number;
|
|
206
|
-
revoked_at: Date | null;
|
|
207
206
|
expires_at: Date;
|
|
207
|
+
revoked_at: Date | null;
|
|
208
208
|
};
|
|
209
209
|
requiresPasswordReset: boolean;
|
|
210
210
|
}>;
|
|
@@ -219,8 +219,8 @@ export declare class AuthService {
|
|
|
219
219
|
ip_address: string;
|
|
220
220
|
user_agent: string;
|
|
221
221
|
user_id: number;
|
|
222
|
-
revoked_at: Date | null;
|
|
223
222
|
expires_at: Date;
|
|
223
|
+
revoked_at: Date | null;
|
|
224
224
|
};
|
|
225
225
|
requiresPasswordReset: boolean;
|
|
226
226
|
}>;
|
|
@@ -240,8 +240,8 @@ export declare class AuthService {
|
|
|
240
240
|
ip_address: string;
|
|
241
241
|
user_agent: string;
|
|
242
242
|
user_id: number;
|
|
243
|
-
revoked_at: Date | null;
|
|
244
243
|
expires_at: Date;
|
|
244
|
+
revoked_at: Date | null;
|
|
245
245
|
};
|
|
246
246
|
requiresPasswordReset: boolean;
|
|
247
247
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.module.d.ts","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":"AAMA,OAAO,EAA8B,kBAAkB,EAAU,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA0BlH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"core.module.d.ts","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":"AAMA,OAAO,EAA8B,kBAAkB,EAAU,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA0BlH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAU3D,qBAwEa,UAAW,YAAW,UAAU,EAAE,YAAY;IAGvD,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAGjD,YAAY;IAKZ,SAAS,CAAC,QAAQ,EAAE,kBAAkB;CAKvC"}
|
package/dist/core.module.js
CHANGED
|
@@ -52,6 +52,7 @@ const is_email_with_settings_validator_1 = require("./validators/is-email-with-s
|
|
|
52
52
|
const is_pin_code_with_setting_validator_1 = require("./validators/is-pin-code-with-setting.validator");
|
|
53
53
|
const is_strong_password_with_settings_validator_1 = require("./validators/is-strong-password-with-settings.validator");
|
|
54
54
|
const service_locator_1 = require("./validators/service-locator");
|
|
55
|
+
const notification_module_1 = require("./notification/notification.module");
|
|
55
56
|
const webhook_integration_module_1 = require("./webhook-integration/webhook-integration.module");
|
|
56
57
|
let CoreModule = class CoreModule {
|
|
57
58
|
constructor(settingService) {
|
|
@@ -103,6 +104,7 @@ exports.CoreModule = CoreModule = __decorate([
|
|
|
103
104
|
(0, common_1.forwardRef)(() => mcp_module_1.McpModule),
|
|
104
105
|
(0, common_1.forwardRef)(() => mcp_chat_module_1.McpChatModule),
|
|
105
106
|
(0, common_1.forwardRef)(() => pdf_module_1.PdfModule),
|
|
107
|
+
(0, common_1.forwardRef)(() => notification_module_1.NotificationModule),
|
|
106
108
|
],
|
|
107
109
|
exports: [
|
|
108
110
|
user_module_1.UserModule,
|
|
@@ -124,6 +126,7 @@ exports.CoreModule = CoreModule = __decorate([
|
|
|
124
126
|
is_email_with_settings_validator_1.IsEmailWithSettingsConstraint,
|
|
125
127
|
is_pin_code_with_setting_validator_1.IsPinCodeWithSettingConstraint,
|
|
126
128
|
pdf_module_1.PdfModule,
|
|
129
|
+
notification_module_1.NotificationModule,
|
|
127
130
|
],
|
|
128
131
|
providers: [
|
|
129
132
|
core_1.Reflector,
|
package/dist/core.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.module.js","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAA8C;AAC9C,oDAAmD;AACnD,gDAAiE;AACjE,4DAA2D;AAC3D,oDAAkE;AAClE,yCAA2C;AAC3C,2CAAkH;AAClH,2CAA8C;AAC9C,uCAA0D;AAC1D,8CAA0C;AAC1C,oDAAgD;AAChD,wDAAoD;AACpD,mEAA+D;AAC/D,oDAAgD;AAChD,6DAAyD;AACzD,yEAAqE;AACrE,4EAAuE;AACvE,mEAA8D;AAC9D,oDAAgD;AAChD,gEAA2D;AAC3D,iDAA6C;AAC7C,oDAAgD;AAChD,2FAAsF;AACtF,uDAAmD;AACnD,iDAA6C;AAC7C,6DAAyD;AACzD,oDAAgD;AAChD,uDAAmD;AACnD,0DAAsD;AACtD,gEAA4D;AAC5D,6DAAyD;AACzD,6DAAyD;AACzD,+DAA2D;AAC3D,oDAAgD;AAChD,oDAAgD;AAChD,oGAA8F;AAC9F,wGAAiG;AACjG,wHAAiH;AACjH,kEAAuE;AACvE,iGAA4F;
|
|
1
|
+
{"version":3,"file":"core.module.js","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -45,4 +45,7 @@ export * from './mcp/mcp-registry.service';
|
|
|
45
45
|
export * from './mcp/mcp.module';
|
|
46
46
|
export * from './mcp/types/mcp-context.type';
|
|
47
47
|
export * from './utils/locale-context';
|
|
48
|
+
export * from './notification/notification.module';
|
|
49
|
+
export * from './notification/notification.service';
|
|
50
|
+
export * from './notification/dto/create-notification.dto';
|
|
48
51
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC;AAG9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AAEpC,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yDAAyD,CAAC;AACxE,cAAc,kDAAkD,CAAC;AACjE,cAAc,mDAAmD,CAAC;AAGlE,cAAc,kCAAkC,CAAC;AACjD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sCAAsC,CAAC;AACrD,cAAc,0DAA0D,CAAC;AACzE,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,mDAAmD,CAAC;AAClE,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,uCAAuC,CAAC;AACtD,cAAc,qBAAqB,CAAC;AAGpC,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iDAAiD,CAAC;AAChE,cAAc,yDAAyD,CAAC;AAGxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAG7C,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC;AAG9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AAEpC,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yDAAyD,CAAC;AACxE,cAAc,kDAAkD,CAAC;AACjE,cAAc,mDAAmD,CAAC;AAGlE,cAAc,kCAAkC,CAAC;AACjD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sCAAsC,CAAC;AACrD,cAAc,0DAA0D,CAAC;AACzE,cAAc,iDAAiD,CAAC;AAChE,cAAc,qDAAqD,CAAC;AACpE,cAAc,mDAAmD,CAAC;AAClE,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,uCAAuC,CAAC;AACtD,cAAc,qBAAqB,CAAC;AAGpC,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iDAAiD,CAAC;AAChE,cAAc,yDAAyD,CAAC;AAGxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAG7C,cAAc,wBAAwB,CAAC;AAIvC,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,4CAA4C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -71,4 +71,8 @@ __exportStar(require("./mcp/mcp.module"), exports);
|
|
|
71
71
|
__exportStar(require("./mcp/types/mcp-context.type"), exports);
|
|
72
72
|
// Utilities
|
|
73
73
|
__exportStar(require("./utils/locale-context"), exports);
|
|
74
|
+
// Notification Module
|
|
75
|
+
__exportStar(require("./notification/notification.module"), exports);
|
|
76
|
+
__exportStar(require("./notification/notification.service"), exports);
|
|
77
|
+
__exportStar(require("./notification/dto/create-notification.dto"), exports);
|
|
74
78
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,cAAc;AACd,gDAA8B;AAE9B,cAAc;AACd,sDAAoC;AACpC,2DAAyC;AAEzC,cAAc;AACd,sDAAoC;AAEpC,oBAAoB;AACpB,2DAAyC;AACzC,sDAAoC;AAEpC,gBAAgB;AAChB,0DAAwC;AAExC,cAAc;AACd,kEAAgD;AAChD,sDAAoC;AAEpC,qEAAmD;AACnD,sEAAoD;AACpD,qDAAmC;AACnC,sDAAoC;AAEpC,qDAAmC;AACnC,sDAAoC;AAEpC,mDAAiC;AACjC,oDAAkC;AAClC,2DAAyC;AACzC,4DAA0C;AAE1C,iDAA+B;AAC/B,kDAAgC;AAEhC,8EAA4D;AAC5D,0FAAwE;AACxE,mFAAiE;AACjE,oFAAkE;AAElE,qBAAqB;AACrB,mEAAiD;AACjD,gFAA8D;AAC9D,mFAAiE;AACjE,uEAAqD;AACrD,2FAAyE;AACzE,kFAAgE;AAChE,sFAAoE;AACpE,oFAAkE;AAClE,yEAAuD;AACvD,0EAAwD;AACxD,8EAA4D;AAC5D,wEAAsD;AACtD,sDAAoC;AAEpC,aAAa;AACb,gFAA8D;AAC9D,kFAAgE;AAChE,0FAAwE;AAExE,aAAa;AACb,sEAAoD;AACpD,iFAA+D;AAC/D,6DAA2C;AAC3C,mDAAiC;AACjC,+DAA6C;AAE7C,YAAY;AACZ,yDAAuC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,cAAc;AACd,gDAA8B;AAE9B,cAAc;AACd,sDAAoC;AACpC,2DAAyC;AAEzC,cAAc;AACd,sDAAoC;AAEpC,oBAAoB;AACpB,2DAAyC;AACzC,sDAAoC;AAEpC,gBAAgB;AAChB,0DAAwC;AAExC,cAAc;AACd,kEAAgD;AAChD,sDAAoC;AAEpC,qEAAmD;AACnD,sEAAoD;AACpD,qDAAmC;AACnC,sDAAoC;AAEpC,qDAAmC;AACnC,sDAAoC;AAEpC,mDAAiC;AACjC,oDAAkC;AAClC,2DAAyC;AACzC,4DAA0C;AAE1C,iDAA+B;AAC/B,kDAAgC;AAEhC,8EAA4D;AAC5D,0FAAwE;AACxE,mFAAiE;AACjE,oFAAkE;AAElE,qBAAqB;AACrB,mEAAiD;AACjD,gFAA8D;AAC9D,mFAAiE;AACjE,uEAAqD;AACrD,2FAAyE;AACzE,kFAAgE;AAChE,sFAAoE;AACpE,oFAAkE;AAClE,yEAAuD;AACvD,0EAAwD;AACxD,8EAA4D;AAC5D,wEAAsD;AACtD,sDAAoC;AAEpC,aAAa;AACb,gFAA8D;AAC9D,kFAAgE;AAChE,0FAAwE;AAExE,aAAa;AACb,sEAAoD;AACpD,iFAA+D;AAC/D,6DAA2C;AAC3C,mDAAiC;AACjC,+DAA6C;AAE7C,YAAY;AACZ,yDAAuC;AAGvC,sBAAsB;AACtB,qEAAmD;AACnD,sEAAoD;AACpD,6EAA2D"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import { PrismaService } from '@hed-hog/api-prisma';
|
|
1
2
|
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
3
|
+
import { SecurityService } from '../../security/security.service';
|
|
2
4
|
import { TokenService } from '../../token/token.service';
|
|
3
5
|
export declare class McpAuthGuard implements CanActivate {
|
|
4
6
|
private readonly tokenService;
|
|
5
|
-
|
|
7
|
+
private readonly prisma;
|
|
8
|
+
private readonly security;
|
|
9
|
+
constructor(tokenService: TokenService, prisma: PrismaService, security: SecurityService);
|
|
6
10
|
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
11
|
+
private verifyApiKey;
|
|
7
12
|
private extractToken;
|
|
8
13
|
}
|
|
9
14
|
//# sourceMappingURL=mcp-auth.guard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-auth.guard.d.ts","sourceRoot":"","sources":["../../../src/mcp/guards/mcp-auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAGjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBACa,YAAa,YAAW,WAAW;
|
|
1
|
+
{"version":3,"file":"mcp-auth.guard.d.ts","sourceRoot":"","sources":["../../../src/mcp/guards/mcp-auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,WAAW,EACX,gBAAgB,EAGjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBACa,YAAa,YAAW,WAAW;IAE5C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,eAAe;IAGtC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;YAkBhD,YAAY;IAsB1B,OAAO,CAAC,YAAY;CAIrB"}
|
|
@@ -10,11 +10,15 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.McpAuthGuard = void 0;
|
|
13
|
+
const api_prisma_1 = require("@hed-hog/api-prisma");
|
|
13
14
|
const common_1 = require("@nestjs/common");
|
|
15
|
+
const security_service_1 = require("../../security/security.service");
|
|
14
16
|
const token_service_1 = require("../../token/token.service");
|
|
15
17
|
let McpAuthGuard = class McpAuthGuard {
|
|
16
|
-
constructor(tokenService) {
|
|
18
|
+
constructor(tokenService, prisma, security) {
|
|
17
19
|
this.tokenService = tokenService;
|
|
20
|
+
this.prisma = prisma;
|
|
21
|
+
this.security = security;
|
|
18
22
|
}
|
|
19
23
|
async canActivate(context) {
|
|
20
24
|
var _a, _b, _c;
|
|
@@ -24,9 +28,30 @@ let McpAuthGuard = class McpAuthGuard {
|
|
|
24
28
|
if (!token) {
|
|
25
29
|
throw new common_1.UnauthorizedException('MCP: Bearer token required');
|
|
26
30
|
}
|
|
31
|
+
if (token.startsWith('hedhog_mcp_')) {
|
|
32
|
+
return this.verifyApiKey(request, token);
|
|
33
|
+
}
|
|
27
34
|
request['auth'] = await this.tokenService.verify(locale, token);
|
|
28
35
|
return true;
|
|
29
36
|
}
|
|
37
|
+
async verifyApiKey(request, token) {
|
|
38
|
+
const hash = this.security.hashWithPepper(token);
|
|
39
|
+
const apiKey = await this.prisma.mcp_api_key.findFirst({
|
|
40
|
+
where: { token_hash: hash, revoked_at: null },
|
|
41
|
+
});
|
|
42
|
+
if (!apiKey) {
|
|
43
|
+
throw new common_1.UnauthorizedException('MCP: Invalid API key');
|
|
44
|
+
}
|
|
45
|
+
if (apiKey.expires_at && apiKey.expires_at <= new Date()) {
|
|
46
|
+
throw new common_1.UnauthorizedException('MCP: API key expired');
|
|
47
|
+
}
|
|
48
|
+
this.prisma.mcp_api_key.update({
|
|
49
|
+
where: { id: apiKey.id },
|
|
50
|
+
data: { last_used_at: new Date() },
|
|
51
|
+
}).catch(() => { });
|
|
52
|
+
request['auth'] = { sub: apiKey.user_id, sessionId: null };
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
30
55
|
extractToken(request) {
|
|
31
56
|
var _a, _b;
|
|
32
57
|
const [type, token] = (_b = (_a = request.headers.authorization) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
|
|
@@ -36,6 +61,8 @@ let McpAuthGuard = class McpAuthGuard {
|
|
|
36
61
|
exports.McpAuthGuard = McpAuthGuard;
|
|
37
62
|
exports.McpAuthGuard = McpAuthGuard = __decorate([
|
|
38
63
|
(0, common_1.Injectable)(),
|
|
39
|
-
__metadata("design:paramtypes", [token_service_1.TokenService
|
|
64
|
+
__metadata("design:paramtypes", [token_service_1.TokenService,
|
|
65
|
+
api_prisma_1.PrismaService,
|
|
66
|
+
security_service_1.SecurityService])
|
|
40
67
|
], McpAuthGuard);
|
|
41
68
|
//# sourceMappingURL=mcp-auth.guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-auth.guard.js","sourceRoot":"","sources":["../../../src/mcp/guards/mcp-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AAExB,6DAAyD;AAGlD,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,
|
|
1
|
+
{"version":3,"file":"mcp-auth.guard.js","sourceRoot":"","sources":["../../../src/mcp/guards/mcp-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAoD;AACpD,2CAKwB;AAExB,sEAAkE;AAClE,6DAAyD;AAGlD,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,YACmB,YAA0B,EAC1B,MAAqB,EACrB,QAAyB;QAFzB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,WAAM,GAAN,MAAM,CAAe;QACrB,aAAQ,GAAR,QAAQ,CAAiB;IACzC,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,OAAyB;;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;QAC7D,MAAM,MAAM,GACV,MAAA,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,mCAAI,IAAI,CAAC;QAE3E,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,8BAAqB,CAAC,4BAA4B,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,OAAgB,EAAE,KAAa;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;YACrD,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,8BAAqB,CAAC,sBAAsB,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YACzD,MAAM,IAAI,8BAAqB,CAAC,sBAAsB,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;YAC7B,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACxB,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,EAAE;SACnC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEnB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,YAAY,CAAC,OAAgB;;QACnC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,aAAa,0CAAE,KAAK,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;QACtE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;CACF,CAAA;AAnDY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAGsB,4BAAY;QAClB,0BAAa;QACX,kCAAe;GAJjC,YAAY,CAmDxB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { PaginationDTO } from '@hed-hog/api-pagination';
|
|
2
|
+
import { McpApiKeyService } from './mcp-api-key.service';
|
|
3
|
+
export declare class McpApiKeyController {
|
|
4
|
+
private readonly mcpApiKeyService;
|
|
5
|
+
constructor(mcpApiKeyService: McpApiKeyService);
|
|
6
|
+
list(paginationParams: PaginationDTO, { id }: {
|
|
7
|
+
id: number;
|
|
8
|
+
}): Promise<{
|
|
9
|
+
total: any;
|
|
10
|
+
lastPage: number;
|
|
11
|
+
page: number;
|
|
12
|
+
pageSize: number;
|
|
13
|
+
data: any;
|
|
14
|
+
}>;
|
|
15
|
+
create({ id }: {
|
|
16
|
+
id: number;
|
|
17
|
+
}, body: {
|
|
18
|
+
name: string;
|
|
19
|
+
}): Promise<{
|
|
20
|
+
rawToken: string;
|
|
21
|
+
name: string;
|
|
22
|
+
id: number;
|
|
23
|
+
created_at: Date;
|
|
24
|
+
token_prefix: string;
|
|
25
|
+
}>;
|
|
26
|
+
revoke({ id: userId }: {
|
|
27
|
+
id: number;
|
|
28
|
+
}, id: number): Promise<{
|
|
29
|
+
success: boolean;
|
|
30
|
+
}>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=mcp-api-key.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-api-key.controller.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-api-key.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAUpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAEa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAG/D,IAAI,CACY,gBAAgB,EAAE,aAAa,EACrC,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;;;;;;;IAMhC,MAAM,CACI,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACtB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;;;IAMhC,MAAM,CACI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACX,EAAE,EAAE,MAAM;;;CAIxC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
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.McpApiKeyController = void 0;
|
|
16
|
+
const api_1 = require("@hed-hog/api");
|
|
17
|
+
const api_pagination_1 = require("@hed-hog/api-pagination");
|
|
18
|
+
const common_1 = require("@nestjs/common");
|
|
19
|
+
const mcp_api_key_service_1 = require("./mcp-api-key.service");
|
|
20
|
+
let McpApiKeyController = class McpApiKeyController {
|
|
21
|
+
constructor(mcpApiKeyService) {
|
|
22
|
+
this.mcpApiKeyService = mcpApiKeyService;
|
|
23
|
+
}
|
|
24
|
+
list(paginationParams, { id }) {
|
|
25
|
+
return this.mcpApiKeyService.list(id, paginationParams);
|
|
26
|
+
}
|
|
27
|
+
create({ id }, body) {
|
|
28
|
+
return this.mcpApiKeyService.create(id, body.name);
|
|
29
|
+
}
|
|
30
|
+
revoke({ id: userId }, id) {
|
|
31
|
+
return this.mcpApiKeyService.revoke(userId, id);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
exports.McpApiKeyController = McpApiKeyController;
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, common_1.Get)(),
|
|
37
|
+
__param(0, (0, api_pagination_1.Pagination)()),
|
|
38
|
+
__param(1, (0, api_1.User)()),
|
|
39
|
+
__metadata("design:type", Function),
|
|
40
|
+
__metadata("design:paramtypes", [api_pagination_1.PaginationDTO, Object]),
|
|
41
|
+
__metadata("design:returntype", void 0)
|
|
42
|
+
], McpApiKeyController.prototype, "list", null);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, common_1.Post)(),
|
|
45
|
+
__param(0, (0, api_1.User)()),
|
|
46
|
+
__param(1, (0, common_1.Body)()),
|
|
47
|
+
__metadata("design:type", Function),
|
|
48
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
49
|
+
__metadata("design:returntype", void 0)
|
|
50
|
+
], McpApiKeyController.prototype, "create", null);
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, common_1.Delete)(':id'),
|
|
53
|
+
__param(0, (0, api_1.User)()),
|
|
54
|
+
__param(1, (0, common_1.Param)('id', common_1.ParseIntPipe)),
|
|
55
|
+
__metadata("design:type", Function),
|
|
56
|
+
__metadata("design:paramtypes", [Object, Number]),
|
|
57
|
+
__metadata("design:returntype", void 0)
|
|
58
|
+
], McpApiKeyController.prototype, "revoke", null);
|
|
59
|
+
exports.McpApiKeyController = McpApiKeyController = __decorate([
|
|
60
|
+
(0, api_1.Role)(),
|
|
61
|
+
(0, common_1.Controller)('mcp/api-keys'),
|
|
62
|
+
__metadata("design:paramtypes", [mcp_api_key_service_1.McpApiKeyService])
|
|
63
|
+
], McpApiKeyController);
|
|
64
|
+
//# sourceMappingURL=mcp-api-key.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-api-key.controller.js","sourceRoot":"","sources":["../../src/mcp/mcp-api-key.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAA0C;AAC1C,4DAAoE;AACpE,2CAQwB;AACxB,+DAAyD;AAIlD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAGnE,IAAI,CACY,gBAA+B,EACrC,EAAE,EAAE,EAAkB;QAE9B,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC1D,CAAC;IAGD,MAAM,CACI,EAAE,EAAE,EAAkB,EACtB,IAAsB;QAE9B,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAGD,MAAM,CACI,EAAE,EAAE,EAAE,MAAM,EAAkB,EACX,EAAU;QAErC,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AA1BY,kDAAmB;AAI9B;IADC,IAAA,YAAG,GAAE;IAEH,WAAA,IAAA,2BAAU,GAAE,CAAA;IACZ,WAAA,IAAA,UAAI,GAAE,CAAA;;qCADyB,8BAAa;;+CAI9C;AAGD;IADC,IAAA,aAAI,GAAE;IAEJ,WAAA,IAAA,UAAI,GAAE,CAAA;IACN,WAAA,IAAA,aAAI,GAAE,CAAA;;;;iDAGR;AAGD;IADC,IAAA,eAAM,EAAC,KAAK,CAAC;IAEX,WAAA,IAAA,UAAI,GAAE,CAAA;IACN,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;;;;iDAG3B;8BAzBU,mBAAmB;IAF/B,IAAA,UAAI,GAAE;IACN,IAAA,mBAAU,EAAC,cAAc,CAAC;qCAEsB,sCAAgB;GADpD,mBAAmB,CA0B/B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { PaginationDTO, PaginationService } from '@hed-hog/api-pagination';
|
|
2
|
+
import { PrismaService } from '@hed-hog/api-prisma';
|
|
3
|
+
import { SecurityService } from '../security/security.service';
|
|
4
|
+
export declare class McpApiKeyService {
|
|
5
|
+
private readonly prisma;
|
|
6
|
+
private readonly security;
|
|
7
|
+
private readonly pagination;
|
|
8
|
+
constructor(prisma: PrismaService, security: SecurityService, pagination: PaginationService);
|
|
9
|
+
list(userId: number, paginationParams: PaginationDTO): Promise<{
|
|
10
|
+
total: any;
|
|
11
|
+
lastPage: number;
|
|
12
|
+
page: number;
|
|
13
|
+
pageSize: number;
|
|
14
|
+
data: any;
|
|
15
|
+
}>;
|
|
16
|
+
create(userId: number, name: string): Promise<{
|
|
17
|
+
rawToken: string;
|
|
18
|
+
name: string;
|
|
19
|
+
id: number;
|
|
20
|
+
created_at: Date;
|
|
21
|
+
token_prefix: string;
|
|
22
|
+
}>;
|
|
23
|
+
revoke(userId: number, id: number): Promise<{
|
|
24
|
+
success: boolean;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=mcp-api-key.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-api-key.service.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-api-key.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,qBACa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,iBAAiB;IAG1C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa;;;;;;;IAgBpD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;;;;IAuBnC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;;;CAaxC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
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.McpApiKeyService = void 0;
|
|
13
|
+
const api_pagination_1 = require("@hed-hog/api-pagination");
|
|
14
|
+
const api_prisma_1 = require("@hed-hog/api-prisma");
|
|
15
|
+
const common_1 = require("@nestjs/common");
|
|
16
|
+
const security_service_1 = require("../security/security.service");
|
|
17
|
+
let McpApiKeyService = class McpApiKeyService {
|
|
18
|
+
constructor(prisma, security, pagination) {
|
|
19
|
+
this.prisma = prisma;
|
|
20
|
+
this.security = security;
|
|
21
|
+
this.pagination = pagination;
|
|
22
|
+
}
|
|
23
|
+
async list(userId, paginationParams) {
|
|
24
|
+
return this.pagination.paginatePrismaModel(this.prisma.mcp_api_key, Object.assign(Object.assign({}, paginationParams), { where: { user_id: userId, revoked_at: null }, select: {
|
|
25
|
+
id: true,
|
|
26
|
+
name: true,
|
|
27
|
+
token_prefix: true,
|
|
28
|
+
last_used_at: true,
|
|
29
|
+
expires_at: true,
|
|
30
|
+
created_at: true,
|
|
31
|
+
}, orderBy: { created_at: 'desc' } }));
|
|
32
|
+
}
|
|
33
|
+
async create(userId, name) {
|
|
34
|
+
const rawToken = 'hedhog_mcp_' + this.security.randomOpaque(36);
|
|
35
|
+
const tokenHash = this.security.hashWithPepper(rawToken);
|
|
36
|
+
const tokenPrefix = rawToken.substring(0, 16);
|
|
37
|
+
const record = await this.prisma.mcp_api_key.create({
|
|
38
|
+
data: {
|
|
39
|
+
user_id: userId,
|
|
40
|
+
name,
|
|
41
|
+
token_hash: tokenHash,
|
|
42
|
+
token_prefix: tokenPrefix,
|
|
43
|
+
},
|
|
44
|
+
select: {
|
|
45
|
+
id: true,
|
|
46
|
+
name: true,
|
|
47
|
+
token_prefix: true,
|
|
48
|
+
created_at: true,
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
return Object.assign(Object.assign({}, record), { rawToken });
|
|
52
|
+
}
|
|
53
|
+
async revoke(userId, id) {
|
|
54
|
+
const key = await this.prisma.mcp_api_key.findFirst({
|
|
55
|
+
where: { id, user_id: userId },
|
|
56
|
+
});
|
|
57
|
+
if (!key) {
|
|
58
|
+
throw new common_1.NotFoundException(`MCP API key ${id} not found`);
|
|
59
|
+
}
|
|
60
|
+
await this.prisma.mcp_api_key.update({
|
|
61
|
+
where: { id },
|
|
62
|
+
data: { revoked_at: new Date() },
|
|
63
|
+
});
|
|
64
|
+
return { success: true };
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
exports.McpApiKeyService = McpApiKeyService;
|
|
68
|
+
exports.McpApiKeyService = McpApiKeyService = __decorate([
|
|
69
|
+
(0, common_1.Injectable)(),
|
|
70
|
+
__metadata("design:paramtypes", [api_prisma_1.PrismaService,
|
|
71
|
+
security_service_1.SecurityService,
|
|
72
|
+
api_pagination_1.PaginationService])
|
|
73
|
+
], McpApiKeyService);
|
|
74
|
+
//# sourceMappingURL=mcp-api-key.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-api-key.service.js","sourceRoot":"","sources":["../../src/mcp/mcp-api-key.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4DAA2E;AAC3E,oDAAoD;AACpD,2CAA+D;AAC/D,mEAA+D;AAGxD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACmB,MAAqB,EACrB,QAAyB,EACzB,UAA6B;QAF7B,WAAM,GAAN,MAAM,CAAe;QACrB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,eAAU,GAAV,UAAU,CAAmB;IAC7C,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,gBAA+B;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,kCAC7D,gBAAgB,KACnB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAC5C,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,IAAI;aACjB,EACD,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAC/B,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,IAAY;QACvC,MAAM,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;YAClD,IAAI,EAAE;gBACJ,OAAO,EAAE,MAAM;gBACf,IAAI;gBACJ,UAAU,EAAE,SAAS;gBACrB,YAAY,EAAE,WAAW;aAC1B;YACD,MAAM,EAAE;gBACN,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;aACjB;SACF,CAAC,CAAC;QAEH,uCAAY,MAAM,KAAE,QAAQ,IAAG;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,EAAU;QACrC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;YAClD,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,0BAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;YACnC,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE;SACjC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAA;AA3DY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAGgB,0BAAa;QACX,kCAAe;QACb,kCAAiB;GAJrC,gBAAgB,CA2D5B"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { OnModuleInit } from '@nestjs/common';
|
|
2
|
-
import { DiscoveryService } from '@nestjs/core';
|
|
3
|
-
import { Reflector } from '@nestjs/core';
|
|
2
|
+
import { DiscoveryService, Reflector } from '@nestjs/core';
|
|
4
3
|
import { McpToolDefinition } from './interfaces/mcp-tool-definition.interface';
|
|
5
4
|
import { McpContext } from './types/mcp-context.type';
|
|
6
5
|
export interface McpToolEntry {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-registry.service.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-registry.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"mcp-registry.service.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-registry.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC3E;AAED,qBACa,kBAAmB,YAAW,YAAY;IAKnD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;gBAGtC,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,SAAS;IAGvC,YAAY,IAAI,IAAI;IA0CpB,MAAM,IAAI,YAAY,EAAE;IAIxB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI/C,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAG/B"}
|
|
@@ -13,7 +13,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
exports.McpRegistryService = void 0;
|
|
14
14
|
const common_1 = require("@nestjs/common");
|
|
15
15
|
const core_1 = require("@nestjs/core");
|
|
16
|
-
const core_2 = require("@nestjs/core");
|
|
17
16
|
const mcp_tool_decorator_1 = require("./decorators/mcp-tool.decorator");
|
|
18
17
|
let McpRegistryService = McpRegistryService_1 = class McpRegistryService {
|
|
19
18
|
constructor(discovery, reflector) {
|
|
@@ -23,6 +22,7 @@ let McpRegistryService = McpRegistryService_1 = class McpRegistryService {
|
|
|
23
22
|
this.tools = new Map();
|
|
24
23
|
}
|
|
25
24
|
onModuleInit() {
|
|
25
|
+
var _a;
|
|
26
26
|
const providers = this.discovery.getProviders();
|
|
27
27
|
for (const wrapper of providers) {
|
|
28
28
|
const { instance } = wrapper;
|
|
@@ -41,6 +41,10 @@ let McpRegistryService = McpRegistryService_1 = class McpRegistryService {
|
|
|
41
41
|
const definition = this.reflector.get(mcp_tool_decorator_1.MCP_TOOL_METADATA, prototype[methodName]);
|
|
42
42
|
if (!definition)
|
|
43
43
|
continue;
|
|
44
|
+
if (this.tools.has(definition.name)) {
|
|
45
|
+
this.logger.warn(`Duplicate MCP tool ignored: ${definition.name} from ${(_a = prototype.constructor) === null || _a === void 0 ? void 0 : _a.name}.${methodName}`);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
44
48
|
this.logger.log(`Registered MCP tool: ${definition.name}`);
|
|
45
49
|
this.tools.set(definition.name, {
|
|
46
50
|
definition,
|
|
@@ -64,6 +68,6 @@ exports.McpRegistryService = McpRegistryService;
|
|
|
64
68
|
exports.McpRegistryService = McpRegistryService = McpRegistryService_1 = __decorate([
|
|
65
69
|
(0, common_1.Injectable)(),
|
|
66
70
|
__metadata("design:paramtypes", [core_1.DiscoveryService,
|
|
67
|
-
|
|
71
|
+
core_1.Reflector])
|
|
68
72
|
], McpRegistryService);
|
|
69
73
|
//# sourceMappingURL=mcp-registry.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-registry.service.js","sourceRoot":"","sources":["../../src/mcp/mcp-registry.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"mcp-registry.service.js","sourceRoot":"","sources":["../../src/mcp/mcp-registry.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAkE;AAClE,uCAA2D;AAC3D,wEAAoE;AAU7D,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAI7B,YACmB,SAA2B,EAC3B,SAAoB;QADpB,cAAS,GAAT,SAAS,CAAkB;QAC3B,cAAS,GAAT,SAAS,CAAW;QALtB,WAAM,GAAG,IAAI,eAAM,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,UAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;IAKtD,CAAC;IAEJ,YAAY;;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAEhD,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAChC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YAC7B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAAE,SAAS;YAExD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,MAAM,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvE,IAAI,GAAG,KAAK,aAAa;oBAAE,OAAO,KAAK,CAAC;gBACxC,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACnE,OAAO,UAAU,KAAK,SAAS,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC;YAC5E,CAAC,CAAC,CAAC;YAEH,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACnC,sCAAiB,EACjB,SAAS,CAAC,UAAU,CAAC,CACtB,CAAC;gBAEF,IAAI,CAAC,UAAU;oBAAE,SAAS;gBAE1B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,+BAA+B,UAAU,CAAC,IAAI,SAAS,MAAA,SAAS,CAAC,WAAW,0CAAE,IAAI,IAAI,UAAU,EAAE,CACnG,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE;oBAC9B,UAAU;oBACV,OAAO,EAAG,QAAgB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACtD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,KAAK,CAAC,IAAI,mBAAmB,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,QAAgB;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,GAAG,CAAC,QAAgB;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF,CAAA;AA9DY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAMmB,uBAAgB;QAChB,gBAAS;GAN5B,kBAAkB,CA8D9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.module.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp.module.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp.module.ts"],"names":[],"mappings":"AAmBA,qBAuBa,SAAS;CAAG"}
|
package/dist/mcp/mcp.module.js
CHANGED
|
@@ -7,14 +7,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.McpModule = void 0;
|
|
10
|
+
const api_pagination_1 = require("@hed-hog/api-pagination");
|
|
10
11
|
const api_prisma_1 = require("@hed-hog/api-prisma");
|
|
11
12
|
const common_1 = require("@nestjs/common");
|
|
12
13
|
const core_1 = require("@nestjs/core");
|
|
14
|
+
const security_module_1 = require("../security/security.module");
|
|
13
15
|
const setting_module_1 = require("../setting/setting.module");
|
|
14
16
|
const token_module_1 = require("../token/token.module");
|
|
15
17
|
const user_module_1 = require("../user/user.module");
|
|
16
18
|
const mcp_auth_guard_1 = require("./guards/mcp-auth.guard");
|
|
17
19
|
const mcp_permission_guard_1 = require("./guards/mcp-permission.guard");
|
|
20
|
+
const mcp_api_key_controller_1 = require("./mcp-api-key.controller");
|
|
21
|
+
const mcp_api_key_service_1 = require("./mcp-api-key.service");
|
|
18
22
|
const mcp_audit_service_1 = require("./mcp-audit.service");
|
|
19
23
|
const mcp_registry_service_1 = require("./mcp-registry.service");
|
|
20
24
|
const mcp_server_service_1 = require("./mcp-server.service");
|
|
@@ -29,17 +33,20 @@ exports.McpModule = McpModule = __decorate([
|
|
|
29
33
|
imports: [
|
|
30
34
|
core_1.DiscoveryModule,
|
|
31
35
|
(0, common_1.forwardRef)(() => api_prisma_1.PrismaModule),
|
|
36
|
+
(0, common_1.forwardRef)(() => api_pagination_1.PaginationModule),
|
|
32
37
|
(0, common_1.forwardRef)(() => token_module_1.TokenModule),
|
|
33
38
|
(0, common_1.forwardRef)(() => setting_module_1.SettingModule),
|
|
34
39
|
(0, common_1.forwardRef)(() => user_module_1.UserModule),
|
|
40
|
+
(0, common_1.forwardRef)(() => security_module_1.SecurityModule),
|
|
35
41
|
],
|
|
36
|
-
controllers: [mcp_controller_1.McpController],
|
|
42
|
+
controllers: [mcp_controller_1.McpController, mcp_api_key_controller_1.McpApiKeyController],
|
|
37
43
|
providers: [
|
|
38
44
|
mcp_registry_service_1.McpRegistryService,
|
|
39
45
|
mcp_server_service_1.McpServerService,
|
|
40
46
|
mcp_audit_service_1.McpAuditService,
|
|
41
47
|
mcp_auth_guard_1.McpAuthGuard,
|
|
42
48
|
mcp_permission_guard_1.McpPermissionGuard,
|
|
49
|
+
mcp_api_key_service_1.McpApiKeyService,
|
|
43
50
|
core_settings_mcp_tools_1.CoreSettingsMcpTools,
|
|
44
51
|
core_users_mcp_tools_1.CoreUsersMcpTools,
|
|
45
52
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.module.js","sourceRoot":"","sources":["../../src/mcp/mcp.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAmD;AACnD,2CAAoD;AACpD,uCAA+C;AAC/C,8DAA0D;AAC1D,wDAAoD;AACpD,qDAAiD;AACjD,4DAAuD;AACvD,wEAAmE;AACnE,2DAAsD;AACtD,iEAA4D;AAC5D,6DAAwD;AACxD,qDAAiD;AACjD,6EAAuE;AACvE,uEAAiE;
|
|
1
|
+
{"version":3,"file":"mcp.module.js","sourceRoot":"","sources":["../../src/mcp/mcp.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4DAA2D;AAC3D,oDAAmD;AACnD,2CAAoD;AACpD,uCAA+C;AAC/C,iEAA6D;AAC7D,8DAA0D;AAC1D,wDAAoD;AACpD,qDAAiD;AACjD,4DAAuD;AACvD,wEAAmE;AACnE,qEAA+D;AAC/D,+DAAyD;AACzD,2DAAsD;AACtD,iEAA4D;AAC5D,6DAAwD;AACxD,qDAAiD;AACjD,6EAAuE;AACvE,uEAAiE;AAyB1D,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAvBrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,sBAAe;YACf,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,yBAAY,CAAC;YAC9B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,iCAAgB,CAAC;YAClC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,0BAAW,CAAC;YAC7B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC;YAC/B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,gCAAc,CAAC;SACjC;QACD,WAAW,EAAE,CAAC,8BAAa,EAAE,4CAAmB,CAAC;QACjD,SAAS,EAAE;YACT,yCAAkB;YAClB,qCAAgB;YAChB,mCAAe;YACf,6BAAY;YACZ,yCAAkB;YAClB,sCAAgB;YAChB,8CAAoB;YACpB,wCAAiB;SAClB;QACD,OAAO,EAAE,CAAC,yCAAkB,EAAE,qCAAgB,CAAC;KAChD,CAAC;GACW,SAAS,CAAG"}
|