@breadstone/archipel-mcp 0.0.9 → 0.0.11

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 (619) hide show
  1. package/data/guides/ai-text-generation.md +361 -0
  2. package/data/guides/analytics-and-error-tracking.md +189 -0
  3. package/data/guides/authentication-and-authorization.md +657 -0
  4. package/data/guides/blob-storage.md +242 -0
  5. package/data/guides/caching.md +255 -0
  6. package/data/guides/cryptography-and-otp.md +240 -0
  7. package/data/guides/document-generation.md +174 -0
  8. package/data/guides/email-delivery.md +196 -0
  9. package/data/guides/esigning-integration.md +231 -0
  10. package/data/guides/getting-started.md +351 -0
  11. package/data/guides/implementing-ports.md +317 -0
  12. package/data/guides/index.md +61 -0
  13. package/data/guides/mcp-server.md +222 -0
  14. package/data/guides/openapi-and-feature-discovery.md +266 -0
  15. package/data/guides/payments-and-feature-gating.md +244 -0
  16. package/data/guides/resource-management.md +352 -0
  17. package/data/guides/telemetry-and-observability.md +190 -0
  18. package/data/guides/testing.md +319 -0
  19. package/data/guides/tsdoc-guidelines.md +45 -0
  20. package/data/packages/platform-analytics/api/Class.AnalyticsClientPort.md +19 -20
  21. package/data/packages/platform-analytics/api/Class.AnalyticsModule.md +2 -3
  22. package/data/packages/platform-analytics/api/Class.AppInsightsAnalyticsClient.md +21 -22
  23. package/data/packages/platform-analytics/api/Class.DatadogAnalyticsClient.md +21 -22
  24. package/data/packages/platform-analytics/api/Class.NoopAnalyticsClient.md +19 -20
  25. package/data/packages/platform-analytics/api/Class.SentryAnalyticsClient.md +21 -22
  26. package/data/packages/platform-analytics/api/Interface.IAnalyticsBreadcrumb.md +3 -4
  27. package/data/packages/platform-analytics/api/Interface.IAnalyticsModuleOptions.md +2 -3
  28. package/data/packages/platform-analytics/api/Interface.IAnalyticsUser.md +3 -4
  29. package/data/packages/platform-analytics/api/TypeAlias.AnalyticsLevel.md +1 -2
  30. package/data/packages/platform-analytics/api/Variable.APPINSIGHTS_CONFIG_ENTRIES.md +2 -3
  31. package/data/packages/platform-analytics/api/Variable.APPLICATIONINSIGHTS_CONNECTION_STRING.md +1 -2
  32. package/data/packages/platform-analytics/api/Variable.DATADOG_CONFIG_ENTRIES.md +2 -3
  33. package/data/packages/platform-analytics/api/Variable.DD_ENV.md +1 -2
  34. package/data/packages/platform-analytics/api/Variable.DD_SERVICE.md +1 -2
  35. package/data/packages/platform-analytics/api/Variable.SENTRY_CONFIG_ENTRIES.md +2 -3
  36. package/data/packages/platform-analytics/api/Variable.SENTRY_DSN.md +1 -2
  37. package/data/packages/platform-analytics/api/Variable.SENTRY_ENVIRONMENT.md +1 -2
  38. package/data/packages/platform-analytics/api/index.md +25 -26
  39. package/data/packages/platform-authentication/api/Class.AnonymousAuthGuard.md +4 -5
  40. package/data/packages/platform-authentication/api/Class.AppleConnector.md +19 -20
  41. package/data/packages/platform-authentication/api/Class.AuthModule.md +8 -9
  42. package/data/packages/platform-authentication/api/Class.AuthSubjectPort.md +10 -11
  43. package/data/packages/platform-authentication/api/Class.AuthTokenService.md +5 -6
  44. package/data/packages/platform-authentication/api/Class.ChallengeService.md +26 -27
  45. package/data/packages/platform-authentication/api/Class.GithubAuthGuard.md +4 -5
  46. package/data/packages/platform-authentication/api/Class.GithubConnector.md +14 -15
  47. package/data/packages/platform-authentication/api/Class.GoogleConnector.md +14 -15
  48. package/data/packages/platform-authentication/api/Class.JwtAuthGuard.md +4 -5
  49. package/data/packages/platform-authentication/api/Class.JwtPayloadBase.md +15 -16
  50. package/data/packages/platform-authentication/api/Class.LastActiveMiddleware.md +10 -11
  51. package/data/packages/platform-authentication/api/Class.LocalAuthGuard.md +4 -5
  52. package/data/packages/platform-authentication/api/Class.MfaService.md +54 -55
  53. package/data/packages/platform-authentication/api/Class.MfaSubjectPort.md +8 -9
  54. package/data/packages/platform-authentication/api/Class.MicrosoftConnector.md +17 -18
  55. package/data/packages/platform-authentication/api/Class.RolesGuard.md +5 -6
  56. package/data/packages/platform-authentication/api/Class.SessionMappingProfile.md +4 -5
  57. package/data/packages/platform-authentication/api/Class.SessionPersistencePort.md +25 -26
  58. package/data/packages/platform-authentication/api/Class.SessionResponse.md +12 -13
  59. package/data/packages/platform-authentication/api/Class.SessionService.md +33 -34
  60. package/data/packages/platform-authentication/api/Class.SocialAuthGuard.md +5 -6
  61. package/data/packages/platform-authentication/api/Class.SocialAuthPort.md +2 -3
  62. package/data/packages/platform-authentication/api/Class.TokenEnricherPort.md +2 -3
  63. package/data/packages/platform-authentication/api/Class.TotpMfaChannel.md +27 -28
  64. package/data/packages/platform-authentication/api/Class.VerificationService.md +29 -30
  65. package/data/packages/platform-authentication/api/Class.VerificationSubjectPort.md +16 -17
  66. package/data/packages/platform-authentication/api/Function.Token.md +0 -1
  67. package/data/packages/platform-authentication/api/Function.UseRoles.md +2 -3
  68. package/data/packages/platform-authentication/api/Function.socialAuthGuardFactory.md +2 -3
  69. package/data/packages/platform-authentication/api/Interface.IAuthModuleOptions.md +20 -21
  70. package/data/packages/platform-authentication/api/Interface.IAuthSubject.md +7 -8
  71. package/data/packages/platform-authentication/api/Interface.IMfaChallengePayload.md +5 -6
  72. package/data/packages/platform-authentication/api/Interface.IMfaChallengeState.md +10 -11
  73. package/data/packages/platform-authentication/api/Interface.IMfaConfirmation.md +0 -1
  74. package/data/packages/platform-authentication/api/Interface.IMfaSetup.md +3 -4
  75. package/data/packages/platform-authentication/api/Interface.IMfaSubject.md +9 -10
  76. package/data/packages/platform-authentication/api/Interface.IMfaSubjectUpdate.md +7 -8
  77. package/data/packages/platform-authentication/api/Interface.ISessionRecord.md +14 -15
  78. package/data/packages/platform-authentication/api/Interface.ISignInResult.md +5 -6
  79. package/data/packages/platform-authentication/api/Interface.ISocialProfile.md +3 -4
  80. package/data/packages/platform-authentication/api/Interface.IStoreSessionArgs.md +5 -6
  81. package/data/packages/platform-authentication/api/Interface.IVerifiableSubject.md +4 -5
  82. package/data/packages/platform-authentication/api/Variable.APPLE_AUTH_CONFIG_ENTRIES.md +2 -3
  83. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_CALLBACK_URL.md +2 -3
  84. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_CLIENT_ID.md +2 -3
  85. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_KEY_ID.md +2 -3
  86. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_PRIVATE_KEY.md +2 -3
  87. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_SCOPE.md +2 -3
  88. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_TEAM_ID.md +2 -3
  89. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_CALLBACK_URL.md +2 -3
  90. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_CLIENT_ID.md +2 -3
  91. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_CLIENT_SECRET.md +2 -3
  92. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_SCOPE.md +2 -3
  93. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_CALLBACK_URL.md +2 -3
  94. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_CLIENT_ID.md +2 -3
  95. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_CLIENT_SECRET.md +2 -3
  96. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_SCOPE.md +2 -3
  97. package/data/packages/platform-authentication/api/Variable.AUTH_JWT_EXPIRES_IN.md +2 -3
  98. package/data/packages/platform-authentication/api/Variable.AUTH_JWT_SECRET.md +2 -3
  99. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_CHALLENGE_EXPIRES_IN.md +2 -3
  100. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_EMAIL_CODE_TTL.md +2 -3
  101. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_EMAIL_MIN_RESEND.md +2 -3
  102. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_ENCRYPTION_KEY.md +2 -3
  103. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_ISSUER.md +2 -3
  104. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_MAX_ATTEMPTS.md +2 -3
  105. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_PUSH_CODE_TTL.md +2 -3
  106. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_PUSH_MIN_RESEND.md +2 -3
  107. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_SMS_CODE_TTL.md +2 -3
  108. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_SMS_MIN_RESEND.md +2 -3
  109. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_CALLBACK_URL.md +2 -3
  110. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_CLIENT_ID.md +2 -3
  111. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_CLIENT_SECRET.md +2 -3
  112. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_SCOPE.md +2 -3
  113. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_TENANT.md +2 -3
  114. package/data/packages/platform-authentication/api/Variable.AUTH_VERIFY_JWT_EXPIRES_IN.md +2 -3
  115. package/data/packages/platform-authentication/api/Variable.GITHUB_AUTH_CONFIG_ENTRIES.md +3 -4
  116. package/data/packages/platform-authentication/api/Variable.GOOGLE_AUTH_CONFIG_ENTRIES.md +3 -4
  117. package/data/packages/platform-authentication/api/Variable.MICROSOFT_AUTH_CONFIG_ENTRIES.md +2 -3
  118. package/data/packages/platform-authentication/api/Variable.PLATFORM_AUTHENTICATION_CONFIG_ENTRIES.md +3 -4
  119. package/data/packages/platform-authentication/api/Variable.ROLES_KEY.md +2 -3
  120. package/data/packages/platform-authentication/api/Variable.SEED_ANONYMOUS_USERNAME.md +2 -3
  121. package/data/packages/platform-authentication/api/Variable.SESSION_LIST_MAPPING_KEY.md +1 -2
  122. package/data/packages/platform-authentication/api/Variable.SESSION_MAPPING_KEY.md +1 -2
  123. package/data/packages/platform-authentication/api/Variable.TOTP_MFA_PROVIDERS.md +1 -2
  124. package/data/packages/platform-authentication/api/Variable.User.md +2 -3
  125. package/data/packages/platform-authentication/api/index.md +94 -95
  126. package/data/packages/platform-blob-storage/api/Class.AwsS3BlobProvider.md +16 -17
  127. package/data/packages/platform-blob-storage/api/Class.AzureBlobProvider.md +16 -17
  128. package/data/packages/platform-blob-storage/api/Class.BlobHealthIndicator.md +5 -6
  129. package/data/packages/platform-blob-storage/api/Class.BlobModule.md +2 -3
  130. package/data/packages/platform-blob-storage/api/Class.BlobObjectPersistencePort.md +12 -13
  131. package/data/packages/platform-blob-storage/api/Class.BlobService.md +45 -46
  132. package/data/packages/platform-blob-storage/api/Class.BlobVariantPersistencePort.md +7 -8
  133. package/data/packages/platform-blob-storage/api/Class.VercelBlobProvider.md +18 -19
  134. package/data/packages/platform-blob-storage/api/Interface.IAwsS3BlobProviderRegistration.md +2 -3
  135. package/data/packages/platform-blob-storage/api/Interface.IAwsS3ProviderOptions.md +5 -6
  136. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderOptions.md +2 -3
  137. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderRegistration.md +2 -3
  138. package/data/packages/platform-blob-storage/api/Interface.IBlobDeleteRequest.md +2 -3
  139. package/data/packages/platform-blob-storage/api/Interface.IBlobDownloadRequest.md +3 -4
  140. package/data/packages/platform-blob-storage/api/Interface.IBlobDownloadResult.md +6 -7
  141. package/data/packages/platform-blob-storage/api/Interface.IBlobModuleOptions.md +3 -4
  142. package/data/packages/platform-blob-storage/api/Interface.IBlobObjectMetadata.md +12 -13
  143. package/data/packages/platform-blob-storage/api/Interface.IBlobProvider.md +14 -15
  144. package/data/packages/platform-blob-storage/api/Interface.IBlobSignedUrlRequest.md +3 -4
  145. package/data/packages/platform-blob-storage/api/Interface.IBlobUploadRequest.md +8 -9
  146. package/data/packages/platform-blob-storage/api/Interface.IBlobUploadResult.md +1 -2
  147. package/data/packages/platform-blob-storage/api/Interface.ICustomBlobProviderRegistration.md +2 -3
  148. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderOptions.md +5 -6
  149. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderRegistration.md +2 -3
  150. package/data/packages/platform-blob-storage/api/TypeAlias.BlobDownloadResponseType.md +1 -2
  151. package/data/packages/platform-blob-storage/api/TypeAlias.BlobUploadBody.md +0 -1
  152. package/data/packages/platform-blob-storage/api/TypeAlias.IBlobProviderRegistration.md +1 -2
  153. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_PROVIDER_OPTIONS.md +1 -2
  154. package/data/packages/platform-blob-storage/api/Variable.AZURE_BLOB_PROVIDER_OPTIONS.md +1 -2
  155. package/data/packages/platform-blob-storage/api/Variable.BLOB_PROVIDER.md +1 -2
  156. package/data/packages/platform-blob-storage/api/Variable.BlobDownloadResponseTypes.md +9 -10
  157. package/data/packages/platform-blob-storage/api/Variable.BlobProviderKinds.md +10 -11
  158. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_PROVIDER_OPTIONS.md +1 -2
  159. package/data/packages/platform-blob-storage/api/index.md +41 -42
  160. package/data/packages/platform-caching/api/Class.MemoryLayeredCache.md +37 -38
  161. package/data/packages/platform-caching/api/Class.NoopCacheMetricsRecorder.md +19 -20
  162. package/data/packages/platform-caching/api/Class.RedisLayeredCache.md +39 -40
  163. package/data/packages/platform-caching/api/Interface.ICacheMetricsRecorder.md +19 -20
  164. package/data/packages/platform-caching/api/Interface.ICacheStats.md +4 -5
  165. package/data/packages/platform-caching/api/Interface.ILayeredCache.md +34 -35
  166. package/data/packages/platform-caching/api/Interface.ILayeredCacheOptions.md +4 -5
  167. package/data/packages/platform-caching/api/Interface.IRedisLayeredCacheOptions.md +15 -16
  168. package/data/packages/platform-caching/api/index.md +12 -13
  169. package/data/packages/platform-core/api/Class.AppHealthIndicator.md +4 -5
  170. package/data/packages/platform-core/api/Class.BlobResourceStrategy.md +20 -21
  171. package/data/packages/platform-core/api/Class.BooleanUtils.md +12 -13
  172. package/data/packages/platform-core/api/Class.CUIDGenerator.md +17 -18
  173. package/data/packages/platform-core/api/Class.CasingInterceptor.md +10 -11
  174. package/data/packages/platform-core/api/Class.CatchUtils.md +15 -16
  175. package/data/packages/platform-core/api/Class.ConfigKeyNotFoundError.md +89 -0
  176. package/data/packages/platform-core/api/Class.ConfigModule.md +7 -8
  177. package/data/packages/platform-core/api/Class.ConfigRegistry.md +8 -9
  178. package/data/packages/platform-core/api/Class.ConfigService.md +30 -32
  179. package/data/packages/platform-core/api/Class.ConfigStrategyBase.md +17 -18
  180. package/data/packages/platform-core/api/Class.ContentTemplateEngine.md +4 -5
  181. package/data/packages/platform-core/api/Class.DateTimeUtils.md +12 -13
  182. package/data/packages/platform-core/api/Class.DeviceParserService.md +2 -3
  183. package/data/packages/platform-core/api/Class.EmbeddedResourceStrategy.md +22 -23
  184. package/data/packages/platform-core/api/Class.EnvironmentConfigStrategy.md +19 -20
  185. package/data/packages/platform-core/api/Class.ErrorTemplateService.md +18 -19
  186. package/data/packages/platform-core/api/Class.EventHub.md +25 -26
  187. package/data/packages/platform-core/api/Class.EventModule.md +0 -1
  188. package/data/packages/platform-core/api/Class.FileConfigStrategy.md +21 -22
  189. package/data/packages/platform-core/api/Class.FileResourceStrategy.md +19 -20
  190. package/data/packages/platform-core/api/Class.GUIDGenerator.md +7 -8
  191. package/data/packages/platform-core/api/Class.GlobalExceptionFilter.md +7 -8
  192. package/data/packages/platform-core/api/Class.HealthModule.md +2 -3
  193. package/data/packages/platform-core/api/Class.HealthOrchestrator.md +3 -4
  194. package/data/packages/platform-core/api/Class.HostModule.md +0 -2
  195. package/data/packages/platform-core/api/Class.HostService.md +21 -22
  196. package/data/packages/platform-core/api/Class.HttpLoggerMiddleware.md +8 -9
  197. package/data/packages/platform-core/api/Class.IdGeneratorBase.md +7 -8
  198. package/data/packages/platform-core/api/Class.IdentifierModule.md +3 -4
  199. package/data/packages/platform-core/api/Class.LimitRequestSizeMiddleware.md +8 -9
  200. package/data/packages/platform-core/api/Class.LocalizedTextRequest.md +1 -2
  201. package/data/packages/platform-core/api/Class.LocalizedTextResponse.md +1 -2
  202. package/data/packages/platform-core/api/Class.MappingBuilder.md +18 -19
  203. package/data/packages/platform-core/api/Class.MappingModule.md +2 -3
  204. package/data/packages/platform-core/api/Class.MappingNotRegisteredError.md +5 -6
  205. package/data/packages/platform-core/api/Class.MappingProfileBase.md +2 -3
  206. package/data/packages/platform-core/api/Class.MappingService.md +52 -53
  207. package/data/packages/platform-core/api/Class.NormalizedUtils.md +20 -21
  208. package/data/packages/platform-core/api/Class.PageableRequest.md +1 -2
  209. package/data/packages/platform-core/api/Class.PageableResponse.md +3 -4
  210. package/data/packages/platform-core/api/Class.ProblemDetailException.md +6 -7
  211. package/data/packages/platform-core/api/Class.ProblemDetailExceptionFilter.md +11 -12
  212. package/data/packages/platform-core/api/Class.QuantityResponse.md +1 -2
  213. package/data/packages/platform-core/api/Class.ResourceManager.md +88 -89
  214. package/data/packages/platform-core/api/Class.ResourceModule.md +3 -4
  215. package/data/packages/platform-core/api/Class.ResponseReturn.md +102 -104
  216. package/data/packages/platform-core/api/Class.SseHub.md +23 -24
  217. package/data/packages/platform-core/api/Class.SseModule.md +3 -4
  218. package/data/packages/platform-core/api/Class.TimeStampResponse.md +1 -2
  219. package/data/packages/platform-core/api/Class.TypeMappingNotRegisteredError.md +5 -6
  220. package/data/packages/platform-core/api/Class.UUIDGenerator.md +7 -8
  221. package/data/packages/platform-core/api/Class.UserAvatarGeneratorService.md +4 -5
  222. package/data/packages/platform-core/api/Class.UserNameGeneratorService.md +4 -5
  223. package/data/packages/platform-core/api/Function.Public.md +0 -1
  224. package/data/packages/platform-core/api/Function.createConfigKey.md +7 -9
  225. package/data/packages/platform-core/api/Function.createEventKey.md +6 -7
  226. package/data/packages/platform-core/api/Function.createMappingKey.md +6 -7
  227. package/data/packages/platform-core/api/Function.env.md +4 -5
  228. package/data/packages/platform-core/api/Function.getMimeTypeByFileNameOrExtension.md +2 -3
  229. package/data/packages/platform-core/api/ISseEventData.Function.isActionId.md +4 -5
  230. package/data/packages/platform-core/api/Interface.IBlobResourceStrategyConfig.md +1 -2
  231. package/data/packages/platform-core/api/Interface.IBlobServiceAdapter.md +5 -6
  232. package/data/packages/platform-core/api/Interface.IConfigKey.md +16 -17
  233. package/data/packages/platform-core/api/Interface.IConfigModuleOptions.md +3 -4
  234. package/data/packages/platform-core/api/Interface.IConfigRegistryEntry.md +6 -7
  235. package/data/packages/platform-core/api/Interface.IDeviceInfo.md +6 -7
  236. package/data/packages/platform-core/api/Interface.IErrorPageParams.md +19 -20
  237. package/data/packages/platform-core/api/Interface.IEventKey.md +7 -8
  238. package/data/packages/platform-core/api/Interface.IEventMap.md +0 -1
  239. package/data/packages/platform-core/api/Interface.IFileResourceStrategyConfig.md +5 -6
  240. package/data/packages/platform-core/api/Interface.IHealthCheckResult.md +3 -4
  241. package/data/packages/platform-core/api/Interface.IHealthIndicator.md +3 -4
  242. package/data/packages/platform-core/api/Interface.IHostContentParams.md +17 -18
  243. package/data/packages/platform-core/api/Interface.IIdGenerator.md +7 -8
  244. package/data/packages/platform-core/api/Interface.IMappingBuilder.md +17 -18
  245. package/data/packages/platform-core/api/Interface.IMappingKey.md +7 -8
  246. package/data/packages/platform-core/api/Interface.IMappingProfile.md +2 -3
  247. package/data/packages/platform-core/api/Interface.IResourceManagerConfig.md +4 -5
  248. package/data/packages/platform-core/api/Interface.IResourceMetadata.md +6 -7
  249. package/data/packages/platform-core/api/Interface.IResourceResult.md +1 -2
  250. package/data/packages/platform-core/api/Interface.IResourceStrategy.md +16 -17
  251. package/data/packages/platform-core/api/Interface.ISseEventData.md +3 -4
  252. package/data/packages/platform-core/api/Interface.ISseHub.md +16 -17
  253. package/data/packages/platform-core/api/Namespace.ISseEventData.md +2 -3
  254. package/data/packages/platform-core/api/TypeAlias.CamelCase.md +2 -3
  255. package/data/packages/platform-core/api/TypeAlias.ProblemDetail.md +5 -6
  256. package/data/packages/platform-core/api/TypeAlias.ProblemDetailTypeUrlResolver.md +4 -5
  257. package/data/packages/platform-core/api/TypeAlias.SetOptional.md +4 -5
  258. package/data/packages/platform-core/api/TypeAlias.StringValue.md +4 -2
  259. package/data/packages/platform-core/api/Variable.APP_NAME.md +1 -2
  260. package/data/packages/platform-core/api/Variable.APP_PORT.md +1 -2
  261. package/data/packages/platform-core/api/Variable.APP_URL.md +1 -2
  262. package/data/packages/platform-core/api/Variable.APP_VERSION.md +1 -2
  263. package/data/packages/platform-core/api/Variable.GIT_COMMIT.md +1 -2
  264. package/data/packages/platform-core/api/Variable.HEALTH_INDICATORS_TOKEN.md +1 -2
  265. package/data/packages/platform-core/api/Variable.ID_GENERATOR_TOKEN.md +1 -2
  266. package/data/packages/platform-core/api/Variable.INTELLIGENCE_MAX_OUTPUT_TOKENS.md +1 -2
  267. package/data/packages/platform-core/api/Variable.INTELLIGENCE_MODEL.md +1 -2
  268. package/data/packages/platform-core/api/Variable.INTELLIGENCE_TEMPERATURE.md +1 -2
  269. package/data/packages/platform-core/api/Variable.INTELLIGENCE_TOP_P.md +1 -2
  270. package/data/packages/platform-core/api/Variable.IS_PUBLIC_KEY.md +2 -3
  271. package/data/packages/platform-core/api/Variable.IpAddress.md +6 -7
  272. package/data/packages/platform-core/api/Variable.Lang.md +5 -6
  273. package/data/packages/platform-core/api/Variable.NODE_ENV.md +1 -2
  274. package/data/packages/platform-core/api/Variable.PLATFORM_CORE_CONFIG_ENTRIES.md +2 -3
  275. package/data/packages/platform-core/api/Variable.UserAgent.md +2 -3
  276. package/data/packages/platform-core/api/index.md +116 -116
  277. package/data/packages/platform-cryptography/api/Class.BcryptService.md +7 -8
  278. package/data/packages/platform-cryptography/api/Class.CryptoService.md +3 -4
  279. package/data/packages/platform-cryptography/api/Class.OtpService.md +8 -9
  280. package/data/packages/platform-cryptography/api/Interface.IOtpService.md +8 -9
  281. package/data/packages/platform-cryptography/api/Interface.IOtpUriOptions.md +2 -3
  282. package/data/packages/platform-cryptography/api/Variable.OTP_SERVICE_TOKEN.md +1 -2
  283. package/data/packages/platform-cryptography/api/Variable.TOTP_EPOCH_TOLERANCE.md +7 -8
  284. package/data/packages/platform-cryptography/api/index.md +11 -12
  285. package/data/packages/platform-database/api/Class.DatabaseHealthIndicator.md +6 -7
  286. package/data/packages/platform-database/api/Class.DatabaseModule.md +5 -6
  287. package/data/packages/platform-database/api/Class.DatabaseService.md +19 -20
  288. package/data/packages/platform-database/api/Class.PrismaService.md +7 -8
  289. package/data/packages/platform-database/api/Class.RepositoryBase.md +126 -127
  290. package/data/packages/platform-database/api/Class.RepositoryExceptionFilter.md +5 -6
  291. package/data/packages/platform-database/api/Function.pageable.md +13 -10
  292. package/data/packages/platform-database/api/Function.paginator.md +2 -3
  293. package/data/packages/platform-database/api/Function.query.md +7 -8
  294. package/data/packages/platform-database/api/Function.skip.md +5 -6
  295. package/data/packages/platform-database/api/Function.transactionalQuery.md +6 -7
  296. package/data/packages/platform-database/api/Interface.IDatabaseModuleConfig.md +0 -1
  297. package/data/packages/platform-database/api/Interface.IPaginateOptions.md +1 -2
  298. package/data/packages/platform-database/api/Interface.IPaginatedResult.md +4 -5
  299. package/data/packages/platform-database/api/Interface.IRepositoryQuery.md +7 -8
  300. package/data/packages/platform-database/api/Interface.ITransactionalRepositoryQuery.md +5 -6
  301. package/data/packages/platform-database/api/TypeAlias.DelegateArgs.md +2 -3
  302. package/data/packages/platform-database/api/TypeAlias.DelegateReturnTypes.md +2 -3
  303. package/data/packages/platform-database/api/TypeAlias.PaginateFunction.md +7 -8
  304. package/data/packages/platform-database/api/TypeAlias.QueryResultType.md +3 -4
  305. package/data/packages/platform-database/api/TypeAlias.TransactionalQueryResultType.md +3 -4
  306. package/data/packages/platform-database/api/index.md +27 -28
  307. package/data/packages/platform-documents/api/Class.BaseDocumentRenderer.md +31 -33
  308. package/data/packages/platform-documents/api/Class.DocumentEngine.md +7 -8
  309. package/data/packages/platform-documents/api/Class.DocumentModule.md +2 -3
  310. package/data/packages/platform-documents/api/Class.SharpImageProcessor.md +21 -22
  311. package/data/packages/platform-documents/api/Interface.IDocumentModuleOptions.md +5 -7
  312. package/data/packages/platform-documents/api/Interface.IDocumentPlaceholderDetail.md +5 -6
  313. package/data/packages/platform-documents/api/Interface.IDocumentProbeReport.md +8 -9
  314. package/data/packages/platform-documents/api/Interface.IDocumentRenderer.md +2 -3
  315. package/data/packages/platform-documents/api/Interface.IImagePayload.md +3 -4
  316. package/data/packages/platform-documents/api/Interface.IImageProcessor.md +18 -19
  317. package/data/packages/platform-documents/api/Interface.IRenderOptions.md +3 -4
  318. package/data/packages/platform-documents/api/Interface.IRenderResult.md +3 -4
  319. package/data/packages/platform-documents/api/TypeAlias.DocumentFormat.md +1 -2
  320. package/data/packages/platform-documents/api/TypeAlias.EngineType.md +1 -2
  321. package/data/packages/platform-documents/api/TypeAlias.ImageMimeType.md +1 -2
  322. package/data/packages/platform-documents/api/TypeAlias.TemplateFormat.md +1 -2
  323. package/data/packages/platform-documents/api/TypeAlias.TemplateType.md +1 -2
  324. package/data/packages/platform-documents/api/Variable.DOCUMENT_MODULE_OPTIONS.md +1 -2
  325. package/data/packages/platform-documents/api/Variable.DOCUMENT_PARSER_TOKEN.md +1 -2
  326. package/data/packages/platform-documents/api/Variable.DOCUMENT_RENDERER_TOKEN.md +1 -2
  327. package/data/packages/platform-documents/api/Variable.IMAGE_PROCESSOR_TOKEN.md +1 -2
  328. package/data/packages/platform-documents/api/index.md +28 -29
  329. package/data/packages/platform-esigning/api/Class.EsigningClientPort.md +20 -21
  330. package/data/packages/platform-esigning/api/Class.EsigningError.md +4 -5
  331. package/data/packages/platform-esigning/api/Class.EsigningModule.md +2 -3
  332. package/data/packages/platform-esigning/api/Class.EsigningPersistencePort.md +9 -10
  333. package/data/packages/platform-esigning/api/Class.EsigningService.md +24 -25
  334. package/data/packages/platform-esigning/api/Class.InternalEsigningProvider.md +24 -25
  335. package/data/packages/platform-esigning/api/Class.SigningProviderError.md +9 -10
  336. package/data/packages/platform-esigning/api/Class.SigningRequestNotFoundError.md +3 -4
  337. package/data/packages/platform-esigning/api/Class.WebhookVerificationError.md +2 -3
  338. package/data/packages/platform-esigning/api/Interface.ICreateSigningRequest.md +6 -7
  339. package/data/packages/platform-esigning/api/Interface.ICreateSigningRequestDocument.md +3 -4
  340. package/data/packages/platform-esigning/api/Interface.ICreateSigningRequestSigner.md +3 -4
  341. package/data/packages/platform-esigning/api/Interface.ICreateSigningSessionRequest.md +2 -3
  342. package/data/packages/platform-esigning/api/Interface.IEsigningModuleOptions.md +3 -4
  343. package/data/packages/platform-esigning/api/Interface.IEsigningWebhookEvent.md +5 -6
  344. package/data/packages/platform-esigning/api/Interface.ISignedDocument.md +5 -6
  345. package/data/packages/platform-esigning/api/Interface.ISigner.md +5 -6
  346. package/data/packages/platform-esigning/api/Interface.ISigningDocument.md +5 -6
  347. package/data/packages/platform-esigning/api/Interface.ISigningField.md +10 -11
  348. package/data/packages/platform-esigning/api/Interface.ISigningRequest.md +10 -11
  349. package/data/packages/platform-esigning/api/Interface.ISigningSession.md +4 -5
  350. package/data/packages/platform-esigning/api/TypeAlias.SignerRole.md +1 -2
  351. package/data/packages/platform-esigning/api/TypeAlias.SignerStatus.md +1 -2
  352. package/data/packages/platform-esigning/api/TypeAlias.SigningFieldType.md +1 -2
  353. package/data/packages/platform-esigning/api/TypeAlias.SigningRequestStatus.md +1 -2
  354. package/data/packages/platform-esigning/api/TypeAlias.WebhookEventType.md +1 -2
  355. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_BASE_URL.md +1 -2
  356. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_CLIENT_SECRET.md +1 -2
  357. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_CONFIG_ENTRIES.md +2 -3
  358. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_INTEGRATION_KEY.md +1 -2
  359. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_WEBHOOK_CLIENT_ID.md +1 -2
  360. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_ACCOUNT_ID.md +1 -2
  361. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_BASE_URL.md +1 -2
  362. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_CONFIG_ENTRIES.md +2 -3
  363. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_INTEGRATION_KEY.md +1 -2
  364. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_SECRET_KEY.md +1 -2
  365. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_WEBHOOK_HMAC_KEY.md +1 -2
  366. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_API_KEY.md +1 -2
  367. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_CLIENT_ID.md +1 -2
  368. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_CONFIG_ENTRIES.md +2 -3
  369. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_WEBHOOK_SECRET.md +1 -2
  370. package/data/packages/platform-esigning/api/Variable.ESIGNING_API_BASE_URL.md +1 -2
  371. package/data/packages/platform-esigning/api/Variable.ESIGNING_API_KEY.md +1 -2
  372. package/data/packages/platform-esigning/api/Variable.ESIGNING_PROVIDER.md +1 -2
  373. package/data/packages/platform-esigning/api/Variable.ESIGNING_PROVIDER_OPTIONS.md +1 -2
  374. package/data/packages/platform-esigning/api/Variable.ESIGNING_WEBHOOK_SECRET.md +1 -2
  375. package/data/packages/platform-esigning/api/Variable.PLATFORM_ESIGNING_CONFIG_ENTRIES.md +2 -3
  376. package/data/packages/platform-esigning/api/Variable.SIGNNOW_API_KEY.md +1 -2
  377. package/data/packages/platform-esigning/api/Variable.SIGNNOW_BASE_URL.md +1 -2
  378. package/data/packages/platform-esigning/api/Variable.SIGNNOW_CLIENT_ID.md +1 -2
  379. package/data/packages/platform-esigning/api/Variable.SIGNNOW_CLIENT_SECRET.md +1 -2
  380. package/data/packages/platform-esigning/api/Variable.SIGNNOW_CONFIG_ENTRIES.md +2 -3
  381. package/data/packages/platform-esigning/api/Variable.SIGNNOW_WEBHOOK_SECRET.md +1 -2
  382. package/data/packages/platform-esigning/api/Variable.SignerRoles.md +12 -13
  383. package/data/packages/platform-esigning/api/Variable.SignerStatuses.md +14 -15
  384. package/data/packages/platform-esigning/api/Variable.SigningFieldTypes.md +20 -21
  385. package/data/packages/platform-esigning/api/Variable.SigningRequestStatuses.md +18 -19
  386. package/data/packages/platform-esigning/api/Variable.WebhookEventTypes.md +20 -21
  387. package/data/packages/platform-esigning/api/index.md +65 -66
  388. package/data/packages/platform-intelligence/api/Class.IntelligenceCapabilityRegistrarBase.md +4 -5
  389. package/data/packages/platform-intelligence/api/Class.IntelligenceCapabilityRegistry.md +10 -11
  390. package/data/packages/platform-intelligence/api/Class.IntelligenceModule.md +0 -1
  391. package/data/packages/platform-intelligence/api/Class.IntelligenceTextGenerator.md +10 -11
  392. package/data/packages/platform-intelligence/api/Function.createProviderOptions.md +2 -3
  393. package/data/packages/platform-intelligence/api/Function.loadAnthropicLanguageModel.md +2 -3
  394. package/data/packages/platform-intelligence/api/Function.loadGoogleLanguageModel.md +2 -3
  395. package/data/packages/platform-intelligence/api/Function.loadGrokLanguageModel.md +2 -3
  396. package/data/packages/platform-intelligence/api/Function.loadOpenAILanguageModel.md +2 -3
  397. package/data/packages/platform-intelligence/api/Function.loadProviderFactory.md +3 -4
  398. package/data/packages/platform-intelligence/api/Interface.IIntelligenceArtifact.md +1 -2
  399. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapability.md +6 -7
  400. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityMetadata.md +4 -5
  401. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityPayload.md +2 -3
  402. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityRegistry.md +10 -11
  403. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityResult.md +2 -3
  404. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCompletionUsage.md +2 -3
  405. package/data/packages/platform-intelligence/api/Interface.IIntelligenceContext.md +5 -6
  406. package/data/packages/platform-intelligence/api/Interface.IIntelligenceContextBuilder.md +3 -4
  407. package/data/packages/platform-intelligence/api/Interface.IIntelligenceConversationMessageSnapshot.md +4 -5
  408. package/data/packages/platform-intelligence/api/Interface.IIntelligenceConversationSnapshot.md +3 -4
  409. package/data/packages/platform-intelligence/api/Interface.IIntelligenceFollowUpQuestion.md +2 -3
  410. package/data/packages/platform-intelligence/api/Interface.IIntelligenceIntent.md +2 -3
  411. package/data/packages/platform-intelligence/api/Interface.IIntelligenceIntentEntity.md +1 -2
  412. package/data/packages/platform-intelligence/api/Interface.IIntelligenceMessageModel.md +4 -5
  413. package/data/packages/platform-intelligence/api/Interface.IIntelligenceMessagePayload.md +1 -2
  414. package/data/packages/platform-intelligence/api/Interface.IIntelligencePrompt.md +1 -2
  415. package/data/packages/platform-intelligence/api/Interface.IIntelligencePromptMessage.md +1 -2
  416. package/data/packages/platform-intelligence/api/Interface.IIntelligenceProviderConfiguration.md +6 -7
  417. package/data/packages/platform-intelligence/api/Interface.IIntelligenceResponseMessage.md +1 -2
  418. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextCompletion.md +4 -5
  419. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextGenerationOptions.md +2 -3
  420. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextGenerator.md +4 -5
  421. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceConversationMessageRole.md +1 -3
  422. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceLanguageModelLoader.md +2 -3
  423. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceProviderName.md +1 -2
  424. package/data/packages/platform-intelligence/api/Variable.IntelligenceConversationMessageRoles.md +7 -8
  425. package/data/packages/platform-intelligence/api/Variable.IntelligenceProviderNames.md +10 -11
  426. package/data/packages/platform-intelligence/api/index.md +46 -47
  427. package/data/packages/platform-logging/api/Class.LoggerModule.md +0 -1
  428. package/data/packages/platform-logging/api/Variable.APP_LOG_LEVEL.md +1 -2
  429. package/data/packages/platform-logging/api/Variable.PLATFORM_LOGGING_CONFIG_ENTRIES.md +2 -3
  430. package/data/packages/platform-logging/api/index.md +7 -8
  431. package/data/packages/platform-mailing/api/Class.BlobTemplateFetchStrategy.md +2 -3
  432. package/data/packages/platform-mailing/api/Class.DeliveryStrategyBase.md +11 -12
  433. package/data/packages/platform-mailing/api/Class.FileTemplateFetchStrategy.md +2 -3
  434. package/data/packages/platform-mailing/api/Class.LogDeliveryStrategy.md +13 -14
  435. package/data/packages/platform-mailing/api/Class.MailHealthIndicator.md +4 -5
  436. package/data/packages/platform-mailing/api/Class.MailModule.md +0 -1
  437. package/data/packages/platform-mailing/api/Class.MailService.md +27 -28
  438. package/data/packages/platform-mailing/api/Class.MailTemplateEngine.md +12 -13
  439. package/data/packages/platform-mailing/api/Class.MailVerificationService.md +14 -15
  440. package/data/packages/platform-mailing/api/Class.MailgunDeliveryStrategy.md +13 -14
  441. package/data/packages/platform-mailing/api/Class.PostmarkDeliveryStrategy.md +13 -14
  442. package/data/packages/platform-mailing/api/Class.ResendDeliveryStrategy.md +13 -14
  443. package/data/packages/platform-mailing/api/Class.SendGridDeliveryStrategy.md +13 -14
  444. package/data/packages/platform-mailing/api/Class.SmtpDeliveryStrategy.md +13 -14
  445. package/data/packages/platform-mailing/api/Class.TemplateFetchStrategyBase.md +2 -3
  446. package/data/packages/platform-mailing/api/Interface.IMailEvents.md +0 -1
  447. package/data/packages/platform-mailing/api/Interface.IMailTemplateVariants.md +1 -2
  448. package/data/packages/platform-mailing/api/TypeAlias.MailTemplateFormat.md +1 -2
  449. package/data/packages/platform-mailing/api/Variable.MAILGUN_API_KEY.md +1 -2
  450. package/data/packages/platform-mailing/api/Variable.MAILGUN_CONFIG_ENTRIES.md +2 -3
  451. package/data/packages/platform-mailing/api/Variable.MAILGUN_DOMAIN.md +1 -2
  452. package/data/packages/platform-mailing/api/Variable.MAIL_DELIVERY_STRATEGY.md +1 -2
  453. package/data/packages/platform-mailing/api/Variable.MAIL_DELIVERY_STRATEGY_TOKEN.md +1 -2
  454. package/data/packages/platform-mailing/api/Variable.MAIL_HOST.md +1 -2
  455. package/data/packages/platform-mailing/api/Variable.MAIL_MAILGUN_API_KEY.md +1 -2
  456. package/data/packages/platform-mailing/api/Variable.MAIL_MAILGUN_DOMAIN.md +1 -2
  457. package/data/packages/platform-mailing/api/Variable.MAIL_PORT.md +1 -2
  458. package/data/packages/platform-mailing/api/Variable.MAIL_POSTMARK_API_KEY.md +1 -2
  459. package/data/packages/platform-mailing/api/Variable.MAIL_RESEND_API_KEY.md +1 -2
  460. package/data/packages/platform-mailing/api/Variable.MAIL_SENDER_EMAIL.md +1 -2
  461. package/data/packages/platform-mailing/api/Variable.MAIL_SENDGRID_API_KEY.md +1 -2
  462. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_HOST.md +1 -2
  463. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_PASSWORD.md +1 -2
  464. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_PORT.md +1 -2
  465. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_SECURE.md +1 -2
  466. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_USER.md +1 -2
  467. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_ENGINE_FORMAT.md +1 -2
  468. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_FETCH_STRATEGY_TOKEN.md +1 -2
  469. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_STRATEGY.md +1 -2
  470. package/data/packages/platform-mailing/api/Variable.MAIL_USER.md +1 -2
  471. package/data/packages/platform-mailing/api/Variable.PLATFORM_MAILING_CONFIG_ENTRIES.md +2 -3
  472. package/data/packages/platform-mailing/api/Variable.POSTMARK_API_KEY.md +1 -2
  473. package/data/packages/platform-mailing/api/Variable.POSTMARK_CONFIG_ENTRIES.md +2 -3
  474. package/data/packages/platform-mailing/api/Variable.RESEND_API_KEY.md +1 -2
  475. package/data/packages/platform-mailing/api/Variable.RESEND_CONFIG_ENTRIES.md +2 -3
  476. package/data/packages/platform-mailing/api/Variable.SENDGRID_API_KEY.md +1 -2
  477. package/data/packages/platform-mailing/api/Variable.SENDGRID_CONFIG_ENTRIES.md +2 -3
  478. package/data/packages/platform-mailing/api/Variable.SEND_MAIL_EVENT_KEY.md +2 -3
  479. package/data/packages/platform-mailing/api/index.md +54 -55
  480. package/data/packages/platform-mcp/api/Class.McpDiscoveryService.md +8 -9
  481. package/data/packages/platform-mcp/api/Class.McpModule.md +8 -9
  482. package/data/packages/platform-mcp/api/Class.McpRegistryService.md +16 -17
  483. package/data/packages/platform-mcp/api/Class.McpServerService.md +19 -20
  484. package/data/packages/platform-mcp/api/Function.McpPrompt.md +2 -3
  485. package/data/packages/platform-mcp/api/Function.McpResource.md +2 -3
  486. package/data/packages/platform-mcp/api/Function.McpTool.md +2 -3
  487. package/data/packages/platform-mcp/api/Interface.IMcpHandlerMetadata.md +2 -3
  488. package/data/packages/platform-mcp/api/Interface.IMcpModuleAsyncOptions.md +8 -9
  489. package/data/packages/platform-mcp/api/Interface.IMcpModuleOptions.md +3 -4
  490. package/data/packages/platform-mcp/api/Interface.IMcpModuleOptionsFactory.md +3 -4
  491. package/data/packages/platform-mcp/api/Interface.IMcpPromptMetadata.md +3 -4
  492. package/data/packages/platform-mcp/api/Interface.IMcpResourceMetadata.md +4 -5
  493. package/data/packages/platform-mcp/api/Interface.IMcpToolMetadata.md +5 -6
  494. package/data/packages/platform-mcp/api/Interface.IRegisteredPrompt.md +3 -4
  495. package/data/packages/platform-mcp/api/Interface.IRegisteredResource.md +3 -4
  496. package/data/packages/platform-mcp/api/Interface.IRegisteredTool.md +3 -4
  497. package/data/packages/platform-mcp/api/Interface.ISseTransportOptions.md +0 -1
  498. package/data/packages/platform-mcp/api/Interface.IStreamableHttpTransportOptions.md +1 -2
  499. package/data/packages/platform-mcp/api/Variable.MCP_MODULE_OPTIONS.md +1 -2
  500. package/data/packages/platform-mcp/api/index.md +26 -27
  501. package/data/packages/platform-openapi/api/Class.SwaggerFeatureDiscovery.md +15 -12
  502. package/data/packages/platform-openapi/api/Class.SwaggerFeatureRegistry.md +5 -6
  503. package/data/packages/platform-openapi/api/Class.SwaggerMultiDocumentService.md +20 -21
  504. package/data/packages/platform-openapi/api/Class.SwaggerTheme.md +2 -3
  505. package/data/packages/platform-openapi/api/Function.Api.md +13 -14
  506. package/data/packages/platform-openapi/api/Function.SwaggerFeature.md +4 -5
  507. package/data/packages/platform-openapi/api/Function.getRegisteredSwaggerFeatures.md +0 -1
  508. package/data/packages/platform-openapi/api/Function.getSwaggerFeatureMetadata.md +8 -7
  509. package/data/packages/platform-openapi/api/Interface.IFeatureSwaggerConfig.md +5 -6
  510. package/data/packages/platform-openapi/api/Interface.ISwaggerFeatureMetadata.md +5 -6
  511. package/data/packages/platform-openapi/api/Variable.APP_VERSION.md +1 -2
  512. package/data/packages/platform-openapi/api/Variable.PLATFORM_OPENAPI_CONFIG_ENTRIES.md +2 -3
  513. package/data/packages/platform-openapi/api/Variable.SWAGGER_CONTACT_EMAIL.md +1 -2
  514. package/data/packages/platform-openapi/api/Variable.SWAGGER_CONTACT_NAME.md +1 -2
  515. package/data/packages/platform-openapi/api/Variable.SWAGGER_CONTACT_URL.md +1 -2
  516. package/data/packages/platform-openapi/api/Variable.SWAGGER_FEATURE_METADATA_KEY.md +2 -3
  517. package/data/packages/platform-openapi/api/index.md +24 -25
  518. package/data/packages/platform-payments/api/Class.FeatureAccessPort.md +7 -8
  519. package/data/packages/platform-payments/api/Class.FeatureGuard.md +6 -7
  520. package/data/packages/platform-payments/api/Class.FeatureUsageInterceptor.md +7 -8
  521. package/data/packages/platform-payments/api/Class.LemonSqueezyClient.md +24 -25
  522. package/data/packages/platform-payments/api/Class.MollieClient.md +24 -25
  523. package/data/packages/platform-payments/api/Class.PaddleClient.md +24 -25
  524. package/data/packages/platform-payments/api/Class.PaymentClientPort.md +25 -26
  525. package/data/packages/platform-payments/api/Class.PaymentModule.md +2 -3
  526. package/data/packages/platform-payments/api/Class.StripeClient.md +28 -29
  527. package/data/packages/platform-payments/api/Function.RequiresFeature.md +2 -3
  528. package/data/packages/platform-payments/api/Interface.IFeatureAccessResult.md +4 -5
  529. package/data/packages/platform-payments/api/Interface.INormalizedCheckoutSession.md +5 -6
  530. package/data/packages/platform-payments/api/Interface.INormalizedPrice.md +6 -7
  531. package/data/packages/platform-payments/api/Interface.INormalizedSubscription.md +8 -9
  532. package/data/packages/platform-payments/api/Interface.INormalizedWebhookEvent.md +2 -3
  533. package/data/packages/platform-payments/api/Interface.IPaymentModuleOptions.md +3 -4
  534. package/data/packages/platform-payments/api/TypeAlias.SubscriptionStatus.md +9 -10
  535. package/data/packages/platform-payments/api/Variable.FEATURE_KEY_METADATA.md +2 -3
  536. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_API_KEY.md +1 -2
  537. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_CONFIG_ENTRIES.md +2 -3
  538. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_STORE_ID.md +1 -2
  539. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_WEBHOOK_SECRET.md +1 -2
  540. package/data/packages/platform-payments/api/Variable.MOLLIE_API_KEY.md +1 -2
  541. package/data/packages/platform-payments/api/Variable.MOLLIE_CONFIG_ENTRIES.md +2 -3
  542. package/data/packages/platform-payments/api/Variable.MOLLIE_WEBHOOK_SECRET.md +1 -2
  543. package/data/packages/platform-payments/api/Variable.PADDLE_API_KEY.md +1 -2
  544. package/data/packages/platform-payments/api/Variable.PADDLE_CONFIG_ENTRIES.md +2 -3
  545. package/data/packages/platform-payments/api/Variable.PADDLE_ENVIRONMENT.md +1 -2
  546. package/data/packages/platform-payments/api/Variable.PADDLE_WEBHOOK_SECRET.md +1 -2
  547. package/data/packages/platform-payments/api/Variable.STRIPE_API_KEY.md +1 -2
  548. package/data/packages/platform-payments/api/Variable.STRIPE_CONFIG_ENTRIES.md +2 -3
  549. package/data/packages/platform-payments/api/Variable.STRIPE_WEBHOOK_SECRET.md +1 -2
  550. package/data/packages/platform-payments/api/index.md +40 -41
  551. package/data/packages/platform-reporting/api/Class.ReportingContributorRegistry.md +3 -4
  552. package/data/packages/platform-reporting/api/Class.ReportingDatasetNotFoundError.md +3 -4
  553. package/data/packages/platform-reporting/api/Class.ReportingFacade.md +8 -9
  554. package/data/packages/platform-reporting/api/Class.ReportingModule.md +0 -1
  555. package/data/packages/platform-reporting/api/Interface.IReportingContributor.md +4 -5
  556. package/data/packages/platform-reporting/api/Interface.IReportingDataset.md +5 -6
  557. package/data/packages/platform-reporting/api/Interface.IReportingDatasetField.md +4 -5
  558. package/data/packages/platform-reporting/api/Interface.IReportingQuery.md +4 -5
  559. package/data/packages/platform-reporting/api/Interface.IReportingQueryFilter.md +2 -3
  560. package/data/packages/platform-reporting/api/Interface.IReportingQueryResult.md +4 -5
  561. package/data/packages/platform-reporting/api/Interface.IReportingQuerySort.md +1 -2
  562. package/data/packages/platform-reporting/api/TypeAlias.ReportingFieldType.md +1 -2
  563. package/data/packages/platform-reporting/api/TypeAlias.ReportingFilterOperator.md +1 -2
  564. package/data/packages/platform-reporting/api/TypeAlias.ReportingQueryResultRow.md +0 -1
  565. package/data/packages/platform-reporting/api/Variable.ReportingFieldTypes.md +12 -13
  566. package/data/packages/platform-reporting/api/Variable.ReportingFilterOperators.md +10 -11
  567. package/data/packages/platform-reporting/api/index.md +23 -24
  568. package/data/packages/platform-telemetry/api/Class.NoopTelemetryFacade.md +22 -23
  569. package/data/packages/platform-telemetry/api/Class.TelemetryCacheMetricsRecorder.md +26 -27
  570. package/data/packages/platform-telemetry/api/Class.TelemetryFacade.md +23 -24
  571. package/data/packages/platform-telemetry/api/Class.TelemetryLoggerService.md +35 -36
  572. package/data/packages/platform-telemetry/api/Class.TelemetryModule.md +2 -3
  573. package/data/packages/platform-telemetry/api/Class.TelemetryRuleEngine.md +4 -5
  574. package/data/packages/platform-telemetry/api/Interface.ITelemetryFacade.md +22 -23
  575. package/data/packages/platform-telemetry/api/Interface.ITelemetryMetricsOptions.md +2 -3
  576. package/data/packages/platform-telemetry/api/Interface.ITelemetryOptions.md +8 -9
  577. package/data/packages/platform-telemetry/api/Interface.ITelemetryTracesOptions.md +2 -3
  578. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_ENABLED.md +1 -2
  579. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_FACADE.md +1 -2
  580. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_OPTIONS.md +1 -2
  581. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_SHUTDOWN.md +1 -2
  582. package/data/packages/platform-telemetry/api/Variable.defaultTelemetryOptions.md +0 -1
  583. package/data/packages/platform-telemetry/api/index.md +20 -21
  584. package/package.json +1 -1
  585. package/src/GuidesLoader.d.ts +13 -0
  586. package/src/GuidesLoader.js +81 -0
  587. package/src/main.js +36 -198
  588. package/src/models/IGuideDoc.d.ts +15 -0
  589. package/src/models/IGuideDoc.js +3 -0
  590. package/src/tools/registerGetConfigPatternTool.d.ts +5 -0
  591. package/src/tools/registerGetConfigPatternTool.js +15 -0
  592. package/src/tools/registerGetDtoPatternTool.d.ts +5 -0
  593. package/src/tools/registerGetDtoPatternTool.js +15 -0
  594. package/src/tools/registerGetErrorHandlingPatternTool.d.ts +5 -0
  595. package/src/tools/registerGetErrorHandlingPatternTool.js +15 -0
  596. package/src/tools/registerGetGuardPatternTool.d.ts +5 -0
  597. package/src/tools/registerGetGuardPatternTool.js +15 -0
  598. package/src/tools/registerGetGuideTool.d.ts +6 -0
  599. package/src/tools/registerGetGuideTool.js +32 -0
  600. package/src/tools/registerGetMappingPatternTool.d.ts +5 -0
  601. package/src/tools/registerGetMappingPatternTool.js +34 -0
  602. package/src/tools/registerGetModulePatternTool.d.ts +5 -0
  603. package/src/tools/registerGetModulePatternTool.js +29 -0
  604. package/src/tools/registerGetPackageDocTool.d.ts +6 -0
  605. package/src/tools/registerGetPackageDocTool.js +43 -0
  606. package/src/tools/registerGetQueryPatternTool.d.ts +5 -0
  607. package/src/tools/registerGetQueryPatternTool.js +29 -0
  608. package/src/tools/registerGetRepositoryPatternTool.d.ts +5 -0
  609. package/src/tools/registerGetRepositoryPatternTool.js +29 -0
  610. package/src/tools/registerGetTestingPatternTool.d.ts +5 -0
  611. package/src/tools/registerGetTestingPatternTool.js +15 -0
  612. package/src/tools/registerListGuidesTool.d.ts +6 -0
  613. package/src/tools/registerListGuidesTool.js +22 -0
  614. package/src/tools/registerListPackagesTool.d.ts +6 -0
  615. package/src/tools/registerListPackagesTool.js +20 -0
  616. package/src/tools/registerSearchDocsTool.d.ts +6 -0
  617. package/src/tools/registerSearchDocsTool.js +35 -0
  618. package/src/tools/registerSearchGuidesTool.d.ts +6 -0
  619. package/src/tools/registerSearchGuidesTool.js +28 -0
@@ -0,0 +1,242 @@
1
+ ---
2
+ title: Blob Storage
3
+ description: Upload, download, and manage files with multi-provider blob storage using Vercel, Azure, AWS S3, or custom providers.
4
+ order: 7
5
+ ---
6
+
7
+ # Blob Storage
8
+
9
+ This guide covers file storage with `platform-blob-storage`: choosing a provider, uploading and downloading files, generating signed URLs, and optionally tracking file metadata with persistence ports.
10
+
11
+ ---
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ yarn add @breadstone/archipel-platform-blob-storage
17
+ ```
18
+
19
+ ---
20
+
21
+ ## Choose a Provider
22
+
23
+ `platform-blob-storage` abstracts file operations behind a unified `BlobService`. You select the provider at module registration time. Supported providers:
24
+
25
+ | Provider | Kind constant | When to use |
26
+ | ---------- | -------------------------- | ------------------------------------------- |
27
+ | **Vercel** | `BlobProviderKinds.Vercel` | Vercel-hosted apps with Vercel Blob storage |
28
+ | **Azure** | `BlobProviderKinds.Azure` | Azure Blob Storage accounts |
29
+ | **AWS S3** | `BlobProviderKinds.AwsS3` | Amazon S3 or S3-compatible providers |
30
+ | **Custom** | `BlobProviderKinds.Custom` | Your own storage backend |
31
+
32
+ ---
33
+
34
+ ## Module Registration
35
+
36
+ ```typescript
37
+ import { Module } from '@nestjs/common';
38
+ import { BlobModule, BlobProviderKinds } from '@breadstone/archipel-platform-blob-storage';
39
+
40
+ @Module({
41
+ imports: [
42
+ BlobModule.forRoot({
43
+ provider: {
44
+ kind: BlobProviderKinds.AwsS3,
45
+ },
46
+ }),
47
+ ],
48
+ })
49
+ export class AppModule {}
50
+ ```
51
+
52
+ Each provider reads its credentials from environment variables via the `ConfigModule`. Set the variables for your chosen provider:
53
+
54
+ ### AWS S3
55
+
56
+ ```env
57
+ BLOB_AWS_REGION=eu-central-1
58
+ BLOB_AWS_BUCKET=my-app-uploads
59
+ BLOB_AWS_ACCESS_KEY_ID=AKIA...
60
+ BLOB_AWS_SECRET_ACCESS_KEY=secret...
61
+ ```
62
+
63
+ ### Azure Blob Storage
64
+
65
+ ```env
66
+ BLOB_AZURE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
67
+ BLOB_AZURE_CONTAINER=uploads
68
+ ```
69
+
70
+ ### Vercel Blob
71
+
72
+ ```env
73
+ BLOB_VERCEL_TOKEN=your-vercel-blob-token
74
+ ```
75
+
76
+ ---
77
+
78
+ ## Uploading Files
79
+
80
+ Inject `BlobService` to upload files. It returns metadata about the stored blob.
81
+
82
+ ```typescript
83
+ import { Injectable } from '@nestjs/common';
84
+ import { BlobService } from '@breadstone/archipel-platform-blob-storage';
85
+
86
+ @Injectable()
87
+ export class AvatarService {
88
+ private readonly _blobService: BlobService;
89
+
90
+ constructor(blobService: BlobService) {
91
+ this._blobService = blobService;
92
+ }
93
+
94
+ public async uploadAvatar(userId: string, file: Buffer, mimeType: string): Promise<string> {
95
+ const result = await this._blobService.upload({
96
+ key: `avatars/${userId}`,
97
+ body: file,
98
+ contentType: mimeType,
99
+ });
100
+
101
+ return result.url;
102
+ }
103
+ }
104
+ ```
105
+
106
+ ### Handling Multipart Uploads in Controllers
107
+
108
+ For HTTP file uploads, use the `@UploadedFile()` decorator with Multer:
109
+
110
+ ```typescript
111
+ import { Controller, Post, UploadedFile, UseGuards, UseInterceptors } from '@nestjs/common';
112
+ import { FileInterceptor } from '@nestjs/platform-express';
113
+ import { JwtAuthGuard, User, type IAuthSubject } from '@breadstone/archipel-platform-authentication';
114
+
115
+ @Controller('avatars')
116
+ export class AvatarController {
117
+ private readonly _avatarService: AvatarService;
118
+
119
+ constructor(avatarService: AvatarService) {
120
+ this._avatarService = avatarService;
121
+ }
122
+
123
+ @Post()
124
+ @UseGuards(JwtAuthGuard)
125
+ @UseInterceptors(FileInterceptor('file'))
126
+ public async upload(@User() user: IAuthSubject, @UploadedFile() file: Express.Multer.File): Promise<{ url: string }> {
127
+ const url = await this._avatarService.uploadAvatar(user.id, file.buffer, file.mimetype);
128
+ return { url };
129
+ }
130
+ }
131
+ ```
132
+
133
+ ---
134
+
135
+ ## Downloading and Signed URLs
136
+
137
+ ```typescript
138
+ // Download a blob
139
+ const content = await this._blobService.download('avatars/user-123');
140
+
141
+ // Generate a time-limited signed URL for direct client access
142
+ const signedUrl = await this._blobService.getSignedUrl('avatars/user-123', {
143
+ expiresIn: 3600, // seconds
144
+ });
145
+ ```
146
+
147
+ Signed URLs are useful for serving private files directly to the client without proxying through your server.
148
+
149
+ ---
150
+
151
+ ## Deleting Files
152
+
153
+ ```typescript
154
+ await this._blobService.delete('avatars/user-123');
155
+ ```
156
+
157
+ ---
158
+
159
+ ## Tracking Metadata (Optional Ports)
160
+
161
+ By default, `BlobService` performs storage operations without persisting metadata to your database. If you need to track uploaded files (for listing, auditing, or cleanup), implement the optional persistence ports.
162
+
163
+ ### BlobObjectPersistencePort
164
+
165
+ Tracks blob metadata after upload and deletion:
166
+
167
+ ```typescript
168
+ import { Injectable } from '@nestjs/common';
169
+ import { BlobObjectPersistencePort } from '@breadstone/archipel-platform-blob-storage';
170
+ import { PrismaService } from '@breadstone/archipel-platform-database';
171
+
172
+ @Injectable()
173
+ export class PrismaBlobObjectAdapter extends BlobObjectPersistencePort {
174
+ private readonly _prisma: PrismaService;
175
+
176
+ constructor(prisma: PrismaService) {
177
+ super();
178
+ this._prisma = prisma;
179
+ }
180
+
181
+ public async onUploaded(key: string, url: string, contentType: string, size: number): Promise<void> {
182
+ await this._prisma.blobObject.upsert({
183
+ where: { key },
184
+ create: { key, url, contentType, size },
185
+ update: { url, contentType, size },
186
+ });
187
+ }
188
+
189
+ public async onDeleted(key: string): Promise<void> {
190
+ await this._prisma.blobObject.deleteMany({ where: { key } });
191
+ }
192
+ }
193
+ ```
194
+
195
+ ### BlobVariantPersistencePort
196
+
197
+ Tracks image variants (thumbnails, resized versions):
198
+
199
+ ```typescript
200
+ import { Injectable } from '@nestjs/common';
201
+ import { BlobVariantPersistencePort } from '@breadstone/archipel-platform-blob-storage';
202
+ import { PrismaService } from '@breadstone/archipel-platform-database';
203
+
204
+ @Injectable()
205
+ export class PrismaBlobVariantAdapter extends BlobVariantPersistencePort {
206
+ private readonly _prisma: PrismaService;
207
+
208
+ constructor(prisma: PrismaService) {
209
+ super();
210
+ this._prisma = prisma;
211
+ }
212
+
213
+ public async onVariantCreated(originalKey: string, variantKey: string, width: number, height: number): Promise<void> {
214
+ await this._prisma.blobVariant.create({
215
+ data: { originalKey, variantKey, width, height },
216
+ });
217
+ }
218
+ }
219
+ ```
220
+
221
+ ### Register with Persistence
222
+
223
+ ```typescript
224
+ BlobModule.forRoot({
225
+ provider: { kind: BlobProviderKinds.AwsS3 },
226
+ objectPersistence: PrismaBlobObjectAdapter,
227
+ variantPersistence: PrismaBlobVariantAdapter,
228
+ }),
229
+ ```
230
+
231
+ ---
232
+
233
+ ## Health Checks
234
+
235
+ `platform-blob-storage` registers a health indicator automatically. It verifies connectivity to the configured provider. The result is included in your `/health` endpoint if you use `platform-core`'s health module.
236
+
237
+ ---
238
+
239
+ ## Next Steps
240
+
241
+ - See the [Implementing Ports](/guides/implementing-ports) guide for the general port/adapter pattern
242
+ - Browse the [platform-blob-storage API reference](/packages/platform-blob-storage/api/) for all method signatures
@@ -0,0 +1,255 @@
1
+ ---
2
+ title: Caching
3
+ description: Add layered caching to your NestJS application with in-memory LRU and Redis-backed implementations, TTL expiration, stale-while-revalidate, and metrics.
4
+ order: 16
5
+ ---
6
+
7
+ # Caching
8
+
9
+ This guide covers layered caching with `platform-caching`: choosing between in-memory and Redis backends, configuring TTL and LRU eviction, using stale-while-revalidate for low-latency reads, and integrating cache metrics with your observability stack.
10
+
11
+ ---
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ yarn add @breadstone/archipel-platform-caching
17
+ ```
18
+
19
+ For Redis-backed caching, also install `ioredis`:
20
+
21
+ ```bash
22
+ yarn add ioredis
23
+ ```
24
+
25
+ ---
26
+
27
+ ## Concepts
28
+
29
+ `platform-caching` provides a generic `ILayeredCache<TKey, TValue>` interface with two implementations:
30
+
31
+ | Implementation | Backend | Sync support | Best for |
32
+ | -------------------- | --------- | ------------ | ---------------------------------------- |
33
+ | `MemoryLayeredCache` | In-memory | Yes | Single-instance apps, fast local lookups |
34
+ | `RedisLayeredCache` | Redis | No (async) | Multi-instance deployments, shared state |
35
+
36
+ Both implementations use a **loader function** pattern: when a cache miss occurs, the cache automatically calls a user-provided async function to load the value, stores it, and returns it. This eliminates repetitive "check cache → miss → load → store" boilerplate.
37
+
38
+ ---
39
+
40
+ ## In-Memory Cache
41
+
42
+ ### Basic Setup
43
+
44
+ Create a `MemoryLayeredCache` with a loader function that fetches the value on cache misses:
45
+
46
+ ```typescript
47
+ import { Injectable } from '@nestjs/common';
48
+ import { MemoryLayeredCache } from '@breadstone/archipel-platform-caching';
49
+
50
+ @Injectable()
51
+ export class ProductCacheService {
52
+ private readonly _cache: MemoryLayeredCache<string, IProduct>;
53
+
54
+ constructor(productRepository: ProductRepository) {
55
+ this._cache = new MemoryLayeredCache<string, IProduct>(async (productId: string) =>
56
+ productRepository.findById(productId),
57
+ );
58
+ }
59
+
60
+ public async getProduct(productId: string): Promise<IProduct | undefined> {
61
+ return this._cache.getAsync(productId);
62
+ }
63
+
64
+ public invalidateProduct(productId: string): void {
65
+ this._cache.invalidate(productId);
66
+ }
67
+ }
68
+ ```
69
+
70
+ ### TTL Expiration
71
+
72
+ Set a time-to-live so entries automatically expire:
73
+
74
+ ```typescript
75
+ this._cache = new MemoryLayeredCache<string, IProduct>(
76
+ async (id) => productRepository.findById(id),
77
+ { ttlMs: 60_000 }, // entries expire after 60 seconds
78
+ );
79
+ ```
80
+
81
+ ### LRU Eviction
82
+
83
+ Limit the number of entries to prevent unbounded memory growth. The oldest entry (least recently used) is evicted first:
84
+
85
+ ```typescript
86
+ this._cache = new MemoryLayeredCache<string, IProduct>(async (id) => productRepository.findById(id), {
87
+ ttlMs: 300_000, // 5-minute TTL
88
+ maxEntries: 1000, // keep at most 1000 entries
89
+ });
90
+ ```
91
+
92
+ ### Stale-While-Revalidate
93
+
94
+ Serve expired entries immediately while refreshing in the background. This keeps latency low for frequently accessed data:
95
+
96
+ ```typescript
97
+ this._cache = new MemoryLayeredCache<string, IProduct>(async (id) => productRepository.findById(id), {
98
+ ttlMs: 30_000,
99
+ staleWhileRevalidate: true, // return stale value, refresh async
100
+ });
101
+ ```
102
+
103
+ > **When to use:** Quasi-static reference data (categories, feature flags, configuration). Avoid for personalized or rapidly changing data where freshness is critical.
104
+
105
+ ### Synchronous Access
106
+
107
+ `MemoryLayeredCache` supports synchronous `get()` and `set()` for cases where you've pre-warmed the cache or need zero-await lookups:
108
+
109
+ ```typescript
110
+ // Pre-warm on startup
111
+ await this._cache.warm('featured-product');
112
+
113
+ // Later: synchronous read (no await needed)
114
+ const product = this._cache.get('featured-product');
115
+ ```
116
+
117
+ ---
118
+
119
+ ## Redis Cache
120
+
121
+ ### Basic Setup
122
+
123
+ `RedisLayeredCache` provides the same `ILayeredCache` interface but stores entries in Redis. Synchronous methods (`get`, `set`, `invalidate`) throw — use the async variants.
124
+
125
+ ```typescript
126
+ import { Injectable } from '@nestjs/common';
127
+ import { RedisLayeredCache } from '@breadstone/archipel-platform-caching/redis';
128
+
129
+ @Injectable()
130
+ export class SessionCacheService {
131
+ private readonly _cache: RedisLayeredCache<string, ISessionData>;
132
+
133
+ constructor(sessionRepository: SessionRepository) {
134
+ this._cache = new RedisLayeredCache<string, ISessionData>(
135
+ async (sessionId) => sessionRepository.findById(sessionId),
136
+ {
137
+ url: process.env['REDIS_URL'] ?? 'redis://localhost:6379',
138
+ keyPrefix: 'session:',
139
+ ttlSeconds: 3600, // 1-hour TTL
140
+ },
141
+ );
142
+ }
143
+
144
+ public async getSession(sessionId: string): Promise<ISessionData | undefined> {
145
+ return this._cache.getAsync(sessionId);
146
+ }
147
+
148
+ public async invalidateSession(sessionId: string): Promise<void> {
149
+ await this._cache.invalidateAsync(sessionId);
150
+ }
151
+ }
152
+ ```
153
+
154
+ ### Custom Serialization
155
+
156
+ By default, values are serialized with `JSON.stringify` and deserialized with `JSON.parse`. Override this for custom formats:
157
+
158
+ ```typescript
159
+ this._cache = new RedisLayeredCache<string, ISessionData>(async (id) => sessionRepository.findById(id), {
160
+ url: 'redis://localhost:6379',
161
+ keyPrefix: 'session:',
162
+ serialize: (value) => msgpack.encode(value).toString('base64'),
163
+ deserialize: (raw) => msgpack.decode(Buffer.from(raw, 'base64')) as ISessionData,
164
+ });
165
+ ```
166
+
167
+ ### Graceful Shutdown
168
+
169
+ `RedisLayeredCache` implements `OnModuleDestroy` and automatically disconnects the Redis client when the NestJS module is destroyed. No manual cleanup is needed.
170
+
171
+ ---
172
+
173
+ ## Cache Metrics
174
+
175
+ Both implementations accept an optional `ICacheMetricsRecorder` to forward cache statistics to your observability backend.
176
+
177
+ ### Implementing a Metrics Recorder
178
+
179
+ ```typescript
180
+ import type { ICacheMetricsRecorder } from '@breadstone/archipel-platform-caching';
181
+ import { TelemetryFacade } from '@breadstone/archipel-platform-telemetry';
182
+
183
+ export class TelemetryCacheMetricsRecorder implements ICacheMetricsRecorder {
184
+ private readonly _telemetry: TelemetryFacade;
185
+
186
+ constructor(telemetry: TelemetryFacade) {
187
+ this._telemetry = telemetry;
188
+ }
189
+
190
+ public recordHit(cache: string): void {
191
+ this._telemetry.recordCounter('cache_hits_total', 1, { cache });
192
+ }
193
+
194
+ public recordMiss(cache: string): void {
195
+ this._telemetry.recordCounter('cache_misses_total', 1, { cache });
196
+ }
197
+
198
+ public recordLoadSuccess(cache: string): void {
199
+ this._telemetry.recordCounter('cache_load_success_total', 1, { cache });
200
+ }
201
+
202
+ public recordLoadError(cache: string): void {
203
+ this._telemetry.recordCounter('cache_load_error_total', 1, { cache });
204
+ }
205
+
206
+ public recordEviction(cache: string): void {
207
+ this._telemetry.recordCounter('cache_evictions_total', 1, { cache });
208
+ }
209
+ }
210
+ ```
211
+
212
+ ### Wiring It Up
213
+
214
+ Pass the recorder when creating the cache:
215
+
216
+ ```typescript
217
+ this._cache = new MemoryLayeredCache<string, IProduct>(async (id) => productRepository.findById(id), {
218
+ ttlMs: 60_000,
219
+ maxEntries: 500,
220
+ metricsRecorder: new TelemetryCacheMetricsRecorder(telemetry),
221
+ cacheName: 'products',
222
+ });
223
+ ```
224
+
225
+ When no metrics recorder is provided, a `NoopCacheMetricsRecorder` is used automatically — no setup needed.
226
+
227
+ ---
228
+
229
+ ## Cache Statistics
230
+
231
+ Both implementations expose a `stats()` method returning a snapshot of cache performance:
232
+
233
+ ```typescript
234
+ const stats = this._cache.stats();
235
+ console.log(stats.hits); // total cache hits
236
+ console.log(stats.misses); // total cache misses
237
+ console.log(stats.loads); // successful loader invocations
238
+ console.log(stats.loadErrors); // failed loader invocations
239
+ console.log(stats.evictions); // LRU evictions (MemoryLayeredCache only)
240
+ ```
241
+
242
+ Use this for health checks or debug endpoints.
243
+
244
+ ---
245
+
246
+ ## Best Practices
247
+
248
+ | Practice | Why |
249
+ | ----------------------------------------- | ------------------------------------------------------------------ |
250
+ | Set `maxEntries` for in-memory caches | Prevents unbounded memory growth in long-running processes |
251
+ | Use `staleWhileRevalidate` for read-heavy | Keeps p99 latency low for popular keys |
252
+ | Invalidate on writes | Call `invalidate(key)` after mutations to avoid serving stale data |
253
+ | Use `cacheName` labels | Makes metrics dashboards filterable by cache instance |
254
+ | Keep TTLs short for user-specific data | Personalized data should not be stale for extended periods |
255
+ | Use Redis for multi-instance deployments | In-memory caches are not shared across application instances |