@breadstone/archipel-mcp 0.0.34 → 0.0.36

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 (68) hide show
  1. package/data/guides/email-delivery.md +42 -22
  2. package/data/guides/email-templates.md +29 -19
  3. package/data/packages/platform-feature-flags/api/Class.AzureFeatureFlagReader.md +9 -9
  4. package/data/packages/platform-feature-flags/api/Class.AzureFeatureFlagWriter.md +9 -9
  5. package/data/packages/platform-feature-flags/api/Class.FeatureFlagError.md +4 -4
  6. package/data/packages/platform-feature-flags/api/Class.FeatureFlagGuard.md +3 -3
  7. package/data/packages/platform-feature-flags/api/Class.FeatureFlagModule.md +2 -2
  8. package/data/packages/platform-feature-flags/api/Class.FeatureFlagReaderPort.md +6 -6
  9. package/data/packages/platform-feature-flags/api/Class.FeatureFlagWriterPort.md +7 -7
  10. package/data/packages/platform-feature-flags/api/Class.VercelFeatureFlagReader.md +8 -8
  11. package/data/packages/platform-feature-flags/api/Class.VercelFeatureFlagWriter.md +9 -9
  12. package/data/packages/platform-feature-flags/api/Function.FeatureFlag.md +1 -1
  13. package/data/packages/platform-feature-flags/api/Interface.IFeatureFlagContext.md +4 -4
  14. package/data/packages/platform-feature-flags/api/Interface.IFeatureFlagDefinition.md +6 -6
  15. package/data/packages/platform-feature-flags/api/Interface.IFeatureFlagEvaluation.md +4 -4
  16. package/data/packages/platform-feature-flags/api/Interface.IFeatureFlagModuleOptions.md +5 -5
  17. package/data/packages/platform-feature-flags/api/Variable.AZURE_APPCONFIG_CONNECTION_STRING.md +1 -1
  18. package/data/packages/platform-feature-flags/api/Variable.AZURE_APPCONFIG_ENDPOINT.md +1 -1
  19. package/data/packages/platform-feature-flags/api/Variable.AZURE_FEATURE_FLAG_CONFIG_ENTRIES.md +1 -1
  20. package/data/packages/platform-feature-flags/api/Variable.AZURE_FEATURE_FLAG_KEY_FILTER.md +1 -1
  21. package/data/packages/platform-feature-flags/api/Variable.AZURE_FEATURE_FLAG_REFRESH_INTERVAL.md +1 -1
  22. package/data/packages/platform-feature-flags/api/Variable.FEATURE_FLAG_KEY_METADATA.md +1 -1
  23. package/data/packages/platform-feature-flags/api/Variable.PLATFORM_FEATURE_FLAGS_CONFIG_ENTRIES.md +1 -1
  24. package/data/packages/platform-feature-flags/api/Variable.VERCEL_API_TOKEN.md +1 -1
  25. package/data/packages/platform-feature-flags/api/Variable.VERCEL_EDGE_CONFIG.md +1 -1
  26. package/data/packages/platform-feature-flags/api/Variable.VERCEL_EDGE_CONFIG_ID.md +1 -1
  27. package/data/packages/platform-feature-flags/api/Variable.VERCEL_EDGE_CONFIG_TOKEN.md +1 -1
  28. package/data/packages/platform-feature-flags/api/Variable.VERCEL_FEATURE_FLAG_CONFIG_ENTRIES.md +1 -1
  29. package/data/packages/platform-feature-flags/api/Variable.VERCEL_FEATURE_FLAG_PREFIX.md +1 -1
  30. package/data/packages/platform-feature-flags/api/Variable.VERCEL_FEATURE_FLAG_WRITER_CONFIG_ENTRIES.md +1 -1
  31. package/data/packages/platform-feature-flags/api/Variable.VERCEL_TEAM_ID.md +1 -1
  32. package/data/packages/platform-mailing/api/Class.BlobTemplateFetchStrategy.md +3 -3
  33. package/data/packages/platform-mailing/api/Class.FileTemplateFetchStrategy.md +8 -4
  34. package/data/packages/platform-mailing/api/Class.LogDeliveryStrategy.md +3 -3
  35. package/data/packages/platform-mailing/api/Class.MailModule.md +7 -7
  36. package/data/packages/platform-mailing/api/Class.MailService.md +11 -7
  37. package/data/packages/platform-mailing/api/Class.MailTemplateEngine.md +29 -4
  38. package/data/packages/platform-mailing/api/Class.MailgunDeliveryStrategy.md +3 -3
  39. package/data/packages/platform-mailing/api/Class.PostmarkDeliveryStrategy.md +3 -3
  40. package/data/packages/platform-mailing/api/Class.ResendDeliveryStrategy.md +3 -3
  41. package/data/packages/platform-mailing/api/Class.SendGridDeliveryStrategy.md +3 -3
  42. package/data/packages/platform-mailing/api/Class.SmtpDeliveryStrategy.md +3 -3
  43. package/data/packages/platform-mailing/api/Class.TemplateFetchStrategyBase.md +5 -11
  44. package/data/packages/platform-mailing/api/Interface.IMailEvents.md +28 -5
  45. package/data/packages/platform-mailing/api/Interface.IMailModuleOptions.md +50 -7
  46. package/data/packages/platform-mailing/api/Interface.IMailTemplateVariants.md +13 -3
  47. package/data/packages/platform-mailing/api/TypeAlias.MailTemplateFormat.md +1 -1
  48. package/data/packages/platform-mailing/api/Variable.MAIL_HOST.md +1 -1
  49. package/data/packages/platform-mailing/api/Variable.MAIL_MAILGUN_API_KEY.md +1 -1
  50. package/data/packages/platform-mailing/api/Variable.MAIL_MAILGUN_DOMAIN.md +1 -1
  51. package/data/packages/platform-mailing/api/Variable.MAIL_PORT.md +1 -1
  52. package/data/packages/platform-mailing/api/Variable.MAIL_POSTMARK_API_KEY.md +1 -1
  53. package/data/packages/platform-mailing/api/Variable.MAIL_RESEND_API_KEY.md +1 -1
  54. package/data/packages/platform-mailing/api/Variable.MAIL_SENDER_EMAIL.md +1 -1
  55. package/data/packages/platform-mailing/api/Variable.MAIL_SENDGRID_API_KEY.md +1 -1
  56. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_HOST.md +1 -1
  57. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_PASSWORD.md +1 -1
  58. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_PORT.md +1 -1
  59. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_SECURE.md +1 -1
  60. package/data/packages/platform-mailing/api/Variable.MAIL_SMTP_USER.md +1 -1
  61. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_ENGINE_FORMAT.md +1 -1
  62. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_NAMES_TOKEN.md +12 -0
  63. package/data/packages/platform-mailing/api/Variable.MAIL_USER.md +1 -1
  64. package/data/packages/platform-mailing/api/Variable.PLATFORM_MAILING_CONFIG_ENTRIES.md +1 -1
  65. package/data/packages/platform-mailing/api/index.md +1 -2
  66. package/package.json +1 -1
  67. package/data/packages/platform-mailing/api/Variable.MAIL_DELIVERY_STRATEGY.md +0 -14
  68. package/data/packages/platform-mailing/api/Variable.MAIL_TEMPLATE_STRATEGY.md +0 -14
@@ -22,32 +22,51 @@ yarn add @breadstone/archipel-platform-mailing
22
22
 
23
23
  `platform-mailing` supports multiple email providers via **subpath exports**. Each delivery strategy is a separate entry point — only the provider you import is bundled (tree-shakeable).
24
24
 
25
- | Strategy | Subpath Import | Value for `MAIL_DELIVERY_STRATEGY` | When to use |
26
- | ------------ | ----------------------------------------------------------- | ---------------------------------- | ------------------------------------ |
27
- | **SMTP** | `@breadstone/archipel-platform-mailing/delivering/smtp` | `smtp` | Any SMTP server (self-hosted, relay) |
28
- | **Postmark** | `@breadstone/archipel-platform-mailing/delivering/postmark` | `postmark` | Postmark transactional email |
29
- | **Resend** | `@breadstone/archipel-platform-mailing/delivering/resend` | `resend` | Resend API |
30
- | **SendGrid** | `@breadstone/archipel-platform-mailing/delivering/sendgrid` | `sendgrid` | Twilio SendGrid |
31
- | **Mailgun** | `@breadstone/archipel-platform-mailing/delivering/mailgun` | `mailgun` | Mailgun API |
32
- | **Log** | `@breadstone/archipel-platform-mailing/delivering/logger` | `log` | Development only — logs to console |
25
+ | Strategy | Subpath Import | When to use |
26
+ | ------------ | ----------------------------------------------------------- | ------------------------------------ |
27
+ | **SMTP** | `@breadstone/archipel-platform-mailing/delivering/smtp` | Any SMTP server (self-hosted, relay) |
28
+ | **Postmark** | `@breadstone/archipel-platform-mailing/delivering/postmark` | Postmark transactional email |
29
+ | **Resend** | `@breadstone/archipel-platform-mailing/delivering/resend` | Resend API |
30
+ | **SendGrid** | `@breadstone/archipel-platform-mailing/delivering/sendgrid` | Twilio SendGrid |
31
+ | **Mailgun** | `@breadstone/archipel-platform-mailing/delivering/mailgun` | Mailgun API |
32
+ | **Log** | `@breadstone/archipel-platform-mailing/delivering/logger` | Development only — logs to console |
33
+
34
+ The strategy is selected at **compile time** by passing the concrete class to `MailModule.register()`. No environment variable is needed for strategy selection.
33
35
 
34
36
  ---
35
37
 
36
38
  ## Module Registration
37
39
 
38
- `MailModule` is a global module. Register it once in your root module:
40
+ `MailModule` requires explicit registration via `MailModule.register()`. You select the delivery strategy and template-fetch strategy at compile time by passing the concrete class:
39
41
 
40
42
  ```typescript
41
43
  import { Module } from '@nestjs/common';
42
44
  import { MailModule } from '@breadstone/archipel-platform-mailing';
45
+ import { ResendDeliveryStrategy } from '@breadstone/archipel-platform-mailing/delivering/resend';
46
+ import { FileTemplateFetchStrategy } from '@breadstone/archipel-platform-mailing/templating/file';
43
47
 
44
48
  @Module({
45
- imports: [MailModule],
49
+ imports: [
50
+ MailModule.register({
51
+ deliveryStrategy: ResendDeliveryStrategy,
52
+ templateFetchStrategy: FileTemplateFetchStrategy,
53
+ templateNames: ['AuthRegister', 'AuthVerify', 'AuthForgotPassword'],
54
+ }),
55
+ ],
46
56
  })
47
57
  export class AppModule {}
48
58
  ```
49
59
 
50
- The module reads all configuration from environment variables. No `register()` call is needed.
60
+ ### Options
61
+
62
+ | Option | Type | Default | Description |
63
+ | ---------------------------- | ----------------------------------- | ------------------------------- | --------------------------------------------------------------------------- |
64
+ | `deliveryStrategy` | `Type<DeliveryStrategyBase>` | *required* | Concrete delivery strategy class |
65
+ | `templateFetchStrategy` | `Type<TemplateFetchStrategyBase>` | *required* | Concrete template-fetch strategy class |
66
+ | `templateNames` | `ReadonlyArray<string>` | `[]` | Template names to load (for `FileTemplateFetchStrategy`) |
67
+ | `configEntries` | `ReadonlyArray<IConfigRegistryEntry>` | `PLATFORM_MAILING_CONFIG_ENTRIES` | Provider-specific config entries |
68
+ | `templateRepositoryProvider` | `Provider<IMailTemplateRepository>` | — | Required when using `DatabaseTemplateFetchStrategy` |
69
+ | `isGlobal` | `boolean` | `true` | Whether to register the module globally |
51
70
 
52
71
  ---
53
72
 
@@ -78,13 +97,14 @@ This ensures that importing the core package does **not** pull in provider-speci
78
97
  ### Core Variables
79
98
 
80
99
  ```env
81
- MAIL_DELIVERY_STRATEGY=resend
82
- MAIL_TEMPLATE_STRATEGY=file
83
100
  MAIL_TEMPLATE_ENGINE_FORMAT=html
84
- MAIL_FROM_ADDRESS=noreply@yourapp.com
85
- MAIL_FROM_NAME=YourApp
101
+ MAIL_SENDER_EMAIL=noreply@yourapp.com
86
102
  ```
87
103
 
104
+ ::: info Strategy Selection
105
+ The delivery strategy and template-fetch strategy are no longer configured via environment variables. They are selected at compile time by passing the class to `MailModule.register()`. The `MAIL_DELIVERY_STRATEGY` and `MAIL_TEMPLATE_STRATEGY` environment variables have been removed.
106
+ :::
107
+
88
108
  ### Provider-Specific Variables
89
109
 
90
110
  #### SMTP
@@ -126,13 +146,13 @@ MAIL_MAILGUN_DOMAIN=mg.yourapp.com
126
146
 
127
147
  Templates can be loaded from the filesystem, from blob storage, or from a database — each via a dedicated **subpath export**:
128
148
 
129
- | Strategy | Subpath Import | Value for `MAIL_TEMPLATE_STRATEGY` | Description |
130
- | ------------ | --------------------------------------------------------- | ---------------------------------- | ----------------------------------------------- |
131
- | **File** | `@breadstone/archipel-platform-mailing/templating/file` | `file` | Load templates from a local directory |
132
- | **Blob** | `@breadstone/archipel-platform-mailing/templating/blob` | `blob` | Load templates from `platform-blob-storage` |
133
- | **Database** | `@breadstone/archipel-platform-mailing/templating/database` | `database` | Load templates from a database via repository |
149
+ | Strategy | Subpath Import | Description |
150
+ | ------------ | --------------------------------------------------------- | ----------------------------------------------- |
151
+ | **File** | `@breadstone/archipel-platform-mailing/templating/file` | Load templates from a local directory |
152
+ | **Blob** | `@breadstone/archipel-platform-mailing/templating/blob` | Load templates from `platform-blob-storage` |
153
+ | **Database** | `@breadstone/archipel-platform-mailing/templating/database` | Load templates from a database via repository |
134
154
 
135
- For file-based templates, place your `.html` or `.txt` files in the configured template directory.
155
+ Select the strategy by passing the class to `MailModule.register({ templateFetchStrategy: ... })`. For file-based templates, place your `.html` or `.txt` files in the configured template directory.
136
156
 
137
157
  ---
138
158
 
@@ -292,7 +312,7 @@ Map `MailDeliveryError` to an appropriate HTTP response in your global exception
292
312
 
293
313
  ## Development Tips
294
314
 
295
- - Use `MAIL_DELIVERY_STRATEGY=log` during local development to see email content in the console without sending real emails.
315
+ - Use `LogDeliveryStrategy` during local development to see email content in the console without sending real emails.
296
316
  - Use the **blob** or **database** template strategy when templates are shared across multiple services or managed by a CMS.
297
317
  - Template variables use the format defined by the template engine. Place templates in a well-organized directory structure (e.g., `templates/mail/welcome.html`).
298
318
  - Only import the delivery/templating subpath you actually need — this keeps your bundle lean and avoids unnecessary peer dependency requirements.
@@ -166,17 +166,17 @@ import { FileTemplateFetchStrategy } from '@breadstone/archipel-platform-mailing
166
166
  }),
167
167
  ],
168
168
  }),
169
- MailModule,
169
+ MailModule.register({
170
+ deliveryStrategy: ResendDeliveryStrategy,
171
+ templateFetchStrategy: FileTemplateFetchStrategy,
172
+ templateNames: ['AuthRegister', 'AuthVerify', 'AuthForgotPassword', 'AppointmentInvitation', 'AppointmentUpdate'],
173
+ }),
170
174
  ],
171
175
  })
172
176
  export class AppModule {}
173
177
  ```
174
178
 
175
- Set the environment variable to use the file strategy:
176
-
177
- ```env
178
- MAIL_TEMPLATE_STRATEGY=file
179
- ```
179
+ The template names are passed directly to `MailModule.register()` via the `templateNames` option. `FileTemplateFetchStrategy` uses these names to load the corresponding `.html` and `.txt` files from `ResourceManager`.
180
180
 
181
181
  ### Blob-Based Templates
182
182
 
@@ -197,13 +197,17 @@ import { BlobTemplateFetchStrategy } from '@breadstone/archipel-platform-mailing
197
197
  ]
198
198
  ```
199
199
 
200
- Set the environment variable:
200
+ The `BlobTemplateFetchStrategy` downloads the manifest, then fetches each listed file from blob storage via `BlobService` from `platform-blob-storage`. Select this strategy by passing it to `MailModule.register()`:
201
201
 
202
- ```env
203
- MAIL_TEMPLATE_STRATEGY=blob
204
- ```
202
+ ```typescript
203
+ import { MailModule } from '@breadstone/archipel-platform-mailing';
204
+ import { BlobTemplateFetchStrategy } from '@breadstone/archipel-platform-mailing/templating/blob';
205
205
 
206
- The `BlobTemplateFetchStrategy` downloads the manifest, then fetches each listed file from blob storage via `BlobService` from `platform-blob-storage`.
206
+ MailModule.register({
207
+ deliveryStrategy: ResendDeliveryStrategy,
208
+ templateFetchStrategy: BlobTemplateFetchStrategy,
209
+ })
210
+ ```
207
211
 
208
212
  ### Database-Based Templates
209
213
 
@@ -216,13 +220,18 @@ import { DatabaseTemplateFetchStrategy } from '@breadstone/archipel-platform-mai
216
220
  This strategy loads templates through the `IMailTemplateRepository` port. You must provide an adapter implementation that fetches template records from your database:
217
221
 
218
222
  ```typescript
219
- import { IMailTemplateRepository } from '@breadstone/archipel-platform-mailing';
220
- ```
221
-
222
- Set the environment variable:
223
+ import { DatabaseTemplateFetchStrategy } from '@breadstone/archipel-platform-mailing/templating/database';
224
+ import { IMailTemplateRepository, MAIL_TEMPLATE_REPOSITORY_TOKEN } from '@breadstone/archipel-platform-mailing';
225
+ import { MailModule } from '@breadstone/archipel-platform-mailing';
223
226
 
224
- ```env
225
- MAIL_TEMPLATE_STRATEGY=database
227
+ MailModule.register({
228
+ deliveryStrategy: SmtpDeliveryStrategy,
229
+ templateFetchStrategy: DatabaseTemplateFetchStrategy,
230
+ templateRepositoryProvider: {
231
+ provide: MAIL_TEMPLATE_REPOSITORY_TOKEN,
232
+ useClass: PrismaMailTemplateRepository,
233
+ },
234
+ })
226
235
  ```
227
236
 
228
237
  ---
@@ -315,7 +324,7 @@ To diagnose, enable `debug: true` in `ResourceModule.forRoot()`. This logs every
315
324
  - AuthVerify.txt (text/plain, 320 B) → /app/dist/assets/AuthVerify.txt
316
325
  ```
317
326
 
318
- Also check that `MAIL_TEMPLATE_STRATEGY` is set correctly (`file` or `blob`).
327
+ Also check that your `MailModule.register()` call passes the correct `templateFetchStrategy` class (`FileTemplateFetchStrategy`, `BlobTemplateFetchStrategy`, or `DatabaseTemplateFetchStrategy`).
319
328
 
320
329
  ---
321
330
 
@@ -323,7 +332,8 @@ Also check that `MAIL_TEMPLATE_STRATEGY` is set correctly (`file` or `blob`).
323
332
 
324
333
  - [ ] Template files created for all required template names (`.html` and/or `.txt`)
325
334
  - [ ] `ResourceModule.forRoot()` registered with base paths including your template directory (for `file` strategy)
326
- - [ ] `MAIL_TEMPLATE_STRATEGY` set to `file`, `blob`, or `database`
335
+ - [ ] `MailModule.register()` called with the correct `templateFetchStrategy` class
336
+ - [ ] `templateNames` passed to `MailModule.register()` (for `FileTemplateFetchStrategy`)
327
337
  - [ ] `MAIL_TEMPLATE_ENGINE_FORMAT` set to `html` or `txt`
328
338
  - [ ] Placeholders in templates match the keys passed in `templateParams`
329
339
  - [ ] App-level overrides listed **before** library asset paths in `basePaths`
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Class: AzureFeatureFlagReader
7
7
 
8
- Defined in: azure/AzureFeatureFlagReader.ts:36
8
+ Defined in: [azure/AzureFeatureFlagReader.ts:36](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagReader.ts#L36)
9
9
 
10
10
  Azure App Configuration implementation of the [FeatureFlagReaderPort](Class.FeatureFlagReaderPort).
11
11
  Uses `@azure/app-configuration-provider` for connecting to Azure App Configuration
@@ -28,7 +28,7 @@ and `@microsoft/feature-management` for evaluating feature flags.
28
28
  new AzureFeatureFlagReader(configService): AzureFeatureFlagReader;
29
29
  ```
30
30
 
31
- Defined in: azure/AzureFeatureFlagReader.ts:49
31
+ Defined in: [azure/AzureFeatureFlagReader.ts:49](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagReader.ts#L49)
32
32
 
33
33
  #### Parameters
34
34
 
@@ -52,7 +52,7 @@ Defined in: azure/AzureFeatureFlagReader.ts:49
52
52
  getAllFlags(_context?): Promise<readonly IFeatureFlagEvaluation[]>;
53
53
  ```
54
54
 
55
- Defined in: azure/AzureFeatureFlagReader.ts:167
55
+ Defined in: [azure/AzureFeatureFlagReader.ts:167](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagReader.ts#L167)
56
56
 
57
57
  Returns all known feature flags with their current evaluation.
58
58
 
@@ -83,7 +83,7 @@ getVariant<T>(
83
83
  _context?): Promise<T>;
84
84
  ```
85
85
 
86
- Defined in: azure/AzureFeatureFlagReader.ts:146
86
+ Defined in: [azure/AzureFeatureFlagReader.ts:146](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagReader.ts#L146)
87
87
 
88
88
  Returns the variant value of a feature flag for multivariate flags and A/B testing.
89
89
 
@@ -119,7 +119,7 @@ The variant value of the feature flag.
119
119
  isEnabled(key, _context?): Promise<boolean>;
120
120
  ```
121
121
 
122
- Defined in: azure/AzureFeatureFlagReader.ts:131
122
+ Defined in: [azure/AzureFeatureFlagReader.ts:131](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagReader.ts#L131)
123
123
 
124
124
  Evaluates whether a feature flag is enabled.
125
125
 
@@ -148,7 +148,7 @@ Evaluates whether a feature flag is enabled.
148
148
  onModuleDestroy(): void;
149
149
  ```
150
150
 
151
- Defined in: azure/AzureFeatureFlagReader.ts:123
151
+ Defined in: [azure/AzureFeatureFlagReader.ts:123](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagReader.ts#L123)
152
152
 
153
153
  Cleans up the refresh interval on module destruction.
154
154
 
@@ -170,7 +170,7 @@ OnModuleDestroy.onModuleDestroy
170
170
  onModuleInit(): Promise<void>;
171
171
  ```
172
172
 
173
- Defined in: azure/AzureFeatureFlagReader.ts:63
173
+ Defined in: [azure/AzureFeatureFlagReader.ts:63](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagReader.ts#L63)
174
174
 
175
175
  Initializes the Azure App Configuration connection and feature manager.
176
176
 
@@ -192,7 +192,7 @@ OnModuleInit.onModuleInit
192
192
  ping(): Promise<boolean>;
193
193
  ```
194
194
 
195
- Defined in: azure/AzureFeatureFlagReader.ts:207
195
+ Defined in: [azure/AzureFeatureFlagReader.ts:207](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagReader.ts#L207)
196
196
 
197
197
  Lightweight connectivity check for the feature flag provider.
198
198
  Override in adapters to perform a real API call.
@@ -216,7 +216,7 @@ Defaults to `true` if not overridden.
216
216
  refresh(): Promise<void>;
217
217
  ```
218
218
 
219
- Defined in: azure/AzureFeatureFlagReader.ts:193
219
+ Defined in: [azure/AzureFeatureFlagReader.ts:193](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagReader.ts#L193)
220
220
 
221
221
  Refreshes the flag state from the remote provider.
222
222
  Implementations should reload configuration from the upstream source.
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Class: AzureFeatureFlagWriter
7
7
 
8
- Defined in: azure/AzureFeatureFlagWriter.ts:28
8
+ Defined in: [azure/AzureFeatureFlagWriter.ts:28](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagWriter.ts#L28)
9
9
 
10
10
  Azure App Configuration implementation of the [FeatureFlagWriterPort](Class.FeatureFlagWriterPort).
11
11
  Uses `@azure/app-configuration` (`AppConfigurationClient`) for CRUD operations
@@ -27,7 +27,7 @@ on feature flags stored in Azure App Configuration.
27
27
  new AzureFeatureFlagWriter(configService): AzureFeatureFlagWriter;
28
28
  ```
29
29
 
30
- Defined in: azure/AzureFeatureFlagWriter.ts:39
30
+ Defined in: [azure/AzureFeatureFlagWriter.ts:39](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagWriter.ts#L39)
31
31
 
32
32
  #### Parameters
33
33
 
@@ -51,7 +51,7 @@ Defined in: azure/AzureFeatureFlagWriter.ts:39
51
51
  createFlag(definition): Promise<void>;
52
52
  ```
53
53
 
54
- Defined in: azure/AzureFeatureFlagWriter.ts:150
54
+ Defined in: [azure/AzureFeatureFlagWriter.ts:150](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagWriter.ts#L150)
55
55
 
56
56
  Creates a new feature flag.
57
57
 
@@ -81,7 +81,7 @@ If the flag already exists or creation fails.
81
81
  deleteFlag(key): Promise<void>;
82
82
  ```
83
83
 
84
- Defined in: azure/AzureFeatureFlagWriter.ts:218
84
+ Defined in: [azure/AzureFeatureFlagWriter.ts:218](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagWriter.ts#L218)
85
85
 
86
86
  Deletes a feature flag.
87
87
 
@@ -113,7 +113,7 @@ getFlag(key): Promise<
113
113
  | undefined>;
114
114
  ```
115
115
 
116
- Defined in: azure/AzureFeatureFlagWriter.ts:81
116
+ Defined in: [azure/AzureFeatureFlagWriter.ts:81](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagWriter.ts#L81)
117
117
 
118
118
  Returns a single feature flag definition by key.
119
119
 
@@ -143,7 +143,7 @@ The flag definition, or `undefined` if not found.
143
143
  listFlags(): Promise<readonly IFeatureFlagDefinition[]>;
144
144
  ```
145
145
 
146
- Defined in: azure/AzureFeatureFlagWriter.ts:115
146
+ Defined in: [azure/AzureFeatureFlagWriter.ts:115](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagWriter.ts#L115)
147
147
 
148
148
  Returns all feature flag definitions managed by the provider.
149
149
 
@@ -165,7 +165,7 @@ Array of flag definitions.
165
165
  onModuleInit(): Promise<void>;
166
166
  ```
167
167
 
168
- Defined in: azure/AzureFeatureFlagWriter.ts:53
168
+ Defined in: [azure/AzureFeatureFlagWriter.ts:53](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagWriter.ts#L53)
169
169
 
170
170
  Initializes the Azure App Configuration management client.
171
171
 
@@ -187,7 +187,7 @@ OnModuleInit.onModuleInit
187
187
  ping(): Promise<boolean>;
188
188
  ```
189
189
 
190
- Defined in: azure/AzureFeatureFlagWriter.ts:237
190
+ Defined in: [azure/AzureFeatureFlagWriter.ts:237](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagWriter.ts#L237)
191
191
 
192
192
  Lightweight connectivity check for the writer provider.
193
193
  Defaults to `true` if not overridden.
@@ -210,7 +210,7 @@ Defaults to `true` if not overridden.
210
210
  updateFlag(key, updates): Promise<void>;
211
211
  ```
212
212
 
213
- Defined in: azure/AzureFeatureFlagWriter.ts:177
213
+ Defined in: [azure/AzureFeatureFlagWriter.ts:177](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/azure/AzureFeatureFlagWriter.ts#L177)
214
214
 
215
215
  Updates an existing feature flag.
216
216
  Only the fields present in the partial definition are updated.
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Class: FeatureFlagError
7
7
 
8
- Defined in: errors/FeatureFlagError.ts:6
8
+ Defined in: [errors/FeatureFlagError.ts:6](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/errors/FeatureFlagError.ts#L6)
9
9
 
10
10
  Domain error thrown when a feature flag operation fails.
11
11
 
@@ -24,7 +24,7 @@ new FeatureFlagError(
24
24
  cause?): FeatureFlagError;
25
25
  ```
26
26
 
27
- Defined in: errors/FeatureFlagError.ts:16
27
+ Defined in: [errors/FeatureFlagError.ts:16](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/errors/FeatureFlagError.ts#L16)
28
28
 
29
29
  #### Parameters
30
30
 
@@ -52,7 +52,7 @@ Error.constructor
52
52
  readonly code: "FEATURE_FLAG" = 'FEATURE_FLAG';
53
53
  ```
54
54
 
55
- Defined in: errors/FeatureFlagError.ts:9
55
+ Defined in: [errors/FeatureFlagError.ts:9](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/errors/FeatureFlagError.ts#L9)
56
56
 
57
57
  ***
58
58
 
@@ -62,4 +62,4 @@ Defined in: errors/FeatureFlagError.ts:9
62
62
  readonly provider: string;
63
63
  ```
64
64
 
65
- Defined in: errors/FeatureFlagError.ts:10
65
+ Defined in: [errors/FeatureFlagError.ts:10](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/errors/FeatureFlagError.ts#L10)
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Class: FeatureFlagGuard
7
7
 
8
- Defined in: guards/FeatureFlagGuard.ts:17
8
+ Defined in: [guards/FeatureFlagGuard.ts:17](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/guards/FeatureFlagGuard.ts#L17)
9
9
 
10
10
  Guard that checks if a feature flag is enabled before allowing access to a route.
11
11
  Use the [FeatureFlag](Function.FeatureFlag) decorator to specify which flag to check.
@@ -22,7 +22,7 @@ Use the [FeatureFlag](Function.FeatureFlag) decorator to specify which flag to c
22
22
  new FeatureFlagGuard(featureFlagReader, reflector): FeatureFlagGuard;
23
23
  ```
24
24
 
25
- Defined in: guards/FeatureFlagGuard.ts:35
25
+ Defined in: [guards/FeatureFlagGuard.ts:35](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/guards/FeatureFlagGuard.ts#L35)
26
26
 
27
27
  Constructs a new instance of the `FeatureFlagGuard` class.
28
28
 
@@ -45,7 +45,7 @@ Constructs a new instance of the `FeatureFlagGuard` class.
45
45
  canActivate(context): Promise<boolean>;
46
46
  ```
47
47
 
48
- Defined in: guards/FeatureFlagGuard.ts:51
48
+ Defined in: [guards/FeatureFlagGuard.ts:51](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/guards/FeatureFlagGuard.ts#L51)
49
49
 
50
50
  Determines whether the guarded feature flag is enabled.
51
51
 
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Class: FeatureFlagModule
7
7
 
8
- Defined in: FeatureFlagModule.ts:21
8
+ Defined in: [FeatureFlagModule.ts:21](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/FeatureFlagModule.ts#L21)
9
9
 
10
10
  NestJS module providing feature flag infrastructure.
11
11
  Exposes a configurable feature flag reader and a route guard.
@@ -32,7 +32,7 @@ new FeatureFlagModule(): FeatureFlagModule;
32
32
  static register(options): DynamicModule;
33
33
  ```
34
34
 
35
- Defined in: FeatureFlagModule.ts:31
35
+ Defined in: [FeatureFlagModule.ts:31](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/FeatureFlagModule.ts#L31)
36
36
 
37
37
  Configures the module with the specified options.
38
38
 
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Abstract Class: FeatureFlagReaderPort
7
7
 
8
- Defined in: contracts/FeatureFlagReaderPort.ts:15
8
+ Defined in: [contracts/FeatureFlagReaderPort.ts:15](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagReaderPort.ts#L15)
9
9
 
10
10
  Abstract port for feature flag reader operations.
11
11
  Each provider (Azure App Configuration, Vercel Edge Config) must implement this contract
@@ -36,7 +36,7 @@ new FeatureFlagReaderPort(): FeatureFlagReaderPort;
36
36
  abstract getAllFlags(context?): Promise<readonly IFeatureFlagEvaluation[]>;
37
37
  ```
38
38
 
39
- Defined in: contracts/FeatureFlagReaderPort.ts:46
39
+ Defined in: [contracts/FeatureFlagReaderPort.ts:46](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagReaderPort.ts#L46)
40
40
 
41
41
  Returns all known feature flags with their current evaluation.
42
42
 
@@ -63,7 +63,7 @@ abstract getVariant<T>(
63
63
  context?): Promise<T>;
64
64
  ```
65
65
 
66
- Defined in: contracts/FeatureFlagReaderPort.ts:37
66
+ Defined in: [contracts/FeatureFlagReaderPort.ts:37](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagReaderPort.ts#L37)
67
67
 
68
68
  Returns the variant value of a feature flag for multivariate flags and A/B testing.
69
69
 
@@ -95,7 +95,7 @@ The variant value of the feature flag.
95
95
  abstract isEnabled(key, context?): Promise<boolean>;
96
96
  ```
97
97
 
98
- Defined in: contracts/FeatureFlagReaderPort.ts:26
98
+ Defined in: [contracts/FeatureFlagReaderPort.ts:26](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagReaderPort.ts#L26)
99
99
 
100
100
  Evaluates whether a feature flag is enabled.
101
101
 
@@ -120,7 +120,7 @@ Evaluates whether a feature flag is enabled.
120
120
  ping(): Promise<boolean>;
121
121
  ```
122
122
 
123
- Defined in: contracts/FeatureFlagReaderPort.ts:64
123
+ Defined in: [contracts/FeatureFlagReaderPort.ts:64](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagReaderPort.ts#L64)
124
124
 
125
125
  Lightweight connectivity check for the feature flag provider.
126
126
  Override in adapters to perform a real API call.
@@ -140,7 +140,7 @@ Defaults to `true` if not overridden.
140
140
  abstract refresh(): Promise<void>;
141
141
  ```
142
142
 
143
- Defined in: contracts/FeatureFlagReaderPort.ts:54
143
+ Defined in: [contracts/FeatureFlagReaderPort.ts:54](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagReaderPort.ts#L54)
144
144
 
145
145
  Refreshes the flag state from the remote provider.
146
146
  Implementations should reload configuration from the upstream source.
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Abstract Class: FeatureFlagWriterPort
7
7
 
8
- Defined in: contracts/FeatureFlagWriterPort.ts:19
8
+ Defined in: [contracts/FeatureFlagWriterPort.ts:19](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagWriterPort.ts#L19)
9
9
 
10
10
  Abstract port for feature flag writer operations (CRUD).
11
11
  Each provider (Azure App Configuration, Vercel Edge Config) must implement this contract
@@ -42,7 +42,7 @@ new FeatureFlagWriterPort(): FeatureFlagWriterPort;
42
42
  abstract createFlag(definition): Promise<void>;
43
43
  ```
44
44
 
45
- Defined in: contracts/FeatureFlagWriterPort.ts:46
45
+ Defined in: [contracts/FeatureFlagWriterPort.ts:46](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagWriterPort.ts#L46)
46
46
 
47
47
  Creates a new feature flag.
48
48
 
@@ -68,7 +68,7 @@ If the flag already exists or creation fails.
68
68
  abstract deleteFlag(key): Promise<void>;
69
69
  ```
70
70
 
71
- Defined in: contracts/FeatureFlagWriterPort.ts:66
71
+ Defined in: [contracts/FeatureFlagWriterPort.ts:66](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagWriterPort.ts#L66)
72
72
 
73
73
  Deletes a feature flag.
74
74
 
@@ -96,7 +96,7 @@ abstract getFlag(key): Promise<
96
96
  | undefined>;
97
97
  ```
98
98
 
99
- Defined in: contracts/FeatureFlagWriterPort.ts:29
99
+ Defined in: [contracts/FeatureFlagWriterPort.ts:29](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagWriterPort.ts#L29)
100
100
 
101
101
  Returns a single feature flag definition by key.
102
102
 
@@ -122,7 +122,7 @@ The flag definition, or `undefined` if not found.
122
122
  abstract listFlags(): Promise<readonly IFeatureFlagDefinition[]>;
123
123
  ```
124
124
 
125
- Defined in: contracts/FeatureFlagWriterPort.ts:37
125
+ Defined in: [contracts/FeatureFlagWriterPort.ts:37](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagWriterPort.ts#L37)
126
126
 
127
127
  Returns all feature flag definitions managed by the provider.
128
128
 
@@ -140,7 +140,7 @@ Array of flag definitions.
140
140
  ping(): Promise<boolean>;
141
141
  ```
142
142
 
143
- Defined in: contracts/FeatureFlagWriterPort.ts:75
143
+ Defined in: [contracts/FeatureFlagWriterPort.ts:75](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagWriterPort.ts#L75)
144
144
 
145
145
  Lightweight connectivity check for the writer provider.
146
146
  Defaults to `true` if not overridden.
@@ -159,7 +159,7 @@ Defaults to `true` if not overridden.
159
159
  abstract updateFlag(key, updates): Promise<void>;
160
160
  ```
161
161
 
162
- Defined in: contracts/FeatureFlagWriterPort.ts:57
162
+ Defined in: [contracts/FeatureFlagWriterPort.ts:57](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/contracts/FeatureFlagWriterPort.ts#L57)
163
163
 
164
164
  Updates an existing feature flag.
165
165
  Only the fields present in the partial definition are updated.
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Class: VercelFeatureFlagReader
7
7
 
8
- Defined in: vercel/VercelFeatureFlagReader.ts:41
8
+ Defined in: [vercel/VercelFeatureFlagReader.ts:41](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/vercel/VercelFeatureFlagReader.ts#L41)
9
9
 
10
10
  Vercel Edge Config implementation of the [FeatureFlagReaderPort](Class.FeatureFlagReaderPort).
11
11
  Uses `@vercel/edge-config` for reading feature flag state from a Vercel Edge Config store.
@@ -43,7 +43,7 @@ Edge Config structure:
43
43
  new VercelFeatureFlagReader(configService): VercelFeatureFlagReader;
44
44
  ```
45
45
 
46
- Defined in: vercel/VercelFeatureFlagReader.ts:53
46
+ Defined in: [vercel/VercelFeatureFlagReader.ts:53](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/vercel/VercelFeatureFlagReader.ts#L53)
47
47
 
48
48
  #### Parameters
49
49
 
@@ -67,7 +67,7 @@ Defined in: vercel/VercelFeatureFlagReader.ts:53
67
67
  getAllFlags(_context?): Promise<readonly IFeatureFlagEvaluation[]>;
68
68
  ```
69
69
 
70
- Defined in: vercel/VercelFeatureFlagReader.ts:130
70
+ Defined in: [vercel/VercelFeatureFlagReader.ts:130](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/vercel/VercelFeatureFlagReader.ts#L130)
71
71
 
72
72
  Returns all known feature flags with their current evaluation.
73
73
 
@@ -98,7 +98,7 @@ getVariant<T>(
98
98
  _context?): Promise<T>;
99
99
  ```
100
100
 
101
- Defined in: vercel/VercelFeatureFlagReader.ts:109
101
+ Defined in: [vercel/VercelFeatureFlagReader.ts:109](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/vercel/VercelFeatureFlagReader.ts#L109)
102
102
 
103
103
  Returns the variant value of a feature flag for multivariate flags and A/B testing.
104
104
 
@@ -134,7 +134,7 @@ The variant value of the feature flag.
134
134
  isEnabled(key, _context?): Promise<boolean>;
135
135
  ```
136
136
 
137
- Defined in: vercel/VercelFeatureFlagReader.ts:88
137
+ Defined in: [vercel/VercelFeatureFlagReader.ts:88](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/vercel/VercelFeatureFlagReader.ts#L88)
138
138
 
139
139
  Evaluates whether a feature flag is enabled.
140
140
 
@@ -163,7 +163,7 @@ Evaluates whether a feature flag is enabled.
163
163
  onModuleInit(): Promise<void>;
164
164
  ```
165
165
 
166
- Defined in: vercel/VercelFeatureFlagReader.ts:67
166
+ Defined in: [vercel/VercelFeatureFlagReader.ts:67](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/vercel/VercelFeatureFlagReader.ts#L67)
167
167
 
168
168
  Initializes the Vercel Edge Config client.
169
169
 
@@ -185,7 +185,7 @@ OnModuleInit.onModuleInit
185
185
  ping(): Promise<boolean>;
186
186
  ```
187
187
 
188
- Defined in: vercel/VercelFeatureFlagReader.ts:160
188
+ Defined in: [vercel/VercelFeatureFlagReader.ts:160](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/vercel/VercelFeatureFlagReader.ts#L160)
189
189
 
190
190
  Lightweight connectivity check for the feature flag provider.
191
191
  Override in adapters to perform a real API call.
@@ -209,7 +209,7 @@ Defaults to `true` if not overridden.
209
209
  refresh(): Promise<void>;
210
210
  ```
211
211
 
212
- Defined in: vercel/VercelFeatureFlagReader.ts:154
212
+ Defined in: [vercel/VercelFeatureFlagReader.ts:154](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-feature-flags/src/vercel/VercelFeatureFlagReader.ts#L154)
213
213
 
214
214
  Refreshes the flag state from the remote provider.
215
215
  Implementations should reload configuration from the upstream source.