alepha 0.15.0 → 0.15.1

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 (222) hide show
  1. package/README.md +43 -98
  2. package/dist/api/audits/index.d.ts +240 -240
  3. package/dist/api/audits/index.d.ts.map +1 -1
  4. package/dist/api/audits/index.js +2 -2
  5. package/dist/api/audits/index.js.map +1 -1
  6. package/dist/api/files/index.d.ts +185 -185
  7. package/dist/api/files/index.d.ts.map +1 -1
  8. package/dist/api/files/index.js +2 -2
  9. package/dist/api/files/index.js.map +1 -1
  10. package/dist/api/jobs/index.d.ts +245 -245
  11. package/dist/api/jobs/index.d.ts.map +1 -1
  12. package/dist/api/notifications/index.browser.js +4 -4
  13. package/dist/api/notifications/index.browser.js.map +1 -1
  14. package/dist/api/notifications/index.d.ts +74 -74
  15. package/dist/api/notifications/index.d.ts.map +1 -1
  16. package/dist/api/notifications/index.js +4 -4
  17. package/dist/api/notifications/index.js.map +1 -1
  18. package/dist/api/parameters/index.d.ts +221 -221
  19. package/dist/api/parameters/index.d.ts.map +1 -1
  20. package/dist/api/users/index.d.ts +1632 -1631
  21. package/dist/api/users/index.d.ts.map +1 -1
  22. package/dist/api/users/index.js +26 -34
  23. package/dist/api/users/index.js.map +1 -1
  24. package/dist/api/verifications/index.d.ts +132 -132
  25. package/dist/api/verifications/index.d.ts.map +1 -1
  26. package/dist/batch/index.d.ts +122 -122
  27. package/dist/batch/index.d.ts.map +1 -1
  28. package/dist/bucket/index.d.ts +163 -163
  29. package/dist/bucket/index.d.ts.map +1 -1
  30. package/dist/cache/core/index.d.ts +46 -46
  31. package/dist/cache/core/index.d.ts.map +1 -1
  32. package/dist/cache/redis/index.d.ts.map +1 -1
  33. package/dist/cache/redis/index.js +2 -2
  34. package/dist/cache/redis/index.js.map +1 -1
  35. package/dist/cli/index.d.ts +5933 -201
  36. package/dist/cli/index.d.ts.map +1 -1
  37. package/dist/cli/index.js +609 -169
  38. package/dist/cli/index.js.map +1 -1
  39. package/dist/command/index.d.ts +296 -296
  40. package/dist/command/index.d.ts.map +1 -1
  41. package/dist/command/index.js +19 -19
  42. package/dist/command/index.js.map +1 -1
  43. package/dist/core/index.browser.js +268 -79
  44. package/dist/core/index.browser.js.map +1 -1
  45. package/dist/core/index.d.ts +768 -694
  46. package/dist/core/index.d.ts.map +1 -1
  47. package/dist/core/index.js +268 -79
  48. package/dist/core/index.js.map +1 -1
  49. package/dist/core/index.native.js +268 -79
  50. package/dist/core/index.native.js.map +1 -1
  51. package/dist/datetime/index.d.ts +44 -44
  52. package/dist/datetime/index.d.ts.map +1 -1
  53. package/dist/email/index.d.ts +25 -25
  54. package/dist/email/index.d.ts.map +1 -1
  55. package/dist/fake/index.d.ts +5409 -5409
  56. package/dist/fake/index.d.ts.map +1 -1
  57. package/dist/fake/index.js +22 -22
  58. package/dist/fake/index.js.map +1 -1
  59. package/dist/file/index.d.ts +435 -435
  60. package/dist/file/index.d.ts.map +1 -1
  61. package/dist/lock/core/index.d.ts +208 -208
  62. package/dist/lock/core/index.d.ts.map +1 -1
  63. package/dist/lock/redis/index.d.ts.map +1 -1
  64. package/dist/logger/index.d.ts +24 -24
  65. package/dist/logger/index.d.ts.map +1 -1
  66. package/dist/logger/index.js +1 -5
  67. package/dist/logger/index.js.map +1 -1
  68. package/dist/mcp/index.d.ts +216 -198
  69. package/dist/mcp/index.d.ts.map +1 -1
  70. package/dist/mcp/index.js +28 -4
  71. package/dist/mcp/index.js.map +1 -1
  72. package/dist/orm/index.browser.js +9 -9
  73. package/dist/orm/index.browser.js.map +1 -1
  74. package/dist/orm/index.bun.js +83 -76
  75. package/dist/orm/index.bun.js.map +1 -1
  76. package/dist/orm/index.d.ts +961 -960
  77. package/dist/orm/index.d.ts.map +1 -1
  78. package/dist/orm/index.js +88 -81
  79. package/dist/orm/index.js.map +1 -1
  80. package/dist/queue/core/index.d.ts +244 -244
  81. package/dist/queue/core/index.d.ts.map +1 -1
  82. package/dist/queue/redis/index.d.ts.map +1 -1
  83. package/dist/redis/index.d.ts +105 -105
  84. package/dist/redis/index.d.ts.map +1 -1
  85. package/dist/retry/index.d.ts +69 -69
  86. package/dist/retry/index.d.ts.map +1 -1
  87. package/dist/router/index.d.ts +6 -6
  88. package/dist/router/index.d.ts.map +1 -1
  89. package/dist/scheduler/index.d.ts +108 -26
  90. package/dist/scheduler/index.d.ts.map +1 -1
  91. package/dist/scheduler/index.js +393 -1
  92. package/dist/scheduler/index.js.map +1 -1
  93. package/dist/security/index.d.ts +532 -209
  94. package/dist/security/index.d.ts.map +1 -1
  95. package/dist/security/index.js +1422 -11
  96. package/dist/security/index.js.map +1 -1
  97. package/dist/server/auth/index.d.ts +1296 -271
  98. package/dist/server/auth/index.d.ts.map +1 -1
  99. package/dist/server/auth/index.js +1249 -18
  100. package/dist/server/auth/index.js.map +1 -1
  101. package/dist/server/cache/index.d.ts +56 -56
  102. package/dist/server/cache/index.d.ts.map +1 -1
  103. package/dist/server/compress/index.d.ts +3 -3
  104. package/dist/server/compress/index.d.ts.map +1 -1
  105. package/dist/server/cookies/index.d.ts +6 -6
  106. package/dist/server/cookies/index.d.ts.map +1 -1
  107. package/dist/server/core/index.d.ts +196 -186
  108. package/dist/server/core/index.d.ts.map +1 -1
  109. package/dist/server/core/index.js +43 -27
  110. package/dist/server/core/index.js.map +1 -1
  111. package/dist/server/cors/index.d.ts +11 -11
  112. package/dist/server/cors/index.d.ts.map +1 -1
  113. package/dist/server/health/index.d.ts.map +1 -1
  114. package/dist/server/helmet/index.d.ts +2 -2
  115. package/dist/server/helmet/index.d.ts.map +1 -1
  116. package/dist/server/links/index.browser.js +9 -1
  117. package/dist/server/links/index.browser.js.map +1 -1
  118. package/dist/server/links/index.d.ts +83 -83
  119. package/dist/server/links/index.d.ts.map +1 -1
  120. package/dist/server/links/index.js +13 -5
  121. package/dist/server/links/index.js.map +1 -1
  122. package/dist/server/metrics/index.d.ts +514 -1
  123. package/dist/server/metrics/index.d.ts.map +1 -1
  124. package/dist/server/metrics/index.js +4462 -4
  125. package/dist/server/metrics/index.js.map +1 -1
  126. package/dist/server/multipart/index.d.ts +6 -6
  127. package/dist/server/multipart/index.d.ts.map +1 -1
  128. package/dist/server/proxy/index.d.ts +102 -102
  129. package/dist/server/proxy/index.d.ts.map +1 -1
  130. package/dist/server/rate-limit/index.d.ts +16 -16
  131. package/dist/server/rate-limit/index.d.ts.map +1 -1
  132. package/dist/server/static/index.d.ts +44 -44
  133. package/dist/server/static/index.d.ts.map +1 -1
  134. package/dist/server/swagger/index.d.ts +47 -47
  135. package/dist/server/swagger/index.d.ts.map +1 -1
  136. package/dist/sms/index.d.ts +11 -11
  137. package/dist/sms/index.d.ts.map +1 -1
  138. package/dist/sms/index.js +3 -3
  139. package/dist/sms/index.js.map +1 -1
  140. package/dist/thread/index.d.ts +71 -71
  141. package/dist/thread/index.d.ts.map +1 -1
  142. package/dist/thread/index.js +2 -2
  143. package/dist/thread/index.js.map +1 -1
  144. package/dist/topic/core/index.d.ts +318 -318
  145. package/dist/topic/core/index.d.ts.map +1 -1
  146. package/dist/topic/redis/index.d.ts +6 -6
  147. package/dist/topic/redis/index.d.ts.map +1 -1
  148. package/dist/vite/index.d.ts +2324 -1719
  149. package/dist/vite/index.d.ts.map +1 -1
  150. package/dist/vite/index.js +123 -475
  151. package/dist/vite/index.js.map +1 -1
  152. package/dist/websocket/index.browser.js +3 -3
  153. package/dist/websocket/index.browser.js.map +1 -1
  154. package/dist/websocket/index.d.ts +275 -275
  155. package/dist/websocket/index.d.ts.map +1 -1
  156. package/dist/websocket/index.js +3 -3
  157. package/dist/websocket/index.js.map +1 -1
  158. package/package.json +9 -9
  159. package/src/api/users/services/SessionService.ts +0 -10
  160. package/src/cli/apps/AlephaCli.ts +2 -2
  161. package/src/cli/apps/AlephaPackageBuilderCli.ts +9 -1
  162. package/src/cli/assets/apiHelloControllerTs.ts +2 -1
  163. package/src/cli/assets/biomeJson.ts +2 -1
  164. package/src/cli/assets/claudeMd.ts +9 -4
  165. package/src/cli/assets/dummySpecTs.ts +2 -1
  166. package/src/cli/assets/editorconfig.ts +2 -1
  167. package/src/cli/assets/mainBrowserTs.ts +2 -1
  168. package/src/cli/assets/mainCss.ts +24 -0
  169. package/src/cli/assets/tsconfigJson.ts +2 -1
  170. package/src/cli/assets/webAppRouterTs.ts +2 -1
  171. package/src/cli/assets/webHelloComponentTsx.ts +6 -2
  172. package/src/cli/atoms/appEntryOptions.ts +13 -0
  173. package/src/cli/atoms/buildOptions.ts +1 -1
  174. package/src/cli/atoms/changelogOptions.ts +1 -1
  175. package/src/cli/commands/build.ts +63 -47
  176. package/src/cli/commands/dev.ts +16 -33
  177. package/src/cli/commands/gen/env.ts +1 -1
  178. package/src/cli/commands/init.ts +17 -8
  179. package/src/cli/commands/lint.ts +1 -1
  180. package/src/cli/defineConfig.ts +9 -0
  181. package/src/cli/index.ts +2 -1
  182. package/src/cli/providers/AppEntryProvider.ts +131 -0
  183. package/src/cli/providers/ViteBuildProvider.ts +82 -0
  184. package/src/cli/providers/ViteDevServerProvider.ts +350 -0
  185. package/src/cli/providers/ViteTemplateProvider.ts +27 -0
  186. package/src/cli/services/AlephaCliUtils.ts +33 -2
  187. package/src/cli/services/PackageManagerUtils.ts +13 -6
  188. package/src/cli/services/ProjectScaffolder.ts +72 -49
  189. package/src/core/Alepha.ts +2 -8
  190. package/src/core/primitives/$module.ts +12 -0
  191. package/src/core/providers/KeylessJsonSchemaCodec.spec.ts +257 -0
  192. package/src/core/providers/KeylessJsonSchemaCodec.ts +396 -14
  193. package/src/core/providers/SchemaValidator.spec.ts +236 -0
  194. package/src/logger/providers/PrettyFormatterProvider.ts +0 -9
  195. package/src/mcp/errors/McpError.ts +30 -0
  196. package/src/mcp/index.ts +3 -0
  197. package/src/mcp/transports/SseMcpTransport.ts +16 -6
  198. package/src/orm/providers/DrizzleKitProvider.ts +3 -5
  199. package/src/orm/services/Repository.ts +11 -0
  200. package/src/server/core/index.ts +1 -1
  201. package/src/server/core/providers/BunHttpServerProvider.ts +1 -1
  202. package/src/server/core/providers/NodeHttpServerProvider.spec.ts +125 -0
  203. package/src/server/core/providers/NodeHttpServerProvider.ts +71 -22
  204. package/src/server/core/providers/ServerLoggerProvider.ts +2 -2
  205. package/src/server/core/providers/ServerProvider.ts +9 -12
  206. package/src/server/links/atoms/apiLinksAtom.ts +7 -0
  207. package/src/server/links/index.browser.ts +2 -0
  208. package/src/server/links/index.ts +2 -0
  209. package/src/vite/index.ts +3 -2
  210. package/src/vite/tasks/buildClient.ts +0 -1
  211. package/src/vite/tasks/buildServer.ts +68 -21
  212. package/src/vite/tasks/copyAssets.ts +5 -4
  213. package/src/vite/tasks/generateSitemap.ts +64 -23
  214. package/src/vite/tasks/index.ts +0 -2
  215. package/src/vite/tasks/prerenderPages.ts +49 -24
  216. package/src/cli/assets/indexHtml.ts +0 -15
  217. package/src/cli/commands/format.ts +0 -23
  218. package/src/vite/helpers/boot.ts +0 -117
  219. package/src/vite/plugins/viteAlephaDev.ts +0 -177
  220. package/src/vite/tasks/devServer.ts +0 -71
  221. package/src/vite/tasks/runAlepha.ts +0 -270
  222. /package/dist/orm/{chunk-DtkW-qnP.js → chunk-DH6iiROE.js} +0 -0
@@ -7,36 +7,36 @@ import * as alepha_logger0 from "alepha/logger";
7
7
  //#region ../../src/bucket/providers/FileStorageProvider.d.ts
8
8
  declare abstract class FileStorageProvider {
9
9
  /**
10
- * Uploads a file to the storage.
11
- *
12
- * @param bucketName - Container name
13
- * @param file - File to upload
14
- * @param fileId - Optional file identifier. If not provided, a unique ID will be generated.
15
- * @return The identifier of the uploaded file.
16
- */
10
+ * Uploads a file to the storage.
11
+ *
12
+ * @param bucketName - Container name
13
+ * @param file - File to upload
14
+ * @param fileId - Optional file identifier. If not provided, a unique ID will be generated.
15
+ * @return The identifier of the uploaded file.
16
+ */
17
17
  abstract upload(bucketName: string, file: FileLike, fileId?: string): Promise<string>;
18
18
  /**
19
- * Downloads a file from the storage.
20
- *
21
- * @param bucketName - Container name
22
- * @param fileId - Identifier of the file to download
23
- * @return The downloaded file as a FileLike object.
24
- */
19
+ * Downloads a file from the storage.
20
+ *
21
+ * @param bucketName - Container name
22
+ * @param fileId - Identifier of the file to download
23
+ * @return The downloaded file as a FileLike object.
24
+ */
25
25
  abstract download(bucketName: string, fileId: string): Promise<FileLike>;
26
26
  /**
27
- * Check if fileId exists in the storage bucket.
28
- *
29
- * @param bucketName - Container name
30
- * @param fileId - Identifier of the file to stream
31
- * @return True is the file exists, false otherwise.
32
- */
27
+ * Check if fileId exists in the storage bucket.
28
+ *
29
+ * @param bucketName - Container name
30
+ * @param fileId - Identifier of the file to stream
31
+ * @return True is the file exists, false otherwise.
32
+ */
33
33
  abstract exists(bucketName: string, fileId: string): Promise<boolean>;
34
34
  /**
35
- * Delete permanently a file from the storage.
36
- *
37
- * @param bucketName - Container name
38
- * @param fileId - Identifier of the file to delete
39
- */
35
+ * Delete permanently a file from the storage.
36
+ *
37
+ * @param bucketName - Container name
38
+ * @param fileId - Identifier of the file to delete
39
+ */
40
40
  abstract delete(bucketName: string, fileId: string): Promise<void>;
41
41
  }
42
42
  //#endregion
@@ -108,134 +108,134 @@ declare const $bucket: {
108
108
  };
109
109
  interface BucketPrimitiveOptions extends BucketFileOptions {
110
110
  /**
111
- * File storage provider configuration for the bucket.
112
- *
113
- * Options:
114
- * - **"memory"**: In-memory storage (default for development, lost on restart)
115
- * - **Service<FileStorageProvider>**: Custom provider class (e.g., S3FileStorageProvider, AzureBlobProvider)
116
- * - **undefined**: Uses the default file storage provider from dependency injection
117
- *
118
- * **Provider Selection Guidelines**:
119
- * - **Development**: Use "memory" for fast, simple testing without external dependencies
120
- * - **Production**: Use cloud providers (S3, Azure Blob, Google Cloud Storage) for scalability
121
- * - **Local deployment**: Use filesystem providers for on-premise installations
122
- * - **Hybrid**: Use different providers for different bucket types (temp files vs permanent storage)
123
- *
124
- * **Provider Capabilities**:
125
- * - File persistence and durability guarantees
126
- * - Scalability and performance characteristics
127
- * - Geographic distribution and CDN integration
128
- * - Cost implications for storage and bandwidth
129
- * - Backup and disaster recovery features
130
- *
131
- * @default Uses injected FileStorageProvider
132
- * @example "memory"
133
- * @example S3FileStorageProvider
134
- * @example AzureBlobStorageProvider
135
- */
111
+ * File storage provider configuration for the bucket.
112
+ *
113
+ * Options:
114
+ * - **"memory"**: In-memory storage (default for development, lost on restart)
115
+ * - **Service<FileStorageProvider>**: Custom provider class (e.g., S3FileStorageProvider, AzureBlobProvider)
116
+ * - **undefined**: Uses the default file storage provider from dependency injection
117
+ *
118
+ * **Provider Selection Guidelines**:
119
+ * - **Development**: Use "memory" for fast, simple testing without external dependencies
120
+ * - **Production**: Use cloud providers (S3, Azure Blob, Google Cloud Storage) for scalability
121
+ * - **Local deployment**: Use filesystem providers for on-premise installations
122
+ * - **Hybrid**: Use different providers for different bucket types (temp files vs permanent storage)
123
+ *
124
+ * **Provider Capabilities**:
125
+ * - File persistence and durability guarantees
126
+ * - Scalability and performance characteristics
127
+ * - Geographic distribution and CDN integration
128
+ * - Cost implications for storage and bandwidth
129
+ * - Backup and disaster recovery features
130
+ *
131
+ * @default Uses injected FileStorageProvider
132
+ * @example "memory"
133
+ * @example S3FileStorageProvider
134
+ * @example AzureBlobStorageProvider
135
+ */
136
136
  provider?: Service<FileStorageProvider> | "memory";
137
137
  /**
138
- * Unique name identifier for the bucket.
139
- *
140
- * This name is used for:
141
- * - Storage backend organization and partitioning
142
- * - File path generation and URL construction
143
- * - Logging, monitoring, and debugging
144
- * - Access control and permissions management
145
- * - Backup and replication configuration
146
- *
147
- * **Naming Conventions**:
148
- * - Use lowercase with hyphens for consistency
149
- * - Include purpose or content type in the name
150
- * - Avoid spaces and special characters
151
- * - Consider environment prefixes for deployment isolation
152
- *
153
- * If not provided, defaults to the property key where the bucket is declared.
154
- *
155
- * @example "user-avatars"
156
- * @example "product-images"
157
- * @example "legal-documents"
158
- * @example "temp-processing-files"
159
- */
138
+ * Unique name identifier for the bucket.
139
+ *
140
+ * This name is used for:
141
+ * - Storage backend organization and partitioning
142
+ * - File path generation and URL construction
143
+ * - Logging, monitoring, and debugging
144
+ * - Access control and permissions management
145
+ * - Backup and replication configuration
146
+ *
147
+ * **Naming Conventions**:
148
+ * - Use lowercase with hyphens for consistency
149
+ * - Include purpose or content type in the name
150
+ * - Avoid spaces and special characters
151
+ * - Consider environment prefixes for deployment isolation
152
+ *
153
+ * If not provided, defaults to the property key where the bucket is declared.
154
+ *
155
+ * @example "user-avatars"
156
+ * @example "product-images"
157
+ * @example "legal-documents"
158
+ * @example "temp-processing-files"
159
+ */
160
160
  name?: string;
161
161
  }
162
162
  interface BucketFileOptions {
163
163
  /**
164
- * Human-readable description of the bucket's purpose and contents.
165
- *
166
- * Used for:
167
- * - Documentation generation and API references
168
- * - Developer onboarding and system understanding
169
- * - Monitoring dashboards and admin interfaces
170
- * - Compliance and audit documentation
171
- *
172
- * **Description Best Practices**:
173
- * - Explain what types of files this bucket stores
174
- * - Mention any special handling or processing requirements
175
- * - Include information about retention policies if applicable
176
- * - Note any compliance or security considerations
177
- *
178
- * @example "User profile pictures and avatar images"
179
- * @example "Product catalog images with automated thumbnail generation"
180
- * @example "Legal documents requiring long-term retention"
181
- * @example "Temporary files for data processing workflows"
182
- */
164
+ * Human-readable description of the bucket's purpose and contents.
165
+ *
166
+ * Used for:
167
+ * - Documentation generation and API references
168
+ * - Developer onboarding and system understanding
169
+ * - Monitoring dashboards and admin interfaces
170
+ * - Compliance and audit documentation
171
+ *
172
+ * **Description Best Practices**:
173
+ * - Explain what types of files this bucket stores
174
+ * - Mention any special handling or processing requirements
175
+ * - Include information about retention policies if applicable
176
+ * - Note any compliance or security considerations
177
+ *
178
+ * @example "User profile pictures and avatar images"
179
+ * @example "Product catalog images with automated thumbnail generation"
180
+ * @example "Legal documents requiring long-term retention"
181
+ * @example "Temporary files for data processing workflows"
182
+ */
183
183
  description?: string;
184
184
  /**
185
- * Array of allowed MIME types for files uploaded to this bucket.
186
- *
187
- * When specified, only files with these exact MIME types will be accepted.
188
- * Files with disallowed MIME types will be rejected with an InvalidFileError.
189
- *
190
- * **MIME Type Categories**:
191
- * - Images: "image/jpeg", "image/png", "image/gif", "image/webp", "image/svg+xml"
192
- * - Documents: "application/pdf", "text/plain", "text/csv"
193
- * - Office: "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
194
- * - Archives: "application/zip", "application/x-tar", "application/gzip"
195
- * - Media: "video/mp4", "audio/mpeg", "audio/wav"
196
- *
197
- * **Security Considerations**:
198
- * - Always validate MIME types for user uploads
199
- * - Be cautious with executable file types
200
- * - Consider using allow-lists rather than deny-lists
201
- * - Remember that MIME types can be spoofed by malicious users
202
- *
203
- * If not specified, all MIME types are allowed (not recommended for user uploads).
204
- *
205
- * @example ["image/jpeg", "image/png"] // Only JPEG and PNG images
206
- * @example ["application/pdf", "text/plain"] // Documents only
207
- * @example ["video/mp4", "video/webm"] // Video files
208
- */
185
+ * Array of allowed MIME types for files uploaded to this bucket.
186
+ *
187
+ * When specified, only files with these exact MIME types will be accepted.
188
+ * Files with disallowed MIME types will be rejected with an InvalidFileError.
189
+ *
190
+ * **MIME Type Categories**:
191
+ * - Images: "image/jpeg", "image/png", "image/gif", "image/webp", "image/svg+xml"
192
+ * - Documents: "application/pdf", "text/plain", "text/csv"
193
+ * - Office: "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
194
+ * - Archives: "application/zip", "application/x-tar", "application/gzip"
195
+ * - Media: "video/mp4", "audio/mpeg", "audio/wav"
196
+ *
197
+ * **Security Considerations**:
198
+ * - Always validate MIME types for user uploads
199
+ * - Be cautious with executable file types
200
+ * - Consider using allow-lists rather than deny-lists
201
+ * - Remember that MIME types can be spoofed by malicious users
202
+ *
203
+ * If not specified, all MIME types are allowed (not recommended for user uploads).
204
+ *
205
+ * @example ["image/jpeg", "image/png"] // Only JPEG and PNG images
206
+ * @example ["application/pdf", "text/plain"] // Documents only
207
+ * @example ["video/mp4", "video/webm"] // Video files
208
+ */
209
209
  mimeTypes?: string[];
210
210
  /**
211
- * Maximum file size allowed in megabytes (MB).
212
- *
213
- * Files larger than this limit will be rejected with an InvalidFileError.
214
- * This helps prevent:
215
- * - Storage quota exhaustion
216
- * - Memory issues during file processing
217
- * - Long upload times and timeouts
218
- * - Abuse of storage resources
219
- *
220
- * **Size Guidelines by File Type**:
221
- * - Profile images: 1-5 MB
222
- * - Product photos: 5-10 MB
223
- * - Documents: 10-50 MB
224
- * - Video files: 50-500 MB
225
- * - Data files: 100-1000 MB
226
- *
227
- * **Considerations**:
228
- * - Consider your storage costs and limits
229
- * - Factor in network upload speeds for users
230
- * - Account for processing requirements (thumbnails, compression)
231
- * - Set reasonable limits based on actual use cases
232
- *
233
- * @default 10 MB
234
- *
235
- * @example 1 // 1MB for small images
236
- * @example 25 // 25MB for documents
237
- * @example 100 // 100MB for media files
238
- */
211
+ * Maximum file size allowed in megabytes (MB).
212
+ *
213
+ * Files larger than this limit will be rejected with an InvalidFileError.
214
+ * This helps prevent:
215
+ * - Storage quota exhaustion
216
+ * - Memory issues during file processing
217
+ * - Long upload times and timeouts
218
+ * - Abuse of storage resources
219
+ *
220
+ * **Size Guidelines by File Type**:
221
+ * - Profile images: 1-5 MB
222
+ * - Product photos: 5-10 MB
223
+ * - Documents: 10-50 MB
224
+ * - Video files: 50-500 MB
225
+ * - Data files: 100-1000 MB
226
+ *
227
+ * **Considerations**:
228
+ * - Consider your storage costs and limits
229
+ * - Factor in network upload speeds for users
230
+ * - Account for processing requirements (thumbnails, compression)
231
+ * - Set reasonable limits based on actual use cases
232
+ *
233
+ * @default 10 MB
234
+ *
235
+ * @example 1 // 1MB for small images
236
+ * @example 25 // 25MB for documents
237
+ * @example 100 // 100MB for media files
238
+ */
239
239
  maxSize?: number;
240
240
  }
241
241
  declare class BucketPrimitive extends Primitive<BucketPrimitiveOptions> {
@@ -243,37 +243,37 @@ declare class BucketPrimitive extends Primitive<BucketPrimitiveOptions> {
243
243
  private readonly fileSystem;
244
244
  get name(): string;
245
245
  /**
246
- * Uploads a file to the bucket.
247
- */
246
+ * Uploads a file to the bucket.
247
+ */
248
248
  upload(file: FileLike, options?: BucketFileOptions): Promise<string>;
249
249
  /**
250
- * Delete permanently a file from the bucket.
251
- */
250
+ * Delete permanently a file from the bucket.
251
+ */
252
252
  delete(fileId: string, skipHook?: boolean): Promise<void>;
253
253
  /**
254
- * Checks if a file exists in the bucket.
255
- */
254
+ * Checks if a file exists in the bucket.
255
+ */
256
256
  exists(fileId: string): Promise<boolean>;
257
257
  /**
258
- * Downloads a file from the bucket.
259
- */
258
+ * Downloads a file from the bucket.
259
+ */
260
260
  download(fileId: string): Promise<FileLike>;
261
261
  protected $provider(): FileStorageProvider | MemoryFileStorageProvider;
262
262
  }
263
263
  interface BucketFileOptions {
264
264
  /**
265
- * Optional description of the bucket.
266
- */
265
+ * Optional description of the bucket.
266
+ */
267
267
  description?: string;
268
268
  /**
269
- * Allowed MIME types.
270
- */
269
+ * Allowed MIME types.
270
+ */
271
271
  mimeTypes?: string[];
272
272
  /**
273
- * Maximum size of the files in the bucket.
274
- *
275
- * @default 10
276
- */
273
+ * Maximum size of the files in the bucket.
274
+ *
275
+ * @default 10
276
+ */
277
277
  maxSize?: number;
278
278
  }
279
279
  //#endregion
@@ -320,9 +320,9 @@ declare class LocalFileStorageProvider implements FileStorageProvider {
320
320
  declare module "alepha" {
321
321
  interface Hooks {
322
322
  /**
323
- * Triggered when a file is uploaded to a bucket.
324
- * Can be used to perform actions after a file is uploaded, like creating a database record!
325
- */
323
+ * Triggered when a file is uploaded to a bucket.
324
+ * Can be used to perform actions after a file is uploaded, like creating a database record!
325
+ */
326
326
  "bucket:file:uploaded": {
327
327
  id: string;
328
328
  file: FileLike;
@@ -330,8 +330,8 @@ declare module "alepha" {
330
330
  options: BucketFileOptions;
331
331
  };
332
332
  /**
333
- * Triggered when a file is deleted from a bucket.
334
- */
333
+ * Triggered when a file is deleted from a bucket.
334
+ */
335
335
  "bucket:file:deleted": {
336
336
  id: string;
337
337
  bucket: BucketPrimitive;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/bucket/providers/FileStorageProvider.ts","../../src/bucket/providers/MemoryFileStorageProvider.ts","../../src/bucket/primitives/$bucket.ts","../../src/bucket/errors/FileNotFoundError.ts","../../src/bucket/providers/LocalFileStorageProvider.ts","../../src/bucket/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/bucket/providers/FileStorageProvider.ts","../../src/bucket/providers/MemoryFileStorageProvider.ts","../../src/bucket/primitives/$bucket.ts","../../src/bucket/errors/FileNotFoundError.ts","../../src/bucket/providers/LocalFileStorageProvider.ts","../../src/bucket/index.ts"],"mappings":"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"}
@@ -12,37 +12,37 @@ import * as alepha_logger0 from "alepha/logger";
12
12
  */
13
13
  declare abstract class CacheProvider {
14
14
  /**
15
- * Get the value of a key.
16
- *
17
- * @param name Cache name, used to group keys. Should be Redis-like "some:group:name" format.
18
- * @param key The key of the value to get.
19
- *
20
- * @return The value of the key, or undefined if the key does not exist.
21
- */
15
+ * Get the value of a key.
16
+ *
17
+ * @param name Cache name, used to group keys. Should be Redis-like "some:group:name" format.
18
+ * @param key The key of the value to get.
19
+ *
20
+ * @return The value of the key, or undefined if the key does not exist.
21
+ */
22
22
  abstract get(name: string, key: string): Promise<Uint8Array | undefined>;
23
23
  /**
24
- * Set the string value of a key.
25
- *
26
- * @param name Cache name, used to group keys. Should be Redis-like "some:group:name" format.
27
- * @param key The key of the value to set.
28
- * @param value The value to set.
29
- * @param ttl The time-to-live of the key, in milliseconds.
30
- *
31
- * @return The value of the key.
32
- */
24
+ * Set the string value of a key.
25
+ *
26
+ * @param name Cache name, used to group keys. Should be Redis-like "some:group:name" format.
27
+ * @param key The key of the value to set.
28
+ * @param value The value to set.
29
+ * @param ttl The time-to-live of the key, in milliseconds.
30
+ *
31
+ * @return The value of the key.
32
+ */
33
33
  abstract set(name: string, key: string, value: Uint8Array, ttl?: number): Promise<Uint8Array>;
34
34
  /**
35
- * Remove the specified keys.
36
- *
37
- * @param name Cache name, used to group keys. Should be Redis-like "some:group:name" format.
38
- * @param keys The keys to delete.
39
- */
35
+ * Remove the specified keys.
36
+ *
37
+ * @param name Cache name, used to group keys. Should be Redis-like "some:group:name" format.
38
+ * @param keys The keys to delete.
39
+ */
40
40
  abstract del(name: string, ...keys: string[]): Promise<void>;
41
41
  abstract has(name: string, key: string): Promise<boolean>;
42
42
  abstract keys(name: string, filter?: string): Promise<string[]>;
43
43
  /**
44
- * Remove all keys from all cache names.
45
- */
44
+ * Remove all keys from all cache names.
45
+ */
46
46
  abstract clear(): Promise<void>;
47
47
  }
48
48
  //#endregion
@@ -101,37 +101,37 @@ declare const $cache: {
101
101
  };
102
102
  interface CachePrimitiveOptions<TReturn = any, TParameter extends any[] = any[]> {
103
103
  /**
104
- * The cache name. This is useful for invalidating multiple caches at once.
105
- *
106
- * Store key as `cache:$name:$key`.
107
- *
108
- * @default Name of the key of the class.
109
- */
104
+ * The cache name. This is useful for invalidating multiple caches at once.
105
+ *
106
+ * Store key as `cache:$name:$key`.
107
+ *
108
+ * @default Name of the key of the class.
109
+ */
110
110
  name?: string;
111
111
  /**
112
- * Function which returns cached data.
113
- */
112
+ * Function which returns cached data.
113
+ */
114
114
  handler?: (...args: TParameter) => TReturn;
115
115
  /**
116
- * The key generator for the cache.
117
- * If not provided, the arguments will be json.stringify().
118
- */
116
+ * The key generator for the cache.
117
+ * If not provided, the arguments will be json.stringify().
118
+ */
119
119
  key?: (...args: TParameter) => string;
120
120
  /**
121
- * The store provider for the cache.
122
- * If not provided, the default store provider will be used.
123
- */
121
+ * The store provider for the cache.
122
+ * If not provided, the default store provider will be used.
123
+ */
124
124
  provider?: InstantiableClass<CacheProvider> | "memory";
125
125
  /**
126
- * The time-to-live for the cache in seconds.
127
- * Set 0 to skip expiration.
128
- *
129
- * @default 300 (5 minutes).
130
- */
126
+ * The time-to-live for the cache in seconds.
127
+ * Set 0 to skip expiration.
128
+ *
129
+ * @default 300 (5 minutes).
130
+ */
131
131
  ttl?: DurationLike;
132
132
  /**
133
- * If the cache is disabled.
134
- */
133
+ * If the cache is disabled.
134
+ */
135
135
  disabled?: boolean;
136
136
  }
137
137
  declare class CachePrimitive<TReturn = any, TParameter extends any[] = any[]> extends Primitive<CachePrimitiveOptions<TReturn, TParameter>> {
@@ -160,8 +160,8 @@ declare class CachePrimitive<TReturn = any, TParameter extends any[] = any[]> ex
160
160
  }
161
161
  interface CachePrimitiveFn<TReturn = any, TParameter extends any[] = any[]> extends CachePrimitive<TReturn, TParameter> {
162
162
  /**
163
- * Run the cache primitive with the provided arguments.
164
- */
163
+ * Run the cache primitive with the provided arguments.
164
+ */
165
165
  (...args: TParameter): Promise<TReturn>;
166
166
  }
167
167
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/cache/core/providers/CacheProvider.ts","../../../src/cache/core/primitives/$cache.ts","../../../src/cache/core/providers/MemoryCacheProvider.ts","../../../src/cache/core/index.ts"],"mappings":";;;;;;;AAMA;;;;;uBAAsB,aAAA;EAAA;;;;;;;;EAAA,SAAA,IAAA,IAAA,UAAA,GAAA,WAYjB,OAAA,CAAQ,UAAA;EAAA;;;;;;;;;;EAAA,SAAA,IAAA,IAAA,UAAA,GAAA,UAAA,KAAA,EAeF,UAAA,EAAA,GAAA,YAEN,OAAA,CAAQ,UAAA;EAAA;;;;;;EAAA,SAAA,IAAA,IAAA,aAAA,IAAA,aAQ2C,OAAA;EAAA,SAAA,IAAA,IAAA,UAAA,GAAA,WAEN,OAAA;EAAA,SAAA,KAAA,IAAA,UAAA,MAAA,YAEK,OAAA;EAAA;;;EAAA,SAAA,MAAA,GAK5B,OAAA;AAAA;;;;ACU3B;;;;;;;;;;AAgBA;;;;;;;;AAsDA;;;;;;;;;;;;;;;;;;;;;;;;;;AAmJA;;;cAzNa,MAAA;EAAA,qDAAA,OAAA,GACF,qBAAA,CAAsB,OAAA,EAAS,UAAA,IACvC,gBAAA,CAAiB,OAAA,EAAS,UAAA;EAAA;;UAcZ,qBAAA;EAAA;;;;;;;EAAA,IAAA;EAAA;;;EAAA,OAAA,OAAA,IAAA,EAgBK,UAAA,KAAe,OAAA;EAAA;;;;EAAA,GAAA,OAAA,IAAA,EAMnB,UAAA;EAAA;;;;EAAA,QAAA,GAML,iBAAA,CAAkB,aAAA;EAAA;;;;AA0B/B;;EA1B+B,GAAA,GAQvB,YAAA;EAAA;;AAkBR;EAlBQ,QAAA;AAAA;AAAA,cAkBK,cAAA,0DAGH,SAAA,CAAU,qBAAA,CAAsB,OAAA,EAAS,UAAA;EAAA,mBAAA,GAAA;IAAA,aAAA;IAAA,iBAAA;EAAA;EAAA,mBAAA,gBAAA,EAEd,gBAAA;EAAA,mBAAA,QAAA,EACR,aAAA;EAAA,UAAA,OAAA,EACR,WAAA;EAAA,UAAA,OAAA,EACA,WAAA;EAAA,UAAA,KAAA;IAAA,MAAA;IAAA,IAAA;IAAA,MAAA;EAAA;EAAA,IAAA,UAAA;EAAA,IAAA,GAAA,IAAA,EAcO,UAAA,GAAa,OAAA,CAAQ,OAAA;EAAA,IAAA,GAAA,IAAA,EAoB3B,UAAA;EAAA,WAAA,GAAA,IAAA,aAIwB,OAAA;EAAA,IAAA,GAAA,UAAA,KAAA,EAoBnC,OAAA,EAAA,GAAA,GACD,YAAA,GACL,OAAA;EAAA,IAAA,GAAA,WAe4B,OAAA,CAAQ,OAAA;EAAA,UAAA,SAAA,SAAA,CAAA,KAAA,EAiBH,OAAA,GAAU,UAAA;EAAA,UAAA,WAAA,SAAA,CAAA,UAAA,EAgBhC,UAAA,GACX,OAAA,CAAQ,OAAA;EAAA,UAAA,UAAA,GAiBY,aAAA;AAAA;AAAA,UAaR,gBAAA,0DAGP,cAAA,CAAe,OAAA,EAAS,UAAA;EAAA;;;EAAA,IAAA,IAAA,EAItB,UAAA,GAAa,OAAA,CAAQ,OAAA;AAAA;;;KCzR5B,SAAA;AAAA,KACA,QAAA;AAAA,KACA,UAAA;EAAA,IAAA,GACI,UAAA;EAAA,OAAA,GACG,OAAA;AAAA;AAAA,cAGC,mBAAA,YAA+B,aAAA;EAAA,mBAAA,gBAAA,EACP,gBAAA;EAAA,mBAAA,GAAA,EAAA,cAAA,CACb,MAAA;EAAA,UAAA,KAAA,EAEL,MAAA,CAAO,SAAA,EAAW,MAAA,CAAO,QAAA,EAAU,UAAA;EAAA,IAAA,IAAA,UAAA,GAAA,WAEP,OAAA,CAAQ,UAAA;EAAA,IAAA,IAAA,UAAA,GAAA,UAAA,KAAA,EAO5C,UAAA,EAAA,GAAA,YAEN,OAAA,CAAQ,UAAA;EAAA,IAAA,IAAA,aAAA,IAAA,aA0BwC,OAAA;EAAA,IAAA,IAAA,UAAA,GAAA,WAqCN,OAAA;EAAA,KAAA,IAAA,UAAA,MAAA,YAIK,OAAA;EAAA,MAAA,GAS5B,OAAA;AAAA;;;;AC/ExB;;;;;;;;;;cAAa,WAAA,EAAW,OAAA,CAAA,OAAA,CAUtB,OAAA,CAVsB,MAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/cache/core/providers/CacheProvider.ts","../../../src/cache/core/primitives/$cache.ts","../../../src/cache/core/providers/MemoryCacheProvider.ts","../../../src/cache/core/index.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/cache/redis/providers/RedisCacheProvider.ts","../../../src/cache/redis/index.ts"],"mappings":";;;;;;;cAKM,SAAA,UAAS,OAAA;EAAA,kBAAA,oBAOb,OAAA,CAAA,OAAA;AAAA;AAAA;EAAA,UAAA,GAAA,SAGsB,OAAA,CAAQ,MAAA,QAAc,SAAA;AAAA;AAAA,cAGjC,kBAAA,YAA8B,aAAA;EAAA,mBAAA,GAAA,EAAX,cAAA,CACR,MAAA;EAAA,mBAAA,aAAA,EACU,aAAA;EAAA,mBAAA,GAAA;IAAA,kBAAA;EAAA;EAAA,mBAAA,MAAA,EAEP,MAAA;EAAA,IAAA,IAAA,UAAA,GAAA,WAEoB,OAAA,CAAQ,UAAA;EAAA,IAAA,IAAA,UAAA,GAAA,UAAA,KAAA,EAsB5C,UAAA,WAAA,GAAA,YAEN,OAAA,CAAQ,UAAA;EAAA,IAAA,IAAA,aAAA,IAAA,aAmBwC,OAAA;EAAA,IAAA,IAAA,UAAA,GAAA,WAgBN,OAAA;EAAA,KAAA,IAAA,UAAA,MAAA,YAIK,OAAA;EAAA,MAAA,GAO5B,OAAA;EAAA,UAAA,OAAA,GAAA,IAAA;AAAA;;;;AC9ExB;;;;;cAAa,gBAAA,EAAgB,OAAA,CAAA,OAAA,CAW3B,OAAA,CAX2B,MAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/cache/redis/providers/RedisCacheProvider.ts","../../../src/cache/redis/index.ts"],"mappings":";;;;;;;cAKM,SAAA,UAAS,OAAA;wCAOb,OAAA,CAAA,OAAA;AAAA;AAAA;EAAA,UAGU,GAAA,SAAY,OAAA,CAAQ,MAAA,QAAc,SAAA;AAAA;AAAA,cAGjC,kBAAA,YAA8B,aAAA;EAAA,mBACtB,GAAA,EADW,cAAA,CACR,MAAA;EAAA,mBACH,aAAA,EAAa,aAAA;EAAA,mBACb,GAAA;;;qBACA,MAAA,EAAM,MAAA;EAEZ,GAAA,CAAI,IAAA,UAAc,GAAA,WAAc,OAAA,CAAQ,UAAA;EAmBxC,GAAA,CACX,IAAA,UACA,GAAA,UACA,KAAA,EAAO,UAAA,WACP,GAAA,YACC,OAAA,CAAQ,UAAA;EAmBE,GAAA,CAAI,IAAA,aAAiB,IAAA,aAAiB,OAAA;EAgBtC,GAAA,CAAI,IAAA,UAAc,GAAA,WAAc,OAAA;EAIhC,IAAA,CAAK,IAAA,UAAc,MAAA,YAAkB,OAAA;EAOrC,KAAA,CAAA,GAAS,OAAA;EAAA,UAOZ,MAAA,CAAA,GAAU,IAAA;AAAA;;;;;;;;;cCrFT,gBAAA,EAAgB,OAAA,CAAA,OAAA,CAW3B,OAAA,CAX2B,MAAA"}
@@ -34,8 +34,8 @@ var RedisCacheProvider = class {
34
34
  async del(name, ...keys) {
35
35
  const nameKey = this.prefix(name);
36
36
  if (keys.length === 0) {
37
- const keys$1 = await this.redisProvider.keys(`${nameKey}:*`);
38
- await this.redisProvider.del(keys$1);
37
+ const keys = await this.redisProvider.keys(`${nameKey}:*`);
38
+ await this.redisProvider.del(keys);
39
39
  return;
40
40
  }
41
41
  await this.redisProvider.del(keys.map((key) => key.startsWith(nameKey) ? key : this.prefix(name, key)));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["keys"],"sources":["../../../src/cache/redis/providers/RedisCacheProvider.ts","../../../src/cache/redis/index.ts"],"sourcesContent":["import { $env, $inject, Alepha, type Static, t } from \"alepha\";\nimport type { CacheProvider } from \"alepha/cache\";\nimport { $logger } from \"alepha/logger\";\nimport { RedisProvider } from \"alepha/redis\";\n\nconst envSchema = t.object({\n REDIS_CACHE_PREFIX: t.optional(\n t.text({\n description:\n \"Force a prefix for all cache keys in Redis. Useful for testing or multi-tenant applications.\",\n }),\n ),\n});\n\ndeclare module \"alepha\" {\n interface Env extends Partial<Static<typeof envSchema>> {}\n}\n\nexport class RedisCacheProvider implements CacheProvider {\n protected readonly log = $logger();\n protected readonly redisProvider = $inject(RedisProvider);\n protected readonly env = $env(envSchema);\n protected readonly alepha = $inject(Alepha);\n\n public async get(name: string, key: string): Promise<Uint8Array | undefined> {\n if (!this.alepha.isStarted()) {\n return;\n }\n\n const keyWithPrefix = this.prefix(name, key);\n const buffer = await this.redisProvider.get(keyWithPrefix);\n if (!buffer) {\n return;\n }\n\n this.log.debug(`Cache hit`, {\n size: buffer.byteLength,\n key: keyWithPrefix,\n });\n\n return new Uint8Array(buffer);\n }\n\n public async set(\n name: string,\n key: string,\n value: Uint8Array | string,\n ttl?: number,\n ): Promise<Uint8Array> {\n if (!this.alepha.isReady()) {\n return new Uint8Array(Buffer.from(value));\n }\n\n const buffer = Buffer.from(value);\n const prefix = this.prefix(name, key);\n\n if (ttl) {\n return new Uint8Array(\n await this.redisProvider.set(prefix, buffer, {\n expiration: { type: \"PX\", value: ttl },\n }),\n );\n }\n\n return new Uint8Array(await this.redisProvider.set(prefix, buffer));\n }\n\n public async del(name: string, ...keys: string[]): Promise<void> {\n const nameKey = this.prefix(name);\n\n if (keys.length === 0) {\n const keys = await this.redisProvider.keys(`${nameKey}:*`);\n await this.redisProvider.del(keys);\n return;\n }\n\n await this.redisProvider.del(\n keys.map((key) =>\n key.startsWith(nameKey) ? key : this.prefix(name, key),\n ),\n );\n }\n\n public async has(name: string, key: string): Promise<boolean> {\n return this.get(name, key).then((value) => value != null);\n }\n\n public async keys(name: string, filter?: string): Promise<string[]> {\n if (filter) {\n return await this.redisProvider.keys(`${this.prefix(name)}:${filter}*`);\n }\n return this.redisProvider.keys(`${this.prefix(name)}:*`);\n }\n\n public async clear(): Promise<void> {\n this.log.debug(\"Clearing all cache\");\n const pattern = `${this.prefix()}:*`;\n const keys = await this.redisProvider.keys(pattern);\n await this.redisProvider.del(keys);\n }\n\n protected prefix(...path: string[]): string {\n const parts = [\"cache\", ...path];\n\n if (this.env.REDIS_CACHE_PREFIX) {\n parts.unshift(this.env.REDIS_CACHE_PREFIX);\n }\n\n return parts.join(\":\");\n }\n}\n","import { $module } from \"alepha\";\nimport { AlephaCache, CacheProvider } from \"alepha/cache\";\nimport { RedisCacheProvider } from \"./providers/RedisCacheProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./providers/RedisCacheProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Plugin for Alepha Cache that provides Redis caching capabilities.\n *\n * @see {@link RedisCacheProvider}\n * @module alepha.cache.redis\n */\nexport const AlephaCacheRedis = $module({\n name: \"alepha.cache.redis\",\n services: [RedisCacheProvider],\n register: (alepha) =>\n alepha\n .with({\n provide: CacheProvider,\n use: RedisCacheProvider,\n optional: true,\n })\n .with(AlephaCache),\n});\n"],"mappings":";;;;;;AAKA,MAAM,YAAY,EAAE,OAAO,EACzB,oBAAoB,EAAE,SACpB,EAAE,KAAK,EACL,aACE,gGACH,CAAC,CACH,EACF,CAAC;AAMF,IAAa,qBAAb,MAAyD;CACvD,AAAmB,MAAM,SAAS;CAClC,AAAmB,gBAAgB,QAAQ,cAAc;CACzD,AAAmB,MAAM,KAAK,UAAU;CACxC,AAAmB,SAAS,QAAQ,OAAO;CAE3C,MAAa,IAAI,MAAc,KAA8C;AAC3E,MAAI,CAAC,KAAK,OAAO,WAAW,CAC1B;EAGF,MAAM,gBAAgB,KAAK,OAAO,MAAM,IAAI;EAC5C,MAAM,SAAS,MAAM,KAAK,cAAc,IAAI,cAAc;AAC1D,MAAI,CAAC,OACH;AAGF,OAAK,IAAI,MAAM,aAAa;GAC1B,MAAM,OAAO;GACb,KAAK;GACN,CAAC;AAEF,SAAO,IAAI,WAAW,OAAO;;CAG/B,MAAa,IACX,MACA,KACA,OACA,KACqB;AACrB,MAAI,CAAC,KAAK,OAAO,SAAS,CACxB,QAAO,IAAI,WAAW,OAAO,KAAK,MAAM,CAAC;EAG3C,MAAM,SAAS,OAAO,KAAK,MAAM;EACjC,MAAM,SAAS,KAAK,OAAO,MAAM,IAAI;AAErC,MAAI,IACF,QAAO,IAAI,WACT,MAAM,KAAK,cAAc,IAAI,QAAQ,QAAQ,EAC3C,YAAY;GAAE,MAAM;GAAM,OAAO;GAAK,EACvC,CAAC,CACH;AAGH,SAAO,IAAI,WAAW,MAAM,KAAK,cAAc,IAAI,QAAQ,OAAO,CAAC;;CAGrE,MAAa,IAAI,MAAc,GAAG,MAA+B;EAC/D,MAAM,UAAU,KAAK,OAAO,KAAK;AAEjC,MAAI,KAAK,WAAW,GAAG;GACrB,MAAMA,SAAO,MAAM,KAAK,cAAc,KAAK,GAAG,QAAQ,IAAI;AAC1D,SAAM,KAAK,cAAc,IAAIA,OAAK;AAClC;;AAGF,QAAM,KAAK,cAAc,IACvB,KAAK,KAAK,QACR,IAAI,WAAW,QAAQ,GAAG,MAAM,KAAK,OAAO,MAAM,IAAI,CACvD,CACF;;CAGH,MAAa,IAAI,MAAc,KAA+B;AAC5D,SAAO,KAAK,IAAI,MAAM,IAAI,CAAC,MAAM,UAAU,SAAS,KAAK;;CAG3D,MAAa,KAAK,MAAc,QAAoC;AAClE,MAAI,OACF,QAAO,MAAM,KAAK,cAAc,KAAK,GAAG,KAAK,OAAO,KAAK,CAAC,GAAG,OAAO,GAAG;AAEzE,SAAO,KAAK,cAAc,KAAK,GAAG,KAAK,OAAO,KAAK,CAAC,IAAI;;CAG1D,MAAa,QAAuB;AAClC,OAAK,IAAI,MAAM,qBAAqB;EACpC,MAAM,UAAU,GAAG,KAAK,QAAQ,CAAC;EACjC,MAAM,OAAO,MAAM,KAAK,cAAc,KAAK,QAAQ;AACnD,QAAM,KAAK,cAAc,IAAI,KAAK;;CAGpC,AAAU,OAAO,GAAG,MAAwB;EAC1C,MAAM,QAAQ,CAAC,SAAS,GAAG,KAAK;AAEhC,MAAI,KAAK,IAAI,mBACX,OAAM,QAAQ,KAAK,IAAI,mBAAmB;AAG5C,SAAO,MAAM,KAAK,IAAI;;;;;;;;;;;;AC5F1B,MAAa,mBAAmB,QAAQ;CACtC,MAAM;CACN,UAAU,CAAC,mBAAmB;CAC9B,WAAW,WACT,OACG,KAAK;EACJ,SAAS;EACT,KAAK;EACL,UAAU;EACX,CAAC,CACD,KAAK,YAAY;CACvB,CAAC"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/cache/redis/providers/RedisCacheProvider.ts","../../../src/cache/redis/index.ts"],"sourcesContent":["import { $env, $inject, Alepha, type Static, t } from \"alepha\";\nimport type { CacheProvider } from \"alepha/cache\";\nimport { $logger } from \"alepha/logger\";\nimport { RedisProvider } from \"alepha/redis\";\n\nconst envSchema = t.object({\n REDIS_CACHE_PREFIX: t.optional(\n t.text({\n description:\n \"Force a prefix for all cache keys in Redis. Useful for testing or multi-tenant applications.\",\n }),\n ),\n});\n\ndeclare module \"alepha\" {\n interface Env extends Partial<Static<typeof envSchema>> {}\n}\n\nexport class RedisCacheProvider implements CacheProvider {\n protected readonly log = $logger();\n protected readonly redisProvider = $inject(RedisProvider);\n protected readonly env = $env(envSchema);\n protected readonly alepha = $inject(Alepha);\n\n public async get(name: string, key: string): Promise<Uint8Array | undefined> {\n if (!this.alepha.isStarted()) {\n return;\n }\n\n const keyWithPrefix = this.prefix(name, key);\n const buffer = await this.redisProvider.get(keyWithPrefix);\n if (!buffer) {\n return;\n }\n\n this.log.debug(`Cache hit`, {\n size: buffer.byteLength,\n key: keyWithPrefix,\n });\n\n return new Uint8Array(buffer);\n }\n\n public async set(\n name: string,\n key: string,\n value: Uint8Array | string,\n ttl?: number,\n ): Promise<Uint8Array> {\n if (!this.alepha.isReady()) {\n return new Uint8Array(Buffer.from(value));\n }\n\n const buffer = Buffer.from(value);\n const prefix = this.prefix(name, key);\n\n if (ttl) {\n return new Uint8Array(\n await this.redisProvider.set(prefix, buffer, {\n expiration: { type: \"PX\", value: ttl },\n }),\n );\n }\n\n return new Uint8Array(await this.redisProvider.set(prefix, buffer));\n }\n\n public async del(name: string, ...keys: string[]): Promise<void> {\n const nameKey = this.prefix(name);\n\n if (keys.length === 0) {\n const keys = await this.redisProvider.keys(`${nameKey}:*`);\n await this.redisProvider.del(keys);\n return;\n }\n\n await this.redisProvider.del(\n keys.map((key) =>\n key.startsWith(nameKey) ? key : this.prefix(name, key),\n ),\n );\n }\n\n public async has(name: string, key: string): Promise<boolean> {\n return this.get(name, key).then((value) => value != null);\n }\n\n public async keys(name: string, filter?: string): Promise<string[]> {\n if (filter) {\n return await this.redisProvider.keys(`${this.prefix(name)}:${filter}*`);\n }\n return this.redisProvider.keys(`${this.prefix(name)}:*`);\n }\n\n public async clear(): Promise<void> {\n this.log.debug(\"Clearing all cache\");\n const pattern = `${this.prefix()}:*`;\n const keys = await this.redisProvider.keys(pattern);\n await this.redisProvider.del(keys);\n }\n\n protected prefix(...path: string[]): string {\n const parts = [\"cache\", ...path];\n\n if (this.env.REDIS_CACHE_PREFIX) {\n parts.unshift(this.env.REDIS_CACHE_PREFIX);\n }\n\n return parts.join(\":\");\n }\n}\n","import { $module } from \"alepha\";\nimport { AlephaCache, CacheProvider } from \"alepha/cache\";\nimport { RedisCacheProvider } from \"./providers/RedisCacheProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./providers/RedisCacheProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Plugin for Alepha Cache that provides Redis caching capabilities.\n *\n * @see {@link RedisCacheProvider}\n * @module alepha.cache.redis\n */\nexport const AlephaCacheRedis = $module({\n name: \"alepha.cache.redis\",\n services: [RedisCacheProvider],\n register: (alepha) =>\n alepha\n .with({\n provide: CacheProvider,\n use: RedisCacheProvider,\n optional: true,\n })\n .with(AlephaCache),\n});\n"],"mappings":";;;;;;AAKA,MAAM,YAAY,EAAE,OAAO,EACzB,oBAAoB,EAAE,SACpB,EAAE,KAAK,EACL,aACE,gGACH,CAAC,CACH,EACF,CAAC;AAMF,IAAa,qBAAb,MAAyD;CACvD,AAAmB,MAAM,SAAS;CAClC,AAAmB,gBAAgB,QAAQ,cAAc;CACzD,AAAmB,MAAM,KAAK,UAAU;CACxC,AAAmB,SAAS,QAAQ,OAAO;CAE3C,MAAa,IAAI,MAAc,KAA8C;AAC3E,MAAI,CAAC,KAAK,OAAO,WAAW,CAC1B;EAGF,MAAM,gBAAgB,KAAK,OAAO,MAAM,IAAI;EAC5C,MAAM,SAAS,MAAM,KAAK,cAAc,IAAI,cAAc;AAC1D,MAAI,CAAC,OACH;AAGF,OAAK,IAAI,MAAM,aAAa;GAC1B,MAAM,OAAO;GACb,KAAK;GACN,CAAC;AAEF,SAAO,IAAI,WAAW,OAAO;;CAG/B,MAAa,IACX,MACA,KACA,OACA,KACqB;AACrB,MAAI,CAAC,KAAK,OAAO,SAAS,CACxB,QAAO,IAAI,WAAW,OAAO,KAAK,MAAM,CAAC;EAG3C,MAAM,SAAS,OAAO,KAAK,MAAM;EACjC,MAAM,SAAS,KAAK,OAAO,MAAM,IAAI;AAErC,MAAI,IACF,QAAO,IAAI,WACT,MAAM,KAAK,cAAc,IAAI,QAAQ,QAAQ,EAC3C,YAAY;GAAE,MAAM;GAAM,OAAO;GAAK,EACvC,CAAC,CACH;AAGH,SAAO,IAAI,WAAW,MAAM,KAAK,cAAc,IAAI,QAAQ,OAAO,CAAC;;CAGrE,MAAa,IAAI,MAAc,GAAG,MAA+B;EAC/D,MAAM,UAAU,KAAK,OAAO,KAAK;AAEjC,MAAI,KAAK,WAAW,GAAG;GACrB,MAAM,OAAO,MAAM,KAAK,cAAc,KAAK,GAAG,QAAQ,IAAI;AAC1D,SAAM,KAAK,cAAc,IAAI,KAAK;AAClC;;AAGF,QAAM,KAAK,cAAc,IACvB,KAAK,KAAK,QACR,IAAI,WAAW,QAAQ,GAAG,MAAM,KAAK,OAAO,MAAM,IAAI,CACvD,CACF;;CAGH,MAAa,IAAI,MAAc,KAA+B;AAC5D,SAAO,KAAK,IAAI,MAAM,IAAI,CAAC,MAAM,UAAU,SAAS,KAAK;;CAG3D,MAAa,KAAK,MAAc,QAAoC;AAClE,MAAI,OACF,QAAO,MAAM,KAAK,cAAc,KAAK,GAAG,KAAK,OAAO,KAAK,CAAC,GAAG,OAAO,GAAG;AAEzE,SAAO,KAAK,cAAc,KAAK,GAAG,KAAK,OAAO,KAAK,CAAC,IAAI;;CAG1D,MAAa,QAAuB;AAClC,OAAK,IAAI,MAAM,qBAAqB;EACpC,MAAM,UAAU,GAAG,KAAK,QAAQ,CAAC;EACjC,MAAM,OAAO,MAAM,KAAK,cAAc,KAAK,QAAQ;AACnD,QAAM,KAAK,cAAc,IAAI,KAAK;;CAGpC,AAAU,OAAO,GAAG,MAAwB;EAC1C,MAAM,QAAQ,CAAC,SAAS,GAAG,KAAK;AAEhC,MAAI,KAAK,IAAI,mBACX,OAAM,QAAQ,KAAK,IAAI,mBAAmB;AAG5C,SAAO,MAAM,KAAK,IAAI;;;;;;;;;;;;AC5F1B,MAAa,mBAAmB,QAAQ;CACtC,MAAM;CACN,UAAU,CAAC,mBAAmB;CAC9B,WAAW,WACT,OACG,KAAK;EACJ,SAAS;EACT,KAAK;EACL,UAAU;EACX,CAAC,CACD,KAAK,YAAY;CACvB,CAAC"}