@mastra/nestjs 0.0.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 +324 -0
- package/dist/__tests__/test-helpers.d.ts +17 -0
- package/dist/__tests__/test-helpers.d.ts.map +1 -0
- package/dist/constants.d.ts +34 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/controllers/index.d.ts +3 -0
- package/dist/controllers/index.d.ts.map +1 -0
- package/dist/controllers/mastra.controller.d.ts +54 -0
- package/dist/controllers/mastra.controller.d.ts.map +1 -0
- package/dist/controllers/system.controller.d.ts +45 -0
- package/dist/controllers/system.controller.d.ts.map +1 -0
- package/dist/decorators/index.d.ts +3 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/dist/decorators/public.decorator.d.ts +17 -0
- package/dist/decorators/public.decorator.d.ts.map +1 -0
- package/dist/decorators/throttle.decorator.d.ts +34 -0
- package/dist/decorators/throttle.decorator.d.ts.map +1 -0
- package/dist/filters/index.d.ts +2 -0
- package/dist/filters/index.d.ts.map +1 -0
- package/dist/filters/mastra-exception.filter.d.ts +28 -0
- package/dist/filters/mastra-exception.filter.d.ts.map +1 -0
- package/dist/guards/index.d.ts +3 -0
- package/dist/guards/index.d.ts.map +1 -0
- package/dist/guards/mastra-auth.guard.d.ts +42 -0
- package/dist/guards/mastra-auth.guard.d.ts.map +1 -0
- package/dist/guards/mastra-route.guard.d.ts +23 -0
- package/dist/guards/mastra-route.guard.d.ts.map +1 -0
- package/dist/guards/mastra-throttle.guard.d.ts +53 -0
- package/dist/guards/mastra-throttle.guard.d.ts.map +1 -0
- package/dist/index.cjs +14298 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14284 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptors/index.d.ts +3 -0
- package/dist/interceptors/index.d.ts.map +1 -0
- package/dist/interceptors/request-tracking.interceptor.d.ts +13 -0
- package/dist/interceptors/request-tracking.interceptor.d.ts.map +1 -0
- package/dist/interceptors/streaming.interceptor.d.ts +40 -0
- package/dist/interceptors/streaming.interceptor.d.ts.map +1 -0
- package/dist/interceptors/tracing.interceptor.d.ts +12 -0
- package/dist/interceptors/tracing.interceptor.d.ts.map +1 -0
- package/dist/mastra-server.adapter.d.ts +10 -0
- package/dist/mastra-server.adapter.d.ts.map +1 -0
- package/dist/mastra.module.d.ts +173 -0
- package/dist/mastra.module.d.ts.map +1 -0
- package/dist/mastra.service.d.ts +51 -0
- package/dist/mastra.service.d.ts.map +1 -0
- package/dist/middleware/body-limit.middleware.d.ts +24 -0
- package/dist/middleware/body-limit.middleware.d.ts.map +1 -0
- package/dist/middleware/index.d.ts +3 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/json-body.middleware.d.ts +17 -0
- package/dist/middleware/json-body.middleware.d.ts.map +1 -0
- package/dist/services/auth.service.d.ts +34 -0
- package/dist/services/auth.service.d.ts.map +1 -0
- package/dist/services/index.d.ts +5 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/request-context.service.d.ts +52 -0
- package/dist/services/request-context.service.d.ts.map +1 -0
- package/dist/services/route-handler.service.d.ts +78 -0
- package/dist/services/route-handler.service.d.ts.map +1 -0
- package/dist/services/shutdown.service.d.ts +54 -0
- package/dist/services/shutdown.service.d.ts.map +1 -0
- package/dist/utils/constants.d.ts +3 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/format.d.ts +5 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/parse-multipart.d.ts +18 -0
- package/dist/utils/parse-multipart.d.ts.map +1 -0
- package/dist/utils/route-path.d.ts +6 -0
- package/dist/utils/route-path.d.ts.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Mastra } from '@mastra/core/mastra';
|
|
2
|
+
import type { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
3
|
+
import type { MastraModuleOptions } from '../mastra.module.js';
|
|
4
|
+
import { AuthService } from '../services/auth.service.js';
|
|
5
|
+
import { RequestContextService } from '../services/request-context.service.js';
|
|
6
|
+
import { RouteHandlerService } from '../services/route-handler.service.js';
|
|
7
|
+
import { MastraThrottleGuard } from './mastra-throttle.guard.js';
|
|
8
|
+
/**
|
|
9
|
+
* Guard for Mastra routes handled by MastraController.
|
|
10
|
+
* Runs route matching to avoid authenticating non-Mastra paths,
|
|
11
|
+
* then enforces auth + rate limiting for matched Mastra routes.
|
|
12
|
+
*/
|
|
13
|
+
export declare class MastraRouteGuard implements CanActivate {
|
|
14
|
+
private readonly mastra;
|
|
15
|
+
private readonly options;
|
|
16
|
+
private readonly routeHandler;
|
|
17
|
+
private readonly requestContext;
|
|
18
|
+
private readonly authService;
|
|
19
|
+
private readonly throttleGuard;
|
|
20
|
+
constructor(mastra: Mastra, options: MastraModuleOptions, routeHandler: RouteHandlerService, requestContext: RequestContextService, authService: AuthService, throttleGuard: MastraThrottleGuard);
|
|
21
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=mastra-route.guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mastra-route.guard.d.ts","sourceRoot":"","sources":["../../src/guards/mastra-route.guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;;GAIG;AACH,qBACa,gBAAiB,YAAW,WAAW;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO;IACnB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAL1B,MAAM,EAAE,MAAM,EACN,OAAO,EAAE,mBAAmB,EACvB,YAAY,EAAE,mBAAmB,EAC/B,cAAc,EAAE,qBAAqB,EAC/C,WAAW,EAAE,WAAW,EAChB,aAAa,EAAE,mBAAmB;IAG5E,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CA4B/D"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { CanActivate, ExecutionContext, OnModuleDestroy } from '@nestjs/common';
|
|
2
|
+
import { Reflector } from '@nestjs/core';
|
|
3
|
+
import type { Request } from 'express';
|
|
4
|
+
import type { ThrottleOptions } from '../decorators/throttle.decorator.js';
|
|
5
|
+
import type { MastraModuleOptions } from '../mastra.module.js';
|
|
6
|
+
/**
|
|
7
|
+
* Guard that implements rate limiting.
|
|
8
|
+
* Rate limiting is ON by default - set rateLimitOptions.enabled: false to disable.
|
|
9
|
+
*/
|
|
10
|
+
export declare class MastraThrottleGuard implements CanActivate, OnModuleDestroy {
|
|
11
|
+
private readonly options;
|
|
12
|
+
private readonly reflector;
|
|
13
|
+
private readonly logger;
|
|
14
|
+
private readonly store;
|
|
15
|
+
private cleanupInterval;
|
|
16
|
+
constructor(options: MastraModuleOptions, reflector: Reflector);
|
|
17
|
+
/**
|
|
18
|
+
* Clean up the interval when the module is destroyed.
|
|
19
|
+
*/
|
|
20
|
+
onModuleDestroy(): void;
|
|
21
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
22
|
+
/**
|
|
23
|
+
* Check rate limit for a request.
|
|
24
|
+
* Can be called directly from controllers for manual rate limiting.
|
|
25
|
+
*/
|
|
26
|
+
checkLimit(request: Request, limit: number, windowMs: number, rateLimitPath?: string): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Get rate limit settings for this request.
|
|
29
|
+
*/
|
|
30
|
+
getRateLimitSettings(request: Request, decoratorOptions?: ThrottleOptions, rateLimitPath?: string): {
|
|
31
|
+
limit: number;
|
|
32
|
+
windowMs: number;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Get client identifier for rate limiting.
|
|
36
|
+
* Uses user ID if authenticated, IP address otherwise.
|
|
37
|
+
*
|
|
38
|
+
* Security note: X-Forwarded-For is only trusted when the app is configured
|
|
39
|
+
* with 'trust proxy' in Express. Without that setting, we use the direct
|
|
40
|
+
* connection IP to prevent header spoofing attacks.
|
|
41
|
+
*/
|
|
42
|
+
private getClientId;
|
|
43
|
+
/**
|
|
44
|
+
* Evict oldest entries when store exceeds max size.
|
|
45
|
+
* Uses a simple LRU-like approach based on resetAt time.
|
|
46
|
+
*/
|
|
47
|
+
private evictOldestEntries;
|
|
48
|
+
/**
|
|
49
|
+
* Clean up expired entries from the store.
|
|
50
|
+
*/
|
|
51
|
+
private cleanupExpiredEntries;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=mastra-throttle.guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mastra-throttle.guard.d.ts","sourceRoot":"","sources":["../../src/guards/mastra-throttle.guard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAa5D;;;GAGG;AACH,qBACa,mBAAoB,YAAW,WAAW,EAAE,eAAe;IAM5C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAN/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;IAC1D,OAAO,CAAC,eAAe,CAA+C;gBAG3B,OAAO,EAAE,mBAAmB,EACjC,SAAS,EAAE,SAAS;IAM1D;;OAEG;IACH,eAAe,IAAI,IAAI;IAQjB,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB9D;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C1G;;OAEG;IACH,oBAAoB,CAClB,OAAO,EAAE,OAAO,EAChB,gBAAgB,CAAC,EAAE,eAAe,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAuBtC;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAcnB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAe9B"}
|