@frontmcp/sdk 0.6.0 → 0.6.2
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/{src/auth → auth}/instances/instance.local-primary-auth.d.ts +1 -1
- package/{src/auth → auth}/instances/instance.remote-primary-auth.d.ts +1 -1
- package/{src/auth → auth}/session/index.d.ts +1 -0
- package/auth/session/vercel-kv-session.store.d.ts +96 -0
- package/{src/common → common}/interfaces/internal/primary-auth-provider.interface.d.ts +1 -4
- package/{src/common → common}/metadata/front-mcp.metadata.d.ts +1779 -67
- package/{src/common → common}/metadata/prompt.metadata.d.ts +4 -0
- package/{src/common → common}/metadata/resource.metadata.d.ts +8 -0
- package/{src/common → common}/metadata/tool-ui.metadata.d.ts +2 -2
- package/{src/common → common}/metadata/tool.metadata.d.ts +4 -0
- package/{src/common → common}/schemas/http-output.schema.d.ts +24 -6
- package/common/types/options/auth/app-auth.schema.d.ts +275 -0
- package/common/types/options/auth/auth.interfaces.d.ts +461 -0
- package/common/types/options/auth/auth.schema.d.ts +284 -0
- package/common/types/options/auth/auth.utils.d.ts +32 -0
- package/common/types/options/auth/index.d.ts +16 -0
- package/common/types/options/auth/orchestrated.schema.d.ts +381 -0
- package/common/types/options/auth/public.schema.d.ts +42 -0
- package/common/types/options/auth/shared.schemas.d.ts +120 -0
- package/common/types/options/auth/transparent.schema.d.ts +56 -0
- package/common/types/options/auth/transport.deprecated.d.ts +63 -0
- package/{src/common → common}/types/options/index.d.ts +1 -1
- package/common/types/options/redis.options.d.ts +190 -0
- package/{src/common → common}/types/options/server-info.options.d.ts +4 -0
- package/{src/common → common}/types/options/transport.options.d.ts +74 -5
- package/{src/common → common}/utils/decide-request-intent.utils.d.ts +6 -7
- package/common/utils/global-config.utils.d.ts +36 -0
- package/{src/common → common}/utils/index.d.ts +1 -0
- package/{src/completion → completion}/flows/complete.flow.d.ts +6 -8
- package/{src/errors → errors}/index.d.ts +1 -1
- package/{src/errors → errors}/mcp.error.d.ts +9 -0
- package/esm/index.mjs +22664 -0
- package/esm/mcp-apps/index.mjs +723 -0
- package/esm/package.json +81 -0
- package/{src/front-mcp → front-mcp}/front-mcp.providers.d.ts +246 -38
- package/front-mcp/index.d.ts +2 -0
- package/{src/index.d.ts → index.d.ts} +1 -1
- package/index.js +22957 -0
- package/logger/logger.tokens.d.ts +1 -0
- package/{src/logging → logging}/flows/set-level.flow.d.ts +6 -8
- package/mcp-apps/index.js +799 -0
- package/package.json +37 -17
- package/{src/prompt → prompt}/flows/get-prompt.flow.d.ts +14 -8
- package/{src/prompt → prompt}/flows/prompts-list.flow.d.ts +8 -7
- package/{src/resource → resource}/flows/read-resource.flow.d.ts +8 -9
- package/{src/resource → resource}/flows/resource-templates-list.flow.d.ts +8 -7
- package/{src/resource → resource}/flows/resources-list.flow.d.ts +8 -7
- package/{src/resource → resource}/flows/subscribe-resource.flow.d.ts +6 -8
- package/{src/resource → resource}/flows/unsubscribe-resource.flow.d.ts +6 -8
- package/store/adapters/store.vercel-kv.adapter.d.ts +86 -0
- package/{src/store → store}/index.d.ts +2 -0
- package/store/store.factory.d.ts +86 -0
- package/{src/tool → tool}/flows/call-tool.flow.d.ts +18 -9
- package/{src/tool → tool}/flows/tools-list.flow.d.ts +9 -8
- package/{src/tool → tool}/ui/index.d.ts +4 -4
- package/{src/tool → tool}/ui/platform-adapters.d.ts +2 -2
- package/{src/tool → tool}/ui/template-helpers.d.ts +5 -7
- package/{src/tool → tool}/ui/ui-resource.handler.d.ts +1 -1
- package/{src/transport → transport}/mcp-handlers/complete-request.handler.d.ts +4 -15
- package/{src/transport → transport}/mcp-handlers/get-prompt-request.handler.d.ts +5 -15
- package/{src/transport → transport}/mcp-handlers/index.d.ts +67 -195
- package/{src/transport → transport}/mcp-handlers/list-prompts-request.handler.d.ts +5 -15
- package/{src/transport → transport}/mcp-handlers/list-resource-templates-request.handler.d.ts +5 -15
- package/{src/transport → transport}/mcp-handlers/list-resources-request.handler.d.ts +5 -15
- package/{src/transport → transport}/mcp-handlers/list-tools-request.handler.d.ts +5 -15
- package/{src/transport → transport}/mcp-handlers/logging-set-level-request.handler.d.ts +3 -14
- package/{src/transport → transport}/mcp-handlers/read-resource-request.handler.d.ts +4 -15
- package/{src/transport → transport}/mcp-handlers/subscribe-request.handler.d.ts +3 -14
- package/{src/transport → transport}/mcp-handlers/unsubscribe-request.handler.d.ts +3 -14
- package/{src/transport → transport}/transport.registry.d.ts +5 -1
- package/README.md +0 -460
- package/src/adapter/adapter.instance.js +0 -70
- package/src/adapter/adapter.instance.js.map +0 -1
- package/src/adapter/adapter.regsitry.js +0 -54
- package/src/adapter/adapter.regsitry.js.map +0 -1
- package/src/adapter/adapter.utils.js +0 -83
- package/src/adapter/adapter.utils.js.map +0 -1
- package/src/app/app.registry.js +0 -66
- package/src/app/app.registry.js.map +0 -1
- package/src/app/app.utils.js +0 -58
- package/src/app/app.utils.js.map +0 -1
- package/src/app/instances/app.local.instance.js +0 -67
- package/src/app/instances/app.local.instance.js.map +0 -1
- package/src/app/instances/app.remote.instance.js +0 -36
- package/src/app/instances/app.remote.instance.js.map +0 -1
- package/src/app/instances/index.js +0 -6
- package/src/app/instances/index.js.map +0 -1
- package/src/auth/auth.registry.js +0 -219
- package/src/auth/auth.registry.js.map +0 -1
- package/src/auth/auth.utils.js +0 -84
- package/src/auth/auth.utils.js.map +0 -1
- package/src/auth/authorization/authorization.class.js +0 -217
- package/src/auth/authorization/authorization.class.js.map +0 -1
- package/src/auth/authorization/authorization.types.js +0 -79
- package/src/auth/authorization/authorization.types.js.map +0 -1
- package/src/auth/authorization/index.js +0 -19
- package/src/auth/authorization/index.js.map +0 -1
- package/src/auth/authorization/orchestrated.authorization.js +0 -306
- package/src/auth/authorization/orchestrated.authorization.js.map +0 -1
- package/src/auth/authorization/public.authorization.js +0 -132
- package/src/auth/authorization/public.authorization.js.map +0 -1
- package/src/auth/authorization/transparent.authorization.js +0 -147
- package/src/auth/authorization/transparent.authorization.js.map +0 -1
- package/src/auth/consent/consent.types.js +0 -119
- package/src/auth/consent/consent.types.js.map +0 -1
- package/src/auth/consent/index.js +0 -13
- package/src/auth/consent/index.js.map +0 -1
- package/src/auth/detection/auth-provider-detection.js +0 -230
- package/src/auth/detection/auth-provider-detection.js.map +0 -1
- package/src/auth/detection/index.js +0 -15
- package/src/auth/detection/index.js.map +0 -1
- package/src/auth/flows/auth.verify.flow.js +0 -379
- package/src/auth/flows/auth.verify.flow.js.map +0 -1
- package/src/auth/flows/oauth.authorize.flow.js +0 -822
- package/src/auth/flows/oauth.authorize.flow.js.map +0 -1
- package/src/auth/flows/oauth.callback.flow.js +0 -357
- package/src/auth/flows/oauth.callback.flow.js.map +0 -1
- package/src/auth/flows/oauth.register.flow.js +0 -201
- package/src/auth/flows/oauth.register.flow.js.map +0 -1
- package/src/auth/flows/oauth.token.flow.js +0 -319
- package/src/auth/flows/oauth.token.flow.js.map +0 -1
- package/src/auth/flows/session.verify.flow.js +0 -304
- package/src/auth/flows/session.verify.flow.js.map +0 -1
- package/src/auth/flows/well-known.jwks.flow.js +0 -89
- package/src/auth/flows/well-known.jwks.flow.js.map +0 -1
- package/src/auth/flows/well-known.oauth-authorization-server.flow.js +0 -122
- package/src/auth/flows/well-known.oauth-authorization-server.flow.js.map +0 -1
- package/src/auth/flows/well-known.prm.flow.js +0 -106
- package/src/auth/flows/well-known.prm.flow.js.map +0 -1
- package/src/auth/instances/instance.local-primary-auth.js +0 -308
- package/src/auth/instances/instance.local-primary-auth.js.map +0 -1
- package/src/auth/instances/instance.remote-primary-auth.js +0 -49
- package/src/auth/instances/instance.remote-primary-auth.js.map +0 -1
- package/src/auth/jwks/dev-key-persistence.js +0 -219
- package/src/auth/jwks/dev-key-persistence.js.map +0 -1
- package/src/auth/jwks/index.js +0 -7
- package/src/auth/jwks/index.js.map +0 -1
- package/src/auth/jwks/jwks.service.js +0 -303
- package/src/auth/jwks/jwks.service.js.map +0 -1
- package/src/auth/jwks/jwks.types.js +0 -3
- package/src/auth/jwks/jwks.types.js.map +0 -1
- package/src/auth/jwks/jwks.utils.js +0 -32
- package/src/auth/jwks/jwks.utils.js.map +0 -1
- package/src/auth/machine-id.js +0 -32
- package/src/auth/machine-id.js.map +0 -1
- package/src/auth/oauth/flows/oauth.authorize.flow.js +0 -33
- package/src/auth/oauth/flows/oauth.authorize.flow.js.map +0 -1
- package/src/auth/oauth/flows/oauth.device-authorization.flow.js +0 -48
- package/src/auth/oauth/flows/oauth.device-authorization.flow.js.map +0 -1
- package/src/auth/oauth/flows/oauth.introspect.flow.js +0 -28
- package/src/auth/oauth/flows/oauth.introspect.flow.js.map +0 -1
- package/src/auth/oauth/flows/oauth.par.flow.js +0 -29
- package/src/auth/oauth/flows/oauth.par.flow.js.map +0 -1
- package/src/auth/oauth/flows/oauth.revoke.flow.js +0 -27
- package/src/auth/oauth/flows/oauth.revoke.flow.js.map +0 -1
- package/src/auth/oauth/flows/oauth.token.flow.js +0 -59
- package/src/auth/oauth/flows/oauth.token.flow.js.map +0 -1
- package/src/auth/oauth/flows/oauth.userinfo.flow.js +0 -24
- package/src/auth/oauth/flows/oauth.userinfo.flow.js.map +0 -1
- package/src/auth/oauth/flows/oidc.logout.flow.js +0 -20
- package/src/auth/oauth/flows/oidc.logout.flow.js.map +0 -1
- package/src/auth/session/authorization-vault.js +0 -817
- package/src/auth/session/authorization-vault.js.map +0 -1
- package/src/auth/session/authorization.store.js +0 -323
- package/src/auth/session/authorization.store.js.map +0 -1
- package/src/auth/session/encrypted-authorization-vault.js +0 -493
- package/src/auth/session/encrypted-authorization-vault.js.map +0 -1
- package/src/auth/session/index.js +0 -16
- package/src/auth/session/index.js.map +0 -1
- package/src/auth/session/record/session.base.js +0 -125
- package/src/auth/session/record/session.base.js.map +0 -1
- package/src/auth/session/record/session.stateful.js +0 -55
- package/src/auth/session/record/session.stateful.js.map +0 -1
- package/src/auth/session/record/session.stateless.js +0 -32
- package/src/auth/session/record/session.stateless.js.map +0 -1
- package/src/auth/session/record/session.transparent.js +0 -22
- package/src/auth/session/record/session.transparent.js.map +0 -1
- package/src/auth/session/redis-session.store.js +0 -204
- package/src/auth/session/redis-session.store.js.map +0 -1
- package/src/auth/session/session.crypto.js +0 -47
- package/src/auth/session/session.crypto.js.map +0 -1
- package/src/auth/session/session.schema.js +0 -13
- package/src/auth/session/session.schema.js.map +0 -1
- package/src/auth/session/session.service.js +0 -105
- package/src/auth/session/session.service.js.map +0 -1
- package/src/auth/session/session.transport.js +0 -20
- package/src/auth/session/session.transport.js.map +0 -1
- package/src/auth/session/session.types.js +0 -4
- package/src/auth/session/session.types.js.map +0 -1
- package/src/auth/session/token.refresh.js +0 -63
- package/src/auth/session/token.refresh.js.map +0 -1
- package/src/auth/session/token.store.js +0 -53
- package/src/auth/session/token.store.js.map +0 -1
- package/src/auth/session/token.vault.js +0 -54
- package/src/auth/session/token.vault.js.map +0 -1
- package/src/auth/session/transport-session.manager.js +0 -298
- package/src/auth/session/transport-session.manager.js.map +0 -1
- package/src/auth/session/transport-session.types.js +0 -111
- package/src/auth/session/transport-session.types.js.map +0 -1
- package/src/auth/session/utils/auth-token.utils.js +0 -57
- package/src/auth/session/utils/auth-token.utils.js.map +0 -1
- package/src/auth/session/utils/session-id.utils.js +0 -217
- package/src/auth/session/utils/session-id.utils.js.map +0 -1
- package/src/auth/session/utils/tiny-ttl-cache.js +0 -26
- package/src/auth/session/utils/tiny-ttl-cache.js.map +0 -1
- package/src/auth/session/vault-encryption.js +0 -263
- package/src/auth/session/vault-encryption.js.map +0 -1
- package/src/auth/ui/base-layout.js +0 -279
- package/src/auth/ui/base-layout.js.map +0 -1
- package/src/auth/ui/index.js +0 -34
- package/src/auth/ui/index.js.map +0 -1
- package/src/auth/ui/templates.js +0 -426
- package/src/auth/ui/templates.js.map +0 -1
- package/src/auth/utils/audience.validator.js +0 -196
- package/src/auth/utils/audience.validator.js.map +0 -1
- package/src/auth/utils/index.js +0 -7
- package/src/auth/utils/index.js.map +0 -1
- package/src/auth/utils/www-authenticate.utils.js +0 -183
- package/src/auth/utils/www-authenticate.utils.js.map +0 -1
- package/src/common/common.schema.js +0 -35
- package/src/common/common.schema.js.map +0 -1
- package/src/common/constants.js +0 -13
- package/src/common/constants.js.map +0 -1
- package/src/common/decorators/adapter.decorator.js +0 -20
- package/src/common/decorators/adapter.decorator.js.map +0 -1
- package/src/common/decorators/app.decorator.js +0 -44
- package/src/common/decorators/app.decorator.js.map +0 -1
- package/src/common/decorators/auth-provider.decorator.js +0 -20
- package/src/common/decorators/auth-provider.decorator.js.map +0 -1
- package/src/common/decorators/decorator-utils.js +0 -195
- package/src/common/decorators/decorator-utils.js.map +0 -1
- package/src/common/decorators/flow.decorator.js +0 -19
- package/src/common/decorators/flow.decorator.js.map +0 -1
- package/src/common/decorators/front-mcp.decorator.js +0 -67
- package/src/common/decorators/front-mcp.decorator.js.map +0 -1
- package/src/common/decorators/hook.decorator.js +0 -178
- package/src/common/decorators/hook.decorator.js.map +0 -1
- package/src/common/decorators/index.js +0 -16
- package/src/common/decorators/index.js.map +0 -1
- package/src/common/decorators/logger.decorator.js +0 -20
- package/src/common/decorators/logger.decorator.js.map +0 -1
- package/src/common/decorators/plugin.decorator.js +0 -39
- package/src/common/decorators/plugin.decorator.js.map +0 -1
- package/src/common/decorators/prompt.decorator.js +0 -38
- package/src/common/decorators/prompt.decorator.js.map +0 -1
- package/src/common/decorators/provider.decorator.js +0 -20
- package/src/common/decorators/provider.decorator.js.map +0 -1
- package/src/common/decorators/resource.decorator.js +0 -94
- package/src/common/decorators/resource.decorator.js.map +0 -1
- package/src/common/decorators/tool.decorator.js +0 -45
- package/src/common/decorators/tool.decorator.js.map +0 -1
- package/src/common/dynamic/dynamic.adapter.js +0 -28
- package/src/common/dynamic/dynamic.adapter.js.map +0 -1
- package/src/common/dynamic/dynamic.plugin.js +0 -42
- package/src/common/dynamic/dynamic.plugin.js.map +0 -1
- package/src/common/dynamic/dynamic.utils.js +0 -27
- package/src/common/dynamic/dynamic.utils.js.map +0 -1
- package/src/common/dynamic/index.js +0 -6
- package/src/common/dynamic/index.js.map +0 -1
- package/src/common/entries/adapter.entry.js +0 -8
- package/src/common/entries/adapter.entry.js.map +0 -1
- package/src/common/entries/app.entry.js +0 -9
- package/src/common/entries/app.entry.js.map +0 -1
- package/src/common/entries/auth-provider.entry.js +0 -8
- package/src/common/entries/auth-provider.entry.js.map +0 -1
- package/src/common/entries/base.entry.js +0 -17
- package/src/common/entries/base.entry.js.map +0 -1
- package/src/common/entries/flow.entry.js +0 -21
- package/src/common/entries/flow.entry.js.map +0 -1
- package/src/common/entries/hook.entry.js +0 -20
- package/src/common/entries/hook.entry.js.map +0 -1
- package/src/common/entries/index.js +0 -17
- package/src/common/entries/index.js.map +0 -1
- package/src/common/entries/logger.entry.js +0 -8
- package/src/common/entries/logger.entry.js.map +0 -1
- package/src/common/entries/plugin.entry.js +0 -8
- package/src/common/entries/plugin.entry.js.map +0 -1
- package/src/common/entries/prompt.entry.js +0 -18
- package/src/common/entries/prompt.entry.js.map +0 -1
- package/src/common/entries/provider.entry.js +0 -8
- package/src/common/entries/provider.entry.js.map +0 -1
- package/src/common/entries/resource.entry.js +0 -35
- package/src/common/entries/resource.entry.js.map +0 -1
- package/src/common/entries/scope.entry.js +0 -14
- package/src/common/entries/scope.entry.js.map +0 -1
- package/src/common/entries/tool.entry.js +0 -31
- package/src/common/entries/tool.entry.js.map +0 -1
- package/src/common/flow/flow.utils.js +0 -96
- package/src/common/flow/flow.utils.js.map +0 -1
- package/src/common/index.js +0 -20
- package/src/common/index.js.map +0 -1
- package/src/common/interfaces/adapter.interface.js +0 -3
- package/src/common/interfaces/adapter.interface.js.map +0 -1
- package/src/common/interfaces/app.interface.js +0 -3
- package/src/common/interfaces/app.interface.js.map +0 -1
- package/src/common/interfaces/auth-hook.interface.js +0 -135
- package/src/common/interfaces/auth-hook.interface.js.map +0 -1
- package/src/common/interfaces/auth-provider.interface.js +0 -18
- package/src/common/interfaces/auth-provider.interface.js.map +0 -1
- package/src/common/interfaces/base.interface.js +0 -3
- package/src/common/interfaces/base.interface.js.map +0 -1
- package/src/common/interfaces/execution-context.interface.js +0 -166
- package/src/common/interfaces/execution-context.interface.js.map +0 -1
- package/src/common/interfaces/flow.interface.js +0 -95
- package/src/common/interfaces/flow.interface.js.map +0 -1
- package/src/common/interfaces/front-mcp.interface.js +0 -3
- package/src/common/interfaces/front-mcp.interface.js.map +0 -1
- package/src/common/interfaces/hook.interface.js +0 -3
- package/src/common/interfaces/hook.interface.js.map +0 -1
- package/src/common/interfaces/index.js +0 -21
- package/src/common/interfaces/index.js.map +0 -1
- package/src/common/interfaces/internal/flow.utils.js +0 -83
- package/src/common/interfaces/internal/flow.utils.js.map +0 -1
- package/src/common/interfaces/internal/index.js +0 -7
- package/src/common/interfaces/internal/index.js.map +0 -1
- package/src/common/interfaces/internal/primary-auth-provider.interface.js +0 -81
- package/src/common/interfaces/internal/primary-auth-provider.interface.js.map +0 -1
- package/src/common/interfaces/internal/registry.interface.js +0 -3
- package/src/common/interfaces/internal/registry.interface.js.map +0 -1
- package/src/common/interfaces/logger.interface.js +0 -10
- package/src/common/interfaces/logger.interface.js.map +0 -1
- package/src/common/interfaces/plugin.interface.js +0 -3
- package/src/common/interfaces/plugin.interface.js.map +0 -1
- package/src/common/interfaces/prompt.interface.js +0 -81
- package/src/common/interfaces/prompt.interface.js.map +0 -1
- package/src/common/interfaces/provider.interface.js +0 -18
- package/src/common/interfaces/provider.interface.js.map +0 -1
- package/src/common/interfaces/resource.interface.js +0 -56
- package/src/common/interfaces/resource.interface.js.map +0 -1
- package/src/common/interfaces/scope.interface.js +0 -3
- package/src/common/interfaces/scope.interface.js.map +0 -1
- package/src/common/interfaces/server.interface.js +0 -18
- package/src/common/interfaces/server.interface.js.map +0 -1
- package/src/common/interfaces/session-hook.interface.js +0 -140
- package/src/common/interfaces/session-hook.interface.js.map +0 -1
- package/src/common/interfaces/tool-hook.interface.js +0 -92
- package/src/common/interfaces/tool-hook.interface.js.map +0 -1
- package/src/common/interfaces/tool.interface.js +0 -117
- package/src/common/interfaces/tool.interface.js.map +0 -1
- package/src/common/metadata/adapter.metadata.js +0 -10
- package/src/common/metadata/adapter.metadata.js.map +0 -1
- package/src/common/metadata/app.metadata.js +0 -30
- package/src/common/metadata/app.metadata.js.map +0 -1
- package/src/common/metadata/auth-provider.metadata.js +0 -19
- package/src/common/metadata/auth-provider.metadata.js.map +0 -1
- package/src/common/metadata/flow.metadata.js +0 -15
- package/src/common/metadata/flow.metadata.js.map +0 -1
- package/src/common/metadata/front-mcp.metadata.js +0 -29
- package/src/common/metadata/front-mcp.metadata.js.map +0 -1
- package/src/common/metadata/hook.metadata.js +0 -3
- package/src/common/metadata/hook.metadata.js.map +0 -1
- package/src/common/metadata/index.js +0 -17
- package/src/common/metadata/index.js.map +0 -1
- package/src/common/metadata/logger.metadata.js +0 -10
- package/src/common/metadata/logger.metadata.js.map +0 -1
- package/src/common/metadata/plugin.metadata.js +0 -18
- package/src/common/metadata/plugin.metadata.js.map +0 -1
- package/src/common/metadata/prompt.metadata.js +0 -27
- package/src/common/metadata/prompt.metadata.js.map +0 -1
- package/src/common/metadata/provider.metadata.js +0 -36
- package/src/common/metadata/provider.metadata.js.map +0 -1
- package/src/common/metadata/resource.metadata.js +0 -31
- package/src/common/metadata/resource.metadata.js.map +0 -1
- package/src/common/metadata/tool-ui.metadata.js +0 -12
- package/src/common/metadata/tool-ui.metadata.js.map +0 -1
- package/src/common/metadata/tool.metadata.js +0 -55
- package/src/common/metadata/tool.metadata.js.map +0 -1
- package/src/common/migrate/auth-transport.migrate.js +0 -140
- package/src/common/migrate/auth-transport.migrate.js.map +0 -1
- package/src/common/migrate/index.js +0 -6
- package/src/common/migrate/index.js.map +0 -1
- package/src/common/providers/base-config.provider.js +0 -128
- package/src/common/providers/base-config.provider.js.map +0 -1
- package/src/common/records/adapter.record.js +0 -11
- package/src/common/records/adapter.record.js.map +0 -1
- package/src/common/records/app.record.js +0 -9
- package/src/common/records/app.record.js.map +0 -1
- package/src/common/records/auth-provider.record.js +0 -12
- package/src/common/records/auth-provider.record.js.map +0 -1
- package/src/common/records/flow.record.js +0 -8
- package/src/common/records/flow.record.js.map +0 -1
- package/src/common/records/hook.record.js +0 -8
- package/src/common/records/hook.record.js.map +0 -1
- package/src/common/records/index.js +0 -16
- package/src/common/records/index.js.map +0 -1
- package/src/common/records/logger.record.js +0 -8
- package/src/common/records/logger.record.js.map +0 -1
- package/src/common/records/plugin.record.js +0 -11
- package/src/common/records/plugin.record.js.map +0 -1
- package/src/common/records/prompt.record.js +0 -9
- package/src/common/records/prompt.record.js.map +0 -1
- package/src/common/records/provider.record.js +0 -14
- package/src/common/records/provider.record.js.map +0 -1
- package/src/common/records/resource.record.js +0 -20
- package/src/common/records/resource.record.js.map +0 -1
- package/src/common/records/scope.record.js +0 -9
- package/src/common/records/scope.record.js.map +0 -1
- package/src/common/records/tool.record.js +0 -9
- package/src/common/records/tool.record.js.map +0 -1
- package/src/common/schemas/annotated-class.schema.js +0 -109
- package/src/common/schemas/annotated-class.schema.js.map +0 -1
- package/src/common/schemas/http-input.schema.js +0 -13
- package/src/common/schemas/http-input.schema.js.map +0 -1
- package/src/common/schemas/http-output.schema.js +0 -321
- package/src/common/schemas/http-output.schema.js.map +0 -1
- package/src/common/schemas/index.js +0 -8
- package/src/common/schemas/index.js.map +0 -1
- package/src/common/schemas/session-header.schema.js +0 -42
- package/src/common/schemas/session-header.schema.js.map +0 -1
- package/src/common/tokens/adapter.tokens.js +0 -11
- package/src/common/tokens/adapter.tokens.js.map +0 -1
- package/src/common/tokens/app.tokens.js +0 -30
- package/src/common/tokens/app.tokens.js.map +0 -1
- package/src/common/tokens/auth-provider.tokens.js +0 -12
- package/src/common/tokens/auth-provider.tokens.js.map +0 -1
- package/src/common/tokens/base.tokens.js +0 -9
- package/src/common/tokens/base.tokens.js.map +0 -1
- package/src/common/tokens/flow-hook.tokens.js +0 -9
- package/src/common/tokens/flow-hook.tokens.js.map +0 -1
- package/src/common/tokens/flow.tokens.js +0 -16
- package/src/common/tokens/flow.tokens.js.map +0 -1
- package/src/common/tokens/front-mcp.tokens.js +0 -24
- package/src/common/tokens/front-mcp.tokens.js.map +0 -1
- package/src/common/tokens/index.js +0 -17
- package/src/common/tokens/index.js.map +0 -1
- package/src/common/tokens/logger.tokens.js +0 -11
- package/src/common/tokens/logger.tokens.js.map +0 -1
- package/src/common/tokens/plugin.tokens.js +0 -18
- package/src/common/tokens/plugin.tokens.js.map +0 -1
- package/src/common/tokens/prompt.tokens.js +0 -14
- package/src/common/tokens/prompt.tokens.js.map +0 -1
- package/src/common/tokens/provider.tokens.js +0 -12
- package/src/common/tokens/provider.tokens.js.map +0 -1
- package/src/common/tokens/resource.tokens.js +0 -28
- package/src/common/tokens/resource.tokens.js.map +0 -1
- package/src/common/tokens/server.tokens.js +0 -11
- package/src/common/tokens/server.tokens.js.map +0 -1
- package/src/common/tokens/tool.tokens.js +0 -21
- package/src/common/tokens/tool.tokens.js.map +0 -1
- package/src/common/types/auth/index.js +0 -6
- package/src/common/types/auth/index.js.map +0 -1
- package/src/common/types/auth/jwt.types.js +0 -36
- package/src/common/types/auth/jwt.types.js.map +0 -1
- package/src/common/types/auth/session.types.js +0 -53
- package/src/common/types/auth/session.types.js.map +0 -1
- package/src/common/types/common.types.js +0 -3
- package/src/common/types/common.types.js.map +0 -1
- package/src/common/types/index.js +0 -7
- package/src/common/types/index.js.map +0 -1
- package/src/common/types/options/auth.options.d.ts +0 -1266
- package/src/common/types/options/auth.options.js +0 -560
- package/src/common/types/options/auth.options.js.map +0 -1
- package/src/common/types/options/http.options.js +0 -10
- package/src/common/types/options/http.options.js.map +0 -1
- package/src/common/types/options/index.js +0 -11
- package/src/common/types/options/index.js.map +0 -1
- package/src/common/types/options/logging.options.js +0 -33
- package/src/common/types/options/logging.options.js.map +0 -1
- package/src/common/types/options/redis.options.d.ts +0 -22
- package/src/common/types/options/redis.options.js +0 -45
- package/src/common/types/options/redis.options.js.map +0 -1
- package/src/common/types/options/server-info.options.js +0 -13
- package/src/common/types/options/server-info.options.js.map +0 -1
- package/src/common/types/options/session.options.js +0 -32
- package/src/common/types/options/session.options.js.map +0 -1
- package/src/common/types/options/transport.options.js +0 -121
- package/src/common/types/options/transport.options.js.map +0 -1
- package/src/common/utils/decide-request-intent.utils.js +0 -391
- package/src/common/utils/decide-request-intent.utils.js.map +0 -1
- package/src/common/utils/index.js +0 -6
- package/src/common/utils/index.js.map +0 -1
- package/src/common/utils/path.utils.js +0 -66
- package/src/common/utils/path.utils.js.map +0 -1
- package/src/completion/flows/complete.flow.js +0 -199
- package/src/completion/flows/complete.flow.js.map +0 -1
- package/src/context/frontmcp-context-storage.js +0 -183
- package/src/context/frontmcp-context-storage.js.map +0 -1
- package/src/context/frontmcp-context.js +0 -360
- package/src/context/frontmcp-context.js.map +0 -1
- package/src/context/frontmcp-context.provider.js +0 -61
- package/src/context/frontmcp-context.provider.js.map +0 -1
- package/src/context/index.js +0 -64
- package/src/context/index.js.map +0 -1
- package/src/context/request-context-storage.js +0 -183
- package/src/context/request-context-storage.js.map +0 -1
- package/src/context/request-context.js +0 -209
- package/src/context/request-context.js.map +0 -1
- package/src/context/request-context.provider.js +0 -51
- package/src/context/request-context.provider.js.map +0 -1
- package/src/context/session-key.provider.js +0 -65
- package/src/context/session-key.provider.js.map +0 -1
- package/src/context/trace-context.js +0 -142
- package/src/context/trace-context.js.map +0 -1
- package/src/errors/authorization-required.error.js +0 -274
- package/src/errors/authorization-required.error.js.map +0 -1
- package/src/errors/error-handler.js +0 -107
- package/src/errors/error-handler.js.map +0 -1
- package/src/errors/index.js +0 -44
- package/src/errors/index.js.map +0 -1
- package/src/errors/mcp.error.js +0 -398
- package/src/errors/mcp.error.js.map +0 -1
- package/src/exceptions/mcp-exceptions/session-missing.exception.js +0 -11
- package/src/exceptions/mcp-exceptions/session-missing.exception.js.map +0 -1
- package/src/exceptions/mcp-exceptions/unsupported-client-version.exception.js +0 -15
- package/src/exceptions/mcp-exceptions/unsupported-client-version.exception.js.map +0 -1
- package/src/flows/flow.instance.js +0 -420
- package/src/flows/flow.instance.js.map +0 -1
- package/src/flows/flow.registry.js +0 -121
- package/src/flows/flow.registry.js.map +0 -1
- package/src/flows/flow.stages.js +0 -113
- package/src/flows/flow.stages.js.map +0 -1
- package/src/flows/flow.utils.js +0 -36
- package/src/flows/flow.utils.js.map +0 -1
- package/src/front-mcp/front-mcp.js +0 -63
- package/src/front-mcp/front-mcp.js.map +0 -1
- package/src/front-mcp/front-mcp.providers.js +0 -29
- package/src/front-mcp/front-mcp.providers.js.map +0 -1
- package/src/front-mcp/front-mcp.tokens.js +0 -5
- package/src/front-mcp/front-mcp.tokens.js.map +0 -1
- package/src/front-mcp/index.d.ts +0 -1
- package/src/front-mcp/index.js +0 -5
- package/src/front-mcp/index.js.map +0 -1
- package/src/front-mcp/serverless-handler.js +0 -61
- package/src/front-mcp/serverless-handler.js.map +0 -1
- package/src/hooks/hook.instance.js +0 -26
- package/src/hooks/hook.instance.js.map +0 -1
- package/src/hooks/hook.registry.js +0 -152
- package/src/hooks/hook.registry.js.map +0 -1
- package/src/hooks/hooks.utils.js +0 -34
- package/src/hooks/hooks.utils.js.map +0 -1
- package/src/index.js +0 -36
- package/src/index.js.map +0 -1
- package/src/logger/instances/instance.console-logger.js +0 -75
- package/src/logger/instances/instance.console-logger.js.map +0 -1
- package/src/logger/instances/instance.logger.js +0 -77
- package/src/logger/instances/instance.logger.js.map +0 -1
- package/src/logger/logger.registry.js +0 -96
- package/src/logger/logger.registry.js.map +0 -1
- package/src/logger/logger.tokens.js +0 -3
- package/src/logger/logger.tokens.js.map +0 -1
- package/src/logger/logger.types.js +0 -8
- package/src/logger/logger.types.js.map +0 -1
- package/src/logger/logger.utils.js +0 -42
- package/src/logger/logger.utils.js.map +0 -1
- package/src/logging/flows/set-level.flow.js +0 -108
- package/src/logging/flows/set-level.flow.js.map +0 -1
- package/src/mcp-apps/csp.js +0 -267
- package/src/mcp-apps/csp.js.map +0 -1
- package/src/mcp-apps/index.js +0 -91
- package/src/mcp-apps/index.js.map +0 -1
- package/src/mcp-apps/schemas.js +0 -345
- package/src/mcp-apps/schemas.js.map +0 -1
- package/src/mcp-apps/template.js +0 -419
- package/src/mcp-apps/template.js.map +0 -1
- package/src/mcp-apps/types.js +0 -59
- package/src/mcp-apps/types.js.map +0 -1
- package/src/notification/index.js +0 -13
- package/src/notification/index.js.map +0 -1
- package/src/notification/notification.service.js +0 -731
- package/src/notification/notification.service.js.map +0 -1
- package/src/plugin/plugin.registry.js +0 -152
- package/src/plugin/plugin.registry.js.map +0 -1
- package/src/plugin/plugin.utils.js +0 -88
- package/src/plugin/plugin.utils.js.map +0 -1
- package/src/prompt/flows/get-prompt.flow.js +0 -214
- package/src/prompt/flows/get-prompt.flow.js.map +0 -1
- package/src/prompt/flows/prompts-list.flow.js +0 -176
- package/src/prompt/flows/prompts-list.flow.js.map +0 -1
- package/src/prompt/index.js +0 -17
- package/src/prompt/index.js.map +0 -1
- package/src/prompt/prompt.events.js +0 -25
- package/src/prompt/prompt.events.js.map +0 -1
- package/src/prompt/prompt.instance.js +0 -120
- package/src/prompt/prompt.instance.js.map +0 -1
- package/src/prompt/prompt.registry.js +0 -380
- package/src/prompt/prompt.registry.js.map +0 -1
- package/src/prompt/prompt.types.js +0 -11
- package/src/prompt/prompt.types.js.map +0 -1
- package/src/prompt/prompt.utils.js +0 -136
- package/src/prompt/prompt.utils.js.map +0 -1
- package/src/provider/provider.registry.js +0 -868
- package/src/provider/provider.registry.js.map +0 -1
- package/src/provider/provider.types.js +0 -3
- package/src/provider/provider.types.js.map +0 -1
- package/src/provider/provider.utils.js +0 -103
- package/src/provider/provider.utils.js.map +0 -1
- package/src/regsitry/index.js +0 -5
- package/src/regsitry/index.js.map +0 -1
- package/src/regsitry/registry.base.js +0 -32
- package/src/regsitry/registry.base.js.map +0 -1
- package/src/resource/flows/read-resource.flow.js +0 -270
- package/src/resource/flows/read-resource.flow.js.map +0 -1
- package/src/resource/flows/resource-templates-list.flow.js +0 -191
- package/src/resource/flows/resource-templates-list.flow.js.map +0 -1
- package/src/resource/flows/resources-list.flow.js +0 -196
- package/src/resource/flows/resources-list.flow.js.map +0 -1
- package/src/resource/flows/subscribe-resource.flow.js +0 -123
- package/src/resource/flows/subscribe-resource.flow.js.map +0 -1
- package/src/resource/flows/unsubscribe-resource.flow.js +0 -107
- package/src/resource/flows/unsubscribe-resource.flow.js.map +0 -1
- package/src/resource/index.js +0 -20
- package/src/resource/index.js.map +0 -1
- package/src/resource/resource.events.js +0 -17
- package/src/resource/resource.events.js.map +0 -1
- package/src/resource/resource.instance.js +0 -163
- package/src/resource/resource.instance.js.map +0 -1
- package/src/resource/resource.registry.js +0 -468
- package/src/resource/resource.registry.js.map +0 -1
- package/src/resource/resource.types.js +0 -11
- package/src/resource/resource.types.js.map +0 -1
- package/src/resource/resource.utils.js +0 -151
- package/src/resource/resource.utils.js.map +0 -1
- package/src/scope/flows/http.request.flow.js +0 -474
- package/src/scope/flows/http.request.flow.js.map +0 -1
- package/src/scope/index.js +0 -6
- package/src/scope/index.js.map +0 -1
- package/src/scope/scope.instance.js +0 -263
- package/src/scope/scope.instance.js.map +0 -1
- package/src/scope/scope.registry.js +0 -94
- package/src/scope/scope.registry.js.map +0 -1
- package/src/scope/scope.utils.js +0 -61
- package/src/scope/scope.utils.js.map +0 -1
- package/src/server/adapters/base.host.adapter.js +0 -8
- package/src/server/adapters/base.host.adapter.js.map +0 -1
- package/src/server/adapters/express.host.adapter.js +0 -70
- package/src/server/adapters/express.host.adapter.js.map +0 -1
- package/src/server/server.instance.js +0 -54
- package/src/server/server.instance.js.map +0 -1
- package/src/server/server.types.js +0 -3
- package/src/server/server.types.js.map +0 -1
- package/src/server/server.validation.js +0 -192
- package/src/server/server.validation.js.map +0 -1
- package/src/store/adapters/store.base.adapter.js +0 -16
- package/src/store/adapters/store.base.adapter.js.map +0 -1
- package/src/store/adapters/store.memory.adapter.js +0 -89
- package/src/store/adapters/store.memory.adapter.js.map +0 -1
- package/src/store/adapters/store.redis.adapter.js +0 -104
- package/src/store/adapters/store.redis.adapter.js.map +0 -1
- package/src/store/index.js +0 -12
- package/src/store/index.js.map +0 -1
- package/src/store/store.helpers.js +0 -67
- package/src/store/store.helpers.js.map +0 -1
- package/src/store/store.registry.js +0 -37
- package/src/store/store.registry.js.map +0 -1
- package/src/store/store.tokens.js +0 -7
- package/src/store/store.tokens.js.map +0 -1
- package/src/store/store.types.js +0 -11
- package/src/store/store.types.js.map +0 -1
- package/src/store/store.utils.js +0 -18
- package/src/store/store.utils.js.map +0 -1
- package/src/tool/flows/call-tool.flow.js +0 -616
- package/src/tool/flows/call-tool.flow.js.map +0 -1
- package/src/tool/flows/tools-list.flow.js +0 -328
- package/src/tool/flows/tools-list.flow.js.map +0 -1
- package/src/tool/tool.events.js +0 -16
- package/src/tool/tool.events.js.map +0 -1
- package/src/tool/tool.instance.js +0 -117
- package/src/tool/tool.instance.js.map +0 -1
- package/src/tool/tool.registry.js +0 -353
- package/src/tool/tool.registry.js.map +0 -1
- package/src/tool/tool.types.js +0 -10
- package/src/tool/tool.types.js.map +0 -1
- package/src/tool/tool.utils.js +0 -366
- package/src/tool/tool.utils.js.map +0 -1
- package/src/tool/ui/index.js +0 -63
- package/src/tool/ui/index.js.map +0 -1
- package/src/tool/ui/platform-adapters.js +0 -18
- package/src/tool/ui/platform-adapters.js.map +0 -1
- package/src/tool/ui/template-helpers.js +0 -112
- package/src/tool/ui/template-helpers.js.map +0 -1
- package/src/tool/ui/ui-resource-template.js +0 -64
- package/src/tool/ui/ui-resource-template.js.map +0 -1
- package/src/tool/ui/ui-resource.handler.js +0 -129
- package/src/tool/ui/ui-resource.handler.js.map +0 -1
- package/src/transport/adapters/transport.local.adapter.js +0 -148
- package/src/transport/adapters/transport.local.adapter.js.map +0 -1
- package/src/transport/adapters/transport.sse.adapter.js +0 -65
- package/src/transport/adapters/transport.sse.adapter.js.map +0 -1
- package/src/transport/adapters/transport.streamable-http.adapter.js +0 -112
- package/src/transport/adapters/transport.streamable-http.adapter.js.map +0 -1
- package/src/transport/flows/handle.sse.flow.js +0 -197
- package/src/transport/flows/handle.sse.flow.js.map +0 -1
- package/src/transport/flows/handle.stateless-http.flow.js +0 -102
- package/src/transport/flows/handle.stateless-http.flow.js.map +0 -1
- package/src/transport/flows/handle.streamable-http.flow.js +0 -315
- package/src/transport/flows/handle.streamable-http.flow.js.map +0 -1
- package/src/transport/legacy/legacy.sse.tranporter.js +0 -185
- package/src/transport/legacy/legacy.sse.tranporter.js.map +0 -1
- package/src/transport/mcp-handlers/Initialized-notification.hanlder.js +0 -14
- package/src/transport/mcp-handlers/Initialized-notification.hanlder.js.map +0 -1
- package/src/transport/mcp-handlers/call-tool-request.handler.js +0 -46
- package/src/transport/mcp-handlers/call-tool-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/complete-request.handler.js +0 -11
- package/src/transport/mcp-handlers/complete-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/get-prompt-request.handler.js +0 -11
- package/src/transport/mcp-handlers/get-prompt-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/index.js +0 -57
- package/src/transport/mcp-handlers/index.js.map +0 -1
- package/src/transport/mcp-handlers/initialize-request.handler.js +0 -109
- package/src/transport/mcp-handlers/initialize-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/list-prompts-request.handler.js +0 -11
- package/src/transport/mcp-handlers/list-prompts-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/list-resource-templates-request.handler.js +0 -12
- package/src/transport/mcp-handlers/list-resource-templates-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/list-resources-request.handler.js +0 -12
- package/src/transport/mcp-handlers/list-resources-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/list-tools-request.handler.js +0 -11
- package/src/transport/mcp-handlers/list-tools-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/logging-set-level-request.handler.js +0 -34
- package/src/transport/mcp-handlers/logging-set-level-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/mcp-handlers.types.js +0 -3
- package/src/transport/mcp-handlers/mcp-handlers.types.js.map +0 -1
- package/src/transport/mcp-handlers/read-resource-request.handler.js +0 -12
- package/src/transport/mcp-handlers/read-resource-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js +0 -26
- package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js.map +0 -1
- package/src/transport/mcp-handlers/subscribe-request.handler.js +0 -34
- package/src/transport/mcp-handlers/subscribe-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/unsubscribe-request.handler.js +0 -34
- package/src/transport/mcp-handlers/unsubscribe-request.handler.js.map +0 -1
- package/src/transport/transport.error.js +0 -25
- package/src/transport/transport.error.js.map +0 -1
- package/src/transport/transport.event-store.js +0 -36
- package/src/transport/transport.event-store.js.map +0 -1
- package/src/transport/transport.local.js +0 -71
- package/src/transport/transport.local.js.map +0 -1
- package/src/transport/transport.registry.js +0 -523
- package/src/transport/transport.registry.js.map +0 -1
- package/src/transport/transport.remote.js +0 -31
- package/src/transport/transport.remote.js.map +0 -1
- package/src/transport/transport.types.js +0 -3
- package/src/transport/transport.types.js.map +0 -1
- package/src/types/drinen-hooks.types.js +0 -3
- package/src/types/drinen-hooks.types.js.map +0 -1
- package/src/types/invoke.type.js +0 -34
- package/src/types/invoke.type.js.map +0 -1
- package/src/types/token.types.js +0 -3
- package/src/types/token.types.js.map +0 -1
- package/src/utils/content.utils.js +0 -194
- package/src/utils/content.utils.js.map +0 -1
- package/src/utils/index.js +0 -55
- package/src/utils/index.js.map +0 -1
- package/src/utils/lineage.utils.js +0 -82
- package/src/utils/lineage.utils.js.map +0 -1
- package/src/utils/metadata.utils.js +0 -26
- package/src/utils/metadata.utils.js.map +0 -1
- package/src/utils/naming.utils.js +0 -136
- package/src/utils/naming.utils.js.map +0 -1
- package/src/utils/server.utils.js +0 -59
- package/src/utils/server.utils.js.map +0 -1
- package/src/utils/string.utils.js +0 -10
- package/src/utils/string.utils.js.map +0 -1
- package/src/utils/token.utils.js +0 -65
- package/src/utils/token.utils.js.map +0 -1
- package/src/utils/types.utils.js +0 -3
- package/src/utils/types.utils.js.map +0 -1
- package/src/utils/uri-template.utils.js +0 -113
- package/src/utils/uri-template.utils.js.map +0 -1
- package/src/utils/uri-validation.utils.js +0 -76
- package/src/utils/uri-validation.utils.js.map +0 -1
- package/{src/adapter → adapter}/adapter.instance.d.ts +0 -0
- package/{src/adapter → adapter}/adapter.regsitry.d.ts +0 -0
- package/{src/adapter → adapter}/adapter.utils.d.ts +0 -0
- package/{src/app → app}/app.registry.d.ts +0 -0
- package/{src/app → app}/app.utils.d.ts +0 -0
- package/{src/app → app}/instances/app.local.instance.d.ts +0 -0
- package/{src/app → app}/instances/app.remote.instance.d.ts +0 -0
- package/{src/app → app}/instances/index.d.ts +0 -0
- package/{src/auth → auth}/auth.registry.d.ts +0 -0
- package/{src/auth → auth}/auth.utils.d.ts +0 -0
- package/{src/auth → auth}/authorization/authorization.class.d.ts +0 -0
- package/{src/auth → auth}/authorization/authorization.types.d.ts +0 -0
- package/{src/auth → auth}/authorization/index.d.ts +0 -0
- package/{src/auth → auth}/authorization/orchestrated.authorization.d.ts +0 -0
- package/{src/auth → auth}/authorization/public.authorization.d.ts +0 -0
- package/{src/auth → auth}/authorization/transparent.authorization.d.ts +0 -0
- package/{src/auth → auth}/consent/consent.types.d.ts +0 -0
- package/{src/auth → auth}/consent/index.d.ts +0 -0
- package/{src/auth → auth}/detection/auth-provider-detection.d.ts +0 -0
- package/{src/auth → auth}/detection/index.d.ts +0 -0
- package/{src/auth → auth}/flows/auth.verify.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/oauth.authorize.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/oauth.callback.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/oauth.register.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/oauth.token.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/session.verify.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/well-known.jwks.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/well-known.oauth-authorization-server.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/well-known.prm.flow.d.ts +0 -0
- package/{src/auth → auth}/jwks/dev-key-persistence.d.ts +0 -0
- package/{src/auth → auth}/jwks/index.d.ts +0 -0
- package/{src/auth → auth}/jwks/jwks.service.d.ts +0 -0
- package/{src/auth → auth}/jwks/jwks.types.d.ts +0 -0
- package/{src/auth → auth}/jwks/jwks.utils.d.ts +0 -0
- package/{src/auth → auth}/machine-id.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.authorize.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.device-authorization.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.introspect.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.par.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.revoke.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.token.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.userinfo.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oidc.logout.flow.d.ts +0 -0
- package/{src/auth → auth}/session/authorization-vault.d.ts +0 -0
- package/{src/auth → auth}/session/authorization.store.d.ts +0 -0
- package/{src/auth → auth}/session/encrypted-authorization-vault.d.ts +0 -0
- package/{src/auth → auth}/session/record/session.base.d.ts +0 -0
- package/{src/auth → auth}/session/record/session.stateful.d.ts +0 -0
- package/{src/auth → auth}/session/record/session.stateless.d.ts +0 -0
- package/{src/auth → auth}/session/record/session.transparent.d.ts +0 -0
- package/{src/auth → auth}/session/redis-session.store.d.ts +0 -0
- package/{src/auth → auth}/session/session.crypto.d.ts +0 -0
- package/{src/auth → auth}/session/session.schema.d.ts +0 -0
- package/{src/auth → auth}/session/session.service.d.ts +0 -0
- package/{src/auth → auth}/session/session.transport.d.ts +0 -0
- package/{src/auth → auth}/session/session.types.d.ts +0 -0
- package/{src/auth → auth}/session/token.refresh.d.ts +0 -0
- package/{src/auth → auth}/session/token.store.d.ts +0 -0
- package/{src/auth → auth}/session/token.vault.d.ts +0 -0
- package/{src/auth → auth}/session/transport-session.manager.d.ts +0 -0
- package/{src/auth → auth}/session/transport-session.types.d.ts +0 -0
- package/{src/auth → auth}/session/utils/auth-token.utils.d.ts +0 -0
- package/{src/auth → auth}/session/utils/session-id.utils.d.ts +0 -0
- package/{src/auth → auth}/session/utils/tiny-ttl-cache.d.ts +0 -0
- package/{src/auth → auth}/session/vault-encryption.d.ts +0 -0
- package/{src/auth → auth}/ui/base-layout.d.ts +0 -0
- package/{src/auth → auth}/ui/index.d.ts +0 -0
- package/{src/auth → auth}/ui/templates.d.ts +0 -0
- package/{src/auth → auth}/utils/audience.validator.d.ts +0 -0
- package/{src/auth → auth}/utils/index.d.ts +0 -0
- package/{src/auth → auth}/utils/www-authenticate.utils.d.ts +0 -0
- package/{src/common → common}/common.schema.d.ts +0 -0
- package/{src/common → common}/constants.d.ts +0 -0
- package/{src/common → common}/decorators/adapter.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/app.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/auth-provider.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/decorator-utils.d.ts +0 -0
- package/{src/common → common}/decorators/flow.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/front-mcp.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/hook.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/index.d.ts +0 -0
- package/{src/common → common}/decorators/logger.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/plugin.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/prompt.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/provider.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/resource.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/tool.decorator.d.ts +0 -0
- package/{src/common → common}/dynamic/dynamic.adapter.d.ts +0 -0
- package/{src/common → common}/dynamic/dynamic.plugin.d.ts +0 -0
- package/{src/common → common}/dynamic/dynamic.utils.d.ts +0 -0
- package/{src/common → common}/dynamic/index.d.ts +0 -0
- package/{src/common → common}/entries/adapter.entry.d.ts +0 -0
- package/{src/common → common}/entries/app.entry.d.ts +0 -0
- package/{src/common → common}/entries/auth-provider.entry.d.ts +0 -0
- package/{src/common → common}/entries/base.entry.d.ts +0 -0
- package/{src/common → common}/entries/flow.entry.d.ts +0 -0
- package/{src/common → common}/entries/hook.entry.d.ts +0 -0
- package/{src/common → common}/entries/index.d.ts +0 -0
- package/{src/common → common}/entries/logger.entry.d.ts +0 -0
- package/{src/common → common}/entries/plugin.entry.d.ts +0 -0
- package/{src/common → common}/entries/prompt.entry.d.ts +0 -0
- package/{src/common → common}/entries/provider.entry.d.ts +0 -0
- package/{src/common → common}/entries/resource.entry.d.ts +0 -0
- package/{src/common → common}/entries/scope.entry.d.ts +0 -0
- package/{src/common → common}/entries/tool.entry.d.ts +0 -0
- package/{src/common → common}/flow/flow.utils.d.ts +0 -0
- package/{src/common → common}/index.d.ts +0 -0
- package/{src/common → common}/interfaces/adapter.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/app.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/auth-hook.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/auth-provider.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/base.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/execution-context.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/flow.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/front-mcp.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/hook.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/index.d.ts +0 -0
- package/{src/common → common}/interfaces/internal/flow.utils.d.ts +0 -0
- package/{src/common → common}/interfaces/internal/index.d.ts +0 -0
- package/{src/common → common}/interfaces/internal/registry.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/logger.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/plugin.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/prompt.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/provider.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/resource.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/scope.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/server.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/session-hook.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/tool-hook.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/tool.interface.d.ts +0 -0
- package/{src/common → common}/metadata/adapter.metadata.d.ts +0 -0
- package/{src/common → common}/metadata/app.metadata.d.ts +42 -42
- /package/{src/common → common}/metadata/auth-provider.metadata.d.ts +0 -0
- /package/{src/common → common}/metadata/flow.metadata.d.ts +0 -0
- /package/{src/common → common}/metadata/hook.metadata.d.ts +0 -0
- /package/{src/common → common}/metadata/index.d.ts +0 -0
- /package/{src/common → common}/metadata/logger.metadata.d.ts +0 -0
- /package/{src/common → common}/metadata/plugin.metadata.d.ts +0 -0
- /package/{src/common → common}/metadata/provider.metadata.d.ts +0 -0
- /package/{src/common → common}/migrate/auth-transport.migrate.d.ts +0 -0
- /package/{src/common → common}/migrate/index.d.ts +0 -0
- /package/{src/common → common}/providers/base-config.provider.d.ts +0 -0
- /package/{src/common → common}/records/adapter.record.d.ts +0 -0
- /package/{src/common → common}/records/app.record.d.ts +0 -0
- /package/{src/common → common}/records/auth-provider.record.d.ts +0 -0
- /package/{src/common → common}/records/flow.record.d.ts +0 -0
- /package/{src/common → common}/records/hook.record.d.ts +0 -0
- /package/{src/common → common}/records/index.d.ts +0 -0
- /package/{src/common → common}/records/logger.record.d.ts +0 -0
- /package/{src/common → common}/records/plugin.record.d.ts +0 -0
- /package/{src/common → common}/records/prompt.record.d.ts +0 -0
- /package/{src/common → common}/records/provider.record.d.ts +0 -0
- /package/{src/common → common}/records/resource.record.d.ts +0 -0
- /package/{src/common → common}/records/scope.record.d.ts +0 -0
- /package/{src/common → common}/records/tool.record.d.ts +0 -0
- /package/{src/common → common}/schemas/annotated-class.schema.d.ts +0 -0
- /package/{src/common → common}/schemas/http-input.schema.d.ts +0 -0
- /package/{src/common → common}/schemas/index.d.ts +0 -0
- /package/{src/common → common}/schemas/session-header.schema.d.ts +0 -0
- /package/{src/common → common}/tokens/adapter.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/app.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/auth-provider.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/base.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/flow-hook.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/flow.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/front-mcp.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/index.d.ts +0 -0
- /package/{src/common → common}/tokens/logger.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/plugin.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/prompt.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/provider.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/resource.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/server.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/tool.tokens.d.ts +0 -0
- /package/{src/common → common}/types/auth/index.d.ts +0 -0
- /package/{src/common → common}/types/auth/jwt.types.d.ts +0 -0
- /package/{src/common → common}/types/auth/session.types.d.ts +0 -0
- /package/{src/common → common}/types/common.types.d.ts +0 -0
- /package/{src/common → common}/types/index.d.ts +0 -0
- /package/{src/logger/logger.tokens.d.ts → common/types/options/auth/auth.typecheck.d.ts} +0 -0
- /package/{src/common → common}/types/options/http.options.d.ts +0 -0
- /package/{src/common → common}/types/options/logging.options.d.ts +0 -0
- /package/{src/common → common}/types/options/session.options.d.ts +0 -0
- /package/{src/common → common}/utils/path.utils.d.ts +0 -0
- /package/{src/context → context}/frontmcp-context-storage.d.ts +0 -0
- /package/{src/context → context}/frontmcp-context.d.ts +0 -0
- /package/{src/context → context}/frontmcp-context.provider.d.ts +0 -0
- /package/{src/context → context}/index.d.ts +0 -0
- /package/{src/context → context}/request-context-storage.d.ts +0 -0
- /package/{src/context → context}/request-context.d.ts +0 -0
- /package/{src/context → context}/request-context.provider.d.ts +0 -0
- /package/{src/context → context}/session-key.provider.d.ts +0 -0
- /package/{src/context → context}/trace-context.d.ts +0 -0
- /package/{src/errors → errors}/authorization-required.error.d.ts +0 -0
- /package/{src/errors → errors}/error-handler.d.ts +0 -0
- /package/{src/exceptions → exceptions}/mcp-exceptions/session-missing.exception.d.ts +0 -0
- /package/{src/exceptions → exceptions}/mcp-exceptions/unsupported-client-version.exception.d.ts +0 -0
- /package/{src/flows → flows}/flow.instance.d.ts +0 -0
- /package/{src/flows → flows}/flow.registry.d.ts +0 -0
- /package/{src/flows → flows}/flow.stages.d.ts +0 -0
- /package/{src/flows → flows}/flow.utils.d.ts +0 -0
- /package/{src/front-mcp → front-mcp}/front-mcp.d.ts +0 -0
- /package/{src/front-mcp → front-mcp}/front-mcp.tokens.d.ts +0 -0
- /package/{src/front-mcp → front-mcp}/serverless-handler.d.ts +0 -0
- /package/{src/hooks → hooks}/hook.instance.d.ts +0 -0
- /package/{src/hooks → hooks}/hook.registry.d.ts +0 -0
- /package/{src/hooks → hooks}/hooks.utils.d.ts +0 -0
- /package/{src/logger → logger}/instances/instance.console-logger.d.ts +0 -0
- /package/{src/logger → logger}/instances/instance.logger.d.ts +0 -0
- /package/{src/logger → logger}/logger.registry.d.ts +0 -0
- /package/{src/logger → logger}/logger.types.d.ts +0 -0
- /package/{src/logger → logger}/logger.utils.d.ts +0 -0
- /package/{src/mcp-apps → mcp-apps}/csp.d.ts +0 -0
- /package/{src/mcp-apps → mcp-apps}/index.d.ts +0 -0
- /package/{src/mcp-apps → mcp-apps}/schemas.d.ts +0 -0
- /package/{src/mcp-apps → mcp-apps}/template.d.ts +0 -0
- /package/{src/mcp-apps → mcp-apps}/types.d.ts +0 -0
- /package/{src/notification → notification}/index.d.ts +0 -0
- /package/{src/notification → notification}/notification.service.d.ts +0 -0
- /package/{src/plugin → plugin}/plugin.registry.d.ts +0 -0
- /package/{src/plugin → plugin}/plugin.utils.d.ts +0 -0
- /package/{src/prompt → prompt}/index.d.ts +0 -0
- /package/{src/prompt → prompt}/prompt.events.d.ts +0 -0
- /package/{src/prompt → prompt}/prompt.instance.d.ts +0 -0
- /package/{src/prompt → prompt}/prompt.registry.d.ts +0 -0
- /package/{src/prompt → prompt}/prompt.types.d.ts +0 -0
- /package/{src/prompt → prompt}/prompt.utils.d.ts +0 -0
- /package/{src/provider → provider}/provider.registry.d.ts +0 -0
- /package/{src/provider → provider}/provider.types.d.ts +0 -0
- /package/{src/provider → provider}/provider.utils.d.ts +0 -0
- /package/{src/regsitry → regsitry}/index.d.ts +0 -0
- /package/{src/regsitry → regsitry}/registry.base.d.ts +0 -0
- /package/{src/resource → resource}/index.d.ts +0 -0
- /package/{src/resource → resource}/resource.events.d.ts +0 -0
- /package/{src/resource → resource}/resource.instance.d.ts +0 -0
- /package/{src/resource → resource}/resource.registry.d.ts +0 -0
- /package/{src/resource → resource}/resource.types.d.ts +0 -0
- /package/{src/resource → resource}/resource.utils.d.ts +0 -0
- /package/{src/scope → scope}/flows/http.request.flow.d.ts +0 -0
- /package/{src/scope → scope}/index.d.ts +0 -0
- /package/{src/scope → scope}/scope.instance.d.ts +0 -0
- /package/{src/scope → scope}/scope.registry.d.ts +0 -0
- /package/{src/scope → scope}/scope.utils.d.ts +0 -0
- /package/{src/server → server}/adapters/base.host.adapter.d.ts +0 -0
- /package/{src/server → server}/adapters/express.host.adapter.d.ts +0 -0
- /package/{src/server → server}/server.instance.d.ts +0 -0
- /package/{src/server → server}/server.types.d.ts +0 -0
- /package/{src/server → server}/server.validation.d.ts +0 -0
- /package/{src/store → store}/adapters/store.base.adapter.d.ts +0 -0
- /package/{src/store → store}/adapters/store.memory.adapter.d.ts +0 -0
- /package/{src/store → store}/adapters/store.redis.adapter.d.ts +0 -0
- /package/{src/store → store}/store.helpers.d.ts +0 -0
- /package/{src/store → store}/store.registry.d.ts +0 -0
- /package/{src/store → store}/store.tokens.d.ts +0 -0
- /package/{src/store → store}/store.types.d.ts +0 -0
- /package/{src/store → store}/store.utils.d.ts +0 -0
- /package/{src/tool → tool}/tool.events.d.ts +0 -0
- /package/{src/tool → tool}/tool.instance.d.ts +0 -0
- /package/{src/tool → tool}/tool.registry.d.ts +0 -0
- /package/{src/tool → tool}/tool.types.d.ts +0 -0
- /package/{src/tool → tool}/tool.utils.d.ts +0 -0
- /package/{src/tool → tool}/ui/ui-resource-template.d.ts +0 -0
- /package/{src/transport → transport}/adapters/transport.local.adapter.d.ts +0 -0
- /package/{src/transport → transport}/adapters/transport.sse.adapter.d.ts +0 -0
- /package/{src/transport → transport}/adapters/transport.streamable-http.adapter.d.ts +0 -0
- /package/{src/transport → transport}/flows/handle.sse.flow.d.ts +0 -0
- /package/{src/transport → transport}/flows/handle.stateless-http.flow.d.ts +0 -0
- /package/{src/transport → transport}/flows/handle.streamable-http.flow.d.ts +0 -0
- /package/{src/transport → transport}/legacy/legacy.sse.tranporter.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/Initialized-notification.hanlder.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/call-tool-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/initialize-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/mcp-handlers.types.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/roots-list-changed-notification.handler.d.ts +0 -0
- /package/{src/transport → transport}/transport.error.d.ts +0 -0
- /package/{src/transport → transport}/transport.event-store.d.ts +0 -0
- /package/{src/transport → transport}/transport.local.d.ts +0 -0
- /package/{src/transport → transport}/transport.remote.d.ts +0 -0
- /package/{src/transport → transport}/transport.types.d.ts +0 -0
- /package/{src/types → types}/drinen-hooks.types.d.ts +0 -0
- /package/{src/types → types}/invoke.type.d.ts +0 -0
- /package/{src/types → types}/token.types.d.ts +0 -0
- /package/{src/utils → utils}/content.utils.d.ts +0 -0
- /package/{src/utils → utils}/index.d.ts +0 -0
- /package/{src/utils → utils}/lineage.utils.d.ts +0 -0
- /package/{src/utils → utils}/metadata.utils.d.ts +0 -0
- /package/{src/utils → utils}/naming.utils.d.ts +0 -0
- /package/{src/utils → utils}/server.utils.d.ts +0 -0
- /package/{src/utils → utils}/string.utils.d.ts +0 -0
- /package/{src/utils → utils}/token.utils.d.ts +0 -0
- /package/{src/utils → utils}/types.utils.d.ts +0 -0
- /package/{src/utils → utils}/uri-template.utils.d.ts +0 -0
- /package/{src/utils → utils}/uri-validation.utils.d.ts +0 -0
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Decorator Utilities for Dual-Mode Support
|
|
4
|
-
*
|
|
5
|
-
* This module provides utilities for creating decorators that work with both:
|
|
6
|
-
* - Legacy TypeScript decorators (experimentalDecorators: true)
|
|
7
|
-
* - TC39 Stage 3 decorators (native JS, used by esbuild/tsx)
|
|
8
|
-
*
|
|
9
|
-
* The key difference between the two modes:
|
|
10
|
-
*
|
|
11
|
-
* LEGACY TypeScript Method Decorator:
|
|
12
|
-
* (target: prototype, propertyKey: string, descriptor: PropertyDescriptor) => void
|
|
13
|
-
* - target is the class prototype (for instance methods) or class (for static)
|
|
14
|
-
* - propertyKey is the method name
|
|
15
|
-
* - descriptor is the property descriptor
|
|
16
|
-
*
|
|
17
|
-
* TC39 Stage 3 Method Decorator:
|
|
18
|
-
* (target: method, context: ClassMethodDecoratorContext) => method
|
|
19
|
-
* - target is the actual method function being decorated
|
|
20
|
-
* - context is an object with { kind, name, static, private, addInitializer }
|
|
21
|
-
* - The class isn't available during decoration (only via addInitializer at instance creation)
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```typescript
|
|
25
|
-
* // Using the factory to create a dual-mode decorator
|
|
26
|
-
* const MyDecorator = createMethodDecorator<{ stage: string }>({
|
|
27
|
-
* createMetadata: (args, options) => ({
|
|
28
|
-
* methodName: args.methodName,
|
|
29
|
-
* stage: options.stage,
|
|
30
|
-
* }),
|
|
31
|
-
* onLegacyDecoration: (ctor, metadata) => {
|
|
32
|
-
* // Immediately register on class (legacy mode)
|
|
33
|
-
* registerOnClass(ctor, metadata);
|
|
34
|
-
* },
|
|
35
|
-
* });
|
|
36
|
-
*
|
|
37
|
-
* // Usage (works in both modes):
|
|
38
|
-
* class MyFlow {
|
|
39
|
-
* @MyDecorator({ stage: 'execute' })
|
|
40
|
-
* async execute() {}
|
|
41
|
-
* }
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
-
exports.PendingMetadataRegistry = void 0;
|
|
46
|
-
exports.isTC39MethodContext = isTC39MethodContext;
|
|
47
|
-
exports.isTC39ClassContext = isTC39ClassContext;
|
|
48
|
-
exports.createDualModeMethodDecorator = createDualModeMethodDecorator;
|
|
49
|
-
exports.createDualModeClassDecorator = createDualModeClassDecorator;
|
|
50
|
-
/**
|
|
51
|
-
* Check if decorator context is TC39 Stage 3 style
|
|
52
|
-
*/
|
|
53
|
-
function isTC39MethodContext(arg) {
|
|
54
|
-
return typeof arg === 'object' && arg !== null && 'kind' in arg && arg.kind === 'method';
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Check if decorator context is TC39 Stage 3 class context
|
|
58
|
-
*/
|
|
59
|
-
function isTC39ClassContext(arg) {
|
|
60
|
-
return typeof arg === 'object' && arg !== null && 'kind' in arg && arg.kind === 'class';
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Creates a method decorator that works with both legacy TypeScript and TC39 Stage 3 decorators.
|
|
64
|
-
*
|
|
65
|
-
* For legacy decorators: onLegacyDecoration is called immediately with class constructor
|
|
66
|
-
* For TC39 decorators: storePendingMetadata is called, metadata resolved later via resolvePendingMetadataForClass
|
|
67
|
-
*/
|
|
68
|
-
function createDualModeMethodDecorator(config) {
|
|
69
|
-
return (options) => {
|
|
70
|
-
return (target, keyOrContext, descriptor) => {
|
|
71
|
-
if (isTC39MethodContext(keyOrContext)) {
|
|
72
|
-
// TC39 Stage 3 decorator style
|
|
73
|
-
const context = keyOrContext;
|
|
74
|
-
const methodName = String(context.name);
|
|
75
|
-
const isStatic = context.static;
|
|
76
|
-
const method = target; // In TC39, target is the method function itself
|
|
77
|
-
const args = {
|
|
78
|
-
method,
|
|
79
|
-
methodName,
|
|
80
|
-
isStatic,
|
|
81
|
-
mode: 'tc39',
|
|
82
|
-
};
|
|
83
|
-
const metadata = config.createMetadata(args, options);
|
|
84
|
-
config.storePendingMetadata(method, metadata);
|
|
85
|
-
// Return the original method unchanged
|
|
86
|
-
return target;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
// Legacy TypeScript decorator style
|
|
90
|
-
const key = keyOrContext;
|
|
91
|
-
const methodName = String(key);
|
|
92
|
-
const isStatic = typeof target === 'function';
|
|
93
|
-
const method = descriptor?.value ?? target[key];
|
|
94
|
-
const ctor = isStatic ? target : target.constructor;
|
|
95
|
-
const args = {
|
|
96
|
-
method,
|
|
97
|
-
methodName,
|
|
98
|
-
isStatic,
|
|
99
|
-
mode: 'legacy',
|
|
100
|
-
};
|
|
101
|
-
const metadata = config.createMetadata(args, options);
|
|
102
|
-
// In legacy mode, we have immediate access to the class
|
|
103
|
-
if (config.onLegacyDecoration) {
|
|
104
|
-
config.onLegacyDecoration(ctor, metadata);
|
|
105
|
-
}
|
|
106
|
-
// Return nothing to keep the original descriptor
|
|
107
|
-
return undefined;
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Storage for pending TC39 decorator metadata
|
|
114
|
-
* Generic class that can be instantiated for different metadata types
|
|
115
|
-
*/
|
|
116
|
-
class PendingMetadataRegistry {
|
|
117
|
-
pending = new WeakMap();
|
|
118
|
-
/**
|
|
119
|
-
* Store pending metadata for a method (TC39 mode)
|
|
120
|
-
*/
|
|
121
|
-
store(method, metadata) {
|
|
122
|
-
const existing = this.pending.get(method) ?? [];
|
|
123
|
-
existing.push(metadata);
|
|
124
|
-
this.pending.set(method, existing);
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Get and optionally clear pending metadata for a method
|
|
128
|
-
*/
|
|
129
|
-
consume(method) {
|
|
130
|
-
const pending = this.pending.get(method) ?? [];
|
|
131
|
-
this.pending.delete(method);
|
|
132
|
-
return pending;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Resolve all pending metadata for a class by scanning its prototype and static members
|
|
136
|
-
*/
|
|
137
|
-
resolveForClass(ctor, consume = true) {
|
|
138
|
-
const resolved = [];
|
|
139
|
-
// Scan instance methods on prototype
|
|
140
|
-
const proto = ctor.prototype;
|
|
141
|
-
if (proto) {
|
|
142
|
-
for (const name of Object.getOwnPropertyNames(proto)) {
|
|
143
|
-
if (name === 'constructor')
|
|
144
|
-
continue;
|
|
145
|
-
try {
|
|
146
|
-
const desc = Object.getOwnPropertyDescriptor(proto, name);
|
|
147
|
-
const method = desc?.value;
|
|
148
|
-
if (typeof method === 'function') {
|
|
149
|
-
const pending = consume ? this.consume(method) : this.pending.get(method) ?? [];
|
|
150
|
-
resolved.push(...pending);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
catch {
|
|
154
|
-
// Ignore getter/setter errors
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
// Scan static methods on constructor
|
|
159
|
-
for (const name of Object.getOwnPropertyNames(ctor)) {
|
|
160
|
-
if (['prototype', 'length', 'name'].includes(name))
|
|
161
|
-
continue;
|
|
162
|
-
try {
|
|
163
|
-
const desc = Object.getOwnPropertyDescriptor(ctor, name);
|
|
164
|
-
const method = desc?.value;
|
|
165
|
-
if (typeof method === 'function') {
|
|
166
|
-
const pending = consume ? this.consume(method) : this.pending.get(method) ?? [];
|
|
167
|
-
resolved.push(...pending);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
catch {
|
|
171
|
-
// Ignore getter/setter errors
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
return resolved;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
exports.PendingMetadataRegistry = PendingMetadataRegistry;
|
|
178
|
-
/**
|
|
179
|
-
* Creates a class decorator that works with both legacy TypeScript and TC39 Stage 3 decorators.
|
|
180
|
-
*/
|
|
181
|
-
function createDualModeClassDecorator(handler) {
|
|
182
|
-
return (options) => {
|
|
183
|
-
return (target, context) => {
|
|
184
|
-
if (isTC39ClassContext(context)) {
|
|
185
|
-
// TC39 Stage 3 class decorator
|
|
186
|
-
return handler(target, options, context) ?? target;
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
// Legacy TypeScript class decorator
|
|
190
|
-
return handler(target, options) ?? target;
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
//# sourceMappingURL=decorator-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorator-utils.js","sourceRoot":"","sources":["../../../../src/common/decorators/decorator-utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Decorator Utilities for Dual-Mode Support\n *\n * This module provides utilities for creating decorators that work with both:\n * - Legacy TypeScript decorators (experimentalDecorators: true)\n * - TC39 Stage 3 decorators (native JS, used by esbuild/tsx)\n *\n * The key difference between the two modes:\n *\n * LEGACY TypeScript Method Decorator:\n * (target: prototype, propertyKey: string, descriptor: PropertyDescriptor) => void\n * - target is the class prototype (for instance methods) or class (for static)\n * - propertyKey is the method name\n * - descriptor is the property descriptor\n *\n * TC39 Stage 3 Method Decorator:\n * (target: method, context: ClassMethodDecoratorContext) => method\n * - target is the actual method function being decorated\n * - context is an object with { kind, name, static, private, addInitializer }\n * - The class isn't available during decoration (only via addInitializer at instance creation)\n *\n * @example\n * ```typescript\n * // Using the factory to create a dual-mode decorator\n * const MyDecorator = createMethodDecorator<{ stage: string }>({\n * createMetadata: (args, options) => ({\n * methodName: args.methodName,\n * stage: options.stage,\n * }),\n * onLegacyDecoration: (ctor, metadata) => {\n * // Immediately register on class (legacy mode)\n * registerOnClass(ctor, metadata);\n * },\n * });\n *\n * // Usage (works in both modes):\n * class MyFlow {\n * @MyDecorator({ stage: 'execute' })\n * async execute() {}\n * }\n * ```\n */\n\n/**\n * TC39 Stage 3 Method Decorator Context\n * @see https://github.com/tc39/proposal-decorators\n */\nexport interface TC39MethodContext {\n readonly kind: 'method';\n readonly name: string | symbol;\n readonly static: boolean;\n readonly private: boolean;\n addInitializer(initializer: () => void): void;\n}\n\n/**\n * TC39 Stage 3 Class Decorator Context\n */\nexport interface TC39ClassContext {\n readonly kind: 'class';\n readonly name: string | undefined;\n addInitializer(initializer: () => void): void;\n}\n\n/**\n * Normalized arguments passed to method decorator handlers\n */\nexport interface MethodDecoratorArgs {\n /** The method function being decorated */\n method: Function;\n /** Method name as string */\n methodName: string;\n /** Whether this is a static method */\n isStatic: boolean;\n /** Decorator mode */\n mode: 'legacy' | 'tc39';\n}\n\n/**\n * Configuration for creating a dual-mode method decorator\n */\nexport interface MethodDecoratorConfig<TOptions, TMetadata> {\n /**\n * Create metadata from decorator arguments and options\n */\n createMetadata: (args: MethodDecoratorArgs, options: TOptions) => TMetadata;\n\n /**\n * Called immediately during legacy decoration with access to the class\n * Use this to register metadata directly on the class\n */\n onLegacyDecoration?: (ctor: Function, metadata: TMetadata) => void;\n\n /**\n * Store pending metadata for TC39 mode (required)\n * The metadata will be resolved later when the class is processed\n */\n storePendingMetadata: (method: Function, metadata: TMetadata) => void;\n}\n\n/**\n * Check if decorator context is TC39 Stage 3 style\n */\nexport function isTC39MethodContext(arg: unknown): arg is TC39MethodContext {\n return typeof arg === 'object' && arg !== null && 'kind' in arg && (arg as TC39MethodContext).kind === 'method';\n}\n\n/**\n * Check if decorator context is TC39 Stage 3 class context\n */\nexport function isTC39ClassContext(arg: unknown): arg is TC39ClassContext {\n return typeof arg === 'object' && arg !== null && 'kind' in arg && (arg as TC39ClassContext).kind === 'class';\n}\n\n/**\n * Creates a method decorator that works with both legacy TypeScript and TC39 Stage 3 decorators.\n *\n * For legacy decorators: onLegacyDecoration is called immediately with class constructor\n * For TC39 decorators: storePendingMetadata is called, metadata resolved later via resolvePendingMetadataForClass\n */\nexport function createDualModeMethodDecorator<TOptions, TMetadata>(\n config: MethodDecoratorConfig<TOptions, TMetadata>,\n): (options: TOptions) => MethodDecorator {\n return (options: TOptions): MethodDecorator => {\n return (target: any, keyOrContext: any, descriptor?: PropertyDescriptor): any => {\n if (isTC39MethodContext(keyOrContext)) {\n // TC39 Stage 3 decorator style\n const context = keyOrContext;\n const methodName = String(context.name);\n const isStatic = context.static;\n const method = target; // In TC39, target is the method function itself\n\n const args: MethodDecoratorArgs = {\n method,\n methodName,\n isStatic,\n mode: 'tc39',\n };\n\n const metadata = config.createMetadata(args, options);\n config.storePendingMetadata(method, metadata);\n\n // Return the original method unchanged\n return target;\n } else {\n // Legacy TypeScript decorator style\n const key = keyOrContext;\n const methodName = String(key);\n const isStatic = typeof target === 'function';\n const method = descriptor?.value ?? target[key];\n const ctor = isStatic ? target : target.constructor;\n\n const args: MethodDecoratorArgs = {\n method,\n methodName,\n isStatic,\n mode: 'legacy',\n };\n\n const metadata = config.createMetadata(args, options);\n\n // In legacy mode, we have immediate access to the class\n if (config.onLegacyDecoration) {\n config.onLegacyDecoration(ctor, metadata);\n }\n\n // Return nothing to keep the original descriptor\n return undefined;\n }\n };\n };\n}\n\n/**\n * Storage for pending TC39 decorator metadata\n * Generic class that can be instantiated for different metadata types\n */\nexport class PendingMetadataRegistry<T> {\n private pending = new WeakMap<Function, T[]>();\n\n /**\n * Store pending metadata for a method (TC39 mode)\n */\n store(method: Function, metadata: T): void {\n const existing = this.pending.get(method) ?? [];\n existing.push(metadata);\n this.pending.set(method, existing);\n }\n\n /**\n * Get and optionally clear pending metadata for a method\n */\n consume(method: Function): T[] {\n const pending = this.pending.get(method) ?? [];\n this.pending.delete(method);\n return pending;\n }\n\n /**\n * Resolve all pending metadata for a class by scanning its prototype and static members\n */\n resolveForClass(ctor: Function, consume = true): T[] {\n const resolved: T[] = [];\n\n // Scan instance methods on prototype\n const proto = ctor.prototype;\n if (proto) {\n for (const name of Object.getOwnPropertyNames(proto)) {\n if (name === 'constructor') continue;\n try {\n const desc = Object.getOwnPropertyDescriptor(proto, name);\n const method = desc?.value;\n if (typeof method === 'function') {\n const pending = consume ? this.consume(method) : this.pending.get(method) ?? [];\n resolved.push(...pending);\n }\n } catch {\n // Ignore getter/setter errors\n }\n }\n }\n\n // Scan static methods on constructor\n for (const name of Object.getOwnPropertyNames(ctor)) {\n if (['prototype', 'length', 'name'].includes(name)) continue;\n try {\n const desc = Object.getOwnPropertyDescriptor(ctor, name);\n const method = desc?.value;\n if (typeof method === 'function') {\n const pending = consume ? this.consume(method) : this.pending.get(method) ?? [];\n resolved.push(...pending);\n }\n } catch {\n // Ignore getter/setter errors\n }\n }\n\n return resolved;\n }\n}\n\n/**\n * Creates a class decorator that works with both legacy TypeScript and TC39 Stage 3 decorators.\n */\nexport function createDualModeClassDecorator<TOptions>(\n handler: (ctor: Function, options: TOptions, context?: TC39ClassContext) => Function | void,\n): (options: TOptions) => ClassDecorator {\n return (options: TOptions): ClassDecorator => {\n return (target: any, context?: any): any => {\n if (isTC39ClassContext(context)) {\n // TC39 Stage 3 class decorator\n return handler(target, options, context) ?? target;\n } else {\n // Legacy TypeScript class decorator\n return handler(target, options) ?? target;\n }\n };\n };\n}\n"]}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FrontMcpFlow = FrontMcpFlow;
|
|
4
|
-
exports.Flow = FrontMcpFlow;
|
|
5
|
-
const metadata_1 = require("../metadata");
|
|
6
|
-
const tokens_1 = require("../tokens");
|
|
7
|
-
/**
|
|
8
|
-
* Decorator that marks a class as a FrontMcpFlow module and provides metadata
|
|
9
|
-
*/
|
|
10
|
-
function FrontMcpFlow(providedMetadata) {
|
|
11
|
-
return (target) => {
|
|
12
|
-
const metadata = metadata_1.frontMcpFlowMetadataSchema.parse(providedMetadata);
|
|
13
|
-
Reflect.defineMetadata(tokens_1.FrontMcpFlowTokens.type, true, target);
|
|
14
|
-
for (const property in metadata) {
|
|
15
|
-
Reflect.defineMetadata(tokens_1.FrontMcpFlowTokens[property] ?? property, metadata[property], target);
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=flow.decorator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flow.decorator.js","sourceRoot":"","sources":["../../../../src/common/decorators/flow.decorator.ts"],"names":[],"mappings":";;AAsBE,oCAAY;AACI,4BAAI;AAvBtB,0CAAiF;AACjF,sCAA+C;AAI/C;;GAEG;AACH,SAAS,YAAY,CAAwB,gBAAoC;IAE/E,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAG,qCAA0B,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAEpE,OAAO,CAAC,cAAc,CAAC,2BAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE9D,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,2BAAkB,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { FlowMetadata, FlowName, frontMcpFlowMetadataSchema } from '../metadata';\nimport { FrontMcpFlowTokens } from '../tokens';\n\n\n\n/**\n * Decorator that marks a class as a FrontMcpFlow module and provides metadata\n */\nfunction FrontMcpFlow<Name extends FlowName>(providedMetadata: FlowMetadata<Name>): ClassDecorator {\n\n return (target: any) => {\n const metadata = frontMcpFlowMetadataSchema.parse(providedMetadata);\n\n Reflect.defineMetadata(FrontMcpFlowTokens.type, true, target);\n\n for (const property in metadata) {\n Reflect.defineMetadata(FrontMcpFlowTokens[property] ?? property, metadata[property], target);\n }\n };\n}\n\nexport {\n FrontMcpFlow,\n FrontMcpFlow as Flow,\n}"]}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FrontMcp = FrontMcp;
|
|
4
|
-
require("reflect-metadata");
|
|
5
|
-
const tokens_1 = require("../tokens");
|
|
6
|
-
const metadata_1 = require("../metadata");
|
|
7
|
-
const migrate_1 = require("../migrate");
|
|
8
|
-
/**
|
|
9
|
-
* Decorator that marks a class as a FrontMcp Server and provides metadata
|
|
10
|
-
*/
|
|
11
|
-
function FrontMcp(providedMetadata) {
|
|
12
|
-
return (target) => {
|
|
13
|
-
// Apply migration for deprecated auth.transport and session configs
|
|
14
|
-
const migratedMetadata = (0, migrate_1.applyMigration)(providedMetadata);
|
|
15
|
-
const { error, data: metadata } = metadata_1.frontMcpMetadataSchema.safeParse(migratedMetadata);
|
|
16
|
-
if (error) {
|
|
17
|
-
if (error.format().apps) {
|
|
18
|
-
throw new Error(`Invalid metadata provided to @FrontMcp { apps: [?] }: \n${JSON.stringify(error.format().apps, null, 2)}`);
|
|
19
|
-
}
|
|
20
|
-
if (error.format().providers) {
|
|
21
|
-
throw new Error(`Invalid metadata provided to @FrontMcp { providers: [?] }: \n${JSON.stringify(error.format().providers, null, 2)}`);
|
|
22
|
-
}
|
|
23
|
-
const loggingFormat = error.format()['logging'];
|
|
24
|
-
if (loggingFormat?.['transports']) {
|
|
25
|
-
throw new Error(`Invalid metadata provided to @FrontMcp { logging: { transports: [?] } }: \n${JSON.stringify(loggingFormat['transports'], null, 2)}`);
|
|
26
|
-
}
|
|
27
|
-
throw error;
|
|
28
|
-
}
|
|
29
|
-
Reflect.defineMetadata(tokens_1.FrontMcpTokens.type, true, target);
|
|
30
|
-
for (const property in metadata) {
|
|
31
|
-
Reflect.defineMetadata(tokens_1.FrontMcpTokens[property] ?? property, metadata[property], target);
|
|
32
|
-
}
|
|
33
|
-
// Safe check for serverless mode - process.env may not exist in Cloudflare Workers
|
|
34
|
-
const isServerless = typeof process !== 'undefined' && process.env?.['FRONTMCP_SERVERLESS'] === '1';
|
|
35
|
-
if (isServerless) {
|
|
36
|
-
// Serverless mode: bootstrap, prepare (no listen), store handler globally
|
|
37
|
-
const sdk = '@frontmcp/sdk';
|
|
38
|
-
import(sdk)
|
|
39
|
-
.then(({ FrontMcpInstance, setServerlessHandler, setServerlessHandlerPromise, setServerlessHandlerError }) => {
|
|
40
|
-
if (!FrontMcpInstance) {
|
|
41
|
-
throw new Error(`${sdk} version mismatch, make sure you have the same version for all @frontmcp/* packages`);
|
|
42
|
-
}
|
|
43
|
-
const handlerPromise = FrontMcpInstance.createHandler(metadata);
|
|
44
|
-
setServerlessHandlerPromise(handlerPromise);
|
|
45
|
-
handlerPromise.then(setServerlessHandler).catch((err) => {
|
|
46
|
-
const e = err instanceof Error ? err : new Error(String(err));
|
|
47
|
-
setServerlessHandlerError(e);
|
|
48
|
-
console.error('[FrontMCP] Serverless initialization failed:', e);
|
|
49
|
-
});
|
|
50
|
-
})
|
|
51
|
-
.catch((err) => {
|
|
52
|
-
console.error('[FrontMCP] Failed to import @frontmcp/sdk for serverless init:', err);
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
else if (metadata.serve) {
|
|
56
|
-
// Normal mode: bootstrap and start server
|
|
57
|
-
const sdk = '@frontmcp/sdk';
|
|
58
|
-
import(sdk).then(({ FrontMcpInstance }) => {
|
|
59
|
-
if (!FrontMcpInstance) {
|
|
60
|
-
throw new Error(`${sdk} version mismatch, make sure you have the same version for all @frontmcp/* packages`);
|
|
61
|
-
}
|
|
62
|
-
FrontMcpInstance.bootstrap(metadata);
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=front-mcp.decorator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"front-mcp.decorator.js","sourceRoot":"","sources":["../../../../src/common/decorators/front-mcp.decorator.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport { FrontMcpTokens } from '../tokens';\nimport { FrontMcpMetadata, frontMcpMetadataSchema } from '../metadata';\nimport { FrontMcpInstance } from '../../front-mcp';\nimport { applyMigration } from '../migrate';\n\n/**\n * Decorator that marks a class as a FrontMcp Server and provides metadata\n */\nexport function FrontMcp(providedMetadata: FrontMcpMetadata): ClassDecorator {\n return (target: Function) => {\n // Apply migration for deprecated auth.transport and session configs\n const migratedMetadata = applyMigration(providedMetadata);\n const { error, data: metadata } = frontMcpMetadataSchema.safeParse(migratedMetadata);\n if (error) {\n if (error.format().apps) {\n throw new Error(\n `Invalid metadata provided to @FrontMcp { apps: [?] }: \\n${JSON.stringify(error.format().apps, null, 2)}`,\n );\n }\n if (error.format().providers) {\n throw new Error(\n `Invalid metadata provided to @FrontMcp { providers: [?] }: \\n${JSON.stringify(\n error.format().providers,\n null,\n 2,\n )}`,\n );\n }\n const loggingFormat = error.format()['logging'] as Record<string, unknown> | undefined;\n if (loggingFormat?.['transports']) {\n throw new Error(\n `Invalid metadata provided to @FrontMcp { logging: { transports: [?] } }: \\n${JSON.stringify(\n loggingFormat['transports'],\n null,\n 2,\n )}`,\n );\n }\n throw error;\n }\n\n Reflect.defineMetadata(FrontMcpTokens.type, true, target);\n for (const property in metadata) {\n Reflect.defineMetadata(FrontMcpTokens[property] ?? property, metadata[property], target);\n }\n\n // Safe check for serverless mode - process.env may not exist in Cloudflare Workers\n const isServerless = typeof process !== 'undefined' && process.env?.['FRONTMCP_SERVERLESS'] === '1';\n\n if (isServerless) {\n // Serverless mode: bootstrap, prepare (no listen), store handler globally\n const sdk = '@frontmcp/sdk';\n import(sdk)\n .then(({ FrontMcpInstance, setServerlessHandler, setServerlessHandlerPromise, setServerlessHandlerError }) => {\n if (!FrontMcpInstance) {\n throw new Error(\n `${sdk} version mismatch, make sure you have the same version for all @frontmcp/* packages`,\n );\n }\n\n const handlerPromise = FrontMcpInstance.createHandler(metadata);\n setServerlessHandlerPromise(handlerPromise);\n handlerPromise.then(setServerlessHandler).catch((err: unknown) => {\n const e = err instanceof Error ? err : new Error(String(err));\n setServerlessHandlerError(e);\n console.error('[FrontMCP] Serverless initialization failed:', e);\n });\n })\n .catch((err: unknown) => {\n console.error('[FrontMCP] Failed to import @frontmcp/sdk for serverless init:', err);\n });\n } else if (metadata.serve) {\n // Normal mode: bootstrap and start server\n const sdk = '@frontmcp/sdk';\n import(sdk).then(({ FrontMcpInstance }) => {\n if (!FrontMcpInstance) {\n throw new Error(`${sdk} version mismatch, make sure you have the same version for all @frontmcp/* packages`);\n }\n\n FrontMcpInstance.bootstrap(metadata);\n });\n }\n };\n}\n"]}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Flow Hook Decorators
|
|
4
|
-
*
|
|
5
|
-
* This module provides decorators for defining flow stages and lifecycle hooks.
|
|
6
|
-
* Supports both legacy TypeScript decorators and TC39 Stage 3 decorators.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.resolvePendingTC39HooksForClass = resolvePendingTC39HooksForClass;
|
|
10
|
-
exports.registerPendingTC39Hook = registerPendingTC39Hook;
|
|
11
|
-
exports.consumePendingTC39Hooks = consumePendingTC39Hooks;
|
|
12
|
-
exports.StageHookOf = StageHookOf;
|
|
13
|
-
exports.WillHookOf = WillHookOf;
|
|
14
|
-
exports.DidHookOf = DidHookOf;
|
|
15
|
-
exports.AroundHookOf = AroundHookOf;
|
|
16
|
-
exports.FlowHooksOf = FlowHooksOf;
|
|
17
|
-
const tokens_1 = require("../tokens");
|
|
18
|
-
const decorator_utils_1 = require("./decorator-utils");
|
|
19
|
-
/**
|
|
20
|
-
* Pending metadata registry for TC39 decorators
|
|
21
|
-
* Stores hook metadata keyed by method function until class is processed
|
|
22
|
-
*/
|
|
23
|
-
const pendingHookRegistry = new decorator_utils_1.PendingMetadataRegistry();
|
|
24
|
-
/**
|
|
25
|
-
* Register hook metadata on a class constructor
|
|
26
|
-
*/
|
|
27
|
-
function registerHookOnClass(ctor, meta) {
|
|
28
|
-
const arr = Reflect.getMetadata(tokens_1.FrontMcpFlowHookTokens.hooks, ctor) ?? [];
|
|
29
|
-
arr.push(meta);
|
|
30
|
-
Reflect.defineMetadata(tokens_1.FrontMcpFlowHookTokens.hooks, arr, ctor);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Resolve all pending TC39 hooks for a class by scanning its prototype
|
|
34
|
-
* This is called by collectFlowHookMap during flow registration
|
|
35
|
-
*/
|
|
36
|
-
function resolvePendingTC39HooksForClass(ctor) {
|
|
37
|
-
return pendingHookRegistry.resolveForClass(ctor);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Store a pending hook for TC39 mode
|
|
41
|
-
* @internal
|
|
42
|
-
*/
|
|
43
|
-
function registerPendingTC39Hook(method, meta) {
|
|
44
|
-
pendingHookRegistry.store(method, meta);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Get and clear pending hooks for a method (TC39 mode)
|
|
48
|
-
* @internal
|
|
49
|
-
*/
|
|
50
|
-
function consumePendingTC39Hooks(method) {
|
|
51
|
-
return pendingHookRegistry.consume(method);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Base factory for creating hook decorators
|
|
55
|
-
* Works with both legacy TypeScript and TC39 Stage 3 decorators
|
|
56
|
-
*/
|
|
57
|
-
function make(flow, type) {
|
|
58
|
-
return function (stage, opts = {}) {
|
|
59
|
-
return (target, keyOrContext, _desc) => {
|
|
60
|
-
const { priority = 0, filter, ...rest } = opts;
|
|
61
|
-
// Detect TC39 Stage 3 decorators vs legacy TypeScript decorators
|
|
62
|
-
if ((0, decorator_utils_1.isTC39MethodContext)(keyOrContext)) {
|
|
63
|
-
// TC39 Stage 3 decorator style
|
|
64
|
-
const context = keyOrContext;
|
|
65
|
-
const methodName = String(context.name);
|
|
66
|
-
const isStatic = context.static;
|
|
67
|
-
const method = target; // In TC39, target is the method function itself
|
|
68
|
-
const meta = {
|
|
69
|
-
...rest,
|
|
70
|
-
[tokens_1.FrontMcpFlowHookTokens.type]: true,
|
|
71
|
-
flow: flow,
|
|
72
|
-
type: type,
|
|
73
|
-
stage: stage,
|
|
74
|
-
method: methodName,
|
|
75
|
-
priority: priority,
|
|
76
|
-
filter: filter,
|
|
77
|
-
target: null, // Will be resolved at execution time
|
|
78
|
-
static: isStatic,
|
|
79
|
-
};
|
|
80
|
-
// Store as pending - resolved when collectFlowHookMap processes the class
|
|
81
|
-
pendingHookRegistry.store(method, meta);
|
|
82
|
-
// Return the original method unchanged
|
|
83
|
-
return target;
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
// Legacy TypeScript decorator style
|
|
87
|
-
const key = keyOrContext;
|
|
88
|
-
const methodName = String(key);
|
|
89
|
-
const isStatic = typeof target === 'function';
|
|
90
|
-
const ctor = isStatic ? target : target.constructor;
|
|
91
|
-
const meta = {
|
|
92
|
-
...rest,
|
|
93
|
-
[tokens_1.FrontMcpFlowHookTokens.type]: true,
|
|
94
|
-
flow: flow,
|
|
95
|
-
type: type,
|
|
96
|
-
stage: stage,
|
|
97
|
-
method: methodName,
|
|
98
|
-
priority: priority,
|
|
99
|
-
filter: filter,
|
|
100
|
-
target: target,
|
|
101
|
-
static: isStatic,
|
|
102
|
-
};
|
|
103
|
-
// Register immediately on the class
|
|
104
|
-
registerHookOnClass(ctor, meta);
|
|
105
|
-
return undefined;
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Creates a typed Stage hook decorator for a specific flow
|
|
112
|
-
* @example
|
|
113
|
-
* ```typescript
|
|
114
|
-
* const { Stage } = FlowHooksOf('http:request');
|
|
115
|
-
*
|
|
116
|
-
* class HttpRequestFlow {
|
|
117
|
-
* @Stage('checkAuthorization')
|
|
118
|
-
* async checkAuthorization() { ... }
|
|
119
|
-
* }
|
|
120
|
-
* ```
|
|
121
|
-
*/
|
|
122
|
-
function StageHookOf(flow) {
|
|
123
|
-
const base = make(flow, 'stage');
|
|
124
|
-
return function (stage, opts = {}) {
|
|
125
|
-
return base(stage, opts);
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Creates a typed Will hook decorator (runs before stage)
|
|
130
|
-
*/
|
|
131
|
-
function WillHookOf(flow) {
|
|
132
|
-
const base = make(flow, 'will');
|
|
133
|
-
return function (stage, opts = {}) {
|
|
134
|
-
return base(stage, opts);
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Creates a typed Did hook decorator (runs after stage)
|
|
139
|
-
*/
|
|
140
|
-
function DidHookOf(flow) {
|
|
141
|
-
const base = make(flow, 'did');
|
|
142
|
-
return function (stage, opts = {}) {
|
|
143
|
-
return base(stage, opts);
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Creates a typed Around hook decorator (wraps stage execution)
|
|
148
|
-
*/
|
|
149
|
-
function AroundHookOf(name) {
|
|
150
|
-
const base = make(name, 'around');
|
|
151
|
-
return function (stage, opts = {}) {
|
|
152
|
-
return base(stage, opts);
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Creates all hook decorators for a specific flow
|
|
157
|
-
* @example
|
|
158
|
-
* ```typescript
|
|
159
|
-
* const { Stage, Will, Did, Around } = FlowHooksOf('http:request');
|
|
160
|
-
*
|
|
161
|
-
* class HttpRequestFlow {
|
|
162
|
-
* @Stage('checkAuthorization')
|
|
163
|
-
* async checkAuthorization() { ... }
|
|
164
|
-
*
|
|
165
|
-
* @Will('execute', { priority: 10 })
|
|
166
|
-
* async beforeExecute() { ... }
|
|
167
|
-
* }
|
|
168
|
-
* ```
|
|
169
|
-
*/
|
|
170
|
-
function FlowHooksOf(name) {
|
|
171
|
-
return {
|
|
172
|
-
Stage: StageHookOf(name),
|
|
173
|
-
Will: WillHookOf(name),
|
|
174
|
-
Did: DidHookOf(name),
|
|
175
|
-
Around: AroundHookOf(name),
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
//# sourceMappingURL=hook.decorator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hook.decorator.js","sourceRoot":"","sources":["../../../../src/common/decorators/hook.decorator.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Flow Hook Decorators\n *\n * This module provides decorators for defining flow stages and lifecycle hooks.\n * Supports both legacy TypeScript decorators and TC39 Stage 3 decorators.\n */\n\nimport { HookStageType, HookOptions, FlowName, HookMetadata } from '../metadata';\nimport { FrontMcpFlowHookTokens } from '../tokens';\nimport { isTC39MethodContext, PendingMetadataRegistry, type TC39MethodContext } from './decorator-utils';\n\n/**\n * Pending metadata registry for TC39 decorators\n * Stores hook metadata keyed by method function until class is processed\n */\nconst pendingHookRegistry = new PendingMetadataRegistry<HookMetadata>();\n\n/**\n * Register hook metadata on a class constructor\n */\nfunction registerHookOnClass(ctor: Function, meta: HookMetadata): void {\n const arr = Reflect.getMetadata(FrontMcpFlowHookTokens.hooks, ctor) ?? [];\n arr.push(meta);\n Reflect.defineMetadata(FrontMcpFlowHookTokens.hooks, arr, ctor);\n}\n\n/**\n * Resolve all pending TC39 hooks for a class by scanning its prototype\n * This is called by collectFlowHookMap during flow registration\n */\nexport function resolvePendingTC39HooksForClass(ctor: Function): HookMetadata[] {\n return pendingHookRegistry.resolveForClass(ctor);\n}\n\n/**\n * Store a pending hook for TC39 mode\n * @internal\n */\nexport function registerPendingTC39Hook(method: Function, meta: HookMetadata): void {\n pendingHookRegistry.store(method, meta);\n}\n\n/**\n * Get and clear pending hooks for a method (TC39 mode)\n * @internal\n */\nexport function consumePendingTC39Hooks(method: Function): HookMetadata[] {\n return pendingHookRegistry.consume(method);\n}\n\n/**\n * Base factory for creating hook decorators\n * Works with both legacy TypeScript and TC39 Stage 3 decorators\n */\nfunction make(flow: FlowName, type: HookStageType) {\n return function <Ctx = unknown, T extends string = string>(stage: T, opts: HookOptions<Ctx> = {}): MethodDecorator {\n return (target: any, keyOrContext: any, _desc?: PropertyDescriptor): any => {\n const { priority = 0, filter, ...rest } = opts;\n\n // Detect TC39 Stage 3 decorators vs legacy TypeScript decorators\n if (isTC39MethodContext(keyOrContext)) {\n // TC39 Stage 3 decorator style\n const context = keyOrContext as TC39MethodContext;\n const methodName = String(context.name);\n const isStatic = context.static;\n const method = target; // In TC39, target is the method function itself\n\n const meta: HookMetadata = {\n ...rest,\n [FrontMcpFlowHookTokens.type]: true,\n flow: flow,\n type: type,\n stage: stage,\n method: methodName,\n priority: priority,\n filter: filter,\n target: null, // Will be resolved at execution time\n static: isStatic,\n };\n\n // Store as pending - resolved when collectFlowHookMap processes the class\n pendingHookRegistry.store(method, meta);\n\n // Return the original method unchanged\n return target;\n } else {\n // Legacy TypeScript decorator style\n const key = keyOrContext;\n const methodName = String(key);\n const isStatic = typeof target === 'function';\n const ctor = isStatic ? target : target.constructor;\n\n const meta: HookMetadata = {\n ...rest,\n [FrontMcpFlowHookTokens.type]: true,\n flow: flow,\n type: type,\n stage: stage,\n method: methodName,\n priority: priority,\n filter: filter,\n target: target,\n static: isStatic,\n };\n\n // Register immediately on the class\n registerHookOnClass(ctor, meta);\n\n return undefined;\n }\n };\n };\n}\n\n/**\n * Creates a typed Stage hook decorator for a specific flow\n * @example\n * ```typescript\n * const { Stage } = FlowHooksOf('http:request');\n *\n * class HttpRequestFlow {\n * @Stage('checkAuthorization')\n * async checkAuthorization() { ... }\n * }\n * ```\n */\nexport function StageHookOf<Name extends FlowName>(flow: Name) {\n type T = ExtendFlows[Name]['stage'];\n type Ctx = ExtendFlows[Name]['ctx'];\n const base = make(flow, 'stage');\n return function (stage: T, opts: HookOptions<Ctx> = {}) {\n return base<Ctx, T>(stage, opts);\n };\n}\n\n/**\n * Creates a typed Will hook decorator (runs before stage)\n */\nexport function WillHookOf<Name extends FlowName>(flow: Name) {\n type T = ExtendFlows[Name]['stage'];\n type Ctx = ExtendFlows[Name]['ctx'];\n const base = make(flow, 'will');\n return function (stage: T, opts: HookOptions<Ctx> = {}) {\n return base<Ctx, T>(stage, opts);\n };\n}\n\n/**\n * Creates a typed Did hook decorator (runs after stage)\n */\nexport function DidHookOf<Name extends FlowName>(flow: Name) {\n type T = ExtendFlows[Name]['stage'];\n type Ctx = ExtendFlows[Name]['ctx'];\n const base = make(flow, 'did');\n return function (stage: T, opts: HookOptions<Ctx> = {}) {\n return base<Ctx, T>(stage, opts);\n };\n}\n\n/**\n * Creates a typed Around hook decorator (wraps stage execution)\n */\nexport function AroundHookOf<Name extends FlowName>(name: Name) {\n type T = ExtendFlows[Name]['stage'];\n type Ctx = ExtendFlows[Name]['ctx'];\n const base = make(name, 'around');\n return function (stage: T, opts: HookOptions<Ctx> = {}) {\n return base<Ctx, T>(stage, opts);\n };\n}\n\n/**\n * Creates all hook decorators for a specific flow\n * @example\n * ```typescript\n * const { Stage, Will, Did, Around } = FlowHooksOf('http:request');\n *\n * class HttpRequestFlow {\n * @Stage('checkAuthorization')\n * async checkAuthorization() { ... }\n *\n * @Will('execute', { priority: 10 })\n * async beforeExecute() { ... }\n * }\n * ```\n */\nexport function FlowHooksOf<Name extends FlowName>(name: Name) {\n return {\n Stage: StageHookOf(name),\n Will: WillHookOf(name),\n Did: DidHookOf(name),\n Around: AroundHookOf(name),\n };\n}\n"]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./front-mcp.decorator"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./flow.decorator"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./hook.decorator"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./app.decorator"), exports);
|
|
8
|
-
tslib_1.__exportStar(require("./provider.decorator"), exports);
|
|
9
|
-
tslib_1.__exportStar(require("./auth-provider.decorator"), exports);
|
|
10
|
-
tslib_1.__exportStar(require("./adapter.decorator"), exports);
|
|
11
|
-
tslib_1.__exportStar(require("./plugin.decorator"), exports);
|
|
12
|
-
tslib_1.__exportStar(require("./tool.decorator"), exports);
|
|
13
|
-
tslib_1.__exportStar(require("./resource.decorator"), exports);
|
|
14
|
-
tslib_1.__exportStar(require("./prompt.decorator"), exports);
|
|
15
|
-
tslib_1.__exportStar(require("./logger.decorator"), exports);
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/decorators/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,2DAAiC;AACjC,2DAAiC;AACjC,0DAAgC;AAChC,+DAAqC;AACrC,oEAA0C;AAC1C,8DAAoC;AACpC,6DAAmC;AACnC,2DAAiC;AACjC,+DAAqC;AACrC,6DAAmC;AACnC,6DAAmC","sourcesContent":["export * from './front-mcp.decorator';\nexport * from './flow.decorator';\nexport * from './hook.decorator';\nexport * from './app.decorator';\nexport * from './provider.decorator';\nexport * from './auth-provider.decorator';\nexport * from './adapter.decorator';\nexport * from './plugin.decorator';\nexport * from './tool.decorator';\nexport * from './resource.decorator';\nexport * from './prompt.decorator';\nexport * from './logger.decorator';\n"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FrontMcpLogTransport = FrontMcpLogTransport;
|
|
4
|
-
exports.LogTransport = FrontMcpLogTransport;
|
|
5
|
-
require("reflect-metadata");
|
|
6
|
-
const tokens_1 = require("../tokens");
|
|
7
|
-
const metadata_1 = require("../metadata");
|
|
8
|
-
/**
|
|
9
|
-
* Decorator that marks a class as a FrontMcpLogger module and provides metadata
|
|
10
|
-
*/
|
|
11
|
-
function FrontMcpLogTransport(providedMetadata) {
|
|
12
|
-
return (target) => {
|
|
13
|
-
const { error, data: metadata } = metadata_1.frontMcpLogTransportMetadataSchema.safeParse(providedMetadata);
|
|
14
|
-
Reflect.defineMetadata(tokens_1.FrontMcpLogTransportTokens.type, true, target);
|
|
15
|
-
for (const property in metadata) {
|
|
16
|
-
Reflect.defineMetadata(tokens_1.FrontMcpLogTransportTokens[property] ?? property, metadata[property], target);
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=logger.decorator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.decorator.js","sourceRoot":"","sources":["../../../../src/common/decorators/logger.decorator.ts"],"names":[],"mappings":";;AAsBE,oDAAoB;AACI,4CAAY;AAvBtC,4BAA0B;AAC1B,sCAAuD;AACvD,0CAGqB;AAErB;;GAEG;AACH,SAAS,oBAAoB,CAAC,gBAAsC;IAClE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,6CAAkC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAEjG,OAAO,CAAC,cAAc,CAAC,mCAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACtE,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,mCAA0B,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACvG,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import 'reflect-metadata';\nimport { FrontMcpLogTransportTokens } from '../tokens';\nimport {\n LogTransportMetadata,\n frontMcpLogTransportMetadataSchema,\n} from '../metadata';\n\n/**\n * Decorator that marks a class as a FrontMcpLogger module and provides metadata\n */\nfunction FrontMcpLogTransport(providedMetadata: LogTransportMetadata): ClassDecorator {\n return (target: Function) => {\n const { error, data: metadata } = frontMcpLogTransportMetadataSchema.safeParse(providedMetadata);\n\n Reflect.defineMetadata(FrontMcpLogTransportTokens.type, true, target);\n for (const property in metadata) {\n Reflect.defineMetadata(FrontMcpLogTransportTokens[property] ?? property, metadata[property], target);\n }\n };\n}\n\nexport {\n FrontMcpLogTransport,\n FrontMcpLogTransport as LogTransport,\n};"]}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FrontMcpPlugin = FrontMcpPlugin;
|
|
4
|
-
exports.Plugin = FrontMcpPlugin;
|
|
5
|
-
require("reflect-metadata");
|
|
6
|
-
const tokens_1 = require("../tokens");
|
|
7
|
-
const metadata_1 = require("../metadata");
|
|
8
|
-
/**
|
|
9
|
-
* Decorator that marks a class as a McpPlugin and provides metadata
|
|
10
|
-
*/
|
|
11
|
-
function FrontMcpPlugin(providedMetadata) {
|
|
12
|
-
return (target) => {
|
|
13
|
-
const { error, data: metadata } = metadata_1.frontMcpPluginMetadataSchema.safeParse(providedMetadata);
|
|
14
|
-
if (error) {
|
|
15
|
-
const formatted = error.format();
|
|
16
|
-
if (formatted.providers) {
|
|
17
|
-
throw new Error(`Invalid metadata provided to @FrontMcpProvider or @Provider: \n${JSON.stringify(formatted.providers, null, 2)}`);
|
|
18
|
-
}
|
|
19
|
-
if (formatted.adapters) {
|
|
20
|
-
throw new Error(`Invalid metadata provided to @FrontMcpAdapter or @Adapter: \n${JSON.stringify(formatted.adapters, null, 2)}`);
|
|
21
|
-
}
|
|
22
|
-
if (formatted.tools) {
|
|
23
|
-
throw new Error(`Invalid metadata provided to @FrontMcpTool or @Tool: \n${JSON.stringify(formatted.tools, null, 2)}`);
|
|
24
|
-
}
|
|
25
|
-
if (formatted.resources) {
|
|
26
|
-
throw new Error(`Invalid metadata provided to @FrontMcpResource or @Resource: \n${JSON.stringify(formatted.resources, null, 2)}`);
|
|
27
|
-
}
|
|
28
|
-
if (formatted.prompts) {
|
|
29
|
-
throw new Error(`Invalid metadata provided to @FrontMcpPrompt or @Prompt: \n${JSON.stringify(formatted.prompts, null, 2)}`);
|
|
30
|
-
}
|
|
31
|
-
throw error;
|
|
32
|
-
}
|
|
33
|
-
Reflect.defineMetadata(tokens_1.FrontMcpPluginTokens.type, true, target);
|
|
34
|
-
for (const property in metadata) {
|
|
35
|
-
Reflect.defineMetadata(tokens_1.FrontMcpPluginTokens[property] ?? property, metadata[property], target);
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=plugin.decorator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.decorator.js","sourceRoot":"","sources":["../../../../src/common/decorators/plugin.decorator.ts"],"names":[],"mappings":";;AAuDS,wCAAc;AAAoB,gCAAM;AAvDjD,4BAA0B;AAC1B,sCAAiD;AACjD,0CAA2E;AAE3E;;GAEG;AACH,SAAS,cAAc,CAAC,gBAAgC;IACtD,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,uCAA4B,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3F,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,kEAAkE,IAAI,CAAC,SAAS,CAC9E,SAAS,CAAC,SAAS,EACnB,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;YACJ,CAAC;YACD,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,gEAAgE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAC9G,CAAC;YACJ,CAAC;YACD,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CACb,0DAA0D,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACrG,CAAC;YACJ,CAAC;YACD,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,kEAAkE,IAAI,CAAC,SAAS,CAC9E,SAAS,CAAC,SAAS,EACnB,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;YACJ,CAAC;YACD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,8DAA8D,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAC3G,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,6BAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAChE,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,6BAAoB,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACjG,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import 'reflect-metadata';\nimport { FrontMcpPluginTokens } from '../tokens';\nimport { PluginMetadata, frontMcpPluginMetadataSchema } from '../metadata';\n\n/**\n * Decorator that marks a class as a McpPlugin and provides metadata\n */\nfunction FrontMcpPlugin(providedMetadata: PluginMetadata): ClassDecorator {\n return (target: Function) => {\n const { error, data: metadata } = frontMcpPluginMetadataSchema.safeParse(providedMetadata);\n if (error) {\n const formatted = error.format();\n if (formatted.providers) {\n throw new Error(\n `Invalid metadata provided to @FrontMcpProvider or @Provider: \\n${JSON.stringify(\n formatted.providers,\n null,\n 2,\n )}`,\n );\n }\n if (formatted.adapters) {\n throw new Error(\n `Invalid metadata provided to @FrontMcpAdapter or @Adapter: \\n${JSON.stringify(formatted.adapters, null, 2)}`,\n );\n }\n if (formatted.tools) {\n throw new Error(\n `Invalid metadata provided to @FrontMcpTool or @Tool: \\n${JSON.stringify(formatted.tools, null, 2)}`,\n );\n }\n if (formatted.resources) {\n throw new Error(\n `Invalid metadata provided to @FrontMcpResource or @Resource: \\n${JSON.stringify(\n formatted.resources,\n null,\n 2,\n )}`,\n );\n }\n if (formatted.prompts) {\n throw new Error(\n `Invalid metadata provided to @FrontMcpPrompt or @Prompt: \\n${JSON.stringify(formatted.prompts, null, 2)}`,\n );\n }\n throw error;\n }\n\n Reflect.defineMetadata(FrontMcpPluginTokens.type, true, target);\n for (const property in metadata) {\n Reflect.defineMetadata(FrontMcpPluginTokens[property] ?? property, metadata[property], target);\n }\n };\n}\n\nexport { FrontMcpPlugin, FrontMcpPlugin as Plugin };\n"]}
|