@bgord/bun 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/README.md +1 -3
  2. package/dist/api-key-shield.middleware.d.ts +14 -0
  3. package/dist/api-key-shield.middleware.d.ts.map +1 -0
  4. package/dist/api-key-shield.middleware.js +19 -0
  5. package/dist/api-key-shield.middleware.js.map +1 -0
  6. package/dist/api-version.middleware.d.ts +6 -0
  7. package/dist/api-version.middleware.d.ts.map +1 -0
  8. package/dist/api-version.middleware.js +12 -0
  9. package/dist/api-version.middleware.js.map +1 -0
  10. package/dist/auth-shield.middleware.d.ts +31 -0
  11. package/dist/auth-shield.middleware.d.ts.map +1 -0
  12. package/dist/auth-shield.middleware.js +83 -0
  13. package/dist/auth-shield.middleware.js.map +1 -0
  14. package/dist/basic-auth.service.d.ts +14 -0
  15. package/dist/basic-auth.service.d.ts.map +1 -0
  16. package/dist/basic-auth.service.js +13 -0
  17. package/dist/basic-auth.service.js.map +1 -0
  18. package/dist/build-info-repository.service.d.ts +10 -0
  19. package/dist/build-info-repository.service.d.ts.map +1 -0
  20. package/dist/build-info-repository.service.js +18 -0
  21. package/dist/build-info-repository.service.js.map +1 -0
  22. package/dist/cache-resolver.service.d.ts +46 -0
  23. package/dist/cache-resolver.service.d.ts.map +1 -0
  24. package/dist/cache-resolver.service.js +44 -0
  25. package/dist/cache-resolver.service.js.map +1 -0
  26. package/dist/cache-response.middleware.d.ts +9 -0
  27. package/dist/cache-response.middleware.d.ts.map +1 -0
  28. package/dist/cache-response.middleware.js +25 -0
  29. package/dist/cache-response.middleware.js.map +1 -0
  30. package/dist/cache-static-files.middleware.d.ts +9 -0
  31. package/dist/cache-static-files.middleware.d.ts.map +1 -0
  32. package/dist/cache-static-files.middleware.js +25 -0
  33. package/dist/cache-static-files.middleware.js.map +1 -0
  34. package/dist/context.middleware.d.ts +14 -0
  35. package/dist/context.middleware.d.ts.map +1 -0
  36. package/dist/context.middleware.js +11 -0
  37. package/dist/context.middleware.js.map +1 -0
  38. package/dist/correlation-id.vo.d.ts +4 -0
  39. package/dist/correlation-id.vo.d.ts.map +1 -0
  40. package/dist/correlation-id.vo.js +3 -0
  41. package/dist/correlation-id.vo.js.map +1 -0
  42. package/dist/decorators.service.d.ts +12 -0
  43. package/dist/decorators.service.d.ts.map +1 -0
  44. package/dist/decorators.service.js +62 -0
  45. package/dist/decorators.service.js.map +1 -0
  46. package/dist/download-file.service.d.ts +13 -0
  47. package/dist/download-file.service.d.ts.map +1 -0
  48. package/dist/download-file.service.js +11 -0
  49. package/dist/download-file.service.js.map +1 -0
  50. package/dist/encryption.service.d.ts +25 -0
  51. package/dist/encryption.service.d.ts.map +1 -0
  52. package/dist/encryption.service.js +37 -0
  53. package/dist/encryption.service.js.map +1 -0
  54. package/dist/env-validator.service.d.ts +21 -0
  55. package/dist/env-validator.service.d.ts.map +1 -0
  56. package/dist/env-validator.service.js +28 -0
  57. package/dist/env-validator.service.js.map +1 -0
  58. package/dist/etag-extractor.middleware.d.ts +11 -0
  59. package/dist/etag-extractor.middleware.d.ts.map +1 -0
  60. package/dist/etag-extractor.middleware.js +18 -0
  61. package/dist/etag-extractor.middleware.js.map +1 -0
  62. package/dist/event-handler.service.d.ts +8 -0
  63. package/dist/event-handler.service.d.ts.map +1 -0
  64. package/dist/event-handler.service.js +21 -0
  65. package/dist/event-handler.service.js.map +1 -0
  66. package/dist/event-logger.service.d.ts +8 -0
  67. package/dist/event-logger.service.d.ts.map +1 -0
  68. package/dist/event-logger.service.js +19 -0
  69. package/dist/event-logger.service.js.map +1 -0
  70. package/dist/event.vo.d.ts +20 -0
  71. package/dist/event.vo.d.ts.map +1 -0
  72. package/dist/event.vo.js +23 -0
  73. package/dist/event.vo.js.map +1 -0
  74. package/dist/file-location.service.d.ts +32 -0
  75. package/dist/file-location.service.d.ts.map +1 -0
  76. package/dist/file-location.service.js +46 -0
  77. package/dist/file-location.service.js.map +1 -0
  78. package/dist/file-uploader.middleware.d.ts +13 -0
  79. package/dist/file-uploader.middleware.d.ts.map +1 -0
  80. package/dist/file-uploader.middleware.js +35 -0
  81. package/dist/file-uploader.middleware.js.map +1 -0
  82. package/dist/graceful-shutdown.service.d.ts +7 -0
  83. package/dist/graceful-shutdown.service.d.ts.map +1 -0
  84. package/dist/graceful-shutdown.service.js +32 -0
  85. package/dist/graceful-shutdown.service.js.map +1 -0
  86. package/dist/gzip.service.d.ts +13 -0
  87. package/dist/gzip.service.d.ts.map +1 -0
  88. package/dist/gzip.service.js +18 -0
  89. package/dist/gzip.service.js.map +1 -0
  90. package/dist/hcaptcha-shield.middleware.d.ts +23 -0
  91. package/dist/hcaptcha-shield.middleware.d.ts.map +1 -0
  92. package/dist/hcaptcha-shield.middleware.js +34 -0
  93. package/dist/hcaptcha-shield.middleware.js.map +1 -0
  94. package/dist/healthcheck.service.d.ts +22 -0
  95. package/dist/healthcheck.service.d.ts.map +1 -0
  96. package/dist/healthcheck.service.js +35 -0
  97. package/dist/healthcheck.service.js.map +1 -0
  98. package/dist/http-logger.middleware.d.ts +7 -0
  99. package/dist/http-logger.middleware.d.ts.map +1 -0
  100. package/dist/http-logger.middleware.js +89 -0
  101. package/dist/http-logger.middleware.js.map +1 -0
  102. package/dist/i18n.service.d.ts +22 -0
  103. package/dist/i18n.service.d.ts.map +1 -0
  104. package/dist/i18n.service.js +35 -0
  105. package/dist/i18n.service.js.map +1 -0
  106. package/dist/image-compressor.service.d.ts +15 -0
  107. package/dist/image-compressor.service.d.ts.map +1 -0
  108. package/dist/image-compressor.service.js +13 -0
  109. package/dist/image-compressor.service.js.map +1 -0
  110. package/dist/image-exif.service.d.ts +19 -0
  111. package/dist/image-exif.service.d.ts.map +1 -0
  112. package/dist/image-exif.service.js +21 -0
  113. package/dist/image-exif.service.js.map +1 -0
  114. package/dist/index.d.ts +50 -50
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +50 -50
  117. package/dist/index.js.map +1 -1
  118. package/dist/jobs.service.d.ts +33 -0
  119. package/dist/jobs.service.d.ts.map +1 -0
  120. package/dist/jobs.service.js +72 -0
  121. package/dist/jobs.service.js.map +1 -0
  122. package/dist/logger.service.d.ts +69 -0
  123. package/dist/logger.service.d.ts.map +1 -0
  124. package/dist/logger.service.js +87 -0
  125. package/dist/logger.service.js.map +1 -0
  126. package/dist/mailer.service.d.ts +38 -0
  127. package/dist/mailer.service.d.ts.map +1 -0
  128. package/dist/mailer.service.js +33 -0
  129. package/dist/mailer.service.js.map +1 -0
  130. package/dist/memory-consumption.service.d.ts +5 -0
  131. package/dist/memory-consumption.service.d.ts.map +1 -0
  132. package/dist/memory-consumption.service.js +8 -0
  133. package/dist/memory-consumption.service.js.map +1 -0
  134. package/dist/new-uuid.service.d.ts +4 -0
  135. package/dist/new-uuid.service.d.ts.map +1 -0
  136. package/dist/new-uuid.service.js +6 -0
  137. package/dist/new-uuid.service.js.map +1 -0
  138. package/dist/open-graph.service.d.ts +110 -0
  139. package/dist/open-graph.service.d.ts.map +1 -0
  140. package/dist/open-graph.service.js +172 -0
  141. package/dist/open-graph.service.js.map +1 -0
  142. package/dist/passwords.vo.d.ts +21 -0
  143. package/dist/passwords.vo.d.ts.map +1 -0
  144. package/dist/passwords.vo.js +42 -0
  145. package/dist/passwords.vo.js.map +1 -0
  146. package/dist/path.vo.d.ts +4 -0
  147. package/dist/path.vo.d.ts.map +1 -0
  148. package/dist/path.vo.js +3 -0
  149. package/dist/path.vo.js.map +1 -0
  150. package/dist/port.vo.d.ts +4 -0
  151. package/dist/port.vo.d.ts.map +1 -0
  152. package/dist/port.vo.js +3 -0
  153. package/dist/port.vo.js.map +1 -0
  154. package/dist/prerequisites/binary.d.ts +1 -1
  155. package/dist/prerequisites/binary.d.ts.map +1 -1
  156. package/dist/prerequisites/binary.js +1 -1
  157. package/dist/prerequisites/binary.js.map +1 -1
  158. package/dist/prerequisites/bun.d.ts +1 -1
  159. package/dist/prerequisites/bun.d.ts.map +1 -1
  160. package/dist/prerequisites/bun.js +1 -1
  161. package/dist/prerequisites/bun.js.map +1 -1
  162. package/dist/prerequisites/dependency-vulnerabilities.d.ts +1 -1
  163. package/dist/prerequisites/dependency-vulnerabilities.d.ts.map +1 -1
  164. package/dist/prerequisites/dependency-vulnerabilities.js +1 -1
  165. package/dist/prerequisites/dependency-vulnerabilities.js.map +1 -1
  166. package/dist/prerequisites/external-api.d.ts +1 -1
  167. package/dist/prerequisites/external-api.d.ts.map +1 -1
  168. package/dist/prerequisites/external-api.js +1 -1
  169. package/dist/prerequisites/external-api.js.map +1 -1
  170. package/dist/prerequisites/jobs.d.ts +2 -2
  171. package/dist/prerequisites/jobs.d.ts.map +1 -1
  172. package/dist/prerequisites/jobs.js +2 -2
  173. package/dist/prerequisites/jobs.js.map +1 -1
  174. package/dist/prerequisites/log-file.d.ts +2 -2
  175. package/dist/prerequisites/log-file.d.ts.map +1 -1
  176. package/dist/prerequisites/log-file.js +1 -1
  177. package/dist/prerequisites/log-file.js.map +1 -1
  178. package/dist/prerequisites/mailer.d.ts +2 -2
  179. package/dist/prerequisites/mailer.d.ts.map +1 -1
  180. package/dist/prerequisites/mailer.js +1 -1
  181. package/dist/prerequisites/mailer.js.map +1 -1
  182. package/dist/prerequisites/memory.d.ts +1 -1
  183. package/dist/prerequisites/memory.d.ts.map +1 -1
  184. package/dist/prerequisites/memory.js +2 -2
  185. package/dist/prerequisites/memory.js.map +1 -1
  186. package/dist/prerequisites/node.d.ts +1 -1
  187. package/dist/prerequisites/node.d.ts.map +1 -1
  188. package/dist/prerequisites/node.js +1 -1
  189. package/dist/prerequisites/node.js.map +1 -1
  190. package/dist/prerequisites/outside-connectivity.d.ts +1 -1
  191. package/dist/prerequisites/outside-connectivity.d.ts.map +1 -1
  192. package/dist/prerequisites/outside-connectivity.js +1 -1
  193. package/dist/prerequisites/outside-connectivity.js.map +1 -1
  194. package/dist/prerequisites/path.d.ts +1 -1
  195. package/dist/prerequisites/path.d.ts.map +1 -1
  196. package/dist/prerequisites/path.js +1 -1
  197. package/dist/prerequisites/path.js.map +1 -1
  198. package/dist/prerequisites/port.d.ts +2 -2
  199. package/dist/prerequisites/port.d.ts.map +1 -1
  200. package/dist/prerequisites/port.js +1 -1
  201. package/dist/prerequisites/port.js.map +1 -1
  202. package/dist/prerequisites/ram.d.ts +1 -1
  203. package/dist/prerequisites/ram.d.ts.map +1 -1
  204. package/dist/prerequisites/ram.js +1 -1
  205. package/dist/prerequisites/ram.js.map +1 -1
  206. package/dist/prerequisites/self.d.ts +1 -1
  207. package/dist/prerequisites/self.d.ts.map +1 -1
  208. package/dist/prerequisites/self.js +1 -1
  209. package/dist/prerequisites/self.js.map +1 -1
  210. package/dist/prerequisites/space.d.ts +1 -1
  211. package/dist/prerequisites/space.d.ts.map +1 -1
  212. package/dist/prerequisites/space.js +1 -1
  213. package/dist/prerequisites/space.js.map +1 -1
  214. package/dist/prerequisites/ssl-certificate-expiry.d.ts +1 -1
  215. package/dist/prerequisites/ssl-certificate-expiry.d.ts.map +1 -1
  216. package/dist/prerequisites/ssl-certificate-expiry.js +1 -1
  217. package/dist/prerequisites/ssl-certificate-expiry.js.map +1 -1
  218. package/dist/prerequisites/timezone-utc.d.ts +1 -1
  219. package/dist/prerequisites/timezone-utc.d.ts.map +1 -1
  220. package/dist/prerequisites/timezone-utc.js +1 -1
  221. package/dist/prerequisites/timezone-utc.js.map +1 -1
  222. package/dist/prerequisites/translations.d.ts +2 -2
  223. package/dist/prerequisites/translations.d.ts.map +1 -1
  224. package/dist/prerequisites/translations.js +2 -2
  225. package/dist/prerequisites/translations.js.map +1 -1
  226. package/dist/prerequisites.service.d.ts +49 -0
  227. package/dist/prerequisites.service.d.ts.map +1 -0
  228. package/dist/prerequisites.service.js +86 -0
  229. package/dist/prerequisites.service.js.map +1 -0
  230. package/dist/rate-limit-shield.middleware.d.ts +10 -0
  231. package/dist/rate-limit-shield.middleware.d.ts.map +1 -0
  232. package/dist/rate-limit-shield.middleware.js +21 -0
  233. package/dist/rate-limit-shield.middleware.js.map +1 -0
  234. package/dist/recaptcha-shield.middleware.d.ts +20 -0
  235. package/dist/recaptcha-shield.middleware.d.ts.map +1 -0
  236. package/dist/recaptcha-shield.middleware.js +50 -0
  237. package/dist/recaptcha-shield.middleware.js.map +1 -0
  238. package/dist/session-id.vo.d.ts +7 -0
  239. package/dist/session-id.vo.d.ts.map +1 -0
  240. package/dist/session-id.vo.js +10 -0
  241. package/dist/session-id.vo.js.map +1 -0
  242. package/dist/setup.service.d.ts +9 -0
  243. package/dist/setup.service.d.ts.map +1 -0
  244. package/dist/setup.service.js +39 -0
  245. package/dist/setup.service.js.map +1 -0
  246. package/dist/simulated-error.middleware.d.ts +4 -0
  247. package/dist/simulated-error.middleware.d.ts.map +1 -0
  248. package/dist/simulated-error.middleware.js +7 -0
  249. package/dist/simulated-error.middleware.js.map +1 -0
  250. package/dist/sitemap.service.d.ts +29 -0
  251. package/dist/sitemap.service.d.ts.map +1 -0
  252. package/dist/sitemap.service.js +57 -0
  253. package/dist/sitemap.service.js.map +1 -0
  254. package/dist/slower.middleware.d.ts +5 -0
  255. package/dist/slower.middleware.d.ts.map +1 -0
  256. package/dist/slower.middleware.js +8 -0
  257. package/dist/slower.middleware.js.map +1 -0
  258. package/dist/time-zone-offset.middleware.d.ts +15 -0
  259. package/dist/time-zone-offset.middleware.d.ts.map +1 -0
  260. package/dist/time-zone-offset.middleware.js +22 -0
  261. package/dist/time-zone-offset.middleware.js.map +1 -0
  262. package/dist/tsconfig.tsbuildinfo +1 -1
  263. package/dist/uptime.service.d.ts +9 -0
  264. package/dist/uptime.service.d.ts.map +1 -0
  265. package/dist/uptime.service.js +10 -0
  266. package/dist/uptime.service.js.map +1 -0
  267. package/dist/url-wo-trailing-slash.vo.d.ts +4 -0
  268. package/dist/url-wo-trailing-slash.vo.d.ts.map +1 -0
  269. package/dist/url-wo-trailing-slash.vo.js +9 -0
  270. package/dist/url-wo-trailing-slash.vo.js.map +1 -0
  271. package/dist/username.vo.d.ts +11 -0
  272. package/dist/username.vo.d.ts.map +1 -0
  273. package/dist/username.vo.js +13 -0
  274. package/dist/username.vo.js.map +1 -0
  275. package/dist/uuid.vo.d.ts +4 -0
  276. package/dist/uuid.vo.d.ts.map +1 -0
  277. package/dist/uuid.vo.js +4 -0
  278. package/dist/uuid.vo.js.map +1 -0
  279. package/dist/weak-etag-extractor.middleware.d.ts +7 -0
  280. package/dist/weak-etag-extractor.middleware.d.ts.map +1 -0
  281. package/dist/weak-etag-extractor.middleware.js +18 -0
  282. package/dist/weak-etag-extractor.middleware.js.map +1 -0
  283. package/package.json +2 -2
  284. package/src/{api-version.ts → api-version.middleware.ts} +1 -1
  285. package/src/{auth-shield.ts → auth-shield.middleware.ts} +3 -3
  286. package/src/{cache-response.ts → cache-response.middleware.ts} +1 -1
  287. package/src/{context.ts → context.middleware.ts} +2 -2
  288. package/src/{correlation-id.ts → correlation-id.vo.ts} +1 -1
  289. package/src/{decorators.ts → decorators.service.ts} +1 -1
  290. package/src/{event-handler.ts → event-handler.service.ts} +2 -2
  291. package/src/{event-logger.ts → event-logger.service.ts} +1 -1
  292. package/src/{event.ts → event.vo.ts} +1 -1
  293. package/src/{file-location.ts → file-location.service.ts} +1 -1
  294. package/src/{healthcheck.ts → healthcheck.service.ts} +4 -4
  295. package/src/{http-logger.ts → http-logger.middleware.ts} +4 -4
  296. package/src/{i18n.ts → i18n.service.ts} +2 -2
  297. package/src/{image-compressor.ts → image-compressor.service.ts} +1 -1
  298. package/src/{image-exif.ts → image-exif.service.ts} +1 -1
  299. package/src/index.ts +50 -50
  300. package/src/{jobs.ts → jobs.service.ts} +3 -3
  301. package/src/{logger.ts → logger.service.ts} +2 -2
  302. package/src/{mailer.ts → mailer.service.ts} +2 -2
  303. package/src/{open-graph.ts → open-graph.service.ts} +3 -3
  304. package/src/prerequisites/binary.ts +1 -1
  305. package/src/prerequisites/bun.ts +1 -1
  306. package/src/prerequisites/dependency-vulnerabilities.ts +1 -1
  307. package/src/prerequisites/external-api.ts +1 -1
  308. package/src/prerequisites/jobs.ts +2 -2
  309. package/src/prerequisites/log-file.ts +2 -2
  310. package/src/prerequisites/mailer.ts +2 -2
  311. package/src/prerequisites/memory.ts +2 -2
  312. package/src/prerequisites/node.ts +1 -1
  313. package/src/prerequisites/outside-connectivity.ts +1 -1
  314. package/src/prerequisites/path.ts +1 -1
  315. package/src/prerequisites/port.ts +2 -2
  316. package/src/prerequisites/ram.ts +1 -1
  317. package/src/prerequisites/self.ts +1 -1
  318. package/src/prerequisites/space.ts +1 -1
  319. package/src/prerequisites/ssl-certificate-expiry.ts +1 -1
  320. package/src/prerequisites/timezone-utc.ts +1 -1
  321. package/src/prerequisites/translations.ts +2 -2
  322. package/src/{prerequisites.ts → prerequisites.service.ts} +1 -0
  323. package/src/{rate-limit-shield.ts → rate-limit-shield.middleware.ts} +8 -2
  324. package/src/{setup.ts → setup.service.ts} +8 -8
  325. package/src/{sitemap.ts → sitemap.service.ts} +2 -2
  326. package/src/{uuid.ts → uuid.vo.ts} +1 -1
  327. package/src/{weak-etag-extractor.ts → weak-etag-extractor.middleware.ts} +1 -1
  328. /package/src/{api-key-shield.ts → api-key-shield.middleware.ts} +0 -0
  329. /package/src/{basic-auth.ts → basic-auth.service.ts} +0 -0
  330. /package/src/{build-info-repository.ts → build-info-repository.service.ts} +0 -0
  331. /package/src/{cache-resolver.ts → cache-resolver.service.ts} +0 -0
  332. /package/src/{cache-static-files.ts → cache-static-files.middleware.ts} +0 -0
  333. /package/src/{download-file.ts → download-file.service.ts} +0 -0
  334. /package/src/{encryption.ts → encryption.service.ts} +0 -0
  335. /package/src/{env-validator.ts → env-validator.service.ts} +0 -0
  336. /package/src/{etag-extractor.ts → etag-extractor.middleware.ts} +0 -0
  337. /package/src/{file-uploader.ts → file-uploader.middleware.ts} +0 -0
  338. /package/src/{graceful-shutdown.ts → graceful-shutdown.service.ts} +0 -0
  339. /package/src/{gzip.ts → gzip.service.ts} +0 -0
  340. /package/src/{hcaptcha-shield.ts → hcaptcha-shield.middleware.ts} +0 -0
  341. /package/src/{memory-consumption.ts → memory-consumption.service.ts} +0 -0
  342. /package/src/{new-uuid.ts → new-uuid.service.ts} +0 -0
  343. /package/src/{passwords.ts → passwords.vo.ts} +0 -0
  344. /package/src/{path.ts → path.vo.ts} +0 -0
  345. /package/src/{port.ts → port.vo.ts} +0 -0
  346. /package/src/{recaptcha-shield.ts → recaptcha-shield.middleware.ts} +0 -0
  347. /package/src/{session-id.ts → session-id.vo.ts} +0 -0
  348. /package/src/{simulated-error.ts → simulated-error.middleware.ts} +0 -0
  349. /package/src/{slower.ts → slower.middleware.ts} +0 -0
  350. /package/src/{time-zone-offset.ts → time-zone-offset.middleware.ts} +0 -0
  351. /package/src/{uptime.ts → uptime.service.ts} +0 -0
  352. /package/src/{url-wo-trailing-slash.ts → url-wo-trailing-slash.vo.ts} +0 -0
  353. /package/src/{username.ts → username.vo.ts} +0 -0
@@ -0,0 +1,33 @@
1
+ import { Cron } from "croner";
2
+ import { Logger } from "./logger.service";
3
+ export type JobNameType = string;
4
+ export type MultipleJobsType = Record<JobNameType, Cron>;
5
+ export declare enum UTC_DAY_OF_THE_WEEK {
6
+ Monday = 1,
7
+ Tuesday = 2,
8
+ Wednesday = 3,
9
+ Thursday = 4,
10
+ Friday = 5,
11
+ Saturday = 6,
12
+ Sunday = 0
13
+ }
14
+ export declare class Jobs {
15
+ static SCHEDULES: {
16
+ EVERY_MINUTE: string;
17
+ EVERY_HOUR: string;
18
+ };
19
+ static stopAll(jobs: MultipleJobsType): void;
20
+ static areAllRunning(jobs: MultipleJobsType): boolean;
21
+ }
22
+ export type JobProcessorType = {
23
+ cron: string;
24
+ label: JobNameType;
25
+ process: () => Promise<void>;
26
+ };
27
+ export declare class JobHandler {
28
+ private readonly logger;
29
+ constructor(logger: Logger);
30
+ handle(jobProcessor: JobProcessorType): () => Promise<void>;
31
+ protect(cron: Cron): () => Promise<void>;
32
+ }
33
+ //# sourceMappingURL=jobs.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.service.d.ts","sourceRoot":"","sources":["../src/jobs.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAEzD,oBAAY,mBAAmB;IAC7B,MAAM,IAAI;IACV,OAAO,IAAI;IACX,SAAS,IAAI;IACb,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,MAAM,IAAI;CACX;AAED,qBAAa,IAAI;IACf,MAAM,CAAC,SAAS;;;MAA0D;IAE1E,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB;IAIrC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;CAGtD;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C,MAAM,CAAC,YAAY,EAAE,gBAAgB;IAsCrC,OAAO,CAAC,IAAI,EAAE,IAAI;CAWnB"}
@@ -0,0 +1,72 @@
1
+ import * as tools from "@bgord/tools";
2
+ import { CorrelationId } from "./correlation-id.vo";
3
+ import { NewUUID } from "./new-uuid.service";
4
+ export var UTC_DAY_OF_THE_WEEK;
5
+ (function (UTC_DAY_OF_THE_WEEK) {
6
+ UTC_DAY_OF_THE_WEEK[UTC_DAY_OF_THE_WEEK["Monday"] = 1] = "Monday";
7
+ UTC_DAY_OF_THE_WEEK[UTC_DAY_OF_THE_WEEK["Tuesday"] = 2] = "Tuesday";
8
+ UTC_DAY_OF_THE_WEEK[UTC_DAY_OF_THE_WEEK["Wednesday"] = 3] = "Wednesday";
9
+ UTC_DAY_OF_THE_WEEK[UTC_DAY_OF_THE_WEEK["Thursday"] = 4] = "Thursday";
10
+ UTC_DAY_OF_THE_WEEK[UTC_DAY_OF_THE_WEEK["Friday"] = 5] = "Friday";
11
+ UTC_DAY_OF_THE_WEEK[UTC_DAY_OF_THE_WEEK["Saturday"] = 6] = "Saturday";
12
+ UTC_DAY_OF_THE_WEEK[UTC_DAY_OF_THE_WEEK["Sunday"] = 0] = "Sunday";
13
+ })(UTC_DAY_OF_THE_WEEK || (UTC_DAY_OF_THE_WEEK = {}));
14
+ export class Jobs {
15
+ static SCHEDULES = { EVERY_MINUTE: "* * * * *", EVERY_HOUR: "0 * * * *" };
16
+ static stopAll(jobs) {
17
+ Object.values(jobs).forEach((job) => job.stop());
18
+ }
19
+ static areAllRunning(jobs) {
20
+ return Object.values(jobs).every((job) => job.isRunning());
21
+ }
22
+ }
23
+ export class JobHandler {
24
+ logger;
25
+ constructor(logger) {
26
+ this.logger = logger;
27
+ }
28
+ handle(jobProcessor) {
29
+ const correlationId = CorrelationId.parse(NewUUID.generate());
30
+ // biome-ignore lint: lint/complexity/noUselessThisAlias
31
+ const that = this;
32
+ return async () => {
33
+ const stopwatch = new tools.Stopwatch();
34
+ try {
35
+ that.logger.info({
36
+ message: `${jobProcessor.label} start`,
37
+ operation: "job_start",
38
+ correlationId,
39
+ });
40
+ await jobProcessor.process();
41
+ that.logger.info({
42
+ message: `${jobProcessor.label} success`,
43
+ operation: "job_success",
44
+ correlationId,
45
+ metadata: stopwatch.stop(),
46
+ });
47
+ }
48
+ catch (error) {
49
+ that.logger.error({
50
+ message: `${jobProcessor.label} error`,
51
+ operation: "job_error",
52
+ correlationId,
53
+ metadata: {
54
+ ...that.logger.formatError(error),
55
+ ...stopwatch.stop(),
56
+ },
57
+ });
58
+ }
59
+ };
60
+ }
61
+ protect(cron) {
62
+ // biome-ignore lint: lint/complexity/noUselessThisAlias
63
+ const that = this;
64
+ return async () => {
65
+ that.logger.info({
66
+ message: `${cron.name} overrun`,
67
+ operation: "job_overrun",
68
+ });
69
+ };
70
+ }
71
+ }
72
+ //# sourceMappingURL=jobs.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.service.js","sourceRoot":"","sources":["../src/jobs.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAM7C,MAAM,CAAN,IAAY,mBAQX;AARD,WAAY,mBAAmB;IAC7B,iEAAU,CAAA;IACV,mEAAW,CAAA;IACX,uEAAa,CAAA;IACb,qEAAY,CAAA;IACZ,iEAAU,CAAA;IACV,qEAAY,CAAA;IACZ,iEAAU,CAAA;AACZ,CAAC,EARW,mBAAmB,KAAnB,mBAAmB,QAQ9B;AAED,MAAM,OAAO,IAAI;IACf,MAAM,CAAC,SAAS,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IAE1E,MAAM,CAAC,OAAO,CAAC,IAAsB;QACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAsB;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC;;AASH,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,MAAM,CAAC,YAA8B;QACnC,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9D,wDAAwD;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,KAAK,IAAI,EAAE;YAChB,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAExC,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACf,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,QAAQ;oBACtC,SAAS,EAAE,WAAW;oBACtB,aAAa;iBACd,CAAC,CAAC;gBAEH,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;gBAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACf,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,UAAU;oBACxC,SAAS,EAAE,aAAa;oBACxB,aAAa;oBACb,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE;iBAC3B,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAChB,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,QAAQ;oBACtC,SAAS,EAAE,WAAW;oBACtB,aAAa;oBACb,QAAQ,EAAE;wBACR,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;wBACjC,GAAG,SAAS,CAAC,IAAI,EAAE;qBACpB;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAU;QAChB,wDAAwD;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,KAAK,IAAI,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,UAAU;gBAC/B,SAAS,EAAE,aAAa;aACzB,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,69 @@
1
+ import * as tools from "@bgord/tools";
2
+ import { z } from "zod/v4";
3
+ import { CorrelationIdType } from "./correlation-id.vo";
4
+ import { NodeEnvironmentEnum } from "./node-env.vo";
5
+ import { PathType } from "./path.vo";
6
+ export declare enum LogLevelEnum {
7
+ /** @public */
8
+ silent = "silent",
9
+ error = "error",
10
+ warn = "warn",
11
+ info = "info",
12
+ http = "http",
13
+ verbose = "verbose"
14
+ }
15
+ export declare const LogLevel: z.ZodEnum<typeof LogLevelEnum>;
16
+ type LogTimestampType = number;
17
+ type LogAppType = string;
18
+ type LogEnvironmentType = NodeEnvironmentEnum;
19
+ type LogMessageType = string;
20
+ type LogOperationType = string;
21
+ type LogMetadataType = Record<string, any>;
22
+ type LogCorrelationIdType = CorrelationIdType;
23
+ type LogFullType = {
24
+ timestamp: LogTimestampType;
25
+ app: LogAppType;
26
+ environment: LogEnvironmentType;
27
+ level: LogLevelEnum;
28
+ message: LogMessageType;
29
+ operation: LogOperationType;
30
+ method: string;
31
+ url: string;
32
+ client: {
33
+ ip?: string;
34
+ userAgent?: string;
35
+ };
36
+ correlationId?: LogCorrelationIdType;
37
+ responseCode?: number;
38
+ durationMs?: tools.TimestampType;
39
+ metadata?: LogMetadataType;
40
+ };
41
+ type LogErrorType = Omit<LogFullType, "app" | "client" | "environment" | "duration" | "level" | "method" | "responseCode" | "timestamp" | "url">;
42
+ type LogWarnType = Omit<LogFullType, "app" | "client" | "environment" | "duration" | "level" | "method" | "responseCode" | "timestamp" | "url">;
43
+ type LogInfoType = Omit<LogFullType, "app" | "client" | "environment" | "duration" | "level" | "method" | "responseCode" | "timestamp" | "url">;
44
+ type LogHttpType = Omit<LogFullType, "app" | "environment" | "timestamp" | "level">;
45
+ type LoggerOptionsType = {
46
+ app: LogAppType;
47
+ environment: NodeEnvironmentEnum;
48
+ level?: LogLevelEnum;
49
+ };
50
+ export declare class Logger {
51
+ private readonly instance;
52
+ private readonly app;
53
+ private readonly environment;
54
+ private readonly level;
55
+ constructor(options: LoggerOptionsType);
56
+ private getBase;
57
+ info(log: LogInfoType): void;
58
+ error(log: LogErrorType): void;
59
+ warn(log: LogWarnType): void;
60
+ http(log: LogHttpType): void;
61
+ getProductionLogFilePath(): PathType;
62
+ formatError(_error: unknown): {
63
+ message: string;
64
+ name: string;
65
+ stack: string | undefined;
66
+ };
67
+ }
68
+ export {};
69
+ //# sourceMappingURL=logger.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../src/logger.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import * as tools from "@bgord/tools";
2
+ import * as winston from "winston";
3
+ import { z } from "zod/v4";
4
+ import { NodeEnvironmentEnum } from "./node-env.vo";
5
+ export var LogLevelEnum;
6
+ (function (LogLevelEnum) {
7
+ /** @public */
8
+ LogLevelEnum["silent"] = "silent";
9
+ LogLevelEnum["error"] = "error";
10
+ LogLevelEnum["warn"] = "warn";
11
+ LogLevelEnum["info"] = "info";
12
+ LogLevelEnum["http"] = "http";
13
+ LogLevelEnum["verbose"] = "verbose";
14
+ })(LogLevelEnum || (LogLevelEnum = {}));
15
+ export const LogLevel = z.enum(LogLevelEnum);
16
+ const levels = {
17
+ silent: 0,
18
+ error: 0,
19
+ warn: 1,
20
+ info: 2,
21
+ http: 3,
22
+ verbose: 4,
23
+ };
24
+ export class Logger {
25
+ instance;
26
+ app;
27
+ environment;
28
+ level = LogLevelEnum.verbose;
29
+ constructor(options) {
30
+ this.app = options.app;
31
+ this.environment = options.environment;
32
+ this.level = options.level ?? LogLevelEnum.verbose;
33
+ const formats = [
34
+ winston.format.json(),
35
+ this.environment !== NodeEnvironmentEnum.production ? winston.format.prettyPrint() : undefined,
36
+ ].filter(Boolean);
37
+ this.instance = winston.createLogger({
38
+ level: this.level,
39
+ levels,
40
+ handleExceptions: true,
41
+ handleRejections: true,
42
+ format: winston.format.combine(...formats),
43
+ transports: [new winston.transports.Console()],
44
+ });
45
+ if (this.environment === NodeEnvironmentEnum.production) {
46
+ this.instance.add(new winston.transports.File({
47
+ filename: this.getProductionLogFilePath(),
48
+ maxsize: tools.Size.toBytes({ unit: tools.SizeUnit.MB, value: 100 }),
49
+ }));
50
+ }
51
+ }
52
+ getBase() {
53
+ return {
54
+ app: this.app,
55
+ environment: this.environment,
56
+ timestamp: Date.now(),
57
+ };
58
+ }
59
+ info(log) {
60
+ this.instance.info({ level: LogLevelEnum.info, ...this.getBase(), ...log });
61
+ }
62
+ error(log) {
63
+ this.instance.error({
64
+ level: LogLevelEnum.error,
65
+ ...this.getBase(),
66
+ ...log,
67
+ });
68
+ }
69
+ warn(log) {
70
+ this.instance.warn({ level: LogLevelEnum.warn, ...this.getBase(), ...log });
71
+ }
72
+ http(log) {
73
+ this.instance.http({ level: LogLevelEnum.http, ...this.getBase(), ...log });
74
+ }
75
+ getProductionLogFilePath() {
76
+ return `/var/log/${this.app}-${this.environment}.log`;
77
+ }
78
+ formatError(_error) {
79
+ const error = _error;
80
+ return {
81
+ message: error?.message,
82
+ name: error?.name,
83
+ stack: error?.stack,
84
+ };
85
+ }
86
+ }
87
+ //# sourceMappingURL=logger.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.service.js","sourceRoot":"","sources":["../src/logger.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { SendMailOptions } from "nodemailer";
2
+ import { z } from "zod/v4";
3
+ export declare const SmtpHost: z.ZodString;
4
+ export type SmtpHostType = z.infer<typeof SmtpHost>;
5
+ export declare const SmtpPort: z.ZodCoercedNumber<unknown>;
6
+ export type SmtpPortType = z.infer<typeof SmtpPort>;
7
+ export declare const SmtpUser: z.ZodString;
8
+ export type SmtpUserType = z.infer<typeof SmtpUser>;
9
+ export declare const SmtpPass: z.ZodString;
10
+ export type SmtpPassType = z.infer<typeof SmtpPass>;
11
+ type MailerConfigType = {
12
+ SMTP_HOST: SmtpHostType;
13
+ SMTP_PORT: SmtpPortType;
14
+ SMTP_USER: SmtpUserType;
15
+ SMTP_PASS: SmtpPassType;
16
+ };
17
+ type MailerSendOptionsType = SendMailOptions;
18
+ export declare const EmailSubject: z.ZodString;
19
+ export type EmailSubjectType = z.infer<typeof EmailSubject>;
20
+ export declare const EmailContentHtml: z.ZodString;
21
+ export type EmailContentHtmlType = z.infer<typeof EmailContentHtml>;
22
+ export declare const EmailFrom: z.ZodEmail;
23
+ export type EmailFromType = z.infer<typeof EmailFrom>;
24
+ export declare const EmailTo: z.ZodEmail;
25
+ export type EmailToType = z.infer<typeof EmailTo>;
26
+ export declare const EmailAttachment: z.ZodObject<{
27
+ filename: z.ZodString;
28
+ path: z.ZodString;
29
+ }, z.core.$strip>;
30
+ export type EmailAttachmentType = z.infer<typeof EmailAttachment>;
31
+ export declare class Mailer {
32
+ private readonly transport;
33
+ constructor(config: MailerConfigType);
34
+ send(options: MailerSendOptionsType): Promise<unknown>;
35
+ verify(): Promise<true>;
36
+ }
37
+ export {};
38
+ //# sourceMappingURL=mailer.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailer.service.d.ts","sourceRoot":"","sources":["../src/mailer.service.ts"],"names":[],"mappings":"AAAA,OAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B,eAAO,MAAM,QAAQ,aAA2B,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEpD,eAAO,MAAM,QAAQ,6BAAO,CAAC;AAE7B,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEpD,eAAO,MAAM,QAAQ,aAA2B,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEpD,eAAO,MAAM,QAAQ,aAA2B,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEpD,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,YAAY,CAAC;IACxB,SAAS,EAAE,YAAY,CAAC;IACxB,SAAS,EAAE,YAAY,CAAC;IACxB,SAAS,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,KAAK,qBAAqB,GAAG,eAAe,CAAC;AAE7C,eAAO,MAAM,YAAY,aAA6B,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAE5D,eAAO,MAAM,gBAAgB,aAAgC,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEpE,eAAO,MAAM,SAAS,YAAY,CAAC;AAEnC,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAEtD,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAElD,eAAO,MAAM,eAAe;;;iBAA2C,CAAC;AAExE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAElE,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;gBAEvC,MAAM,EAAE,gBAAgB;IAW9B,IAAI,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD,MAAM;CAGb"}
@@ -0,0 +1,33 @@
1
+ import nodemailer from "nodemailer";
2
+ import { z } from "zod/v4";
3
+ import { Path } from "./path.vo";
4
+ import { Port } from "./port.vo";
5
+ export const SmtpHost = z.string().trim().min(1);
6
+ export const SmtpPort = Port;
7
+ export const SmtpUser = z.string().trim().min(1);
8
+ export const SmtpPass = z.string().trim().min(1);
9
+ export const EmailSubject = z.string().min(1).max(128);
10
+ export const EmailContentHtml = z.string().min(1).max(10_000);
11
+ export const EmailFrom = z.email();
12
+ export const EmailTo = z.email();
13
+ export const EmailAttachment = z.object({ filename: Path, path: Path });
14
+ export class Mailer {
15
+ transport;
16
+ constructor(config) {
17
+ this.transport = nodemailer.createTransport({
18
+ host: config.SMTP_HOST,
19
+ port: config.SMTP_PORT,
20
+ auth: {
21
+ user: config.SMTP_USER,
22
+ pass: config.SMTP_PASS,
23
+ },
24
+ });
25
+ }
26
+ async send(options) {
27
+ return this.transport.sendMail(options);
28
+ }
29
+ async verify() {
30
+ return this.transport.verify();
31
+ }
32
+ }
33
+ //# sourceMappingURL=mailer.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mailer.service.js","sourceRoot":"","sources":["../src/mailer.service.ts"],"names":[],"mappings":"AAAA,OAAO,UAA+B,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAIjD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAI7B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAIjD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAajD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAIvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAI9D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AAInC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AAIjC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAIxE,MAAM,OAAO,MAAM;IACA,SAAS,CAAyB;IAEnD,YAAY,MAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC;YAC1C,IAAI,EAAE,MAAM,CAAC,SAAS;YACtB,IAAI,EAAE,MAAM,CAAC,SAAS;YACtB,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM,CAAC,SAAS;gBACtB,IAAI,EAAE,MAAM,CAAC,SAAS;aACvB;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA8B;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import * as tools from "@bgord/tools";
2
+ export declare class MemoryConsumption {
3
+ static get(): tools.Size;
4
+ }
5
+ //# sourceMappingURL=memory-consumption.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-consumption.service.d.ts","sourceRoot":"","sources":["../src/memory-consumption.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI;CAKzB"}
@@ -0,0 +1,8 @@
1
+ import * as tools from "@bgord/tools";
2
+ export class MemoryConsumption {
3
+ static get() {
4
+ const memoryConsumption = process.memoryUsage().rss;
5
+ return new tools.Size({ value: memoryConsumption, unit: tools.SizeUnit.b });
6
+ }
7
+ }
8
+ //# sourceMappingURL=memory-consumption.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-consumption.service.js","sourceRoot":"","sources":["../src/memory-consumption.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,GAAG;QACR,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC;QAEpD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export declare class NewUUID {
2
+ static generate(): `${string}-${string}-${string}-${string}-${string}`;
3
+ }
4
+ //# sourceMappingURL=new-uuid.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-uuid.service.d.ts","sourceRoot":"","sources":["../src/new-uuid.service.ts"],"names":[],"mappings":"AAAA,qBAAa,OAAO;IAClB,MAAM,CAAC,QAAQ;CAGhB"}
@@ -0,0 +1,6 @@
1
+ export class NewUUID {
2
+ static generate() {
3
+ return crypto.randomUUID();
4
+ }
5
+ }
6
+ //# sourceMappingURL=new-uuid.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-uuid.service.js","sourceRoot":"","sources":["../src/new-uuid.service.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,OAAO;IAClB,MAAM,CAAC,QAAQ;QACb,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,110 @@
1
+ import { z } from "zod/v4";
2
+ import { PathType } from "./path.vo";
3
+ import { UrlWithoutTrailingSlashType } from "./url-wo-trailing-slash.vo";
4
+ export declare const OpenGraphTitleValue: z.ZodString;
5
+ export type OpenGraphTitleValueType = z.infer<typeof OpenGraphTitleValue>;
6
+ export declare const OpenGraphDescriptionValue: z.ZodString;
7
+ export type OpenGraphDescriptionValueType = z.infer<typeof OpenGraphDescriptionValue>;
8
+ export declare const OpenGraphUrlValue: z.ZodString;
9
+ export type OpenGraphUrlValueType = z.infer<typeof OpenGraphUrlValue>;
10
+ export declare const OpenGraphTypeValue: z.ZodUnion<readonly [z.ZodLiteral<"website">, z.ZodLiteral<"article">]>;
11
+ export type OpenGraphTypeValueType = z.infer<typeof OpenGraphTypeValue>;
12
+ export declare const OpenGraphImageUrlValue: z.ZodURL;
13
+ export type OpenGraphImageUrlValueType = z.infer<typeof OpenGraphImageUrlValue>;
14
+ export declare const OpenGraphImageTypeValue: z.ZodString;
15
+ export type OpenGraphImageTypeValueType = z.infer<typeof OpenGraphImageTypeValue>;
16
+ export declare const OpenGraphImageWidthValue: z.ZodNumber;
17
+ export type OpenGraphImageWidthValueType = z.infer<typeof OpenGraphImageWidthValue>;
18
+ export declare const OpenGraphImageHeightValue: z.ZodNumber;
19
+ export type OpenGraphImageHeightValueType = z.infer<typeof OpenGraphImageHeightValue>;
20
+ declare class OpenGraphTitle {
21
+ private readonly value;
22
+ constructor(value: OpenGraphTitleValueType);
23
+ toMetatag(): string;
24
+ toMeta(): string;
25
+ }
26
+ declare class OpenGraphDescription {
27
+ private readonly value;
28
+ constructor(value: OpenGraphDescriptionValueType);
29
+ toMetatag(): string;
30
+ toMeta(): string;
31
+ }
32
+ declare class OpenGraphUrl {
33
+ private readonly value;
34
+ constructor(value: OpenGraphUrlValueType);
35
+ toMetatag(): string;
36
+ toMeta(): string;
37
+ }
38
+ declare class OpenGraphType {
39
+ private readonly value;
40
+ constructor(value: OpenGraphTypeValueType);
41
+ toMetatag(): string;
42
+ toMeta(): string;
43
+ }
44
+ declare class OpenGraphImageUrl {
45
+ private readonly value;
46
+ constructor(path: PathType);
47
+ toMetatag(): string;
48
+ toMeta(): string;
49
+ }
50
+ declare class OpenGraphImageType {
51
+ private readonly value;
52
+ constructor(value: OpenGraphImageTypeValueType);
53
+ toMetatag(): string;
54
+ toMeta(): string;
55
+ }
56
+ declare class OpenGraphImageWidth {
57
+ private readonly value;
58
+ constructor(value: OpenGraphImageWidthValueType);
59
+ toMetatag(): string;
60
+ toMeta(): string;
61
+ }
62
+ declare class OpenGraphImageHeight {
63
+ private readonly value;
64
+ constructor(value: OpenGraphImageHeightValueType);
65
+ toMetatag(): string;
66
+ toMeta(): string;
67
+ }
68
+ export type OpenGraphImageConfigType = {
69
+ url: OpenGraphImageUrl;
70
+ width: OpenGraphImageWidth;
71
+ height: OpenGraphImageHeight;
72
+ type: OpenGraphImageType;
73
+ };
74
+ export declare class OpenGraphImage {
75
+ private readonly value;
76
+ constructor(value: OpenGraphImageConfigType);
77
+ toString(): string;
78
+ }
79
+ declare class OpenGraphImageGenerator {
80
+ static generate(config: {
81
+ path: PathType;
82
+ BASE_URL: UrlWithoutTrailingSlashType;
83
+ }): Promise<OpenGraphImage>;
84
+ }
85
+ type OpenGraphConfigType = {
86
+ title: OpenGraphTitle;
87
+ description: OpenGraphDescription;
88
+ url: OpenGraphUrl;
89
+ type: OpenGraphType;
90
+ image?: OpenGraphImage;
91
+ };
92
+ declare class OpenGraphGenerator {
93
+ static toString(config: OpenGraphConfigType): string;
94
+ }
95
+ export declare const OpenGraph: {
96
+ generator: typeof OpenGraphGenerator;
97
+ title: typeof OpenGraphTitle;
98
+ description: typeof OpenGraphDescription;
99
+ url: typeof OpenGraphUrl;
100
+ type: typeof OpenGraphType;
101
+ image: {
102
+ generator: typeof OpenGraphImageGenerator;
103
+ url: typeof OpenGraphImageUrl;
104
+ width: typeof OpenGraphImageWidth;
105
+ height: typeof OpenGraphImageHeight;
106
+ type: typeof OpenGraphImageType;
107
+ };
108
+ };
109
+ export {};
110
+ //# sourceMappingURL=open-graph.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-graph.service.d.ts","sourceRoot":"","sources":["../src/open-graph.service.ts"],"names":[],"mappings":"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"}