@breadstone/archipel-mcp 0.0.15 → 0.0.17

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 (654) hide show
  1. package/data/guides/ai-text-generation.md +385 -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 +268 -0
  5. package/data/guides/caching.md +255 -0
  6. package/data/guides/configuration.md +242 -0
  7. package/data/guides/controller-best-practices.md +766 -0
  8. package/data/guides/cryptography-and-otp.md +240 -0
  9. package/data/guides/database-setup.md +546 -0
  10. package/data/guides/document-generation.md +174 -0
  11. package/data/guides/email-delivery.md +233 -0
  12. package/data/guides/esigning-integration.md +247 -0
  13. package/data/guides/getting-started.md +354 -0
  14. package/data/guides/implementing-ports.md +317 -0
  15. package/data/guides/index.md +67 -0
  16. package/data/guides/mcp-server.md +222 -0
  17. package/data/guides/openapi-and-feature-discovery.md +266 -0
  18. package/data/guides/payments-and-feature-gating.md +260 -0
  19. package/data/guides/request-response-dtos.md +411 -0
  20. package/data/guides/resource-management.md +352 -0
  21. package/data/guides/telemetry-and-observability.md +190 -0
  22. package/data/guides/testing.md +319 -0
  23. package/data/guides/tsdoc-guidelines.md +45 -0
  24. package/data/packages/index.md +8 -0
  25. package/data/packages/platform-analytics/api/Class.AnalyticsClientPort.md +141 -0
  26. package/data/packages/platform-analytics/api/Class.AnalyticsModule.md +47 -0
  27. package/data/packages/platform-analytics/api/Class.AppInsightsAnalyticsClient.md +169 -0
  28. package/data/packages/platform-analytics/api/Class.DatadogAnalyticsClient.md +169 -0
  29. package/data/packages/platform-analytics/api/Class.NoopAnalyticsClient.md +161 -0
  30. package/data/packages/platform-analytics/api/Class.SentryAnalyticsClient.md +169 -0
  31. package/data/packages/platform-analytics/api/Interface.IAnalyticsBreadcrumb.md +58 -0
  32. package/data/packages/platform-analytics/api/Interface.IAnalyticsModuleOptions.md +47 -0
  33. package/data/packages/platform-analytics/api/Interface.IAnalyticsUser.md +58 -0
  34. package/data/packages/platform-analytics/api/TypeAlias.AnalyticsLevel.md +14 -0
  35. package/data/packages/platform-analytics/api/Variable.APPINSIGHTS_CONFIG_ENTRIES.md +14 -0
  36. package/data/packages/platform-analytics/api/Variable.APPLICATIONINSIGHTS_CONNECTION_STRING.md +14 -0
  37. package/data/packages/platform-analytics/api/Variable.DATADOG_CONFIG_ENTRIES.md +14 -0
  38. package/data/packages/platform-analytics/api/Variable.DD_ENV.md +14 -0
  39. package/data/packages/platform-analytics/api/Variable.DD_SERVICE.md +14 -0
  40. package/data/packages/platform-analytics/api/Variable.SENTRY_CONFIG_ENTRIES.md +14 -0
  41. package/data/packages/platform-analytics/api/Variable.SENTRY_DSN.md +14 -0
  42. package/data/packages/platform-analytics/api/Variable.SENTRY_ENVIRONMENT.md +14 -0
  43. package/data/packages/platform-analytics/api/index.md +44 -0
  44. package/data/packages/platform-analytics/index.md +170 -0
  45. package/data/packages/platform-authentication/api/Class.AnonymousAuthGuard.md +40 -0
  46. package/data/packages/platform-authentication/api/Class.AppleConnector.md +86 -0
  47. package/data/packages/platform-authentication/api/Class.AuthModule.md +76 -0
  48. package/data/packages/platform-authentication/api/Class.AuthSubjectPort.md +95 -0
  49. package/data/packages/platform-authentication/api/Class.AuthTokenService.md +59 -0
  50. package/data/packages/platform-authentication/api/Class.ChallengeService.md +135 -0
  51. package/data/packages/platform-authentication/api/Class.ChallengeStorePort.md +95 -0
  52. package/data/packages/platform-authentication/api/Class.GithubAuthGuard.md +40 -0
  53. package/data/packages/platform-authentication/api/Class.GithubConnector.md +78 -0
  54. package/data/packages/platform-authentication/api/Class.GoogleConnector.md +84 -0
  55. package/data/packages/platform-authentication/api/Class.JwtAuthGuard.md +40 -0
  56. package/data/packages/platform-authentication/api/Class.JwtPayloadBase.md +136 -0
  57. package/data/packages/platform-authentication/api/Class.LastActiveMiddleware.md +71 -0
  58. package/data/packages/platform-authentication/api/Class.LocalAuthGuard.md +40 -0
  59. package/data/packages/platform-authentication/api/Class.MfaService.md +252 -0
  60. package/data/packages/platform-authentication/api/Class.MfaSubjectPort.md +70 -0
  61. package/data/packages/platform-authentication/api/Class.MicrosoftConnector.md +84 -0
  62. package/data/packages/platform-authentication/api/Class.RolesGuard.md +60 -0
  63. package/data/packages/platform-authentication/api/Class.SessionMappingProfile.md +60 -0
  64. package/data/packages/platform-authentication/api/Class.SessionPersistencePort.md +165 -0
  65. package/data/packages/platform-authentication/api/Class.SessionResponse.md +152 -0
  66. package/data/packages/platform-authentication/api/Class.SessionService.md +162 -0
  67. package/data/packages/platform-authentication/api/Class.SocialAuthGuard.md +61 -0
  68. package/data/packages/platform-authentication/api/Class.SocialAuthPort.md +48 -0
  69. package/data/packages/platform-authentication/api/Class.TokenEnricherPort.md +47 -0
  70. package/data/packages/platform-authentication/api/Class.TotpMfaChannel.md +144 -0
  71. package/data/packages/platform-authentication/api/Class.VerificationService.md +154 -0
  72. package/data/packages/platform-authentication/api/Class.VerificationSubjectPort.md +116 -0
  73. package/data/packages/platform-authentication/api/Function.Token.md +18 -0
  74. package/data/packages/platform-authentication/api/Function.UseRoles.md +24 -0
  75. package/data/packages/platform-authentication/api/Function.socialAuthGuardFactory.md +22 -0
  76. package/data/packages/platform-authentication/api/Interface.IAuthModuleOptions.md +157 -0
  77. package/data/packages/platform-authentication/api/Interface.IAuthSubject.md +107 -0
  78. package/data/packages/platform-authentication/api/Interface.IMfaChallengePayload.md +82 -0
  79. package/data/packages/platform-authentication/api/Interface.IMfaChallengeState.md +118 -0
  80. package/data/packages/platform-authentication/api/Interface.IMfaConfirmation.md +22 -0
  81. package/data/packages/platform-authentication/api/Interface.IMfaSetup.md +58 -0
  82. package/data/packages/platform-authentication/api/Interface.IMfaSubject.md +131 -0
  83. package/data/packages/platform-authentication/api/Interface.IMfaSubjectUpdate.md +91 -0
  84. package/data/packages/platform-authentication/api/Interface.ISessionRecord.md +160 -0
  85. package/data/packages/platform-authentication/api/Interface.ISignInResult.md +82 -0
  86. package/data/packages/platform-authentication/api/Interface.ISocialProfile.md +58 -0
  87. package/data/packages/platform-authentication/api/Interface.IStoreSessionArgs.md +70 -0
  88. package/data/packages/platform-authentication/api/Interface.IVerifiableSubject.md +71 -0
  89. package/data/packages/platform-authentication/api/Variable.APPLE_AUTH_CONFIG_ENTRIES.md +14 -0
  90. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_CALLBACK_URL.md +14 -0
  91. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_CLIENT_ID.md +14 -0
  92. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_KEY_ID.md +14 -0
  93. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_PRIVATE_KEY.md +14 -0
  94. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_SCOPE.md +14 -0
  95. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_STATE.md +16 -0
  96. package/data/packages/platform-authentication/api/Variable.AUTH_APPLE_TEAM_ID.md +14 -0
  97. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_CALLBACK_URL.md +14 -0
  98. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_CLIENT_ID.md +14 -0
  99. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_CLIENT_SECRET.md +14 -0
  100. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_SCOPE.md +14 -0
  101. package/data/packages/platform-authentication/api/Variable.AUTH_GITHUB_STATE.md +16 -0
  102. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_CALLBACK_URL.md +14 -0
  103. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_CLIENT_ID.md +14 -0
  104. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_CLIENT_SECRET.md +14 -0
  105. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_SCOPE.md +14 -0
  106. package/data/packages/platform-authentication/api/Variable.AUTH_GOOGLE_STATE.md +16 -0
  107. package/data/packages/platform-authentication/api/Variable.AUTH_JWT_EXPIRES_IN.md +14 -0
  108. package/data/packages/platform-authentication/api/Variable.AUTH_JWT_SECRET.md +14 -0
  109. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_CHALLENGE_EXPIRES_IN.md +14 -0
  110. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_EMAIL_CODE_TTL.md +14 -0
  111. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_EMAIL_MIN_RESEND.md +14 -0
  112. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_ENCRYPTION_KEY.md +14 -0
  113. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_ISSUER.md +14 -0
  114. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_MAX_ATTEMPTS.md +14 -0
  115. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_PUSH_CODE_TTL.md +14 -0
  116. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_PUSH_MIN_RESEND.md +14 -0
  117. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_SMS_CODE_TTL.md +14 -0
  118. package/data/packages/platform-authentication/api/Variable.AUTH_MFA_SMS_MIN_RESEND.md +14 -0
  119. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_CALLBACK_URL.md +14 -0
  120. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_CLIENT_ID.md +14 -0
  121. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_CLIENT_SECRET.md +14 -0
  122. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_SCOPE.md +14 -0
  123. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_STATE.md +16 -0
  124. package/data/packages/platform-authentication/api/Variable.AUTH_MICROSOFT_TENANT.md +14 -0
  125. package/data/packages/platform-authentication/api/Variable.AUTH_VERIFY_JWT_EXPIRES_IN.md +14 -0
  126. package/data/packages/platform-authentication/api/Variable.GITHUB_AUTH_CONFIG_ENTRIES.md +14 -0
  127. package/data/packages/platform-authentication/api/Variable.GOOGLE_AUTH_CONFIG_ENTRIES.md +14 -0
  128. package/data/packages/platform-authentication/api/Variable.MICROSOFT_AUTH_CONFIG_ENTRIES.md +14 -0
  129. package/data/packages/platform-authentication/api/Variable.PLATFORM_AUTHENTICATION_CONFIG_ENTRIES.md +14 -0
  130. package/data/packages/platform-authentication/api/Variable.ROLES_KEY.md +14 -0
  131. package/data/packages/platform-authentication/api/Variable.SEED_ANONYMOUS_USERNAME.md +14 -0
  132. package/data/packages/platform-authentication/api/Variable.SESSION_LIST_MAPPING_KEY.md +14 -0
  133. package/data/packages/platform-authentication/api/Variable.SESSION_MAPPING_KEY.md +14 -0
  134. package/data/packages/platform-authentication/api/Variable.TOTP_MFA_PROVIDERS.md +29 -0
  135. package/data/packages/platform-authentication/api/Variable.User.md +24 -0
  136. package/data/packages/platform-authentication/api/index.md +117 -0
  137. package/data/packages/platform-authentication/index.md +691 -0
  138. package/data/packages/platform-blob-storage/api/Class.AwsS3BlobProvider.md +196 -0
  139. package/data/packages/platform-blob-storage/api/Class.AzureBlobProvider.md +196 -0
  140. package/data/packages/platform-blob-storage/api/Class.BlobHealthIndicator.md +79 -0
  141. package/data/packages/platform-blob-storage/api/Class.BlobModule.md +49 -0
  142. package/data/packages/platform-blob-storage/api/Class.BlobObjectPersistencePort.md +75 -0
  143. package/data/packages/platform-blob-storage/api/Class.BlobService.md +248 -0
  144. package/data/packages/platform-blob-storage/api/Class.BlobVariantPersistencePort.md +51 -0
  145. package/data/packages/platform-blob-storage/api/Class.VercelBlobProvider.md +197 -0
  146. package/data/packages/platform-blob-storage/api/Interface.IAwsS3BlobProviderRegistration.md +28 -0
  147. package/data/packages/platform-blob-storage/api/Interface.IAwsS3ProviderOptions.md +68 -0
  148. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderOptions.md +48 -0
  149. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderRegistration.md +28 -0
  150. package/data/packages/platform-blob-storage/api/Interface.IBlobDeleteRequest.md +38 -0
  151. package/data/packages/platform-blob-storage/api/Interface.IBlobDownloadRequest.md +48 -0
  152. package/data/packages/platform-blob-storage/api/Interface.IBlobDownloadResult.md +64 -0
  153. package/data/packages/platform-blob-storage/api/Interface.IBlobModuleOptions.md +48 -0
  154. package/data/packages/platform-blob-storage/api/Interface.IBlobObjectMetadata.md +138 -0
  155. package/data/packages/platform-blob-storage/api/Interface.IBlobProvider.md +114 -0
  156. package/data/packages/platform-blob-storage/api/Interface.IBlobSignedUrlRequest.md +48 -0
  157. package/data/packages/platform-blob-storage/api/Interface.IBlobUploadRequest.md +98 -0
  158. package/data/packages/platform-blob-storage/api/Interface.IBlobUploadResult.md +28 -0
  159. package/data/packages/platform-blob-storage/api/Interface.ICustomBlobProviderRegistration.md +28 -0
  160. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderOptions.md +80 -0
  161. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderRegistration.md +28 -0
  162. package/data/packages/platform-blob-storage/api/TypeAlias.BlobDownloadResponseType.md +12 -0
  163. package/data/packages/platform-blob-storage/api/TypeAlias.BlobUploadBody.md +12 -0
  164. package/data/packages/platform-blob-storage/api/TypeAlias.IBlobProviderRegistration.md +16 -0
  165. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_PROVIDER_OPTIONS.md +12 -0
  166. package/data/packages/platform-blob-storage/api/Variable.AZURE_BLOB_PROVIDER_OPTIONS.md +12 -0
  167. package/data/packages/platform-blob-storage/api/Variable.BLOB_PROVIDER.md +12 -0
  168. package/data/packages/platform-blob-storage/api/Variable.BlobDownloadResponseTypes.md +26 -0
  169. package/data/packages/platform-blob-storage/api/Variable.BlobProviderKinds.md +26 -0
  170. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_PROVIDER_OPTIONS.md +12 -0
  171. package/data/packages/platform-blob-storage/api/index.md +59 -0
  172. package/data/packages/platform-blob-storage/index.md +353 -0
  173. package/data/packages/platform-caching/api/Class.MemoryLayeredCache.md +258 -0
  174. package/data/packages/platform-caching/api/Class.NoopCacheMetricsRecorder.md +157 -0
  175. package/data/packages/platform-caching/api/Class.RedisLayeredCache.md +295 -0
  176. package/data/packages/platform-caching/api/Interface.ICacheMetricsRecorder.md +121 -0
  177. package/data/packages/platform-caching/api/Interface.ICacheStats.md +70 -0
  178. package/data/packages/platform-caching/api/Interface.ILayeredCache.md +198 -0
  179. package/data/packages/platform-caching/api/Interface.ILayeredCacheOptions.md +75 -0
  180. package/data/packages/platform-caching/api/Interface.IRedisLayeredCacheOptions.md +121 -0
  181. package/data/packages/platform-caching/api/index.md +24 -0
  182. package/data/packages/platform-caching/index.md +116 -0
  183. package/data/packages/platform-configuration/api/Class.ConfigKeyNotFoundError.md +89 -0
  184. package/data/packages/platform-configuration/api/Class.ConfigModule.md +74 -0
  185. package/data/packages/platform-configuration/api/Class.ConfigRegistry.md +115 -0
  186. package/data/packages/platform-configuration/api/Class.ConfigService.md +137 -0
  187. package/data/packages/platform-configuration/api/Class.ConfigStrategyBase.md +125 -0
  188. package/data/packages/platform-configuration/api/Class.EnvironmentConfigStrategy.md +141 -0
  189. package/data/packages/platform-configuration/api/Class.FileConfigStrategy.md +147 -0
  190. package/data/packages/platform-configuration/api/Function.createConfigKey.md +58 -0
  191. package/data/packages/platform-configuration/api/Interface.IConfigKey.md +63 -0
  192. package/data/packages/platform-configuration/api/Interface.IConfigModuleOptions.md +40 -0
  193. package/data/packages/platform-configuration/api/Interface.IConfigRegistryEntry.md +79 -0
  194. package/data/packages/platform-configuration/api/index.md +32 -0
  195. package/data/packages/platform-configuration/index.md +224 -0
  196. package/data/packages/platform-core/api/Class.AppHealthIndicator.md +50 -0
  197. package/data/packages/platform-core/api/Class.BlobResourceStrategy.md +195 -0
  198. package/data/packages/platform-core/api/Class.BooleanUtils.md +82 -0
  199. package/data/packages/platform-core/api/Class.CUIDGenerator.md +120 -0
  200. package/data/packages/platform-core/api/Class.CasingInterceptor.md +93 -0
  201. package/data/packages/platform-core/api/Class.CatchUtils.md +93 -0
  202. package/data/packages/platform-core/api/Class.ContentTemplateEngine.md +63 -0
  203. package/data/packages/platform-core/api/Class.DateTimeUtils.md +101 -0
  204. package/data/packages/platform-core/api/Class.DeviceParserService.md +52 -0
  205. package/data/packages/platform-core/api/Class.EmbeddedResourceStrategy.md +215 -0
  206. package/data/packages/platform-core/api/Class.ErrorTemplateService.md +109 -0
  207. package/data/packages/platform-core/api/Class.EventHub.md +163 -0
  208. package/data/packages/platform-core/api/Class.EventModule.md +22 -0
  209. package/data/packages/platform-core/api/Class.FileResourceStrategy.md +192 -0
  210. package/data/packages/platform-core/api/Class.GUIDGenerator.md +85 -0
  211. package/data/packages/platform-core/api/Class.GlobalExceptionFilter.md +66 -0
  212. package/data/packages/platform-core/api/Class.HealthModule.md +42 -0
  213. package/data/packages/platform-core/api/Class.HealthOrchestrator.md +64 -0
  214. package/data/packages/platform-core/api/Class.HostModule.md +31 -0
  215. package/data/packages/platform-core/api/Class.HostService.md +149 -0
  216. package/data/packages/platform-core/api/Class.HttpLoggerMiddleware.md +59 -0
  217. package/data/packages/platform-core/api/Class.IdGeneratorBase.md +87 -0
  218. package/data/packages/platform-core/api/Class.IdentifierModule.md +40 -0
  219. package/data/packages/platform-core/api/Class.LimitRequestSizeMiddleware.md +59 -0
  220. package/data/packages/platform-core/api/Class.LocalizedTextRequest.md +42 -0
  221. package/data/packages/platform-core/api/Class.LocalizedTextResponse.md +42 -0
  222. package/data/packages/platform-core/api/Class.MappingBuilder.md +110 -0
  223. package/data/packages/platform-core/api/Class.MappingModule.md +46 -0
  224. package/data/packages/platform-core/api/Class.MappingNotRegisteredError.md +56 -0
  225. package/data/packages/platform-core/api/Class.MappingProfileBase.md +52 -0
  226. package/data/packages/platform-core/api/Class.MappingService.md +284 -0
  227. package/data/packages/platform-core/api/Class.NormalizedUtils.md +148 -0
  228. package/data/packages/platform-core/api/Class.PageableRequest.md +42 -0
  229. package/data/packages/platform-core/api/Class.PageableResponse.md +62 -0
  230. package/data/packages/platform-core/api/Class.ProblemDetailException.md +61 -0
  231. package/data/packages/platform-core/api/Class.ProblemDetailExceptionFilter.md +94 -0
  232. package/data/packages/platform-core/api/Class.QuantityResponse.md +42 -0
  233. package/data/packages/platform-core/api/Class.ResourceManager.md +565 -0
  234. package/data/packages/platform-core/api/Class.ResourceModule.md +46 -0
  235. package/data/packages/platform-core/api/Class.ResponseReturn.md +502 -0
  236. package/data/packages/platform-core/api/Class.SseHub.md +183 -0
  237. package/data/packages/platform-core/api/Class.SseModule.md +42 -0
  238. package/data/packages/platform-core/api/Class.TimeStampResponse.md +42 -0
  239. package/data/packages/platform-core/api/Class.TypeMappingNotRegisteredError.md +57 -0
  240. package/data/packages/platform-core/api/Class.UUIDGenerator.md +85 -0
  241. package/data/packages/platform-core/api/Class.UserAvatarGeneratorService.md +52 -0
  242. package/data/packages/platform-core/api/Class.UserNameGeneratorService.md +64 -0
  243. package/data/packages/platform-core/api/Function.Public.md +18 -0
  244. package/data/packages/platform-core/api/Function.createEventKey.md +33 -0
  245. package/data/packages/platform-core/api/Function.createMappingKey.md +39 -0
  246. package/data/packages/platform-core/api/Function.env.md +28 -0
  247. package/data/packages/platform-core/api/Function.getMimeTypeByFileNameOrExtension.md +26 -0
  248. package/data/packages/platform-core/api/ISseEventData.Function.isActionId.md +27 -0
  249. package/data/packages/platform-core/api/Interface.IBlobResourceStrategyConfig.md +28 -0
  250. package/data/packages/platform-core/api/Interface.IBlobServiceAdapter.md +40 -0
  251. package/data/packages/platform-core/api/Interface.IDeviceInfo.md +80 -0
  252. package/data/packages/platform-core/api/Interface.IErrorPageParams.md +153 -0
  253. package/data/packages/platform-core/api/Interface.IEventKey.md +57 -0
  254. package/data/packages/platform-core/api/Interface.IEventMap.md +16 -0
  255. package/data/packages/platform-core/api/Interface.IFileResourceStrategyConfig.md +72 -0
  256. package/data/packages/platform-core/api/Interface.IHealthCheckResult.md +46 -0
  257. package/data/packages/platform-core/api/Interface.IHealthIndicator.md +41 -0
  258. package/data/packages/platform-core/api/Interface.IHostContentParams.md +232 -0
  259. package/data/packages/platform-core/api/Interface.IIdGenerator.md +57 -0
  260. package/data/packages/platform-core/api/Interface.IMappingBuilder.md +76 -0
  261. package/data/packages/platform-core/api/Interface.IMappingKey.md +58 -0
  262. package/data/packages/platform-core/api/Interface.IMappingProfile.md +32 -0
  263. package/data/packages/platform-core/api/Interface.IResourceManagerConfig.md +89 -0
  264. package/data/packages/platform-core/api/Interface.IResourceMetadata.md +94 -0
  265. package/data/packages/platform-core/api/Interface.IResourceResult.md +34 -0
  266. package/data/packages/platform-core/api/Interface.IResourceStrategy.md +134 -0
  267. package/data/packages/platform-core/api/Interface.ISseEventData.md +36 -0
  268. package/data/packages/platform-core/api/Interface.ISseHub.md +91 -0
  269. package/data/packages/platform-core/api/Namespace.ISseEventData.md +14 -0
  270. package/data/packages/platform-core/api/TypeAlias.CamelCase.md +18 -0
  271. package/data/packages/platform-core/api/TypeAlias.ProblemDetail.md +28 -0
  272. package/data/packages/platform-core/api/TypeAlias.ProblemDetailTypeUrlResolver.md +25 -0
  273. package/data/packages/platform-core/api/TypeAlias.SetOptional.md +21 -0
  274. package/data/packages/platform-core/api/TypeAlias.StringValue.md +15 -0
  275. package/data/packages/platform-core/api/Variable.APP_NAME.md +14 -0
  276. package/data/packages/platform-core/api/Variable.APP_PORT.md +14 -0
  277. package/data/packages/platform-core/api/Variable.APP_URL.md +14 -0
  278. package/data/packages/platform-core/api/Variable.APP_VERSION.md +14 -0
  279. package/data/packages/platform-core/api/Variable.GIT_COMMIT.md +14 -0
  280. package/data/packages/platform-core/api/Variable.HEALTH_INDICATORS_TOKEN.md +14 -0
  281. package/data/packages/platform-core/api/Variable.ID_GENERATOR_TOKEN.md +14 -0
  282. package/data/packages/platform-core/api/Variable.IS_PUBLIC_KEY.md +12 -0
  283. package/data/packages/platform-core/api/Variable.IpAddress.md +31 -0
  284. package/data/packages/platform-core/api/Variable.Lang.md +29 -0
  285. package/data/packages/platform-core/api/Variable.NODE_ENV.md +14 -0
  286. package/data/packages/platform-core/api/Variable.PLATFORM_CORE_CONFIG_ENTRIES.md +14 -0
  287. package/data/packages/platform-core/api/Variable.UserAgent.md +24 -0
  288. package/data/packages/platform-core/api/index.md +127 -0
  289. package/data/packages/platform-core/index.md +487 -0
  290. package/data/packages/platform-cryptography/api/Class.BcryptService.md +95 -0
  291. package/data/packages/platform-cryptography/api/Class.CryptoService.md +51 -0
  292. package/data/packages/platform-cryptography/api/Class.CryptographyError.md +56 -0
  293. package/data/packages/platform-cryptography/api/Class.InvalidOtpError.md +52 -0
  294. package/data/packages/platform-cryptography/api/Class.OtpService.md +155 -0
  295. package/data/packages/platform-cryptography/api/Class.WeakPasswordError.md +52 -0
  296. package/data/packages/platform-cryptography/api/Interface.IBcryptOptions.md +45 -0
  297. package/data/packages/platform-cryptography/api/Interface.IOtpOptions.md +31 -0
  298. package/data/packages/platform-cryptography/api/Interface.IOtpService.md +113 -0
  299. package/data/packages/platform-cryptography/api/Interface.IOtpUriOptions.md +46 -0
  300. package/data/packages/platform-cryptography/api/Variable.BCRYPT_OPTIONS.md +14 -0
  301. package/data/packages/platform-cryptography/api/Variable.MAX_BCRYPT_PASSWORD_BYTES.md +14 -0
  302. package/data/packages/platform-cryptography/api/Variable.MIN_BCRYPT_ROUNDS.md +14 -0
  303. package/data/packages/platform-cryptography/api/Variable.OTP_OPTIONS.md +14 -0
  304. package/data/packages/platform-cryptography/api/Variable.OTP_SERVICE_TOKEN.md +14 -0
  305. package/data/packages/platform-cryptography/api/Variable.TOTP_EPOCH_TOLERANCE.md +23 -0
  306. package/data/packages/platform-cryptography/api/index.md +37 -0
  307. package/data/packages/platform-cryptography/index.md +132 -0
  308. package/data/packages/platform-database/api/Class.DatabaseHealthIndicator.md +75 -0
  309. package/data/packages/platform-database/api/Class.DatabaseModule.md +68 -0
  310. package/data/packages/platform-database/api/Class.DatabaseService.md +143 -0
  311. package/data/packages/platform-database/api/Class.PrismaService.md +98 -0
  312. package/data/packages/platform-database/api/Class.RepositoryBase.md +590 -0
  313. package/data/packages/platform-database/api/Class.RepositoryExceptionFilter.md +55 -0
  314. package/data/packages/platform-database/api/Function.cursorPaginator.md +26 -0
  315. package/data/packages/platform-database/api/Function.pageable.md +35 -0
  316. package/data/packages/platform-database/api/Function.paginator.md +22 -0
  317. package/data/packages/platform-database/api/Function.query.md +34 -0
  318. package/data/packages/platform-database/api/Function.skip.md +33 -0
  319. package/data/packages/platform-database/api/Function.transactionalQuery.md +31 -0
  320. package/data/packages/platform-database/api/Interface.ICursorPaginateOptions.md +40 -0
  321. package/data/packages/platform-database/api/Interface.ICursorPaginatedResult.md +65 -0
  322. package/data/packages/platform-database/api/Interface.IDatabaseModuleConfig.md +35 -0
  323. package/data/packages/platform-database/api/Interface.IPaginateOptions.md +28 -0
  324. package/data/packages/platform-database/api/Interface.IPaginatedResult.md +77 -0
  325. package/data/packages/platform-database/api/Interface.IPrismaServiceOptions.md +23 -0
  326. package/data/packages/platform-database/api/Interface.IRepositoryQuery.md +51 -0
  327. package/data/packages/platform-database/api/Interface.ITransactionalRepositoryQuery.md +50 -0
  328. package/data/packages/platform-database/api/TypeAlias.CursorPaginateFunction.md +33 -0
  329. package/data/packages/platform-database/api/TypeAlias.DelegateArgs.md +18 -0
  330. package/data/packages/platform-database/api/TypeAlias.DelegateReturnTypes.md +18 -0
  331. package/data/packages/platform-database/api/TypeAlias.PaginateFunction.md +31 -0
  332. package/data/packages/platform-database/api/TypeAlias.QueryResultType.md +27 -0
  333. package/data/packages/platform-database/api/TypeAlias.TransactionalQueryResultType.md +26 -0
  334. package/data/packages/platform-database/api/Variable.DATABASE_MODULE_CONFIG.md +14 -0
  335. package/data/packages/platform-database/api/Variable.DB_AUTO_CONNECTION.md +14 -0
  336. package/data/packages/platform-database/api/Variable.PLATFORM_DATABASE_CONFIG_ENTRIES.md +14 -0
  337. package/data/packages/platform-database/api/index.md +60 -0
  338. package/data/packages/platform-database/index.md +323 -0
  339. package/data/packages/platform-documents/api/Class.BaseDocumentRenderer.md +277 -0
  340. package/data/packages/platform-documents/api/Class.DocumentEngine.md +80 -0
  341. package/data/packages/platform-documents/api/Class.DocumentModule.md +47 -0
  342. package/data/packages/platform-documents/api/Class.SharpImageProcessor.md +131 -0
  343. package/data/packages/platform-documents/api/Interface.IDocumentModuleOptions.md +94 -0
  344. package/data/packages/platform-documents/api/Interface.IDocumentPlaceholderDetail.md +70 -0
  345. package/data/packages/platform-documents/api/Interface.IDocumentProbeReport.md +118 -0
  346. package/data/packages/platform-documents/api/Interface.IDocumentRenderer.md +47 -0
  347. package/data/packages/platform-documents/api/Interface.IImagePayload.md +58 -0
  348. package/data/packages/platform-documents/api/Interface.IImageProcessor.md +95 -0
  349. package/data/packages/platform-documents/api/Interface.IRenderOptions.md +64 -0
  350. package/data/packages/platform-documents/api/Interface.IRenderResult.md +58 -0
  351. package/data/packages/platform-documents/api/TypeAlias.DocumentFormat.md +14 -0
  352. package/data/packages/platform-documents/api/TypeAlias.EngineType.md +14 -0
  353. package/data/packages/platform-documents/api/TypeAlias.ImageMimeType.md +14 -0
  354. package/data/packages/platform-documents/api/TypeAlias.TemplateFormat.md +14 -0
  355. package/data/packages/platform-documents/api/TypeAlias.TemplateType.md +14 -0
  356. package/data/packages/platform-documents/api/Variable.DOCUMENT_MODULE_OPTIONS.md +14 -0
  357. package/data/packages/platform-documents/api/Variable.DOCUMENT_PARSER_TOKEN.md +14 -0
  358. package/data/packages/platform-documents/api/Variable.DOCUMENT_RENDERER_TOKEN.md +14 -0
  359. package/data/packages/platform-documents/api/Variable.IMAGE_PROCESSOR_TOKEN.md +14 -0
  360. package/data/packages/platform-documents/api/index.md +47 -0
  361. package/data/packages/platform-documents/index.md +219 -0
  362. package/data/packages/platform-esigning/api/Class.EsigningClientPort.md +188 -0
  363. package/data/packages/platform-esigning/api/Class.EsigningError.md +65 -0
  364. package/data/packages/platform-esigning/api/Class.EsigningModule.md +48 -0
  365. package/data/packages/platform-esigning/api/Class.EsigningPersistencePort.md +90 -0
  366. package/data/packages/platform-esigning/api/Class.EsigningService.md +202 -0
  367. package/data/packages/platform-esigning/api/Class.InternalEsigningProvider.md +253 -0
  368. package/data/packages/platform-esigning/api/Class.SigningProviderError.md +101 -0
  369. package/data/packages/platform-esigning/api/Class.SigningRequestNotFoundError.md +78 -0
  370. package/data/packages/platform-esigning/api/Class.WebhookVerificationError.md +60 -0
  371. package/data/packages/platform-esigning/api/Interface.ICreateSigningRequest.md +94 -0
  372. package/data/packages/platform-esigning/api/Interface.ICreateSigningRequestDocument.md +58 -0
  373. package/data/packages/platform-esigning/api/Interface.ICreateSigningRequestSigner.md +58 -0
  374. package/data/packages/platform-esigning/api/Interface.ICreateSigningSessionRequest.md +46 -0
  375. package/data/packages/platform-esigning/api/Interface.IEsigningModuleOptions.md +60 -0
  376. package/data/packages/platform-esigning/api/Interface.IEsigningWebhookEvent.md +82 -0
  377. package/data/packages/platform-esigning/api/Interface.ISignedDocument.md +82 -0
  378. package/data/packages/platform-esigning/api/Interface.ISigner.md +82 -0
  379. package/data/packages/platform-esigning/api/Interface.ISigningDocument.md +82 -0
  380. package/data/packages/platform-esigning/api/Interface.ISigningField.md +142 -0
  381. package/data/packages/platform-esigning/api/Interface.ISigningRequest.md +142 -0
  382. package/data/packages/platform-esigning/api/Interface.ISigningSession.md +70 -0
  383. package/data/packages/platform-esigning/api/TypeAlias.SignerRole.md +14 -0
  384. package/data/packages/platform-esigning/api/TypeAlias.SignerStatus.md +14 -0
  385. package/data/packages/platform-esigning/api/TypeAlias.SigningFieldType.md +14 -0
  386. package/data/packages/platform-esigning/api/TypeAlias.SigningRequestStatus.md +14 -0
  387. package/data/packages/platform-esigning/api/TypeAlias.WebhookEventType.md +14 -0
  388. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_BASE_URL.md +14 -0
  389. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_CLIENT_SECRET.md +14 -0
  390. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_CONFIG_ENTRIES.md +14 -0
  391. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_INTEGRATION_KEY.md +14 -0
  392. package/data/packages/platform-esigning/api/Variable.ADOBE_SIGN_WEBHOOK_CLIENT_ID.md +14 -0
  393. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_ACCOUNT_ID.md +14 -0
  394. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_BASE_URL.md +14 -0
  395. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_CONFIG_ENTRIES.md +14 -0
  396. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_INTEGRATION_KEY.md +14 -0
  397. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_SECRET_KEY.md +14 -0
  398. package/data/packages/platform-esigning/api/Variable.DOCUSIGN_WEBHOOK_HMAC_KEY.md +14 -0
  399. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_API_KEY.md +14 -0
  400. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_CLIENT_ID.md +14 -0
  401. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_CONFIG_ENTRIES.md +14 -0
  402. package/data/packages/platform-esigning/api/Variable.DROPBOX_SIGN_WEBHOOK_SECRET.md +14 -0
  403. package/data/packages/platform-esigning/api/Variable.ESIGNING_API_BASE_URL.md +14 -0
  404. package/data/packages/platform-esigning/api/Variable.ESIGNING_API_KEY.md +14 -0
  405. package/data/packages/platform-esigning/api/Variable.ESIGNING_PROVIDER.md +12 -0
  406. package/data/packages/platform-esigning/api/Variable.ESIGNING_PROVIDER_OPTIONS.md +12 -0
  407. package/data/packages/platform-esigning/api/Variable.ESIGNING_WEBHOOK_SECRET.md +14 -0
  408. package/data/packages/platform-esigning/api/Variable.PLATFORM_ESIGNING_CONFIG_ENTRIES.md +14 -0
  409. package/data/packages/platform-esigning/api/Variable.SIGNNOW_API_KEY.md +14 -0
  410. package/data/packages/platform-esigning/api/Variable.SIGNNOW_BASE_URL.md +14 -0
  411. package/data/packages/platform-esigning/api/Variable.SIGNNOW_CLIENT_ID.md +14 -0
  412. package/data/packages/platform-esigning/api/Variable.SIGNNOW_CLIENT_SECRET.md +14 -0
  413. package/data/packages/platform-esigning/api/Variable.SIGNNOW_CONFIG_ENTRIES.md +14 -0
  414. package/data/packages/platform-esigning/api/Variable.SIGNNOW_WEBHOOK_SECRET.md +14 -0
  415. package/data/packages/platform-esigning/api/Variable.SignerRoles.md +30 -0
  416. package/data/packages/platform-esigning/api/Variable.SignerStatuses.md +32 -0
  417. package/data/packages/platform-esigning/api/Variable.SigningFieldTypes.md +38 -0
  418. package/data/packages/platform-esigning/api/Variable.SigningRequestStatuses.md +36 -0
  419. package/data/packages/platform-esigning/api/Variable.WebhookEventTypes.md +38 -0
  420. package/data/packages/platform-esigning/api/index.md +84 -0
  421. package/data/packages/platform-esigning/index.md +701 -0
  422. package/data/packages/platform-intelligence/api/Class.IntelligenceCapabilityRegistrarBase.md +94 -0
  423. package/data/packages/platform-intelligence/api/Class.IntelligenceCapabilityRegistry.md +106 -0
  424. package/data/packages/platform-intelligence/api/Class.IntelligenceModule.md +22 -0
  425. package/data/packages/platform-intelligence/api/Class.IntelligenceProviderError.md +79 -0
  426. package/data/packages/platform-intelligence/api/Class.IntelligenceTextGenerator.md +81 -0
  427. package/data/packages/platform-intelligence/api/Function.createProviderOptions.md +26 -0
  428. package/data/packages/platform-intelligence/api/Function.loadAnthropicLanguageModel.md +26 -0
  429. package/data/packages/platform-intelligence/api/Function.loadGoogleLanguageModel.md +26 -0
  430. package/data/packages/platform-intelligence/api/Function.loadGrokLanguageModel.md +26 -0
  431. package/data/packages/platform-intelligence/api/Function.loadOpenAILanguageModel.md +26 -0
  432. package/data/packages/platform-intelligence/api/Function.loadProviderFactory.md +31 -0
  433. package/data/packages/platform-intelligence/api/Interface.IIntelligenceArtifact.md +34 -0
  434. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapability.md +71 -0
  435. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityMetadata.md +70 -0
  436. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityPayload.md +46 -0
  437. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityRegistry.md +78 -0
  438. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCapabilityResult.md +46 -0
  439. package/data/packages/platform-intelligence/api/Interface.IIntelligenceCompletionUsage.md +46 -0
  440. package/data/packages/platform-intelligence/api/Interface.IIntelligenceContext.md +72 -0
  441. package/data/packages/platform-intelligence/api/Interface.IIntelligenceContextBuilder.md +35 -0
  442. package/data/packages/platform-intelligence/api/Interface.IIntelligenceConversationMessageSnapshot.md +70 -0
  443. package/data/packages/platform-intelligence/api/Interface.IIntelligenceConversationSnapshot.md +58 -0
  444. package/data/packages/platform-intelligence/api/Interface.IIntelligenceFollowUpQuestion.md +46 -0
  445. package/data/packages/platform-intelligence/api/Interface.IIntelligenceIntent.md +46 -0
  446. package/data/packages/platform-intelligence/api/Interface.IIntelligenceIntentEntity.md +34 -0
  447. package/data/packages/platform-intelligence/api/Interface.IIntelligenceMessageModel.md +70 -0
  448. package/data/packages/platform-intelligence/api/Interface.IIntelligenceMessagePayload.md +34 -0
  449. package/data/packages/platform-intelligence/api/Interface.IIntelligencePrompt.md +34 -0
  450. package/data/packages/platform-intelligence/api/Interface.IIntelligencePromptMessage.md +34 -0
  451. package/data/packages/platform-intelligence/api/Interface.IIntelligenceProviderConfiguration.md +94 -0
  452. package/data/packages/platform-intelligence/api/Interface.IIntelligenceResponseMessage.md +34 -0
  453. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextCompletion.md +60 -0
  454. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextGenerationOptions.md +59 -0
  455. package/data/packages/platform-intelligence/api/Interface.IIntelligenceTextGenerator.md +53 -0
  456. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceConversationMessageRole.md +14 -0
  457. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceLanguageModelLoader.md +24 -0
  458. package/data/packages/platform-intelligence/api/TypeAlias.IntelligenceProviderName.md +14 -0
  459. package/data/packages/platform-intelligence/api/Variable.ANTHROPIC_API_KEY.md +14 -0
  460. package/data/packages/platform-intelligence/api/Variable.ANTHROPIC_BASE_URL.md +14 -0
  461. package/data/packages/platform-intelligence/api/Variable.GEMINI_API_KEY.md +14 -0
  462. package/data/packages/platform-intelligence/api/Variable.GOOGLE_API_KEY.md +14 -0
  463. package/data/packages/platform-intelligence/api/Variable.GOOGLE_BASE_URL.md +14 -0
  464. package/data/packages/platform-intelligence/api/Variable.GROK_API_KEY.md +14 -0
  465. package/data/packages/platform-intelligence/api/Variable.GROK_BASE_URL.md +14 -0
  466. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_API_KEY.md +14 -0
  467. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_BASE_URL.md +14 -0
  468. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_MAX_OUTPUT_TOKENS.md +14 -0
  469. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_MODEL.md +14 -0
  470. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_PROVIDER.md +14 -0
  471. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_TEMPERATURE.md +14 -0
  472. package/data/packages/platform-intelligence/api/Variable.INTELLIGENCE_TOP_P.md +14 -0
  473. package/data/packages/platform-intelligence/api/Variable.IntelligenceConversationMessageRoles.md +26 -0
  474. package/data/packages/platform-intelligence/api/Variable.IntelligenceProviderNames.md +28 -0
  475. package/data/packages/platform-intelligence/api/Variable.OPENAI_API_KEY.md +14 -0
  476. package/data/packages/platform-intelligence/api/Variable.OPENAI_BASE_URL.md +14 -0
  477. package/data/packages/platform-intelligence/api/Variable.PLATFORM_INTELLIGENCE_CONFIG_ENTRIES.md +14 -0
  478. package/data/packages/platform-intelligence/api/Variable.XAI_API_KEY.md +14 -0
  479. package/data/packages/platform-intelligence/api/Variable.XAI_BASE_URL.md +14 -0
  480. package/data/packages/platform-intelligence/api/index.md +89 -0
  481. package/data/packages/platform-intelligence/index.md +155 -0
  482. package/data/packages/platform-logging/api/Class.LoggerModule.md +22 -0
  483. package/data/packages/platform-logging/api/Variable.APP_LOG_LEVEL.md +14 -0
  484. package/data/packages/platform-logging/api/Variable.PLATFORM_LOGGING_CONFIG_ENTRIES.md +14 -0
  485. package/data/packages/platform-logging/api/index.md +19 -0
  486. package/data/packages/platform-logging/index.md +92 -0
  487. package/data/packages/platform-mailing/api/Class.BlobTemplateFetchStrategy.md +60 -0
  488. package/data/packages/platform-mailing/api/Class.DeliveryStrategyBase.md +68 -0
  489. package/data/packages/platform-mailing/api/Class.FileTemplateFetchStrategy.md +58 -0
  490. package/data/packages/platform-mailing/api/Class.LogDeliveryStrategy.md +71 -0
  491. package/data/packages/platform-mailing/api/Class.MailHealthIndicator.md +78 -0
  492. package/data/packages/platform-mailing/api/Class.MailModule.md +22 -0
  493. package/data/packages/platform-mailing/api/Class.MailService.md +98 -0
  494. package/data/packages/platform-mailing/api/Class.MailTemplateEngine.md +93 -0
  495. package/data/packages/platform-mailing/api/Class.MailVerificationService.md +92 -0
  496. package/data/packages/platform-mailing/api/Class.MailgunDeliveryStrategy.md +77 -0
  497. package/data/packages/platform-mailing/api/Class.PostmarkDeliveryStrategy.md +77 -0
  498. package/data/packages/platform-mailing/api/Class.ResendDeliveryStrategy.md +77 -0
  499. package/data/packages/platform-mailing/api/Class.SendGridDeliveryStrategy.md +77 -0
  500. package/data/packages/platform-mailing/api/Class.SmtpDeliveryStrategy.md +77 -0
  501. package/data/packages/platform-mailing/api/Class.TemplateFetchStrategyBase.md +53 -0
  502. package/data/packages/platform-mailing/api/Interface.IMailAttachment.md +46 -0
  503. package/data/packages/platform-mailing/api/Interface.IMailEvents.md +66 -0
  504. package/data/packages/platform-mailing/api/Interface.IMailTemplateVariants.md +30 -0
  505. package/data/packages/platform-mailing/api/TypeAlias.MailTemplateFormat.md +14 -0
  506. package/data/packages/platform-mailing/api/Variable.ALLOWED_ATTACHMENT_MIME_TYPES.md +14 -0
  507. package/data/packages/platform-mailing/api/Variable.MAILGUN_API_KEY.md +14 -0
  508. package/data/packages/platform-mailing/api/Variable.MAILGUN_CONFIG_ENTRIES.md +14 -0
  509. package/data/packages/platform-mailing/api/Variable.MAILGUN_DOMAIN.md +14 -0
  510. package/data/packages/platform-mailing/api/Variable.MAIL_DELIVERY_STRATEGY.md +14 -0
  511. package/data/packages/platform-mailing/api/Variable.MAIL_DELIVERY_STRATEGY_TOKEN.md +12 -0
  512. package/data/packages/platform-mailing/api/Variable.MAIL_HOST.md +14 -0
  513. package/data/packages/platform-mailing/api/Variable.MAIL_MAILGUN_API_KEY.md +14 -0
  514. package/data/packages/platform-mailing/api/Variable.MAIL_MAILGUN_DOMAIN.md +14 -0
  515. package/data/packages/platform-mailing/api/Variable.MAIL_PORT.md +14 -0
  516. package/data/packages/platform-mailing/api/Variable.MAIL_POSTMARK_API_KEY.md +14 -0
  517. package/data/packages/platform-mailing/api/Variable.MAIL_RESEND_API_KEY.md +14 -0
  518. package/data/packages/platform-mailing/api/Variable.MAIL_SENDER_EMAIL.md +14 -0
  519. package/data/packages/platform-mailing/api/Variable.MAIL_SENDGRID_API_KEY.md +14 -0
  520. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_HOST.md +14 -0
  521. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_PASSWORD.md +14 -0
  522. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_PORT.md +14 -0
  523. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_SECURE.md +14 -0
  524. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_USER.md +14 -0
  525. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_ENGINE_FORMAT.md +14 -0
  526. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_FETCH_STRATEGY_TOKEN.md +16 -0
  527. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_STRATEGY.md +14 -0
  528. package/data/packages/platform-mailing/api/Variable.MAIL_USER.md +14 -0
  529. package/data/packages/platform-mailing/api/Variable.MAX_ATTACHMENT_SIZE_BYTES.md +14 -0
  530. package/data/packages/platform-mailing/api/Variable.PLATFORM_MAILING_CONFIG_ENTRIES.md +14 -0
  531. package/data/packages/platform-mailing/api/Variable.POSTMARK_API_KEY.md +14 -0
  532. package/data/packages/platform-mailing/api/Variable.POSTMARK_CONFIG_ENTRIES.md +14 -0
  533. package/data/packages/platform-mailing/api/Variable.RESEND_API_KEY.md +14 -0
  534. package/data/packages/platform-mailing/api/Variable.RESEND_CONFIG_ENTRIES.md +14 -0
  535. package/data/packages/platform-mailing/api/Variable.SENDGRID_API_KEY.md +14 -0
  536. package/data/packages/platform-mailing/api/Variable.SENDGRID_CONFIG_ENTRIES.md +14 -0
  537. package/data/packages/platform-mailing/api/Variable.SEND_MAIL_EVENT_KEY.md +14 -0
  538. package/data/packages/platform-mailing/api/index.md +77 -0
  539. package/data/packages/platform-mailing/index.md +383 -0
  540. package/data/packages/platform-mcp/api/Class.McpDiscoveryService.md +64 -0
  541. package/data/packages/platform-mcp/api/Class.McpModule.md +82 -0
  542. package/data/packages/platform-mcp/api/Class.McpRegistryService.md +146 -0
  543. package/data/packages/platform-mcp/api/Class.McpServerService.md +196 -0
  544. package/data/packages/platform-mcp/api/Function.McpPrompt.md +28 -0
  545. package/data/packages/platform-mcp/api/Function.McpResource.md +28 -0
  546. package/data/packages/platform-mcp/api/Function.McpTool.md +28 -0
  547. package/data/packages/platform-mcp/api/Interface.IMcpHandlerMetadata.md +46 -0
  548. package/data/packages/platform-mcp/api/Interface.IMcpModuleAsyncOptions.md +75 -0
  549. package/data/packages/platform-mcp/api/Interface.IMcpModuleOptions.md +125 -0
  550. package/data/packages/platform-mcp/api/Interface.IMcpModuleOptionsFactory.md +27 -0
  551. package/data/packages/platform-mcp/api/Interface.IMcpPromptMetadata.md +58 -0
  552. package/data/packages/platform-mcp/api/Interface.IMcpResourceMetadata.md +72 -0
  553. package/data/packages/platform-mcp/api/Interface.IMcpToolMetadata.md +94 -0
  554. package/data/packages/platform-mcp/api/Interface.IRegisteredPrompt.md +40 -0
  555. package/data/packages/platform-mcp/api/Interface.IRegisteredResource.md +40 -0
  556. package/data/packages/platform-mcp/api/Interface.IRegisteredTool.md +40 -0
  557. package/data/packages/platform-mcp/api/Interface.ISseTransportOptions.md +22 -0
  558. package/data/packages/platform-mcp/api/Interface.IStreamableHttpTransportOptions.md +38 -0
  559. package/data/packages/platform-mcp/api/Variable.MCP_MODULE_OPTIONS.md +14 -0
  560. package/data/packages/platform-mcp/api/index.md +46 -0
  561. package/data/packages/platform-mcp/index.md +299 -0
  562. package/data/packages/platform-openapi/api/Class.SwaggerFeatureDiscovery.md +70 -0
  563. package/data/packages/platform-openapi/api/Class.SwaggerFeatureRegistry.md +83 -0
  564. package/data/packages/platform-openapi/api/Class.SwaggerMultiDocumentService.md +77 -0
  565. package/data/packages/platform-openapi/api/Class.SwaggerTheme.md +46 -0
  566. package/data/packages/platform-openapi/api/Function.Api.md +35 -0
  567. package/data/packages/platform-openapi/api/Function.SwaggerFeature.md +42 -0
  568. package/data/packages/platform-openapi/api/Function.getRegisteredSwaggerFeatures.md +18 -0
  569. package/data/packages/platform-openapi/api/Function.getSwaggerFeatureMetadata.md +27 -0
  570. package/data/packages/platform-openapi/api/Interface.IFeatureSwaggerConfig.md +68 -0
  571. package/data/packages/platform-openapi/api/Interface.ISwaggerFeatureMetadata.md +68 -0
  572. package/data/packages/platform-openapi/api/Variable.APP_VERSION.md +14 -0
  573. package/data/packages/platform-openapi/api/Variable.PLATFORM_OPENAPI_CONFIG_ENTRIES.md +14 -0
  574. package/data/packages/platform-openapi/api/Variable.SWAGGER_CONTACT_EMAIL.md +14 -0
  575. package/data/packages/platform-openapi/api/Variable.SWAGGER_CONTACT_NAME.md +14 -0
  576. package/data/packages/platform-openapi/api/Variable.SWAGGER_CONTACT_URL.md +14 -0
  577. package/data/packages/platform-openapi/api/Variable.SWAGGER_FEATURE_METADATA_KEY.md +12 -0
  578. package/data/packages/platform-openapi/api/index.md +42 -0
  579. package/data/packages/platform-openapi/index.md +170 -0
  580. package/data/packages/platform-payments/api/Class.FeatureAccessPort.md +74 -0
  581. package/data/packages/platform-payments/api/Class.FeatureGuard.md +68 -0
  582. package/data/packages/platform-payments/api/Class.FeatureUsageInterceptor.md +69 -0
  583. package/data/packages/platform-payments/api/Class.LemonSqueezyClient.md +163 -0
  584. package/data/packages/platform-payments/api/Class.MollieClient.md +166 -0
  585. package/data/packages/platform-payments/api/Class.PaddleClient.md +163 -0
  586. package/data/packages/platform-payments/api/Class.PaymentClientPort.md +142 -0
  587. package/data/packages/platform-payments/api/Class.PaymentModule.md +48 -0
  588. package/data/packages/platform-payments/api/Class.StripeClient.md +163 -0
  589. package/data/packages/platform-payments/api/Function.RequiresFeature.md +25 -0
  590. package/data/packages/platform-payments/api/Interface.IFeatureAccessResult.md +70 -0
  591. package/data/packages/platform-payments/api/Interface.INormalizedCheckoutSession.md +70 -0
  592. package/data/packages/platform-payments/api/Interface.INormalizedPrice.md +80 -0
  593. package/data/packages/platform-payments/api/Interface.INormalizedSubscription.md +100 -0
  594. package/data/packages/platform-payments/api/Interface.INormalizedWebhookEvent.md +84 -0
  595. package/data/packages/platform-payments/api/Interface.IPaymentModuleOptions.md +60 -0
  596. package/data/packages/platform-payments/api/TypeAlias.SubscriptionStatus.md +22 -0
  597. package/data/packages/platform-payments/api/Variable.FEATURE_KEY_METADATA.md +12 -0
  598. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_API_KEY.md +14 -0
  599. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_CONFIG_ENTRIES.md +14 -0
  600. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_STORE_ID.md +14 -0
  601. package/data/packages/platform-payments/api/Variable.LEMONSQUEEZY_WEBHOOK_SECRET.md +14 -0
  602. package/data/packages/platform-payments/api/Variable.MOLLIE_API_KEY.md +14 -0
  603. package/data/packages/platform-payments/api/Variable.MOLLIE_CONFIG_ENTRIES.md +14 -0
  604. package/data/packages/platform-payments/api/Variable.MOLLIE_WEBHOOK_SECRET.md +14 -0
  605. package/data/packages/platform-payments/api/Variable.PADDLE_API_KEY.md +14 -0
  606. package/data/packages/platform-payments/api/Variable.PADDLE_CONFIG_ENTRIES.md +14 -0
  607. package/data/packages/platform-payments/api/Variable.PADDLE_ENVIRONMENT.md +14 -0
  608. package/data/packages/platform-payments/api/Variable.PADDLE_WEBHOOK_SECRET.md +14 -0
  609. package/data/packages/platform-payments/api/Variable.STRIPE_API_KEY.md +14 -0
  610. package/data/packages/platform-payments/api/Variable.STRIPE_CONFIG_ENTRIES.md +14 -0
  611. package/data/packages/platform-payments/api/Variable.STRIPE_WEBHOOK_SECRET.md +14 -0
  612. package/data/packages/platform-payments/api/index.md +63 -0
  613. package/data/packages/platform-payments/index.md +534 -0
  614. package/data/packages/platform-reporting/api/Class.ReportingContributorRegistry.md +56 -0
  615. package/data/packages/platform-reporting/api/Class.ReportingDatasetNotFoundError.md +40 -0
  616. package/data/packages/platform-reporting/api/Class.ReportingExecutionError.md +67 -0
  617. package/data/packages/platform-reporting/api/Class.ReportingFacade.md +84 -0
  618. package/data/packages/platform-reporting/api/Class.ReportingModule.md +22 -0
  619. package/data/packages/platform-reporting/api/Class.ReportingQueryValidationError.md +51 -0
  620. package/data/packages/platform-reporting/api/Interface.IReportingContributor.md +61 -0
  621. package/data/packages/platform-reporting/api/Interface.IReportingDataset.md +82 -0
  622. package/data/packages/platform-reporting/api/Interface.IReportingDatasetField.md +70 -0
  623. package/data/packages/platform-reporting/api/Interface.IReportingQuery.md +60 -0
  624. package/data/packages/platform-reporting/api/Interface.IReportingQueryFilter.md +40 -0
  625. package/data/packages/platform-reporting/api/Interface.IReportingQueryResult.md +60 -0
  626. package/data/packages/platform-reporting/api/Interface.IReportingQuerySort.md +30 -0
  627. package/data/packages/platform-reporting/api/TypeAlias.ReportingFieldType.md +12 -0
  628. package/data/packages/platform-reporting/api/TypeAlias.ReportingFilterOperator.md +12 -0
  629. package/data/packages/platform-reporting/api/TypeAlias.ReportingQueryResultRow.md +14 -0
  630. package/data/packages/platform-reporting/api/Variable.ReportingFieldTypes.md +30 -0
  631. package/data/packages/platform-reporting/api/Variable.ReportingFilterOperators.md +28 -0
  632. package/data/packages/platform-reporting/api/index.md +44 -0
  633. package/data/packages/platform-reporting/index.md +229 -0
  634. package/data/packages/platform-telemetry/api/Class.MetricsService.md +40 -0
  635. package/data/packages/platform-telemetry/api/Class.NoopTelemetryFacade.md +113 -0
  636. package/data/packages/platform-telemetry/api/Class.OtelSdkHolder.md +73 -0
  637. package/data/packages/platform-telemetry/api/Class.TelemetryCacheMetricsRecorder.md +175 -0
  638. package/data/packages/platform-telemetry/api/Class.TelemetryFacade.md +135 -0
  639. package/data/packages/platform-telemetry/api/Class.TelemetryLoggerService.md +226 -0
  640. package/data/packages/platform-telemetry/api/Class.TelemetryModule.md +40 -0
  641. package/data/packages/platform-telemetry/api/Class.TelemetryRuleEngine.md +49 -0
  642. package/data/packages/platform-telemetry/api/Function.validateTelemetryOptions.md +24 -0
  643. package/data/packages/platform-telemetry/api/Interface.IMetricInstruments.md +38 -0
  644. package/data/packages/platform-telemetry/api/Interface.ITelemetryFacade.md +85 -0
  645. package/data/packages/platform-telemetry/api/Interface.ITelemetryMetricsOptions.md +38 -0
  646. package/data/packages/platform-telemetry/api/Interface.ITelemetryOptions.md +136 -0
  647. package/data/packages/platform-telemetry/api/Interface.ITelemetryTracesOptions.md +38 -0
  648. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_ENABLED.md +12 -0
  649. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_FACADE.md +12 -0
  650. package/data/packages/platform-telemetry/api/Variable.TELEMETRY_OPTIONS.md +12 -0
  651. package/data/packages/platform-telemetry/api/Variable.defaultTelemetryOptions.md +12 -0
  652. package/data/packages/platform-telemetry/api/index.md +44 -0
  653. package/data/packages/platform-telemetry/index.md +234 -0
  654. package/package.json +1 -1
@@ -0,0 +1,260 @@
1
+ ---
2
+ title: Payments & Feature Gating
3
+ description: Integrate payment providers (Stripe, Paddle, LemonSqueezy, Mollie) and gate features by subscription tier.
4
+ order: 9
5
+ ---
6
+
7
+ # Payments & Feature Gating
8
+
9
+ This guide covers payment integration with `platform-payments`: choosing a payment provider, handling webhooks, gating features by subscription tier, and tracking feature usage.
10
+
11
+ ---
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ yarn add @breadstone/archipel-platform-payments
17
+ ```
18
+
19
+ ---
20
+
21
+ ## Choose a Payment Provider
22
+
23
+ `platform-payments` normalizes payment operations across multiple providers. You implement the `PaymentClientPort` for your chosen provider:
24
+
25
+ | Provider | What it provides |
26
+ | ---------------- | --------------------------------------- |
27
+ | **Stripe** | Cards, subscriptions, invoices |
28
+ | **Paddle** | SaaS billing, tax handling |
29
+ | **LemonSqueezy** | Digital products, memberships |
30
+ | **Mollie** | European payment methods, subscriptions |
31
+
32
+ ---
33
+
34
+ ## Module Registration
35
+
36
+ ```typescript
37
+ import { Module } from '@nestjs/common';
38
+ import { PaymentModule } from '@breadstone/archipel-platform-payments';
39
+ import { StripePaymentClient } from './adapters/StripePaymentClient';
40
+ import { PrismaFeatureAccessAdapter } from './adapters/PrismaFeatureAccessAdapter';
41
+ import { STRIPE_CONFIG_ENTRIES } from './env';
42
+
43
+ @Module({
44
+ imports: [
45
+ PaymentModule.register({
46
+ paymentClient: StripePaymentClient,
47
+ featureAccess: PrismaFeatureAccessAdapter,
48
+ configEntries: [...STRIPE_CONFIG_ENTRIES],
49
+ }),
50
+ ],
51
+ })
52
+ export class AppModule {}
53
+ ```
54
+
55
+ ---
56
+
57
+ ## Implementing the Payment Client Port
58
+
59
+ The `PaymentClientPort` defines the contract between the library and your payment provider. Implement it for your chosen provider:
60
+
61
+ ```typescript
62
+ import { Injectable } from '@nestjs/common';
63
+ import {
64
+ PaymentClientPort,
65
+ type INormalizedCheckoutSession,
66
+ type INormalizedSubscription,
67
+ type INormalizedWebhookEvent,
68
+ } from '@breadstone/archipel-platform-payments';
69
+
70
+ @Injectable()
71
+ export class StripePaymentClient extends PaymentClientPort {
72
+ public async createCheckoutSession(params: Record<string, unknown>): Promise<INormalizedCheckoutSession> {
73
+ // Use Stripe SDK to create a checkout session
74
+ // Return a normalized result
75
+ }
76
+
77
+ public async getSubscription(subscriptionId: string): Promise<INormalizedSubscription | null> {
78
+ // Fetch subscription details from Stripe
79
+ // Return normalized subscription data
80
+ }
81
+
82
+ public async handleWebhook(payload: Buffer, signature: string): Promise<INormalizedWebhookEvent> {
83
+ // Verify webhook signature and normalize the event
84
+ }
85
+ }
86
+ ```
87
+
88
+ The library uses **normalized models** (`INormalizedSubscription`, `INormalizedCheckoutSession`, `INormalizedWebhookEvent`) so your application code works identically regardless of the payment provider.
89
+
90
+ ---
91
+
92
+ ## Feature Gating
93
+
94
+ The `FeatureAccessPort` lets you restrict functionality based on subscription tiers.
95
+
96
+ ### Step 1: Implement the Port
97
+
98
+ ```typescript
99
+ import { Injectable } from '@nestjs/common';
100
+ import { FeatureAccessPort } from '@breadstone/archipel-platform-payments';
101
+ import { PrismaService } from '@breadstone/archipel-platform-database';
102
+
103
+ @Injectable()
104
+ export class PrismaFeatureAccessAdapter extends FeatureAccessPort {
105
+ private readonly _prisma: PrismaService;
106
+
107
+ constructor(prisma: PrismaService) {
108
+ super();
109
+ this._prisma = prisma;
110
+ }
111
+
112
+ public async hasAccess(userId: string, feature: string): Promise<boolean> {
113
+ const subscription = await this._prisma.subscription.findFirst({
114
+ where: { userId, status: 'active' },
115
+ include: { plan: true },
116
+ });
117
+
118
+ if (!subscription) {
119
+ return false;
120
+ }
121
+
122
+ return subscription.plan.features.includes(feature);
123
+ }
124
+
125
+ public async recordUsage(userId: string, feature: string): Promise<void> {
126
+ await this._prisma.featureUsage.create({
127
+ data: { userId, feature, usedAt: new Date() },
128
+ });
129
+ }
130
+
131
+ public async getUsageCount(userId: string, feature: string, since: Date): Promise<number> {
132
+ return this._prisma.featureUsage.count({
133
+ where: { userId, feature, usedAt: { gte: since } },
134
+ });
135
+ }
136
+ }
137
+ ```
138
+
139
+ ### Step 2: Use the Feature Guard
140
+
141
+ The `FeatureGuard` decorator restricts endpoints to users with access to specific features:
142
+
143
+ ```typescript
144
+ import { Controller, Post, UseGuards } from '@nestjs/common';
145
+ import { JwtAuthGuard } from '@breadstone/archipel-platform-authentication';
146
+ import { FeatureGuard } from '@breadstone/archipel-platform-payments';
147
+
148
+ @Controller('exports')
149
+ @UseGuards(JwtAuthGuard)
150
+ export class ExportController {
151
+ @Post('pdf')
152
+ @FeatureGuard('export:pdf')
153
+ public async exportPdf(): Promise<void> {
154
+ // Only accessible to users with 'export:pdf' feature
155
+ }
156
+
157
+ @Post('csv')
158
+ @FeatureGuard('export:csv')
159
+ public async exportCsv(): Promise<void> {
160
+ // Only accessible to users with 'export:csv' feature
161
+ }
162
+ }
163
+ ```
164
+
165
+ ### Step 3: Track Usage with Interceptor
166
+
167
+ `FeatureUsageInterceptor` automatically records feature usage after a successful request:
168
+
169
+ ```typescript
170
+ import { Controller, Post, UseGuards, UseInterceptors } from '@nestjs/common';
171
+ import { JwtAuthGuard } from '@breadstone/archipel-platform-authentication';
172
+ import { FeatureGuard, FeatureUsageInterceptor } from '@breadstone/archipel-platform-payments';
173
+
174
+ @Controller('ai')
175
+ @UseGuards(JwtAuthGuard)
176
+ export class AiController {
177
+ @Post('generate')
178
+ @FeatureGuard('ai:generate')
179
+ @UseInterceptors(FeatureUsageInterceptor)
180
+ public async generate(): Promise<string> {
181
+ // Usage is recorded automatically after success
182
+ return 'generated content';
183
+ }
184
+ }
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Handling Webhooks
190
+
191
+ Payment providers send webhook events for subscription changes, payment failures, etc. Create a dedicated webhook controller:
192
+
193
+ ```typescript
194
+ import { Controller, Post, Req, Headers, RawBodyRequest } from '@nestjs/common';
195
+ import { PaymentClientPort } from '@breadstone/archipel-platform-payments';
196
+ import { Request } from 'express';
197
+
198
+ @Controller('webhooks/payments')
199
+ export class PaymentWebhookController {
200
+ private readonly _paymentClient: PaymentClientPort;
201
+
202
+ constructor(paymentClient: PaymentClientPort) {
203
+ this._paymentClient = paymentClient;
204
+ }
205
+
206
+ @Post()
207
+ public async handleWebhook(
208
+ @Req() request: RawBodyRequest<Request>,
209
+ @Headers('stripe-signature') signature: string,
210
+ ): Promise<void> {
211
+ const event = await this._paymentClient.handleWebhook(request.rawBody!, signature);
212
+
213
+ switch (event.type) {
214
+ case 'subscription.created':
215
+ case 'subscription.updated':
216
+ // Update subscription in your database
217
+ break;
218
+ case 'subscription.deleted':
219
+ // Handle cancellation
220
+ break;
221
+ case 'payment.failed':
222
+ // Notify user, retry logic
223
+ break;
224
+ }
225
+ }
226
+ }
227
+ ```
228
+
229
+ ---
230
+
231
+ ## Best Practices
232
+
233
+ 1. **Define feature keys as constants.** Never use inline strings for feature identifiers.
234
+ 2. **Verify webhook signatures.** Always validate the webhook payload before processing.
235
+ 3. **Use normalized models.** Don't leak provider-specific types into your business logic.
236
+ 4. **Implement idempotent webhook handlers.** Webhooks can be delivered multiple times.
237
+ 5. **Separate feature gating from billing logic.** The `FeatureAccessPort` should only check access, not manage subscriptions.
238
+
239
+ ## Error Handling
240
+
241
+ Payment client methods such as `fetchPrices`, `createCheckoutSession`, and `fetchSubscription` **propagate errors** to the caller. They do not silently return empty results. Wrap calls in `try/catch` if you need fallback behavior:
242
+
243
+ ```typescript
244
+ try {
245
+ const prices = await this._paymentClient.fetchPrices(productId);
246
+ return prices;
247
+ } catch (error) {
248
+ this._logger.error('Failed to fetch prices', { productId, error: (error as Error).message });
249
+ return []; // Fallback to empty list
250
+ }
251
+ ```
252
+
253
+ All client implementations log errors with structured metadata before re-throwing.
254
+
255
+ ---
256
+
257
+ ## Next Steps
258
+
259
+ - See the [Authentication & Authorization](/guides/authentication-and-authorization) guide for securing payment endpoints
260
+ - Browse the [platform-payments API reference](/packages/platform-payments/api/) for complete method signatures
@@ -0,0 +1,411 @@
1
+ ---
2
+ title: Request & Response DTOs
3
+ description: Naming conventions, validation decorators, and class-transformer integration for request and response data transfer objects in Archipel NestJS applications.
4
+ order: 4
5
+ ---
6
+
7
+ # Request & Response DTOs
8
+
9
+ This guide covers how to define, validate, and transform request and response DTOs in an Archipel-powered NestJS application. DTOs are the contract between your API and its consumers — they define what goes in and what comes out.
10
+
11
+ For how controllers use DTOs together with `ResponseReturn`, see the [Controller Best Practices](/guides/controller-best-practices) guide.
12
+
13
+ ---
14
+
15
+ ## Naming Conventions
16
+
17
+ DTOs follow a strict naming pattern:
18
+
19
+ | Type | Pattern | Example |
20
+ |------|---------|---------|
21
+ | Create request | `Create{Resource}Request` | `CreateOrderRequest` |
22
+ | Update request | `Update{Resource}Request` | `UpdateProfileRequest` |
23
+ | Action request | `{Action}{Resource}Request` | `AuthLoginRequest`, `AuthVerifyPinRequest` |
24
+ | Single response | `{Resource}Response` | `UserResponse`, `OrderResponse` |
25
+ | List response | `{Resource}ListResponse` | `OrderListResponse` |
26
+ | Action response | `{Action}{Resource}Response` | `AuthLoginResponse`, `AuthRefreshResponse` |
27
+ | Availability / status | `{Resource}{Status}Response` | `AuthUsernameAvailabilityResponse` |
28
+
29
+ ### Grouping by Feature
30
+
31
+ When a controller has many DTOs, prefix them with the feature name to keep imports clean:
32
+
33
+ ```typescript
34
+ // Auth feature DTOs
35
+ AuthLoginRequest
36
+ AuthLoginResponse
37
+ AuthRegisterRequest
38
+ AuthRefreshResponse
39
+ AuthChangePasswordRequest
40
+ AuthChangeEmailRequest
41
+ AuthForgotPasswordRequest
42
+ AuthVerifyPinRequest
43
+ AuthVerifyResponse
44
+ AuthResendVerificationRequest
45
+ AuthUsernameSuggestionsResponse
46
+ AuthUsernameAvailabilityResponse
47
+ AuthAvatarSuggestionResponse
48
+ ```
49
+
50
+ All DTOs for a feature are exported from a `models/` barrel file:
51
+
52
+ ```typescript
53
+ // models/index.ts
54
+ export { AuthLoginRequest } from './AuthLoginRequest';
55
+ export { AuthLoginResponse } from './AuthLoginResponse';
56
+ export { AuthRegisterRequest } from './AuthRegisterRequest';
57
+ // ...
58
+ ```
59
+
60
+ ---
61
+
62
+ ## File Organization
63
+
64
+ **One public export per file.** Each DTO class gets its own file, named after the class.
65
+
66
+ ```
67
+ src/
68
+ auth/
69
+ models/
70
+ AuthLoginRequest.ts
71
+ AuthLoginResponse.ts
72
+ AuthRegisterRequest.ts
73
+ AuthRefreshResponse.ts
74
+ UserResponse.ts
75
+ index.ts
76
+ AuthController.ts
77
+ AuthModule.ts
78
+ ```
79
+
80
+ ---
81
+
82
+ ## Request DTOs (Validation)
83
+
84
+ Request DTOs are classes decorated with `class-validator` and `@ApiProperty` from `@nestjs/swagger`.
85
+
86
+ ### Basic Request
87
+
88
+ ```typescript
89
+ import { ApiProperty } from '@nestjs/swagger';
90
+ import { IsEmail, IsNotEmpty, IsString, MinLength } from 'class-validator';
91
+
92
+ export class AuthLoginRequest {
93
+
94
+ /**
95
+ * The user's email address or username.
96
+ *
97
+ * @public
98
+ */
99
+ @ApiProperty({ description: 'Email address or username.' })
100
+ @IsNotEmpty()
101
+ @IsString()
102
+ public login!: string;
103
+
104
+ /**
105
+ * The user's password.
106
+ *
107
+ * @public
108
+ */
109
+ @ApiProperty({ description: 'Account password.' })
110
+ @IsNotEmpty()
111
+ @IsString()
112
+ @MinLength(8)
113
+ public password!: string;
114
+
115
+ }
116
+ ```
117
+
118
+ ### Request with Optional Fields
119
+
120
+ ```typescript
121
+ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
122
+ import { IsEmail, IsNotEmpty, IsOptional, IsString, ValidateNested } from 'class-validator';
123
+ import { Type } from 'class-transformer';
124
+
125
+ export class AuthRegisterRequest {
126
+
127
+ @ApiProperty({ description: 'Email address for the new account.' })
128
+ @IsNotEmpty()
129
+ @IsEmail()
130
+ public email!: string;
131
+
132
+ @ApiProperty({ description: 'Password for the new account.', minLength: 8 })
133
+ @IsNotEmpty()
134
+ @IsString()
135
+ @MinLength(8)
136
+ public password!: string;
137
+
138
+ @ApiProperty({ description: 'Account type.', example: 'personal' })
139
+ @IsNotEmpty()
140
+ @IsString()
141
+ public type!: string;
142
+
143
+ @ApiPropertyOptional({ description: 'Optional profile information.' })
144
+ @IsOptional()
145
+ @ValidateNested()
146
+ @Type(() => ProfilePayload)
147
+ public profile?: ProfilePayload;
148
+
149
+ }
150
+ ```
151
+
152
+ ### Nested Payloads
153
+
154
+ When a request contains nested objects, define them as separate classes with `@ValidateNested()` and `@Type()`:
155
+
156
+ ```typescript
157
+ import { ApiPropertyOptional } from '@nestjs/swagger';
158
+ import { IsOptional, IsString } from 'class-validator';
159
+
160
+ export class ProfilePayload {
161
+
162
+ @ApiPropertyOptional()
163
+ @IsOptional()
164
+ @IsString()
165
+ public avatar?: string;
166
+
167
+ @ApiPropertyOptional()
168
+ @IsOptional()
169
+ @IsString()
170
+ public firstName?: string;
171
+
172
+ @ApiPropertyOptional()
173
+ @IsOptional()
174
+ @IsString()
175
+ public lastName?: string;
176
+
177
+ @ApiPropertyOptional()
178
+ @IsOptional()
179
+ @IsString()
180
+ public userName?: string;
181
+
182
+ }
183
+ ```
184
+
185
+ ---
186
+
187
+ ## Response DTOs (Transformation)
188
+
189
+ Response DTOs use `@ApiProperty` for documentation and `@Expose()` from `class-transformer` for serialization control.
190
+
191
+ ### Basic Response
192
+
193
+ ```typescript
194
+ import { ApiProperty } from '@nestjs/swagger';
195
+ import { Expose } from 'class-transformer';
196
+
197
+ export class AuthLoginResponse {
198
+
199
+ @ApiProperty({ description: 'JWT access token.' })
200
+ @Expose()
201
+ public accessToken!: string;
202
+
203
+ @ApiProperty({ description: 'Whether multi-factor authentication is required.' })
204
+ @Expose()
205
+ public mfaRequired!: boolean;
206
+
207
+ }
208
+ ```
209
+
210
+ ### Response with Optional Fields
211
+
212
+ ```typescript
213
+ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
214
+ import { Expose } from 'class-transformer';
215
+
216
+ export class AuthLoginResponse {
217
+
218
+ @ApiProperty({ description: 'JWT access token.' })
219
+ @Expose()
220
+ public accessToken!: string;
221
+
222
+ @ApiProperty({ description: 'Whether MFA is required.' })
223
+ @Expose()
224
+ public mfaRequired!: boolean;
225
+
226
+ @ApiProperty({ description: 'Whether email verification is required.' })
227
+ @Expose()
228
+ public verificationRequired!: boolean;
229
+
230
+ @ApiPropertyOptional({ description: 'MFA challenge identifier.' })
231
+ @Expose()
232
+ public challengeId?: string;
233
+
234
+ @ApiPropertyOptional({ description: 'Available MFA methods.', type: [String] })
235
+ @Expose()
236
+ public methods?: Array<string>;
237
+
238
+ @ApiPropertyOptional({ description: 'Preferred MFA method.' })
239
+ @Expose()
240
+ public preferredMethod?: string;
241
+
242
+ }
243
+ ```
244
+
245
+ ### User / Entity Response
246
+
247
+ ```typescript
248
+ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
249
+ import { Expose } from 'class-transformer';
250
+
251
+ export class UserResponse {
252
+
253
+ @ApiProperty({ description: 'Unique user identifier.' })
254
+ @Expose()
255
+ public id!: string;
256
+
257
+ @ApiProperty({ description: 'Email address.' })
258
+ @Expose()
259
+ public email!: string;
260
+
261
+ @ApiPropertyOptional({ description: 'Display username.' })
262
+ @Expose()
263
+ public userName?: string;
264
+
265
+ @ApiPropertyOptional({ description: 'First name.' })
266
+ @Expose()
267
+ public firstName?: string;
268
+
269
+ @ApiPropertyOptional({ description: 'Last name.' })
270
+ @Expose()
271
+ public lastName?: string;
272
+
273
+ @ApiPropertyOptional({ description: 'Avatar URL or base64 image.' })
274
+ @Expose()
275
+ public avatar?: string;
276
+
277
+ @ApiProperty({ description: 'Whether the email is verified.' })
278
+ @Expose()
279
+ public isVerified!: boolean;
280
+
281
+ }
282
+ ```
283
+
284
+ ---
285
+
286
+ ## How ResponseReturn Uses DTOs
287
+
288
+ When a controller calls `ResponseReturn.ok(AuthLoginResponse, data)`, the response pipeline:
289
+
290
+ 1. Instantiates `AuthLoginResponse` via `class-transformer`'s `plainToInstance()`
291
+ 2. Applies `@Expose()` / `@Exclude()` rules — only explicitly exposed fields appear in the output
292
+ 3. Wraps the result in the standard envelope: `{ success, status, data, timestamp }`
293
+
294
+ This means the DTO class **controls what the client sees**. Even if the service returns extra fields, they won't leak unless the DTO exposes them.
295
+
296
+ ```typescript
297
+ // Service returns: { id, email, password, internalFlag, ... }
298
+ // DTO only exposes: { id, email, userName }
299
+ // Client receives: { success: true, status: 200, data: { id, email, userName }, timestamp: ... }
300
+ ```
301
+
302
+ ---
303
+
304
+ ## Validation Pipeline
305
+
306
+ Archipel applications use a global `ValidationPipe` with strict settings:
307
+
308
+ ```typescript
309
+ app.useGlobalPipes(new ValidationPipe({
310
+ whitelist: true, // Strip properties not in the DTO
311
+ forbidNonWhitelisted: true, // Throw if unknown properties are sent
312
+ transform: true, // Auto-transform payloads to DTO instances
313
+ }));
314
+ ```
315
+
316
+ This means:
317
+ - Properties without decorators are **silently removed** (`whitelist`)
318
+ - Unknown properties cause a **400 Bad Request** (`forbidNonWhitelisted`)
319
+ - Request bodies are automatically transformed to class instances (`transform`)
320
+
321
+ ---
322
+
323
+ ## Cross-Field Validation
324
+
325
+ When fields depend on each other (e.g., either `email` or `phone` is required, but not both), implement a custom class-level validator:
326
+
327
+ ```typescript
328
+ import { ValidatorConstraint, ValidatorConstraintInterface, Validate, ValidationArguments } from 'class-validator';
329
+
330
+ @ValidatorConstraint({ name: 'eitherEmailOrPhone', async: false })
331
+ export class EitherEmailOrPhoneConstraint implements ValidatorConstraintInterface {
332
+
333
+ public validate(_: unknown, args: ValidationArguments): boolean {
334
+ const obj = args.object as { email?: string; phone?: string };
335
+ return Boolean(obj.email) !== Boolean(obj.phone);
336
+ }
337
+
338
+ public defaultMessage(): string {
339
+ return 'Exactly one of email or phone must be provided.';
340
+ }
341
+
342
+ }
343
+
344
+ @Validate(EitherEmailOrPhoneConstraint)
345
+ export class ContactRequest {
346
+
347
+ @ApiPropertyOptional()
348
+ @IsOptional()
349
+ @IsEmail()
350
+ public email?: string;
351
+
352
+ @ApiPropertyOptional()
353
+ @IsOptional()
354
+ @IsString()
355
+ public phone?: string;
356
+
357
+ }
358
+ ```
359
+
360
+ **Never** do cross-field validation in controllers or services — always use class-level validators so it's reusable and testable.
361
+
362
+ ---
363
+
364
+ ## Constants for Limits
365
+
366
+ Define and reuse constants for bounds that appear in validation and pagination:
367
+
368
+ ```typescript
369
+ // constants.ts
370
+ export const MAX_PAGE_SIZE = 100;
371
+ export const MAX_SEARCH_LIMIT = 50;
372
+ export const DEFAULT_PAGE_SIZE = 20;
373
+ ```
374
+
375
+ ```typescript
376
+ import { Max, Min, IsOptional, IsInt } from 'class-validator';
377
+ import { MAX_PAGE_SIZE, DEFAULT_PAGE_SIZE } from '../constants';
378
+
379
+ export class PaginationQuery {
380
+
381
+ @ApiPropertyOptional({ default: DEFAULT_PAGE_SIZE, maximum: MAX_PAGE_SIZE })
382
+ @IsOptional()
383
+ @IsInt()
384
+ @Min(1)
385
+ @Max(MAX_PAGE_SIZE)
386
+ public limit?: number = DEFAULT_PAGE_SIZE;
387
+
388
+ @ApiPropertyOptional({ default: 0 })
389
+ @IsOptional()
390
+ @IsInt()
391
+ @Min(0)
392
+ public offset?: number = 0;
393
+
394
+ }
395
+ ```
396
+
397
+ ---
398
+
399
+ ## Checklist
400
+
401
+ Before submitting DTOs, verify:
402
+
403
+ - [ ] One DTO class per file, named after the class
404
+ - [ ] Request DTOs have `class-validator` decorators on every property
405
+ - [ ] Response DTOs have `@Expose()` on every public property
406
+ - [ ] Nested objects use `@ValidateNested()` + `@Type()`
407
+ - [ ] All properties have `@ApiProperty` or `@ApiPropertyOptional`
408
+ - [ ] No `any` types — use `unknown` or specific types
409
+ - [ ] Cross-field validation uses class-level validators, not imperative checks
410
+ - [ ] Pagination limits use shared constants with `@Max()`
411
+ - [ ] DTOs exported from a `models/index.ts` barrel