alepha 0.14.4 → 0.15.0

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 (277) hide show
  1. package/README.md +1 -4
  2. package/dist/api/audits/index.d.ts +619 -731
  3. package/dist/api/audits/index.d.ts.map +1 -1
  4. package/dist/api/files/index.d.ts +185 -298
  5. package/dist/api/files/index.d.ts.map +1 -1
  6. package/dist/api/files/index.js +0 -1
  7. package/dist/api/files/index.js.map +1 -1
  8. package/dist/api/jobs/index.d.ts +245 -356
  9. package/dist/api/jobs/index.d.ts.map +1 -1
  10. package/dist/api/notifications/index.d.ts +238 -350
  11. package/dist/api/notifications/index.d.ts.map +1 -1
  12. package/dist/api/parameters/index.d.ts +499 -611
  13. package/dist/api/parameters/index.d.ts.map +1 -1
  14. package/dist/api/users/index.browser.js +1 -2
  15. package/dist/api/users/index.browser.js.map +1 -1
  16. package/dist/api/users/index.d.ts +1697 -1804
  17. package/dist/api/users/index.d.ts.map +1 -1
  18. package/dist/api/users/index.js +178 -151
  19. package/dist/api/users/index.js.map +1 -1
  20. package/dist/api/verifications/index.d.ts +132 -132
  21. package/dist/api/verifications/index.d.ts.map +1 -1
  22. package/dist/batch/index.d.ts +122 -122
  23. package/dist/batch/index.d.ts.map +1 -1
  24. package/dist/batch/index.js +1 -2
  25. package/dist/batch/index.js.map +1 -1
  26. package/dist/bucket/index.d.ts +163 -163
  27. package/dist/bucket/index.d.ts.map +1 -1
  28. package/dist/cache/core/index.d.ts +46 -46
  29. package/dist/cache/core/index.d.ts.map +1 -1
  30. package/dist/cache/redis/index.d.ts.map +1 -1
  31. package/dist/cli/index.d.ts +302 -299
  32. package/dist/cli/index.d.ts.map +1 -1
  33. package/dist/cli/index.js +966 -564
  34. package/dist/cli/index.js.map +1 -1
  35. package/dist/command/index.d.ts +303 -299
  36. package/dist/command/index.d.ts.map +1 -1
  37. package/dist/command/index.js +11 -7
  38. package/dist/command/index.js.map +1 -1
  39. package/dist/core/index.browser.js +419 -99
  40. package/dist/core/index.browser.js.map +1 -1
  41. package/dist/core/index.d.ts +718 -625
  42. package/dist/core/index.d.ts.map +1 -1
  43. package/dist/core/index.js +420 -99
  44. package/dist/core/index.js.map +1 -1
  45. package/dist/core/index.native.js +419 -99
  46. package/dist/core/index.native.js.map +1 -1
  47. package/dist/datetime/index.d.ts +44 -44
  48. package/dist/datetime/index.d.ts.map +1 -1
  49. package/dist/datetime/index.js +4 -4
  50. package/dist/datetime/index.js.map +1 -1
  51. package/dist/email/index.d.ts +97 -50
  52. package/dist/email/index.d.ts.map +1 -1
  53. package/dist/email/index.js +129 -33
  54. package/dist/email/index.js.map +1 -1
  55. package/dist/fake/index.d.ts +7981 -14
  56. package/dist/fake/index.d.ts.map +1 -1
  57. package/dist/file/index.d.ts +523 -390
  58. package/dist/file/index.d.ts.map +1 -1
  59. package/dist/file/index.js +253 -1
  60. package/dist/file/index.js.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 +25 -26
  65. package/dist/logger/index.d.ts.map +1 -1
  66. package/dist/mcp/index.d.ts +197 -197
  67. package/dist/mcp/index.d.ts.map +1 -1
  68. package/dist/orm/chunk-DtkW-qnP.js +38 -0
  69. package/dist/orm/index.browser.js.map +1 -1
  70. package/dist/orm/index.bun.js +2814 -0
  71. package/dist/orm/index.bun.js.map +1 -0
  72. package/dist/orm/index.d.ts +1205 -1057
  73. package/dist/orm/index.d.ts.map +1 -1
  74. package/dist/orm/index.js +2056 -1753
  75. package/dist/orm/index.js.map +1 -1
  76. package/dist/queue/core/index.d.ts +248 -248
  77. package/dist/queue/core/index.d.ts.map +1 -1
  78. package/dist/queue/redis/index.d.ts.map +1 -1
  79. package/dist/redis/index.bun.js +285 -0
  80. package/dist/redis/index.bun.js.map +1 -0
  81. package/dist/redis/index.d.ts +118 -136
  82. package/dist/redis/index.d.ts.map +1 -1
  83. package/dist/redis/index.js +18 -38
  84. package/dist/redis/index.js.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 +25 -25
  90. package/dist/scheduler/index.d.ts.map +1 -1
  91. package/dist/security/index.browser.js +5 -1
  92. package/dist/security/index.browser.js.map +1 -1
  93. package/dist/security/index.d.ts +417 -254
  94. package/dist/security/index.d.ts.map +1 -1
  95. package/dist/security/index.js +386 -86
  96. package/dist/security/index.js.map +1 -1
  97. package/dist/server/auth/index.d.ts +277 -277
  98. package/dist/server/auth/index.d.ts.map +1 -1
  99. package/dist/server/auth/index.js +20 -20
  100. package/dist/server/auth/index.js.map +1 -1
  101. package/dist/server/cache/index.d.ts +60 -57
  102. package/dist/server/cache/index.d.ts.map +1 -1
  103. package/dist/server/cache/index.js +1 -1
  104. package/dist/server/cache/index.js.map +1 -1
  105. package/dist/server/compress/index.d.ts +3 -3
  106. package/dist/server/compress/index.d.ts.map +1 -1
  107. package/dist/server/cookies/index.d.ts +6 -6
  108. package/dist/server/cookies/index.d.ts.map +1 -1
  109. package/dist/server/cookies/index.js +3 -3
  110. package/dist/server/cookies/index.js.map +1 -1
  111. package/dist/server/core/index.d.ts +242 -150
  112. package/dist/server/core/index.d.ts.map +1 -1
  113. package/dist/server/core/index.js +288 -122
  114. package/dist/server/core/index.js.map +1 -1
  115. package/dist/server/cors/index.d.ts +11 -12
  116. package/dist/server/cors/index.d.ts.map +1 -1
  117. package/dist/server/health/index.d.ts +0 -1
  118. package/dist/server/health/index.d.ts.map +1 -1
  119. package/dist/server/helmet/index.d.ts +2 -2
  120. package/dist/server/helmet/index.d.ts.map +1 -1
  121. package/dist/server/links/index.browser.js.map +1 -1
  122. package/dist/server/links/index.d.ts +84 -85
  123. package/dist/server/links/index.d.ts.map +1 -1
  124. package/dist/server/links/index.js +1 -2
  125. package/dist/server/links/index.js.map +1 -1
  126. package/dist/server/metrics/index.d.ts.map +1 -1
  127. package/dist/server/multipart/index.d.ts +6 -6
  128. package/dist/server/multipart/index.d.ts.map +1 -1
  129. package/dist/server/proxy/index.d.ts +102 -103
  130. package/dist/server/proxy/index.d.ts.map +1 -1
  131. package/dist/server/rate-limit/index.d.ts +16 -16
  132. package/dist/server/rate-limit/index.d.ts.map +1 -1
  133. package/dist/server/static/index.d.ts +44 -44
  134. package/dist/server/static/index.d.ts.map +1 -1
  135. package/dist/server/swagger/index.d.ts +48 -49
  136. package/dist/server/swagger/index.d.ts.map +1 -1
  137. package/dist/server/swagger/index.js +1 -2
  138. package/dist/server/swagger/index.js.map +1 -1
  139. package/dist/sms/index.d.ts +13 -11
  140. package/dist/sms/index.d.ts.map +1 -1
  141. package/dist/sms/index.js +7 -7
  142. package/dist/sms/index.js.map +1 -1
  143. package/dist/thread/index.d.ts +71 -72
  144. package/dist/thread/index.d.ts.map +1 -1
  145. package/dist/topic/core/index.d.ts +318 -318
  146. package/dist/topic/core/index.d.ts.map +1 -1
  147. package/dist/topic/redis/index.d.ts +6 -6
  148. package/dist/topic/redis/index.d.ts.map +1 -1
  149. package/dist/vite/index.d.ts +5720 -159
  150. package/dist/vite/index.d.ts.map +1 -1
  151. package/dist/vite/index.js +41 -18
  152. package/dist/vite/index.js.map +1 -1
  153. package/dist/websocket/index.browser.js +6 -6
  154. package/dist/websocket/index.browser.js.map +1 -1
  155. package/dist/websocket/index.d.ts +247 -247
  156. package/dist/websocket/index.d.ts.map +1 -1
  157. package/dist/websocket/index.js +6 -6
  158. package/dist/websocket/index.js.map +1 -1
  159. package/package.json +9 -14
  160. package/src/api/files/controllers/AdminFileStatsController.ts +0 -1
  161. package/src/api/users/atoms/realmAuthSettingsAtom.ts +5 -0
  162. package/src/api/users/controllers/{UserRealmController.ts → RealmController.ts} +11 -11
  163. package/src/api/users/entities/users.ts +1 -1
  164. package/src/api/users/index.ts +8 -8
  165. package/src/api/users/primitives/{$userRealm.ts → $realm.ts} +17 -19
  166. package/src/api/users/providers/{UserRealmProvider.ts → RealmProvider.ts} +26 -30
  167. package/src/api/users/schemas/{userRealmConfigSchema.ts → realmConfigSchema.ts} +2 -2
  168. package/src/api/users/services/CredentialService.ts +7 -7
  169. package/src/api/users/services/IdentityService.ts +4 -4
  170. package/src/api/users/services/RegistrationService.spec.ts +25 -27
  171. package/src/api/users/services/RegistrationService.ts +38 -27
  172. package/src/api/users/services/SessionCrudService.ts +3 -3
  173. package/src/api/users/services/SessionService.spec.ts +3 -3
  174. package/src/api/users/services/SessionService.ts +28 -9
  175. package/src/api/users/services/UserService.ts +7 -7
  176. package/src/batch/providers/BatchProvider.ts +1 -2
  177. package/src/cli/apps/AlephaPackageBuilderCli.ts +38 -19
  178. package/src/cli/assets/apiHelloControllerTs.ts +18 -0
  179. package/src/cli/assets/apiIndexTs.ts +16 -0
  180. package/src/cli/assets/claudeMd.ts +303 -0
  181. package/src/cli/assets/mainBrowserTs.ts +2 -2
  182. package/src/cli/assets/mainServerTs.ts +24 -0
  183. package/src/cli/assets/webAppRouterTs.ts +15 -0
  184. package/src/cli/assets/webHelloComponentTsx.ts +16 -0
  185. package/src/cli/assets/webIndexTs.ts +16 -0
  186. package/src/cli/commands/build.ts +41 -21
  187. package/src/cli/commands/db.ts +21 -18
  188. package/src/cli/commands/deploy.ts +17 -5
  189. package/src/cli/commands/dev.ts +13 -17
  190. package/src/cli/commands/format.ts +8 -2
  191. package/src/cli/commands/init.ts +74 -29
  192. package/src/cli/commands/lint.ts +8 -2
  193. package/src/cli/commands/test.ts +8 -2
  194. package/src/cli/commands/typecheck.ts +5 -1
  195. package/src/cli/commands/verify.ts +4 -2
  196. package/src/cli/services/AlephaCliUtils.ts +39 -600
  197. package/src/cli/services/PackageManagerUtils.ts +301 -0
  198. package/src/cli/services/ProjectScaffolder.ts +306 -0
  199. package/src/command/helpers/Runner.ts +15 -3
  200. package/src/core/__tests__/Alepha-graph.spec.ts +4 -0
  201. package/src/core/index.shared.ts +1 -0
  202. package/src/core/index.ts +2 -0
  203. package/src/core/primitives/$hook.ts +6 -2
  204. package/src/core/primitives/$module.spec.ts +4 -0
  205. package/src/core/providers/AlsProvider.ts +1 -1
  206. package/src/core/providers/CodecManager.spec.ts +12 -6
  207. package/src/core/providers/CodecManager.ts +26 -6
  208. package/src/core/providers/EventManager.ts +169 -13
  209. package/src/core/providers/KeylessJsonSchemaCodec.spec.ts +621 -0
  210. package/src/core/providers/KeylessJsonSchemaCodec.ts +407 -0
  211. package/src/core/providers/StateManager.spec.ts +27 -16
  212. package/src/email/providers/LocalEmailProvider.spec.ts +111 -87
  213. package/src/email/providers/LocalEmailProvider.ts +52 -15
  214. package/src/email/providers/NodemailerEmailProvider.ts +167 -56
  215. package/src/file/errors/FileError.ts +7 -0
  216. package/src/file/index.ts +9 -1
  217. package/src/file/providers/MemoryFileSystemProvider.ts +393 -0
  218. package/src/orm/index.browser.ts +1 -19
  219. package/src/orm/index.bun.ts +77 -0
  220. package/src/orm/index.shared-server.ts +22 -0
  221. package/src/orm/index.shared.ts +15 -0
  222. package/src/orm/index.ts +19 -39
  223. package/src/orm/providers/drivers/BunPostgresProvider.ts +3 -5
  224. package/src/orm/providers/drivers/BunSqliteProvider.ts +1 -1
  225. package/src/orm/providers/drivers/CloudflareD1Provider.ts +4 -0
  226. package/src/orm/providers/drivers/DatabaseProvider.ts +4 -0
  227. package/src/orm/providers/drivers/PglitePostgresProvider.ts +4 -0
  228. package/src/orm/services/Repository.ts +8 -0
  229. package/src/redis/index.bun.ts +35 -0
  230. package/src/redis/providers/BunRedisProvider.ts +12 -43
  231. package/src/redis/providers/BunRedisSubscriberProvider.ts +2 -3
  232. package/src/redis/providers/NodeRedisProvider.ts +16 -34
  233. package/src/{server/security → security}/__tests__/BasicAuth.spec.ts +11 -11
  234. package/src/{server/security → security}/__tests__/ServerSecurityProvider-realm.spec.ts +21 -16
  235. package/src/{server/security/providers → security/__tests__}/ServerSecurityProvider.spec.ts +5 -5
  236. package/src/security/index.browser.ts +5 -0
  237. package/src/security/index.ts +90 -7
  238. package/src/security/primitives/{$realm.spec.ts → $issuer.spec.ts} +11 -11
  239. package/src/security/primitives/{$realm.ts → $issuer.ts} +20 -17
  240. package/src/security/primitives/$role.ts +5 -5
  241. package/src/security/primitives/$serviceAccount.spec.ts +5 -5
  242. package/src/security/primitives/$serviceAccount.ts +3 -3
  243. package/src/{server/security → security}/providers/ServerSecurityProvider.ts +5 -7
  244. package/src/server/auth/primitives/$auth.ts +10 -10
  245. package/src/server/auth/primitives/$authCredentials.ts +3 -3
  246. package/src/server/auth/primitives/$authGithub.ts +3 -3
  247. package/src/server/auth/primitives/$authGoogle.ts +3 -3
  248. package/src/server/auth/providers/ServerAuthProvider.ts +13 -13
  249. package/src/server/cache/providers/ServerCacheProvider.ts +1 -1
  250. package/src/server/cookies/providers/ServerCookiesProvider.ts +3 -3
  251. package/src/server/core/providers/NodeHttpServerProvider.ts +25 -6
  252. package/src/server/core/providers/ServerBodyParserProvider.ts +19 -23
  253. package/src/server/core/providers/ServerLoggerProvider.ts +23 -19
  254. package/src/server/core/providers/ServerProvider.ts +144 -21
  255. package/src/server/core/providers/ServerRouterProvider.ts +259 -115
  256. package/src/server/core/providers/ServerTimingProvider.ts +2 -2
  257. package/src/server/links/index.ts +1 -1
  258. package/src/server/links/providers/LinkProvider.ts +1 -1
  259. package/src/server/swagger/index.ts +1 -1
  260. package/src/sms/providers/LocalSmsProvider.spec.ts +153 -111
  261. package/src/sms/providers/LocalSmsProvider.ts +8 -7
  262. package/src/vite/helpers/boot.ts +28 -17
  263. package/src/vite/tasks/buildServer.ts +12 -1
  264. package/src/vite/tasks/devServer.ts +3 -1
  265. package/src/vite/tasks/generateCloudflare.ts +7 -0
  266. package/dist/server/security/index.browser.js +0 -13
  267. package/dist/server/security/index.browser.js.map +0 -1
  268. package/dist/server/security/index.d.ts +0 -173
  269. package/dist/server/security/index.d.ts.map +0 -1
  270. package/dist/server/security/index.js +0 -311
  271. package/dist/server/security/index.js.map +0 -1
  272. package/src/cli/assets/appRouterTs.ts +0 -9
  273. package/src/cli/assets/mainTs.ts +0 -13
  274. package/src/server/security/index.browser.ts +0 -10
  275. package/src/server/security/index.ts +0 -94
  276. /package/src/{server/security → security}/primitives/$basicAuth.ts +0 -0
  277. /package/src/{server/security → security}/providers/ServerBasicAuthProvider.ts +0 -0
@@ -12,19 +12,19 @@ import * as dayjs_plugin_duration_js0 from "dayjs/plugin/duration.js";
12
12
  */
13
13
  declare abstract class LockProvider {
14
14
  /**
15
- * Set the string value of a key.
16
- *
17
- * @param key The key of the value to set.
18
- * @param value The value to set.
19
- * @param nx If set to true, the key will only be set if it does not already exist.
20
- * @param px Set the specified expire time, in milliseconds.
21
- */
15
+ * Set the string value of a key.
16
+ *
17
+ * @param key The key of the value to set.
18
+ * @param value The value to set.
19
+ * @param nx If set to true, the key will only be set if it does not already exist.
20
+ * @param px Set the specified expire time, in milliseconds.
21
+ */
22
22
  abstract set(key: string, value: string, nx?: boolean, px?: number): Promise<string>;
23
23
  /**
24
- * Remove the specified keys.
25
- *
26
- * @param keys The keys to delete.
27
- */
24
+ * Remove the specified keys.
25
+ *
26
+ * @param keys The keys to delete.
27
+ */
28
28
  abstract del(...keys: string[]): Promise<void>;
29
29
  }
30
30
  //#endregion
@@ -84,205 +84,205 @@ declare const $lock: {
84
84
  };
85
85
  interface LockPrimitiveOptions<TFunc extends AsyncFn> {
86
86
  /**
87
- * The function to execute when the lock is successfully acquired.
88
- *
89
- * This function:
90
- * - Only executes on the instance that successfully acquires the lock
91
- * - Has exclusive access to the protected resource during execution
92
- * - Should contain the critical section logic that must not run concurrently
93
- * - Can be async and perform any operations needed
94
- * - Will automatically release the lock upon completion or error
95
- * - Has access to the full Alepha dependency injection container
96
- *
97
- * **Handler Design Guidelines**:
98
- * - Keep critical sections as short as possible to minimize lock contention
99
- * - Include proper error handling to ensure locks are released
100
- * - Use timeouts for external operations to prevent deadlocks
101
- * - Log important operations for debugging and monitoring
102
- * - Consider idempotency for handlers that might be retried
103
- *
104
- * @param ...args - The arguments passed to the lock execution
105
- * @returns Promise that resolves when the protected operation is complete
106
- *
107
- * @example
108
- * ```ts
109
- * handler: async (batchId: string) => {
110
- * console.log(`Processing batch ${batchId} - only one instance will run this`);
111
- *
112
- * const batch = await this.getBatchData(batchId);
113
- * const results = await this.processBatchItems(batch.items);
114
- * await this.saveBatchResults(batchId, results);
115
- *
116
- * console.log(`Batch ${batchId} completed successfully`);
117
- * }
118
- * ```
119
- */
87
+ * The function to execute when the lock is successfully acquired.
88
+ *
89
+ * This function:
90
+ * - Only executes on the instance that successfully acquires the lock
91
+ * - Has exclusive access to the protected resource during execution
92
+ * - Should contain the critical section logic that must not run concurrently
93
+ * - Can be async and perform any operations needed
94
+ * - Will automatically release the lock upon completion or error
95
+ * - Has access to the full Alepha dependency injection container
96
+ *
97
+ * **Handler Design Guidelines**:
98
+ * - Keep critical sections as short as possible to minimize lock contention
99
+ * - Include proper error handling to ensure locks are released
100
+ * - Use timeouts for external operations to prevent deadlocks
101
+ * - Log important operations for debugging and monitoring
102
+ * - Consider idempotency for handlers that might be retried
103
+ *
104
+ * @param ...args - The arguments passed to the lock execution
105
+ * @returns Promise that resolves when the protected operation is complete
106
+ *
107
+ * @example
108
+ * ```ts
109
+ * handler: async (batchId: string) => {
110
+ * console.log(`Processing batch ${batchId} - only one instance will run this`);
111
+ *
112
+ * const batch = await this.getBatchData(batchId);
113
+ * const results = await this.processBatchItems(batch.items);
114
+ * await this.saveBatchResults(batchId, results);
115
+ *
116
+ * console.log(`Batch ${batchId} completed successfully`);
117
+ * }
118
+ * ```
119
+ */
120
120
  handler: TFunc;
121
121
  /**
122
- * Whether the lock should wait for other instances to complete before giving up.
123
- *
124
- * **wait = false (default)**:
125
- * - Non-blocking behavior - if lock is held, immediately return without executing
126
- * - Perfect for scheduled tasks where you only want one execution per trigger
127
- * - Use when multiple triggers are acceptable but concurrent execution is not
128
- * - Examples: periodic cleanup, cron jobs, background maintenance
129
- *
130
- * **wait = true**:
131
- * - Blocking behavior - wait for the current lock holder to finish
132
- * - All instances will eventually execute (one after another)
133
- * - Perfect for initialization tasks where all instances need the work completed
134
- * - Examples: database migrations, cache warming, resource initialization
135
- *
136
- * **Trade-offs**:
137
- * - Non-waiting: Better performance, may miss executions if timing is off
138
- * - Waiting: Guaranteed execution order, slower overall throughput
139
- *
140
- * @default false
141
- *
142
- * @example
143
- * ```ts
144
- * // Scheduled task - don't wait, just skip if already running
145
- * scheduledCleanup = $lock({
146
- * wait: false, // Skip if cleanup already running
147
- * handler: async () => { } // perform cleanup
148
- * });
149
- *
150
- * // Migration - wait for completion before proceeding
151
- * migration = $lock({
152
- * wait: true, // All instances wait for migration to complete
153
- * handler: async () => { } // perform migration
154
- * });
155
- * ```
156
- */
122
+ * Whether the lock should wait for other instances to complete before giving up.
123
+ *
124
+ * **wait = false (default)**:
125
+ * - Non-blocking behavior - if lock is held, immediately return without executing
126
+ * - Perfect for scheduled tasks where you only want one execution per trigger
127
+ * - Use when multiple triggers are acceptable but concurrent execution is not
128
+ * - Examples: periodic cleanup, cron jobs, background maintenance
129
+ *
130
+ * **wait = true**:
131
+ * - Blocking behavior - wait for the current lock holder to finish
132
+ * - All instances will eventually execute (one after another)
133
+ * - Perfect for initialization tasks where all instances need the work completed
134
+ * - Examples: database migrations, cache warming, resource initialization
135
+ *
136
+ * **Trade-offs**:
137
+ * - Non-waiting: Better performance, may miss executions if timing is off
138
+ * - Waiting: Guaranteed execution order, slower overall throughput
139
+ *
140
+ * @default false
141
+ *
142
+ * @example
143
+ * ```ts
144
+ * // Scheduled task - don't wait, just skip if already running
145
+ * scheduledCleanup = $lock({
146
+ * wait: false, // Skip if cleanup already running
147
+ * handler: async () => { } // perform cleanup
148
+ * });
149
+ *
150
+ * // Migration - wait for completion before proceeding
151
+ * migration = $lock({
152
+ * wait: true, // All instances wait for migration to complete
153
+ * handler: async () => { } // perform migration
154
+ * });
155
+ * ```
156
+ */
157
157
  wait?: boolean;
158
158
  /**
159
- * The unique identifier for the lock.
160
- *
161
- * Can be either:
162
- * - **Static string**: A fixed identifier for the lock
163
- * - **Dynamic function**: A function that generates the lock key based on arguments
164
- *
165
- * **Dynamic Lock Keys**:
166
- * - Enable per-resource locking (e.g., per-user, per-file, per-product)
167
- * - Allow fine-grained concurrency control
168
- * - Prevent unnecessary blocking between unrelated operations
169
- *
170
- * **Key Design Guidelines**:
171
- * - Use descriptive names that indicate the protected resource
172
- * - Include relevant identifiers for dynamic keys
173
- * - Keep keys reasonably short but unique
174
- * - Consider using hierarchical naming (e.g., "service:operation:resource")
175
- *
176
- * If not provided, defaults to `{serviceName}:{propertyKey}`.
177
- *
178
- * @example "user-migration"
179
- * @example "daily-report-generation"
180
- * @example (userId: string) => `user-profile-update:${userId}`
181
- * @example (fileId: string, operation: string) => `file-${operation}:${fileId}`
182
- *
183
- * @example
184
- * ```ts
185
- * // Static lock key - all instances compete for the same lock
186
- * globalCleanup = $lock({
187
- * name: "system-cleanup",
188
- * handler: async () => { } // perform cleanup
189
- * });
190
- *
191
- * // Dynamic lock key - per-user locks, users don't block each other
192
- * updateUserProfile = $lock({
193
- * name: (userId: string) => `user-update:${userId}`,
194
- * handler: async (userId: string, data: UserData) => {
195
- * // Only one update per user at a time, but different users can update concurrently
196
- * }
197
- * });
198
- * ```
199
- */
159
+ * The unique identifier for the lock.
160
+ *
161
+ * Can be either:
162
+ * - **Static string**: A fixed identifier for the lock
163
+ * - **Dynamic function**: A function that generates the lock key based on arguments
164
+ *
165
+ * **Dynamic Lock Keys**:
166
+ * - Enable per-resource locking (e.g., per-user, per-file, per-product)
167
+ * - Allow fine-grained concurrency control
168
+ * - Prevent unnecessary blocking between unrelated operations
169
+ *
170
+ * **Key Design Guidelines**:
171
+ * - Use descriptive names that indicate the protected resource
172
+ * - Include relevant identifiers for dynamic keys
173
+ * - Keep keys reasonably short but unique
174
+ * - Consider using hierarchical naming (e.g., "service:operation:resource")
175
+ *
176
+ * If not provided, defaults to `{serviceName}:{propertyKey}`.
177
+ *
178
+ * @example "user-migration"
179
+ * @example "daily-report-generation"
180
+ * @example (userId: string) => `user-profile-update:${userId}`
181
+ * @example (fileId: string, operation: string) => `file-${operation}:${fileId}`
182
+ *
183
+ * @example
184
+ * ```ts
185
+ * // Static lock key - all instances compete for the same lock
186
+ * globalCleanup = $lock({
187
+ * name: "system-cleanup",
188
+ * handler: async () => { } // perform cleanup
189
+ * });
190
+ *
191
+ * // Dynamic lock key - per-user locks, users don't block each other
192
+ * updateUserProfile = $lock({
193
+ * name: (userId: string) => `user-update:${userId}`,
194
+ * handler: async (userId: string, data: UserData) => {
195
+ * // Only one update per user at a time, but different users can update concurrently
196
+ * }
197
+ * });
198
+ * ```
199
+ */
200
200
  name?: string | ((...args: Parameters<TFunc>) => string);
201
201
  /**
202
- * Maximum duration the lock can be held before it expires automatically.
203
- *
204
- * This prevents deadlocks when a process dies while holding a lock or when
205
- * operations take longer than expected. The lock will be automatically released
206
- * after this duration, allowing other instances to proceed.
207
- *
208
- * **Duration Guidelines**:
209
- * - Set based on expected operation duration plus safety margin
210
- * - Too short: Operations may be interrupted by early expiration
211
- * - Too long: Failed processes block others for extended periods
212
- * - Consider worst-case scenarios and external dependency timeouts
213
- *
214
- * **Typical Values**:
215
- * - Quick operations: 30 seconds - 2 minutes
216
- * - Database operations: 5 - 15 minutes
217
- * - File processing: 10 - 30 minutes
218
- * - Large migrations: 30 minutes - 2 hours
219
- *
220
- * @default [5, "minutes"]
221
- *
222
- * @example [30, "seconds"] // Quick operations
223
- * @example [10, "minutes"] // Database migrations
224
- * @example [1, "hour"] // Long-running batch jobs
225
- *
226
- * @example
227
- * ```ts
228
- * quickTask = $lock({
229
- * maxDuration: [2, "minutes"], // Quick timeout for fast operations
230
- * handler: async () => { } // perform quick task
231
- * });
232
- *
233
- * heavyProcessing = $lock({
234
- * maxDuration: [30, "minutes"], // Longer timeout for heavy work
235
- * handler: async () => { } // perform heavy processing
236
- * });
237
- * ```
238
- */
202
+ * Maximum duration the lock can be held before it expires automatically.
203
+ *
204
+ * This prevents deadlocks when a process dies while holding a lock or when
205
+ * operations take longer than expected. The lock will be automatically released
206
+ * after this duration, allowing other instances to proceed.
207
+ *
208
+ * **Duration Guidelines**:
209
+ * - Set based on expected operation duration plus safety margin
210
+ * - Too short: Operations may be interrupted by early expiration
211
+ * - Too long: Failed processes block others for extended periods
212
+ * - Consider worst-case scenarios and external dependency timeouts
213
+ *
214
+ * **Typical Values**:
215
+ * - Quick operations: 30 seconds - 2 minutes
216
+ * - Database operations: 5 - 15 minutes
217
+ * - File processing: 10 - 30 minutes
218
+ * - Large migrations: 30 minutes - 2 hours
219
+ *
220
+ * @default [5, "minutes"]
221
+ *
222
+ * @example [30, "seconds"] // Quick operations
223
+ * @example [10, "minutes"] // Database migrations
224
+ * @example [1, "hour"] // Long-running batch jobs
225
+ *
226
+ * @example
227
+ * ```ts
228
+ * quickTask = $lock({
229
+ * maxDuration: [2, "minutes"], // Quick timeout for fast operations
230
+ * handler: async () => { } // perform quick task
231
+ * });
232
+ *
233
+ * heavyProcessing = $lock({
234
+ * maxDuration: [30, "minutes"], // Longer timeout for heavy work
235
+ * handler: async () => { } // perform heavy processing
236
+ * });
237
+ * ```
238
+ */
239
239
  maxDuration?: DurationLike;
240
240
  /**
241
- * Additional time to keep the lock active after the handler completes successfully.
242
- *
243
- * This provides a "cooling off" period that can be useful for:
244
- * - Preventing immediate re-execution of the same operation
245
- * - Giving time for related systems to process the results
246
- * - Avoiding race conditions with dependent operations
247
- * - Providing a buffer for cleanup operations
248
- *
249
- * Can be either:
250
- * - **Static duration**: Fixed grace period for all executions
251
- * - **Dynamic function**: Grace period determined by execution arguments
252
- * - **undefined**: No grace period, lock released immediately after completion
253
- *
254
- * **Grace Period Use Cases**:
255
- * - File processing: Prevent immediate reprocessing of uploaded files
256
- * - Cache updates: Allow time for cache propagation
257
- * - Batch operations: Prevent overlapping batch processing
258
- * - External API calls: Respect rate limiting requirements
259
- *
260
- * @default undefined (no grace period)
261
- *
262
- * @example [5, "minutes"] // Fixed 5-minute grace period
263
- * @example [30, "seconds"] // Short grace for quick operations
264
- * @example (userId: string) => userId.startsWith("premium") ? [10, "minutes"] : [2, "minutes"]
265
- *
266
- * @example
267
- * ```ts
268
- * fileProcessor = $lock({
269
- * gracePeriod: [10, "minutes"], // Prevent reprocessing same file immediately
270
- * handler: async (filePath: string) => {
271
- * await this.processFile(filePath);
272
- * }
273
- * });
274
- *
275
- * userOperation = $lock({
276
- * gracePeriod: (userId: string, operation: string) => {
277
- * // Dynamic grace based on operation type
278
- * return operation === 'migration' ? [30, "minutes"] : [5, "minutes"];
279
- * },
280
- * handler: async (userId: string, operation: string) => {
281
- * await this.performUserOperation(userId, operation);
282
- * }
283
- * });
284
- * ```
285
- */
241
+ * Additional time to keep the lock active after the handler completes successfully.
242
+ *
243
+ * This provides a "cooling off" period that can be useful for:
244
+ * - Preventing immediate re-execution of the same operation
245
+ * - Giving time for related systems to process the results
246
+ * - Avoiding race conditions with dependent operations
247
+ * - Providing a buffer for cleanup operations
248
+ *
249
+ * Can be either:
250
+ * - **Static duration**: Fixed grace period for all executions
251
+ * - **Dynamic function**: Grace period determined by execution arguments
252
+ * - **undefined**: No grace period, lock released immediately after completion
253
+ *
254
+ * **Grace Period Use Cases**:
255
+ * - File processing: Prevent immediate reprocessing of uploaded files
256
+ * - Cache updates: Allow time for cache propagation
257
+ * - Batch operations: Prevent overlapping batch processing
258
+ * - External API calls: Respect rate limiting requirements
259
+ *
260
+ * @default undefined (no grace period)
261
+ *
262
+ * @example [5, "minutes"] // Fixed 5-minute grace period
263
+ * @example [30, "seconds"] // Short grace for quick operations
264
+ * @example (userId: string) => userId.startsWith("premium") ? [10, "minutes"] : [2, "minutes"]
265
+ *
266
+ * @example
267
+ * ```ts
268
+ * fileProcessor = $lock({
269
+ * gracePeriod: [10, "minutes"], // Prevent reprocessing same file immediately
270
+ * handler: async (filePath: string) => {
271
+ * await this.processFile(filePath);
272
+ * }
273
+ * });
274
+ *
275
+ * userOperation = $lock({
276
+ * gracePeriod: (userId: string, operation: string) => {
277
+ * // Dynamic grace based on operation type
278
+ * return operation === 'migration' ? [30, "minutes"] : [5, "minutes"];
279
+ * },
280
+ * handler: async (userId: string, operation: string) => {
281
+ * await this.performUserOperation(userId, operation);
282
+ * }
283
+ * });
284
+ * ```
285
+ */
286
286
  gracePeriod?: ((...args: Parameters<TFunc>) => DurationLike | undefined) | DurationLike;
287
287
  }
288
288
  declare const envSchema: alepha1.TObject<{
@@ -307,8 +307,8 @@ declare class LockPrimitive<TFunc extends AsyncFn> extends Primitive<LockPrimiti
307
307
  }>;
308
308
  run(...args: Parameters<TFunc>): Promise<void>;
309
309
  /**
310
- * Set the lock for the given key.
311
- */
310
+ * Set the lock for the given key.
311
+ */
312
312
  protected lock(key: string): Promise<LockResult>;
313
313
  protected setGracePeriod(key: string, lock: LockResult, ...args: Parameters<TFunc>): Promise<void>;
314
314
  protected wait(key: string, maxDuration: DurationLike): Promise<void>;
@@ -333,12 +333,12 @@ declare class MemoryLockProvider implements LockProvider {
333
333
  protected readonly dateTimeProvider: DateTimeProvider;
334
334
  protected readonly log: alepha_logger0.Logger;
335
335
  /**
336
- * The in-memory store.
337
- */
336
+ * The in-memory store.
337
+ */
338
338
  protected store: Record<string, string>;
339
339
  /**
340
- * Timeouts used to expire keys.
341
- */
340
+ * Timeouts used to expire keys.
341
+ */
342
342
  protected storeTimeout: Record<string, Timeout>;
343
343
  set(key: string, value: string, nx?: boolean, px?: number): Promise<string>;
344
344
  del(...keys: string[]): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/lock/core/providers/LockProvider.ts","../../../src/lock/core/primitives/$lock.ts","../../../src/lock/core/providers/LockTopicProvider.ts","../../../src/lock/core/providers/MemoryLockProvider.ts","../../../src/lock/core/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;uBAGsB,YAAA;;;;;;AAAtB;;;uEAcK;ECoDQ;;;;;EAEV,SAAA,GAAA,CAAA,GAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ED/CuC,OC+CvC,CAAA,IAAA,CAAA;;;;;;;;;;ADpEH;;;;ACkEA;;;;;;;;;AAQA;;;;;;;;;;;AAgNC;AAIc;;;;;;;;;AAQf;;;;;;;;;cApOa;iBAAuB,OAgPH,CAAA,CAAA,OAAA,EA/OtB,oBA+OsB,CA/OD,KA+OC,CAAA,CAAA,EA9O9B,aA8O8B,CA9OhB,KA8OgB,CAAA;EAUM,MAAA,EAAA,oBAAA;CAAX;AAAoB,UAlP/B,oBAkP+B,CAAA,cAlPI,OAkPJ,CAAA,CAAA;EA8CH;;;;;;;;;;;;;AA8E7C;;;;ACzbA;;;;ACMA;;;;;;;;;;;;;ECiBa,OAAA,EHuFF,KGvET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BHyJ2B,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAwCxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAiDC,WAAW,WAAW,4BACjC;;cAKA,WAEJ,OAAA,CAFa;mBAEb,OAAA,CAAA;;;wBAGsB,QAAQ,cAAc;;cAGjC,4BAA4B,iBAAiB,UACxD,qBAAqB;0BAAD,cAAA,CAEE;+BACK;;;;uCAEQ;;wBAAA,yBAAA,CAER;iDAII;;YAJJ,OAAA,CAAA;;;eAcD,WAAW,SAAS;;;;+BA8CX,QAAQ;8CAanC,qBACG,WAAW,SACnB;2CAmB4C,eAAe;yBAWvC,WAAW;kCAgBF;;UAiBjB,UAAA;;aAEJ;YACD;;;;;uBC5bU,iBAAA,SAA0B,aAAA;;;;;;cCMnC,kBAAA,YAA8B;uCACN;0BAAA,cAAA,CACb;;AHPxB;;mBGYmB;;AFsDnB;;EACgC,UAAA,YAAA,EElDN,MFkDM,CAAA,MAAA,EElDS,OFkDT,CAAA;EAArB,GAAA,CAAA,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EE3CN,OF2CM,CAAA,MAAA,CAAA;EACM,GAAA,CAAA,GAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EE9BsB,OF8BtB,CAAA,IAAA,CAAA;EAAd,QAAA,GAAA;;;;;;;;;ADpEH;;;;ACkEa,cG5CA,UHgDZ,EGhDsB,OAAA,CAAA,OHgDtB,CGhCC,OAAA,CAhBqB,MAAA,CHgDtB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/lock/core/providers/LockProvider.ts","../../../src/lock/core/primitives/$lock.ts","../../../src/lock/core/providers/LockTopicProvider.ts","../../../src/lock/core/providers/MemoryLockProvider.ts","../../../src/lock/core/index.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/lock/redis/providers/RedisLockProvider.ts","../../../src/lock/redis/index.ts"],"sourcesContent":[],"mappings":";;;;;;cAKa,iBAAA,YAA6B;0BAAX,cAAA,CACP;oCACU;8DAO7B;EATQ,GAAA,CAAA,GAAA,IAAA,EAAA,MAAA,EAAkB,CAAA,EA8BQ,OA9BR,CAAA,IAAA,CAAA;;;;;;;;;AAA/B;AAA+B,cCYlB,eDXW,ECWI,OAAA,CAAA,ODXJ,CC2BtB,OAAA,CAhB0B,MAAA,CDXJ"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/lock/redis/providers/RedisLockProvider.ts","../../../src/lock/redis/index.ts"],"mappings":";;;;;;cAKa,iBAAA,YAA6B,YAAA;EAAA,mBAAA,GAAA,EAAX,cAAA,CACP,MAAA;EAAA,mBAAA,aAAA,EACU,aAAA;EAAA,IAAA,GAAA,UAAA,KAAA,UAAA,EAAA,YAAA,EAAA,YAO7B,OAAA;EAAA,IAAA,GAAA,IAAA,aAqBkC,OAAA;AAAA;;;;AClBvC;;;;;cAAa,eAAA,EAAe,OAAA,CAAA,OAAA,CAgB1B,OAAA,CAhB0B,MAAA"}
@@ -159,8 +159,8 @@ declare class PrettyFormatterProvider extends LogFormatterProvider {
159
159
  protected pad2: (n: number) => string;
160
160
  protected pad3: (n: number) => string;
161
161
  /**
162
- * Avoid to display the whole UUID in development mode
163
- */
162
+ * Avoid to display the whole UUID in development mode
163
+ */
164
164
  protected formatContext(context: string): string;
165
165
  protected formatError(error: Error): string;
166
166
  }
@@ -237,36 +237,36 @@ declare class PrettyFormatterProvider extends LogFormatterProvider {
237
237
  declare const AlephaLogger: alepha6.Service<alepha6.Module>;
238
238
  declare const envSchema: alepha6.TObject<{
239
239
  /**
240
- * Default log level for the application.
241
- *
242
- * Default by environment:
243
- * - dev = info
244
- * - prod = info
245
- * - test = error
246
- *
247
- * Levels are: "trace" | "debug" | "info" | "warn" | "error" | "silent"
248
- *
249
- * Level can be set for a specific module:
250
- *
251
- * @example
252
- * LOG_LEVEL=my.module.name:debug,info # Set debug level for my.module.name and info for all other modules
253
- * LOG_LEVEL=alepha:trace, info # Set trace level for all alepha modules and info for all other modules
254
- */
240
+ * Default log level for the application.
241
+ *
242
+ * Default by environment:
243
+ * - dev = info
244
+ * - prod = info
245
+ * - test = error
246
+ *
247
+ * Levels are: "trace" | "debug" | "info" | "warn" | "error" | "silent"
248
+ *
249
+ * Level can be set for a specific module:
250
+ *
251
+ * @example
252
+ * LOG_LEVEL=my.module.name:debug,info # Set debug level for my.module.name and info for all other modules
253
+ * LOG_LEVEL=alepha:trace, info # Set trace level for all alepha modules and info for all other modules
254
+ */
255
255
  LOG_LEVEL: alepha6.TOptional<alepha6.TString>;
256
256
  /**
257
- * Built-in log formats.
258
- * - "json" - JSON format, useful for structured logging and log aggregation. {@link JsonFormatterProvider}
259
- * - "pretty" - Simple text format, human-readable, with colors. {@link PrettyFormatterProvider}
260
- * - "raw" - Raw format, no formatting, just the message. {@link RawFormatterProvider}
261
- */
257
+ * Built-in log formats.
258
+ * - "json" - JSON format, useful for structured logging and log aggregation. {@link JsonFormatterProvider}
259
+ * - "pretty" - Simple text format, human-readable, with colors. {@link PrettyFormatterProvider}
260
+ * - "raw" - Raw format, no formatting, just the message. {@link RawFormatterProvider}
261
+ */
262
262
  LOG_FORMAT: alepha6.TOptional<alepha6.TUnsafe<"json" | "pretty" | "raw">>;
263
263
  }>;
264
264
  declare module "alepha" {
265
265
  interface Env extends Partial<Static<typeof envSchema>> {}
266
266
  interface State {
267
267
  /**
268
- * Current log level for the application or specific modules.
269
- */
268
+ * Current log level for the application or specific modules.
269
+ */
270
270
  "alepha.logger.level"?: string;
271
271
  }
272
272
  interface Hooks {
@@ -275,8 +275,7 @@ declare module "alepha" {
275
275
  entry: LogEntry;
276
276
  };
277
277
  }
278
- }
279
- //# sourceMappingURL=index.d.ts.map
278
+ } //# sourceMappingURL=index.d.ts.map
280
279
  //#endregion
281
280
  export { $logger, AlephaLogger, ConsoleColorProvider, ConsoleDestinationProvider, JsonFormatterProvider, LogDestinationProvider, LogEntry, LogFormatterProvider, Logger, LoggerPrimitiveOptions, MemoryDestinationProvider, PrettyFormatterProvider, logEntrySchema };
282
281
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/logger/schemas/logEntrySchema.ts","../../src/logger/providers/LogDestinationProvider.ts","../../src/logger/providers/LogFormatterProvider.ts","../../src/logger/services/Logger.ts","../../src/logger/primitives/$logger.ts","../../src/logger/providers/ConsoleColorProvider.ts","../../src/logger/providers/ConsoleDestinationProvider.ts","../../src/logger/providers/JsonFormatterProvider.ts","../../src/logger/providers/MemoryDestinationProvider.ts","../../src/logger/providers/PrettyFormatterProvider.ts","../../src/logger/index.ts"],"sourcesContent":[],"mappings":";;;;;cAEa,wBAAc;SAWzB,OAAA,CAAA;;;EAXW,MAAA,iBAWX;EAAA,OAAA,mBAAA,iBAAA;;;;;KAEU,QAAA,GAAW,cAAc;;;uBCbf,sBAAA;yCAC0B;;;;uBCD1B,oBAAA;yBACU;;;;AFDnB,cGUA,MAAA,YAAkB,eHC7B,CAAA;EAAA,mBAAA,MAAA,EGAyB,MHAzB;gCGC4B;kCACE;uCACK;6BAER;;;;;sBAcP;;aH9BK,CAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAAA,IAAA,KAAA,CAAA,CAAA,EAAA,MAAA;EAaf,UAAA,CAAQ,KAAA,EAAA,MAAiB,EAAA,GAAA,EAAA,MAAA,CAAd,EGsC0B,QHtCpB;;iCG6FW;;EF1GlB,IAAA,CAAA,OAAA,EAAA,MAAA,EAAA,IAAsB,CAAA,EAAA,OAAA,CACI,EAAA,IAAA;;;;ECD1B,UAAA,GAAA,CAAA,KAAA,ECyIC,QDzImB,EAAA,OACV,EAAA,MAAQ,EAAA,IAAA,CAAA,EAAA,OAAA,CAAA,EAAA,IAAA;wBC8KhB;;;;;;;AH/KxB;;;;;;;;;;;;;;AAaA;;cIOa;aAAoB,yBAA8B;EHpBzC,MAAA,EAAA,aAAA;;UGgCL,sBAAA;;AFhCjB;;;cGYa,oBAAA;;;;ILZA,GAAA,EAAA,MAAA;IAWX,KAAA,EAAA,MAAA;;;;;;;;;;;UAXyB,EAAA,MAAA;IAAA,KAAA,EAAA,MAAA;IAaf,IAAA,EAAA,MAAQ;;;;ECbE,CAAA;;;;ECAA,CAAA;6BGsCK;;;EF5Bd,SAAO,CAAA,CAAA,EAAA,OAAA;EACO,GAAA,CAAA,KAAA,EAAA,MAAA,OEgDH,oBAAA,CAAqB,MFhDlB,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;cGXd,0BAAA,SAAmC,sBAAA;;;;;cCCnC,qBAAA,SAA8B,oBAAA;gBACpB;yBAoBS;APtBhC;;;cQCa,yBAAA,SAAkC,sBAAA;qBAC1B,MAAM;;ERFd,CAAA,CAAA;EAWX,SAAA,OAAA,EAAA;;;kCQHuC;;;;;;;;URRd,EAAA,MAAA;IAAA,SAAA,EAAA,MAAA;EAaf,CAAA,GAAA;;;;ACbZ;;;cQGa,uBAAA,SAAgC,oBAAA;ETHhC,UAAA,KAAA,ESII,oBTOf;EAAA,UAAA,MAAA,ESNgB,MTMhB;gBSJqB;;;;;;;;+BAyFQ;;;;;;;;;;;ATnF/B;;;;ACbA;;;;ACAA;;;;ACUA;;;;;;;;;;;;;;;;ACUA;;;;;;AAYA;;;;ACpBA;;;;ACZA;;;;ACCA;;;;;;;;ACAA;;;;;;;cE6Fa,cAAY,OAAA,CAAA,QAoFvB,OAAA,CApFuB,MAAA;cAwFnB,mBAAS;EDnLF;;;;;;;;;;AC2Fb;AAoFG;;;;;WAIY,mBAAA,CAwCb,OAAA,CAAA,OAAA,CAxCa;EAAA;AAAA;;;;;EA6CgB,UAAA,mBAAA,gBAAA,CAAA,MAAA,GAAA,QAAA,GAAA,KAAA,CAAA,CAAA;EAYlB;eAAQ,QAAA,CAAA;EAAA,UAAA,GAAA,SAZU,OAYV,CAZkB,MAYlB,CAAA,OAZgC,SAYhC,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;aAAR"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/logger/schemas/logEntrySchema.ts","../../src/logger/providers/LogDestinationProvider.ts","../../src/logger/providers/LogFormatterProvider.ts","../../src/logger/services/Logger.ts","../../src/logger/primitives/$logger.ts","../../src/logger/providers/ConsoleColorProvider.ts","../../src/logger/providers/ConsoleDestinationProvider.ts","../../src/logger/providers/JsonFormatterProvider.ts","../../src/logger/providers/MemoryDestinationProvider.ts","../../src/logger/providers/PrettyFormatterProvider.ts","../../src/logger/index.ts"],"mappings":";;;;;cAEa,cAAA,UAAc,OAAA;EAAA,KAAA,EAWzB,OAAA,CAAA,OAAA;EAAA,OAAA;;;;;;;;KAEU,QAAA,GAAW,MAAA,QAAc,cAAA;;;uBCbf,sBAAA;EAAA,SAAA,MAAA,OAAA,UAAA,KAAA,EAC0B,QAAA;AAAA;;;uBCD1B,oBAAA;EAAA,SAAA,OAAA,KAAA,EACU,QAAA;AAAA;;;cCSnB,MAAA,YAAkB,eAAA;EAAA,mBAAA,MAAA,EACJ,MAAA;EAAA,mBAAA,SAAA,EACG,oBAAA;EAAA,mBAAA,WAAA,EACE,sBAAA;EAAA,mBAAA,gBAAA,EACK,gBAAA;EAAA,mBAAA,MAAA,EAER,MAAA;EAAA,mBAAA,OAAA;EAAA,mBAAA,MAAA;EAAA,mBAAA,GAAA;EAAA,UAAA,WAAA;EAAA,UAAA,QAAA,EAcP,QAAA;EAAA,YAAA,OAAA,UAAA,MAAA;EAAA,IAAA,QAAA;EAAA,IAAA,MAAA;EAAA,WAAA,KAAA,UAAA,GAAA,WAqB2B,QAAA;EAAA,QAAA,cAAA;EAAA,WAAA,SAAA,WAuDT,QAAA;EAAA,MAAA,OAAA,UAAA,IAAA;EAAA,KAAA,OAAA,UAAA,IAAA;EAAA,KAAA,OAAA,UAAA,IAAA;EAAA,MAAA,OAAA,UAAA,IAAA;EAAA,MAAA,OAAA,UAAA,IAAA;EAAA,UAAA,IAAA,KAAA,EA+BjB,QAAA,EAAA,OAAA,UAAA,IAAA;EAAA,UAAA,KAAA,KAAA,EAsCC,QAAA,EAAA,OAAA;AAAA;;;;AC3JxB;;;;;;AAYA;;;;ACpBA;;;;ACZA;;;;cFoBa,OAAA;EAAA,CAAA,OAAA,GAAoB,sBAAA,GAA8B,MAAA;EAAA;;UAY9C,sBAAA;EAAA,IAAA;AAAA;;;cCpBJ,oBAAA;EAAA,gBAAA,MAAA;IAAA,KAAA;IAAA,KAAA;IAAA,GAAA;IAAA,KAAA;IAAA,MAAA;IAAA,IAAA;IAAA,MAAA;IAAA,IAAA;IAAA,UAAA;IAAA,eAAA;IAAA,SAAA;IAAA,cAAA;IAAA,KAAA;IAAA,UAAA;IAAA,MAAA;IAAA,KAAA;IAAA,IAAA;IAAA,IAAA;IAAA,KAAA;IAAA,KAAA;EAAA;EAAA,mBAAA,GAAA;IAAA,QAAA;IAAA,WAAA;EAAA;EAAA,mBAAA,MAAA,EA0Bc,MAAA;EAAA,UAAA,OAAA;EAAA,YAAA;EAAA,UAAA;EAAA,IAAA,KAAA,eAqBH,oBAAA,CAAqB,MAAA,EAAA,IAAA,UAAA,KAAA;AAAA;;;cC3DhC,0BAAA,SAAmC,sBAAA;EAAA,MAAA,OAAA;AAAA;;;cCCnC,qBAAA,SAA8B,oBAAA;EAAA,OAAA,KAAA,EACpB,QAAA;EAAA,gBAAA,KAAA,EAoBS,KAAA;AAAA;;;cCrBnB,yBAAA,SAAkC,sBAAA;EAAA,UAAA,OAAA,EAC1B,KAAA,CAAM,QAAA;IAAA,SAAA;EAAA;EAAA,SAAA,OAAA;IAAA,UAAA;EAAA;EAAA,MAAA,SAAA,UAAA,KAAA,EAMc,QAAA;EAAA,IAAA,KAAA;IAAA,OAAA;IAAA,GAAA;IAAA,IAAA;IAAA,KAAA;IAAA,OAAA;IAAA,OAAA;IAAA,MAAA;IAAA,SAAA;EAAA;IAAA,SAAA;EAAA;EAAA,MAAA;AAAA;;;cCL5B,uBAAA,SAAgC,oBAAA;EAAA,UAAA,KAAA,EAC5B,oBAAA;EAAA,UAAA,MAAA,EACC,MAAA;EAAA,OAAA,KAAA,EAEK,QAAA;EAAA,gBAAA,SAAA;EAAA,UAAA,IAAA,GAAA,CAAA;EAAA,UAAA,IAAA,GAAA,CAAA;EAAA;;;EAAA,UAAA,cAAA,OAAA;EAAA,UAAA,YAAA,KAAA,EAyFQ,KAAA;AAAA;;;;ACF/B;AAoFG;;;;;;;AAIY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAxFF,YAAA,EAAY,OAAA,CAAA,OAAA,CAoFvB,OAAA,CApFuB,MAAA;AAAA,cAwFnB,SAAA,UAAS,OAAA;EAAA;;AAAA;;;;;;;;;;;;;;EAAA,SAAA,oBAwCb,OAAA,CAAA,OAAA;EAAA;;;;;;EAAA,UAAA;;;wBAK6B,OAAA,CAAQ,MAAA,QAAc,SAAA;EAAA,UAAA,KAAA;IAAA;;;IAAA;EAAA;EAAA,UAAA,KAAA;IAAA,GAAA;MAAA,OAAA;MAAA,KAAA,EAYxC,QAAA;IAAA;EAAA;AAAA"}