nitrostack 1.0.83 → 1.0.85
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/LICENSE +1 -1
- package/README.md +42 -137
- package/assets/gif/nitrocli.gif +0 -0
- package/assets/gif/nitrostudio-chat.gif +0 -0
- package/assets/gif/nitrostudio-main.gif +0 -0
- package/assets/gif/nitrostudio-testing.gif +0 -0
- package/package.json +15 -50
- package/dist/auth/__tests__/api-key.test.d.ts +0 -2
- package/dist/auth/__tests__/api-key.test.d.ts.map +0 -1
- package/dist/auth/__tests__/api-key.test.js +0 -156
- package/dist/auth/__tests__/api-key.test.js.map +0 -1
- package/dist/auth/__tests__/client.test.d.ts +0 -2
- package/dist/auth/__tests__/client.test.d.ts.map +0 -1
- package/dist/auth/__tests__/client.test.js +0 -173
- package/dist/auth/__tests__/client.test.js.map +0 -1
- package/dist/auth/__tests__/middleware.test.d.ts +0 -2
- package/dist/auth/__tests__/middleware.test.d.ts.map +0 -1
- package/dist/auth/__tests__/middleware.test.js +0 -232
- package/dist/auth/__tests__/middleware.test.js.map +0 -1
- package/dist/auth/__tests__/pkce.test.d.ts +0 -2
- package/dist/auth/__tests__/pkce.test.d.ts.map +0 -1
- package/dist/auth/__tests__/pkce.test.js +0 -110
- package/dist/auth/__tests__/pkce.test.js.map +0 -1
- package/dist/auth/__tests__/quick-setup.test.d.ts +0 -2
- package/dist/auth/__tests__/quick-setup.test.d.ts.map +0 -1
- package/dist/auth/__tests__/quick-setup.test.js +0 -95
- package/dist/auth/__tests__/quick-setup.test.js.map +0 -1
- package/dist/auth/__tests__/secure-secret.test.d.ts +0 -2
- package/dist/auth/__tests__/secure-secret.test.d.ts.map +0 -1
- package/dist/auth/__tests__/secure-secret.test.js +0 -104
- package/dist/auth/__tests__/secure-secret.test.js.map +0 -1
- package/dist/auth/__tests__/server-integration.test.d.ts +0 -2
- package/dist/auth/__tests__/server-integration.test.d.ts.map +0 -1
- package/dist/auth/__tests__/server-integration.test.js +0 -156
- package/dist/auth/__tests__/server-integration.test.js.map +0 -1
- package/dist/auth/__tests__/server-metadata.test.d.ts +0 -2
- package/dist/auth/__tests__/server-metadata.test.d.ts.map +0 -1
- package/dist/auth/__tests__/server-metadata.test.js +0 -72
- package/dist/auth/__tests__/server-metadata.test.js.map +0 -1
- package/dist/auth/__tests__/simple-jwt.test.d.ts +0 -2
- package/dist/auth/__tests__/simple-jwt.test.d.ts.map +0 -1
- package/dist/auth/__tests__/simple-jwt.test.js +0 -125
- package/dist/auth/__tests__/simple-jwt.test.js.map +0 -1
- package/dist/auth/__tests__/token-store.test.d.ts +0 -2
- package/dist/auth/__tests__/token-store.test.d.ts.map +0 -1
- package/dist/auth/__tests__/token-store.test.js +0 -167
- package/dist/auth/__tests__/token-store.test.js.map +0 -1
- package/dist/auth/__tests__/token-validation.test.d.ts +0 -2
- package/dist/auth/__tests__/token-validation.test.d.ts.map +0 -1
- package/dist/auth/__tests__/token-validation.test.js +0 -219
- package/dist/auth/__tests__/token-validation.test.js.map +0 -1
- package/dist/auth/api-key.d.ts +0 -118
- package/dist/auth/api-key.d.ts.map +0 -1
- package/dist/auth/api-key.js +0 -168
- package/dist/auth/api-key.js.map +0 -1
- package/dist/auth/client.d.ts +0 -151
- package/dist/auth/client.d.ts.map +0 -1
- package/dist/auth/client.js +0 -330
- package/dist/auth/client.js.map +0 -1
- package/dist/auth/index.d.ts +0 -31
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -46
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/middleware.d.ts +0 -95
- package/dist/auth/middleware.d.ts.map +0 -1
- package/dist/auth/middleware.js +0 -260
- package/dist/auth/middleware.js.map +0 -1
- package/dist/auth/pkce.d.ts +0 -53
- package/dist/auth/pkce.d.ts.map +0 -1
- package/dist/auth/pkce.js +0 -105
- package/dist/auth/pkce.js.map +0 -1
- package/dist/auth/quick-setup.d.ts +0 -94
- package/dist/auth/quick-setup.d.ts.map +0 -1
- package/dist/auth/quick-setup.js +0 -210
- package/dist/auth/quick-setup.js.map +0 -1
- package/dist/auth/secure-secret.d.ts +0 -136
- package/dist/auth/secure-secret.d.ts.map +0 -1
- package/dist/auth/secure-secret.js +0 -182
- package/dist/auth/secure-secret.js.map +0 -1
- package/dist/auth/server-integration.d.ts +0 -97
- package/dist/auth/server-integration.d.ts.map +0 -1
- package/dist/auth/server-integration.js +0 -182
- package/dist/auth/server-integration.js.map +0 -1
- package/dist/auth/server-metadata.d.ts +0 -51
- package/dist/auth/server-metadata.d.ts.map +0 -1
- package/dist/auth/server-metadata.js +0 -106
- package/dist/auth/server-metadata.js.map +0 -1
- package/dist/auth/simple-jwt.d.ts +0 -174
- package/dist/auth/simple-jwt.d.ts.map +0 -1
- package/dist/auth/simple-jwt.js +0 -162
- package/dist/auth/simple-jwt.js.map +0 -1
- package/dist/auth/token-store.d.ts +0 -104
- package/dist/auth/token-store.d.ts.map +0 -1
- package/dist/auth/token-store.js +0 -205
- package/dist/auth/token-store.js.map +0 -1
- package/dist/auth/token-validation.d.ts +0 -59
- package/dist/auth/token-validation.d.ts.map +0 -1
- package/dist/auth/token-validation.js +0 -241
- package/dist/auth/token-validation.js.map +0 -1
- package/dist/auth/types.d.ts +0 -215
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js +0 -6
- package/dist/auth/types.js.map +0 -1
- package/dist/core/__tests__/app-decorator.test.d.ts +0 -2
- package/dist/core/__tests__/app-decorator.test.d.ts.map +0 -1
- package/dist/core/__tests__/app-decorator.test.js +0 -100
- package/dist/core/__tests__/app-decorator.test.js.map +0 -1
- package/dist/core/__tests__/app-factory.extended.test.d.ts +0 -2
- package/dist/core/__tests__/app-factory.extended.test.d.ts.map +0 -1
- package/dist/core/__tests__/app-factory.extended.test.js +0 -244
- package/dist/core/__tests__/app-factory.extended.test.js.map +0 -1
- package/dist/core/__tests__/builders.test.d.ts +0 -2
- package/dist/core/__tests__/builders.test.d.ts.map +0 -1
- package/dist/core/__tests__/builders.test.js +0 -98
- package/dist/core/__tests__/builders.test.js.map +0 -1
- package/dist/core/__tests__/component.test.d.ts +0 -2
- package/dist/core/__tests__/component.test.d.ts.map +0 -1
- package/dist/core/__tests__/component.test.js +0 -151
- package/dist/core/__tests__/component.test.js.map +0 -1
- package/dist/core/__tests__/config-module.test.d.ts +0 -2
- package/dist/core/__tests__/config-module.test.d.ts.map +0 -1
- package/dist/core/__tests__/config-module.test.js +0 -90
- package/dist/core/__tests__/config-module.test.js.map +0 -1
- package/dist/core/__tests__/core-modules.test.d.ts +0 -2
- package/dist/core/__tests__/core-modules.test.d.ts.map +0 -1
- package/dist/core/__tests__/core-modules.test.js +0 -36
- package/dist/core/__tests__/core-modules.test.js.map +0 -1
- package/dist/core/__tests__/di.test.d.ts +0 -2
- package/dist/core/__tests__/di.test.d.ts.map +0 -1
- package/dist/core/__tests__/di.test.js +0 -101
- package/dist/core/__tests__/di.test.js.map +0 -1
- package/dist/core/__tests__/errors.test.d.ts +0 -2
- package/dist/core/__tests__/errors.test.d.ts.map +0 -1
- package/dist/core/__tests__/errors.test.js +0 -109
- package/dist/core/__tests__/errors.test.js.map +0 -1
- package/dist/core/__tests__/final.blitz.test.d.ts +0 -2
- package/dist/core/__tests__/final.blitz.test.d.ts.map +0 -1
- package/dist/core/__tests__/final.blitz.test.js +0 -327
- package/dist/core/__tests__/final.blitz.test.js.map +0 -1
- package/dist/core/__tests__/jwt-module.test.d.ts +0 -2
- package/dist/core/__tests__/jwt-module.test.d.ts.map +0 -1
- package/dist/core/__tests__/jwt-module.test.js +0 -60
- package/dist/core/__tests__/jwt-module.test.js.map +0 -1
- package/dist/core/__tests__/logger.test.d.ts +0 -2
- package/dist/core/__tests__/logger.test.d.ts.map +0 -1
- package/dist/core/__tests__/logger.test.js +0 -83
- package/dist/core/__tests__/logger.test.js.map +0 -1
- package/dist/core/__tests__/models.test.d.ts +0 -2
- package/dist/core/__tests__/models.test.d.ts.map +0 -1
- package/dist/core/__tests__/models.test.js +0 -142
- package/dist/core/__tests__/models.test.js.map +0 -1
- package/dist/core/__tests__/module.test.d.ts +0 -2
- package/dist/core/__tests__/module.test.d.ts.map +0 -1
- package/dist/core/__tests__/module.test.js +0 -58
- package/dist/core/__tests__/module.test.js.map +0 -1
- package/dist/core/__tests__/oauth-module.test.d.ts +0 -2
- package/dist/core/__tests__/oauth-module.test.d.ts.map +0 -1
- package/dist/core/__tests__/oauth-module.test.js +0 -168
- package/dist/core/__tests__/oauth-module.test.js.map +0 -1
- package/dist/core/__tests__/oauth.extended.test.d.ts +0 -2
- package/dist/core/__tests__/oauth.extended.test.d.ts.map +0 -1
- package/dist/core/__tests__/oauth.extended.test.js +0 -146
- package/dist/core/__tests__/oauth.extended.test.js.map +0 -1
- package/dist/core/__tests__/prompt.test.d.ts +0 -2
- package/dist/core/__tests__/prompt.test.d.ts.map +0 -1
- package/dist/core/__tests__/prompt.test.js +0 -126
- package/dist/core/__tests__/prompt.test.js.map +0 -1
- package/dist/core/__tests__/resource.test.d.ts +0 -2
- package/dist/core/__tests__/resource.test.d.ts.map +0 -1
- package/dist/core/__tests__/resource.test.js +0 -173
- package/dist/core/__tests__/resource.test.js.map +0 -1
- package/dist/core/__tests__/server.extended.test.d.ts +0 -2
- package/dist/core/__tests__/server.extended.test.d.ts.map +0 -1
- package/dist/core/__tests__/server.extended.test.js +0 -242
- package/dist/core/__tests__/server.extended.test.js.map +0 -1
- package/dist/core/__tests__/server.test.d.ts +0 -2
- package/dist/core/__tests__/server.test.d.ts.map +0 -1
- package/dist/core/__tests__/server.test.js +0 -120
- package/dist/core/__tests__/server.test.js.map +0 -1
- package/dist/core/__tests__/transport.http.test.d.ts +0 -2
- package/dist/core/__tests__/transport.http.test.d.ts.map +0 -1
- package/dist/core/__tests__/transport.http.test.js +0 -119
- package/dist/core/__tests__/transport.http.test.js.map +0 -1
- package/dist/core/__tests__/transport.streamable.test.d.ts +0 -2
- package/dist/core/__tests__/transport.streamable.test.d.ts.map +0 -1
- package/dist/core/__tests__/transport.streamable.test.js +0 -168
- package/dist/core/__tests__/transport.streamable.test.js.map +0 -1
- package/dist/core/__tests__/transports.test.d.ts +0 -2
- package/dist/core/__tests__/transports.test.d.ts.map +0 -1
- package/dist/core/__tests__/transports.test.js +0 -12
- package/dist/core/__tests__/transports.test.js.map +0 -1
- package/dist/core/apikey-module.d.ts +0 -69
- package/dist/core/apikey-module.d.ts.map +0 -1
- package/dist/core/apikey-module.js +0 -114
- package/dist/core/apikey-module.js.map +0 -1
- package/dist/core/app-decorator.d.ts +0 -59
- package/dist/core/app-decorator.d.ts.map +0 -1
- package/dist/core/app-decorator.js +0 -322
- package/dist/core/app-decorator.js.map +0 -1
- package/dist/core/builders.d.ts +0 -50
- package/dist/core/builders.d.ts.map +0 -1
- package/dist/core/builders.js +0 -139
- package/dist/core/builders.js.map +0 -1
- package/dist/core/component.d.ts +0 -111
- package/dist/core/component.d.ts.map +0 -1
- package/dist/core/component.js +0 -228
- package/dist/core/component.js.map +0 -1
- package/dist/core/config-module.d.ts +0 -62
- package/dist/core/config-module.d.ts.map +0 -1
- package/dist/core/config-module.js +0 -94
- package/dist/core/config-module.js.map +0 -1
- package/dist/core/decorators/__tests__/decorators.test.d.ts +0 -2
- package/dist/core/decorators/__tests__/decorators.test.d.ts.map +0 -1
- package/dist/core/decorators/__tests__/decorators.test.js +0 -103
- package/dist/core/decorators/__tests__/decorators.test.js.map +0 -1
- package/dist/core/decorators/__tests__/extended-decorators.test.d.ts +0 -2
- package/dist/core/decorators/__tests__/extended-decorators.test.d.ts.map +0 -1
- package/dist/core/decorators/__tests__/extended-decorators.test.js +0 -194
- package/dist/core/decorators/__tests__/extended-decorators.test.js.map +0 -1
- package/dist/core/decorators/__tests__/health-check.test.d.ts +0 -2
- package/dist/core/decorators/__tests__/health-check.test.d.ts.map +0 -1
- package/dist/core/decorators/__tests__/health-check.test.js +0 -119
- package/dist/core/decorators/__tests__/health-check.test.js.map +0 -1
- package/dist/core/decorators/cache.decorator.d.ts +0 -61
- package/dist/core/decorators/cache.decorator.d.ts.map +0 -1
- package/dist/core/decorators/cache.decorator.js +0 -115
- package/dist/core/decorators/cache.decorator.js.map +0 -1
- package/dist/core/decorators/health-check.decorator.d.ts +0 -80
- package/dist/core/decorators/health-check.decorator.d.ts.map +0 -1
- package/dist/core/decorators/health-check.decorator.js +0 -153
- package/dist/core/decorators/health-check.decorator.js.map +0 -1
- package/dist/core/decorators/rate-limit.decorator.d.ts +0 -63
- package/dist/core/decorators/rate-limit.decorator.d.ts.map +0 -1
- package/dist/core/decorators/rate-limit.decorator.js +0 -129
- package/dist/core/decorators/rate-limit.decorator.js.map +0 -1
- package/dist/core/decorators.d.ts +0 -190
- package/dist/core/decorators.d.ts.map +0 -1
- package/dist/core/decorators.js +0 -170
- package/dist/core/decorators.js.map +0 -1
- package/dist/core/di/__tests__/container.test.d.ts +0 -2
- package/dist/core/di/__tests__/container.test.d.ts.map +0 -1
- package/dist/core/di/__tests__/container.test.js +0 -88
- package/dist/core/di/__tests__/container.test.js.map +0 -1
- package/dist/core/di/container.d.ts +0 -64
- package/dist/core/di/container.d.ts.map +0 -1
- package/dist/core/di/container.js +0 -105
- package/dist/core/di/container.js.map +0 -1
- package/dist/core/di/injectable.decorator.d.ts +0 -62
- package/dist/core/di/injectable.decorator.d.ts.map +0 -1
- package/dist/core/di/injectable.decorator.js +0 -66
- package/dist/core/di/injectable.decorator.js.map +0 -1
- package/dist/core/di/metadata-shim.d.ts +0 -31
- package/dist/core/di/metadata-shim.d.ts.map +0 -1
- package/dist/core/di/metadata-shim.js +0 -181
- package/dist/core/di/metadata-shim.js.map +0 -1
- package/dist/core/errors.d.ts +0 -54
- package/dist/core/errors.d.ts.map +0 -1
- package/dist/core/errors.js +0 -87
- package/dist/core/errors.js.map +0 -1
- package/dist/core/events/__tests__/events.test.d.ts +0 -2
- package/dist/core/events/__tests__/events.test.d.ts.map +0 -1
- package/dist/core/events/__tests__/events.test.js +0 -177
- package/dist/core/events/__tests__/events.test.js.map +0 -1
- package/dist/core/events/event-emitter.d.ts +0 -50
- package/dist/core/events/event-emitter.d.ts.map +0 -1
- package/dist/core/events/event-emitter.js +0 -94
- package/dist/core/events/event-emitter.js.map +0 -1
- package/dist/core/events/event.decorator.d.ts +0 -48
- package/dist/core/events/event.decorator.d.ts.map +0 -1
- package/dist/core/events/event.decorator.js +0 -72
- package/dist/core/events/event.decorator.js.map +0 -1
- package/dist/core/events/log-emitter.d.ts +0 -14
- package/dist/core/events/log-emitter.d.ts.map +0 -1
- package/dist/core/events/log-emitter.js +0 -20
- package/dist/core/events/log-emitter.js.map +0 -1
- package/dist/core/filters/__tests__/filters.test.d.ts +0 -2
- package/dist/core/filters/__tests__/filters.test.d.ts.map +0 -1
- package/dist/core/filters/__tests__/filters.test.js +0 -72
- package/dist/core/filters/__tests__/filters.test.js.map +0 -1
- package/dist/core/filters/exception-filter.decorator.d.ts +0 -40
- package/dist/core/filters/exception-filter.decorator.d.ts.map +0 -1
- package/dist/core/filters/exception-filter.decorator.js +0 -54
- package/dist/core/filters/exception-filter.decorator.js.map +0 -1
- package/dist/core/filters/exception-filter.interface.d.ts +0 -39
- package/dist/core/filters/exception-filter.interface.d.ts.map +0 -1
- package/dist/core/filters/exception-filter.interface.js +0 -2
- package/dist/core/filters/exception-filter.interface.js.map +0 -1
- package/dist/core/guards/__tests__/guards.test.d.ts +0 -2
- package/dist/core/guards/__tests__/guards.test.d.ts.map +0 -1
- package/dist/core/guards/__tests__/guards.test.js +0 -55
- package/dist/core/guards/__tests__/guards.test.js.map +0 -1
- package/dist/core/guards/apikey.guard.d.ts +0 -22
- package/dist/core/guards/apikey.guard.d.ts.map +0 -1
- package/dist/core/guards/apikey.guard.js +0 -11
- package/dist/core/guards/apikey.guard.js.map +0 -1
- package/dist/core/guards/guard.interface.d.ts +0 -18
- package/dist/core/guards/guard.interface.d.ts.map +0 -1
- package/dist/core/guards/guard.interface.js +0 -2
- package/dist/core/guards/guard.interface.js.map +0 -1
- package/dist/core/guards/jwt.guard.d.ts +0 -18
- package/dist/core/guards/jwt.guard.d.ts.map +0 -1
- package/dist/core/guards/jwt.guard.js +0 -2
- package/dist/core/guards/jwt.guard.js.map +0 -1
- package/dist/core/guards/oauth.guard.d.ts +0 -35
- package/dist/core/guards/oauth.guard.d.ts.map +0 -1
- package/dist/core/guards/oauth.guard.js +0 -2
- package/dist/core/guards/oauth.guard.js.map +0 -1
- package/dist/core/guards/use-guards.decorator.d.ts +0 -25
- package/dist/core/guards/use-guards.decorator.d.ts.map +0 -1
- package/dist/core/guards/use-guards.decorator.js +0 -32
- package/dist/core/guards/use-guards.decorator.js.map +0 -1
- package/dist/core/health/__tests__/health.test.d.ts +0 -2
- package/dist/core/health/__tests__/health.test.d.ts.map +0 -1
- package/dist/core/health/__tests__/health.test.js +0 -31
- package/dist/core/health/__tests__/health.test.js.map +0 -1
- package/dist/core/health/health-checks.resource.d.ts +0 -14
- package/dist/core/health/health-checks.resource.d.ts.map +0 -1
- package/dist/core/health/health-checks.resource.js +0 -29
- package/dist/core/health/health-checks.resource.js.map +0 -1
- package/dist/core/index.d.ts +0 -57
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -59
- package/dist/core/index.js.map +0 -1
- package/dist/core/interceptors/__tests__/interceptors.test.d.ts +0 -2
- package/dist/core/interceptors/__tests__/interceptors.test.d.ts.map +0 -1
- package/dist/core/interceptors/__tests__/interceptors.test.js +0 -52
- package/dist/core/interceptors/__tests__/interceptors.test.js.map +0 -1
- package/dist/core/interceptors/interceptor.decorator.d.ts +0 -37
- package/dist/core/interceptors/interceptor.decorator.d.ts.map +0 -1
- package/dist/core/interceptors/interceptor.decorator.js +0 -51
- package/dist/core/interceptors/interceptor.decorator.js.map +0 -1
- package/dist/core/interceptors/interceptor.interface.d.ts +0 -31
- package/dist/core/interceptors/interceptor.interface.d.ts.map +0 -1
- package/dist/core/interceptors/interceptor.interface.js +0 -2
- package/dist/core/interceptors/interceptor.interface.js.map +0 -1
- package/dist/core/jwt-module.d.ts +0 -51
- package/dist/core/jwt-module.d.ts.map +0 -1
- package/dist/core/jwt-module.js +0 -52
- package/dist/core/jwt-module.js.map +0 -1
- package/dist/core/logger.d.ts +0 -18
- package/dist/core/logger.d.ts.map +0 -1
- package/dist/core/logger.js +0 -53
- package/dist/core/logger.js.map +0 -1
- package/dist/core/middleware/__tests__/middleware.test.d.ts +0 -2
- package/dist/core/middleware/__tests__/middleware.test.d.ts.map +0 -1
- package/dist/core/middleware/__tests__/middleware.test.js +0 -105
- package/dist/core/middleware/__tests__/middleware.test.js.map +0 -1
- package/dist/core/middleware/middleware.decorator.d.ts +0 -39
- package/dist/core/middleware/middleware.decorator.d.ts.map +0 -1
- package/dist/core/middleware/middleware.decorator.js +0 -53
- package/dist/core/middleware/middleware.decorator.js.map +0 -1
- package/dist/core/middleware/middleware.interface.d.ts +0 -29
- package/dist/core/middleware/middleware.interface.d.ts.map +0 -1
- package/dist/core/middleware/middleware.interface.js +0 -2
- package/dist/core/middleware/middleware.interface.js.map +0 -1
- package/dist/core/module.d.ts +0 -93
- package/dist/core/module.d.ts.map +0 -1
- package/dist/core/module.js +0 -87
- package/dist/core/module.js.map +0 -1
- package/dist/core/oauth-module.d.ts +0 -123
- package/dist/core/oauth-module.d.ts.map +0 -1
- package/dist/core/oauth-module.js +0 -324
- package/dist/core/oauth-module.js.map +0 -1
- package/dist/core/pipes/__tests__/pipes.test.d.ts +0 -2
- package/dist/core/pipes/__tests__/pipes.test.d.ts.map +0 -1
- package/dist/core/pipes/__tests__/pipes.test.js +0 -164
- package/dist/core/pipes/__tests__/pipes.test.js.map +0 -1
- package/dist/core/pipes/pipe.decorator.d.ts +0 -64
- package/dist/core/pipes/pipe.decorator.d.ts.map +0 -1
- package/dist/core/pipes/pipe.decorator.js +0 -85
- package/dist/core/pipes/pipe.decorator.js.map +0 -1
- package/dist/core/pipes/pipe.interface.d.ts +0 -41
- package/dist/core/pipes/pipe.interface.d.ts.map +0 -1
- package/dist/core/pipes/pipe.interface.js +0 -2
- package/dist/core/pipes/pipe.interface.js.map +0 -1
- package/dist/core/prompt.d.ts +0 -46
- package/dist/core/prompt.d.ts.map +0 -1
- package/dist/core/prompt.js +0 -76
- package/dist/core/prompt.js.map +0 -1
- package/dist/core/resource.d.ts +0 -47
- package/dist/core/resource.d.ts.map +0 -1
- package/dist/core/resource.js +0 -90
- package/dist/core/resource.js.map +0 -1
- package/dist/core/server.d.ts +0 -129
- package/dist/core/server.d.ts.map +0 -1
- package/dist/core/server.js +0 -617
- package/dist/core/server.js.map +0 -1
- package/dist/core/tool.d.ts +0 -108
- package/dist/core/tool.d.ts.map +0 -1
- package/dist/core/tool.js +0 -241
- package/dist/core/tool.js.map +0 -1
- package/dist/core/transports/__tests__/transports.test.d.ts +0 -2
- package/dist/core/transports/__tests__/transports.test.d.ts.map +0 -1
- package/dist/core/transports/__tests__/transports.test.js +0 -249
- package/dist/core/transports/__tests__/transports.test.js.map +0 -1
- package/dist/core/transports/discovery-http-server.d.ts +0 -19
- package/dist/core/transports/discovery-http-server.d.ts.map +0 -1
- package/dist/core/transports/discovery-http-server.js +0 -54
- package/dist/core/transports/discovery-http-server.js.map +0 -1
- package/dist/core/transports/http-server.d.ts +0 -108
- package/dist/core/transports/http-server.d.ts.map +0 -1
- package/dist/core/transports/http-server.js +0 -293
- package/dist/core/transports/http-server.js.map +0 -1
- package/dist/core/transports/streamable-http.d.ts +0 -177
- package/dist/core/transports/streamable-http.d.ts.map +0 -1
- package/dist/core/transports/streamable-http.js +0 -1287
- package/dist/core/transports/streamable-http.js.map +0 -1
- package/dist/core/types.d.ts +0 -195
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -2
- package/dist/core/types.js.map +0 -1
- package/dist/core/widgets/__tests__/registry.test.d.ts +0 -2
- package/dist/core/widgets/__tests__/registry.test.d.ts.map +0 -1
- package/dist/core/widgets/__tests__/registry.test.js +0 -69
- package/dist/core/widgets/__tests__/registry.test.js.map +0 -1
- package/dist/core/widgets/widget-examples.resource.d.ts +0 -17
- package/dist/core/widgets/widget-examples.resource.d.ts.map +0 -1
- package/dist/core/widgets/widget-examples.resource.js +0 -28
- package/dist/core/widgets/widget-examples.resource.js.map +0 -1
- package/dist/core/widgets/widget-registry.d.ts +0 -56
- package/dist/core/widgets/widget-registry.d.ts.map +0 -1
- package/dist/core/widgets/widget-registry.js +0 -75
- package/dist/core/widgets/widget-registry.js.map +0 -1
- package/dist/testing/__tests__/testing.test.d.ts +0 -2
- package/dist/testing/__tests__/testing.test.d.ts.map +0 -1
- package/dist/testing/__tests__/testing.test.js +0 -167
- package/dist/testing/__tests__/testing.test.js.map +0 -1
- package/dist/testing/index.d.ts +0 -103
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js +0 -161
- package/dist/testing/index.js.map +0 -1
- package/dist/ui-next/__tests__/ui-next.test.d.ts +0 -2
- package/dist/ui-next/__tests__/ui-next.test.d.ts.map +0 -1
- package/dist/ui-next/__tests__/ui-next.test.js +0 -74
- package/dist/ui-next/__tests__/ui-next.test.js.map +0 -1
- package/dist/ui-next/index.d.ts +0 -31
- package/dist/ui-next/index.d.ts.map +0 -1
- package/dist/ui-next/index.js +0 -687
- package/dist/ui-next/index.js.map +0 -1
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { jest, describe, it, expect, beforeEach, afterEach } from '@jest/globals';
|
|
2
|
-
import { StreamableHttpTransport } from '../transports/streamable-http.js';
|
|
3
|
-
describe('StreamableHttpTransport', () => {
|
|
4
|
-
let transport;
|
|
5
|
-
const port = 3060;
|
|
6
|
-
const baseUrl = `http://localhost:${port}/mcp`;
|
|
7
|
-
beforeEach(async () => {
|
|
8
|
-
jest.useFakeTimers();
|
|
9
|
-
transport = new StreamableHttpTransport({
|
|
10
|
-
port,
|
|
11
|
-
host: 'localhost',
|
|
12
|
-
enableSessions: true,
|
|
13
|
-
enableCors: true
|
|
14
|
-
});
|
|
15
|
-
await transport.start();
|
|
16
|
-
});
|
|
17
|
-
afterEach(async () => {
|
|
18
|
-
await transport.close();
|
|
19
|
-
jest.useRealTimers();
|
|
20
|
-
});
|
|
21
|
-
it('should cover documentation page generation directly for coverage', async () => {
|
|
22
|
-
const st = transport;
|
|
23
|
-
// Exercise the logo loading paths by calling it manually
|
|
24
|
-
st.loadLogo();
|
|
25
|
-
st.setServerConfig({
|
|
26
|
-
name: 'DocTest',
|
|
27
|
-
version: '1.0.0',
|
|
28
|
-
description: 'A test server'
|
|
29
|
-
});
|
|
30
|
-
st.setToolsCallback(async () => [
|
|
31
|
-
{ name: 'tool1', description: 'd1', inputSchema: {}, widget: true }
|
|
32
|
-
]);
|
|
33
|
-
// Manually trigger the doc generation to ensure 500 lines are covered
|
|
34
|
-
const html = st.generateDocumentationPage([{ name: 'tool1', description: 'd1', inputSchema: {}, widget: true }], 'http://localhost:3060/mcp');
|
|
35
|
-
expect(html).toContain('DocTest');
|
|
36
|
-
expect(html).toContain('1.0.0');
|
|
37
|
-
expect(html).toContain('tool1');
|
|
38
|
-
expect(html).toContain('Has UI Widget');
|
|
39
|
-
// Exercise escapeHtml
|
|
40
|
-
expect(st.escapeHtml('<script>')).toBe('<script>');
|
|
41
|
-
});
|
|
42
|
-
it('should handle session-based messaging and sessionless send', async () => {
|
|
43
|
-
const st = transport;
|
|
44
|
-
const session = {
|
|
45
|
-
id: 's1',
|
|
46
|
-
streams: new Map([['str1', { response: { write: jest.fn(), end: jest.fn() }, closed: false, eventIdCounter: 0 }]]),
|
|
47
|
-
messageQueue: [],
|
|
48
|
-
lastActivity: Date.now()
|
|
49
|
-
};
|
|
50
|
-
st.sessions.set('s1', session);
|
|
51
|
-
// Send request to session-based stream
|
|
52
|
-
await transport.send({ jsonrpc: '2.0', method: 'req', id: 1 });
|
|
53
|
-
expect(session.streams.get('str1').response.write).toHaveBeenCalled();
|
|
54
|
-
// Send response to session-based stream
|
|
55
|
-
await transport.send({ jsonrpc: '2.0', result: { ok: true }, id: 1 });
|
|
56
|
-
// Send to sessionless stream
|
|
57
|
-
const stream2 = { response: { write: jest.fn(), end: jest.fn() }, closed: false, eventIdCounter: 0 };
|
|
58
|
-
st.activeStreams.set('str2', stream2);
|
|
59
|
-
await transport.send({ jsonrpc: '2.0', method: 'req2', id: 2 });
|
|
60
|
-
expect(stream2.response.write).toHaveBeenCalled();
|
|
61
|
-
// Test replayMessages
|
|
62
|
-
st.replayMessages(session, session.streams.get('str1'), 's1-0');
|
|
63
|
-
});
|
|
64
|
-
it('should cover initialization, middleware and route handlers', async () => {
|
|
65
|
-
jest.useRealTimers();
|
|
66
|
-
// POST /mcp (Initialize)
|
|
67
|
-
const res1 = await fetch(baseUrl, {
|
|
68
|
-
method: 'POST',
|
|
69
|
-
headers: { 'Content-Type': 'application/json' },
|
|
70
|
-
body: JSON.stringify({
|
|
71
|
-
jsonrpc: '2.0',
|
|
72
|
-
id: 1,
|
|
73
|
-
method: 'initialize',
|
|
74
|
-
params: { protocolVersion: '2024-11-05', capabilities: {}, clientInfo: { name: 't', version: '1' } }
|
|
75
|
-
})
|
|
76
|
-
});
|
|
77
|
-
expect(res1.status).toBe(202);
|
|
78
|
-
const sessionId = res1.headers.get('Mcp-Session-Id');
|
|
79
|
-
expect(sessionId).toBeDefined();
|
|
80
|
-
// GET /mcp (SSE)
|
|
81
|
-
const res2 = await fetch(baseUrl, { headers: { 'Mcp-Session-Id': sessionId, 'Accept': 'text/event-stream' } });
|
|
82
|
-
expect(res2.status).toBe(200);
|
|
83
|
-
await res2.body?.getReader().cancel();
|
|
84
|
-
// DELETE /mcp
|
|
85
|
-
const res3 = await fetch(baseUrl, { method: 'DELETE', headers: { 'Mcp-Session-Id': sessionId } });
|
|
86
|
-
expect(res3.status).toBe(200);
|
|
87
|
-
});
|
|
88
|
-
it('should handle error paths in POST/GET/DELETE', async () => {
|
|
89
|
-
jest.useRealTimers();
|
|
90
|
-
// POST invalid json-rpc
|
|
91
|
-
const res1 = await fetch(baseUrl, { method: 'POST', body: JSON.stringify({ id: 1 }) });
|
|
92
|
-
expect(res1.status).toBe(400);
|
|
93
|
-
// POST session not found
|
|
94
|
-
const res2 = await fetch(baseUrl, {
|
|
95
|
-
method: 'POST',
|
|
96
|
-
headers: { 'Mcp-Session-Id': 'none', 'Content-Type': 'application/json' },
|
|
97
|
-
body: JSON.stringify({ jsonrpc: '2.0', method: 'ping' })
|
|
98
|
-
});
|
|
99
|
-
expect(res2.status).toBe(404);
|
|
100
|
-
// GET rejects SSE
|
|
101
|
-
const res3 = await fetch(baseUrl, { headers: { 'Accept': 'image/png' } });
|
|
102
|
-
expect(res3.status).toBe(405);
|
|
103
|
-
// DELETE missing session
|
|
104
|
-
const res4 = await fetch(baseUrl, { method: 'DELETE' });
|
|
105
|
-
expect(res4.status).toBe(400);
|
|
106
|
-
});
|
|
107
|
-
it('should handle session timeout cleanup', () => {
|
|
108
|
-
const st = transport;
|
|
109
|
-
st.options.sessionTimeout = 1;
|
|
110
|
-
const session = {
|
|
111
|
-
id: 's-exp',
|
|
112
|
-
streams: new Map([['str1', { response: { end: jest.fn() }, closed: false }]]),
|
|
113
|
-
lastActivity: Date.now() - 100000,
|
|
114
|
-
messageQueue: []
|
|
115
|
-
};
|
|
116
|
-
st.sessions.set('s-exp', session);
|
|
117
|
-
jest.advanceTimersByTime(70000); // Trigger cleanup interval
|
|
118
|
-
expect(st.sessions.has('s-exp')).toBe(false);
|
|
119
|
-
});
|
|
120
|
-
it('should test environment-specific logic (isLocalhost, options, getApp)', () => {
|
|
121
|
-
const st = transport;
|
|
122
|
-
expect(st.isLocalhost('127.0.0.1')).toBe(true);
|
|
123
|
-
expect(st.isLocalhost('::1')).toBe(true);
|
|
124
|
-
expect(st.isLocalhost('[::1]:3000')).toBe(true);
|
|
125
|
-
expect(st.isLocalhost('localhost:3000')).toBe(true);
|
|
126
|
-
expect(st.isLocalhost('google.com')).toBe(false);
|
|
127
|
-
expect(transport.getApp()).toBeDefined();
|
|
128
|
-
// Test constructor default values
|
|
129
|
-
const st2 = new StreamableHttpTransport({ enableCors: false, enableSessions: false });
|
|
130
|
-
expect(st2.options.enableSessions).toBe(false);
|
|
131
|
-
expect(st2.options.enableCors).toBe(false);
|
|
132
|
-
});
|
|
133
|
-
it('should validate origin when CORS is disabled', async () => {
|
|
134
|
-
const secureTransport = new StreamableHttpTransport({ port: 3068, enableCors: false });
|
|
135
|
-
await secureTransport.start();
|
|
136
|
-
const res = await fetch('http://localhost:3068/mcp', {
|
|
137
|
-
method: 'POST',
|
|
138
|
-
headers: {
|
|
139
|
-
'Origin': 'http://malicious.com',
|
|
140
|
-
'Host': 'localhost:3068',
|
|
141
|
-
'Content-Type': 'application/json'
|
|
142
|
-
},
|
|
143
|
-
body: JSON.stringify({ jsonrpc: '2.0', method: 'ping' })
|
|
144
|
-
});
|
|
145
|
-
expect(res.status).toBe(403);
|
|
146
|
-
// Valid origin
|
|
147
|
-
const res2 = await fetch('http://localhost:3068/mcp', {
|
|
148
|
-
method: 'POST',
|
|
149
|
-
headers: {
|
|
150
|
-
'Origin': 'http://localhost:3068',
|
|
151
|
-
'Host': 'localhost:3068',
|
|
152
|
-
'Content-Type': 'application/json'
|
|
153
|
-
},
|
|
154
|
-
body: JSON.stringify({ jsonrpc: '2.0', method: 'ping', id: 1 })
|
|
155
|
-
});
|
|
156
|
-
expect(res2.status).toBe(202);
|
|
157
|
-
await secureTransport.close();
|
|
158
|
-
});
|
|
159
|
-
it('should handle handleDelete failures and sessionless streaming', async () => {
|
|
160
|
-
// DELETE session not found
|
|
161
|
-
const res1 = await fetch(baseUrl, { method: 'DELETE', headers: { 'Mcp-Session-Id': 'missing' } });
|
|
162
|
-
expect(res1.status).toBe(404);
|
|
163
|
-
// GET sessionless
|
|
164
|
-
const res2 = await fetch(baseUrl, { headers: { 'Accept': 'text/event-stream' } });
|
|
165
|
-
expect(res2.status).toBe(400);
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
//# sourceMappingURL=transport.streamable.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport.streamable.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/transport.streamable.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transports.test.d.ts","sourceRoot":"","sources":["../../../src/core/__tests__/transports.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from '@jest/globals';
|
|
2
|
-
import { StreamableHttpTransport } from '../transports/streamable-http';
|
|
3
|
-
describe('Transports', () => {
|
|
4
|
-
describe('StreamableHttpTransport', () => {
|
|
5
|
-
it('should instantiate', () => {
|
|
6
|
-
const app = {};
|
|
7
|
-
const transport = new StreamableHttpTransport(app);
|
|
8
|
-
expect(transport).toBeDefined();
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
});
|
|
12
|
-
//# sourceMappingURL=transports.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transports.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/transports.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAC1B,MAAM,GAAG,GAAG,EAAS,CAAC;YACtB,MAAM,SAAS,GAAG,IAAI,uBAAuB,CAAC,GAAG,CAAC,CAAC;YACnD,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
|
-
/**
|
|
3
|
-
* API Key Module Configuration
|
|
4
|
-
*/
|
|
5
|
-
export interface ApiKeyModuleConfig {
|
|
6
|
-
/** Array of valid API keys (or env var names to read from) */
|
|
7
|
-
keys?: string[];
|
|
8
|
-
/** Environment variable prefix to read keys from (e.g., 'API_KEY' reads API_KEY_1, API_KEY_2, etc.) */
|
|
9
|
-
keysEnvPrefix?: string;
|
|
10
|
-
/** If true, keys are stored as SHA-256 hashes */
|
|
11
|
-
hashed?: boolean;
|
|
12
|
-
/** Header name to extract API key from (default: 'x-api-key') */
|
|
13
|
-
headerName?: string;
|
|
14
|
-
/** Metadata field name in MCP requests (default: 'apiKey') */
|
|
15
|
-
metadataField?: string;
|
|
16
|
-
/** Custom validation function */
|
|
17
|
-
customValidation?: (key: string) => Promise<boolean> | boolean;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* API Key Module - Enable API key authentication in your MCP server
|
|
21
|
-
*
|
|
22
|
-
* Import this module to indicate your server uses API key authentication.
|
|
23
|
-
* Then use @UseGuards(ApiKeyGuard) on your tools to protect them.
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* import { McpApplicationFactory, ApiKeyModule } from 'nitrostack';
|
|
28
|
-
* import { AppModule } from './app.module.js';
|
|
29
|
-
*
|
|
30
|
-
* async function bootstrap() {
|
|
31
|
-
* const app = await McpApplicationFactory.create(AppModule, {
|
|
32
|
-
* // Enable API key authentication
|
|
33
|
-
* apiKey: ApiKeyModule.forRoot({
|
|
34
|
-
* keysEnvPrefix: 'API_KEY', // Reads API_KEY_1, API_KEY_2, etc.
|
|
35
|
-
* headerName: 'x-api-key',
|
|
36
|
-
* }),
|
|
37
|
-
* });
|
|
38
|
-
* await app.start();
|
|
39
|
-
* }
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export declare class ApiKeyModule {
|
|
43
|
-
private static config;
|
|
44
|
-
/**
|
|
45
|
-
* Configure API Key module for the application
|
|
46
|
-
*/
|
|
47
|
-
static forRoot(config: ApiKeyModuleConfig): ApiKeyModuleConfig;
|
|
48
|
-
/**
|
|
49
|
-
* Get current API Key configuration
|
|
50
|
-
*/
|
|
51
|
-
static getConfig(): ApiKeyModuleConfig;
|
|
52
|
-
/**
|
|
53
|
-
* Get valid API keys from config or environment
|
|
54
|
-
*/
|
|
55
|
-
static getKeys(): string[];
|
|
56
|
-
/**
|
|
57
|
-
* Validate an API key
|
|
58
|
-
*/
|
|
59
|
-
static validate(key: string): Promise<boolean>;
|
|
60
|
-
/**
|
|
61
|
-
* Hash an API key (SHA-256)
|
|
62
|
-
*/
|
|
63
|
-
static hashKey(key: string): string;
|
|
64
|
-
/**
|
|
65
|
-
* Generate a secure API key
|
|
66
|
-
*/
|
|
67
|
-
static generateKey(prefix?: string): string;
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=apikey-module.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apikey-module.d.ts","sourceRoot":"","sources":["../../src/core/apikey-module.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,uGAAuG;IACvG,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAChE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,MAAM,CAKnB;IAEF;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB;IAK9D;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,kBAAkB;IAItC;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,MAAM,EAAE;IA6B1B;;OAEG;WACU,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BpD;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAInC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,GAAE,MAAa,GAAG,MAAM;CAKlD"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
|
-
import crypto from 'crypto';
|
|
3
|
-
/**
|
|
4
|
-
* API Key Module - Enable API key authentication in your MCP server
|
|
5
|
-
*
|
|
6
|
-
* Import this module to indicate your server uses API key authentication.
|
|
7
|
-
* Then use @UseGuards(ApiKeyGuard) on your tools to protect them.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```typescript
|
|
11
|
-
* import { McpApplicationFactory, ApiKeyModule } from 'nitrostack';
|
|
12
|
-
* import { AppModule } from './app.module.js';
|
|
13
|
-
*
|
|
14
|
-
* async function bootstrap() {
|
|
15
|
-
* const app = await McpApplicationFactory.create(AppModule, {
|
|
16
|
-
* // Enable API key authentication
|
|
17
|
-
* apiKey: ApiKeyModule.forRoot({
|
|
18
|
-
* keysEnvPrefix: 'API_KEY', // Reads API_KEY_1, API_KEY_2, etc.
|
|
19
|
-
* headerName: 'x-api-key',
|
|
20
|
-
* }),
|
|
21
|
-
* });
|
|
22
|
-
* await app.start();
|
|
23
|
-
* }
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
export class ApiKeyModule {
|
|
27
|
-
static config = {
|
|
28
|
-
keysEnvPrefix: 'API_KEY',
|
|
29
|
-
headerName: 'x-api-key',
|
|
30
|
-
metadataField: 'apiKey',
|
|
31
|
-
hashed: false,
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* Configure API Key module for the application
|
|
35
|
-
*/
|
|
36
|
-
static forRoot(config) {
|
|
37
|
-
this.config = { ...this.config, ...config };
|
|
38
|
-
return this.config;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Get current API Key configuration
|
|
42
|
-
*/
|
|
43
|
-
static getConfig() {
|
|
44
|
-
return this.config;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Get valid API keys from config or environment
|
|
48
|
-
*/
|
|
49
|
-
static getKeys() {
|
|
50
|
-
const keys = [];
|
|
51
|
-
// Add keys from config
|
|
52
|
-
if (this.config.keys && this.config.keys.length > 0) {
|
|
53
|
-
keys.push(...this.config.keys);
|
|
54
|
-
}
|
|
55
|
-
// Read from environment variables
|
|
56
|
-
if (this.config.keysEnvPrefix) {
|
|
57
|
-
let i = 1;
|
|
58
|
-
while (true) {
|
|
59
|
-
const envKey = `${this.config.keysEnvPrefix}_${i}`;
|
|
60
|
-
const value = process.env[envKey];
|
|
61
|
-
if (!value)
|
|
62
|
-
break;
|
|
63
|
-
keys.push(value);
|
|
64
|
-
i++;
|
|
65
|
-
}
|
|
66
|
-
// Also check for non-numbered version
|
|
67
|
-
const singleKey = process.env[this.config.keysEnvPrefix];
|
|
68
|
-
if (singleKey && !keys.includes(singleKey)) {
|
|
69
|
-
keys.push(singleKey);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return keys;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Validate an API key
|
|
76
|
-
*/
|
|
77
|
-
static async validate(key) {
|
|
78
|
-
const keys = this.getKeys();
|
|
79
|
-
if (keys.length === 0) {
|
|
80
|
-
return false; // No keys configured
|
|
81
|
-
}
|
|
82
|
-
let isValid = false;
|
|
83
|
-
if (this.config.hashed) {
|
|
84
|
-
// Compare hashed values
|
|
85
|
-
const hashedKey = this.hashKey(key);
|
|
86
|
-
isValid = keys.includes(hashedKey);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
// Direct comparison
|
|
90
|
-
isValid = keys.includes(key);
|
|
91
|
-
}
|
|
92
|
-
// Custom validation
|
|
93
|
-
if (this.config.customValidation) {
|
|
94
|
-
const customValid = await this.config.customValidation(key);
|
|
95
|
-
isValid = isValid && customValid;
|
|
96
|
-
}
|
|
97
|
-
return isValid;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Hash an API key (SHA-256)
|
|
101
|
-
*/
|
|
102
|
-
static hashKey(key) {
|
|
103
|
-
return crypto.createHash('sha256').update(key).digest('hex');
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Generate a secure API key
|
|
107
|
-
*/
|
|
108
|
-
static generateKey(prefix = 'sk') {
|
|
109
|
-
const randomBytes = crypto.randomBytes(32);
|
|
110
|
-
const key = randomBytes.toString('base64url');
|
|
111
|
-
return `${prefix}_${key}`;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=apikey-module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apikey-module.js","sourceRoot":"","sources":["../../src/core/apikey-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
|
-
import { NitroStackServer } from './server.js';
|
|
3
|
-
import type { ClassConstructor } from './types.js';
|
|
4
|
-
/**
|
|
5
|
-
* MCP Application Options
|
|
6
|
-
*/
|
|
7
|
-
export interface McpAppOptions {
|
|
8
|
-
/**
|
|
9
|
-
* Root module of the application
|
|
10
|
-
*/
|
|
11
|
-
module: ClassConstructor;
|
|
12
|
-
/**
|
|
13
|
-
* Server configuration
|
|
14
|
-
*/
|
|
15
|
-
server?: {
|
|
16
|
-
name?: string;
|
|
17
|
-
version?: string;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Logging configuration
|
|
21
|
-
*/
|
|
22
|
-
logging?: {
|
|
23
|
-
level?: 'debug' | 'info' | 'warn' | 'error';
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Transport configuration
|
|
27
|
-
* - 'stdio': STDIO only (default)
|
|
28
|
-
* - 'http': HTTP only
|
|
29
|
-
* - 'dual': STDIO for MCP + HTTP for OAuth metadata (auto-enabled with OAuth)
|
|
30
|
-
*/
|
|
31
|
-
transport?: {
|
|
32
|
-
type: 'stdio' | 'http' | 'dual';
|
|
33
|
-
http?: {
|
|
34
|
-
port?: number;
|
|
35
|
-
host?: string;
|
|
36
|
-
basePath?: string;
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* @McpApp Decorator
|
|
42
|
-
* Marks a class as the root application module
|
|
43
|
-
*/
|
|
44
|
-
export declare function McpApp(options: McpAppOptions): ClassDecorator;
|
|
45
|
-
/**
|
|
46
|
-
* Get MCP App metadata
|
|
47
|
-
*/
|
|
48
|
-
export declare function getMcpAppMetadata(target: ClassConstructor): McpAppOptions | undefined;
|
|
49
|
-
/**
|
|
50
|
-
* MCP Application Factory
|
|
51
|
-
* Creates and bootstraps an MCP application
|
|
52
|
-
*/
|
|
53
|
-
export declare class McpApplicationFactory {
|
|
54
|
-
/**
|
|
55
|
-
* Create an MCP application from an app module
|
|
56
|
-
*/
|
|
57
|
-
static create(AppModule: ClassConstructor): Promise<NitroStackServer>;
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=app-decorator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"app-decorator.d.ts","sourceRoot":"","sources":["../../src/core/app-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAgB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAO7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAiDnD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,EAAE,gBAAgB,CAAC;IAEzB;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;KAC7C,CAAC;IAEF;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;CACH;AAOD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAM7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,GAAG,SAAS,CAErF;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC;;OAEG;WACU,MAAM,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAmT5E"}
|