@breadstone/archipel-mcp 0.0.40 → 0.0.42

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 (131) hide show
  1. package/data/guides/blob-storage.md +20 -16
  2. package/data/guides/implementing-ports.md +2 -0
  3. package/data/guides/payments-and-feature-gating.md +76 -45
  4. package/data/packages/platform-blob-storage/api/Class.AwsS3BlobStorageStrategy.md +197 -0
  5. package/data/packages/platform-blob-storage/api/Class.AzureBlobStorageStrategy.md +197 -0
  6. package/data/packages/platform-blob-storage/api/Class.BlobModule.md +20 -10
  7. package/data/packages/platform-blob-storage/api/Class.BlobService.md +8 -8
  8. package/data/packages/platform-blob-storage/api/Class.BlobStorageStrategyBase.md +158 -0
  9. package/data/packages/platform-blob-storage/api/Class.LocalBlobStorageStrategy.md +197 -0
  10. package/data/packages/platform-blob-storage/api/Class.VercelBlobStorageStrategy.md +198 -0
  11. package/data/packages/platform-blob-storage/api/Interface.IBlobDeleteRequest.md +4 -4
  12. package/data/packages/platform-blob-storage/api/Interface.IBlobDownloadRequest.md +5 -5
  13. package/data/packages/platform-blob-storage/api/Interface.IBlobDownloadResult.md +6 -6
  14. package/data/packages/platform-blob-storage/api/Interface.IBlobModuleOptions.md +20 -10
  15. package/data/packages/platform-blob-storage/api/Interface.IBlobObjectMetadata.md +14 -14
  16. package/data/packages/platform-blob-storage/api/Interface.IBlobSignedUrlRequest.md +5 -5
  17. package/data/packages/platform-blob-storage/api/Interface.IBlobUploadRequest.md +10 -10
  18. package/data/packages/platform-blob-storage/api/Interface.IBlobUploadResult.md +3 -3
  19. package/data/packages/platform-blob-storage/api/TypeAlias.BlobDownloadResponseType.md +1 -1
  20. package/data/packages/platform-blob-storage/api/TypeAlias.BlobUploadBody.md +1 -1
  21. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_ACCESS_KEY_ID.md +14 -0
  22. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_BUCKET.md +14 -0
  23. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_CONFIG_ENTRIES.md +14 -0
  24. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_ENDPOINT.md +14 -0
  25. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_REGION.md +14 -0
  26. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_SECRET_ACCESS_KEY.md +14 -0
  27. package/data/packages/platform-blob-storage/api/Variable.AZURE_BLOB_CONNECTION_STRING.md +14 -0
  28. package/data/packages/platform-blob-storage/api/Variable.AZURE_BLOB_CONTAINER_NAME.md +14 -0
  29. package/data/packages/platform-blob-storage/api/Variable.AZURE_CONFIG_ENTRIES.md +14 -0
  30. package/data/packages/platform-blob-storage/api/{Variable.BLOB_PROVIDER.md → Variable.BLOB_STORAGE_STRATEGY_TOKEN.md} +3 -3
  31. package/data/packages/platform-blob-storage/api/Variable.BlobDownloadResponseTypes.md +5 -5
  32. package/data/packages/platform-blob-storage/api/Variable.LOCAL_BLOB_BASE_PATH.md +14 -0
  33. package/data/packages/platform-blob-storage/api/Variable.LOCAL_BLOB_BUCKET.md +14 -0
  34. package/data/packages/platform-blob-storage/api/Variable.LOCAL_CONFIG_ENTRIES.md +14 -0
  35. package/data/packages/platform-blob-storage/api/Variable.PLATFORM_BLOB_STORAGE_CONFIG_ENTRIES.md +14 -0
  36. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_BUCKET.md +14 -0
  37. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_PUBLIC_URL.md +14 -0
  38. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_READ_WRITE_TOKEN.md +14 -0
  39. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_REGION.md +14 -0
  40. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_URL.md +14 -0
  41. package/data/packages/platform-blob-storage/api/Variable.VERCEL_CONFIG_ENTRIES.md +14 -0
  42. package/data/packages/platform-blob-storage/api/index.md +26 -18
  43. package/data/packages/platform-blob-storage/index.md +104 -68
  44. package/data/packages/platform-bootstrap/api/index.md +0 -2
  45. package/data/packages/platform-core/api/Class.ProblemDetailResponse.md +8 -8
  46. package/data/packages/platform-database/api/Class.DatabaseHealthIndicator.md +4 -4
  47. package/data/packages/platform-database/api/Class.DatabaseModule.md +3 -3
  48. package/data/packages/platform-database/api/Class.DatabaseService.md +12 -11
  49. package/data/packages/platform-database/api/Class.PrismaService.md +6 -5
  50. package/data/packages/platform-database/api/Class.RepositoryBase.md +23 -23
  51. package/data/packages/platform-database/api/Class.RepositoryBase2.md +7 -7
  52. package/data/packages/platform-database/api/Class.RepositoryExceptionFilter.md +2 -2
  53. package/data/packages/platform-database/api/Function.aggregate.md +1 -1
  54. package/data/packages/platform-database/api/Function.aggregateRaw.md +1 -1
  55. package/data/packages/platform-database/api/Function.count.md +1 -1
  56. package/data/packages/platform-database/api/Function.create.md +1 -1
  57. package/data/packages/platform-database/api/Function.createMany.md +1 -1
  58. package/data/packages/platform-database/api/Function.createManyAndReturn.md +1 -1
  59. package/data/packages/platform-database/api/Function.cursorPaginator.md +1 -1
  60. package/data/packages/platform-database/api/Function.findFirst.md +1 -1
  61. package/data/packages/platform-database/api/Function.findFirstOrThrow.md +1 -1
  62. package/data/packages/platform-database/api/Function.findMany.md +1 -1
  63. package/data/packages/platform-database/api/Function.findManyPaged.md +1 -1
  64. package/data/packages/platform-database/api/Function.findRaw.md +1 -1
  65. package/data/packages/platform-database/api/Function.findUnique.md +1 -1
  66. package/data/packages/platform-database/api/Function.findUniqueOrThrow.md +1 -1
  67. package/data/packages/platform-database/api/Function.groupBy.md +1 -1
  68. package/data/packages/platform-database/api/Function.pageable.md +1 -1
  69. package/data/packages/platform-database/api/Function.paginator.md +1 -1
  70. package/data/packages/platform-database/api/Function.pipe.md +1 -1
  71. package/data/packages/platform-database/api/Function.pipeAll.md +1 -1
  72. package/data/packages/platform-database/api/Function.query.md +1 -1
  73. package/data/packages/platform-database/api/Function.query2.md +1 -1
  74. package/data/packages/platform-database/api/Function.remove.md +1 -1
  75. package/data/packages/platform-database/api/Function.removeMany.md +1 -1
  76. package/data/packages/platform-database/api/Function.skip.md +1 -1
  77. package/data/packages/platform-database/api/Function.transactionalQuery.md +1 -1
  78. package/data/packages/platform-database/api/Function.update.md +1 -1
  79. package/data/packages/platform-database/api/Function.updateMany.md +1 -1
  80. package/data/packages/platform-database/api/Function.updateManyAndReturn.md +1 -1
  81. package/data/packages/platform-database/api/Function.upsert.md +1 -1
  82. package/data/packages/platform-database/api/Interface.ICursorPaginateOptions.md +4 -4
  83. package/data/packages/platform-database/api/Interface.ICursorPaginatedResult.md +3 -3
  84. package/data/packages/platform-database/api/Interface.IDatabaseModuleConfig.md +3 -3
  85. package/data/packages/platform-database/api/Interface.IPaginateOptions.md +3 -3
  86. package/data/packages/platform-database/api/Interface.IPaginatedResult.md +3 -3
  87. package/data/packages/platform-database/api/Interface.IPrismaServiceOptions.md +2 -2
  88. package/data/packages/platform-database/api/Interface.IRepositoryQuery.md +3 -3
  89. package/data/packages/platform-database/api/Interface.IRepositoryQuery2.md +3 -3
  90. package/data/packages/platform-database/api/Interface.ITransactionalRepositoryQuery.md +4 -4
  91. package/data/packages/platform-database/api/TypeAlias.CursorPaginateFunction.md +1 -1
  92. package/data/packages/platform-database/api/TypeAlias.DelegateArgs.md +1 -1
  93. package/data/packages/platform-database/api/TypeAlias.DelegateOperations.md +1 -1
  94. package/data/packages/platform-database/api/TypeAlias.DelegateReturnTypes.md +1 -1
  95. package/data/packages/platform-database/api/TypeAlias.PaginateFunction.md +1 -1
  96. package/data/packages/platform-database/api/TypeAlias.QueryResultType.md +1 -1
  97. package/data/packages/platform-database/api/TypeAlias.RepositoryOperationsAll.md +1 -1
  98. package/data/packages/platform-database/api/TypeAlias.RepositoryOperationsBase.md +1 -1
  99. package/data/packages/platform-database/api/TypeAlias.TransactionalQueryResultType.md +1 -1
  100. package/data/packages/platform-database/api/Variable.DATABASE_MODULE_CONFIG.md +1 -1
  101. package/data/packages/platform-database/api/Variable.DB_AUTO_CONNECTION.md +1 -1
  102. package/data/packages/platform-database/api/Variable.PLATFORM_DATABASE_CONFIG_ENTRIES.md +1 -1
  103. package/data/packages/platform-payments/api/Class.FeatureAccessPort.md +13 -5
  104. package/data/packages/platform-payments/api/Class.FeatureGuard.md +3 -3
  105. package/data/packages/platform-payments/api/Class.FeatureUsageInterceptor.md +3 -3
  106. package/data/packages/platform-payments/api/Function.RequiresFeature.md +1 -1
  107. package/data/packages/platform-payments/api/Interface.IFeatureAccessContext.md +46 -0
  108. package/data/packages/platform-payments/api/Variable.FEATURE_KEY_METADATA.md +1 -1
  109. package/data/packages/platform-payments/api/index.md +1 -0
  110. package/data/packages/platform-payments/index.md +33 -12
  111. package/data/patterns/guard-pattern.md +27 -6
  112. package/data/patterns/module-pattern.md +6 -2
  113. package/package.json +1 -1
  114. package/data/packages/platform-blob-storage/api/Class.AwsS3BlobProvider.md +0 -196
  115. package/data/packages/platform-blob-storage/api/Class.AzureBlobProvider.md +0 -196
  116. package/data/packages/platform-blob-storage/api/Class.VercelBlobProvider.md +0 -197
  117. package/data/packages/platform-blob-storage/api/Interface.IAwsS3BlobProviderRegistration.md +0 -28
  118. package/data/packages/platform-blob-storage/api/Interface.IAwsS3ProviderOptions.md +0 -68
  119. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderOptions.md +0 -48
  120. package/data/packages/platform-blob-storage/api/Interface.IAzureBlobProviderRegistration.md +0 -28
  121. package/data/packages/platform-blob-storage/api/Interface.IBlobProvider.md +0 -114
  122. package/data/packages/platform-blob-storage/api/Interface.ICustomBlobProviderRegistration.md +0 -28
  123. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderOptions.md +0 -80
  124. package/data/packages/platform-blob-storage/api/Interface.IVercelBlobProviderRegistration.md +0 -28
  125. package/data/packages/platform-blob-storage/api/TypeAlias.IBlobProviderRegistration.md +0 -16
  126. package/data/packages/platform-blob-storage/api/Variable.AWS_S3_PROVIDER_OPTIONS.md +0 -12
  127. package/data/packages/platform-blob-storage/api/Variable.AZURE_BLOB_PROVIDER_OPTIONS.md +0 -12
  128. package/data/packages/platform-blob-storage/api/Variable.BlobProviderKinds.md +0 -26
  129. package/data/packages/platform-blob-storage/api/Variable.VERCEL_BLOB_PROVIDER_OPTIONS.md +0 -12
  130. package/data/packages/platform-bootstrap/api/Function.useExpressServer.md +0 -32
  131. package/data/packages/platform-bootstrap/api/Interface.IExpressServerStepOptions.md +0 -46
@@ -0,0 +1,197 @@
1
+ ---
2
+ title: 'Class: AzureBlobStorageStrategy'
3
+ generated: true
4
+ editUrl: false
5
+ ---
6
+ # Class: AzureBlobStorageStrategy
7
+
8
+ Defined in: [strategies/azure/AzureBlobStorageStrategy.ts:25](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/azure/AzureBlobStorageStrategy.ts#L25)
9
+
10
+ Provides a blob storage strategy backed by Microsoft Azure Blob Storage.
11
+
12
+ ## Extends
13
+
14
+ - [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase)
15
+
16
+ ## Constructors
17
+
18
+ ### Constructor
19
+
20
+ ```ts
21
+ new AzureBlobStorageStrategy(configService): AzureBlobStorageStrategy;
22
+ ```
23
+
24
+ Defined in: [strategies/azure/AzureBlobStorageStrategy.ts:44](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/azure/AzureBlobStorageStrategy.ts#L44)
25
+
26
+ Initializes a new instance of the AzureBlobStorageStrategy class.
27
+
28
+ #### Parameters
29
+
30
+ | Parameter | Type | Description |
31
+ | ------ | ------ | ------ |
32
+ | `configService` | `ConfigService` | The configuration service providing environment values. |
33
+
34
+ #### Returns
35
+
36
+ `AzureBlobStorageStrategy`
37
+
38
+ #### Overrides
39
+
40
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`constructor`](Class.BlobStorageStrategyBase#constructor)
41
+
42
+ ## Properties
43
+
44
+ ### providerId
45
+
46
+ ```ts
47
+ readonly providerId: string = 'azure';
48
+ ```
49
+
50
+ Defined in: [strategies/azure/AzureBlobStorageStrategy.ts:67](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/azure/AzureBlobStorageStrategy.ts#L67)
51
+
52
+ Gets the unique identifier for this storage provider.
53
+
54
+ #### Overrides
55
+
56
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`providerId`](Class.BlobStorageStrategyBase#providerid)
57
+
58
+ ## Accessors
59
+
60
+ ### defaultBucket
61
+
62
+ #### Get Signature
63
+
64
+ ```ts
65
+ get defaultBucket(): string;
66
+ ```
67
+
68
+ Defined in: [strategies/azure/AzureBlobStorageStrategy.ts:70](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/azure/AzureBlobStorageStrategy.ts#L70)
69
+
70
+ Gets the default bucket (container/directory) configured for the provider.
71
+
72
+ ##### Returns
73
+
74
+ `string`
75
+
76
+ Gets the default bucket (container/directory) configured for the provider.
77
+
78
+ #### Overrides
79
+
80
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`defaultBucket`](Class.BlobStorageStrategyBase#defaultbucket)
81
+
82
+ ## Methods
83
+
84
+ ### createSignedUrl()
85
+
86
+ ```ts
87
+ createSignedUrl(request): Promise<string>;
88
+ ```
89
+
90
+ Defined in: [strategies/azure/AzureBlobStorageStrategy.ts:154](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/azure/AzureBlobStorageStrategy.ts#L154)
91
+
92
+ Creates a signed URL for the specified blob object.
93
+ Not all providers support this operation.
94
+
95
+ #### Parameters
96
+
97
+ | Parameter | Type | Description |
98
+ | ------ | ------ | ------ |
99
+ | `request` | [`IBlobSignedUrlRequest`](Interface.IBlobSignedUrlRequest) | The request describing the object to link. |
100
+
101
+ #### Returns
102
+
103
+ `Promise`\<`string`\>
104
+
105
+ The generated signed URL.
106
+
107
+ #### Overrides
108
+
109
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`createSignedUrl`](Class.BlobStorageStrategyBase#createsignedurl)
110
+
111
+ ***
112
+
113
+ ### deleteObject()
114
+
115
+ ```ts
116
+ deleteObject(request): Promise<void>;
117
+ ```
118
+
119
+ Defined in: [strategies/azure/AzureBlobStorageStrategy.ts:141](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/azure/AzureBlobStorageStrategy.ts#L141)
120
+
121
+ Deletes a blob object from the storage backend.
122
+
123
+ #### Parameters
124
+
125
+ | Parameter | Type | Description |
126
+ | ------ | ------ | ------ |
127
+ | `request` | [`IBlobDeleteRequest`](Interface.IBlobDeleteRequest) | The delete request describing the object to remove. |
128
+
129
+ #### Returns
130
+
131
+ `Promise`\<`void`\>
132
+
133
+ #### Overrides
134
+
135
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`deleteObject`](Class.BlobStorageStrategyBase#deleteobject)
136
+
137
+ ***
138
+
139
+ ### downloadObject()
140
+
141
+ ```ts
142
+ downloadObject<TData>(request): Promise<IBlobDownloadResult<TData>>;
143
+ ```
144
+
145
+ Defined in: [strategies/azure/AzureBlobStorageStrategy.ts:121](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/azure/AzureBlobStorageStrategy.ts#L121)
146
+
147
+ Downloads a blob object from the storage backend.
148
+
149
+ #### Type Parameters
150
+
151
+ | Type Parameter |
152
+ | ------ |
153
+ | `TData` |
154
+
155
+ #### Parameters
156
+
157
+ | Parameter | Type | Description |
158
+ | ------ | ------ | ------ |
159
+ | `request` | [`IBlobDownloadRequest`](Interface.IBlobDownloadRequest) | The download request describing the object to download. |
160
+
161
+ #### Returns
162
+
163
+ `Promise`\<[`IBlobDownloadResult`](Interface.IBlobDownloadResult)\<`TData`\>\>
164
+
165
+ The download result including payload and metadata.
166
+
167
+ #### Overrides
168
+
169
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`downloadObject`](Class.BlobStorageStrategyBase#downloadobject)
170
+
171
+ ***
172
+
173
+ ### uploadObject()
174
+
175
+ ```ts
176
+ uploadObject(request): Promise<IBlobUploadResult>;
177
+ ```
178
+
179
+ Defined in: [strategies/azure/AzureBlobStorageStrategy.ts:79](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/azure/AzureBlobStorageStrategy.ts#L79)
180
+
181
+ Uploads a blob object to the storage backend.
182
+
183
+ #### Parameters
184
+
185
+ | Parameter | Type | Description |
186
+ | ------ | ------ | ------ |
187
+ | `request` | [`IBlobUploadRequest`](Interface.IBlobUploadRequest) | The upload request describing the object to upload. |
188
+
189
+ #### Returns
190
+
191
+ `Promise`\<[`IBlobUploadResult`](Interface.IBlobUploadResult)\>
192
+
193
+ The resulting upload metadata.
194
+
195
+ #### Overrides
196
+
197
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`uploadObject`](Class.BlobStorageStrategyBase#uploadobject)
@@ -5,9 +5,22 @@ editUrl: false
5
5
  ---
6
6
  # Class: BlobModule
7
7
 
8
- Defined in: [BlobModule.ts:82](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/BlobModule.ts#L82)
8
+ Defined in: [BlobModule.ts:47](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/BlobModule.ts#L47)
9
9
 
10
10
  NestJS module responsible for providing blob storage services.
11
+ Uses a strategy pattern to support pluggable storage backends.
12
+
13
+ ## Example
14
+
15
+ ```typescript
16
+ import { BlobModule } from '@breadstone/archipel-platform-blob-storage';
17
+ import { VercelBlobStorageStrategy, VERCEL_CONFIG_ENTRIES } from '@breadstone/archipel-platform-blob-storage/strategies/vercel';
18
+
19
+ BlobModule.register({
20
+ storageStrategy: VercelBlobStorageStrategy,
21
+ configEntries: VERCEL_CONFIG_ENTRIES,
22
+ });
23
+ ```
11
24
 
12
25
  ## Constructors
13
26
 
@@ -23,27 +36,24 @@ new BlobModule(): BlobModule;
23
36
 
24
37
  ## Methods
25
38
 
26
- ### forRoot()
39
+ ### register()
27
40
 
28
41
  ```ts
29
- static forRoot(options?): DynamicModule;
42
+ static register(options): DynamicModule;
30
43
  ```
31
44
 
32
- Defined in: [BlobModule.ts:93](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/BlobModule.ts#L93)
45
+ Defined in: [BlobModule.ts:57](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/BlobModule.ts#L57)
33
46
 
34
- Configures the module with the specified options.
35
- When `objectPersistence` / `variantPersistence` are provided the
36
- corresponding adapters are registered as ports. Otherwise the
37
- service works without metadata tracking.
47
+ Configures the module with the specified storage strategy.
38
48
 
39
49
  #### Parameters
40
50
 
41
51
  | Parameter | Type | Description |
42
52
  | ------ | ------ | ------ |
43
- | `options?` | [`IBlobModuleOptions`](Interface.IBlobModuleOptions) | The module configuration options. |
53
+ | `options` | [`IBlobModuleOptions`](Interface.IBlobModuleOptions) | The module configuration options. |
44
54
 
45
55
  #### Returns
46
56
 
47
57
  `DynamicModule`
48
58
 
49
- Dynamic module definition
59
+ Dynamic module definition.
@@ -15,7 +15,7 @@ Provides a generic abstraction for blob storage operations independent of the un
15
15
 
16
16
  ```ts
17
17
  new BlobService(
18
- blobProvider,
18
+ storageStrategy,
19
19
  objectPersistence,
20
20
  variantPersistence): BlobService;
21
21
  ```
@@ -28,7 +28,7 @@ Initializes a new instance of the BlobService class.
28
28
 
29
29
  | Parameter | Type | Description |
30
30
  | ------ | ------ | ------ |
31
- | `blobProvider` | [`IBlobProvider`](Interface.IBlobProvider) | The concrete blob provider implementation. |
31
+ | `storageStrategy` | [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase) | The concrete blob storage strategy implementation. |
32
32
  | `objectPersistence` | \| [`BlobObjectPersistencePort`](Class.BlobObjectPersistencePort) \| `null` | Optional port persisting original blob metadata. |
33
33
  | `variantPersistence` | \| [`BlobVariantPersistencePort`](Class.BlobVariantPersistencePort) \| `null` | Optional port persisting derived blob metadata. |
34
34
 
@@ -44,7 +44,7 @@ Initializes a new instance of the BlobService class.
44
44
  createSignedUrl(request): Promise<string>;
45
45
  ```
46
46
 
47
- Defined in: [services/BlobService.ts:130](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/services/BlobService.ts#L130)
47
+ Defined in: [services/BlobService.ts:121](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/services/BlobService.ts#L121)
48
48
 
49
49
  Generates a signed URL for the specified object.
50
50
 
@@ -68,7 +68,7 @@ A signed URL that can be used to access the object.
68
68
  deleteFile(key): Promise<void>;
69
69
  ```
70
70
 
71
- Defined in: [services/BlobService.ts:183](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/services/BlobService.ts#L183)
71
+ Defined in: [services/BlobService.ts:171](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/services/BlobService.ts#L171)
72
72
 
73
73
  Deletes a file by key.
74
74
 
@@ -90,7 +90,7 @@ Deletes a file by key.
90
90
  deleteObject(request): Promise<void>;
91
91
  ```
92
92
 
93
- Defined in: [services/BlobService.ts:112](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/services/BlobService.ts#L112)
93
+ Defined in: [services/BlobService.ts:108](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/services/BlobService.ts#L108)
94
94
 
95
95
  Deletes an object from the configured blob provider.
96
96
 
@@ -112,7 +112,7 @@ Deletes an object from the configured blob provider.
112
112
  downloadFile<TData>(key, responseType?): Promise<IBlobDownloadResult<TData>>;
113
113
  ```
114
114
 
115
- Defined in: [services/BlobService.ts:165](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/services/BlobService.ts#L165)
115
+ Defined in: [services/BlobService.ts:156](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/services/BlobService.ts#L156)
116
116
 
117
117
  Downloads a file by key.
118
118
 
@@ -143,7 +143,7 @@ The downloaded data and related metadata.
143
143
  downloadObject<TData>(request): Promise<IBlobDownloadResult<TData>>;
144
144
  ```
145
145
 
146
- Defined in: [services/BlobService.ts:102](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/services/BlobService.ts#L102)
146
+ Defined in: [services/BlobService.ts:98](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/services/BlobService.ts#L98)
147
147
 
148
148
  Downloads an object from the configured blob provider.
149
149
 
@@ -176,7 +176,7 @@ uploadFile(
176
176
  contentType?): Promise<IBlobUploadResult>;
177
177
  ```
178
178
 
179
- Defined in: [services/BlobService.ts:147](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/services/BlobService.ts#L147)
179
+ Defined in: [services/BlobService.ts:138](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/services/BlobService.ts#L138)
180
180
 
181
181
  Uploads a buffer using the provided key.
182
182
 
@@ -0,0 +1,158 @@
1
+ ---
2
+ title: 'Abstract Class: BlobStorageStrategyBase'
3
+ generated: true
4
+ editUrl: false
5
+ ---
6
+ # Abstract Class: BlobStorageStrategyBase
7
+
8
+ Defined in: [strategies/abstracts/BlobStorageStrategyBase.ts:21](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/abstracts/BlobStorageStrategyBase.ts#L21)
9
+
10
+ Abstract base class for blob storage strategies.
11
+ Every concrete provider (AWS S3, Azure, Vercel, Local, etc.) must extend this class.
12
+ Serves as both the type contract and the NestJS DI token type reference.
13
+
14
+ ## Extended by
15
+
16
+ - [`VercelBlobStorageStrategy`](Class.VercelBlobStorageStrategy)
17
+ - [`AzureBlobStorageStrategy`](Class.AzureBlobStorageStrategy)
18
+ - [`AwsS3BlobStorageStrategy`](Class.AwsS3BlobStorageStrategy)
19
+ - [`LocalBlobStorageStrategy`](Class.LocalBlobStorageStrategy)
20
+
21
+ ## Constructors
22
+
23
+ ### Constructor
24
+
25
+ ```ts
26
+ protected new BlobStorageStrategyBase(): BlobStorageStrategyBase;
27
+ ```
28
+
29
+ Defined in: [strategies/abstracts/BlobStorageStrategyBase.ts:25](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/abstracts/BlobStorageStrategyBase.ts#L25)
30
+
31
+ #### Returns
32
+
33
+ `BlobStorageStrategyBase`
34
+
35
+ ## Properties
36
+
37
+ ### defaultBucket?
38
+
39
+ ```ts
40
+ abstract readonly optional defaultBucket?: string;
41
+ ```
42
+
43
+ Defined in: [strategies/abstracts/BlobStorageStrategyBase.ts:39](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/abstracts/BlobStorageStrategyBase.ts#L39)
44
+
45
+ Gets the default bucket (container/directory) configured for the provider.
46
+
47
+ ***
48
+
49
+ ### providerId
50
+
51
+ ```ts
52
+ abstract readonly providerId: string;
53
+ ```
54
+
55
+ Defined in: [strategies/abstracts/BlobStorageStrategyBase.ts:34](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/abstracts/BlobStorageStrategyBase.ts#L34)
56
+
57
+ Gets the unique identifier for this storage provider.
58
+
59
+ ## Methods
60
+
61
+ ### createSignedUrl()?
62
+
63
+ ```ts
64
+ optional createSignedUrl(request): Promise<string>;
65
+ ```
66
+
67
+ Defined in: [strategies/abstracts/BlobStorageStrategyBase.ts:79](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/abstracts/BlobStorageStrategyBase.ts#L79)
68
+
69
+ Creates a signed URL for the specified blob object.
70
+ Not all providers support this operation.
71
+
72
+ #### Parameters
73
+
74
+ | Parameter | Type | Description |
75
+ | ------ | ------ | ------ |
76
+ | `request` | [`IBlobSignedUrlRequest`](Interface.IBlobSignedUrlRequest) | The request describing the object to link. |
77
+
78
+ #### Returns
79
+
80
+ `Promise`\<`string`\>
81
+
82
+ The generated signed URL.
83
+
84
+ ***
85
+
86
+ ### deleteObject()
87
+
88
+ ```ts
89
+ abstract deleteObject(request): Promise<void>;
90
+ ```
91
+
92
+ Defined in: [strategies/abstracts/BlobStorageStrategyBase.ts:69](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/abstracts/BlobStorageStrategyBase.ts#L69)
93
+
94
+ Deletes a blob object from the storage backend.
95
+
96
+ #### Parameters
97
+
98
+ | Parameter | Type | Description |
99
+ | ------ | ------ | ------ |
100
+ | `request` | [`IBlobDeleteRequest`](Interface.IBlobDeleteRequest) | The delete request describing the object to remove. |
101
+
102
+ #### Returns
103
+
104
+ `Promise`\<`void`\>
105
+
106
+ ***
107
+
108
+ ### downloadObject()
109
+
110
+ ```ts
111
+ abstract downloadObject<TData>(request): Promise<IBlobDownloadResult<TData>>;
112
+ ```
113
+
114
+ Defined in: [strategies/abstracts/BlobStorageStrategyBase.ts:61](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/abstracts/BlobStorageStrategyBase.ts#L61)
115
+
116
+ Downloads a blob object from the storage backend.
117
+
118
+ #### Type Parameters
119
+
120
+ | Type Parameter |
121
+ | ------ |
122
+ | `TData` |
123
+
124
+ #### Parameters
125
+
126
+ | Parameter | Type | Description |
127
+ | ------ | ------ | ------ |
128
+ | `request` | [`IBlobDownloadRequest`](Interface.IBlobDownloadRequest) | The download request describing the object to download. |
129
+
130
+ #### Returns
131
+
132
+ `Promise`\<[`IBlobDownloadResult`](Interface.IBlobDownloadResult)\<`TData`\>\>
133
+
134
+ The download result including payload and metadata.
135
+
136
+ ***
137
+
138
+ ### uploadObject()
139
+
140
+ ```ts
141
+ abstract uploadObject(request): Promise<IBlobUploadResult>;
142
+ ```
143
+
144
+ Defined in: [strategies/abstracts/BlobStorageStrategyBase.ts:52](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/abstracts/BlobStorageStrategyBase.ts#L52)
145
+
146
+ Uploads a blob object to the storage backend.
147
+
148
+ #### Parameters
149
+
150
+ | Parameter | Type | Description |
151
+ | ------ | ------ | ------ |
152
+ | `request` | [`IBlobUploadRequest`](Interface.IBlobUploadRequest) | The upload request describing the object to upload. |
153
+
154
+ #### Returns
155
+
156
+ `Promise`\<[`IBlobUploadResult`](Interface.IBlobUploadResult)\>
157
+
158
+ The resulting upload metadata.
@@ -0,0 +1,197 @@
1
+ ---
2
+ title: 'Class: LocalBlobStorageStrategy'
3
+ generated: true
4
+ editUrl: false
5
+ ---
6
+ # Class: LocalBlobStorageStrategy
7
+
8
+ Defined in: [strategies/local/LocalBlobStorageStrategy.ts:30](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/local/LocalBlobStorageStrategy.ts#L30)
9
+
10
+ Provides a blob storage strategy backed by the local filesystem.
11
+
12
+ ## Extends
13
+
14
+ - [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase)
15
+
16
+ ## Constructors
17
+
18
+ ### Constructor
19
+
20
+ ```ts
21
+ new LocalBlobStorageStrategy(configService): LocalBlobStorageStrategy;
22
+ ```
23
+
24
+ Defined in: [strategies/local/LocalBlobStorageStrategy.ts:48](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/local/LocalBlobStorageStrategy.ts#L48)
25
+
26
+ Initializes a new instance of the LocalBlobStorageStrategy class.
27
+
28
+ #### Parameters
29
+
30
+ | Parameter | Type | Description |
31
+ | ------ | ------ | ------ |
32
+ | `configService` | `ConfigService` | The configuration service providing environment values. |
33
+
34
+ #### Returns
35
+
36
+ `LocalBlobStorageStrategy`
37
+
38
+ #### Overrides
39
+
40
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`constructor`](Class.BlobStorageStrategyBase#constructor)
41
+
42
+ ## Properties
43
+
44
+ ### providerId
45
+
46
+ ```ts
47
+ readonly providerId: string = 'local';
48
+ ```
49
+
50
+ Defined in: [strategies/local/LocalBlobStorageStrategy.ts:67](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/local/LocalBlobStorageStrategy.ts#L67)
51
+
52
+ Gets the unique identifier for this storage provider.
53
+
54
+ #### Overrides
55
+
56
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`providerId`](Class.BlobStorageStrategyBase#providerid)
57
+
58
+ ## Accessors
59
+
60
+ ### defaultBucket
61
+
62
+ #### Get Signature
63
+
64
+ ```ts
65
+ get defaultBucket(): string | undefined;
66
+ ```
67
+
68
+ Defined in: [strategies/local/LocalBlobStorageStrategy.ts:70](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/local/LocalBlobStorageStrategy.ts#L70)
69
+
70
+ Gets the default bucket (container/directory) configured for the provider.
71
+
72
+ ##### Returns
73
+
74
+ `string` \| `undefined`
75
+
76
+ Gets the default bucket (container/directory) configured for the provider.
77
+
78
+ #### Overrides
79
+
80
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`defaultBucket`](Class.BlobStorageStrategyBase#defaultbucket)
81
+
82
+ ## Methods
83
+
84
+ ### createSignedUrl()?
85
+
86
+ ```ts
87
+ optional createSignedUrl(request): Promise<string>;
88
+ ```
89
+
90
+ Defined in: [strategies/abstracts/BlobStorageStrategyBase.ts:79](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/abstracts/BlobStorageStrategyBase.ts#L79)
91
+
92
+ Creates a signed URL for the specified blob object.
93
+ Not all providers support this operation.
94
+
95
+ #### Parameters
96
+
97
+ | Parameter | Type | Description |
98
+ | ------ | ------ | ------ |
99
+ | `request` | [`IBlobSignedUrlRequest`](Interface.IBlobSignedUrlRequest) | The request describing the object to link. |
100
+
101
+ #### Returns
102
+
103
+ `Promise`\<`string`\>
104
+
105
+ The generated signed URL.
106
+
107
+ #### Inherited from
108
+
109
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`createSignedUrl`](Class.BlobStorageStrategyBase#createsignedurl)
110
+
111
+ ***
112
+
113
+ ### deleteObject()
114
+
115
+ ```ts
116
+ deleteObject(request): Promise<void>;
117
+ ```
118
+
119
+ Defined in: [strategies/local/LocalBlobStorageStrategy.ts:150](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/local/LocalBlobStorageStrategy.ts#L150)
120
+
121
+ Deletes a blob object from the storage backend.
122
+
123
+ #### Parameters
124
+
125
+ | Parameter | Type | Description |
126
+ | ------ | ------ | ------ |
127
+ | `request` | [`IBlobDeleteRequest`](Interface.IBlobDeleteRequest) | The delete request describing the object to remove. |
128
+
129
+ #### Returns
130
+
131
+ `Promise`\<`void`\>
132
+
133
+ #### Overrides
134
+
135
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`deleteObject`](Class.BlobStorageStrategyBase#deleteobject)
136
+
137
+ ***
138
+
139
+ ### downloadObject()
140
+
141
+ ```ts
142
+ downloadObject<TData>(request): Promise<IBlobDownloadResult<TData>>;
143
+ ```
144
+
145
+ Defined in: [strategies/local/LocalBlobStorageStrategy.ts:112](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/local/LocalBlobStorageStrategy.ts#L112)
146
+
147
+ Downloads a blob object from the storage backend.
148
+
149
+ #### Type Parameters
150
+
151
+ | Type Parameter |
152
+ | ------ |
153
+ | `TData` |
154
+
155
+ #### Parameters
156
+
157
+ | Parameter | Type | Description |
158
+ | ------ | ------ | ------ |
159
+ | `request` | [`IBlobDownloadRequest`](Interface.IBlobDownloadRequest) | The download request describing the object to download. |
160
+
161
+ #### Returns
162
+
163
+ `Promise`\<[`IBlobDownloadResult`](Interface.IBlobDownloadResult)\<`TData`\>\>
164
+
165
+ The download result including payload and metadata.
166
+
167
+ #### Overrides
168
+
169
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`downloadObject`](Class.BlobStorageStrategyBase#downloadobject)
170
+
171
+ ***
172
+
173
+ ### uploadObject()
174
+
175
+ ```ts
176
+ uploadObject(request): Promise<IBlobUploadResult>;
177
+ ```
178
+
179
+ Defined in: [strategies/local/LocalBlobStorageStrategy.ts:79](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-blob-storage/src/strategies/local/LocalBlobStorageStrategy.ts#L79)
180
+
181
+ Uploads a blob object to the storage backend.
182
+
183
+ #### Parameters
184
+
185
+ | Parameter | Type | Description |
186
+ | ------ | ------ | ------ |
187
+ | `request` | [`IBlobUploadRequest`](Interface.IBlobUploadRequest) | The upload request describing the object to upload. |
188
+
189
+ #### Returns
190
+
191
+ `Promise`\<[`IBlobUploadResult`](Interface.IBlobUploadResult)\>
192
+
193
+ The resulting upload metadata.
194
+
195
+ #### Overrides
196
+
197
+ [`BlobStorageStrategyBase`](Class.BlobStorageStrategyBase).[`uploadObject`](Class.BlobStorageStrategyBase#uploadobject)