@frontmcp/auth 0.9.0 → 0.11.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.
Files changed (127) hide show
  1. package/__test-utils__/assertion.helpers.d.ts +2 -0
  2. package/__test-utils__/assertion.helpers.d.ts.map +1 -0
  3. package/authorization/authorization.class.d.ts +122 -0
  4. package/authorization/authorization.class.d.ts.map +1 -0
  5. package/authorization/authorization.types.d.ts +65 -1
  6. package/authorization/authorization.types.d.ts.map +1 -1
  7. package/authorization/index.d.ts +11 -2
  8. package/authorization/index.d.ts.map +1 -1
  9. package/authorization/orchestrated.accessor.d.ts +161 -0
  10. package/authorization/orchestrated.accessor.d.ts.map +1 -0
  11. package/authorization/orchestrated.authorization.d.ts +257 -0
  12. package/authorization/orchestrated.authorization.d.ts.map +1 -0
  13. package/authorization/public.authorization.d.ts +92 -0
  14. package/authorization/public.authorization.d.ts.map +1 -0
  15. package/authorization/transparent.authorization.d.ts +130 -0
  16. package/authorization/transparent.authorization.d.ts.map +1 -0
  17. package/common/auth-logger.interface.d.ts +15 -0
  18. package/common/auth-logger.interface.d.ts.map +1 -0
  19. package/common/index.d.ts +6 -0
  20. package/common/index.d.ts.map +1 -0
  21. package/common/jwt.types.d.ts +87 -0
  22. package/common/jwt.types.d.ts.map +1 -0
  23. package/common/session-user.types.d.ts +17 -0
  24. package/common/session-user.types.d.ts.map +1 -0
  25. package/common/session.types.d.ts +190 -0
  26. package/common/session.types.d.ts.map +1 -0
  27. package/common/zod-utils.d.ts +5 -0
  28. package/common/zod-utils.d.ts.map +1 -0
  29. package/consent/consent.types.d.ts +112 -0
  30. package/consent/consent.types.d.ts.map +1 -0
  31. package/consent/index.d.ts +2 -0
  32. package/consent/index.d.ts.map +1 -0
  33. package/detection/auth-provider-detection.d.ts +53 -0
  34. package/detection/auth-provider-detection.d.ts.map +1 -0
  35. package/detection/index.d.ts +3 -0
  36. package/detection/index.d.ts.map +1 -0
  37. package/errors/auth-internal.error.d.ts +33 -0
  38. package/errors/auth-internal.error.d.ts.map +1 -0
  39. package/errors/auth-internal.errors.d.ts +123 -0
  40. package/errors/auth-internal.errors.d.ts.map +1 -0
  41. package/errors/index.d.ts +3 -0
  42. package/errors/index.d.ts.map +1 -0
  43. package/esm/index.mjs +5473 -1204
  44. package/esm/package.json +18 -3
  45. package/index.d.ts +18 -5
  46. package/index.d.ts.map +1 -1
  47. package/index.js +5351 -961
  48. package/jwks/jwks.service.d.ts +1 -0
  49. package/jwks/jwks.service.d.ts.map +1 -1
  50. package/jwks/jwks.types.d.ts +3 -0
  51. package/jwks/jwks.types.d.ts.map +1 -1
  52. package/machine-id/index.d.ts +2 -0
  53. package/machine-id/index.d.ts.map +1 -0
  54. package/machine-id/machine-id.d.ts +28 -0
  55. package/machine-id/machine-id.d.ts.map +1 -0
  56. package/options/app-auth.schema.d.ts +272 -0
  57. package/options/app-auth.schema.d.ts.map +1 -0
  58. package/options/index.d.ts +15 -0
  59. package/options/index.d.ts.map +1 -0
  60. package/options/interfaces.d.ts +250 -0
  61. package/options/interfaces.d.ts.map +1 -0
  62. package/options/orchestrated.schema.d.ts +446 -0
  63. package/options/orchestrated.schema.d.ts.map +1 -0
  64. package/options/public.schema.d.ts +19 -0
  65. package/options/public.schema.d.ts.map +1 -0
  66. package/options/schema.d.ts +265 -0
  67. package/options/schema.d.ts.map +1 -0
  68. package/options/shared.schemas.d.ts +128 -0
  69. package/options/shared.schemas.d.ts.map +1 -0
  70. package/options/transparent.schema.d.ts +33 -0
  71. package/options/transparent.schema.d.ts.map +1 -0
  72. package/options/typecheck.d.ts +2 -0
  73. package/options/typecheck.d.ts.map +1 -0
  74. package/options/utils.d.ts +33 -0
  75. package/options/utils.d.ts.map +1 -0
  76. package/package.json +18 -3
  77. package/session/encrypted-authorization-vault.d.ts +182 -0
  78. package/session/encrypted-authorization-vault.d.ts.map +1 -0
  79. package/session/federated-auth.session.d.ts +252 -0
  80. package/session/federated-auth.session.d.ts.map +1 -0
  81. package/session/index.d.ts +21 -1
  82. package/session/index.d.ts.map +1 -1
  83. package/session/orchestrated-token.store.d.ts +155 -0
  84. package/session/orchestrated-token.store.d.ts.map +1 -0
  85. package/session/redis-session.store.d.ts +93 -0
  86. package/session/redis-session.store.d.ts.map +1 -0
  87. package/session/session-crypto.d.ts +84 -0
  88. package/session/session-crypto.d.ts.map +1 -0
  89. package/session/session-rate-limiter.d.ts +114 -0
  90. package/session/session-rate-limiter.d.ts.map +1 -0
  91. package/session/session.transport.d.ts +11 -0
  92. package/session/session.transport.d.ts.map +1 -0
  93. package/session/session.types.d.ts +66 -0
  94. package/session/session.types.d.ts.map +1 -0
  95. package/session/token.refresh.d.ts +61 -0
  96. package/session/token.refresh.d.ts.map +1 -0
  97. package/session/transport-session.types.d.ts +479 -0
  98. package/session/transport-session.types.d.ts.map +1 -0
  99. package/session/utils/auth-token.utils.d.ts +12 -0
  100. package/session/utils/auth-token.utils.d.ts.map +1 -0
  101. package/session/utils/index.d.ts +2 -0
  102. package/session/utils/index.d.ts.map +1 -1
  103. package/session/utils/session-crypto.utils.d.ts +30 -0
  104. package/session/utils/session-crypto.utils.d.ts.map +1 -0
  105. package/session/vercel-kv-session.store.d.ts +123 -0
  106. package/session/vercel-kv-session.store.d.ts.map +1 -0
  107. package/utils/authorization-id.utils.d.ts +12 -0
  108. package/utils/authorization-id.utils.d.ts.map +1 -0
  109. package/utils/index.d.ts +1 -0
  110. package/utils/index.d.ts.map +1 -1
  111. package/vault/auth-providers.accessor.d.ts +154 -0
  112. package/vault/auth-providers.accessor.d.ts.map +1 -0
  113. package/vault/auth-providers.accessor.impl.d.ts +54 -0
  114. package/vault/auth-providers.accessor.impl.d.ts.map +1 -0
  115. package/vault/auth-providers.registry.d.ts +111 -0
  116. package/vault/auth-providers.registry.d.ts.map +1 -0
  117. package/vault/auth-providers.types.d.ts +3 -3
  118. package/vault/auth-providers.vault.d.ts +94 -0
  119. package/vault/auth-providers.vault.d.ts.map +1 -0
  120. package/vault/credential-loaders/eager-loader.d.ts +47 -0
  121. package/vault/credential-loaders/eager-loader.d.ts.map +1 -0
  122. package/vault/credential-loaders/index.d.ts +7 -0
  123. package/vault/credential-loaders/index.d.ts.map +1 -0
  124. package/vault/credential-loaders/lazy-loader.d.ts +54 -0
  125. package/vault/credential-loaders/lazy-loader.d.ts.map +1 -0
  126. package/vault/index.d.ts +9 -0
  127. package/vault/index.d.ts.map +1 -1
@@ -2,6 +2,7 @@ import { JSONWebKeySet } from 'jose';
2
2
  import { JwksServiceOptions, ProviderVerifyRef, VerifyResult } from './jwks.types';
3
3
  export declare class JwksService {
4
4
  private readonly opts;
5
+ private readonly logger;
5
6
  private warnedProviders;
6
7
  private orchestratorKey;
7
8
  private providerJwks;
@@ -1 +1 @@
1
- {"version":3,"file":"jwks.service.d.ts","sourceRoot":"","sources":["../../src/jwks/jwks.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAuD,aAAa,EAAO,MAAM,MAAM,CAAC;AAE/F,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAWnF,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAEnB;IAEF,OAAO,CAAC,eAAe,CAAqB;IAG5C,OAAO,CAAC,eAAe,CAKrB;IAGF,OAAO,CAAC,YAAY,CAAiE;IAGrF,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,cAAc,CAA4B;IAElD,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAE5B,IAAI,CAAC,EAAE,kBAAkB;IAcrC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAM/B;;;OAGG;YACW,iBAAiB;IAc/B,mFAAmF;IAC7E,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAQ7C,uEAAuE;IACjE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAsCtF;;;OAGG;IACG,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAqDnG;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;;OAGG;YACW,iBAAiB;IA4E/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB,kEAAkE;IAClE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAIvD;;;;;;OAMG;IACG,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAmCpF,yEAAyE;IACnE,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC;IAKnD,wEAAwE;IAClE,yBAAyB,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,aAAa,EAAE,SAAS,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;YAShG,YAAY;YAaZ,cAAc;YAQd,SAAS;YAgBT,qBAAqB;YAyBrB,yBAAyB;IA0DvC,OAAO,CAAC,WAAW;CAgBpB"}
1
+ {"version":3,"file":"jwks.service.d.ts","sourceRoot":"","sources":["../../src/jwks/jwks.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAuD,aAAa,EAAO,MAAM,MAAM,CAAC;AAE/F,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAanF,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAEnB;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,eAAe,CAAqB;IAG5C,OAAO,CAAC,eAAe,CAKrB;IAGF,OAAO,CAAC,YAAY,CAAiE;IAGrF,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,cAAc,CAA4B;IAElD,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAE5B,IAAI,CAAC,EAAE,kBAAkB;IAerC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAM/B;;;OAGG;YACW,iBAAiB;IAc/B,mFAAmF;IAC7E,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAQ7C,uEAAuE;IACjE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAsCtF;;;OAGG;IACG,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAqDnG;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;;OAGG;YACW,iBAAiB;IA4E/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB,kEAAkE;IAClE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa;IAIvD;;;;;;OAMG;IACG,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAmCpF,yEAAyE;IACnE,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC;IAKnD,wEAAwE;IAClE,yBAAyB,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,aAAa,EAAE,SAAS,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;YAShG,YAAY;YAaZ,cAAc;YAQd,SAAS;YAgBT,qBAAqB;YAyBrB,yBAAyB;IA+DvC,OAAO,CAAC,WAAW;CAgBpB"}
@@ -1,5 +1,6 @@
1
1
  import { JSONWebKeySet } from 'jose';
2
2
  import { DevKeyPersistenceOptions } from './dev-key-persistence';
3
+ import type { AuthLogger } from '../common/auth-logger.interface';
3
4
  export type JwksServiceOptions = {
4
5
  orchestratorAlg?: 'RS256' | 'ES256';
5
6
  rotateDays?: number;
@@ -12,6 +13,8 @@ export type JwksServiceOptions = {
12
13
  * When enabled, keys are saved to a file and reloaded on server restart.
13
14
  */
14
15
  devKeyPersistence?: DevKeyPersistenceOptions;
16
+ /** Optional logger. If not provided, logging is disabled. */
17
+ logger?: AuthLogger;
15
18
  };
16
19
  export type { DevKeyPersistenceOptions };
17
20
  /** Rich descriptor used by verification & fetching */
@@ -1 +1 @@
1
- {"version":3,"file":"jwks.types.d.ts","sourceRoot":"","sources":["../../src/jwks/jwks.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;CAC9C,CAAC;AAEF,YAAY,EAAE,wBAAwB,EAAE,CAAC;AAEzC,sDAAsD;AACtD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
1
+ {"version":3,"file":"jwks.types.d.ts","sourceRoot":"","sources":["../../src/jwks/jwks.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,6DAA6D;IAC7D,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,YAAY,EAAE,wBAAwB,EAAE,CAAC;AAEzC,sDAAsD;AACtD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { getMachineId, setMachineIdOverride } from './machine-id';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/machine-id/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Machine ID Utility
3
+ *
4
+ * Single source of truth for the machine ID used across session management.
5
+ *
6
+ * Configuration Priority:
7
+ * 1. MACHINE_ID environment variable (highest priority, recommended for production)
8
+ * 2. File persistence in dev mode (.frontmcp/machine-id)
9
+ * 3. Random UUID (ephemeral, invalidates sessions on restart)
10
+ *
11
+ * For distributed deployments with Redis session storage, set MACHINE_ID
12
+ * to the same value across all instances to allow session portability,
13
+ * or use unique values per instance to enforce session affinity.
14
+ */
15
+ /**
16
+ * Get the current machine ID.
17
+ * Returns the override (if set via `setMachineIdOverride`) or the computed value.
18
+ */
19
+ export declare function getMachineId(): string;
20
+ /**
21
+ * Set a process-wide machine ID override.
22
+ * Pass `undefined` to clear the override and revert to the computed value.
23
+ *
24
+ * This is used by `create()` to inject a stable machine ID for session continuity,
25
+ * especially when using Redis-backed sessions across process restarts.
26
+ */
27
+ export declare function setMachineIdOverride(id: string | undefined): void;
28
+ //# sourceMappingURL=machine-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine-id.d.ts","sourceRoot":"","sources":["../../src/machine-id/machine-id.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AA+GH;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAEjE"}
@@ -0,0 +1,272 @@
1
+ import { z } from 'zod';
2
+ export declare const appAuthOptionsSchema: z.ZodUnion<readonly [z.ZodObject<{
3
+ mode: z.ZodLiteral<"public">;
4
+ issuer: z.ZodOptional<z.ZodString>;
5
+ sessionTtl: z.ZodDefault<z.ZodNumber>;
6
+ anonymousScopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
7
+ publicAccess: z.ZodOptional<z.ZodObject<{
8
+ tools: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
9
+ prompts: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
10
+ rateLimit: z.ZodDefault<z.ZodNumber>;
11
+ }, z.core.$strip>>;
12
+ jwks: z.ZodOptional<z.ZodObject<{
13
+ keys: z.ZodArray<z.ZodType<import("..").JWK, unknown, z.core.$ZodTypeInternals<import("..").JWK, unknown>>>;
14
+ }, z.core.$strip>>;
15
+ signKey: z.ZodOptional<z.ZodUnion<[z.ZodType<import("..").JWK, unknown, z.core.$ZodTypeInternals<import("..").JWK, unknown>>, z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>]>>;
16
+ standalone: z.ZodOptional<z.ZodBoolean>;
17
+ excludeFromParent: z.ZodOptional<z.ZodBoolean>;
18
+ }, z.core.$strip>, z.ZodObject<{
19
+ mode: z.ZodLiteral<"transparent">;
20
+ remote: z.ZodObject<{
21
+ provider: z.ZodString;
22
+ name: z.ZodOptional<z.ZodString>;
23
+ id: z.ZodOptional<z.ZodString>;
24
+ jwks: z.ZodOptional<z.ZodObject<{
25
+ keys: z.ZodArray<z.ZodType<import("..").JWK, unknown, z.core.$ZodTypeInternals<import("..").JWK, unknown>>>;
26
+ }, z.core.$strip>>;
27
+ jwksUri: z.ZodOptional<z.ZodString>;
28
+ clientId: z.ZodOptional<z.ZodString>;
29
+ clientSecret: z.ZodOptional<z.ZodString>;
30
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
31
+ dcrEnabled: z.ZodDefault<z.ZodBoolean>;
32
+ authEndpoint: z.ZodOptional<z.ZodString>;
33
+ tokenEndpoint: z.ZodOptional<z.ZodString>;
34
+ registrationEndpoint: z.ZodOptional<z.ZodString>;
35
+ userInfoEndpoint: z.ZodOptional<z.ZodString>;
36
+ }, z.core.$strip>;
37
+ expectedAudience: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
38
+ requiredScopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
39
+ allowAnonymous: z.ZodDefault<z.ZodBoolean>;
40
+ anonymousScopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
41
+ publicAccess: z.ZodOptional<z.ZodObject<{
42
+ tools: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
43
+ prompts: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
44
+ rateLimit: z.ZodDefault<z.ZodNumber>;
45
+ }, z.core.$strip>>;
46
+ standalone: z.ZodOptional<z.ZodBoolean>;
47
+ excludeFromParent: z.ZodOptional<z.ZodBoolean>;
48
+ }, z.core.$strip>, z.ZodObject<{
49
+ local: z.ZodOptional<z.ZodObject<{
50
+ signKey: z.ZodOptional<z.ZodUnion<[z.ZodType<import("..").JWK, unknown, z.core.$ZodTypeInternals<import("..").JWK, unknown>>, z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>]>>;
51
+ jwks: z.ZodOptional<z.ZodObject<{
52
+ keys: z.ZodArray<z.ZodType<import("..").JWK, unknown, z.core.$ZodTypeInternals<import("..").JWK, unknown>>>;
53
+ }, z.core.$strip>>;
54
+ issuer: z.ZodOptional<z.ZodString>;
55
+ }, z.core.$strip>>;
56
+ tokenStorage: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
57
+ type: z.ZodLiteral<"memory">;
58
+ }, z.core.$strip>, z.ZodObject<{
59
+ type: z.ZodLiteral<"redis">;
60
+ config: z.ZodObject<{
61
+ host: z.ZodString;
62
+ port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
63
+ password: z.ZodOptional<z.ZodString>;
64
+ db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
65
+ tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
66
+ keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
67
+ defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
68
+ }, z.core.$strip>;
69
+ }, z.core.$strip>], "type">>;
70
+ allowDefaultPublic: z.ZodDefault<z.ZodBoolean>;
71
+ anonymousScopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
72
+ publicAccess: z.ZodOptional<z.ZodObject<{
73
+ tools: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
74
+ prompts: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
75
+ rateLimit: z.ZodDefault<z.ZodNumber>;
76
+ }, z.core.$strip>>;
77
+ consent: z.ZodOptional<z.ZodObject<{
78
+ enabled: z.ZodDefault<z.ZodBoolean>;
79
+ groupByApp: z.ZodDefault<z.ZodBoolean>;
80
+ showDescriptions: z.ZodDefault<z.ZodBoolean>;
81
+ allowSelectAll: z.ZodDefault<z.ZodBoolean>;
82
+ requireSelection: z.ZodDefault<z.ZodBoolean>;
83
+ customMessage: z.ZodOptional<z.ZodString>;
84
+ rememberConsent: z.ZodDefault<z.ZodBoolean>;
85
+ excludedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
86
+ defaultSelectedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
87
+ }, z.core.$strip>>;
88
+ federatedAuth: z.ZodOptional<z.ZodObject<{
89
+ stateValidation: z.ZodDefault<z.ZodEnum<{
90
+ format: "format";
91
+ strict: "strict";
92
+ }>>;
93
+ }, z.core.$strip>>;
94
+ refresh: z.ZodOptional<z.ZodObject<{
95
+ enabled: z.ZodDefault<z.ZodBoolean>;
96
+ skewSeconds: z.ZodDefault<z.ZodNumber>;
97
+ }, z.core.$strip>>;
98
+ expectedAudience: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
99
+ incrementalAuth: z.ZodOptional<z.ZodObject<{
100
+ enabled: z.ZodDefault<z.ZodBoolean>;
101
+ skippedAppBehavior: z.ZodDefault<z.ZodEnum<{
102
+ anonymous: "anonymous";
103
+ "require-auth": "require-auth";
104
+ }>>;
105
+ allowSkip: z.ZodDefault<z.ZodBoolean>;
106
+ showAllAppsAtOnce: z.ZodDefault<z.ZodBoolean>;
107
+ }, z.core.$strip>>;
108
+ cimd: z.ZodOptional<z.ZodObject<{
109
+ enabled: z.ZodDefault<z.ZodBoolean>;
110
+ cache: z.ZodOptional<z.ZodObject<{
111
+ type: z.ZodDefault<z.ZodEnum<{
112
+ memory: "memory";
113
+ redis: "redis";
114
+ }>>;
115
+ defaultTtlMs: z.ZodDefault<z.ZodNumber>;
116
+ maxTtlMs: z.ZodDefault<z.ZodNumber>;
117
+ minTtlMs: z.ZodDefault<z.ZodNumber>;
118
+ redis: z.ZodOptional<z.ZodObject<{
119
+ url: z.ZodOptional<z.ZodString>;
120
+ host: z.ZodOptional<z.ZodString>;
121
+ port: z.ZodOptional<z.ZodNumber>;
122
+ password: z.ZodOptional<z.ZodString>;
123
+ db: z.ZodOptional<z.ZodNumber>;
124
+ tls: z.ZodOptional<z.ZodBoolean>;
125
+ keyPrefix: z.ZodDefault<z.ZodString>;
126
+ }, z.core.$strip>>;
127
+ }, z.core.$strip>>;
128
+ security: z.ZodOptional<z.ZodObject<{
129
+ blockPrivateIPs: z.ZodDefault<z.ZodBoolean>;
130
+ allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
131
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
132
+ warnOnLocalhostRedirects: z.ZodDefault<z.ZodBoolean>;
133
+ allowInsecureForTesting: z.ZodDefault<z.ZodBoolean>;
134
+ }, z.core.$strip>>;
135
+ network: z.ZodOptional<z.ZodObject<{
136
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
137
+ maxResponseSizeBytes: z.ZodDefault<z.ZodNumber>;
138
+ redirectPolicy: z.ZodDefault<z.ZodEnum<{
139
+ deny: "deny";
140
+ "same-origin": "same-origin";
141
+ allow: "allow";
142
+ }>>;
143
+ maxRedirects: z.ZodDefault<z.ZodNumber>;
144
+ }, z.core.$strip>>;
145
+ }, z.core.$strip>>;
146
+ mode: z.ZodLiteral<"orchestrated">;
147
+ type: z.ZodLiteral<"local">;
148
+ standalone: z.ZodOptional<z.ZodBoolean>;
149
+ excludeFromParent: z.ZodOptional<z.ZodBoolean>;
150
+ }, z.core.$strip>, z.ZodObject<{
151
+ local: z.ZodOptional<z.ZodObject<{
152
+ signKey: z.ZodOptional<z.ZodUnion<[z.ZodType<import("..").JWK, unknown, z.core.$ZodTypeInternals<import("..").JWK, unknown>>, z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>]>>;
153
+ jwks: z.ZodOptional<z.ZodObject<{
154
+ keys: z.ZodArray<z.ZodType<import("..").JWK, unknown, z.core.$ZodTypeInternals<import("..").JWK, unknown>>>;
155
+ }, z.core.$strip>>;
156
+ issuer: z.ZodOptional<z.ZodString>;
157
+ }, z.core.$strip>>;
158
+ tokenStorage: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
159
+ type: z.ZodLiteral<"memory">;
160
+ }, z.core.$strip>, z.ZodObject<{
161
+ type: z.ZodLiteral<"redis">;
162
+ config: z.ZodObject<{
163
+ host: z.ZodString;
164
+ port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
165
+ password: z.ZodOptional<z.ZodString>;
166
+ db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
167
+ tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
168
+ keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
169
+ defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
170
+ }, z.core.$strip>;
171
+ }, z.core.$strip>], "type">>;
172
+ allowDefaultPublic: z.ZodDefault<z.ZodBoolean>;
173
+ anonymousScopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
174
+ publicAccess: z.ZodOptional<z.ZodObject<{
175
+ tools: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
176
+ prompts: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
177
+ rateLimit: z.ZodDefault<z.ZodNumber>;
178
+ }, z.core.$strip>>;
179
+ consent: z.ZodOptional<z.ZodObject<{
180
+ enabled: z.ZodDefault<z.ZodBoolean>;
181
+ groupByApp: z.ZodDefault<z.ZodBoolean>;
182
+ showDescriptions: z.ZodDefault<z.ZodBoolean>;
183
+ allowSelectAll: z.ZodDefault<z.ZodBoolean>;
184
+ requireSelection: z.ZodDefault<z.ZodBoolean>;
185
+ customMessage: z.ZodOptional<z.ZodString>;
186
+ rememberConsent: z.ZodDefault<z.ZodBoolean>;
187
+ excludedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
188
+ defaultSelectedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
189
+ }, z.core.$strip>>;
190
+ federatedAuth: z.ZodOptional<z.ZodObject<{
191
+ stateValidation: z.ZodDefault<z.ZodEnum<{
192
+ format: "format";
193
+ strict: "strict";
194
+ }>>;
195
+ }, z.core.$strip>>;
196
+ refresh: z.ZodOptional<z.ZodObject<{
197
+ enabled: z.ZodDefault<z.ZodBoolean>;
198
+ skewSeconds: z.ZodDefault<z.ZodNumber>;
199
+ }, z.core.$strip>>;
200
+ expectedAudience: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
201
+ incrementalAuth: z.ZodOptional<z.ZodObject<{
202
+ enabled: z.ZodDefault<z.ZodBoolean>;
203
+ skippedAppBehavior: z.ZodDefault<z.ZodEnum<{
204
+ anonymous: "anonymous";
205
+ "require-auth": "require-auth";
206
+ }>>;
207
+ allowSkip: z.ZodDefault<z.ZodBoolean>;
208
+ showAllAppsAtOnce: z.ZodDefault<z.ZodBoolean>;
209
+ }, z.core.$strip>>;
210
+ cimd: z.ZodOptional<z.ZodObject<{
211
+ enabled: z.ZodDefault<z.ZodBoolean>;
212
+ cache: z.ZodOptional<z.ZodObject<{
213
+ type: z.ZodDefault<z.ZodEnum<{
214
+ memory: "memory";
215
+ redis: "redis";
216
+ }>>;
217
+ defaultTtlMs: z.ZodDefault<z.ZodNumber>;
218
+ maxTtlMs: z.ZodDefault<z.ZodNumber>;
219
+ minTtlMs: z.ZodDefault<z.ZodNumber>;
220
+ redis: z.ZodOptional<z.ZodObject<{
221
+ url: z.ZodOptional<z.ZodString>;
222
+ host: z.ZodOptional<z.ZodString>;
223
+ port: z.ZodOptional<z.ZodNumber>;
224
+ password: z.ZodOptional<z.ZodString>;
225
+ db: z.ZodOptional<z.ZodNumber>;
226
+ tls: z.ZodOptional<z.ZodBoolean>;
227
+ keyPrefix: z.ZodDefault<z.ZodString>;
228
+ }, z.core.$strip>>;
229
+ }, z.core.$strip>>;
230
+ security: z.ZodOptional<z.ZodObject<{
231
+ blockPrivateIPs: z.ZodDefault<z.ZodBoolean>;
232
+ allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
233
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString>>;
234
+ warnOnLocalhostRedirects: z.ZodDefault<z.ZodBoolean>;
235
+ allowInsecureForTesting: z.ZodDefault<z.ZodBoolean>;
236
+ }, z.core.$strip>>;
237
+ network: z.ZodOptional<z.ZodObject<{
238
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
239
+ maxResponseSizeBytes: z.ZodDefault<z.ZodNumber>;
240
+ redirectPolicy: z.ZodDefault<z.ZodEnum<{
241
+ deny: "deny";
242
+ "same-origin": "same-origin";
243
+ allow: "allow";
244
+ }>>;
245
+ maxRedirects: z.ZodDefault<z.ZodNumber>;
246
+ }, z.core.$strip>>;
247
+ }, z.core.$strip>>;
248
+ mode: z.ZodLiteral<"orchestrated">;
249
+ type: z.ZodLiteral<"remote">;
250
+ remote: z.ZodObject<{
251
+ provider: z.ZodString;
252
+ name: z.ZodOptional<z.ZodString>;
253
+ id: z.ZodOptional<z.ZodString>;
254
+ jwks: z.ZodOptional<z.ZodObject<{
255
+ keys: z.ZodArray<z.ZodType<import("..").JWK, unknown, z.core.$ZodTypeInternals<import("..").JWK, unknown>>>;
256
+ }, z.core.$strip>>;
257
+ jwksUri: z.ZodOptional<z.ZodString>;
258
+ clientId: z.ZodOptional<z.ZodString>;
259
+ clientSecret: z.ZodOptional<z.ZodString>;
260
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
261
+ dcrEnabled: z.ZodDefault<z.ZodBoolean>;
262
+ authEndpoint: z.ZodOptional<z.ZodString>;
263
+ tokenEndpoint: z.ZodOptional<z.ZodString>;
264
+ registrationEndpoint: z.ZodOptional<z.ZodString>;
265
+ userInfoEndpoint: z.ZodOptional<z.ZodString>;
266
+ }, z.core.$strip>;
267
+ standalone: z.ZodOptional<z.ZodBoolean>;
268
+ excludeFromParent: z.ZodOptional<z.ZodBoolean>;
269
+ }, z.core.$strip>]>;
270
+ export type AppAuthOptions = z.infer<typeof appAuthOptionsSchema>;
271
+ export type AppAuthOptionsInput = z.input<typeof appAuthOptionsSchema>;
272
+ //# sourceMappingURL=app-auth.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-auth.schema.d.ts","sourceRoot":"","sources":["../../src/options/app-auth.schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoCxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAK/B,CAAC;AAMH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ export type { PublicAccessConfig, LocalSigningConfig, RemoteProviderConfig, TokenStorageConfig, TokenStorageMemory, TokenStorageRedis, TokenRefreshConfig, SkippedAppBehavior, ConsentConfig, FederatedAuthConfig, IncrementalAuthConfig, PublicAuthOptionsInterface, TransparentAuthOptionsInterface, OrchestratedLocalOptionsInterface, OrchestratedRemoteOptionsInterface, OrchestratedAuthOptionsInterface, AuthOptionsInterface, AuthMode, OrchestratedType, } from './interfaces';
2
+ export { publicAccessConfigSchema, localSigningConfigSchema, remoteProviderConfigSchema, tokenStorageConfigSchema, tokenRefreshConfigSchema, skippedAppBehaviorSchema, consentConfigSchema, federatedAuthConfigSchema, incrementalAuthConfigSchema, } from './shared.schemas';
3
+ export type { PublicAccessConfig as PublicAccessConfigZod, PublicAccessConfigInput, LocalSigningConfig as LocalSigningConfigZod, LocalSigningConfigInput, RemoteProviderConfig as RemoteProviderConfigZod, RemoteProviderConfigInput, TokenStorageConfig as TokenStorageConfigZod, TokenStorageConfigInput, TokenRefreshConfig as TokenRefreshConfigZod, TokenRefreshConfigInput, SkippedAppBehavior as SkippedAppBehaviorZod, ConsentConfig as ConsentConfigZod, ConsentConfigInput, FederatedAuthConfig as FederatedAuthConfigZod, FederatedAuthConfigInput, IncrementalAuthConfig as IncrementalAuthConfigZod, IncrementalAuthConfigInput, RedisConfig, } from './shared.schemas';
4
+ export { publicAuthOptionsSchema } from './public.schema';
5
+ export type { PublicAuthOptions, PublicAuthOptionsInput } from './public.schema';
6
+ export { transparentAuthOptionsSchema } from './transparent.schema';
7
+ export type { TransparentAuthOptions, TransparentAuthOptionsInput } from './transparent.schema';
8
+ export { orchestratedLocalSchema, orchestratedRemoteSchema, orchestratedAuthOptionsSchema, } from './orchestrated.schema';
9
+ export type { OrchestratedLocalOptions, OrchestratedLocalOptionsInput, OrchestratedRemoteOptions, OrchestratedRemoteOptionsInput, OrchestratedAuthOptions, OrchestratedAuthOptionsInput, OrchestratedType as OrchestratedTypeZod, } from './orchestrated.schema';
10
+ export { authOptionsSchema } from './schema';
11
+ export type { AuthOptions, AuthOptionsInput, AuthMode as AuthModeZod } from './schema';
12
+ export { appAuthOptionsSchema } from './app-auth.schema';
13
+ export type { AppAuthOptions, AppAuthOptionsInput } from './app-auth.schema';
14
+ export { parseAuthOptions, isPublicMode, isTransparentMode, isOrchestratedMode, isOrchestratedLocal, isOrchestratedRemote, allowsPublicAccess, } from './utils';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/options/index.ts"],"names":[],"mappings":"AAMA,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,+BAA+B,EAC/B,iCAAiC,EACjC,kCAAkC,EAClC,gCAAgC,EAChC,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAKtB,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,kBAAkB,IAAI,qBAAqB,EAC3C,uBAAuB,EACvB,kBAAkB,IAAI,qBAAqB,EAC3C,uBAAuB,EACvB,oBAAoB,IAAI,uBAAuB,EAC/C,yBAAyB,EACzB,kBAAkB,IAAI,qBAAqB,EAC3C,uBAAuB,EACvB,kBAAkB,IAAI,qBAAqB,EAC3C,uBAAuB,EACvB,kBAAkB,IAAI,qBAAqB,EAC3C,aAAa,IAAI,gBAAgB,EACjC,kBAAkB,EAClB,mBAAmB,IAAI,sBAAsB,EAC7C,wBAAwB,EACxB,qBAAqB,IAAI,wBAAwB,EACjD,0BAA0B,EAC1B,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAKjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAKhG,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,wBAAwB,EACxB,6BAA6B,EAC7B,yBAAyB,EACzB,8BAA8B,EAC9B,uBAAuB,EACvB,4BAA4B,EAC5B,gBAAgB,IAAI,mBAAmB,GACxC,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,UAAU,CAAC;AAKvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAK7E,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,250 @@
1
+ import { JSONWebKeySet, JWK } from '../common/jwt.types';
2
+ import type { RedisConfig } from '../session/transport-session.types';
3
+ /**
4
+ * Public access configuration for tools/prompts
5
+ */
6
+ export interface PublicAccessConfig {
7
+ /**
8
+ * Allow all tools or explicit whitelist
9
+ * @default 'all'
10
+ */
11
+ tools?: 'all' | string[];
12
+ /**
13
+ * Allow all prompts or explicit whitelist
14
+ * @default 'all'
15
+ */
16
+ prompts?: 'all' | string[];
17
+ /**
18
+ * Rate limit per IP per minute
19
+ * @default 60
20
+ */
21
+ rateLimit?: number;
22
+ }
23
+ /**
24
+ * Local signing configuration (for orchestrated local type)
25
+ */
26
+ export interface LocalSigningConfig {
27
+ /**
28
+ * Private key for signing orchestrated tokens
29
+ * @default auto-generated
30
+ */
31
+ signKey?: JWK | Uint8Array;
32
+ /**
33
+ * JWKS for token verification
34
+ * @default auto-generated
35
+ */
36
+ jwks?: JSONWebKeySet;
37
+ /**
38
+ * Issuer identifier for orchestrated tokens
39
+ * @default auto-derived from server URL
40
+ */
41
+ issuer?: string;
42
+ }
43
+ /**
44
+ * Remote OAuth provider configuration (for orchestrated remote and transparent)
45
+ */
46
+ export interface RemoteProviderConfig {
47
+ /**
48
+ * OAuth provider base URL
49
+ * @example 'https://auth.example.com'
50
+ */
51
+ provider: string;
52
+ /** Provider display name */
53
+ name?: string;
54
+ /**
55
+ * Unique identifier for this provider
56
+ * @default derived from provider URL
57
+ */
58
+ id?: string;
59
+ /**
60
+ * Inline JWKS for offline token verification
61
+ * Falls back to fetching from provider's /.well-known/jwks.json
62
+ */
63
+ jwks?: JSONWebKeySet;
64
+ /** Custom JWKS URI if not at standard path */
65
+ jwksUri?: string;
66
+ /** Client ID for this MCP server (for orchestrated mode) */
67
+ clientId?: string;
68
+ /** Client secret (for confidential clients in orchestrated mode) */
69
+ clientSecret?: string;
70
+ /** Scopes to request from the upstream provider */
71
+ scopes?: string[];
72
+ /**
73
+ * Enable Dynamic Client Registration (DCR)
74
+ * @default false
75
+ */
76
+ dcrEnabled?: boolean;
77
+ /** Authorization endpoint override */
78
+ authEndpoint?: string;
79
+ /** Token endpoint override */
80
+ tokenEndpoint?: string;
81
+ /** Registration endpoint override (for DCR) */
82
+ registrationEndpoint?: string;
83
+ /** User info endpoint override */
84
+ userInfoEndpoint?: string;
85
+ }
86
+ /**
87
+ * Token storage - in-memory
88
+ */
89
+ export interface TokenStorageMemory {
90
+ type: 'memory';
91
+ }
92
+ /**
93
+ * Token storage - Redis
94
+ */
95
+ export interface TokenStorageRedis {
96
+ type: 'redis';
97
+ config: RedisConfig;
98
+ }
99
+ /**
100
+ * Token storage configuration for orchestrated mode
101
+ */
102
+ export type TokenStorageConfig = TokenStorageMemory | TokenStorageRedis;
103
+ /**
104
+ * Token refresh configuration
105
+ */
106
+ export interface TokenRefreshConfig {
107
+ /**
108
+ * Enable automatic token refresh
109
+ * @default true
110
+ */
111
+ enabled?: boolean;
112
+ /**
113
+ * Refresh token before expiry by this many seconds
114
+ * @default 60
115
+ */
116
+ skewSeconds?: number;
117
+ }
118
+ /**
119
+ * Behavior when a tool from a skipped (not yet authorized) app is called
120
+ */
121
+ export type SkippedAppBehavior = 'anonymous' | 'require-auth';
122
+ /**
123
+ * Consent configuration for tool selection
124
+ */
125
+ export interface ConsentConfig {
126
+ /**
127
+ * Enable consent flow for tool selection
128
+ * @default false
129
+ */
130
+ enabled?: boolean;
131
+ /**
132
+ * Group tools by app in the consent UI
133
+ * @default true
134
+ */
135
+ groupByApp?: boolean;
136
+ /**
137
+ * Show tool descriptions in consent UI
138
+ * @default true
139
+ */
140
+ showDescriptions?: boolean;
141
+ /**
142
+ * Allow selecting all tools at once
143
+ * @default true
144
+ */
145
+ allowSelectAll?: boolean;
146
+ /**
147
+ * Require at least one tool to be selected
148
+ * @default true
149
+ */
150
+ requireSelection?: boolean;
151
+ /** Custom message to display on consent page */
152
+ customMessage?: string;
153
+ /**
154
+ * Remember consent for future sessions
155
+ * @default true
156
+ */
157
+ rememberConsent?: boolean;
158
+ /** Tools to exclude from consent (always available) */
159
+ excludedTools?: string[];
160
+ /** Tools to always include in consent (pre-selected) */
161
+ defaultSelectedTools?: string[];
162
+ }
163
+ /**
164
+ * Federated authentication configuration
165
+ */
166
+ export interface FederatedAuthConfig {
167
+ /**
168
+ * How strictly to validate the OAuth state parameter on provider callbacks.
169
+ * - 'strict': Validates the full state parameter matches the session (recommended)
170
+ * - 'format': Only validates the state format is correct
171
+ */
172
+ stateValidation: 'strict' | 'format';
173
+ }
174
+ /**
175
+ * Progressive/Incremental authorization configuration
176
+ */
177
+ export interface IncrementalAuthConfig {
178
+ /**
179
+ * Enable incremental (progressive) authorization
180
+ * @default true
181
+ */
182
+ enabled?: boolean;
183
+ /**
184
+ * Behavior when a tool from a skipped app is called
185
+ * @default 'anonymous'
186
+ */
187
+ skippedAppBehavior?: SkippedAppBehavior;
188
+ /**
189
+ * Allow users to skip app authorization during initial auth flow
190
+ * @default true
191
+ */
192
+ allowSkip?: boolean;
193
+ /**
194
+ * Show all apps in a single authorization page (vs step-by-step)
195
+ * @default true
196
+ */
197
+ showAllAppsAtOnce?: boolean;
198
+ }
199
+ export interface PublicAuthOptionsInterface {
200
+ mode: 'public';
201
+ issuer?: string;
202
+ sessionTtl?: number;
203
+ anonymousScopes?: string[];
204
+ publicAccess?: PublicAccessConfig;
205
+ jwks?: JSONWebKeySet;
206
+ signKey?: JWK | Uint8Array;
207
+ }
208
+ export interface TransparentAuthOptionsInterface {
209
+ mode: 'transparent';
210
+ remote: RemoteProviderConfig;
211
+ expectedAudience?: string | string[];
212
+ requiredScopes?: string[];
213
+ allowAnonymous?: boolean;
214
+ anonymousScopes?: string[];
215
+ publicAccess?: PublicAccessConfig;
216
+ }
217
+ export interface OrchestratedLocalOptionsInterface {
218
+ mode: 'orchestrated';
219
+ type: 'local';
220
+ local?: LocalSigningConfig;
221
+ tokenStorage?: TokenStorageConfig;
222
+ allowDefaultPublic?: boolean;
223
+ anonymousScopes?: string[];
224
+ publicAccess?: PublicAccessConfig;
225
+ consent?: ConsentConfig;
226
+ federatedAuth?: FederatedAuthConfig;
227
+ refresh?: TokenRefreshConfig;
228
+ expectedAudience?: string | string[];
229
+ incrementalAuth?: IncrementalAuthConfig;
230
+ }
231
+ export interface OrchestratedRemoteOptionsInterface {
232
+ mode: 'orchestrated';
233
+ type: 'remote';
234
+ remote: RemoteProviderConfig;
235
+ local?: LocalSigningConfig;
236
+ tokenStorage?: TokenStorageConfig;
237
+ allowDefaultPublic?: boolean;
238
+ anonymousScopes?: string[];
239
+ publicAccess?: PublicAccessConfig;
240
+ consent?: ConsentConfig;
241
+ federatedAuth?: FederatedAuthConfig;
242
+ refresh?: TokenRefreshConfig;
243
+ expectedAudience?: string | string[];
244
+ incrementalAuth?: IncrementalAuthConfig;
245
+ }
246
+ export type AuthOptionsInterface = PublicAuthOptionsInterface | TransparentAuthOptionsInterface | OrchestratedLocalOptionsInterface | OrchestratedRemoteOptionsInterface;
247
+ export type OrchestratedAuthOptionsInterface = OrchestratedLocalOptionsInterface | OrchestratedRemoteOptionsInterface;
248
+ export type AuthMode = 'public' | 'transparent' | 'orchestrated';
249
+ export type OrchestratedType = 'local' | 'remote';
250
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/options/interfaces.ts"],"names":[],"mappings":"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"}