exisjs 0.7.5 → 0.7.7

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 (321) hide show
  1. package/dist/cli/commands/build.d.ts.map +1 -1
  2. package/dist/cli/commands/build.js +12 -0
  3. package/dist/cli/commands/build.js.map +1 -1
  4. package/dist/cli/commands/clean.d.ts +5 -0
  5. package/dist/cli/commands/clean.d.ts.map +1 -0
  6. package/dist/cli/commands/clean.js +30 -0
  7. package/dist/cli/commands/clean.js.map +1 -0
  8. package/dist/cli/commands/dev.d.ts.map +1 -1
  9. package/dist/cli/commands/dev.js +171 -86
  10. package/dist/cli/commands/dev.js.map +1 -1
  11. package/dist/cli/commands/generate.d.ts +6 -1
  12. package/dist/cli/commands/generate.d.ts.map +1 -1
  13. package/dist/cli/commands/generate.js +57 -2
  14. package/dist/cli/commands/generate.js.map +1 -1
  15. package/dist/cli/commands/start.d.ts.map +1 -1
  16. package/dist/cli/commands/start.js +54 -16
  17. package/dist/cli/commands/start.js.map +1 -1
  18. package/dist/cli/index.js +26 -3
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/cli/manifest.d.ts +1 -0
  21. package/dist/cli/manifest.d.ts.map +1 -1
  22. package/dist/cli/manifest.js +264 -33
  23. package/dist/cli/manifest.js.map +1 -1
  24. package/dist/cli/resolve-aliases.d.ts +1 -1
  25. package/dist/cli/resolve-aliases.d.ts.map +1 -1
  26. package/dist/cli/resolve-aliases.js +30 -13
  27. package/dist/cli/resolve-aliases.js.map +1 -1
  28. package/dist/config/config.d.ts +3 -1
  29. package/dist/config/config.d.ts.map +1 -1
  30. package/dist/config/config.js +9 -0
  31. package/dist/config/config.js.map +1 -1
  32. package/dist/config/types.d.ts +6 -0
  33. package/dist/config/types.d.ts.map +1 -1
  34. package/dist/cron/expressions.d.ts +45 -0
  35. package/dist/cron/expressions.d.ts.map +1 -0
  36. package/dist/cron/expressions.js +87 -0
  37. package/dist/cron/expressions.js.map +1 -0
  38. package/dist/cron/index.d.ts +6 -0
  39. package/dist/cron/index.d.ts.map +1 -0
  40. package/dist/cron/index.js +22 -0
  41. package/dist/cron/index.js.map +1 -0
  42. package/dist/cron/job.d.ts +50 -0
  43. package/dist/cron/job.d.ts.map +1 -0
  44. package/dist/cron/job.js +247 -0
  45. package/dist/cron/job.js.map +1 -0
  46. package/dist/cron/manager.d.ts +105 -0
  47. package/dist/cron/manager.d.ts.map +1 -0
  48. package/dist/cron/manager.js +245 -0
  49. package/dist/cron/manager.js.map +1 -0
  50. package/dist/cron/parser.d.ts +22 -0
  51. package/dist/cron/parser.d.ts.map +1 -0
  52. package/dist/cron/parser.js +269 -0
  53. package/dist/cron/parser.js.map +1 -0
  54. package/dist/cron/types.d.ts +76 -0
  55. package/dist/cron/types.d.ts.map +1 -0
  56. package/dist/cron/types.js +3 -0
  57. package/dist/cron/types.js.map +1 -0
  58. package/dist/decorators/constants.d.ts +2 -0
  59. package/dist/decorators/constants.d.ts.map +1 -1
  60. package/dist/decorators/constants.js +3 -1
  61. package/dist/decorators/constants.js.map +1 -1
  62. package/dist/decorators/core.d.ts +29 -11
  63. package/dist/decorators/core.d.ts.map +1 -1
  64. package/dist/decorators/core.js +49 -11
  65. package/dist/decorators/core.js.map +1 -1
  66. package/dist/decorators/cron.d.ts +57 -0
  67. package/dist/decorators/cron.d.ts.map +1 -0
  68. package/dist/decorators/cron.js +143 -0
  69. package/dist/decorators/cron.js.map +1 -0
  70. package/dist/decorators/index.d.ts +2 -0
  71. package/dist/decorators/index.d.ts.map +1 -1
  72. package/dist/decorators/index.js +2 -0
  73. package/dist/decorators/index.js.map +1 -1
  74. package/dist/decorators/middleware.d.ts +65 -2
  75. package/dist/decorators/middleware.d.ts.map +1 -1
  76. package/dist/decorators/middleware.js +148 -62
  77. package/dist/decorators/middleware.js.map +1 -1
  78. package/dist/decorators/params.d.ts +102 -2
  79. package/dist/decorators/params.d.ts.map +1 -1
  80. package/dist/decorators/params.js +105 -3
  81. package/dist/decorators/params.js.map +1 -1
  82. package/dist/decorators/response.d.ts.map +1 -1
  83. package/dist/decorators/response.js +32 -22
  84. package/dist/decorators/response.js.map +1 -1
  85. package/dist/decorators/routing.d.ts +81 -16
  86. package/dist/decorators/routing.d.ts.map +1 -1
  87. package/dist/decorators/routing.js +81 -16
  88. package/dist/decorators/routing.js.map +1 -1
  89. package/dist/di/container.d.ts.map +1 -1
  90. package/dist/di/container.js +6 -1
  91. package/dist/di/container.js.map +1 -1
  92. package/dist/docs/content/cli/commands.mdx +1 -1
  93. package/dist/docs/content/controllers.mdx +127 -10
  94. package/dist/docs/content/cron.mdx +196 -0
  95. package/dist/docs/content/decorators.mdx +22 -4
  96. package/dist/docs/content/errors.mdx +58 -9
  97. package/dist/docs/content/introduction.mdx +7 -7
  98. package/dist/docs/content/middleware.mdx +269 -6
  99. package/dist/docs/content/requests.mdx +180 -6
  100. package/dist/docs/content/responses.mdx +283 -32
  101. package/dist/docs/content/routing.mdx +46 -0
  102. package/dist/docs/content/swagger.mdx +228 -0
  103. package/dist/docs/content/validation.mdx +190 -11
  104. package/dist/docs/reference/context.mdx +11 -0
  105. package/dist/docs/reference/cron.mdx +300 -0
  106. package/dist/docs/reference/decorators.mdx +22 -4
  107. package/dist/docs/reference/error.mdx +88 -0
  108. package/dist/docs/reference/logger.mdx +175 -43
  109. package/dist/docs/reference/middleware.mdx +31 -0
  110. package/dist/docs/reference/router.mdx +22 -0
  111. package/dist/docs/reference/swagger.mdx +143 -0
  112. package/dist/docs/reference/validator.mdx +83 -23
  113. package/dist/error/errors.d.ts.map +1 -1
  114. package/dist/error/errors.js +95 -43
  115. package/dist/error/errors.js.map +1 -1
  116. package/dist/error/index.d.ts +1 -0
  117. package/dist/error/index.d.ts.map +1 -1
  118. package/dist/error/index.js +11 -1
  119. package/dist/error/index.js.map +1 -1
  120. package/dist/error/overlay.d.ts +42 -0
  121. package/dist/error/overlay.d.ts.map +1 -0
  122. package/dist/error/overlay.js +306 -0
  123. package/dist/error/overlay.js.map +1 -0
  124. package/dist/index.d.ts +1 -0
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +22 -1
  127. package/dist/index.js.map +1 -1
  128. package/dist/lib/start-server.js +33 -7
  129. package/dist/lib/start-server.js.map +1 -1
  130. package/dist/logger/index.d.ts +1 -1
  131. package/dist/logger/index.d.ts.map +1 -1
  132. package/dist/logger/index.js +9 -1
  133. package/dist/logger/index.js.map +1 -1
  134. package/dist/middleware/guard.d.ts +2 -2
  135. package/dist/middleware/guard.d.ts.map +1 -1
  136. package/dist/middleware/guard.js.map +1 -1
  137. package/dist/middleware/ip-filter.d.ts +1 -0
  138. package/dist/middleware/ip-filter.d.ts.map +1 -1
  139. package/dist/middleware/ip-filter.js +2 -0
  140. package/dist/middleware/ip-filter.js.map +1 -1
  141. package/dist/middleware/middleware.d.ts +2 -2
  142. package/dist/middleware/middleware.d.ts.map +1 -1
  143. package/dist/middleware/middleware.js +20 -2
  144. package/dist/middleware/middleware.js.map +1 -1
  145. package/dist/middleware/security.d.ts +43 -1
  146. package/dist/middleware/security.d.ts.map +1 -1
  147. package/dist/middleware/security.js +101 -0
  148. package/dist/middleware/security.js.map +1 -1
  149. package/dist/response/index.d.ts +229 -6
  150. package/dist/response/index.d.ts.map +1 -1
  151. package/dist/response/index.js +272 -2
  152. package/dist/response/index.js.map +1 -1
  153. package/dist/router/boundary.d.ts +41 -11
  154. package/dist/router/boundary.d.ts.map +1 -1
  155. package/dist/router/boundary.js +24 -2
  156. package/dist/router/boundary.js.map +1 -1
  157. package/dist/router/controller-registrar.d.ts.map +1 -1
  158. package/dist/router/controller-registrar.js +108 -4
  159. package/dist/router/controller-registrar.js.map +1 -1
  160. package/dist/router/index.d.ts +2 -2
  161. package/dist/router/index.d.ts.map +1 -1
  162. package/dist/router/index.js +2 -1
  163. package/dist/router/index.js.map +1 -1
  164. package/dist/router/route-builder.d.ts +262 -65
  165. package/dist/router/route-builder.d.ts.map +1 -1
  166. package/dist/router/route-builder.js +181 -23
  167. package/dist/router/route-builder.js.map +1 -1
  168. package/dist/router/route-scanner.d.ts +6 -0
  169. package/dist/router/route-scanner.d.ts.map +1 -1
  170. package/dist/router/route-scanner.js +71 -792
  171. package/dist/router/route-scanner.js.map +1 -1
  172. package/dist/router/router.d.ts.map +1 -1
  173. package/dist/router/router.js +62 -17
  174. package/dist/router/router.js.map +1 -1
  175. package/dist/router/scanner/boundary-loader.d.ts +18 -0
  176. package/dist/router/scanner/boundary-loader.d.ts.map +1 -0
  177. package/dist/router/scanner/boundary-loader.js +539 -0
  178. package/dist/router/scanner/boundary-loader.js.map +1 -0
  179. package/dist/router/scanner/cron-mounter.d.ts +15 -0
  180. package/dist/router/scanner/cron-mounter.d.ts.map +1 -0
  181. package/dist/router/scanner/cron-mounter.js +216 -0
  182. package/dist/router/scanner/cron-mounter.js.map +1 -0
  183. package/dist/router/scanner/error-mounter.d.ts +14 -0
  184. package/dist/router/scanner/error-mounter.d.ts.map +1 -0
  185. package/dist/router/scanner/error-mounter.js +200 -0
  186. package/dist/router/scanner/error-mounter.js.map +1 -0
  187. package/dist/router/scanner/fs-scanner.d.ts +25 -0
  188. package/dist/router/scanner/fs-scanner.d.ts.map +1 -0
  189. package/dist/router/scanner/fs-scanner.js +115 -0
  190. package/dist/router/scanner/fs-scanner.js.map +1 -0
  191. package/dist/router/scanner/functional-compiler.d.ts +9 -0
  192. package/dist/router/scanner/functional-compiler.d.ts.map +1 -0
  193. package/dist/router/scanner/functional-compiler.js +233 -0
  194. package/dist/router/scanner/functional-compiler.js.map +1 -0
  195. package/dist/router/scanner/index.d.ts +9 -0
  196. package/dist/router/scanner/index.d.ts.map +1 -0
  197. package/dist/router/scanner/index.js +19 -0
  198. package/dist/router/scanner/index.js.map +1 -0
  199. package/dist/router/types.d.ts +23 -0
  200. package/dist/router/types.d.ts.map +1 -1
  201. package/dist/server/app.d.ts +3 -0
  202. package/dist/server/app.d.ts.map +1 -1
  203. package/dist/server/app.js +13 -0
  204. package/dist/server/app.js.map +1 -1
  205. package/dist/server/bootstrapper.d.ts.map +1 -1
  206. package/dist/server/bootstrapper.js +91 -30
  207. package/dist/server/bootstrapper.js.map +1 -1
  208. package/dist/server/cluster.d.ts.map +1 -1
  209. package/dist/server/cluster.js +13 -2
  210. package/dist/server/cluster.js.map +1 -1
  211. package/dist/server/context.d.ts +8 -0
  212. package/dist/server/context.d.ts.map +1 -1
  213. package/dist/server/context.js +50 -6
  214. package/dist/server/context.js.map +1 -1
  215. package/dist/server/helpers/body-parser.d.ts +18 -0
  216. package/dist/server/helpers/body-parser.d.ts.map +1 -0
  217. package/dist/server/helpers/body-parser.js +246 -0
  218. package/dist/server/helpers/body-parser.js.map +1 -0
  219. package/dist/server/helpers/cookie.d.ts +4 -0
  220. package/dist/server/helpers/cookie.d.ts.map +1 -0
  221. package/dist/server/helpers/cookie.js +61 -0
  222. package/dist/server/helpers/cookie.js.map +1 -0
  223. package/dist/server/helpers/etag.d.ts +3 -0
  224. package/dist/server/helpers/etag.d.ts.map +1 -0
  225. package/dist/server/helpers/etag.js +25 -0
  226. package/dist/server/helpers/etag.js.map +1 -0
  227. package/dist/server/helpers/index.d.ts +6 -0
  228. package/dist/server/helpers/index.d.ts.map +1 -0
  229. package/dist/server/helpers/index.js +21 -0
  230. package/dist/server/helpers/index.js.map +1 -0
  231. package/dist/server/helpers/ip.d.ts +9 -0
  232. package/dist/server/helpers/ip.d.ts.map +1 -0
  233. package/dist/server/helpers/ip.js +62 -0
  234. package/dist/server/helpers/ip.js.map +1 -0
  235. package/dist/server/helpers/stream.d.ts +4 -0
  236. package/dist/server/helpers/stream.d.ts.map +1 -0
  237. package/dist/server/helpers/stream.js +193 -0
  238. package/dist/server/helpers/stream.js.map +1 -0
  239. package/dist/server/lifecycle.d.ts +22 -0
  240. package/dist/server/lifecycle.d.ts.map +1 -0
  241. package/dist/server/lifecycle.js +106 -0
  242. package/dist/server/lifecycle.js.map +1 -0
  243. package/dist/server/request-handler.d.ts +1 -0
  244. package/dist/server/request-handler.d.ts.map +1 -1
  245. package/dist/server/request-handler.js +27 -17
  246. package/dist/server/request-handler.js.map +1 -1
  247. package/dist/server/request.d.ts +1 -139
  248. package/dist/server/request.d.ts.map +1 -1
  249. package/dist/server/request.js +37 -433
  250. package/dist/server/request.js.map +1 -1
  251. package/dist/server/response.d.ts +112 -156
  252. package/dist/server/response.d.ts.map +1 -1
  253. package/dist/server/response.js +129 -279
  254. package/dist/server/response.js.map +1 -1
  255. package/dist/swagger/decorators.d.ts +81 -0
  256. package/dist/swagger/decorators.d.ts.map +1 -0
  257. package/dist/swagger/decorators.js +172 -0
  258. package/dist/swagger/decorators.js.map +1 -0
  259. package/dist/swagger/generator.d.ts +19 -0
  260. package/dist/swagger/generator.d.ts.map +1 -0
  261. package/dist/swagger/generator.js +344 -0
  262. package/dist/swagger/generator.js.map +1 -0
  263. package/dist/swagger/index.d.ts +31 -0
  264. package/dist/swagger/index.d.ts.map +1 -0
  265. package/dist/swagger/index.js +53 -0
  266. package/dist/swagger/index.js.map +1 -0
  267. package/dist/swagger/mounter.d.ts +7 -0
  268. package/dist/swagger/mounter.d.ts.map +1 -0
  269. package/dist/swagger/mounter.js +56 -0
  270. package/dist/swagger/mounter.js.map +1 -0
  271. package/dist/swagger/types.d.ts +190 -0
  272. package/dist/swagger/types.d.ts.map +1 -0
  273. package/dist/swagger/types.js +3 -0
  274. package/dist/swagger/types.js.map +1 -0
  275. package/dist/swagger/ui.d.ts +6 -0
  276. package/dist/swagger/ui.d.ts.map +1 -0
  277. package/dist/swagger/ui.js +118 -0
  278. package/dist/swagger/ui.js.map +1 -0
  279. package/dist/testing/index.d.ts.map +1 -1
  280. package/dist/testing/index.js +6 -1
  281. package/dist/testing/index.js.map +1 -1
  282. package/dist/testing/mocks.d.ts.map +1 -1
  283. package/dist/testing/mocks.js +15 -3
  284. package/dist/testing/mocks.js.map +1 -1
  285. package/dist/utils/logger.d.ts +8 -0
  286. package/dist/utils/logger.d.ts.map +1 -1
  287. package/dist/utils/logger.js +184 -1
  288. package/dist/utils/logger.js.map +1 -1
  289. package/dist/validator/builder.d.ts +223 -0
  290. package/dist/validator/builder.d.ts.map +1 -0
  291. package/dist/validator/builder.js +517 -0
  292. package/dist/validator/builder.js.map +1 -0
  293. package/dist/validator/engine.d.ts +19 -0
  294. package/dist/validator/engine.d.ts.map +1 -0
  295. package/dist/validator/engine.js +568 -0
  296. package/dist/validator/engine.js.map +1 -0
  297. package/dist/validator/error.d.ts +12 -0
  298. package/dist/validator/error.d.ts.map +1 -0
  299. package/dist/validator/error.js +63 -0
  300. package/dist/validator/error.js.map +1 -0
  301. package/dist/validator/pagination.d.ts +40 -0
  302. package/dist/validator/pagination.d.ts.map +1 -0
  303. package/dist/validator/pagination.js +60 -0
  304. package/dist/validator/pagination.js.map +1 -0
  305. package/dist/validator/tex-types.d.ts +2 -1
  306. package/dist/validator/tex-types.d.ts.map +1 -1
  307. package/dist/validator/tex-types.js +2 -1
  308. package/dist/validator/tex-types.js.map +1 -1
  309. package/dist/validator/tex.d.ts +6 -142
  310. package/dist/validator/tex.d.ts.map +1 -1
  311. package/dist/validator/tex.js +14 -733
  312. package/dist/validator/tex.js.map +1 -1
  313. package/dist/validator/types.d.ts +83 -0
  314. package/dist/validator/types.d.ts.map +1 -0
  315. package/dist/validator/types.js +3 -0
  316. package/dist/validator/types.js.map +1 -0
  317. package/package.json +8 -4
  318. package/dist/dev/error-overlay.d.ts +0 -3
  319. package/dist/dev/error-overlay.d.ts.map +0 -1
  320. package/dist/dev/error-overlay.js +0 -118
  321. package/dist/dev/error-overlay.js.map +0 -1
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineCron = exports.CronManager = void 0;
4
+ exports.cron = cron;
5
+ const job_1 = require("./job");
6
+ const expressions_1 = require("./expressions");
7
+ class CronManager {
8
+ constructor(app) {
9
+ this.jobs = new Map();
10
+ this.app = app;
11
+ }
12
+ /**
13
+ * Checks whether a cron job with the given name is registered.
14
+ */
15
+ has(name) {
16
+ return this.jobs.has(name);
17
+ }
18
+ /**
19
+ * Registers and optionally starts a scheduled background task or cron job.
20
+ *
21
+ * @param nameOrOptions Job name or configuration options
22
+ * @param schedule Optional cron schedule pattern if name is passed as first argument
23
+ * @param handler Optional execution handler if name is passed as first argument
24
+ * @param options Optional additional configuration options
25
+ * @returns Active `CronJob` instance
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * app.cron.schedule({
30
+ * name: 'nightly-backup',
31
+ * schedule: '0 2 * * *',
32
+ * timezone: 'UTC',
33
+ * run: async ({ log }) => {
34
+ * log.info('Running database backup')
35
+ * }
36
+ * })
37
+ * ```
38
+ */
39
+ schedule(nameOrOptions, schedule, handler, options) {
40
+ let opts;
41
+ if (typeof nameOrOptions === 'string') {
42
+ opts = {
43
+ name: nameOrOptions,
44
+ schedule: schedule,
45
+ run: handler,
46
+ ...options,
47
+ };
48
+ }
49
+ else {
50
+ opts = nameOrOptions;
51
+ }
52
+ const job = new job_1.CronJob(opts, this.app);
53
+ if (this.jobs.has(job.name)) {
54
+ this.app.log?.warn({ job: job.name }, `[exis:cron] Overwriting existing cron job "${job.name}"`);
55
+ this.jobs.get(job.name)?.stop();
56
+ }
57
+ this.jobs.set(job.name, job);
58
+ return job;
59
+ }
60
+ /**
61
+ * Schedules a recurring task using fixed millisecond intervals.
62
+ */
63
+ interval(name, ms, handler, options) {
64
+ return this.schedule({
65
+ name,
66
+ interval: ms,
67
+ run: handler,
68
+ ...options,
69
+ });
70
+ }
71
+ /**
72
+ * Schedules a one-time delayed task.
73
+ */
74
+ timeout(name, ms, handler, options) {
75
+ return this.schedule({
76
+ name,
77
+ timeout: ms,
78
+ run: handler,
79
+ ...options,
80
+ });
81
+ }
82
+ /**
83
+ * Retrieves a registered cron job by its unique identifier.
84
+ */
85
+ getJob(name) {
86
+ return this.jobs.get(name);
87
+ }
88
+ /**
89
+ * Returns a snapshot map of all registered cron jobs and their execution statistics.
90
+ */
91
+ getJobs() {
92
+ return this.jobs;
93
+ }
94
+ /**
95
+ * Returns an array of statistics for all registered jobs (last run, failure count, execution duration).
96
+ */
97
+ getStats() {
98
+ return Array.from(this.jobs.values()).map((job) => job.getStats());
99
+ }
100
+ /**
101
+ * Starts all registered idle, paused, or stopped cron jobs.
102
+ */
103
+ startAll() {
104
+ for (const job of this.jobs.values()) {
105
+ job.start();
106
+ }
107
+ }
108
+ /**
109
+ * Pauses all registered active cron jobs.
110
+ */
111
+ pauseAll() {
112
+ for (const job of this.jobs.values()) {
113
+ job.pause();
114
+ }
115
+ }
116
+ /**
117
+ * Permanently stops all registered cron jobs.
118
+ */
119
+ stopAll() {
120
+ for (const job of this.jobs.values()) {
121
+ job.stop();
122
+ }
123
+ }
124
+ /**
125
+ * Triggers immediate manual execution of a specific cron job by name.
126
+ */
127
+ async trigger(name) {
128
+ const job = this.jobs.get(name);
129
+ if (!job) {
130
+ throw new Error(`[exis:cron] Job "${name}" not found`);
131
+ }
132
+ return job.trigger();
133
+ }
134
+ /**
135
+ * Gracefully waits for all in-flight cron job executions to finish before server shutdown.
136
+ */
137
+ async drain(timeoutMs = 5000) {
138
+ const drainPromises = Array.from(this.jobs.values()).map((job) => job.drain(timeoutMs));
139
+ await Promise.all(drainPromises);
140
+ }
141
+ }
142
+ exports.CronManager = CronManager;
143
+ /**
144
+ * Declarative helper for creating scheduled background jobs and cron tasks.
145
+ *
146
+ * @param scheduleOrOptions Standard 5/6-field cron pattern (e.g. `'0 * * * *'`) or full `CronJobOptions`
147
+ * @param handler Execution function receiving `CronContext`
148
+ * @returns Functional cron definition ready for export
149
+ *
150
+ * @example
151
+ * ```ts
152
+ * // src/cron/cleanup.ts
153
+ * export default cron('0 0 * * *', async ({ log }) => {
154
+ * log.info('Running nightly cleanup')
155
+ * })
156
+ * ```
157
+ */
158
+ function cron(scheduleOrOptions, handler) {
159
+ let options;
160
+ if (typeof scheduleOrOptions === 'string') {
161
+ options = {
162
+ schedule: scheduleOrOptions,
163
+ run: handler,
164
+ };
165
+ }
166
+ else {
167
+ options = {
168
+ ...scheduleOrOptions,
169
+ run: handler || scheduleOrOptions.run || scheduleOrOptions.handle,
170
+ };
171
+ }
172
+ return {
173
+ __isExisCron: true,
174
+ options,
175
+ handler: options.run,
176
+ };
177
+ }
178
+ /**
179
+ * Schedules a cron job with human-readable English duration expressions.
180
+ *
181
+ * @param duration Natural language interval (e.g. `'5 minutes'`, `'1 hour'`, `'30 seconds'`, `'every weekday'`)
182
+ * @param handler Execution function receiving `CronContext`
183
+ * @param options Additional job options (retries, timezone, onError)
184
+ * @returns Functional cron definition
185
+ *
186
+ * @example
187
+ * ```ts
188
+ * export default cron.every('15 minutes', async ({ log }) => {
189
+ * log.info('Heartbeat check')
190
+ * })
191
+ * ```
192
+ */
193
+ cron.every = function (duration, handler, options = {}) {
194
+ return cron({
195
+ schedule: (0, expressions_1.every)(duration),
196
+ run: handler,
197
+ ...options,
198
+ });
199
+ };
200
+ /**
201
+ * Schedules a background task using millisecond fixed intervals with drift correction.
202
+ *
203
+ * @param ms Millisecond interval between executions
204
+ * @param handler Execution function receiving `CronContext`
205
+ * @param options Additional job options (retries, preventOverlap)
206
+ * @returns Functional cron definition
207
+ *
208
+ * @example
209
+ * ```ts
210
+ * export default cron.interval(60000, async ({ log }) => {
211
+ * log.info('Running every 60 seconds')
212
+ * })
213
+ * ```
214
+ */
215
+ cron.interval = function (ms, handler, options = {}) {
216
+ return cron({
217
+ interval: ms,
218
+ run: handler,
219
+ ...options,
220
+ });
221
+ };
222
+ /**
223
+ * Schedules a one-time background task to execute after a specified delay.
224
+ *
225
+ * @param ms Delay in milliseconds before execution
226
+ * @param handler Execution function receiving `CronContext`
227
+ * @param options Additional job options
228
+ * @returns Functional cron definition
229
+ *
230
+ * @example
231
+ * ```ts
232
+ * export default cron.timeout(5000, async ({ log }) => {
233
+ * log.info('Executed once after 5s startup delay')
234
+ * })
235
+ * ```
236
+ */
237
+ cron.timeout = function (ms, handler, options = {}) {
238
+ return cron({
239
+ timeout: ms,
240
+ run: handler,
241
+ ...options,
242
+ });
243
+ };
244
+ exports.defineCron = cron;
245
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/cron/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface ParsedCronPattern {
2
+ hasSeconds: boolean;
3
+ seconds: Set<number>;
4
+ minutes: Set<number>;
5
+ hours: Set<number>;
6
+ daysOfMonth: Set<number>;
7
+ months: Set<number>;
8
+ daysOfWeek: Set<number>;
9
+ }
10
+ /**
11
+ * Parses a 5 or 6 field cron expression into a structured pattern object.
12
+ */
13
+ export declare function parseCronExpression(expression: string): ParsedCronPattern;
14
+ /**
15
+ * Validates whether a cron expression is syntactically valid.
16
+ */
17
+ export declare function isValidCron(expression: string): boolean;
18
+ /**
19
+ * Calculates the next occurrence Date for a cron pattern from a base date.
20
+ */
21
+ export declare function getNextCronDate(pattern: ParsedCronPattern | string, fromDate?: Date, timezone?: string): Date;
22
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/cron/parser.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAClB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACxB;AA8ED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,CAkCzE;AAkFD;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,iBAAiB,GAAG,MAAM,EACnC,QAAQ,OAAa,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CAwDN"}
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseCronExpression = parseCronExpression;
4
+ exports.isValidCron = isValidCron;
5
+ exports.getNextCronDate = getNextCronDate;
6
+ const MONTH_NAMES = {
7
+ jan: 1,
8
+ feb: 2,
9
+ mar: 3,
10
+ apr: 4,
11
+ may: 5,
12
+ jun: 6,
13
+ jul: 7,
14
+ aug: 8,
15
+ sep: 9,
16
+ oct: 10,
17
+ nov: 11,
18
+ dec: 12,
19
+ };
20
+ const DAY_NAMES = {
21
+ sun: 0,
22
+ mon: 1,
23
+ tue: 2,
24
+ wed: 3,
25
+ thu: 4,
26
+ fri: 5,
27
+ sat: 6,
28
+ };
29
+ const MACROS = {
30
+ '@yearly': '0 0 1 1 *',
31
+ '@annually': '0 0 1 1 *',
32
+ '@monthly': '0 0 1 * *',
33
+ '@weekly': '0 0 * * 0',
34
+ '@daily': '0 0 * * *',
35
+ '@midnight': '0 0 * * *',
36
+ '@hourly': '0 * * * *',
37
+ };
38
+ /**
39
+ * Parses a single cron field expression (e.g. `*`, `1,2,5`, `10-20`, `* /5`, `L`, `W`).
40
+ */
41
+ function parseField(field, min, max, aliases) {
42
+ const result = new Set();
43
+ const str = field.trim().toLowerCase();
44
+ if (!str)
45
+ return result;
46
+ let normalized = str;
47
+ if (aliases) {
48
+ for (const [alias, val] of Object.entries(aliases)) {
49
+ normalized = normalized.replace(new RegExp(alias, 'g'), String(val));
50
+ }
51
+ }
52
+ const parts = normalized.split(',');
53
+ for (const part of parts) {
54
+ if (part === '*' || part === '?') {
55
+ for (let i = min; i <= max; i++)
56
+ result.add(i);
57
+ }
58
+ else if (part.includes('/')) {
59
+ const [rangeStr, stepStr] = part.split('/');
60
+ const step = parseInt(stepStr, 10);
61
+ if (isNaN(step) || step <= 0) {
62
+ throw new Error(`Invalid cron step: ${part}`);
63
+ }
64
+ let start = min;
65
+ let end = max;
66
+ if (rangeStr && rangeStr !== '*' && rangeStr !== '?') {
67
+ if (rangeStr.includes('-')) {
68
+ const [s, e] = rangeStr.split('-').map((v) => parseInt(v, 10));
69
+ start = isNaN(s) ? min : s;
70
+ end = isNaN(e) ? max : e;
71
+ }
72
+ else {
73
+ start = parseInt(rangeStr, 10);
74
+ }
75
+ }
76
+ for (let i = start; i <= end; i += step) {
77
+ if (i >= min && i <= max)
78
+ result.add(i);
79
+ }
80
+ }
81
+ else if (part.includes('-')) {
82
+ const [sStr, eStr] = part.split('-');
83
+ const s = parseInt(sStr, 10);
84
+ const e = parseInt(eStr, 10);
85
+ if (isNaN(s) || isNaN(e) || s > e || s < min || e > max) {
86
+ throw new Error(`Invalid cron range: ${part} (min: ${min}, max: ${max})`);
87
+ }
88
+ for (let i = s; i <= e; i++)
89
+ result.add(i);
90
+ }
91
+ else {
92
+ const val = parseInt(part, 10);
93
+ if (isNaN(val) || val < min || val > max) {
94
+ if (min === 0 && max === 6 && val === 7) {
95
+ result.add(0);
96
+ }
97
+ else {
98
+ throw new Error(`Invalid cron value: ${part} (expected ${min}-${max})`);
99
+ }
100
+ }
101
+ else {
102
+ result.add(val);
103
+ }
104
+ }
105
+ }
106
+ return result;
107
+ }
108
+ /**
109
+ * Parses a 5 or 6 field cron expression into a structured pattern object.
110
+ */
111
+ function parseCronExpression(expression) {
112
+ const trimmed = expression.trim();
113
+ const exp = MACROS[trimmed] || trimmed;
114
+ const tokens = exp.split(/\s+/).filter(Boolean);
115
+ if (tokens.length !== 5 && tokens.length !== 6) {
116
+ throw new Error(`Invalid cron expression "${expression}". Expected 5 or 6 fields, received ${tokens.length}.`);
117
+ }
118
+ const hasSeconds = tokens.length === 6;
119
+ let secStr = '0';
120
+ let minStr;
121
+ let hourStr;
122
+ let domStr;
123
+ let monthStr;
124
+ let dowStr;
125
+ if (hasSeconds) {
126
+ ;
127
+ [secStr, minStr, hourStr, domStr, monthStr, dowStr] = tokens;
128
+ }
129
+ else {
130
+ ;
131
+ [minStr, hourStr, domStr, monthStr, dowStr] = tokens;
132
+ }
133
+ return {
134
+ hasSeconds,
135
+ seconds: parseField(secStr, 0, 59),
136
+ minutes: parseField(minStr, 0, 59),
137
+ hours: parseField(hourStr, 0, 23),
138
+ daysOfMonth: parseField(domStr, 1, 31),
139
+ months: parseField(monthStr, 1, 12, MONTH_NAMES),
140
+ daysOfWeek: parseField(dowStr, 0, 6, DAY_NAMES),
141
+ };
142
+ }
143
+ const formatterCache = new Map();
144
+ function getFormatter(timezone) {
145
+ if (!timezone || timezone.toUpperCase() === 'UTC')
146
+ return null;
147
+ let fmt = formatterCache.get(timezone);
148
+ if (!fmt) {
149
+ fmt = new Intl.DateTimeFormat('en-US', {
150
+ timeZone: timezone,
151
+ year: 'numeric',
152
+ month: 'numeric',
153
+ day: 'numeric',
154
+ hour: 'numeric',
155
+ minute: 'numeric',
156
+ second: 'numeric',
157
+ weekday: 'short',
158
+ hour12: false,
159
+ });
160
+ formatterCache.set(timezone, fmt);
161
+ }
162
+ return fmt;
163
+ }
164
+ const dayOfWeekMap = {
165
+ Sun: 0,
166
+ Mon: 1,
167
+ Tue: 2,
168
+ Wed: 3,
169
+ Thu: 4,
170
+ Fri: 5,
171
+ Sat: 6,
172
+ };
173
+ /**
174
+ * Computes date parts in a given IANA timezone using cached formatter.
175
+ */
176
+ function getDatePartsInTimezone(date, timezone) {
177
+ const formatter = getFormatter(timezone);
178
+ if (!formatter) {
179
+ return {
180
+ year: date.getUTCFullYear(),
181
+ month: date.getUTCMonth() + 1,
182
+ day: date.getUTCDate(),
183
+ hour: date.getUTCHours(),
184
+ minute: date.getUTCMinutes(),
185
+ second: date.getUTCSeconds(),
186
+ dayOfWeek: date.getUTCDay(),
187
+ };
188
+ }
189
+ const parts = formatter.formatToParts(date);
190
+ const map = {};
191
+ for (const part of parts) {
192
+ map[part.type] = part.value;
193
+ }
194
+ let hour = parseInt(map.hour, 10);
195
+ if (hour === 24)
196
+ hour = 0;
197
+ return {
198
+ year: parseInt(map.year, 10),
199
+ month: parseInt(map.month, 10),
200
+ day: parseInt(map.day, 10),
201
+ hour,
202
+ minute: parseInt(map.minute, 10),
203
+ second: parseInt(map.second, 10),
204
+ dayOfWeek: dayOfWeekMap[map.weekday] ?? date.getUTCDay(),
205
+ };
206
+ }
207
+ /**
208
+ * Validates whether a cron expression is syntactically valid.
209
+ */
210
+ function isValidCron(expression) {
211
+ try {
212
+ parseCronExpression(expression);
213
+ return true;
214
+ }
215
+ catch {
216
+ return false;
217
+ }
218
+ }
219
+ /**
220
+ * Calculates the next occurrence Date for a cron pattern from a base date.
221
+ */
222
+ function getNextCronDate(pattern, fromDate = new Date(), timezone) {
223
+ const parsed = typeof pattern === 'string' ? parseCronExpression(pattern) : pattern;
224
+ const current = new Date(fromDate.getTime());
225
+ if (parsed.hasSeconds) {
226
+ current.setUTCSeconds(current.getUTCSeconds() + 1, 0);
227
+ }
228
+ else {
229
+ current.setUTCSeconds(0, 0);
230
+ current.setUTCMinutes(current.getUTCMinutes() + 1);
231
+ }
232
+ const stepMs = parsed.hasSeconds ? 1000 : 60 * 1000;
233
+ const maxIterations = 5 * 365 * 24 * 60; // 5 years
234
+ for (let i = 0; i < maxIterations; i++) {
235
+ const parts = getDatePartsInTimezone(current, timezone);
236
+ if (!parsed.months.has(parts.month)) {
237
+ current.setTime(current.getTime() + 12 * 60 * 60 * 1000);
238
+ continue;
239
+ }
240
+ const domMatch = parsed.daysOfMonth.has(parts.day);
241
+ const dowMatch = parsed.daysOfWeek.has(parts.dayOfWeek);
242
+ if (!domMatch || !dowMatch) {
243
+ current.setTime(current.getTime() + 12 * 60 * 60 * 1000);
244
+ continue;
245
+ }
246
+ if (!parsed.hours.has(parts.hour)) {
247
+ current.setTime(current.getTime() + 60 * 60 * 1000);
248
+ // Align to start of hour in current timezone
249
+ const hourPart = getDatePartsInTimezone(current, timezone);
250
+ if (hourPart.minute !== 0) {
251
+ current.setTime(current.getTime() - hourPart.minute * 60 * 1000);
252
+ }
253
+ continue;
254
+ }
255
+ if (!parsed.minutes.has(parts.minute)) {
256
+ current.setTime(current.getTime() + stepMs);
257
+ continue;
258
+ }
259
+ if (parsed.hasSeconds) {
260
+ if (!parsed.seconds.has(parts.second)) {
261
+ current.setTime(current.getTime() + 1000);
262
+ continue;
263
+ }
264
+ }
265
+ return current;
266
+ }
267
+ throw new Error('Unable to find next cron execution within 5-year window');
268
+ }
269
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/cron/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import type { App } from '../server/app';
2
+ import type { Logger } from '../types';
3
+ export type CronSchedule = string | Date | number;
4
+ export type OverlapPolicy = 'skip' | 'queue';
5
+ export type CronJobStatus = 'idle' | 'running' | 'paused' | 'stopped';
6
+ export interface CronJobOptions {
7
+ /** Unique name for the cron job */
8
+ name?: string;
9
+ /** Cron pattern (e.g. '0 0 * * *' or '0 *\/5 * * * *') */
10
+ schedule?: string;
11
+ /** Interval in milliseconds */
12
+ interval?: number;
13
+ /** Timeout delay in milliseconds (runs once) */
14
+ timeout?: number;
15
+ /** IANA Timezone string (e.g. 'UTC', 'America/New_York', 'Asia/Kolkata') */
16
+ timezone?: string;
17
+ /**
18
+ * If true, prevents concurrent executions if the job takes longer than its interval.
19
+ * Default: true
20
+ */
21
+ preventOverlap?: boolean;
22
+ /** Action to take when an execution overlaps ('skip' to drop, 'queue' to run immediately after) */
23
+ onOverlap?: OverlapPolicy;
24
+ /** Whether the job starts running automatically upon registration. Default: true */
25
+ autoStart?: boolean;
26
+ /** Number of retry attempts if the handler throws an error */
27
+ retries?: number;
28
+ /** Backoff strategy between retries in milliseconds */
29
+ retryDelayMs?: number;
30
+ /** Optional error hook specific to this job */
31
+ onError?: (err: Error, context: CronContext) => void | Promise<void>;
32
+ /** Handler function for the cron job */
33
+ run?: (context: CronContext) => any | Promise<any>;
34
+ /** Alternative handler key name */
35
+ handle?: (context: CronContext) => any | Promise<any>;
36
+ }
37
+ export interface CronContext {
38
+ /** The Exis application instance */
39
+ app: App<any>;
40
+ /** Structured logger */
41
+ log: Logger;
42
+ /** Name of the running job */
43
+ jobName: string;
44
+ /** Timestamp when this execution started */
45
+ startedAt: Date;
46
+ /** Current execution iteration count */
47
+ iteration: number;
48
+ /** Signal that aborts when the server initiates graceful shutdown */
49
+ signal?: AbortSignal;
50
+ }
51
+ export interface CronJobStats {
52
+ name: string;
53
+ status: CronJobStatus;
54
+ schedule?: string;
55
+ intervalMs?: number;
56
+ timezone?: string;
57
+ preventOverlap: boolean;
58
+ lastRun?: Date;
59
+ nextRun?: Date;
60
+ executionCount: number;
61
+ failureCount: number;
62
+ lastDurationMs?: number;
63
+ lastError?: string;
64
+ }
65
+ export interface IntervalOptions {
66
+ name?: string;
67
+ preventOverlap?: boolean;
68
+ autoStart?: boolean;
69
+ onError?: (err: Error, context: CronContext) => void | Promise<void>;
70
+ }
71
+ export interface TimeoutOptions {
72
+ name?: string;
73
+ autoStart?: boolean;
74
+ onError?: (err: Error, context: CronContext) => void | Promise<void>;
75
+ }
76
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cron/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cron/types.ts"],"names":[],"mappings":""}
@@ -9,6 +9,8 @@ export declare const PARAM_METADATA: unique symbol;
9
9
  export declare const SERVER_CONFIG: unique symbol;
10
10
  export declare const BOUNDARY_CONFIG: unique symbol;
11
11
  export declare const MODULE_METADATA: unique symbol;
12
+ export declare const CRON_REGISTRY: unique symbol;
13
+ export declare const CRON_META: unique symbol;
12
14
  export declare const ROUTE_META: unique symbol;
13
15
  export declare const METHOD_MIDDLEWARES: unique symbol;
14
16
  export declare const ROUTE_METADATA_PROP: unique symbol;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/decorators/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGvD,eAAO,MAAM,cAAc,eAA8B,CAAA;AACzD,eAAO,MAAM,iBAAiB,eAAyC,CAAA;AACvE,eAAO,MAAM,eAAe,eAAuC,CAAA;AACnE,eAAO,MAAM,mBAAmB,eAAmC,CAAA;AACnE,eAAO,MAAM,cAAc,eAAsC,CAAA;AACjE,eAAO,MAAM,kBAAkB,eAA0C,CAAA;AACzE,eAAO,MAAM,cAAc,eAAsC,CAAA;AACjE,eAAO,MAAM,aAAa,eAAqC,CAAA;AAC/D,eAAO,MAAM,eAAe,eAAuC,CAAA;AACnE,eAAO,MAAM,eAAe,eAAuC,CAAA;AAEnE,eAAO,MAAM,UAAU,eAAkC,CAAA;AACzD,eAAO,MAAM,kBAAkB,eAA0C,CAAA;AACzE,eAAO,MAAM,mBAAmB,eAA2C,CAAA;AAC3E,eAAO,MAAM,uBAAuB,eAEnC,CAAA;AACD,eAAO,MAAM,mBAAmB,eAA2C,CAAA;AAE3E,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACxC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,GAAG,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,YAAY,CAAC,EAAE,GAAG,EAAE,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAA;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;IACjB,YAAY,CAAC,EAAE,GAAG,CAAA;IAClB,WAAW,CAAC,EAAE,GAAG,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,WAAW,CAAC,EAAE,GAAG,EAAE,CAAA;IACnB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;CAChB"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/decorators/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGvD,eAAO,MAAM,cAAc,eAA8B,CAAA;AACzD,eAAO,MAAM,iBAAiB,eAAyC,CAAA;AACvE,eAAO,MAAM,eAAe,eAAuC,CAAA;AACnE,eAAO,MAAM,mBAAmB,eAAmC,CAAA;AACnE,eAAO,MAAM,cAAc,eAAsC,CAAA;AACjE,eAAO,MAAM,kBAAkB,eAA0C,CAAA;AACzE,eAAO,MAAM,cAAc,eAAsC,CAAA;AACjE,eAAO,MAAM,aAAa,eAAqC,CAAA;AAC/D,eAAO,MAAM,eAAe,eAAuC,CAAA;AACnE,eAAO,MAAM,eAAe,eAAuC,CAAA;AACnE,eAAO,MAAM,aAAa,eAAiC,CAAA;AAC3D,eAAO,MAAM,SAAS,eAAiC,CAAA;AAEvD,eAAO,MAAM,UAAU,eAAkC,CAAA;AACzD,eAAO,MAAM,kBAAkB,eAA0C,CAAA;AACzE,eAAO,MAAM,mBAAmB,eAA2C,CAAA;AAC3E,eAAO,MAAM,uBAAuB,eAEnC,CAAA;AACD,eAAO,MAAM,mBAAmB,eAA2C,CAAA;AAE3E,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACxC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,GAAG,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,YAAY,CAAC,EAAE,GAAG,EAAE,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAA;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;IACjB,YAAY,CAAC,EAAE,GAAG,CAAA;IAClB,WAAW,CAAC,EAAE,GAAG,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,WAAW,CAAC,EAAE,GAAG,EAAE,CAAA;IACnB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;CAChB"}