alepha 0.13.0 → 0.13.2

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 (461) hide show
  1. package/README.md +1 -1
  2. package/dist/api-files/index.d.ts +28 -91
  3. package/dist/api-files/index.js +10 -755
  4. package/dist/api-files/index.js.map +1 -1
  5. package/dist/api-jobs/index.d.ts +67 -67
  6. package/dist/api-jobs/index.js +13 -13
  7. package/dist/api-jobs/index.js.map +1 -1
  8. package/dist/api-notifications/index.d.ts +129 -146
  9. package/dist/api-notifications/index.js +17 -39
  10. package/dist/api-notifications/index.js.map +1 -1
  11. package/dist/api-parameters/index.d.ts +21 -22
  12. package/dist/api-parameters/index.js +22 -22
  13. package/dist/api-parameters/index.js.map +1 -1
  14. package/dist/api-users/index.d.ts +224 -2001
  15. package/dist/api-users/index.js +914 -4787
  16. package/dist/api-users/index.js.map +1 -1
  17. package/dist/api-verifications/index.d.ts +96 -96
  18. package/dist/batch/index.d.ts +13 -13
  19. package/dist/batch/index.js +8 -8
  20. package/dist/batch/index.js.map +1 -1
  21. package/dist/bucket/index.d.ts +14 -14
  22. package/dist/bucket/index.js +12 -12
  23. package/dist/bucket/index.js.map +1 -1
  24. package/dist/cache/index.d.ts +11 -11
  25. package/dist/cache/index.js +9 -9
  26. package/dist/cache/index.js.map +1 -1
  27. package/dist/cli/{dist-Sz2EXvQX.cjs → dist-Dl9Vl7Ur.js} +17 -13
  28. package/dist/cli/{dist-BBPjuQ56.js.map → dist-Dl9Vl7Ur.js.map} +1 -1
  29. package/dist/cli/index.d.ts +31 -37
  30. package/dist/cli/index.js +152 -83
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/command/index.d.ts +19 -19
  33. package/dist/command/index.js +25 -25
  34. package/dist/command/index.js.map +1 -1
  35. package/dist/core/index.browser.js +218 -218
  36. package/dist/core/index.browser.js.map +1 -1
  37. package/dist/core/index.d.ts +232 -232
  38. package/dist/core/index.js +218 -218
  39. package/dist/core/index.js.map +1 -1
  40. package/dist/core/{index.cjs → index.native.js} +304 -455
  41. package/dist/core/index.native.js.map +1 -0
  42. package/dist/datetime/index.d.ts +9 -9
  43. package/dist/datetime/index.js +7 -7
  44. package/dist/datetime/index.js.map +1 -1
  45. package/dist/email/index.d.ts +16 -16
  46. package/dist/email/index.js +80 -82
  47. package/dist/email/index.js.map +1 -1
  48. package/dist/file/index.js +1 -1
  49. package/dist/file/index.js.map +1 -1
  50. package/dist/lock/index.d.ts +9 -9
  51. package/dist/lock/index.js +8 -8
  52. package/dist/lock/index.js.map +1 -1
  53. package/dist/lock-redis/index.js +3 -66
  54. package/dist/lock-redis/index.js.map +1 -1
  55. package/dist/logger/index.d.ts +5 -5
  56. package/dist/logger/index.js +8 -8
  57. package/dist/logger/index.js.map +1 -1
  58. package/dist/orm/index.browser.js +114 -114
  59. package/dist/orm/index.browser.js.map +1 -1
  60. package/dist/orm/index.d.ts +219 -219
  61. package/dist/orm/index.js +46 -46
  62. package/dist/orm/index.js.map +1 -1
  63. package/dist/queue/index.d.ts +25 -25
  64. package/dist/queue/index.js +20 -20
  65. package/dist/queue/index.js.map +1 -1
  66. package/dist/queue-redis/index.d.ts +2 -2
  67. package/dist/redis/index.d.ts +10 -10
  68. package/dist/retry/index.d.ts +20 -20
  69. package/dist/retry/index.js +9 -9
  70. package/dist/retry/index.js.map +1 -1
  71. package/dist/scheduler/index.d.ts +12 -12
  72. package/dist/scheduler/index.js +9 -9
  73. package/dist/scheduler/index.js.map +1 -1
  74. package/dist/security/index.d.ts +53 -53
  75. package/dist/security/index.js +32 -32
  76. package/dist/security/index.js.map +1 -1
  77. package/dist/server/index.browser.js +1 -1
  78. package/dist/server/index.browser.js.map +1 -1
  79. package/dist/server/index.d.ts +101 -101
  80. package/dist/server/index.js +17 -17
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/server-auth/index.browser.js +4 -982
  83. package/dist/server-auth/index.browser.js.map +1 -1
  84. package/dist/server-auth/index.d.ts +204 -785
  85. package/dist/server-auth/index.js +47 -1239
  86. package/dist/server-auth/index.js.map +1 -1
  87. package/dist/server-cache/index.d.ts +10 -10
  88. package/dist/server-cache/index.js +2 -2
  89. package/dist/server-cache/index.js.map +1 -1
  90. package/dist/server-compress/index.d.ts +4 -4
  91. package/dist/server-compress/index.js +1 -1
  92. package/dist/server-compress/index.js.map +1 -1
  93. package/dist/server-cookies/index.browser.js +8 -8
  94. package/dist/server-cookies/index.browser.js.map +1 -1
  95. package/dist/server-cookies/index.d.ts +17 -17
  96. package/dist/server-cookies/index.js +10 -10
  97. package/dist/server-cookies/index.js.map +1 -1
  98. package/dist/server-cors/index.d.ts +17 -17
  99. package/dist/server-cors/index.js +9 -9
  100. package/dist/server-cors/index.js.map +1 -1
  101. package/dist/server-health/index.d.ts +2 -2
  102. package/dist/server-helmet/index.d.ts +1 -1
  103. package/dist/server-links/index.browser.js +12 -12
  104. package/dist/server-links/index.browser.js.map +1 -1
  105. package/dist/server-links/index.d.ts +59 -251
  106. package/dist/server-links/index.js +23 -502
  107. package/dist/server-links/index.js.map +1 -1
  108. package/dist/server-metrics/index.d.ts +4 -4
  109. package/dist/server-metrics/index.js +170 -174
  110. package/dist/server-metrics/index.js.map +1 -1
  111. package/dist/server-multipart/index.d.ts +2 -2
  112. package/dist/server-proxy/index.d.ts +12 -12
  113. package/dist/server-proxy/index.js +10 -10
  114. package/dist/server-proxy/index.js.map +1 -1
  115. package/dist/server-rate-limit/index.d.ts +22 -22
  116. package/dist/server-rate-limit/index.js +12 -12
  117. package/dist/server-rate-limit/index.js.map +1 -1
  118. package/dist/server-security/index.d.ts +24 -24
  119. package/dist/server-security/index.js +15 -15
  120. package/dist/server-security/index.js.map +1 -1
  121. package/dist/server-static/index.d.ts +14 -14
  122. package/dist/server-static/index.js +8 -8
  123. package/dist/server-static/index.js.map +1 -1
  124. package/dist/server-swagger/index.d.ts +25 -184
  125. package/dist/server-swagger/index.js +21 -724
  126. package/dist/server-swagger/index.js.map +1 -1
  127. package/dist/sms/index.d.ts +14 -14
  128. package/dist/sms/index.js +9 -9
  129. package/dist/sms/index.js.map +1 -1
  130. package/dist/thread/index.d.ts +11 -11
  131. package/dist/thread/index.js +17 -17
  132. package/dist/thread/index.js.map +1 -1
  133. package/dist/topic/index.d.ts +26 -26
  134. package/dist/topic/index.js +16 -16
  135. package/dist/topic/index.js.map +1 -1
  136. package/dist/topic-redis/index.d.ts +1 -1
  137. package/dist/vite/index.d.ts +3 -3
  138. package/dist/vite/index.js +12 -13
  139. package/dist/vite/index.js.map +1 -1
  140. package/dist/websocket/index.browser.js +11 -11
  141. package/dist/websocket/index.browser.js.map +1 -1
  142. package/dist/websocket/index.d.ts +51 -51
  143. package/dist/websocket/index.js +13 -13
  144. package/dist/websocket/index.js.map +1 -1
  145. package/package.json +62 -52
  146. package/src/api-files/services/FileService.ts +5 -7
  147. package/src/api-jobs/index.ts +1 -1
  148. package/src/api-jobs/{descriptors → primitives}/$job.ts +8 -8
  149. package/src/api-jobs/providers/JobProvider.ts +9 -9
  150. package/src/api-jobs/services/JobService.ts +5 -5
  151. package/src/api-notifications/index.ts +5 -15
  152. package/src/api-notifications/{descriptors → primitives}/$notification.ts +10 -10
  153. package/src/api-notifications/services/NotificationSenderService.ts +3 -3
  154. package/src/api-parameters/index.ts +1 -1
  155. package/src/api-parameters/{descriptors → primitives}/$config.ts +7 -12
  156. package/src/api-users/index.ts +1 -1
  157. package/src/api-users/{descriptors → primitives}/$userRealm.ts +8 -8
  158. package/src/api-users/providers/UserRealmProvider.ts +1 -1
  159. package/src/batch/index.ts +3 -3
  160. package/src/batch/{descriptors → primitives}/$batch.ts +13 -16
  161. package/src/bucket/index.ts +8 -8
  162. package/src/bucket/{descriptors → primitives}/$bucket.ts +8 -8
  163. package/src/bucket/providers/LocalFileStorageProvider.ts +3 -3
  164. package/src/cache/index.ts +4 -4
  165. package/src/cache/{descriptors → primitives}/$cache.ts +15 -15
  166. package/src/cli/apps/AlephaPackageBuilderCli.ts +30 -3
  167. package/src/cli/assets/appRouterTs.ts +9 -0
  168. package/src/cli/assets/indexHtml.ts +2 -1
  169. package/src/cli/assets/mainBrowserTs.ts +10 -0
  170. package/src/cli/commands/CoreCommands.ts +6 -5
  171. package/src/cli/commands/DrizzleCommands.ts +69 -61
  172. package/src/cli/commands/VerifyCommands.ts +2 -2
  173. package/src/cli/commands/ViteCommands.ts +6 -1
  174. package/src/cli/services/ProjectUtils.ts +78 -41
  175. package/src/command/index.ts +5 -5
  176. package/src/command/{descriptors → primitives}/$command.ts +9 -12
  177. package/src/command/providers/CliProvider.ts +10 -10
  178. package/src/core/Alepha.ts +30 -33
  179. package/src/core/constants/KIND.ts +1 -1
  180. package/src/core/constants/OPTIONS.ts +1 -1
  181. package/src/core/helpers/{descriptor.ts → primitive.ts} +18 -18
  182. package/src/core/helpers/ref.ts +1 -1
  183. package/src/core/index.shared.ts +8 -8
  184. package/src/core/{descriptors → primitives}/$context.ts +5 -5
  185. package/src/core/{descriptors → primitives}/$hook.ts +4 -4
  186. package/src/core/{descriptors → primitives}/$inject.ts +2 -2
  187. package/src/core/{descriptors → primitives}/$module.ts +9 -9
  188. package/src/core/{descriptors → primitives}/$use.ts +2 -2
  189. package/src/core/providers/CodecManager.ts +1 -1
  190. package/src/core/providers/JsonSchemaCodec.ts +1 -1
  191. package/src/core/providers/StateManager.ts +2 -2
  192. package/src/datetime/index.ts +3 -3
  193. package/src/datetime/{descriptors → primitives}/$interval.ts +6 -6
  194. package/src/email/index.ts +4 -4
  195. package/src/email/{descriptors → primitives}/$email.ts +8 -8
  196. package/src/file/index.ts +1 -1
  197. package/src/lock/index.ts +3 -3
  198. package/src/lock/{descriptors → primitives}/$lock.ts +10 -10
  199. package/src/logger/index.ts +8 -8
  200. package/src/logger/{descriptors → primitives}/$logger.ts +2 -2
  201. package/src/logger/services/Logger.ts +1 -1
  202. package/src/orm/constants/PG_SYMBOLS.ts +2 -2
  203. package/src/orm/index.browser.ts +2 -2
  204. package/src/orm/index.ts +8 -8
  205. package/src/orm/{descriptors → primitives}/$entity.ts +11 -11
  206. package/src/orm/{descriptors → primitives}/$repository.ts +2 -2
  207. package/src/orm/{descriptors → primitives}/$sequence.ts +8 -8
  208. package/src/orm/{descriptors → primitives}/$transaction.ts +4 -4
  209. package/src/orm/providers/DrizzleKitProvider.ts +1 -1
  210. package/src/orm/providers/PostgresTypeProvider.ts +3 -3
  211. package/src/orm/providers/RepositoryProvider.ts +4 -4
  212. package/src/orm/providers/drivers/DatabaseProvider.ts +7 -7
  213. package/src/orm/services/ModelBuilder.ts +9 -9
  214. package/src/orm/services/PgRelationManager.ts +2 -2
  215. package/src/orm/services/PostgresModelBuilder.ts +5 -5
  216. package/src/orm/services/Repository.ts +7 -7
  217. package/src/orm/services/SqliteModelBuilder.ts +5 -5
  218. package/src/queue/index.ts +7 -7
  219. package/src/queue/{descriptors → primitives}/$consumer.ts +15 -15
  220. package/src/queue/{descriptors → primitives}/$queue.ts +12 -12
  221. package/src/queue/providers/WorkerProvider.ts +7 -7
  222. package/src/retry/index.ts +3 -3
  223. package/src/retry/{descriptors → primitives}/$retry.ts +19 -17
  224. package/src/scheduler/index.ts +3 -3
  225. package/src/scheduler/{descriptors → primitives}/$scheduler.ts +9 -9
  226. package/src/scheduler/providers/CronProvider.ts +1 -1
  227. package/src/security/index.ts +9 -9
  228. package/src/security/{descriptors → primitives}/$permission.ts +7 -7
  229. package/src/security/{descriptors → primitives}/$realm.ts +6 -12
  230. package/src/security/{descriptors → primitives}/$role.ts +12 -12
  231. package/src/security/{descriptors → primitives}/$serviceAccount.ts +8 -8
  232. package/src/server/index.browser.ts +1 -1
  233. package/src/server/index.ts +14 -14
  234. package/src/server/{descriptors → primitives}/$action.ts +13 -13
  235. package/src/server/{descriptors → primitives}/$route.ts +9 -9
  236. package/src/server/providers/NodeHttpServerProvider.ts +2 -2
  237. package/src/server/services/HttpClient.ts +1 -1
  238. package/src/server-auth/index.browser.ts +1 -1
  239. package/src/server-auth/index.ts +6 -6
  240. package/src/server-auth/{descriptors → primitives}/$auth.ts +10 -10
  241. package/src/server-auth/{descriptors → primitives}/$authCredentials.ts +4 -4
  242. package/src/server-auth/{descriptors → primitives}/$authGithub.ts +4 -4
  243. package/src/server-auth/{descriptors → primitives}/$authGoogle.ts +4 -4
  244. package/src/server-auth/providers/ServerAuthProvider.ts +4 -4
  245. package/src/server-cache/providers/ServerCacheProvider.ts +7 -7
  246. package/src/server-compress/providers/ServerCompressProvider.ts +3 -3
  247. package/src/server-cookies/index.browser.ts +2 -2
  248. package/src/server-cookies/index.ts +5 -5
  249. package/src/server-cookies/{descriptors → primitives}/$cookie.browser.ts +12 -12
  250. package/src/server-cookies/{descriptors → primitives}/$cookie.ts +13 -13
  251. package/src/server-cookies/providers/ServerCookiesProvider.ts +4 -4
  252. package/src/server-cookies/services/CookieParser.ts +1 -1
  253. package/src/server-cors/index.ts +3 -3
  254. package/src/server-cors/{descriptors → primitives}/$cors.ts +11 -13
  255. package/src/server-cors/providers/ServerCorsProvider.ts +5 -5
  256. package/src/server-links/index.browser.ts +5 -5
  257. package/src/server-links/index.ts +9 -9
  258. package/src/server-links/{descriptors → primitives}/$remote.ts +11 -11
  259. package/src/server-links/providers/LinkProvider.ts +7 -7
  260. package/src/server-links/providers/{RemoteDescriptorProvider.ts → RemotePrimitiveProvider.ts} +6 -6
  261. package/src/server-links/providers/ServerLinksProvider.ts +3 -3
  262. package/src/server-proxy/index.ts +3 -3
  263. package/src/server-proxy/{descriptors → primitives}/$proxy.ts +8 -8
  264. package/src/server-proxy/providers/ServerProxyProvider.ts +4 -4
  265. package/src/server-rate-limit/index.ts +6 -6
  266. package/src/server-rate-limit/{descriptors → primitives}/$rateLimit.ts +13 -13
  267. package/src/server-rate-limit/providers/ServerRateLimitProvider.ts +5 -5
  268. package/src/server-security/index.ts +3 -3
  269. package/src/server-security/{descriptors → primitives}/$basicAuth.ts +13 -13
  270. package/src/server-security/providers/ServerBasicAuthProvider.ts +5 -5
  271. package/src/server-security/providers/ServerSecurityProvider.ts +4 -4
  272. package/src/server-static/index.ts +3 -3
  273. package/src/server-static/{descriptors → primitives}/$serve.ts +8 -10
  274. package/src/server-static/providers/ServerStaticProvider.ts +6 -6
  275. package/src/server-swagger/index.ts +5 -5
  276. package/src/server-swagger/{descriptors → primitives}/$swagger.ts +9 -9
  277. package/src/server-swagger/providers/ServerSwaggerProvider.ts +11 -10
  278. package/src/sms/index.ts +4 -4
  279. package/src/sms/{descriptors → primitives}/$sms.ts +8 -8
  280. package/src/thread/index.ts +3 -3
  281. package/src/thread/{descriptors → primitives}/$thread.ts +13 -13
  282. package/src/thread/providers/ThreadProvider.ts +7 -9
  283. package/src/topic/index.ts +5 -5
  284. package/src/topic/{descriptors → primitives}/$subscriber.ts +14 -14
  285. package/src/topic/{descriptors → primitives}/$topic.ts +10 -10
  286. package/src/topic/providers/TopicProvider.ts +4 -4
  287. package/src/vite/helpers/boot.ts +3 -3
  288. package/src/vite/tasks/copyAssets.ts +1 -1
  289. package/src/vite/tasks/generateSitemap.ts +3 -3
  290. package/src/vite/tasks/prerenderPages.ts +2 -2
  291. package/src/vite/tasks/runAlepha.ts +2 -2
  292. package/src/websocket/index.browser.ts +3 -3
  293. package/src/websocket/index.shared.ts +2 -2
  294. package/src/websocket/index.ts +4 -4
  295. package/src/websocket/interfaces/WebSocketInterfaces.ts +3 -3
  296. package/src/websocket/{descriptors → primitives}/$channel.ts +10 -10
  297. package/src/websocket/{descriptors → primitives}/$websocket.ts +8 -8
  298. package/src/websocket/providers/NodeWebSocketServerProvider.ts +7 -7
  299. package/src/websocket/providers/WebSocketServerProvider.ts +3 -3
  300. package/src/websocket/services/WebSocketClient.ts +5 -5
  301. package/dist/api-files/index.cjs +0 -1293
  302. package/dist/api-files/index.cjs.map +0 -1
  303. package/dist/api-files/index.d.cts +0 -829
  304. package/dist/api-jobs/index.cjs +0 -274
  305. package/dist/api-jobs/index.cjs.map +0 -1
  306. package/dist/api-jobs/index.d.cts +0 -654
  307. package/dist/api-notifications/index.cjs +0 -380
  308. package/dist/api-notifications/index.cjs.map +0 -1
  309. package/dist/api-notifications/index.d.cts +0 -289
  310. package/dist/api-parameters/index.cjs +0 -66
  311. package/dist/api-parameters/index.cjs.map +0 -1
  312. package/dist/api-parameters/index.d.cts +0 -84
  313. package/dist/api-users/index.cjs +0 -6009
  314. package/dist/api-users/index.cjs.map +0 -1
  315. package/dist/api-users/index.d.cts +0 -4740
  316. package/dist/api-verifications/index.cjs +0 -407
  317. package/dist/api-verifications/index.cjs.map +0 -1
  318. package/dist/api-verifications/index.d.cts +0 -207
  319. package/dist/batch/index.cjs +0 -408
  320. package/dist/batch/index.cjs.map +0 -1
  321. package/dist/batch/index.d.cts +0 -330
  322. package/dist/bin/index.cjs +0 -17
  323. package/dist/bin/index.cjs.map +0 -1
  324. package/dist/bin/index.d.cts +0 -1
  325. package/dist/bucket/index.cjs +0 -303
  326. package/dist/bucket/index.cjs.map +0 -1
  327. package/dist/bucket/index.d.cts +0 -355
  328. package/dist/cache/index.cjs +0 -241
  329. package/dist/cache/index.cjs.map +0 -1
  330. package/dist/cache/index.d.cts +0 -202
  331. package/dist/cache-redis/index.cjs +0 -84
  332. package/dist/cache-redis/index.cjs.map +0 -1
  333. package/dist/cache-redis/index.d.cts +0 -40
  334. package/dist/cli/chunk-DSlc6foC.cjs +0 -43
  335. package/dist/cli/dist-BBPjuQ56.js +0 -2778
  336. package/dist/cli/dist-Sz2EXvQX.cjs.map +0 -1
  337. package/dist/cli/index.cjs +0 -1241
  338. package/dist/cli/index.cjs.map +0 -1
  339. package/dist/cli/index.d.cts +0 -422
  340. package/dist/command/index.cjs +0 -693
  341. package/dist/command/index.cjs.map +0 -1
  342. package/dist/command/index.d.cts +0 -340
  343. package/dist/core/index.cjs.map +0 -1
  344. package/dist/core/index.d.cts +0 -1927
  345. package/dist/datetime/index.cjs +0 -318
  346. package/dist/datetime/index.cjs.map +0 -1
  347. package/dist/datetime/index.d.cts +0 -145
  348. package/dist/email/index.cjs +0 -10874
  349. package/dist/email/index.cjs.map +0 -1
  350. package/dist/email/index.d.cts +0 -186
  351. package/dist/fake/index.cjs +0 -34641
  352. package/dist/fake/index.cjs.map +0 -1
  353. package/dist/fake/index.d.cts +0 -74
  354. package/dist/file/index.cjs +0 -1212
  355. package/dist/file/index.cjs.map +0 -1
  356. package/dist/file/index.d.cts +0 -698
  357. package/dist/lock/index.cjs +0 -226
  358. package/dist/lock/index.cjs.map +0 -1
  359. package/dist/lock/index.d.cts +0 -361
  360. package/dist/lock-redis/index.cjs +0 -113
  361. package/dist/lock-redis/index.cjs.map +0 -1
  362. package/dist/lock-redis/index.d.cts +0 -24
  363. package/dist/logger/index.cjs +0 -521
  364. package/dist/logger/index.cjs.map +0 -1
  365. package/dist/logger/index.d.cts +0 -281
  366. package/dist/orm/index.cjs +0 -2986
  367. package/dist/orm/index.cjs.map +0 -1
  368. package/dist/orm/index.d.cts +0 -2213
  369. package/dist/queue/index.cjs +0 -1044
  370. package/dist/queue/index.cjs.map +0 -1
  371. package/dist/queue/index.d.cts +0 -1265
  372. package/dist/queue-redis/index.cjs +0 -873
  373. package/dist/queue-redis/index.cjs.map +0 -1
  374. package/dist/queue-redis/index.d.cts +0 -82
  375. package/dist/redis/index.cjs +0 -153
  376. package/dist/redis/index.cjs.map +0 -1
  377. package/dist/redis/index.d.cts +0 -82
  378. package/dist/retry/index.cjs +0 -146
  379. package/dist/retry/index.cjs.map +0 -1
  380. package/dist/retry/index.d.cts +0 -172
  381. package/dist/router/index.cjs +0 -111
  382. package/dist/router/index.cjs.map +0 -1
  383. package/dist/router/index.d.cts +0 -46
  384. package/dist/scheduler/index.cjs +0 -576
  385. package/dist/scheduler/index.cjs.map +0 -1
  386. package/dist/scheduler/index.d.cts +0 -145
  387. package/dist/security/index.cjs +0 -2402
  388. package/dist/security/index.cjs.map +0 -1
  389. package/dist/security/index.d.cts +0 -598
  390. package/dist/server/index.cjs +0 -1680
  391. package/dist/server/index.cjs.map +0 -1
  392. package/dist/server/index.d.cts +0 -810
  393. package/dist/server-auth/index.cjs +0 -3146
  394. package/dist/server-auth/index.cjs.map +0 -1
  395. package/dist/server-auth/index.d.cts +0 -1164
  396. package/dist/server-cache/index.cjs +0 -252
  397. package/dist/server-cache/index.cjs.map +0 -1
  398. package/dist/server-cache/index.d.cts +0 -164
  399. package/dist/server-compress/index.cjs +0 -141
  400. package/dist/server-compress/index.cjs.map +0 -1
  401. package/dist/server-compress/index.d.cts +0 -38
  402. package/dist/server-cookies/index.cjs +0 -234
  403. package/dist/server-cookies/index.cjs.map +0 -1
  404. package/dist/server-cookies/index.d.cts +0 -144
  405. package/dist/server-cors/index.cjs +0 -201
  406. package/dist/server-cors/index.cjs.map +0 -1
  407. package/dist/server-cors/index.d.cts +0 -140
  408. package/dist/server-health/index.cjs +0 -62
  409. package/dist/server-health/index.cjs.map +0 -1
  410. package/dist/server-health/index.d.cts +0 -58
  411. package/dist/server-helmet/index.cjs +0 -131
  412. package/dist/server-helmet/index.cjs.map +0 -1
  413. package/dist/server-helmet/index.d.cts +0 -97
  414. package/dist/server-links/index.cjs +0 -992
  415. package/dist/server-links/index.cjs.map +0 -1
  416. package/dist/server-links/index.d.cts +0 -513
  417. package/dist/server-metrics/index.cjs +0 -4535
  418. package/dist/server-metrics/index.cjs.map +0 -1
  419. package/dist/server-metrics/index.d.cts +0 -35
  420. package/dist/server-multipart/index.cjs +0 -237
  421. package/dist/server-multipart/index.cjs.map +0 -1
  422. package/dist/server-multipart/index.d.cts +0 -50
  423. package/dist/server-proxy/index.cjs +0 -186
  424. package/dist/server-proxy/index.cjs.map +0 -1
  425. package/dist/server-proxy/index.d.cts +0 -234
  426. package/dist/server-rate-limit/index.cjs +0 -241
  427. package/dist/server-rate-limit/index.cjs.map +0 -1
  428. package/dist/server-rate-limit/index.d.cts +0 -183
  429. package/dist/server-security/index.cjs +0 -316
  430. package/dist/server-security/index.cjs.map +0 -1
  431. package/dist/server-security/index.d.cts +0 -173
  432. package/dist/server-static/index.cjs +0 -170
  433. package/dist/server-static/index.cjs.map +0 -1
  434. package/dist/server-static/index.d.cts +0 -121
  435. package/dist/server-swagger/index.cjs +0 -1021
  436. package/dist/server-swagger/index.cjs.map +0 -1
  437. package/dist/server-swagger/index.d.cts +0 -382
  438. package/dist/sms/index.cjs +0 -221
  439. package/dist/sms/index.cjs.map +0 -1
  440. package/dist/sms/index.d.cts +0 -130
  441. package/dist/thread/index.cjs +0 -350
  442. package/dist/thread/index.cjs.map +0 -1
  443. package/dist/thread/index.d.cts +0 -260
  444. package/dist/topic/index.cjs +0 -282
  445. package/dist/topic/index.cjs.map +0 -1
  446. package/dist/topic/index.d.cts +0 -523
  447. package/dist/topic-redis/index.cjs +0 -71
  448. package/dist/topic-redis/index.cjs.map +0 -1
  449. package/dist/topic-redis/index.d.cts +0 -42
  450. package/dist/vite/index.cjs +0 -1077
  451. package/dist/vite/index.cjs.map +0 -1
  452. package/dist/vite/index.d.cts +0 -542
  453. package/dist/websocket/index.cjs +0 -1117
  454. package/dist/websocket/index.cjs.map +0 -1
  455. package/dist/websocket/index.d.cts +0 -861
  456. package/src/api-notifications/providers/MemorySmsProvider.ts +0 -20
  457. package/src/api-notifications/providers/SmsProvider.ts +0 -8
  458. /package/src/core/{descriptors → primitives}/$atom.ts +0 -0
  459. /package/src/core/{descriptors → primitives}/$env.ts +0 -0
  460. /package/src/server-auth/{descriptors → primitives}/$authApple.ts +0 -0
  461. /package/src/server-links/{descriptors → primitives}/$client.ts +0 -0
@@ -1,576 +0,0 @@
1
- let alepha = require("alepha");
2
- let alepha_lock = require("alepha/lock");
3
- let alepha_datetime = require("alepha/datetime");
4
- let alepha_logger = require("alepha/logger");
5
-
6
- //#region ../../node_modules/cron-schedule/dist/utils.js
7
- function extractDateElements(date) {
8
- return {
9
- second: date.getSeconds(),
10
- minute: date.getMinutes(),
11
- hour: date.getHours(),
12
- day: date.getDate(),
13
- month: date.getMonth(),
14
- weekday: date.getDay(),
15
- year: date.getFullYear()
16
- };
17
- }
18
- function getDaysInMonth(year, month) {
19
- return new Date(year, month + 1, 0).getDate();
20
- }
21
- function getDaysBetweenWeekdays(weekday1, weekday2) {
22
- if (weekday1 <= weekday2) return weekday2 - weekday1;
23
- return 6 - weekday1 + weekday2 + 1;
24
- }
25
-
26
- //#endregion
27
- //#region ../../node_modules/cron-schedule/dist/cron.js
28
- var Cron = class {
29
- constructor({ seconds, minutes, hours, days, months, weekdays }) {
30
- if (!seconds || seconds.size === 0) throw new Error("There must be at least one allowed second.");
31
- if (!minutes || minutes.size === 0) throw new Error("There must be at least one allowed minute.");
32
- if (!hours || hours.size === 0) throw new Error("There must be at least one allowed hour.");
33
- if (!months || months.size === 0) throw new Error("There must be at least one allowed month.");
34
- if ((!weekdays || weekdays.size === 0) && (!days || days.size === 0)) throw new Error("There must be at least one allowed day or weekday.");
35
- this.seconds = Array.from(seconds).sort((a, b) => a - b);
36
- this.minutes = Array.from(minutes).sort((a, b) => a - b);
37
- this.hours = Array.from(hours).sort((a, b) => a - b);
38
- this.days = Array.from(days).sort((a, b) => a - b);
39
- this.months = Array.from(months).sort((a, b) => a - b);
40
- this.weekdays = Array.from(weekdays).sort((a, b) => a - b);
41
- const validateData = (name, data, constraint) => {
42
- if (data.some((x) => typeof x !== "number" || x % 1 !== 0 || x < constraint.min || x > constraint.max)) throw new Error(`${name} must only consist of integers which are within the range of ${constraint.min} and ${constraint.max}`);
43
- };
44
- validateData("seconds", this.seconds, {
45
- min: 0,
46
- max: 59
47
- });
48
- validateData("minutes", this.minutes, {
49
- min: 0,
50
- max: 59
51
- });
52
- validateData("hours", this.hours, {
53
- min: 0,
54
- max: 23
55
- });
56
- validateData("days", this.days, {
57
- min: 1,
58
- max: 31
59
- });
60
- validateData("months", this.months, {
61
- min: 0,
62
- max: 11
63
- });
64
- validateData("weekdays", this.weekdays, {
65
- min: 0,
66
- max: 6
67
- });
68
- this.reversed = {
69
- seconds: this.seconds.map((x) => x).reverse(),
70
- minutes: this.minutes.map((x) => x).reverse(),
71
- hours: this.hours.map((x) => x).reverse(),
72
- days: this.days.map((x) => x).reverse(),
73
- months: this.months.map((x) => x).reverse(),
74
- weekdays: this.weekdays.map((x) => x).reverse()
75
- };
76
- }
77
- /**
78
- * Find the next or previous hour, starting from the given start hour that matches the hour constraint.
79
- * startHour itself might also be allowed.
80
- */
81
- findAllowedHour(dir, startHour) {
82
- return dir === "next" ? this.hours.find((x) => x >= startHour) : this.reversed.hours.find((x) => x <= startHour);
83
- }
84
- /**
85
- * Find the next or previous minute, starting from the given start minute that matches the minute constraint.
86
- * startMinute itself might also be allowed.
87
- */
88
- findAllowedMinute(dir, startMinute) {
89
- return dir === "next" ? this.minutes.find((x) => x >= startMinute) : this.reversed.minutes.find((x) => x <= startMinute);
90
- }
91
- /**
92
- * Find the next or previous second, starting from the given start second that matches the second constraint.
93
- * startSecond itself IS NOT allowed.
94
- */
95
- findAllowedSecond(dir, startSecond) {
96
- return dir === "next" ? this.seconds.find((x) => x > startSecond) : this.reversed.seconds.find((x) => x < startSecond);
97
- }
98
- /**
99
- * Find the next or previous time, starting from the given start time that matches the hour, minute
100
- * and second constraints. startTime itself might also be allowed.
101
- */
102
- findAllowedTime(dir, startTime) {
103
- let hour = this.findAllowedHour(dir, startTime.hour);
104
- if (hour !== void 0) if (hour === startTime.hour) {
105
- let minute = this.findAllowedMinute(dir, startTime.minute);
106
- if (minute !== void 0) if (minute === startTime.minute) {
107
- const second = this.findAllowedSecond(dir, startTime.second);
108
- if (second !== void 0) return {
109
- hour,
110
- minute,
111
- second
112
- };
113
- minute = this.findAllowedMinute(dir, dir === "next" ? startTime.minute + 1 : startTime.minute - 1);
114
- if (minute !== void 0) return {
115
- hour,
116
- minute,
117
- second: dir === "next" ? this.seconds[0] : this.reversed.seconds[0]
118
- };
119
- } else return {
120
- hour,
121
- minute,
122
- second: dir === "next" ? this.seconds[0] : this.reversed.seconds[0]
123
- };
124
- hour = this.findAllowedHour(dir, dir === "next" ? startTime.hour + 1 : startTime.hour - 1);
125
- if (hour !== void 0) return {
126
- hour,
127
- minute: dir === "next" ? this.minutes[0] : this.reversed.minutes[0],
128
- second: dir === "next" ? this.seconds[0] : this.reversed.seconds[0]
129
- };
130
- } else return {
131
- hour,
132
- minute: dir === "next" ? this.minutes[0] : this.reversed.minutes[0],
133
- second: dir === "next" ? this.seconds[0] : this.reversed.seconds[0]
134
- };
135
- }
136
- /**
137
- * Find the next or previous day in the given month, starting from the given startDay
138
- * that matches either the day or the weekday constraint. startDay itself might also be allowed.
139
- */
140
- findAllowedDayInMonth(dir, year, month, startDay) {
141
- var _a, _b;
142
- if (startDay < 1) throw new Error("startDay must not be smaller than 1.");
143
- const daysInMonth = getDaysInMonth(year, month);
144
- const daysRestricted = this.days.length !== 31;
145
- const weekdaysRestricted = this.weekdays.length !== 7;
146
- if (!daysRestricted && !weekdaysRestricted) {
147
- if (startDay > daysInMonth) return dir === "next" ? void 0 : daysInMonth;
148
- return startDay;
149
- }
150
- let allowedDayByDays;
151
- if (daysRestricted) {
152
- allowedDayByDays = dir === "next" ? this.days.find((x) => x >= startDay) : this.reversed.days.find((x) => x <= startDay);
153
- if (allowedDayByDays !== void 0 && allowedDayByDays > daysInMonth) allowedDayByDays = void 0;
154
- }
155
- let allowedDayByWeekdays;
156
- if (weekdaysRestricted) {
157
- const startWeekday = new Date(year, month, startDay).getDay();
158
- const nearestAllowedWeekday = dir === "next" ? (_a = this.weekdays.find((x) => x >= startWeekday)) !== null && _a !== void 0 ? _a : this.weekdays[0] : (_b = this.reversed.weekdays.find((x) => x <= startWeekday)) !== null && _b !== void 0 ? _b : this.reversed.weekdays[0];
159
- if (nearestAllowedWeekday !== void 0) {
160
- const daysBetweenWeekdays = dir === "next" ? getDaysBetweenWeekdays(startWeekday, nearestAllowedWeekday) : getDaysBetweenWeekdays(nearestAllowedWeekday, startWeekday);
161
- allowedDayByWeekdays = dir === "next" ? startDay + daysBetweenWeekdays : startDay - daysBetweenWeekdays;
162
- if (allowedDayByWeekdays > daysInMonth || allowedDayByWeekdays < 1) allowedDayByWeekdays = void 0;
163
- }
164
- }
165
- if (allowedDayByDays !== void 0 && allowedDayByWeekdays !== void 0) return dir === "next" ? Math.min(allowedDayByDays, allowedDayByWeekdays) : Math.max(allowedDayByDays, allowedDayByWeekdays);
166
- if (allowedDayByDays !== void 0) return allowedDayByDays;
167
- if (allowedDayByWeekdays !== void 0) return allowedDayByWeekdays;
168
- }
169
- /** Gets the next date starting from the given start date or now. */
170
- getNextDate(startDate = /* @__PURE__ */ new Date()) {
171
- const startDateElements = extractDateElements(startDate);
172
- let minYear = startDateElements.year;
173
- let startIndexMonth = this.months.findIndex((x) => x >= startDateElements.month);
174
- if (startIndexMonth === -1) {
175
- startIndexMonth = 0;
176
- minYear++;
177
- }
178
- const maxIterations = this.months.length * 5;
179
- for (let i = 0; i < maxIterations; i++) {
180
- const year = minYear + Math.floor((startIndexMonth + i) / this.months.length);
181
- const month = this.months[(startIndexMonth + i) % this.months.length];
182
- const isStartMonth = year === startDateElements.year && month === startDateElements.month;
183
- let day = this.findAllowedDayInMonth("next", year, month, isStartMonth ? startDateElements.day : 1);
184
- let isStartDay = isStartMonth && day === startDateElements.day;
185
- if (day !== void 0 && isStartDay) {
186
- const nextTime = this.findAllowedTime("next", startDateElements);
187
- if (nextTime !== void 0) return new Date(year, month, day, nextTime.hour, nextTime.minute, nextTime.second);
188
- day = this.findAllowedDayInMonth("next", year, month, day + 1);
189
- isStartDay = false;
190
- }
191
- if (day !== void 0 && !isStartDay) return new Date(year, month, day, this.hours[0], this.minutes[0], this.seconds[0]);
192
- }
193
- throw new Error("No valid next date was found.");
194
- }
195
- /** Gets the specified amount of future dates starting from the given start date or now. */
196
- getNextDates(amount, startDate) {
197
- const dates = [];
198
- let nextDate;
199
- for (let i = 0; i < amount; i++) {
200
- nextDate = this.getNextDate(nextDate !== null && nextDate !== void 0 ? nextDate : startDate);
201
- dates.push(nextDate);
202
- }
203
- return dates;
204
- }
205
- /**
206
- * Get an ES6 compatible iterator which iterates over the next dates starting from startDate or now.
207
- * The iterator runs until the optional endDate is reached or forever.
208
- */
209
- *getNextDatesIterator(startDate, endDate) {
210
- let nextDate;
211
- while (true) {
212
- nextDate = this.getNextDate(nextDate !== null && nextDate !== void 0 ? nextDate : startDate);
213
- if (endDate && endDate.getTime() < nextDate.getTime()) return;
214
- yield nextDate;
215
- }
216
- }
217
- /** Gets the previous date starting from the given start date or now. */
218
- getPrevDate(startDate = /* @__PURE__ */ new Date()) {
219
- const startDateElements = extractDateElements(startDate);
220
- let maxYear = startDateElements.year;
221
- let startIndexMonth = this.reversed.months.findIndex((x) => x <= startDateElements.month);
222
- if (startIndexMonth === -1) {
223
- startIndexMonth = 0;
224
- maxYear--;
225
- }
226
- const maxIterations = this.reversed.months.length * 5;
227
- for (let i = 0; i < maxIterations; i++) {
228
- const year = maxYear - Math.floor((startIndexMonth + i) / this.reversed.months.length);
229
- const month = this.reversed.months[(startIndexMonth + i) % this.reversed.months.length];
230
- const isStartMonth = year === startDateElements.year && month === startDateElements.month;
231
- let day = this.findAllowedDayInMonth("prev", year, month, isStartMonth ? startDateElements.day : getDaysInMonth(year, month));
232
- let isStartDay = isStartMonth && day === startDateElements.day;
233
- if (day !== void 0 && isStartDay) {
234
- const prevTime = this.findAllowedTime("prev", startDateElements);
235
- if (prevTime !== void 0) return new Date(year, month, day, prevTime.hour, prevTime.minute, prevTime.second);
236
- if (day > 1) {
237
- day = this.findAllowedDayInMonth("prev", year, month, day - 1);
238
- isStartDay = false;
239
- }
240
- }
241
- if (day !== void 0 && !isStartDay) return new Date(year, month, day, this.reversed.hours[0], this.reversed.minutes[0], this.reversed.seconds[0]);
242
- }
243
- throw new Error("No valid previous date was found.");
244
- }
245
- /** Gets the specified amount of previous dates starting from the given start date or now. */
246
- getPrevDates(amount, startDate) {
247
- const dates = [];
248
- let prevDate;
249
- for (let i = 0; i < amount; i++) {
250
- prevDate = this.getPrevDate(prevDate !== null && prevDate !== void 0 ? prevDate : startDate);
251
- dates.push(prevDate);
252
- }
253
- return dates;
254
- }
255
- /**
256
- * Get an ES6 compatible iterator which iterates over the previous dates starting from startDate or now.
257
- * The iterator runs until the optional endDate is reached or forever.
258
- */
259
- *getPrevDatesIterator(startDate, endDate) {
260
- let prevDate;
261
- while (true) {
262
- prevDate = this.getPrevDate(prevDate !== null && prevDate !== void 0 ? prevDate : startDate);
263
- if (endDate && endDate.getTime() > prevDate.getTime()) return;
264
- yield prevDate;
265
- }
266
- }
267
- /** Returns true when there is a cron date at the given date. */
268
- matchDate(date) {
269
- const { second, minute, hour, day, month, weekday } = extractDateElements(date);
270
- if (this.seconds.indexOf(second) === -1 || this.minutes.indexOf(minute) === -1 || this.hours.indexOf(hour) === -1 || this.months.indexOf(month) === -1) return false;
271
- if (this.days.length !== 31 && this.weekdays.length !== 7) return this.days.indexOf(day) !== -1 || this.weekdays.indexOf(weekday) !== -1;
272
- return this.days.indexOf(day) !== -1 && this.weekdays.indexOf(weekday) !== -1;
273
- }
274
- };
275
-
276
- //#endregion
277
- //#region ../../node_modules/cron-schedule/dist/cron-parser.js
278
- const secondConstraint = {
279
- min: 0,
280
- max: 59
281
- };
282
- const minuteConstraint = {
283
- min: 0,
284
- max: 59
285
- };
286
- const hourConstraint = {
287
- min: 0,
288
- max: 23
289
- };
290
- const dayConstraint = {
291
- min: 1,
292
- max: 31
293
- };
294
- const monthConstraint = {
295
- min: 1,
296
- max: 12,
297
- aliases: {
298
- jan: "1",
299
- feb: "2",
300
- mar: "3",
301
- apr: "4",
302
- may: "5",
303
- jun: "6",
304
- jul: "7",
305
- aug: "8",
306
- sep: "9",
307
- oct: "10",
308
- nov: "11",
309
- dec: "12"
310
- }
311
- };
312
- const weekdayConstraint = {
313
- min: 0,
314
- max: 7,
315
- aliases: {
316
- mon: "1",
317
- tue: "2",
318
- wed: "3",
319
- thu: "4",
320
- fri: "5",
321
- sat: "6",
322
- sun: "7"
323
- }
324
- };
325
- const timeNicknames = {
326
- "@yearly": "0 0 1 1 *",
327
- "@annually": "0 0 1 1 *",
328
- "@monthly": "0 0 1 * *",
329
- "@weekly": "0 0 * * 0",
330
- "@daily": "0 0 * * *",
331
- "@hourly": "0 * * * *",
332
- "@minutely": "* * * * *"
333
- };
334
- function parseElement(element, constraint) {
335
- const result = /* @__PURE__ */ new Set();
336
- if (element === "*") {
337
- for (let i = constraint.min; i <= constraint.max; i = i + 1) result.add(i);
338
- return result;
339
- }
340
- const listElements = element.split(",");
341
- if (listElements.length > 1) {
342
- for (const listElement of listElements) {
343
- const parsedListElement = parseElement(listElement, constraint);
344
- for (const x of parsedListElement) result.add(x);
345
- }
346
- return result;
347
- }
348
- const parseSingleElement = (singleElement) => {
349
- var _a, _b;
350
- singleElement = (_b = (_a = constraint.aliases) === null || _a === void 0 ? void 0 : _a[singleElement.toLowerCase()]) !== null && _b !== void 0 ? _b : singleElement;
351
- const parsedElement = Number.parseInt(singleElement, 10);
352
- if (Number.isNaN(parsedElement)) throw new Error(`Failed to parse ${element}: ${singleElement} is NaN.`);
353
- if (parsedElement < constraint.min || parsedElement > constraint.max) throw new Error(`Failed to parse ${element}: ${singleElement} is outside of constraint range of ${constraint.min} - ${constraint.max}.`);
354
- return parsedElement;
355
- };
356
- const rangeSegments = /^(([0-9a-zA-Z]+)-([0-9a-zA-Z]+)|\*)(\/([0-9]+))?$/.exec(element);
357
- if (rangeSegments === null) {
358
- result.add(parseSingleElement(element));
359
- return result;
360
- }
361
- let parsedStart = rangeSegments[1] === "*" ? constraint.min : parseSingleElement(rangeSegments[2]);
362
- const parsedEnd = rangeSegments[1] === "*" ? constraint.max : parseSingleElement(rangeSegments[3]);
363
- if (constraint === weekdayConstraint && parsedStart === 7 && parsedEnd !== 7) parsedStart = 0;
364
- if (parsedStart > parsedEnd) throw new Error(`Failed to parse ${element}: Invalid range (start: ${parsedStart}, end: ${parsedEnd}).`);
365
- const step = rangeSegments[5];
366
- let parsedStep = 1;
367
- if (step !== void 0) {
368
- parsedStep = Number.parseInt(step, 10);
369
- if (Number.isNaN(parsedStep)) throw new Error(`Failed to parse step: ${step} is NaN.`);
370
- if (parsedStep < 1) throw new Error(`Failed to parse step: Expected ${step} to be greater than 0.`);
371
- }
372
- for (let i = parsedStart; i <= parsedEnd; i = i + parsedStep) result.add(i);
373
- return result;
374
- }
375
- /** Parses a cron expression into a Cron instance. */
376
- function parseCronExpression(cronExpression) {
377
- var _a;
378
- if (typeof cronExpression !== "string") throw new TypeError("Invalid cron expression: must be of type string.");
379
- cronExpression = (_a = timeNicknames[cronExpression.toLowerCase()]) !== null && _a !== void 0 ? _a : cronExpression;
380
- const elements = cronExpression.split(" ").filter((elem) => elem.length > 0);
381
- if (elements.length < 5 || elements.length > 6) throw new Error("Invalid cron expression: expected 5 or 6 elements.");
382
- const rawSeconds = elements.length === 6 ? elements[0] : "0";
383
- const rawMinutes = elements.length === 6 ? elements[1] : elements[0];
384
- const rawHours = elements.length === 6 ? elements[2] : elements[1];
385
- const rawDays = elements.length === 6 ? elements[3] : elements[2];
386
- const rawMonths = elements.length === 6 ? elements[4] : elements[3];
387
- const rawWeekdays = elements.length === 6 ? elements[5] : elements[4];
388
- return new Cron({
389
- seconds: parseElement(rawSeconds, secondConstraint),
390
- minutes: parseElement(rawMinutes, minuteConstraint),
391
- hours: parseElement(rawHours, hourConstraint),
392
- days: parseElement(rawDays, dayConstraint),
393
- months: new Set(Array.from(parseElement(rawMonths, monthConstraint)).map((x) => x - 1)),
394
- weekdays: new Set(Array.from(parseElement(rawWeekdays, weekdayConstraint)).map((x) => x % 7))
395
- });
396
- }
397
-
398
- //#endregion
399
- //#region src/scheduler/providers/CronProvider.ts
400
- var CronProvider = class {
401
- dt = (0, alepha.$inject)(alepha_datetime.DateTimeProvider);
402
- alepha = (0, alepha.$inject)(alepha.Alepha);
403
- log = (0, alepha_logger.$logger)();
404
- cronJobs = [];
405
- getCronJobs() {
406
- return this.cronJobs;
407
- }
408
- start = (0, alepha.$hook)({
409
- on: "start",
410
- handler: () => {
411
- for (const cron of this.cronJobs) if (!cron.running) {
412
- cron.running = true;
413
- this.log.debug(`Starting cron task '${cron.name}' with '${cron.expression}'`);
414
- this.run(cron);
415
- }
416
- }
417
- });
418
- stop = (0, alepha.$hook)({
419
- on: "stop",
420
- handler: () => {
421
- for (const cron of this.cronJobs) this.abort(cron);
422
- }
423
- });
424
- boot(name) {
425
- const cron = typeof name === "string" ? this.cronJobs.find((c) => c.name === name) : name;
426
- if (!cron) return;
427
- cron.running = true;
428
- this.log.debug(`Starting cron task '${cron.name}' with '${cron.expression}'`);
429
- this.run(cron);
430
- }
431
- abort(name) {
432
- const cron = typeof name === "string" ? this.cronJobs.find((c) => c.name === name) : name;
433
- if (!cron) return;
434
- cron.running = false;
435
- cron.abort.abort();
436
- this.log.debug(`Cron task '${cron.name}' stopped`);
437
- }
438
- /**
439
- * Registers a cron job.
440
- *
441
- * It's automatically done when using the `$scheduler` descriptor but can also be used manually.
442
- */
443
- createCronJob(name, expression, handler, start) {
444
- const cron = {
445
- name,
446
- cron: parseCronExpression(expression),
447
- expression,
448
- handler,
449
- loop: true,
450
- abort: new AbortController()
451
- };
452
- this.cronJobs.push(cron);
453
- if (start && this.alepha.isStarted()) this.boot(cron);
454
- }
455
- run(task, now = this.dt.now()) {
456
- if (!task.running) return;
457
- const [next] = task.cron.getNextDates(1, now.toDate());
458
- if (!next) return;
459
- const duration = next.getTime() - now.toDate().getTime();
460
- task.abort = new AbortController();
461
- this.dt.wait(duration, {
462
- now: now.valueOf(),
463
- signal: task.abort.signal
464
- }).then(() => {
465
- if (!task.running) {
466
- this.log.trace("Cron task stopped before execution");
467
- return;
468
- }
469
- this.log.trace("Running cron task");
470
- task.handler({ now: this.dt.of(next) }).catch((err) => {
471
- if (task.onError) task.onError(err);
472
- else this.log.error("Error in cron task:", err);
473
- });
474
- if (task.loop) this.run(task, this.dt.of(next));
475
- }).catch((err) => {
476
- this.log.warn("Issue during cron waiting timer", err);
477
- });
478
- }
479
- };
480
-
481
- //#endregion
482
- //#region src/scheduler/descriptors/$scheduler.ts
483
- /**
484
- * Scheduler descriptor.
485
- */
486
- const $scheduler = (options) => {
487
- return (0, alepha.createDescriptor)(SchedulerDescriptor, options);
488
- };
489
- const envSchema = alepha.t.object({ SCHEDULER_PREFIX: alepha.t.optional(alepha.t.text({ description: "Prefix store key" })) });
490
- var SchedulerDescriptor = class extends alepha.Descriptor {
491
- log = (0, alepha_logger.$logger)();
492
- env = (0, alepha.$env)(envSchema);
493
- alepha = (0, alepha.$inject)(alepha.Alepha);
494
- dateTimeProvider = (0, alepha.$inject)(alepha_datetime.DateTimeProvider);
495
- cronProvider = (0, alepha.$inject)(CronProvider);
496
- get name() {
497
- return this.options.name ?? `${this.config.service.name}.${this.config.propertyKey}`;
498
- }
499
- onInit() {
500
- if (this.options.interval) this.dateTimeProvider.createInterval(() => this.trigger(), this.options.interval);
501
- if (this.options.cron) this.cronProvider.createCronJob(this.name, this.options.cron, () => this.trigger());
502
- }
503
- async trigger() {
504
- if (!this.alepha.isStarted()) return;
505
- const context = this.alepha.context.createContextId();
506
- await this.alepha.context.run(async () => {
507
- try {
508
- const now = this.dateTimeProvider.now();
509
- await this.alepha.events.emit("scheduler:begin", {
510
- name: this.name,
511
- now,
512
- context
513
- });
514
- if (this.options.lock !== false) await this.schedulerLock.run({ now });
515
- else await this.options.handler({ now });
516
- await this.alepha.events.emit("scheduler:success", {
517
- name: this.name,
518
- context
519
- }, { catch: true });
520
- } catch (error) {
521
- await this.alepha.events.emit("scheduler:error", {
522
- name: this.name,
523
- error,
524
- context
525
- }, { catch: true });
526
- this.log.error("Error running scheduler:", error);
527
- }
528
- await this.alepha.events.emit("scheduler:end", {
529
- name: this.name,
530
- context
531
- }, { catch: true });
532
- }, { context });
533
- }
534
- schedulerLock = (0, alepha_lock.$lock)({
535
- name: () => {
536
- return `${this.env.SCHEDULER_PREFIX ? `${this.env.SCHEDULER_PREFIX}:` : ""}scheduler:${this.name}`;
537
- },
538
- handler: async (args) => {
539
- await this.options.handler(args);
540
- }
541
- });
542
- };
543
- $scheduler[alepha.KIND] = SchedulerDescriptor;
544
-
545
- //#endregion
546
- //#region src/scheduler/constants/CRON.ts
547
- const CRON = {
548
- EVERY_MINUTE: "* * * * *",
549
- EVERY_5_MINUTES: "*/5 * * * *",
550
- EVERY_15_MINUTES: "*/15 * * * *",
551
- EVERY_30_MINUTES: "*/30 * * * *",
552
- EVERY_HOUR: "0 * * * *",
553
- EVERY_DAY_AT_MIDNIGHT: "0 0 * * *"
554
- };
555
-
556
- //#endregion
557
- //#region src/scheduler/index.ts
558
- /**
559
- * Generic interface for scheduling tasks.
560
- *
561
- * @see {@link $scheduler}
562
- * @module alepha.scheduler
563
- */
564
- const AlephaScheduler = (0, alepha.$module)({
565
- name: "alepha.scheduler",
566
- descriptors: [$scheduler],
567
- services: [alepha_lock.AlephaLock, CronProvider]
568
- });
569
-
570
- //#endregion
571
- exports.$scheduler = $scheduler;
572
- exports.AlephaScheduler = AlephaScheduler;
573
- exports.CRON = CRON;
574
- exports.CronProvider = CronProvider;
575
- exports.SchedulerDescriptor = SchedulerDescriptor;
576
- //# sourceMappingURL=index.cjs.map