@frontmcp/sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/package.json +29 -0
- package/src/constants.d.ts +30 -0
- package/src/constants.js +36 -0
- package/src/constants.js.map +1 -0
- package/src/decorators/adapter.decorator.d.ts +7 -0
- package/src/decorators/adapter.decorator.js +20 -0
- package/src/decorators/adapter.decorator.js.map +1 -0
- package/src/decorators/app.decorator.d.ts +7 -0
- package/src/decorators/app.decorator.js +44 -0
- package/src/decorators/app.decorator.js.map +1 -0
- package/src/decorators/auth-provider.decorator.d.ts +7 -0
- package/src/decorators/auth-provider.decorator.js +20 -0
- package/src/decorators/auth-provider.decorator.js.map +1 -0
- package/src/decorators/flow-hooks.decorator.d.ts +12 -0
- package/src/decorators/flow-hooks.decorator.js +63 -0
- package/src/decorators/flow-hooks.decorator.js.map +1 -0
- package/src/decorators/flow.decorator.d.ts +6 -0
- package/src/decorators/flow.decorator.js +19 -0
- package/src/decorators/flow.decorator.js.map +1 -0
- package/src/decorators/front-mcp.decorator.d.ts +6 -0
- package/src/decorators/front-mcp.decorator.js +40 -0
- package/src/decorators/front-mcp.decorator.js.map +1 -0
- package/src/decorators/index.d.ts +12 -0
- package/src/decorators/index.js +16 -0
- package/src/decorators/index.js.map +1 -0
- package/src/decorators/logger.decorator.d.ts +7 -0
- package/src/decorators/logger.decorator.js +20 -0
- package/src/decorators/logger.decorator.js.map +1 -0
- package/src/decorators/plugin.decorator.d.ts +7 -0
- package/src/decorators/plugin.decorator.js +38 -0
- package/src/decorators/plugin.decorator.js.map +1 -0
- package/src/decorators/prompt.decorator.d.ts +13 -0
- package/src/decorators/prompt.decorator.js +38 -0
- package/src/decorators/prompt.decorator.js.map +1 -0
- package/src/decorators/provider.decorator.d.ts +7 -0
- package/src/decorators/provider.decorator.js +20 -0
- package/src/decorators/provider.decorator.js.map +1 -0
- package/src/decorators/resource.decorator.d.ts +17 -0
- package/src/decorators/resource.decorator.js +52 -0
- package/src/decorators/resource.decorator.js.map +1 -0
- package/src/decorators/tool.decorator.d.ts +14 -0
- package/src/decorators/tool.decorator.js +38 -0
- package/src/decorators/tool.decorator.js.map +1 -0
- package/src/decorators-old/async-with.decorator.d.ts +9 -0
- package/src/decorators-old/async-with.decorator.js +23 -0
- package/src/decorators-old/async-with.decorator.js.map +1 -0
- package/src/decorators-old/auth-hook.decorator.d.ts +14 -0
- package/src/decorators-old/auth-hook.decorator.js +27 -0
- package/src/decorators-old/auth-hook.decorator.js.map +1 -0
- package/src/decorators-old/session-hook.decorator.d.ts +14 -0
- package/src/decorators-old/session-hook.decorator.js +27 -0
- package/src/decorators-old/session-hook.decorator.js.map +1 -0
- package/src/decorators-old/tool-hook.decorator.d.ts +14 -0
- package/src/decorators-old/tool-hook.decorator.js +27 -0
- package/src/decorators-old/tool-hook.decorator.js.map +1 -0
- package/src/dynamic/dynamic.adapter.d.ts +42 -0
- package/src/dynamic/dynamic.adapter.js +28 -0
- package/src/dynamic/dynamic.adapter.js.map +1 -0
- package/src/dynamic/dynamic.plugin.d.ts +52 -0
- package/src/dynamic/dynamic.plugin.js +33 -0
- package/src/dynamic/dynamic.plugin.js.map +1 -0
- package/src/dynamic/dynamic.utils.d.ts +3 -0
- package/src/dynamic/dynamic.utils.js +27 -0
- package/src/dynamic/dynamic.utils.js.map +1 -0
- package/src/dynamic/index.d.ts +2 -0
- package/src/dynamic/index.js +6 -0
- package/src/dynamic/index.js.map +1 -0
- package/src/entries/adapter.entry.d.ts +6 -0
- package/src/entries/adapter.entry.js +8 -0
- package/src/entries/adapter.entry.js.map +1 -0
- package/src/entries/app.entry.d.ts +13 -0
- package/src/entries/app.entry.js +9 -0
- package/src/entries/app.entry.js.map +1 -0
- package/src/entries/auth-provider.entry.d.ts +6 -0
- package/src/entries/auth-provider.entry.js +8 -0
- package/src/entries/auth-provider.entry.js.map +1 -0
- package/src/entries/base.entry.d.ts +20 -0
- package/src/entries/base.entry.js +17 -0
- package/src/entries/base.entry.js.map +1 -0
- package/src/entries/flow.entry.d.ts +15 -0
- package/src/entries/flow.entry.js +21 -0
- package/src/entries/flow.entry.js.map +1 -0
- package/src/entries/index.d.ts +12 -0
- package/src/entries/index.js +16 -0
- package/src/entries/index.js.map +1 -0
- package/src/entries/logger.entry.d.ts +6 -0
- package/src/entries/logger.entry.js +8 -0
- package/src/entries/logger.entry.js.map +1 -0
- package/src/entries/plugin.entry.d.ts +6 -0
- package/src/entries/plugin.entry.js +8 -0
- package/src/entries/plugin.entry.js.map +1 -0
- package/src/entries/prompt.entry.d.ts +6 -0
- package/src/entries/prompt.entry.js +8 -0
- package/src/entries/prompt.entry.js.map +1 -0
- package/src/entries/provider.entry.d.ts +7 -0
- package/src/entries/provider.entry.js +8 -0
- package/src/entries/provider.entry.js.map +1 -0
- package/src/entries/resource.entry.d.ts +7 -0
- package/src/entries/resource.entry.js +11 -0
- package/src/entries/resource.entry.js.map +1 -0
- package/src/entries/scope.entry.d.ts +17 -0
- package/src/entries/scope.entry.js +8 -0
- package/src/entries/scope.entry.js.map +1 -0
- package/src/entries/tool.entry.d.ts +15 -0
- package/src/entries/tool.entry.js +11 -0
- package/src/entries/tool.entry.js.map +1 -0
- package/src/index.d.ts +18 -0
- package/src/index.js +22 -0
- package/src/index.js.map +1 -0
- package/src/interfaces/adapter.interface.d.ts +20 -0
- package/src/interfaces/adapter.interface.js +3 -0
- package/src/interfaces/adapter.interface.js.map +1 -0
- package/src/interfaces/app.interface.d.ts +6 -0
- package/src/interfaces/app.interface.js +3 -0
- package/src/interfaces/app.interface.js.map +1 -0
- package/src/interfaces/auth-hook.interface.d.ts +126 -0
- package/src/interfaces/auth-hook.interface.js +135 -0
- package/src/interfaces/auth-hook.interface.js.map +1 -0
- package/src/interfaces/auth-provider.interface.d.ts +22 -0
- package/src/interfaces/auth-provider.interface.js +18 -0
- package/src/interfaces/auth-provider.interface.js.map +1 -0
- package/src/interfaces/base.interface.d.ts +77 -0
- package/src/interfaces/base.interface.js +3 -0
- package/src/interfaces/base.interface.js.map +1 -0
- package/src/interfaces/flow.interface.d.ts +38 -0
- package/src/interfaces/flow.interface.js +69 -0
- package/src/interfaces/flow.interface.js.map +1 -0
- package/src/interfaces/front-mcp.interface.d.ts +5 -0
- package/src/interfaces/front-mcp.interface.js +3 -0
- package/src/interfaces/front-mcp.interface.js.map +1 -0
- package/src/interfaces/index.d.ts +15 -0
- package/src/interfaces/index.js +19 -0
- package/src/interfaces/index.js.map +1 -0
- package/src/interfaces/internal/flow.utils.d.ts +24 -0
- package/src/interfaces/internal/flow.utils.js +83 -0
- package/src/interfaces/internal/flow.utils.js.map +1 -0
- package/src/interfaces/internal/index.d.ts +2 -0
- package/src/interfaces/internal/index.js +7 -0
- package/src/interfaces/internal/index.js.map +1 -0
- package/src/interfaces/internal/primary-auth-provider.interface.d.ts +24 -0
- package/src/interfaces/internal/primary-auth-provider.interface.js +33 -0
- package/src/interfaces/internal/primary-auth-provider.interface.js.map +1 -0
- package/src/interfaces/internal/registry.interface.d.ts +71 -0
- package/src/interfaces/internal/registry.interface.js +3 -0
- package/src/interfaces/internal/registry.interface.js.map +1 -0
- package/src/interfaces/logger.interface.d.ts +42 -0
- package/src/interfaces/logger.interface.js +10 -0
- package/src/interfaces/logger.interface.js.map +1 -0
- package/src/interfaces/plugin.interface.d.ts +8 -0
- package/src/interfaces/plugin.interface.js +3 -0
- package/src/interfaces/plugin.interface.js.map +1 -0
- package/src/interfaces/prompt.interface.d.ts +5 -0
- package/src/interfaces/prompt.interface.js +3 -0
- package/src/interfaces/prompt.interface.js.map +1 -0
- package/src/interfaces/provider.interface.d.ts +20 -0
- package/src/interfaces/provider.interface.js +18 -0
- package/src/interfaces/provider.interface.js.map +1 -0
- package/src/interfaces/resource.interface.d.ts +21 -0
- package/src/interfaces/resource.interface.js +3 -0
- package/src/interfaces/resource.interface.js.map +1 -0
- package/src/interfaces/scope.interface.d.ts +5 -0
- package/src/interfaces/scope.interface.js +3 -0
- package/src/interfaces/scope.interface.js.map +1 -0
- package/src/interfaces/server.interface.d.ts +46 -0
- package/src/interfaces/server.interface.js +18 -0
- package/src/interfaces/server.interface.js.map +1 -0
- package/src/interfaces/session-hook.interface.d.ts +131 -0
- package/src/interfaces/session-hook.interface.js +140 -0
- package/src/interfaces/session-hook.interface.js.map +1 -0
- package/src/interfaces/tool-hook.interface.d.ts +80 -0
- package/src/interfaces/tool-hook.interface.js +92 -0
- package/src/interfaces/tool-hook.interface.js.map +1 -0
- package/src/interfaces/tool.interface.d.ts +45 -0
- package/src/interfaces/tool.interface.js +89 -0
- package/src/interfaces/tool.interface.js.map +1 -0
- package/src/metadata/adapter.metadata.d.ts +22 -0
- package/src/metadata/adapter.metadata.js +10 -0
- package/src/metadata/adapter.metadata.js.map +1 -0
- package/src/metadata/app.metadata.d.ts +872 -0
- package/src/metadata/app.metadata.js +30 -0
- package/src/metadata/app.metadata.js.map +1 -0
- package/src/metadata/auth-provider.metadata.d.ts +33 -0
- package/src/metadata/auth-provider.metadata.js +19 -0
- package/src/metadata/auth-provider.metadata.js.map +1 -0
- package/src/metadata/flow-hooks.metadata.d.ts +20 -0
- package/src/metadata/flow-hooks.metadata.js +3 -0
- package/src/metadata/flow-hooks.metadata.js.map +1 -0
- package/src/metadata/flow.metadata.d.ts +75 -0
- package/src/metadata/flow.metadata.js +15 -0
- package/src/metadata/flow.metadata.js.map +1 -0
- package/src/metadata/front-mcp.metadata.d.ts +1144 -0
- package/src/metadata/front-mcp.metadata.js +25 -0
- package/src/metadata/front-mcp.metadata.js.map +1 -0
- package/src/metadata/index.d.ts +12 -0
- package/src/metadata/index.js +16 -0
- package/src/metadata/index.js.map +1 -0
- package/src/metadata/logger.metadata.d.ts +39 -0
- package/src/metadata/logger.metadata.js +10 -0
- package/src/metadata/logger.metadata.js.map +1 -0
- package/src/metadata/plugin.metadata.d.ts +93 -0
- package/src/metadata/plugin.metadata.js +18 -0
- package/src/metadata/plugin.metadata.js.map +1 -0
- package/src/metadata/prompt.metadata.d.ts +226 -0
- package/src/metadata/prompt.metadata.js +27 -0
- package/src/metadata/prompt.metadata.js.map +1 -0
- package/src/metadata/provider.metadata.d.ts +34 -0
- package/src/metadata/provider.metadata.js +20 -0
- package/src/metadata/provider.metadata.js.map +1 -0
- package/src/metadata/resource.metadata.d.ts +199 -0
- package/src/metadata/resource.metadata.js +22 -0
- package/src/metadata/resource.metadata.js.map +1 -0
- package/src/metadata/tool.metadata.d.ts +278 -0
- package/src/metadata/tool.metadata.js +28 -0
- package/src/metadata/tool.metadata.js.map +1 -0
- package/src/providers/session.provider.d.ts +13 -0
- package/src/providers/session.provider.js +27 -0
- package/src/providers/session.provider.js.map +1 -0
- package/src/records/adapter.record.d.ts +26 -0
- package/src/records/adapter.record.js +11 -0
- package/src/records/adapter.record.js.map +1 -0
- package/src/records/app.record.d.ts +19 -0
- package/src/records/app.record.js +9 -0
- package/src/records/app.record.js.map +1 -0
- package/src/records/auth-provider.record.d.ts +37 -0
- package/src/records/auth-provider.record.js +12 -0
- package/src/records/auth-provider.record.js.map +1 -0
- package/src/records/flow.record.d.ts +11 -0
- package/src/records/flow.record.js +8 -0
- package/src/records/flow.record.js.map +1 -0
- package/src/records/index.d.ts +11 -0
- package/src/records/index.js +15 -0
- package/src/records/index.js.map +1 -0
- package/src/records/logger.record.d.ts +11 -0
- package/src/records/logger.record.js +8 -0
- package/src/records/logger.record.js.map +1 -0
- package/src/records/plugin.record.d.ts +21 -0
- package/src/records/plugin.record.js +11 -0
- package/src/records/plugin.record.js.map +1 -0
- package/src/records/prompt.record.d.ts +18 -0
- package/src/records/prompt.record.js +9 -0
- package/src/records/prompt.record.js.map +1 -0
- package/src/records/provider.record.d.ts +36 -0
- package/src/records/provider.record.js +14 -0
- package/src/records/provider.record.js.map +1 -0
- package/src/records/resource.record.d.ts +18 -0
- package/src/records/resource.record.js +14 -0
- package/src/records/resource.record.js.map +1 -0
- package/src/records/scope.record.d.ts +18 -0
- package/src/records/scope.record.js +9 -0
- package/src/records/scope.record.js.map +1 -0
- package/src/records/tool.record.d.ts +17 -0
- package/src/records/tool.record.js +9 -0
- package/src/records/tool.record.js.map +1 -0
- package/src/schemas/annotated-class.schema.d.ts +11 -0
- package/src/schemas/annotated-class.schema.js +40 -0
- package/src/schemas/annotated-class.schema.js.map +1 -0
- package/src/schemas/http-input.schema.d.ts +33 -0
- package/src/schemas/http-input.schema.js +13 -0
- package/src/schemas/http-input.schema.js.map +1 -0
- package/src/schemas/http-output.schema.d.ts +2011 -0
- package/src/schemas/http-output.schema.js +283 -0
- package/src/schemas/http-output.schema.js.map +1 -0
- package/src/schemas/index.d.ts +3 -0
- package/src/schemas/index.js +7 -0
- package/src/schemas/index.js.map +1 -0
- package/src/tokens/adapter.tokens.d.ts +3 -0
- package/src/tokens/adapter.tokens.js +11 -0
- package/src/tokens/adapter.tokens.js.map +1 -0
- package/src/tokens/app.tokens.d.ts +4 -0
- package/src/tokens/app.tokens.js +30 -0
- package/src/tokens/app.tokens.js.map +1 -0
- package/src/tokens/auth-provider.tokens.d.ts +3 -0
- package/src/tokens/auth-provider.tokens.js +12 -0
- package/src/tokens/auth-provider.tokens.js.map +1 -0
- package/src/tokens/base.tokens.d.ts +5 -0
- package/src/tokens/base.tokens.js +9 -0
- package/src/tokens/base.tokens.js.map +1 -0
- package/src/tokens/flow-hook.tokens.d.ts +4 -0
- package/src/tokens/flow-hook.tokens.js +9 -0
- package/src/tokens/flow-hook.tokens.js.map +1 -0
- package/src/tokens/flow.tokens.d.ts +11 -0
- package/src/tokens/flow.tokens.js +16 -0
- package/src/tokens/flow.tokens.js.map +1 -0
- package/src/tokens/front-mcp.tokens.d.ts +3 -0
- package/src/tokens/front-mcp.tokens.js +19 -0
- package/src/tokens/front-mcp.tokens.js.map +1 -0
- package/src/tokens/index.d.ts +13 -0
- package/src/tokens/index.js +17 -0
- package/src/tokens/index.js.map +1 -0
- package/src/tokens/logger.tokens.d.ts +3 -0
- package/src/tokens/logger.tokens.js +11 -0
- package/src/tokens/logger.tokens.js.map +1 -0
- package/src/tokens/plugin.tokens.d.ts +13 -0
- package/src/tokens/plugin.tokens.js +18 -0
- package/src/tokens/plugin.tokens.js.map +1 -0
- package/src/tokens/prompt.tokens.d.ts +9 -0
- package/src/tokens/prompt.tokens.js +14 -0
- package/src/tokens/prompt.tokens.js.map +1 -0
- package/src/tokens/provider.tokens.d.ts +3 -0
- package/src/tokens/provider.tokens.js +12 -0
- package/src/tokens/provider.tokens.js.map +1 -0
- package/src/tokens/resource.tokens.d.ts +20 -0
- package/src/tokens/resource.tokens.js +25 -0
- package/src/tokens/resource.tokens.js.map +1 -0
- package/src/tokens/server.tokens.d.ts +6 -0
- package/src/tokens/server.tokens.js +11 -0
- package/src/tokens/server.tokens.js.map +1 -0
- package/src/tokens/tool.tokens.d.ts +13 -0
- package/src/tokens/tool.tokens.js +18 -0
- package/src/tokens/tool.tokens.js.map +1 -0
- package/src/types/auth/index.d.ts +2 -0
- package/src/types/auth/index.js +6 -0
- package/src/types/auth/index.js.map +1 -0
- package/src/types/auth/jwt.types.d.ts +112 -0
- package/src/types/auth/jwt.types.js +36 -0
- package/src/types/auth/jwt.types.js.map +1 -0
- package/src/types/auth/session.types.d.ts +263 -0
- package/src/types/auth/session.types.js +40 -0
- package/src/types/auth/session.types.js.map +1 -0
- package/src/types/common.types.d.ts +11 -0
- package/src/types/common.types.js +3 -0
- package/src/types/common.types.js.map +1 -0
- package/src/types/index.d.ts +3 -0
- package/src/types/index.js +7 -0
- package/src/types/index.js.map +1 -0
- package/src/types/options/auth.options.d.ts +513 -0
- package/src/types/options/auth.options.js +53 -0
- package/src/types/options/auth.options.js.map +1 -0
- package/src/types/options/http.options.d.ts +22 -0
- package/src/types/options/http.options.js +10 -0
- package/src/types/options/http.options.js.map +1 -0
- package/src/types/options/index.d.ts +5 -0
- package/src/types/options/index.js +9 -0
- package/src/types/options/index.js.map +1 -0
- package/src/types/options/logging.options.d.ts +39 -0
- package/src/types/options/logging.options.js +37 -0
- package/src/types/options/logging.options.js.map +1 -0
- package/src/types/options/server-info.options.d.ts +48 -0
- package/src/types/options/server-info.options.js +13 -0
- package/src/types/options/server-info.options.js.map +1 -0
- package/src/types/options/session.options.d.ts +67 -0
- package/src/types/options/session.options.js +9 -0
- package/src/types/options/session.options.js.map +1 -0
- package/src/utils/decide-request-intent.utils.d.ts +79 -0
- package/src/utils/decide-request-intent.utils.js +326 -0
- package/src/utils/decide-request-intent.utils.js.map +1 -0
- package/src/utils/index.d.ts +2 -0
- package/src/utils/index.js +6 -0
- package/src/utils/index.js.map +1 -0
- package/src/utils/path.utils.d.ts +20 -0
- package/src/utils/path.utils.js +66 -0
- package/src/utils/path.utils.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.options.js","sourceRoot":"","sources":["../../../../src/types/options/auth.options.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,kCAA6E;AAsGhE,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,OAAC;SACR,KAAK,CAAC;QACL,OAAC,CAAC,MAAM,EAAE;QACV,OAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;KAAC,CAAC;SAC5E,QAAQ,EAAE;IACb,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/E,cAAc,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,0BAAmB,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtG,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,oBAAoB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACU,CAAC,CAAC;AAwD/B,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtG,cAAc,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,0BAAmB,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,gBAAS,CAAC,EAAE,CAAC,OAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;CACnB,CAAC,CAAC;AAG9B,QAAA,iBAAiB,GAAG,OAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC5D,+BAAuB;IACvB,8BAAsB;CACvB,CAAC,CAAC;AAsBH,MAAM,sBAAsB,GAAG;IAC7B,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,iBAAiB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACF,CAAC;AAE7B,QAAA,oBAAoB,GAAG,OAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC/D,+BAAuB,CAAC,MAAM,CAAC,sBAAsB,CAAC;IACtD,8BAAsB,CAAC,MAAM,CAAC,sBAAsB,CAAC;CACtD,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { JSONWebKeySet, jsonWebKeySetSchema, JWK, jwkSchema } from '../auth';\nimport { RawZodShape } from '../common.types';\n\nexport type RemoteAuthOptions = {\n type: 'remote';\n\n /**\n * unique id for the provider\n */\n id?: string;\n /**\n * human-readable name for the provider\n */\n name: string;\n /**\n * base url of the provider\n * if the provider does not support dcr it will be used with local auth provider proxy\n * to register client dynamically you have to provide client id for the registration flow\n * @example https://my-company.frontegg.com\n */\n baseUrl: string;\n\n /**\n * enable dynamic client registration (DCR) flow, if your provider does not support DCR\n * you can set this to false and provide clientId for authorization flow, we will use local auth provider proxy\n * to register a dynamic client with the provided clientId or by called clientId function with client info\n * by default, the provider will use the registration endpoint to register the client dynamically\n */\n dcrEnabled?: boolean;\n\n /**\n * Only used if your auth provider does not support DCR.\n * for Dcr auth provider the client id acquired by the registration flow\n */\n clientId?: string | ((clientInfo: { clientId: string }) => string);\n\n /**\n * Set default gateway oauth server mode, this will be overridden by discovery flow.\n * if set to transparent and the discovery flow detect orchestrated mode it will switch to orchestrated mode\n * @default 'transparent'\n */\n mode?: 'orchestrated' | 'transparent';\n\n /**\n * allow anonymous access to the provider\n * @default false - allowing anonymous access will make the provider to issue an orchestrated token\n */\n allowAnonymous?: boolean;\n\n /**\n * allow consent mode to select tools/resource/prompts after authorization\n * for scoped based access token\n * @default false - allowing anonymous access will make the provider to issue an orchestrated token\n */\n consent?: boolean;\n\n\n /**\n * scopes for the token endpoint\n * @default undefined - all scopes supported by th provider\n */\n scopes?: string[];\n /**\n * authorization provider supported grant types, currently only authorization_code and refresh_token are supported\n * @default undefined - default is what presented in the /.well-known/oauth-authorization-server\n */\n grantTypes?: ('authorization_code' | 'refresh_token')[];\n\n /**\n * authorization endpoint for the provider\n * @default undefined - default is what presented in the /.well-known/oauth-authorization-server\n */\n authEndpoint?: string;\n /**\n * token endpoint for the provider\n * @default undefined - default is what presented in the /.well-known/oauth-authorization-server\n */\n tokenEndpoint?: string;\n /**\n * registration endpoint for the provider (DCR)\n * @default undefined - default is what presented in the /.well-known/oauth-authorization-server\n */\n registrationEndpoint?: string;\n /**\n * user info endpoint for the provider\n * @default undefined - default is what presented in the /.well-known/oauth-authorization-server\n */\n userInfoEndpoint?: string;\n\n /**\n * Inline JWKS for the provider to verify tokens without automatic fetching\n * @default undefined - default is what presented in the /.well-known/jwks.json\n */\n jwks?: JSONWebKeySet;\n\n /**\n * jwks uri for the provider\n * @default undefined - default is what presented in the /.well-known/oauth-authorization-server\n */\n jwksUri?: string;\n};\n\nexport const remoteAuthOptionsSchema = z.object({\n type: z.literal('remote'),\n id: z.string().optional(),\n name: z.string(),\n baseUrl: z.string(),\n dcrEnabled: z.boolean().optional(),\n clientId: z\n .union([\n z.string(),\n z.function().args(z.object({ clientId: z.string() })).returns(z.string())])\n .optional(),\n mode: z.union([z.literal('orchestrated'), z.literal('transparent')]).optional(),\n allowAnonymous: z.boolean().optional(),\n consent: z.boolean().optional(),\n jwks: jsonWebKeySetSchema.optional(),\n scopes: z.array(z.string()).optional(),\n grantTypes: z.array(z.union([z.literal('authorization_code'), z.literal('refresh_token')])).optional(),\n authEndpoint: z.string().optional(),\n tokenEndpoint: z.string().optional(),\n registrationEndpoint: z.string().optional(),\n userInfoEndpoint: z.string().optional(),\n jwksUri: z.string().optional(),\n} satisfies RawZodShape<RemoteAuthOptions>);\n\nexport type LocalAuthOptions = {\n type: 'local';\n\n /**\n * unique id for the provider\n */\n id: string;\n\n /**\n * human-readable name for the provider\n */\n name: string;\n\n /**\n * scopes for the token endpoint\n * @default undefined - all scopes supported by th provider\n */\n scopes?: string[];\n /**\n * currently only authorization_code and refresh_token are supported\n * @default ['authorization_code', 'refresh_token']\n */\n grantTypes?: ('authorization_code' | 'refresh_token')[];\n\n /**\n * allow anonymous access to the provider\n * in this case the provider will act as an authorization server\n * @default true\n */\n allowAnonymous?: boolean;\n\n /**\n * allow consent mode to select tools/resource/prompts after authorization\n * for scoped based access token\n * @default false - allowing anonymous access will make the provider to issue an orchestrated token\n */\n consent?: boolean;\n\n /**\n * Inline JWKS for the provider to verify tokens for local provider\n * it will also used in /.well-known/jwks.json\n * @default undefined - default is auto generated keys and saved in the temp folder\n */\n jwks?: JSONWebKeySet;\n\n /**\n * private key signing tokens for local provider\n * @default undefined - default is auto generated keys and saved in the temp folder\n */\n signKey?: JWK | Uint8Array;\n\n};\n\n\nexport const localAuthOptionsSchema = z.object({\n type: z.literal('local'),\n id: z.string(),\n name: z.string(),\n scopes: z.array(z.string()).optional(),\n grantTypes: z.array(z.union([z.literal('authorization_code'), z.literal('refresh_token')])).optional(),\n allowAnonymous: z.boolean().optional(),\n consent: z.boolean().optional(),\n jwks: jsonWebKeySetSchema.optional(),\n signKey: jwkSchema.or(z.instanceof(Uint8Array)).optional(),\n} satisfies RawZodShape<LocalAuthOptions>);\n\n\nexport const authOptionsSchema = z.discriminatedUnion('type', [\n remoteAuthOptionsSchema,\n localAuthOptionsSchema,\n]);\n\nexport type AuthOptions = RemoteAuthOptions | LocalAuthOptions;\n\n\ntype StandaloneOption = {\n /**\n * if the provider is standalone or not, if standalone it will register an oauth service provider\n * on app's entry path, if not standalone it will be registered as a child provider\n * under the root provider\n * @default false\n */\n standalone?: boolean;\n\n /**\n * if the provider should be excluded from the parent provider's discovery\n * this used for standalone providers\n * @default false\n */\n excludeFromParent?: boolean;\n};\n\nconst standaloneOptionSchema = {\n standalone: z.boolean().optional(),\n excludeFromParent: z.boolean().optional(),\n} satisfies RawZodShape<StandaloneOption>;\n\nexport const appAuthOptionsSchema = z.discriminatedUnion('type', [\n remoteAuthOptionsSchema.extend(standaloneOptionSchema),\n localAuthOptionsSchema.extend(standaloneOptionSchema),\n]);\n\n\nexport type AppAuthOptions = (RemoteAuthOptions | LocalAuthOptions) & StandaloneOption;"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { FrontMcpServer } from '../../interfaces';
|
|
3
|
+
export type HttpOptions = {
|
|
4
|
+
port?: number;
|
|
5
|
+
/** MCP JSON-RPC entry ('' or '/mcp'); MUST match PRM resourcePath returned in well-known */
|
|
6
|
+
entryPath?: string;
|
|
7
|
+
hostFactory?: FrontMcpServer | ((config: HttpOptions) => FrontMcpServer);
|
|
8
|
+
};
|
|
9
|
+
export declare const httpOptionsSchema: z.ZodObject<{
|
|
10
|
+
port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
11
|
+
entryPath: z.ZodDefault<z.ZodString>;
|
|
12
|
+
hostFactory: z.ZodOptional<z.ZodAny>;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
port: number;
|
|
15
|
+
entryPath: string;
|
|
16
|
+
hostFactory?: any;
|
|
17
|
+
}, {
|
|
18
|
+
port?: number | undefined;
|
|
19
|
+
entryPath?: string | undefined;
|
|
20
|
+
hostFactory?: any;
|
|
21
|
+
}>;
|
|
22
|
+
export type HttpConfig = z.infer<typeof httpOptionsSchema>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.httpOptionsSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.httpOptionsSchema = zod_1.z.object({
|
|
6
|
+
port: zod_1.z.number().optional().default(3001),
|
|
7
|
+
entryPath: zod_1.z.string().default(''),
|
|
8
|
+
hostFactory: zod_1.z.any().optional(),
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=http.options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.options.js","sourceRoot":"","sources":["../../../../src/types/options/http.options.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAYX,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACzC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,WAAW,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { FrontMcpServer, ServerResponse } from '../../interfaces';\n\nexport type HttpOptions = {\n port?: number;\n /** MCP JSON-RPC entry ('' or '/mcp'); MUST match PRM resourcePath returned in well-known */\n entryPath?: string;\n\n hostFactory?: FrontMcpServer | ((config: HttpOptions) => FrontMcpServer);\n};\n\n\nexport const httpOptionsSchema = z.object({\n port: z.number().optional().default(3001),\n entryPath: z.string().default(''),\n hostFactory: z.any().optional(),\n});\n\n\n\nexport type HttpConfig = z.infer<typeof httpOptionsSchema>;"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./server-info.options"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./session.options"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./http.options"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./auth.options"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./logging.options"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/options/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,4DAAkC;AAClC,yDAA+B;AAC/B,yDAA+B;AAC/B,4DAAkC","sourcesContent":["export * from './server-info.options';\nexport * from './session.options';\nexport * from './http.options';\nexport * from './auth.options';\nexport * from './logging.options';\n\n\n\n\n\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { LogTransportType } from '@frontmcp/sdk';
|
|
3
|
+
export declare enum LogLevel {
|
|
4
|
+
Debug = 0,
|
|
5
|
+
VERBOSE = 1,
|
|
6
|
+
Info = 2,
|
|
7
|
+
Warn = 3,
|
|
8
|
+
Error = 4,
|
|
9
|
+
Off = 100
|
|
10
|
+
}
|
|
11
|
+
export declare const LogLevelName: Record<LogLevel, string>;
|
|
12
|
+
export declare const LogLevelValue: Record<string, LogLevel>;
|
|
13
|
+
export type LoggingOptions = {
|
|
14
|
+
level?: LogLevel;
|
|
15
|
+
enableConsole?: boolean;
|
|
16
|
+
prefix?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Additional custom LogTransport types to register.
|
|
19
|
+
* @default []
|
|
20
|
+
*/
|
|
21
|
+
transports?: LogTransportType[];
|
|
22
|
+
};
|
|
23
|
+
export declare const loggingOptionsSchema: z.ZodObject<{
|
|
24
|
+
level: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof LogLevel>>>;
|
|
25
|
+
prefix: z.ZodOptional<z.ZodString>;
|
|
26
|
+
enableConsole: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
27
|
+
transports: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodType<import("@frontmcp/sdk").Type<unknown>, z.ZodTypeDef, import("@frontmcp/sdk").Type<unknown>>, "many">>>;
|
|
28
|
+
}, "strip", z.ZodTypeAny, {
|
|
29
|
+
level: LogLevel;
|
|
30
|
+
enableConsole: boolean;
|
|
31
|
+
transports: import("@frontmcp/sdk").Type<unknown>[];
|
|
32
|
+
prefix?: string | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
level?: LogLevel | undefined;
|
|
35
|
+
enableConsole?: boolean | undefined;
|
|
36
|
+
prefix?: string | undefined;
|
|
37
|
+
transports?: import("@frontmcp/sdk").Type<unknown>[] | undefined;
|
|
38
|
+
}>;
|
|
39
|
+
export type LoggingConfigType = Omit<z.infer<typeof loggingOptionsSchema>, 'transports'>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loggingOptionsSchema = exports.LogLevelValue = exports.LogLevelName = exports.LogLevel = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const schemas_1 = require("../../schemas");
|
|
6
|
+
var LogLevel;
|
|
7
|
+
(function (LogLevel) {
|
|
8
|
+
LogLevel[LogLevel["Debug"] = 0] = "Debug";
|
|
9
|
+
LogLevel[LogLevel["VERBOSE"] = 1] = "VERBOSE";
|
|
10
|
+
LogLevel[LogLevel["Info"] = 2] = "Info";
|
|
11
|
+
LogLevel[LogLevel["Warn"] = 3] = "Warn";
|
|
12
|
+
LogLevel[LogLevel["Error"] = 4] = "Error";
|
|
13
|
+
LogLevel[LogLevel["Off"] = 100] = "Off";
|
|
14
|
+
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
15
|
+
exports.LogLevelName = {
|
|
16
|
+
[LogLevel.Debug]: 'debug',
|
|
17
|
+
[LogLevel.VERBOSE]: 'verbose',
|
|
18
|
+
[LogLevel.Info]: 'info',
|
|
19
|
+
[LogLevel.Warn]: 'warn',
|
|
20
|
+
[LogLevel.Error]: 'error',
|
|
21
|
+
[LogLevel.Off]: 'off',
|
|
22
|
+
};
|
|
23
|
+
exports.LogLevelValue = {
|
|
24
|
+
'debug': LogLevel.Debug,
|
|
25
|
+
'verbose': LogLevel.VERBOSE,
|
|
26
|
+
'info': LogLevel.Info,
|
|
27
|
+
'warn': LogLevel.Warn,
|
|
28
|
+
'error': LogLevel.Error,
|
|
29
|
+
'off': LogLevel.Off,
|
|
30
|
+
};
|
|
31
|
+
exports.loggingOptionsSchema = zod_1.z.object({
|
|
32
|
+
level: zod_1.z.nativeEnum(LogLevel).optional().default(LogLevel.Info),
|
|
33
|
+
prefix: zod_1.z.string().optional(),
|
|
34
|
+
enableConsole: zod_1.z.boolean().optional().default(true),
|
|
35
|
+
transports: zod_1.z.array(schemas_1.annotatedFrontMcpLoggerSchema).optional().default([]),
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=logging.options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.options.js","sourceRoot":"","sources":["../../../../src/types/options/logging.options.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,2CAA8D;AAE9D,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,6CAAW,CAAA;IACX,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;IACT,uCAAS,CAAA;AACX,CAAC,EAPW,QAAQ,wBAAR,QAAQ,QAOnB;AAEY,QAAA,YAAY,GAA6B;IACpD,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;IACzB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;IAC7B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACvB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACvB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;IACzB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK;CACtB,CAAC;AAEW,QAAA,aAAa,GAA6B;IACrD,OAAO,EAAE,QAAQ,CAAC,KAAK;IACvB,SAAS,EAAE,QAAQ,CAAC,OAAO;IAC3B,MAAM,EAAE,QAAQ,CAAC,IAAI;IACrB,MAAM,EAAE,QAAQ,CAAC,IAAI;IACrB,OAAO,EAAE,QAAQ,CAAC,KAAK;IACvB,KAAK,EAAE,QAAQ,CAAC,GAAG;CACpB,CAAC;AAcW,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,OAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC/D,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,aAAa,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnD,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,uCAA6B,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACpC,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { LogTransportType, RawZodShape } from '@frontmcp/sdk';\nimport { annotatedFrontMcpLoggerSchema } from '../../schemas';\n\nexport enum LogLevel {\n Debug = 0,\n VERBOSE = 1,\n Info = 2,\n Warn = 3,\n Error = 4,\n Off = 100, // never log\n}\n\nexport const LogLevelName: Record<LogLevel, string> = {\n [LogLevel.Debug]: 'debug',\n [LogLevel.VERBOSE]: 'verbose',\n [LogLevel.Info]: 'info',\n [LogLevel.Warn]: 'warn',\n [LogLevel.Error]: 'error',\n [LogLevel.Off]: 'off',\n};\n\nexport const LogLevelValue: Record<string, LogLevel> = {\n 'debug': LogLevel.Debug,\n 'verbose': LogLevel.VERBOSE,\n 'info': LogLevel.Info,\n 'warn': LogLevel.Warn,\n 'error': LogLevel.Error,\n 'off': LogLevel.Off,\n};\n\n\nexport type LoggingOptions = {\n level?: LogLevel; // default to 'info'\n enableConsole?: boolean;\n prefix?: string;\n /**\n * Additional custom LogTransport types to register.\n * @default []\n */\n transports?: LogTransportType[]\n};\n\nexport const loggingOptionsSchema = z.object({\n level: z.nativeEnum(LogLevel).optional().default(LogLevel.Info),\n prefix: z.string().optional(),\n enableConsole: z.boolean().optional().default(true),\n transports: z.array(annotatedFrontMcpLoggerSchema).optional().default([]),\n} satisfies RawZodShape<LoggingOptions>);\n\n\nexport type LoggingConfigType = Omit<z.infer<typeof loggingOptionsSchema>, 'transports'>;"]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Icon } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export type ServerInfoOptions = {
|
|
4
|
+
name: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
version: string;
|
|
7
|
+
websiteUrl?: string;
|
|
8
|
+
icons?: Icon[];
|
|
9
|
+
};
|
|
10
|
+
export declare const serverInfoOptionsSchema: z.ZodObject<{
|
|
11
|
+
name: z.ZodString;
|
|
12
|
+
title: z.ZodOptional<z.ZodString>;
|
|
13
|
+
version: z.ZodString;
|
|
14
|
+
websiteUrl: z.ZodOptional<z.ZodString>;
|
|
15
|
+
icons: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
16
|
+
src: z.ZodString;
|
|
17
|
+
mimeType: z.ZodOptional<z.ZodString>;
|
|
18
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
19
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
20
|
+
src: z.ZodString;
|
|
21
|
+
mimeType: z.ZodOptional<z.ZodString>;
|
|
22
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
23
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
24
|
+
src: z.ZodString;
|
|
25
|
+
mimeType: z.ZodOptional<z.ZodString>;
|
|
26
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
27
|
+
}, z.ZodTypeAny, "passthrough">>, "many">>;
|
|
28
|
+
}, "strip", z.ZodTypeAny, {
|
|
29
|
+
name: string;
|
|
30
|
+
version: string;
|
|
31
|
+
title?: string | undefined;
|
|
32
|
+
websiteUrl?: string | undefined;
|
|
33
|
+
icons?: z.objectOutputType<{
|
|
34
|
+
src: z.ZodString;
|
|
35
|
+
mimeType: z.ZodOptional<z.ZodString>;
|
|
36
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
37
|
+
}, z.ZodTypeAny, "passthrough">[] | undefined;
|
|
38
|
+
}, {
|
|
39
|
+
name: string;
|
|
40
|
+
version: string;
|
|
41
|
+
title?: string | undefined;
|
|
42
|
+
websiteUrl?: string | undefined;
|
|
43
|
+
icons?: z.objectInputType<{
|
|
44
|
+
src: z.ZodString;
|
|
45
|
+
mimeType: z.ZodOptional<z.ZodString>;
|
|
46
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
47
|
+
}, z.ZodTypeAny, "passthrough">[] | undefined;
|
|
48
|
+
}>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serverInfoOptionsSchema = void 0;
|
|
4
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
exports.serverInfoOptionsSchema = zod_1.z.object({
|
|
7
|
+
name: zod_1.z.string(),
|
|
8
|
+
title: zod_1.z.string().optional(),
|
|
9
|
+
version: zod_1.z.string(),
|
|
10
|
+
websiteUrl: zod_1.z.string().optional(),
|
|
11
|
+
icons: zod_1.z.array(types_js_1.IconSchema).optional(),
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=server-info.options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-info.options.js","sourceRoot":"","sources":["../../../../src/types/options/server-info.options.ts"],"names":[],"mappings":";;;AAAA,iEAAsE;AACtE,6BAAwB;AAgBX,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,qBAAU,CAAC,CAAC,QAAQ,EAAE;CACG,CAAC,CAAC","sourcesContent":["import { Icon, IconSchema } from '@modelcontextprotocol/sdk/types.js';\nimport { z } from 'zod';\nimport { RawZodShape } from '../common.types';\n\nexport type ServerInfoOptions = {\n /* The name of the server */\n name: string;\n /* The name of the server */\n title?: string;\n /* The version of the server */\n version: string;\n /* The description of the server*/\n websiteUrl?: string;\n icons?: Icon[];\n}\n\n\nexport const serverInfoOptionsSchema = z.object({\n name: z.string(),\n title: z.string().optional(),\n version: z.string(),\n websiteUrl: z.string().optional(),\n icons: z.array(IconSchema).optional(),\n} satisfies RawZodShape<ServerInfoOptions>);"]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export type SessionMode = 'stateful' | 'stateless';
|
|
3
|
+
export type TransportIdMode = 'uuid' | 'jwt';
|
|
4
|
+
export type SessionOptions = {
|
|
5
|
+
/**
|
|
6
|
+
* Defines how the session lifecycle and nested tokens are managed.
|
|
7
|
+
*
|
|
8
|
+
* Modes:
|
|
9
|
+
* - `'stateful'`: Session and nested tokens are stored in a server-side store (e.g., Redis).
|
|
10
|
+
* - `'stateless'`: All session data (including nested tokens) is embedded within a signed/encrypted JWT.
|
|
11
|
+
*
|
|
12
|
+
* **Behavior:**
|
|
13
|
+
* - When using `'stateful'`:
|
|
14
|
+
* - Nested OAuth tokens are **never exposed** in the JWT.
|
|
15
|
+
* - Tokens are encrypted and persisted in Redis under a session key.
|
|
16
|
+
* - The client receives only a lightweight reference (session key) instead of full credentials.
|
|
17
|
+
* - Results in smaller JWT payloads and reduces token leakage risk.
|
|
18
|
+
* - Allows seamless refresh of nested provider tokens without requiring user re-authorization.
|
|
19
|
+
* - Recommended for multi-application environments or setups using short-lived OAuth tokens.
|
|
20
|
+
*
|
|
21
|
+
* - When using `'stateless'`:
|
|
22
|
+
* - Stores all nested tokens directly within the JWT, enabling fully client-managed sessions.
|
|
23
|
+
* - Does **not support token refresh** — once a nested provider token expires, re-authorization is required.
|
|
24
|
+
* - Simplifies implementation but may degrade UX when tokens are short-lived.
|
|
25
|
+
* - Best suited for lightweight or single-application environments where token rotation is less critical.
|
|
26
|
+
*
|
|
27
|
+
* @default 'stateful'
|
|
28
|
+
*/
|
|
29
|
+
sessionMode?: SessionMode | ((issuer: string) => Promise<SessionMode> | SessionMode);
|
|
30
|
+
/**
|
|
31
|
+
* Defines how the Transport ID is generated, verified, and used across sessions.
|
|
32
|
+
*
|
|
33
|
+
* Modes:
|
|
34
|
+
* - `'uuid'`: Generates a random UUID per session.
|
|
35
|
+
* - `'jwt'`: Uses a signed JWT for stateless sessions, signed with a generated session key.
|
|
36
|
+
*
|
|
37
|
+
* **Behavior: **
|
|
38
|
+
* - When using `'jwt'`:
|
|
39
|
+
* - Requires an active Redis connection to support distributed, stateless transport sessions.
|
|
40
|
+
* - Each token is verified using a generated public key associated with the existing session.
|
|
41
|
+
* - Enables access to a streamable HTTP transport session ID.
|
|
42
|
+
* - For distributed systems, verification is optimized by checking if the session is already
|
|
43
|
+
* verified by an existing live transport ID. This allows fast validation when multiple
|
|
44
|
+
* transports are connected to a shared queue (high-availability setup).
|
|
45
|
+
* - If the JWT’s transport ID is not found on the current worker node, the system attempts
|
|
46
|
+
* to connect to the corresponding remote transport in the distributed infrastructure.
|
|
47
|
+
*
|
|
48
|
+
* - When using `'uuid'`:
|
|
49
|
+
* - Provides a strict, node-bound session transport (single-node mode).
|
|
50
|
+
* - Each request verifies the `Authorization` header and searches for a matching transport ID
|
|
51
|
+
* derived from the hashed authorization header and the generated transport UUID.
|
|
52
|
+
* - If no matching transport ID is found, an error (`TransportNotInitialized`) is thrown.
|
|
53
|
+
*
|
|
54
|
+
* @default 'uuid'
|
|
55
|
+
*/
|
|
56
|
+
transportIdMode?: TransportIdMode | ((issuer: string) => Promise<TransportIdMode> | TransportIdMode);
|
|
57
|
+
};
|
|
58
|
+
export declare const sessionOptionsSchema: z.ZodObject<{
|
|
59
|
+
sessionMode: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"stateful">, z.ZodLiteral<"stateless">, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>]>>>;
|
|
60
|
+
transportIdMode: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"uuid">, z.ZodLiteral<"jwt">, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>]>>>;
|
|
61
|
+
}, "strip", z.ZodTypeAny, {
|
|
62
|
+
sessionMode: "stateful" | "stateless" | ((...args: unknown[]) => unknown);
|
|
63
|
+
transportIdMode: "uuid" | "jwt" | ((...args: unknown[]) => unknown);
|
|
64
|
+
}, {
|
|
65
|
+
sessionMode?: "stateful" | "stateless" | ((...args: unknown[]) => unknown) | undefined;
|
|
66
|
+
transportIdMode?: "uuid" | "jwt" | ((...args: unknown[]) => unknown) | undefined;
|
|
67
|
+
}>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sessionOptionsSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.sessionOptionsSchema = zod_1.z.object({
|
|
6
|
+
sessionMode: zod_1.z.union([zod_1.z.literal('stateful'), zod_1.z.literal('stateless'), zod_1.z.function()]).optional().default('stateless'),
|
|
7
|
+
transportIdMode: zod_1.z.union([zod_1.z.literal('uuid'), zod_1.z.literal('jwt'), zod_1.z.function()]).optional().default('uuid'),
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=session.options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.options.js","sourceRoot":"","sources":["../../../../src/types/options/session.options.ts"],"names":[],"mappings":";;;AACA,6BAAwB;AA4DX,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,WAAW,EAAE,OAAC,CAAC,KAAK,CAClB,CAAC,OAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAC,CAAC,QAAQ,EAAE,CAAC,CAC9D,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IACjC,eAAe,EAAE,OAAC,CAAC,KAAK,CACtB,CAAC,OAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAC,CAAC,QAAQ,EAAE,CAAC,CACpD,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;CACS,CAAC,CAAC","sourcesContent":["import { RawZodShape } from '../common.types';\nimport { z } from 'zod';\n\nexport type SessionMode = 'stateful' | 'stateless';\nexport type TransportIdMode = 'uuid' | 'jwt';\n\nexport type SessionOptions = {\n /**\n * Defines how the session lifecycle and nested tokens are managed.\n *\n * Modes:\n * - `'stateful'`: Session and nested tokens are stored in a server-side store (e.g., Redis).\n * - `'stateless'`: All session data (including nested tokens) is embedded within a signed/encrypted JWT.\n *\n * **Behavior:**\n * - When using `'stateful'`:\n * - Nested OAuth tokens are **never exposed** in the JWT.\n * - Tokens are encrypted and persisted in Redis under a session key.\n * - The client receives only a lightweight reference (session key) instead of full credentials.\n * - Results in smaller JWT payloads and reduces token leakage risk.\n * - Allows seamless refresh of nested provider tokens without requiring user re-authorization.\n * - Recommended for multi-application environments or setups using short-lived OAuth tokens.\n *\n * - When using `'stateless'`:\n * - Stores all nested tokens directly within the JWT, enabling fully client-managed sessions.\n * - Does **not support token refresh** — once a nested provider token expires, re-authorization is required.\n * - Simplifies implementation but may degrade UX when tokens are short-lived.\n * - Best suited for lightweight or single-application environments where token rotation is less critical.\n *\n * @default 'stateful'\n */\n sessionMode?: SessionMode | ((issuer: string) => Promise<SessionMode> | SessionMode);\n /**\n * Defines how the Transport ID is generated, verified, and used across sessions.\n *\n * Modes:\n * - `'uuid'`: Generates a random UUID per session.\n * - `'jwt'`: Uses a signed JWT for stateless sessions, signed with a generated session key.\n *\n * **Behavior: **\n * - When using `'jwt'`:\n * - Requires an active Redis connection to support distributed, stateless transport sessions.\n * - Each token is verified using a generated public key associated with the existing session.\n * - Enables access to a streamable HTTP transport session ID.\n * - For distributed systems, verification is optimized by checking if the session is already\n * verified by an existing live transport ID. This allows fast validation when multiple\n * transports are connected to a shared queue (high-availability setup).\n * - If the JWT’s transport ID is not found on the current worker node, the system attempts\n * to connect to the corresponding remote transport in the distributed infrastructure.\n *\n * - When using `'uuid'`:\n * - Provides a strict, node-bound session transport (single-node mode).\n * - Each request verifies the `Authorization` header and searches for a matching transport ID\n * derived from the hashed authorization header and the generated transport UUID.\n * - If no matching transport ID is found, an error (`TransportNotInitialized`) is thrown.\n *\n * @default 'uuid'\n */\n transportIdMode?: TransportIdMode | ((issuer: string) => Promise<TransportIdMode> | TransportIdMode);\n};\n\nexport const sessionOptionsSchema = z.object({\n sessionMode: z.union(\n [z.literal('stateful'), z.literal('stateless'), z.function()],\n ).optional().default('stateless'),\n transportIdMode: z.union(\n [z.literal('uuid'), z.literal('jwt'), z.function()],\n ).optional().default('uuid'),\n} satisfies RawZodShape<SessionOptions>);"]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { ServerRequest } from '@frontmcp/sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export declare const intentSchema: z.ZodUnion<[z.ZodLiteral<"legacy-sse">, z.ZodLiteral<"sse">, z.ZodLiteral<"streamable-http">, z.ZodLiteral<"stateful-http">, z.ZodLiteral<"stateless-http">, z.ZodLiteral<"unknown">]>;
|
|
4
|
+
export declare const decisionSchema: z.ZodObject<{
|
|
5
|
+
intent: z.ZodUnion<[z.ZodLiteral<"legacy-sse">, z.ZodLiteral<"sse">, z.ZodLiteral<"streamable-http">, z.ZodLiteral<"stateful-http">, z.ZodLiteral<"stateless-http">, z.ZodLiteral<"unknown">]>;
|
|
6
|
+
reasons: z.ZodArray<z.ZodString, "many">;
|
|
7
|
+
recommendation: z.ZodOptional<z.ZodObject<{
|
|
8
|
+
httpStatus: z.ZodNumber;
|
|
9
|
+
message: z.ZodString;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
message: string;
|
|
12
|
+
httpStatus: number;
|
|
13
|
+
}, {
|
|
14
|
+
message: string;
|
|
15
|
+
httpStatus: number;
|
|
16
|
+
}>>;
|
|
17
|
+
debug: z.ZodOptional<z.ZodObject<{
|
|
18
|
+
key: z.ZodNumber;
|
|
19
|
+
channel: z.ZodNumber;
|
|
20
|
+
flags: z.ZodNumber;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
key: number;
|
|
23
|
+
channel: number;
|
|
24
|
+
flags: number;
|
|
25
|
+
}, {
|
|
26
|
+
key: number;
|
|
27
|
+
channel: number;
|
|
28
|
+
flags: number;
|
|
29
|
+
}>>;
|
|
30
|
+
}, "strip", z.ZodTypeAny, {
|
|
31
|
+
intent: "unknown" | "legacy-sse" | "sse" | "streamable-http" | "stateful-http" | "stateless-http";
|
|
32
|
+
reasons: string[];
|
|
33
|
+
debug?: {
|
|
34
|
+
key: number;
|
|
35
|
+
channel: number;
|
|
36
|
+
flags: number;
|
|
37
|
+
} | undefined;
|
|
38
|
+
recommendation?: {
|
|
39
|
+
message: string;
|
|
40
|
+
httpStatus: number;
|
|
41
|
+
} | undefined;
|
|
42
|
+
}, {
|
|
43
|
+
intent: "unknown" | "legacy-sse" | "sse" | "streamable-http" | "stateful-http" | "stateless-http";
|
|
44
|
+
reasons: string[];
|
|
45
|
+
debug?: {
|
|
46
|
+
key: number;
|
|
47
|
+
channel: number;
|
|
48
|
+
flags: number;
|
|
49
|
+
} | undefined;
|
|
50
|
+
recommendation?: {
|
|
51
|
+
message: string;
|
|
52
|
+
httpStatus: number;
|
|
53
|
+
} | undefined;
|
|
54
|
+
}>;
|
|
55
|
+
export type HttpRequestIntent = 'legacy-sse' | 'sse' | 'streamable-http' | 'stateful-http' | 'stateless-http';
|
|
56
|
+
export type Intent = HttpRequestIntent | 'unknown';
|
|
57
|
+
export type Decision = {
|
|
58
|
+
intent: Intent;
|
|
59
|
+
reasons: string[];
|
|
60
|
+
recommendation?: {
|
|
61
|
+
httpStatus: number;
|
|
62
|
+
message: string;
|
|
63
|
+
};
|
|
64
|
+
debug?: {
|
|
65
|
+
key: number;
|
|
66
|
+
channel: number;
|
|
67
|
+
flags: number;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
export interface Config {
|
|
71
|
+
enableLegacySSE: boolean;
|
|
72
|
+
enableSseListener: boolean;
|
|
73
|
+
enableStreamableHttp: boolean;
|
|
74
|
+
enableStatefulHttp: boolean;
|
|
75
|
+
enableStatelessHttp: boolean;
|
|
76
|
+
requireSessionForStreamable: boolean;
|
|
77
|
+
tolerateMissingAccept: boolean;
|
|
78
|
+
}
|
|
79
|
+
export declare function decideIntent(req: ServerRequest, cfg: Config): Decision;
|