@frontmcp/sdk 0.6.1 → 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/common → common}/interfaces/internal/primary-auth-provider.interface.d.ts +1 -4
- package/{src/common → common}/metadata/front-mcp.metadata.d.ts +1074 -44
- 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/{src/common → common}/types/options/transport.options.d.ts +6 -1
- package/{src/common → common}/utils/decide-request-intent.utils.d.ts +6 -7
- package/esm/index.mjs +22664 -0
- package/esm/mcp-apps/index.mjs +723 -0
- package/esm/package.json +81 -0
- package/index.js +22957 -0
- package/logger/logger.tokens.d.ts +1 -0
- package/mcp-apps/index.js +799 -0
- package/package.json +26 -13
- package/README.md +0 -461
- 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 -18
- 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/session/vercel-kv-session.store.js +0 -216
- package/src/auth/session/vercel-kv-session.store.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 -64
- 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 -30
- 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 -25
- 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.js +0 -191
- 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/global-config.utils.js +0 -44
- package/src/common/utils/global-config.utils.js.map +0 -1
- package/src/common/utils/index.js +0 -7
- 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 -45
- package/src/errors/index.js.map +0 -1
- package/src/errors/mcp.error.js +0 -416
- 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.js +0 -8
- 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 -37
- 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/adapters/store.vercel-kv.adapter.js +0 -155
- package/src/store/adapters/store.vercel-kv.adapter.js.map +0 -1
- package/src/store/index.js +0 -14
- package/src/store/index.js.map +0 -1
- package/src/store/store.factory.js +0 -194
- package/src/store/store.factory.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 -95
- 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 -552
- 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/index.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}/session/vercel-kv-session.store.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/prompt.metadata.d.ts +0 -0
- package/{src/common → common}/metadata/provider.metadata.d.ts +0 -0
- package/{src/common → common}/metadata/resource.metadata.d.ts +0 -0
- package/{src/common → common}/metadata/tool-ui.metadata.d.ts +0 -0
- package/{src/common → common}/metadata/tool.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/http-output.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/redis.options.d.ts +0 -0
- package/{src/common → common}/types/options/server-info.options.d.ts +0 -0
- package/{src/common → common}/types/options/session.options.d.ts +0 -0
- package/{src/common → common}/utils/global-config.utils.d.ts +0 -0
- package/{src/common → common}/utils/index.d.ts +0 -0
- package/{src/common → common}/utils/path.utils.d.ts +0 -0
- package/{src/completion → completion}/flows/complete.flow.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/errors → errors}/index.d.ts +0 -0
- package/{src/errors → errors}/mcp.error.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.providers.d.ts +38 -38
- /package/{src/front-mcp → front-mcp}/front-mcp.tokens.d.ts +0 -0
- /package/{src/front-mcp → front-mcp}/index.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/index.d.ts → index.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/logging → logging}/flows/set-level.flow.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}/flows/get-prompt.flow.d.ts +0 -0
- /package/{src/prompt → prompt}/flows/prompts-list.flow.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}/flows/read-resource.flow.d.ts +0 -0
- /package/{src/resource → resource}/flows/resource-templates-list.flow.d.ts +0 -0
- /package/{src/resource → resource}/flows/resources-list.flow.d.ts +0 -0
- /package/{src/resource → resource}/flows/subscribe-resource.flow.d.ts +0 -0
- /package/{src/resource → resource}/flows/unsubscribe-resource.flow.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}/adapters/store.vercel-kv.adapter.d.ts +0 -0
- /package/{src/store → store}/index.d.ts +0 -0
- /package/{src/store → store}/store.factory.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}/flows/call-tool.flow.d.ts +0 -0
- /package/{src/tool → tool}/flows/tools-list.flow.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/index.d.ts +0 -0
- /package/{src/tool → tool}/ui/platform-adapters.d.ts +0 -0
- /package/{src/tool → tool}/ui/template-helpers.d.ts +0 -0
- /package/{src/tool → tool}/ui/ui-resource-template.d.ts +0 -0
- /package/{src/tool → tool}/ui/ui-resource.handler.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/complete-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/get-prompt-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/index.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/initialize-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/list-prompts-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/list-resource-templates-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/list-resources-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/list-tools-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/logging-set-level-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/read-resource-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/roots-list-changed-notification.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/subscribe-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/unsubscribe-request.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.registry.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,155 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Vercel KV Store Adapter
|
|
4
|
-
*
|
|
5
|
-
* Store adapter implementation using Vercel KV (edge-compatible REST-based key-value store).
|
|
6
|
-
* Uses dynamic import to avoid bundling @vercel/kv for non-Vercel deployments.
|
|
7
|
-
*
|
|
8
|
-
* @see https://vercel.com/docs/storage/vercel-kv
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.ScopedVercelKvStore = void 0;
|
|
12
|
-
const store_base_adapter_1 = require("./store.base.adapter");
|
|
13
|
-
/**
|
|
14
|
-
* Vercel KV Store Adapter
|
|
15
|
-
*
|
|
16
|
-
* Implements the StoreDriver interface using Vercel KV.
|
|
17
|
-
* Note: Pub/Sub is not supported by Vercel KV (REST-based).
|
|
18
|
-
* The base class provides no-op implementations for publish/subscribe.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const store = new ScopedVercelKvStore({
|
|
23
|
-
* url: process.env.KV_REST_API_URL,
|
|
24
|
-
* token: process.env.KV_REST_API_TOKEN,
|
|
25
|
-
* keyPrefix: 'myapp:',
|
|
26
|
-
* });
|
|
27
|
-
* await store.connect();
|
|
28
|
-
* await store.set('key', 'value', { ttlSeconds: 3600 });
|
|
29
|
-
* const value = await store.get('key');
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
class ScopedVercelKvStore extends store_base_adapter_1.StoreBaseAdapter {
|
|
33
|
-
kv = null;
|
|
34
|
-
opts;
|
|
35
|
-
constructor(opts = {}) {
|
|
36
|
-
super();
|
|
37
|
-
this.opts = opts;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Connect to Vercel KV
|
|
41
|
-
* Uses dynamic import to avoid bundling @vercel/kv when not used
|
|
42
|
-
*/
|
|
43
|
-
async connect() {
|
|
44
|
-
if (this.kv)
|
|
45
|
-
return;
|
|
46
|
-
// Dynamic import for tree-shaking
|
|
47
|
-
const vercelKv = await import('@vercel/kv');
|
|
48
|
-
const url = this.opts.url || process.env['KV_REST_API_URL'];
|
|
49
|
-
const token = this.opts.token || process.env['KV_REST_API_TOKEN'];
|
|
50
|
-
if (!url || !token) {
|
|
51
|
-
throw new Error('Vercel KV requires url and token. Set KV_REST_API_URL and KV_REST_API_TOKEN environment variables or provide them in config.');
|
|
52
|
-
}
|
|
53
|
-
// Cast to our interface to avoid type compatibility issues
|
|
54
|
-
this.kv = vercelKv.createClient({ url, token });
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Disconnect from Vercel KV
|
|
58
|
-
* Vercel KV uses REST API, so there's no persistent connection to close
|
|
59
|
-
*/
|
|
60
|
-
async disconnect() {
|
|
61
|
-
this.kv = null;
|
|
62
|
-
}
|
|
63
|
-
ensureConnected() {
|
|
64
|
-
if (!this.kv) {
|
|
65
|
-
throw new Error('Vercel KV not connected. Call connect() first.');
|
|
66
|
-
}
|
|
67
|
-
return this.kv;
|
|
68
|
-
}
|
|
69
|
-
prefixKey(key) {
|
|
70
|
-
if (!key || key.trim() === '') {
|
|
71
|
-
throw new Error('[ScopedVercelKvStore] key cannot be empty');
|
|
72
|
-
}
|
|
73
|
-
return this.opts.keyPrefix ? `${this.opts.keyPrefix}${key}` : key;
|
|
74
|
-
}
|
|
75
|
-
async get(key) {
|
|
76
|
-
const kv = this.ensureConnected();
|
|
77
|
-
const result = await kv.get(this.prefixKey(key));
|
|
78
|
-
return result ?? null;
|
|
79
|
-
}
|
|
80
|
-
async set(key, value, opts) {
|
|
81
|
-
const kv = this.ensureConnected();
|
|
82
|
-
const prefixedKey = this.prefixKey(key);
|
|
83
|
-
if (opts?.ttlSeconds && opts.ttlSeconds > 0) {
|
|
84
|
-
await kv.set(prefixedKey, value, { ex: Math.floor(opts.ttlSeconds) });
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
await kv.set(prefixedKey, value);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
async del(key) {
|
|
91
|
-
const kv = this.ensureConnected();
|
|
92
|
-
await kv.del(this.prefixKey(key));
|
|
93
|
-
}
|
|
94
|
-
async exists(key) {
|
|
95
|
-
const kv = this.ensureConnected();
|
|
96
|
-
const result = await kv.exists(this.prefixKey(key));
|
|
97
|
-
return result === 1;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Get multiple keys
|
|
101
|
-
* Uses Vercel KV's mget for efficiency
|
|
102
|
-
*/
|
|
103
|
-
async mget(keys) {
|
|
104
|
-
if (!keys.length)
|
|
105
|
-
return [];
|
|
106
|
-
const kv = this.ensureConnected();
|
|
107
|
-
const prefixedKeys = keys.map((k) => this.prefixKey(k));
|
|
108
|
-
const results = await kv.mget(...prefixedKeys);
|
|
109
|
-
return results.map((r) => r ?? null);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Set multiple keys
|
|
113
|
-
* Uses Vercel KV's mset for efficiency (no TTL support in bulk)
|
|
114
|
-
* Falls back to sequential sets for TTL support
|
|
115
|
-
*/
|
|
116
|
-
async mset(entries) {
|
|
117
|
-
if (!entries.length)
|
|
118
|
-
return;
|
|
119
|
-
const kv = this.ensureConnected();
|
|
120
|
-
const hasTtl = entries.some((e) => e.opts?.ttlSeconds && e.opts.ttlSeconds > 0);
|
|
121
|
-
if (hasTtl) {
|
|
122
|
-
// Sequential sets to support TTL
|
|
123
|
-
for (const { key, value, opts } of entries) {
|
|
124
|
-
await this.set(key, value, opts);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
// Bulk set without TTL
|
|
129
|
-
const kvPairs = {};
|
|
130
|
-
for (const { key, value } of entries) {
|
|
131
|
-
kvPairs[this.prefixKey(key)] = value;
|
|
132
|
-
}
|
|
133
|
-
await kv.mset(kvPairs);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
async incr(key) {
|
|
137
|
-
const kv = this.ensureConnected();
|
|
138
|
-
return kv.incr(this.prefixKey(key));
|
|
139
|
-
}
|
|
140
|
-
async decr(key) {
|
|
141
|
-
const kv = this.ensureConnected();
|
|
142
|
-
return kv.decr(this.prefixKey(key));
|
|
143
|
-
}
|
|
144
|
-
async expire(key, ttlSeconds) {
|
|
145
|
-
const kv = this.ensureConnected();
|
|
146
|
-
await kv.expire(this.prefixKey(key), Math.floor(ttlSeconds));
|
|
147
|
-
}
|
|
148
|
-
async ttl(key) {
|
|
149
|
-
const kv = this.ensureConnected();
|
|
150
|
-
const t = await kv.ttl(this.prefixKey(key));
|
|
151
|
-
return t < 0 ? null : t;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
exports.ScopedVercelKvStore = ScopedVercelKvStore;
|
|
155
|
-
//# sourceMappingURL=store.vercel-kv.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.vercel-kv.adapter.js","sourceRoot":"","sources":["../../../../src/store/adapters/store.vercel-kv.adapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Vercel KV Store Adapter\n *\n * Store adapter implementation using Vercel KV (edge-compatible REST-based key-value store).\n * Uses dynamic import to avoid bundling @vercel/kv for non-Vercel deployments.\n *\n * @see https://vercel.com/docs/storage/vercel-kv\n */\n\nimport { StoreBaseAdapter } from './store.base.adapter';\nimport type { SetOptions } from '../store.types';\n\n// Interface for the Vercel KV client (matches @vercel/kv API)\ninterface VercelKVClient {\n get<T = unknown>(key: string): Promise<T | null>;\n set(key: string, value: unknown, options?: { ex?: number; px?: number }): Promise<void>;\n del(...keys: string[]): Promise<number>;\n exists(...keys: string[]): Promise<number>;\n mget<T = unknown>(...keys: string[]): Promise<(T | null)[]>;\n mset(data: Record<string, unknown>): Promise<void>;\n incr(key: string): Promise<number>;\n decr(key: string): Promise<number>;\n expire(key: string, seconds: number): Promise<number>;\n pexpire(key: string, milliseconds: number): Promise<number>;\n ttl(key: string): Promise<number>;\n}\n\nexport interface VercelKvAdapterOptions {\n /**\n * KV REST API URL\n * @default process.env.KV_REST_API_URL\n */\n url?: string;\n\n /**\n * KV REST API Token\n * @default process.env.KV_REST_API_TOKEN\n */\n token?: string;\n\n /**\n * Key prefix for all keys\n * @default ''\n */\n keyPrefix?: string;\n}\n\n/**\n * Vercel KV Store Adapter\n *\n * Implements the StoreDriver interface using Vercel KV.\n * Note: Pub/Sub is not supported by Vercel KV (REST-based).\n * The base class provides no-op implementations for publish/subscribe.\n *\n * @example\n * ```typescript\n * const store = new ScopedVercelKvStore({\n * url: process.env.KV_REST_API_URL,\n * token: process.env.KV_REST_API_TOKEN,\n * keyPrefix: 'myapp:',\n * });\n * await store.connect();\n * await store.set('key', 'value', { ttlSeconds: 3600 });\n * const value = await store.get('key');\n * ```\n */\nexport class ScopedVercelKvStore extends StoreBaseAdapter {\n private kv: VercelKVClient | null = null;\n private readonly opts: VercelKvAdapterOptions;\n\n constructor(opts: VercelKvAdapterOptions = {}) {\n super();\n this.opts = opts;\n }\n\n /**\n * Connect to Vercel KV\n * Uses dynamic import to avoid bundling @vercel/kv when not used\n */\n async connect(): Promise<void> {\n if (this.kv) return;\n\n // Dynamic import for tree-shaking\n const vercelKv = await import('@vercel/kv');\n\n const url = this.opts.url || process.env['KV_REST_API_URL'];\n const token = this.opts.token || process.env['KV_REST_API_TOKEN'];\n\n if (!url || !token) {\n throw new Error(\n 'Vercel KV requires url and token. Set KV_REST_API_URL and KV_REST_API_TOKEN environment variables or provide them in config.',\n );\n }\n\n // Cast to our interface to avoid type compatibility issues\n this.kv = vercelKv.createClient({ url, token }) as unknown as VercelKVClient;\n }\n\n /**\n * Disconnect from Vercel KV\n * Vercel KV uses REST API, so there's no persistent connection to close\n */\n async disconnect(): Promise<void> {\n this.kv = null;\n }\n\n private ensureConnected(): VercelKVClient {\n if (!this.kv) {\n throw new Error('Vercel KV not connected. Call connect() first.');\n }\n return this.kv;\n }\n\n private prefixKey(key: string): string {\n if (!key || key.trim() === '') {\n throw new Error('[ScopedVercelKvStore] key cannot be empty');\n }\n return this.opts.keyPrefix ? `${this.opts.keyPrefix}${key}` : key;\n }\n\n async get(key: string): Promise<string | null> {\n const kv = this.ensureConnected();\n const result = await kv.get<string>(this.prefixKey(key));\n return result ?? null;\n }\n\n async set(key: string, value: string, opts?: SetOptions): Promise<void> {\n const kv = this.ensureConnected();\n const prefixedKey = this.prefixKey(key);\n\n if (opts?.ttlSeconds && opts.ttlSeconds > 0) {\n await kv.set(prefixedKey, value, { ex: Math.floor(opts.ttlSeconds) });\n } else {\n await kv.set(prefixedKey, value);\n }\n }\n\n async del(key: string): Promise<void> {\n const kv = this.ensureConnected();\n await kv.del(this.prefixKey(key));\n }\n\n async exists(key: string): Promise<boolean> {\n const kv = this.ensureConnected();\n const result = await kv.exists(this.prefixKey(key));\n return result === 1;\n }\n\n /**\n * Get multiple keys\n * Uses Vercel KV's mget for efficiency\n */\n override async mget(keys: string[]): Promise<(string | null)[]> {\n if (!keys.length) return [];\n const kv = this.ensureConnected();\n const prefixedKeys = keys.map((k) => this.prefixKey(k));\n const results = await kv.mget<string>(...prefixedKeys);\n return results.map((r) => r ?? null);\n }\n\n /**\n * Set multiple keys\n * Uses Vercel KV's mset for efficiency (no TTL support in bulk)\n * Falls back to sequential sets for TTL support\n */\n override async mset(entries: Array<{ key: string; value: string; opts?: SetOptions }>): Promise<void> {\n if (!entries.length) return;\n\n const kv = this.ensureConnected();\n const hasTtl = entries.some((e) => e.opts?.ttlSeconds && e.opts.ttlSeconds > 0);\n\n if (hasTtl) {\n // Sequential sets to support TTL\n for (const { key, value, opts } of entries) {\n await this.set(key, value, opts);\n }\n } else {\n // Bulk set without TTL\n const kvPairs: Record<string, string> = {};\n for (const { key, value } of entries) {\n kvPairs[this.prefixKey(key)] = value;\n }\n await kv.mset(kvPairs);\n }\n }\n\n async incr(key: string): Promise<number> {\n const kv = this.ensureConnected();\n return kv.incr(this.prefixKey(key));\n }\n\n async decr(key: string): Promise<number> {\n const kv = this.ensureConnected();\n return kv.decr(this.prefixKey(key));\n }\n\n async expire(key: string, ttlSeconds: number): Promise<void> {\n const kv = this.ensureConnected();\n await kv.expire(this.prefixKey(key), Math.floor(ttlSeconds));\n }\n\n async ttl(key: string): Promise<number | null> {\n const kv = this.ensureConnected();\n const t = await kv.ttl(this.prefixKey(key));\n return t < 0 ? null : t;\n }\n\n // Note: Pub/Sub is not supported by Vercel KV (REST-based)\n // Base class provides no-op implementations that return 0 for publish\n // and a no-op unsubscribe function for subscribe\n}\n"]}
|
package/src/store/index.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./store.types"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./store.tokens"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./store.utils"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./store.registry"), exports);
|
|
8
|
-
tslib_1.__exportStar(require("./store.helpers"), exports);
|
|
9
|
-
tslib_1.__exportStar(require("./store.factory"), exports);
|
|
10
|
-
tslib_1.__exportStar(require("./adapters/store.base.adapter"), exports);
|
|
11
|
-
tslib_1.__exportStar(require("./adapters/store.redis.adapter"), exports);
|
|
12
|
-
tslib_1.__exportStar(require("./adapters/store.memory.adapter"), exports);
|
|
13
|
-
tslib_1.__exportStar(require("./adapters/store.vercel-kv.adapter"), exports);
|
|
14
|
-
//# sourceMappingURL=index.js.map
|
package/src/store/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/store/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,yDAA+B;AAC/B,wDAA8B;AAC9B,2DAAiC;AACjC,0DAAgC;AAChC,0DAAgC;AAChC,wEAA8C;AAC9C,yEAA+C;AAC/C,0EAAgD;AAChD,6EAAmD","sourcesContent":["export * from './store.types';\nexport * from './store.tokens';\nexport * from './store.utils';\nexport * from './store.registry';\nexport * from './store.helpers';\nexport * from './store.factory';\nexport * from './adapters/store.base.adapter';\nexport * from './adapters/store.redis.adapter';\nexport * from './adapters/store.memory.adapter';\nexport * from './adapters/store.vercel-kv.adapter';\n"]}
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Storage Factory
|
|
4
|
-
*
|
|
5
|
-
* Factory functions for creating store drivers and session stores
|
|
6
|
-
* based on configuration. Supports both Redis and Vercel KV providers.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.createStoreDriver = createStoreDriver;
|
|
10
|
-
exports.createSessionStore = createSessionStore;
|
|
11
|
-
exports.createSessionStoreSync = createSessionStoreSync;
|
|
12
|
-
exports.createPubsubStore = createPubsubStore;
|
|
13
|
-
const redis_options_1 = require("../common/types/options/redis.options");
|
|
14
|
-
/**
|
|
15
|
-
* Create a store driver based on configuration
|
|
16
|
-
*
|
|
17
|
-
* @param options - Storage configuration (Redis or Vercel KV)
|
|
18
|
-
* @returns A store driver instance (not connected)
|
|
19
|
-
*
|
|
20
|
-
* @example Redis
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const driver = createStoreDriver({
|
|
23
|
-
* provider: 'redis',
|
|
24
|
-
* host: 'localhost',
|
|
25
|
-
* port: 6379,
|
|
26
|
-
* });
|
|
27
|
-
* await driver.connect();
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
|
-
* @example Vercel KV
|
|
31
|
-
* ```typescript
|
|
32
|
-
* const driver = createStoreDriver({
|
|
33
|
-
* provider: 'vercel-kv',
|
|
34
|
-
* // Uses KV_REST_API_URL and KV_REST_API_TOKEN env vars
|
|
35
|
-
* });
|
|
36
|
-
* await driver.connect();
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
function createStoreDriver(options) {
|
|
40
|
-
if ((0, redis_options_1.isVercelKvProvider)(options)) {
|
|
41
|
-
return createVercelKvStoreDriver(options);
|
|
42
|
-
}
|
|
43
|
-
if ((0, redis_options_1.isRedisProvider)(options)) {
|
|
44
|
-
return createRedisStoreDriver(options);
|
|
45
|
-
}
|
|
46
|
-
// Fallback for legacy format without provider field
|
|
47
|
-
return createRedisStoreDriver(options);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Create a Redis store driver
|
|
51
|
-
*/
|
|
52
|
-
function createRedisStoreDriver(options) {
|
|
53
|
-
// Lazy import to avoid bundling ioredis when not used
|
|
54
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
55
|
-
const { ScopedRedisStore } = require('./adapters/store.redis.adapter');
|
|
56
|
-
return new ScopedRedisStore({
|
|
57
|
-
options: {
|
|
58
|
-
host: options.host,
|
|
59
|
-
port: options.port,
|
|
60
|
-
password: options.password,
|
|
61
|
-
db: options.db,
|
|
62
|
-
tls: options.tls ? {} : undefined,
|
|
63
|
-
keyPrefix: options.keyPrefix,
|
|
64
|
-
},
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Create a Vercel KV store driver
|
|
69
|
-
*/
|
|
70
|
-
function createVercelKvStoreDriver(options) {
|
|
71
|
-
// Lazy import to avoid bundling @vercel/kv when not used
|
|
72
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
73
|
-
const { ScopedVercelKvStore } = require('./adapters/store.vercel-kv.adapter');
|
|
74
|
-
return new ScopedVercelKvStore({
|
|
75
|
-
url: options.url,
|
|
76
|
-
token: options.token,
|
|
77
|
-
keyPrefix: options.keyPrefix,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Create a session store based on configuration
|
|
82
|
-
*
|
|
83
|
-
* @param options - Storage configuration (Redis or Vercel KV)
|
|
84
|
-
* @param logger - Optional logger instance
|
|
85
|
-
* @returns A session store instance
|
|
86
|
-
*
|
|
87
|
-
* @example Redis
|
|
88
|
-
* ```typescript
|
|
89
|
-
* const store = await createSessionStore({
|
|
90
|
-
* provider: 'redis',
|
|
91
|
-
* host: 'localhost',
|
|
92
|
-
* port: 6379,
|
|
93
|
-
* });
|
|
94
|
-
* ```
|
|
95
|
-
*
|
|
96
|
-
* @example Vercel KV
|
|
97
|
-
* ```typescript
|
|
98
|
-
* const store = await createSessionStore({
|
|
99
|
-
* provider: 'vercel-kv',
|
|
100
|
-
* });
|
|
101
|
-
* ```
|
|
102
|
-
*/
|
|
103
|
-
async function createSessionStore(options, logger) {
|
|
104
|
-
if ((0, redis_options_1.isVercelKvProvider)(options)) {
|
|
105
|
-
return createVercelKvSessionStore(options, logger);
|
|
106
|
-
}
|
|
107
|
-
if ((0, redis_options_1.isRedisProvider)(options)) {
|
|
108
|
-
return createRedisSessionStore(options, logger);
|
|
109
|
-
}
|
|
110
|
-
// Fallback for legacy format without provider field
|
|
111
|
-
return createRedisSessionStore(options, logger);
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Create a Redis session store
|
|
115
|
-
*/
|
|
116
|
-
async function createRedisSessionStore(options, logger) {
|
|
117
|
-
// Lazy require to avoid bundling ioredis when not used
|
|
118
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
119
|
-
const { RedisSessionStore } = require('../auth/session/redis-session.store');
|
|
120
|
-
return new RedisSessionStore({
|
|
121
|
-
host: options.host,
|
|
122
|
-
port: options.port,
|
|
123
|
-
password: options.password,
|
|
124
|
-
db: options.db,
|
|
125
|
-
tls: options.tls,
|
|
126
|
-
keyPrefix: options.keyPrefix ? `${options.keyPrefix}session:` : 'mcp:session:',
|
|
127
|
-
defaultTtlMs: options.defaultTtlMs,
|
|
128
|
-
}, logger);
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Create a Vercel KV session store
|
|
132
|
-
*/
|
|
133
|
-
async function createVercelKvSessionStore(options, logger) {
|
|
134
|
-
// Lazy require to avoid bundling @vercel/kv when not used
|
|
135
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
136
|
-
const { VercelKvSessionStore } = require('../auth/session/vercel-kv-session.store');
|
|
137
|
-
const store = new VercelKvSessionStore({
|
|
138
|
-
url: options.url,
|
|
139
|
-
token: options.token,
|
|
140
|
-
keyPrefix: options.keyPrefix ? `${options.keyPrefix}session:` : 'mcp:session:',
|
|
141
|
-
defaultTtlMs: options.defaultTtlMs,
|
|
142
|
-
}, logger);
|
|
143
|
-
// Pre-connect for Vercel KV
|
|
144
|
-
await store.connect();
|
|
145
|
-
return store;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Create a session store synchronously (for backwards compatibility)
|
|
149
|
-
* Note: For Vercel KV, use createSessionStore() instead as it requires async connect
|
|
150
|
-
*
|
|
151
|
-
* @param options - Storage configuration (Redis only)
|
|
152
|
-
* @param logger - Optional logger instance
|
|
153
|
-
* @returns A session store instance
|
|
154
|
-
*/
|
|
155
|
-
function createSessionStoreSync(options, logger) {
|
|
156
|
-
if ((0, redis_options_1.isVercelKvProvider)(options)) {
|
|
157
|
-
throw new Error('Vercel KV session store requires async initialization. Use createSessionStore() instead.');
|
|
158
|
-
}
|
|
159
|
-
// Redis only - synchronous creation
|
|
160
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
161
|
-
const { RedisSessionStore } = require('../auth/session/redis-session.store');
|
|
162
|
-
const redisOptions = (0, redis_options_1.isRedisProvider)(options) ? options : options;
|
|
163
|
-
return new RedisSessionStore({
|
|
164
|
-
host: redisOptions.host,
|
|
165
|
-
port: redisOptions.port,
|
|
166
|
-
password: redisOptions.password,
|
|
167
|
-
db: redisOptions.db,
|
|
168
|
-
tls: redisOptions.tls,
|
|
169
|
-
keyPrefix: redisOptions.keyPrefix ? `${redisOptions.keyPrefix}session:` : 'mcp:session:',
|
|
170
|
-
defaultTtlMs: redisOptions.defaultTtlMs,
|
|
171
|
-
}, logger);
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Create a pub/sub store for resource subscriptions
|
|
175
|
-
*
|
|
176
|
-
* Pub/Sub requires Redis - Vercel KV does not support pub/sub operations.
|
|
177
|
-
* Use this when you need resource subscriptions with Vercel KV for sessions.
|
|
178
|
-
*
|
|
179
|
-
* @param options - Pub/sub configuration (Redis only)
|
|
180
|
-
* @returns A Redis store driver with pub/sub support
|
|
181
|
-
*
|
|
182
|
-
* @example Hybrid config
|
|
183
|
-
* ```typescript
|
|
184
|
-
* // Use Vercel KV for sessions, Redis for pub/sub
|
|
185
|
-
* const sessionStore = await createSessionStore({ provider: 'vercel-kv' });
|
|
186
|
-
* const pubsubStore = createPubsubStore({ host: 'localhost', port: 6379 });
|
|
187
|
-
* ```
|
|
188
|
-
*/
|
|
189
|
-
function createPubsubStore(options) {
|
|
190
|
-
// PubsubOptions only allows Redis provider, so we can safely cast
|
|
191
|
-
const redisOptions = options;
|
|
192
|
-
return createRedisStoreDriver(redisOptions);
|
|
193
|
-
}
|
|
194
|
-
//# sourceMappingURL=store.factory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.factory.js","sourceRoot":"","sources":["../../../src/store/store.factory.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Storage Factory\n *\n * Factory functions for creating store drivers and session stores\n * based on configuration. Supports both Redis and Vercel KV providers.\n */\n\nimport type { StoreDriver } from './store.types';\nimport type { SessionStore } from '../auth/session/transport-session.types';\nimport type { FrontMcpLogger } from '../common/interfaces/logger.interface';\nimport {\n type RedisOptions,\n type RedisProviderOptions,\n type VercelKvProviderOptions,\n type PubsubOptions,\n isRedisProvider,\n isVercelKvProvider,\n} from '../common/types/options/redis.options';\n\n/**\n * Create a store driver based on configuration\n *\n * @param options - Storage configuration (Redis or Vercel KV)\n * @returns A store driver instance (not connected)\n *\n * @example Redis\n * ```typescript\n * const driver = createStoreDriver({\n * provider: 'redis',\n * host: 'localhost',\n * port: 6379,\n * });\n * await driver.connect();\n * ```\n *\n * @example Vercel KV\n * ```typescript\n * const driver = createStoreDriver({\n * provider: 'vercel-kv',\n * // Uses KV_REST_API_URL and KV_REST_API_TOKEN env vars\n * });\n * await driver.connect();\n * ```\n */\nexport function createStoreDriver(options: RedisOptions): StoreDriver {\n if (isVercelKvProvider(options)) {\n return createVercelKvStoreDriver(options);\n }\n\n if (isRedisProvider(options)) {\n return createRedisStoreDriver(options);\n }\n\n // Fallback for legacy format without provider field\n return createRedisStoreDriver(options as RedisProviderOptions);\n}\n\n/**\n * Create a Redis store driver\n */\nfunction createRedisStoreDriver(options: RedisProviderOptions): StoreDriver {\n // Lazy import to avoid bundling ioredis when not used\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { ScopedRedisStore } = require('./adapters/store.redis.adapter');\n\n return new ScopedRedisStore({\n options: {\n host: options.host,\n port: options.port,\n password: options.password,\n db: options.db,\n tls: options.tls ? {} : undefined,\n keyPrefix: options.keyPrefix,\n },\n });\n}\n\n/**\n * Create a Vercel KV store driver\n */\nfunction createVercelKvStoreDriver(options: VercelKvProviderOptions): StoreDriver {\n // Lazy import to avoid bundling @vercel/kv when not used\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { ScopedVercelKvStore } = require('./adapters/store.vercel-kv.adapter');\n\n return new ScopedVercelKvStore({\n url: options.url,\n token: options.token,\n keyPrefix: options.keyPrefix,\n });\n}\n\n/**\n * Create a session store based on configuration\n *\n * @param options - Storage configuration (Redis or Vercel KV)\n * @param logger - Optional logger instance\n * @returns A session store instance\n *\n * @example Redis\n * ```typescript\n * const store = await createSessionStore({\n * provider: 'redis',\n * host: 'localhost',\n * port: 6379,\n * });\n * ```\n *\n * @example Vercel KV\n * ```typescript\n * const store = await createSessionStore({\n * provider: 'vercel-kv',\n * });\n * ```\n */\nexport async function createSessionStore(options: RedisOptions, logger?: FrontMcpLogger): Promise<SessionStore> {\n if (isVercelKvProvider(options)) {\n return createVercelKvSessionStore(options, logger);\n }\n\n if (isRedisProvider(options)) {\n return createRedisSessionStore(options, logger);\n }\n\n // Fallback for legacy format without provider field\n return createRedisSessionStore(options as RedisProviderOptions, logger);\n}\n\n/**\n * Create a Redis session store\n */\nasync function createRedisSessionStore(options: RedisProviderOptions, logger?: FrontMcpLogger): Promise<SessionStore> {\n // Lazy require to avoid bundling ioredis when not used\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { RedisSessionStore } = require('../auth/session/redis-session.store');\n\n return new RedisSessionStore(\n {\n host: options.host,\n port: options.port,\n password: options.password,\n db: options.db,\n tls: options.tls,\n keyPrefix: options.keyPrefix ? `${options.keyPrefix}session:` : 'mcp:session:',\n defaultTtlMs: options.defaultTtlMs,\n },\n logger,\n );\n}\n\n/**\n * Create a Vercel KV session store\n */\nasync function createVercelKvSessionStore(\n options: VercelKvProviderOptions,\n logger?: FrontMcpLogger,\n): Promise<SessionStore> {\n // Lazy require to avoid bundling @vercel/kv when not used\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { VercelKvSessionStore } = require('../auth/session/vercel-kv-session.store');\n\n const store = new VercelKvSessionStore(\n {\n url: options.url,\n token: options.token,\n keyPrefix: options.keyPrefix ? `${options.keyPrefix}session:` : 'mcp:session:',\n defaultTtlMs: options.defaultTtlMs,\n },\n logger,\n );\n\n // Pre-connect for Vercel KV\n await store.connect();\n\n return store;\n}\n\n/**\n * Create a session store synchronously (for backwards compatibility)\n * Note: For Vercel KV, use createSessionStore() instead as it requires async connect\n *\n * @param options - Storage configuration (Redis only)\n * @param logger - Optional logger instance\n * @returns A session store instance\n */\nexport function createSessionStoreSync(options: RedisOptions, logger?: FrontMcpLogger): SessionStore {\n if (isVercelKvProvider(options)) {\n throw new Error('Vercel KV session store requires async initialization. Use createSessionStore() instead.');\n }\n\n // Redis only - synchronous creation\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { RedisSessionStore } = require('../auth/session/redis-session.store');\n const redisOptions = isRedisProvider(options) ? options : (options as RedisProviderOptions);\n\n return new RedisSessionStore(\n {\n host: redisOptions.host,\n port: redisOptions.port,\n password: redisOptions.password,\n db: redisOptions.db,\n tls: redisOptions.tls,\n keyPrefix: redisOptions.keyPrefix ? `${redisOptions.keyPrefix}session:` : 'mcp:session:',\n defaultTtlMs: redisOptions.defaultTtlMs,\n },\n logger,\n );\n}\n\n/**\n * Create a pub/sub store for resource subscriptions\n *\n * Pub/Sub requires Redis - Vercel KV does not support pub/sub operations.\n * Use this when you need resource subscriptions with Vercel KV for sessions.\n *\n * @param options - Pub/sub configuration (Redis only)\n * @returns A Redis store driver with pub/sub support\n *\n * @example Hybrid config\n * ```typescript\n * // Use Vercel KV for sessions, Redis for pub/sub\n * const sessionStore = await createSessionStore({ provider: 'vercel-kv' });\n * const pubsubStore = createPubsubStore({ host: 'localhost', port: 6379 });\n * ```\n */\nexport function createPubsubStore(options: PubsubOptions): StoreDriver {\n // PubsubOptions only allows Redis provider, so we can safely cast\n const redisOptions = options as RedisProviderOptions;\n return createRedisStoreDriver(redisOptions);\n}\n"]}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useStore = useStore;
|
|
4
|
-
exports.setMany = setMany;
|
|
5
|
-
exports.getMany = getMany;
|
|
6
|
-
const store_registry_1 = require("./store.registry");
|
|
7
|
-
const store_utils_1 = require("./store.utils");
|
|
8
|
-
function useStore(scope, storeName) {
|
|
9
|
-
const registry = (0, store_registry_1.getRegistryForScope)(scope.id);
|
|
10
|
-
const driver = registry.ensure(storeName);
|
|
11
|
-
return function forPrefix(prefix) {
|
|
12
|
-
return {
|
|
13
|
-
scope,
|
|
14
|
-
prefix,
|
|
15
|
-
storeName,
|
|
16
|
-
async get(key) {
|
|
17
|
-
const raw = await driver.get((0, store_utils_1.buildDataKey)(scope, prefix, String(key)));
|
|
18
|
-
return store_utils_1.Json.decode(raw);
|
|
19
|
-
},
|
|
20
|
-
async set(key, value, opts) {
|
|
21
|
-
await driver.set((0, store_utils_1.buildDataKey)(scope, prefix, String(key)), store_utils_1.Json.encode(value), opts);
|
|
22
|
-
},
|
|
23
|
-
async del(key) {
|
|
24
|
-
await driver.del((0, store_utils_1.buildDataKey)(scope, prefix, String(key)));
|
|
25
|
-
},
|
|
26
|
-
async exists(key) {
|
|
27
|
-
return driver.exists((0, store_utils_1.buildDataKey)(scope, prefix, String(key)));
|
|
28
|
-
},
|
|
29
|
-
async incr(key) {
|
|
30
|
-
return driver.incr((0, store_utils_1.buildDataKey)(scope, prefix, String(key)));
|
|
31
|
-
},
|
|
32
|
-
async decr(key) {
|
|
33
|
-
return driver.decr((0, store_utils_1.buildDataKey)(scope, prefix, String(key)));
|
|
34
|
-
},
|
|
35
|
-
async expire(key, ttlSeconds) {
|
|
36
|
-
await driver.expire((0, store_utils_1.buildDataKey)(scope, prefix, String(key)), ttlSeconds);
|
|
37
|
-
},
|
|
38
|
-
async ttl(key) {
|
|
39
|
-
return driver.ttl((0, store_utils_1.buildDataKey)(scope, prefix, String(key)));
|
|
40
|
-
},
|
|
41
|
-
async publish(channel, message) {
|
|
42
|
-
return driver.publish((0, store_utils_1.buildChannel)(scope, prefix, channel), message);
|
|
43
|
-
},
|
|
44
|
-
async subscribe(channel, handler) {
|
|
45
|
-
const ch = (0, store_utils_1.buildChannel)(scope, prefix, channel);
|
|
46
|
-
return driver.subscribe(ch, handler);
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
// Batch helpers bound to a store name
|
|
52
|
-
async function setMany(scope, storeName, prefix, entries) {
|
|
53
|
-
const { ensure } = (0, store_registry_1.getRegistryForScope)(scope.id);
|
|
54
|
-
const driver = ensure(storeName);
|
|
55
|
-
await driver.mset(entries.map((e) => ({
|
|
56
|
-
key: (0, store_utils_1.buildDataKey)(scope, prefix, String(e.key)),
|
|
57
|
-
value: store_utils_1.Json.encode(e.value),
|
|
58
|
-
opts: e.opts,
|
|
59
|
-
})));
|
|
60
|
-
}
|
|
61
|
-
async function getMany(scope, storeName, prefix, keys) {
|
|
62
|
-
const driver = (0, store_registry_1.getRegistryForScope)(scope.id).ensure(storeName);
|
|
63
|
-
const fullKeys = keys.map((k) => (0, store_utils_1.buildDataKey)(scope, prefix, String(k)));
|
|
64
|
-
const res = await driver.mget(fullKeys);
|
|
65
|
-
return res.map((r) => store_utils_1.Json.decode(r));
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=store.helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.helpers.js","sourceRoot":"","sources":["../../../src/store/store.helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AllPrefixes, KeysFor, PrefixStore, SetOptions, ValueFor } from './store.types';\nimport { getRegistryForScope } from './store.registry';\nimport { buildChannel, buildDataKey, Json } from './store.utils';\nimport { Scope } from '../scope/scope.instance';\n\nexport function useStore(scope: Scope, storeName: string) {\n const registry = getRegistryForScope(scope.id);\n const driver = registry.ensure(storeName);\n\n return function forPrefix<P extends AllPrefixes>(prefix: P): PrefixStore<P> {\n return {\n scope,\n prefix,\n storeName,\n\n async get<K extends KeysFor<P>>(key: K) {\n const raw = await driver.get(buildDataKey(scope, prefix, String(key)));\n return Json.decode<ValueFor<P, K>>(raw);\n },\n async set<K extends KeysFor<P>>(key: K, value: ValueFor<P, K>, opts?: SetOptions) {\n await driver.set(buildDataKey(scope, prefix, String(key)), Json.encode(value), opts);\n },\n async del<K extends KeysFor<P>>(key: K) {\n await driver.del(buildDataKey(scope, prefix, String(key)));\n },\n async exists<K extends KeysFor<P>>(key: K) {\n return driver.exists(buildDataKey(scope, prefix, String(key)));\n },\n async incr<K extends KeysFor<P>>(key: K) {\n return driver.incr(buildDataKey(scope, prefix, String(key)));\n },\n async decr<K extends KeysFor<P>>(key: K) {\n return driver.decr(buildDataKey(scope, prefix, String(key)));\n },\n async expire<K extends KeysFor<P>>(key: K, ttlSeconds: number) {\n await driver.expire(buildDataKey(scope, prefix, String(key)), ttlSeconds);\n },\n async ttl<K extends KeysFor<P>>(key: K) {\n return driver.ttl(buildDataKey(scope, prefix, String(key)));\n },\n async publish(channel: string, message: string) {\n return driver.publish(buildChannel(scope, prefix, channel), message);\n },\n async subscribe(channel: string, handler: (message: string) => void) {\n const ch = buildChannel(scope, prefix, channel);\n return driver.subscribe(ch, handler);\n },\n } satisfies PrefixStore<P>;\n };\n}\n\n// Batch helpers bound to a store name\nexport async function setMany<P extends AllPrefixes, K extends KeysFor<P>>(\n scope: Scope,\n storeName: string,\n prefix: P,\n entries: Array<{ key: K; value: ValueFor<P, K>; opts?: SetOptions }>,\n): Promise<void> {\n const { ensure } = getRegistryForScope(scope.id);\n const driver = ensure(storeName);\n await driver.mset(\n entries.map((e) => ({\n key: buildDataKey(scope, prefix, String(e.key)),\n value: Json.encode(e.value),\n opts: e.opts,\n })),\n );\n}\n\nexport async function getMany<P extends AllPrefixes, K extends KeysFor<P>, V = ValueFor<P, K>>(\n scope: Scope,\n storeName: string,\n prefix: P,\n keys: K[],\n): Promise<Array<V | null>> {\n const driver = getRegistryForScope(scope.id).ensure(storeName);\n const fullKeys = keys.map((k) => buildDataKey(scope, prefix, String(k)));\n const res = await driver.mget(fullKeys);\n return res.map((r) => Json.decode<V>(r));\n}\n"]}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StoreRegistry = void 0;
|
|
4
|
-
exports.configureStoreRegistryLocator = configureStoreRegistryLocator;
|
|
5
|
-
exports.getRegistryForScope = getRegistryForScope;
|
|
6
|
-
class StoreRegistry {
|
|
7
|
-
map = new Map();
|
|
8
|
-
register(name, driver) {
|
|
9
|
-
this.map.set(name, driver);
|
|
10
|
-
}
|
|
11
|
-
get(name) {
|
|
12
|
-
return this.map.get(name);
|
|
13
|
-
}
|
|
14
|
-
ensure(name) {
|
|
15
|
-
const d = this.map.get(name);
|
|
16
|
-
if (!d)
|
|
17
|
-
throw new Error(`No store driver named "${name}"`);
|
|
18
|
-
return d;
|
|
19
|
-
}
|
|
20
|
-
has(name) {
|
|
21
|
-
return this.map.has(name);
|
|
22
|
-
}
|
|
23
|
-
list() {
|
|
24
|
-
return Array.from(this.map.keys());
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.StoreRegistry = StoreRegistry;
|
|
28
|
-
let locator = null;
|
|
29
|
-
function configureStoreRegistryLocator(l) {
|
|
30
|
-
locator = l;
|
|
31
|
-
}
|
|
32
|
-
function getRegistryForScope(scopeId) {
|
|
33
|
-
if (!locator)
|
|
34
|
-
throw new Error('StoreRegistry locator not configured');
|
|
35
|
-
return locator(scopeId);
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=store.registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.registry.js","sourceRoot":"","sources":["../../../src/store/store.registry.ts"],"names":[],"mappings":";;;AA2BA,sEAEC;AACD,kDAGC;AA9BD,MAAa,aAAa;IACP,GAAG,GAAG,IAAI,GAAG,EAAuB,CAAC;IACtD,QAAQ,CAAC,IAAY,EAAE,MAAmB;QACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IACD,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,CAAC,IAAY;QACjB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,GAAG,CAAC,CAAC;QAC3D,OAAO,CAAC,CAAC;IACX,CAAC;IACD,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;CACF;AAnBD,sCAmBC;AAGD,IAAI,OAAO,GAAgC,IAAI,CAAC;AAEhD,SAAgB,6BAA6B,CAAC,CAAuB;IACnE,OAAO,GAAG,CAAC,CAAC;AACd,CAAC;AACD,SAAgB,mBAAmB,CAAC,OAAoB;IACtD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC","sourcesContent":["import type { StoreDriver, StoreRegistryInterface } from './store.types';\nimport { Scope } from '../scope';\n\nexport class StoreRegistry implements StoreRegistryInterface {\n private readonly map = new Map<string, StoreDriver>();\n register(name: string, driver: StoreDriver): void {\n this.map.set(name, driver);\n }\n get(name: string): StoreDriver | undefined {\n return this.map.get(name);\n }\n ensure(name: string): StoreDriver {\n const d = this.map.get(name);\n if (!d) throw new Error(`No store driver named \"${name}\"`);\n return d;\n }\n has(name: string): boolean {\n return this.map.has(name);\n }\n list(): string[] {\n return Array.from(this.map.keys());\n }\n}\n\nexport type StoreRegistryLocator = (scopeId: Scope['id']) => StoreRegistryInterface;\nlet locator: StoreRegistryLocator | null = null;\n\nexport function configureStoreRegistryLocator(l: StoreRegistryLocator) {\n locator = l;\n}\nexport function getRegistryForScope(scopeId: Scope['id']): StoreRegistryInterface {\n if (!locator) throw new Error('StoreRegistry locator not configured');\n return locator(scopeId);\n}\n"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.STORE_DRIVER_TOKEN = exports.STORE_SCOPE_RESOLVER_TOKEN = exports.STORE_REGISTRY_LOCATOR_TOKEN = void 0;
|
|
4
|
-
exports.STORE_REGISTRY_LOCATOR_TOKEN = Symbol.for('mcp.store.registry_locator');
|
|
5
|
-
exports.STORE_SCOPE_RESOLVER_TOKEN = Symbol.for('mcp.store.scope_resolver');
|
|
6
|
-
exports.STORE_DRIVER_TOKEN = Symbol.for('mcp.store.driver');
|
|
7
|
-
//# sourceMappingURL=store.tokens.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.tokens.js","sourceRoot":"","sources":["../../../src/store/store.tokens.ts"],"names":[],"mappings":";;;AAAa,QAAA,4BAA4B,GAAG,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AACxE,QAAA,0BAA0B,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AACpE,QAAA,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC","sourcesContent":["export const STORE_REGISTRY_LOCATOR_TOKEN = Symbol.for('mcp.store.registry_locator');\nexport const STORE_SCOPE_RESOLVER_TOKEN = Symbol.for('mcp.store.scope_resolver');\nexport const STORE_DRIVER_TOKEN = Symbol.for('mcp.store.driver');\n"]}
|
package/src/store/store.types.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// ──────────────────────────────────────────────────────────────────────────────
|
|
3
|
-
// File: store/store.types.ts
|
|
4
|
-
// Purpose: Shared & extendable types for the storage factory
|
|
5
|
-
// Model: Each *scope* owns its own StoreRegistry (no global map in the lib).
|
|
6
|
-
// Host app provides a registry locator (scope -> registry) via configuration.
|
|
7
|
-
// API: useStore(scope, storeName) => (prefix) => PrefixedStore
|
|
8
|
-
// Extendability via declaration merging: `interface McpKVNamespaces {}`
|
|
9
|
-
// ──────────────────────────────────────────────────────────────────────────────
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
//# sourceMappingURL=store.types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.types.js","sourceRoot":"","sources":["../../../src/store/store.types.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,6BAA6B;AAC7B,6DAA6D;AAC7D,6EAA6E;AAC7E,8EAA8E;AAC9E,+DAA+D;AAC/D,wEAAwE;AACxE,iFAAiF","sourcesContent":["// ──────────────────────────────────────────────────────────────────────────────\n// File: store/store.types.ts\n// Purpose: Shared & extendable types for the storage factory\n// Model: Each *scope* owns its own StoreRegistry (no global map in the lib).\n// Host app provides a registry locator (scope -> registry) via configuration.\n// API: useStore(scope, storeName) => (prefix) => PrefixedStore\n// Extendability via declaration merging: `interface McpKVNamespaces {}`\n// ──────────────────────────────────────────────────────────────────────────────\n\nimport { Scope } from '../scope/scope.instance';\n\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport interface JsonObject {\n [k: string]: JsonValue;\n}\n\nexport type JsonArray = Array<JsonValue>;\n\n\nexport interface SetOptions {\n ttlSeconds?: number;\n}\n\nexport interface StoreDriver {\n connect(): Promise<void>;\n\n disconnect(): Promise<void>;\n\n get(key: string): Promise<string | null>;\n\n set(key: string, value: string, opts?: SetOptions): Promise<void>;\n\n del(key: string): Promise<void>;\n\n exists(key: string): Promise<boolean>;\n\n mget(keys: string[]): Promise<(string | null)[]>;\n\n mset(entries: Array<{ key: string; value: string; opts?: SetOptions }>): Promise<void>;\n\n incr(key: string): Promise<number>;\n\n decr(key: string): Promise<number>;\n\n expire(key: string, ttlSeconds: number): Promise<void>;\n\n ttl(key: string): Promise<number | null>;\n\n publish(channel: string, message: string): Promise<number>;\n\n subscribe(channel: string, handler: (message: string) => void): Promise<() => Promise<void>>;\n}\n\n// A per-scope registry holds multiple named drivers (memory/redis/etc.)\nexport interface StoreRegistryInterface {\n register(name: string, driver: StoreDriver): void;\n\n get(name: string): StoreDriver | undefined;\n\n ensure(name: string): StoreDriver;\n\n has(name: string): boolean;\n\n list(): string[];\n}\n\n// Typed store interface returned by useStore(scope, name)(prefix)\nexport interface PrefixStore<P extends AllPrefixes = string> {\n readonly scope: Scope;\n readonly prefix: P;\n readonly storeName: string;\n\n get<K extends KeysFor<P>>(key: K): Promise<ValueFor<P, K> | null>;\n\n set<K extends KeysFor<P>>(key: K, value: ValueFor<P, K>, opts?: SetOptions): Promise<void>;\n\n del<K extends KeysFor<P>>(key: K): Promise<void>;\n\n exists<K extends KeysFor<P>>(key: K): Promise<boolean>;\n\n incr<K extends KeysFor<P>>(key: K): Promise<number>;\n\n decr<K extends KeysFor<P>>(key: K): Promise<number>;\n\n expire<K extends KeysFor<P>>(key: K, ttlSeconds: number): Promise<void>;\n\n ttl<K extends KeysFor<P>>(key: K): Promise<number | null>;\n\n publish(channel: string, message: string): Promise<number>;\n\n subscribe(channel: string, handler: (message: string) => void): Promise<() => Promise<void>>;\n}\n\ndeclare global {\n // Extendable typings via declaration merging\n export interface McpKVNamespaces {\n [scope: string]: {\n [storeName: string]: {\n [key: string]: unknown;\n };\n };\n }\n}\n\nexport type AllPrefixes = keyof McpKVNamespaces extends never ? string : Extract<keyof McpKVNamespaces, string>;\n\nexport type KeysFor<P> = P extends keyof McpKVNamespaces ? Extract<keyof McpKVNamespaces[P], string> : string;\n\nexport type ValueFor<P, K> = P extends keyof McpKVNamespaces\n ? K extends keyof McpKVNamespaces[P]\n ? McpKVNamespaces[P][K]\n : unknown\n : unknown;\n"]}
|
package/src/store/store.utils.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Json = void 0;
|
|
4
|
-
exports.makeScopeSegment = makeScopeSegment;
|
|
5
|
-
exports.buildDataKey = buildDataKey;
|
|
6
|
-
exports.buildChannel = buildChannel;
|
|
7
|
-
function makeScopeSegment(scope) { return String(scope); }
|
|
8
|
-
function buildDataKey(scope, prefix, key) {
|
|
9
|
-
return `${makeScopeSegment(scope)}:${prefix}${key}`;
|
|
10
|
-
}
|
|
11
|
-
function buildChannel(scope, prefix, channel) {
|
|
12
|
-
return `${makeScopeSegment(scope)}:${prefix}__ch__:${channel}`;
|
|
13
|
-
}
|
|
14
|
-
exports.Json = {
|
|
15
|
-
encode(value) { return JSON.stringify(value); },
|
|
16
|
-
decode(str) { return str == null ? null : JSON.parse(str); },
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=store.utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.utils.js","sourceRoot":"","sources":["../../../src/store/store.utils.ts"],"names":[],"mappings":";;;AAEA,4CAAgF;AAEhF,oCAEC;AAED,oCAEC;AARD,SAAgB,gBAAgB,CAAC,KAAY,IAAY,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEhF,SAAgB,YAAY,CAAC,KAAY,EAAE,MAAc,EAAE,GAAW;IACpE,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;AACtD,CAAC;AAED,SAAgB,YAAY,CAAC,KAAY,EAAE,MAAc,EAAE,OAAe;IACxE,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,MAAM,UAAU,OAAO,EAAE,CAAC;AACjE,CAAC;AAEY,QAAA,IAAI,GAAG;IAClB,MAAM,CAAI,KAAQ,IAAY,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAI,GAAkB,IAAc,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAO,CAAC,CAAC,CAAC;CAChG,CAAC","sourcesContent":["import { Scope } from '../scope/scope.instance';\n\nexport function makeScopeSegment(scope: Scope): string { return String(scope); }\n\nexport function buildDataKey(scope: Scope, prefix: string, key: string): string {\n return `${makeScopeSegment(scope)}:${prefix}${key}`;\n}\n\nexport function buildChannel(scope: Scope, prefix: string, channel: string): string {\n return `${makeScopeSegment(scope)}:${prefix}__ch__:${channel}`;\n}\n\nexport const Json = {\n encode<T>(value: T): string { return JSON.stringify(value); },\n decode<T>(str: string | null): T | null { return str == null ? null : (JSON.parse(str) as T); },\n};\n"]}
|