@sentzunhat/zacatl 0.0.14 → 0.0.21

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 (718) hide show
  1. package/README.md +292 -207
  2. package/build/architecture/index.d.ts +2 -0
  3. package/build/architecture/index.d.ts.map +1 -0
  4. package/build/architecture/index.js +2 -0
  5. package/build/architecture/index.js.map +1 -0
  6. package/build/configuration/app-config.d.ts +10 -0
  7. package/build/configuration/app-config.d.ts.map +1 -0
  8. package/build/configuration/app-config.js +5 -0
  9. package/build/configuration/app-config.js.map +1 -0
  10. package/build/configuration/index.d.ts +7 -0
  11. package/build/configuration/index.d.ts.map +1 -0
  12. package/build/configuration/index.js +6 -0
  13. package/build/configuration/index.js.map +1 -0
  14. package/build/configuration/legacy.d.ts +10 -0
  15. package/build/configuration/legacy.d.ts.map +1 -0
  16. package/build/configuration/legacy.js +5 -0
  17. package/build/configuration/legacy.js.map +1 -0
  18. package/build/configuration/loader-factory.d.ts +2 -0
  19. package/build/configuration/loader-factory.d.ts.map +1 -0
  20. package/build/configuration/loader-factory.js +2 -0
  21. package/build/configuration/loader-factory.js.map +1 -0
  22. package/build/configuration/loader.d.ts +9 -0
  23. package/build/configuration/loader.d.ts.map +1 -0
  24. package/build/configuration/loader.js +38 -0
  25. package/build/configuration/loader.js.map +1 -0
  26. package/build/configuration/loaders/index.d.ts +3 -0
  27. package/build/configuration/loaders/index.d.ts.map +1 -0
  28. package/build/configuration/loaders/index.js +3 -0
  29. package/build/configuration/loaders/index.js.map +1 -0
  30. package/build/configuration/loaders/json-loader.d.ts +8 -0
  31. package/build/configuration/loaders/json-loader.d.ts.map +1 -0
  32. package/build/configuration/loaders/json-loader.js +18 -0
  33. package/build/configuration/loaders/json-loader.js.map +1 -0
  34. package/build/configuration/loaders/yaml-loader.d.ts +8 -0
  35. package/build/configuration/loaders/yaml-loader.d.ts.map +1 -0
  36. package/build/configuration/loaders/yaml-loader.js +20 -0
  37. package/build/configuration/loaders/yaml-loader.js.map +1 -0
  38. package/build/configuration/types.d.ts +12 -0
  39. package/build/configuration/types.d.ts.map +1 -0
  40. package/build/configuration/types.js +2 -0
  41. package/build/configuration/types.js.map +1 -0
  42. package/build/configuration/validation.d.ts +14 -0
  43. package/build/configuration/validation.d.ts.map +1 -0
  44. package/build/configuration/validation.js +22 -0
  45. package/build/configuration/validation.js.map +1 -0
  46. package/build/configuration.d.ts +2 -0
  47. package/build/configuration.d.ts.map +1 -0
  48. package/build/configuration.js +2 -0
  49. package/build/configuration.js.map +1 -0
  50. package/build/dependency-injection/container.d.ts +9 -0
  51. package/build/dependency-injection/container.d.ts.map +1 -0
  52. package/build/dependency-injection/container.js +22 -0
  53. package/build/dependency-injection/container.js.map +1 -0
  54. package/build/dependency-injection/index.d.ts +2 -0
  55. package/build/dependency-injection/index.d.ts.map +1 -0
  56. package/build/dependency-injection/index.js +2 -0
  57. package/build/dependency-injection/index.js.map +1 -0
  58. package/build/error/bad-request.d.ts +7 -0
  59. package/build/error/bad-request.d.ts.map +1 -0
  60. package/build/error/bad-request.js +13 -0
  61. package/build/error/bad-request.js.map +1 -0
  62. package/build/error/bad-resource.d.ts +7 -0
  63. package/build/error/bad-resource.d.ts.map +1 -0
  64. package/build/error/bad-resource.js +13 -0
  65. package/build/error/bad-resource.js.map +1 -0
  66. package/build/error/custom.d.ts +49 -0
  67. package/build/error/custom.d.ts.map +1 -0
  68. package/build/error/custom.js +65 -0
  69. package/build/error/custom.js.map +1 -0
  70. package/build/error/forbidden.d.ts +7 -0
  71. package/build/error/forbidden.d.ts.map +1 -0
  72. package/build/error/forbidden.js +13 -0
  73. package/build/error/forbidden.js.map +1 -0
  74. package/build/error/index.d.ts +9 -0
  75. package/build/error/index.d.ts.map +1 -0
  76. package/build/error/index.js +9 -0
  77. package/build/error/index.js.map +1 -0
  78. package/build/error/internal-server.d.ts +7 -0
  79. package/build/error/internal-server.d.ts.map +1 -0
  80. package/build/error/internal-server.js +13 -0
  81. package/build/error/internal-server.js.map +1 -0
  82. package/build/error/not-found.d.ts +7 -0
  83. package/build/error/not-found.d.ts.map +1 -0
  84. package/build/error/not-found.js +13 -0
  85. package/build/error/not-found.js.map +1 -0
  86. package/build/error/unauthorized.d.ts +7 -0
  87. package/build/error/unauthorized.d.ts.map +1 -0
  88. package/build/error/unauthorized.js +13 -0
  89. package/build/error/unauthorized.js.map +1 -0
  90. package/build/error/validation.d.ts +7 -0
  91. package/build/error/validation.d.ts.map +1 -0
  92. package/build/error/validation.js +13 -0
  93. package/build/error/validation.js.map +1 -0
  94. package/build/examples/index.d.ts +3 -0
  95. package/build/examples/index.d.ts.map +1 -0
  96. package/build/examples/index.js +3 -0
  97. package/build/examples/index.js.map +1 -0
  98. package/build/examples/providers/file-system-provider.d.ts +13 -0
  99. package/build/examples/providers/file-system-provider.d.ts.map +1 -0
  100. package/build/examples/providers/file-system-provider.js +82 -0
  101. package/build/examples/providers/file-system-provider.js.map +1 -0
  102. package/build/examples/providers/filesystem-provider.d.ts +15 -0
  103. package/build/examples/providers/filesystem-provider.d.ts.map +1 -0
  104. package/build/examples/providers/filesystem-provider.js +139 -0
  105. package/build/examples/providers/filesystem-provider.js.map +1 -0
  106. package/build/examples/providers/index.d.ts +6 -0
  107. package/build/examples/providers/index.d.ts.map +1 -0
  108. package/build/examples/providers/index.js +4 -0
  109. package/build/examples/providers/index.js.map +1 -0
  110. package/build/examples/providers/process-provider.d.ts +19 -0
  111. package/build/examples/providers/process-provider.d.ts.map +1 -0
  112. package/build/examples/providers/process-provider.js +101 -0
  113. package/build/examples/providers/process-provider.js.map +1 -0
  114. package/build/examples/repositories/index.d.ts +3 -0
  115. package/build/examples/repositories/index.d.ts.map +1 -0
  116. package/build/examples/repositories/index.js +3 -0
  117. package/build/examples/repositories/index.js.map +1 -0
  118. package/build/examples/repositories/sqlite-repository.d.ts +14 -0
  119. package/build/examples/repositories/sqlite-repository.d.ts.map +1 -0
  120. package/build/examples/repositories/sqlite-repository.js +111 -0
  121. package/build/examples/repositories/sqlite-repository.js.map +1 -0
  122. package/build/i18n/adapters/index.d.ts +15 -0
  123. package/build/i18n/adapters/index.d.ts.map +1 -0
  124. package/build/i18n/adapters/index.js +46 -0
  125. package/build/i18n/adapters/index.js.map +1 -0
  126. package/build/i18n/i18n.d.ts +6 -0
  127. package/build/i18n/i18n.d.ts.map +1 -0
  128. package/build/i18n/i18n.js +118 -0
  129. package/build/i18n/i18n.js.map +1 -0
  130. package/build/i18n/index.d.ts +5 -0
  131. package/build/i18n/index.d.ts.map +1 -0
  132. package/build/i18n/index.js +4 -0
  133. package/build/i18n/index.js.map +1 -0
  134. package/build/i18n/types.d.ts +22 -0
  135. package/build/i18n/types.d.ts.map +1 -0
  136. package/build/i18n/types.js +2 -0
  137. package/build/i18n/types.js.map +1 -0
  138. package/build/i18n/validation.d.ts +16 -0
  139. package/build/i18n/validation.d.ts.map +1 -0
  140. package/build/i18n/validation.js +23 -0
  141. package/build/i18n/validation.js.map +1 -0
  142. package/build/index.d.ts +20 -0
  143. package/build/index.d.ts.map +1 -0
  144. package/build/index.js +16 -0
  145. package/build/index.js.map +1 -0
  146. package/build/intl/adapters/index.d.ts +15 -0
  147. package/build/intl/adapters/index.d.ts.map +1 -0
  148. package/build/intl/adapters/index.js +46 -0
  149. package/build/intl/adapters/index.js.map +1 -0
  150. package/build/intl/index.d.ts +5 -0
  151. package/build/intl/index.d.ts.map +1 -0
  152. package/build/intl/index.js +4 -0
  153. package/build/intl/index.js.map +1 -0
  154. package/build/intl/intl.d.ts +6 -0
  155. package/build/intl/intl.d.ts.map +1 -0
  156. package/build/intl/intl.js +118 -0
  157. package/build/intl/intl.js.map +1 -0
  158. package/build/intl/types.d.ts +22 -0
  159. package/build/intl/types.d.ts.map +1 -0
  160. package/build/intl/types.js +2 -0
  161. package/build/intl/types.js.map +1 -0
  162. package/build/intl/validation.d.ts +16 -0
  163. package/build/intl/validation.d.ts.map +1 -0
  164. package/build/intl/validation.js +23 -0
  165. package/build/intl/validation.js.map +1 -0
  166. package/build/localization/adapters/index.d.ts +15 -0
  167. package/build/localization/adapters/index.d.ts.map +1 -0
  168. package/build/localization/adapters/index.js +46 -0
  169. package/build/localization/adapters/index.js.map +1 -0
  170. package/build/localization/i18n.d.ts +6 -0
  171. package/build/localization/i18n.d.ts.map +1 -0
  172. package/build/localization/i18n.js +118 -0
  173. package/build/localization/i18n.js.map +1 -0
  174. package/build/localization/index.d.ts +5 -0
  175. package/build/localization/index.d.ts.map +1 -0
  176. package/build/localization/index.js +4 -0
  177. package/build/localization/index.js.map +1 -0
  178. package/build/localization/intl.d.ts +6 -0
  179. package/build/localization/intl.d.ts.map +1 -0
  180. package/build/localization/intl.js +120 -0
  181. package/build/localization/intl.js.map +1 -0
  182. package/build/localization/localization.d.ts +6 -0
  183. package/build/localization/localization.d.ts.map +1 -0
  184. package/build/localization/localization.js +120 -0
  185. package/build/localization/localization.js.map +1 -0
  186. package/build/localization/types.d.ts +22 -0
  187. package/build/localization/types.d.ts.map +1 -0
  188. package/build/localization/types.js +2 -0
  189. package/build/localization/types.js.map +1 -0
  190. package/build/localization/validation.d.ts +16 -0
  191. package/build/localization/validation.d.ts.map +1 -0
  192. package/build/localization/validation.js +23 -0
  193. package/build/localization/validation.js.map +1 -0
  194. package/build/logs/adapters/console-adapter.d.ts +18 -0
  195. package/build/logs/adapters/console-adapter.d.ts.map +1 -0
  196. package/build/logs/adapters/console-adapter.js +65 -0
  197. package/build/logs/adapters/console-adapter.js.map +1 -0
  198. package/build/logs/adapters/pino-adapter.d.ts +14 -0
  199. package/build/logs/adapters/pino-adapter.d.ts.map +1 -0
  200. package/build/logs/adapters/pino-adapter.js +30 -0
  201. package/build/logs/adapters/pino-adapter.js.map +1 -0
  202. package/build/logs/config.d.ts +9 -0
  203. package/build/logs/config.d.ts.map +1 -0
  204. package/build/logs/config.js +34 -0
  205. package/build/logs/config.js.map +1 -0
  206. package/build/logs/index.d.ts +6 -0
  207. package/build/logs/index.d.ts.map +1 -0
  208. package/build/logs/index.js +5 -0
  209. package/build/logs/index.js.map +1 -0
  210. package/build/logs/logger.d.ts +4 -0
  211. package/build/logs/logger.d.ts.map +1 -0
  212. package/build/logs/logger.js +14 -0
  213. package/build/logs/logger.js.map +1 -0
  214. package/build/logs/types.d.ts +23 -0
  215. package/build/logs/types.d.ts.map +1 -0
  216. package/build/logs/types.js +2 -0
  217. package/build/logs/types.js.map +1 -0
  218. package/build/logs.d.ts +4 -0
  219. package/build/logs.d.ts.map +1 -0
  220. package/build/logs.js +3 -0
  221. package/build/logs.js.map +1 -0
  222. package/build/micro-service/architecture/application/application.d.ts +22 -0
  223. package/build/micro-service/architecture/application/application.d.ts.map +1 -0
  224. package/build/micro-service/architecture/application/application.js +25 -0
  225. package/build/micro-service/architecture/application/application.js.map +1 -0
  226. package/build/micro-service/architecture/application/entry-points/index.d.ts +2 -0
  227. package/build/micro-service/architecture/application/entry-points/index.d.ts.map +1 -0
  228. package/build/micro-service/architecture/application/entry-points/index.js +2 -0
  229. package/build/micro-service/architecture/application/entry-points/index.js.map +1 -0
  230. package/build/micro-service/architecture/application/entry-points/rest/common/handler.d.ts +4 -0
  231. package/build/micro-service/architecture/application/entry-points/rest/common/handler.d.ts.map +1 -0
  232. package/build/micro-service/architecture/application/entry-points/rest/common/handler.js +2 -0
  233. package/build/micro-service/architecture/application/entry-points/rest/common/handler.js.map +1 -0
  234. package/build/micro-service/architecture/application/entry-points/rest/common/index.d.ts +3 -0
  235. package/build/micro-service/architecture/application/entry-points/rest/common/index.d.ts.map +1 -0
  236. package/build/micro-service/architecture/application/entry-points/rest/common/index.js +3 -0
  237. package/build/micro-service/architecture/application/entry-points/rest/common/index.js.map +1 -0
  238. package/build/micro-service/architecture/application/entry-points/rest/common/request.d.ts +9 -0
  239. package/build/micro-service/architecture/application/entry-points/rest/common/request.d.ts.map +1 -0
  240. package/build/micro-service/architecture/application/entry-points/rest/common/request.js +2 -0
  241. package/build/micro-service/architecture/application/entry-points/rest/common/request.js.map +1 -0
  242. package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/hook-handler.d.ts +7 -0
  243. package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/hook-handler.d.ts.map +1 -0
  244. package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/hook-handler.js +2 -0
  245. package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/hook-handler.js.map +1 -0
  246. package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/index.d.ts +2 -0
  247. package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/index.d.ts.map +1 -0
  248. package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/index.js +2 -0
  249. package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/index.js.map +1 -0
  250. package/build/micro-service/architecture/application/entry-points/rest/index.d.ts +4 -0
  251. package/build/micro-service/architecture/application/entry-points/rest/index.d.ts.map +1 -0
  252. package/build/micro-service/architecture/application/entry-points/rest/index.js +4 -0
  253. package/build/micro-service/architecture/application/entry-points/rest/index.js.map +1 -0
  254. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/abstract.d.ts +26 -0
  255. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/abstract.d.ts.map +1 -0
  256. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/abstract.js +21 -0
  257. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/abstract.js.map +1 -0
  258. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/generics.d.ts +8 -0
  259. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/generics.d.ts.map +1 -0
  260. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/generics.js +10 -0
  261. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/generics.js.map +1 -0
  262. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/get-route-handler.d.ts +10 -0
  263. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/get-route-handler.d.ts.map +1 -0
  264. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/get-route-handler.js +11 -0
  265. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/get-route-handler.js.map +1 -0
  266. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/index.d.ts +6 -0
  267. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/index.d.ts.map +1 -0
  268. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/index.js +6 -0
  269. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/index.js.map +1 -0
  270. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/post-route-handler.d.ts +10 -0
  271. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/post-route-handler.d.ts.map +1 -0
  272. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/post-route-handler.js +11 -0
  273. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/post-route-handler.js.map +1 -0
  274. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/route-handler.d.ts +9 -0
  275. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/route-handler.d.ts.map +1 -0
  276. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/route-handler.js +2 -0
  277. package/build/micro-service/architecture/application/entry-points/rest/route-handlers/route-handler.js.map +1 -0
  278. package/build/micro-service/architecture/application/index.d.ts +3 -0
  279. package/build/micro-service/architecture/application/index.d.ts.map +1 -0
  280. package/build/micro-service/architecture/application/index.js +3 -0
  281. package/build/micro-service/architecture/application/index.js.map +1 -0
  282. package/build/micro-service/architecture/architecture.d.ts +11 -0
  283. package/build/micro-service/architecture/architecture.d.ts.map +1 -0
  284. package/build/micro-service/architecture/architecture.js +20 -0
  285. package/build/micro-service/architecture/architecture.js.map +1 -0
  286. package/build/micro-service/architecture/domain/domain.d.ts +11 -0
  287. package/build/micro-service/architecture/domain/domain.d.ts.map +1 -0
  288. package/build/micro-service/architecture/domain/domain.js +25 -0
  289. package/build/micro-service/architecture/domain/domain.js.map +1 -0
  290. package/build/micro-service/architecture/domain/index.d.ts +3 -0
  291. package/build/micro-service/architecture/domain/index.d.ts.map +1 -0
  292. package/build/micro-service/architecture/domain/index.js +3 -0
  293. package/build/micro-service/architecture/domain/index.js.map +1 -0
  294. package/build/micro-service/architecture/domain/provider.d.ts +6 -0
  295. package/build/micro-service/architecture/domain/provider.d.ts.map +1 -0
  296. package/build/micro-service/architecture/domain/provider.js +7 -0
  297. package/build/micro-service/architecture/domain/provider.js.map +1 -0
  298. package/build/micro-service/architecture/index.d.ts +6 -0
  299. package/build/micro-service/architecture/index.d.ts.map +1 -0
  300. package/build/micro-service/architecture/index.js +6 -0
  301. package/build/micro-service/architecture/index.js.map +1 -0
  302. package/build/micro-service/architecture/infrastructure/index.d.ts +3 -0
  303. package/build/micro-service/architecture/infrastructure/index.d.ts.map +1 -0
  304. package/{src/micro-service/architecture/infrastructure/index.ts → build/micro-service/architecture/infrastructure/index.js} +1 -0
  305. package/build/micro-service/architecture/infrastructure/index.js.map +1 -0
  306. package/build/micro-service/architecture/infrastructure/infrastructure.d.ts +10 -0
  307. package/build/micro-service/architecture/infrastructure/infrastructure.d.ts.map +1 -0
  308. package/build/micro-service/architecture/infrastructure/infrastructure.js +12 -0
  309. package/build/micro-service/architecture/infrastructure/infrastructure.js.map +1 -0
  310. package/build/micro-service/architecture/infrastructure/orm/adapters/mongoose-adapter.d.ts +13 -0
  311. package/build/micro-service/architecture/infrastructure/orm/adapters/mongoose-adapter.d.ts.map +1 -0
  312. package/build/micro-service/architecture/infrastructure/orm/adapters/mongoose-adapter.js +92 -0
  313. package/build/micro-service/architecture/infrastructure/orm/adapters/mongoose-adapter.js.map +1 -0
  314. package/build/micro-service/architecture/infrastructure/orm/adapters/sequelize-adapter.d.ts +12 -0
  315. package/build/micro-service/architecture/infrastructure/orm/adapters/sequelize-adapter.d.ts.map +1 -0
  316. package/build/micro-service/architecture/infrastructure/orm/adapters/sequelize-adapter.js +49 -0
  317. package/build/micro-service/architecture/infrastructure/orm/adapters/sequelize-adapter.js.map +1 -0
  318. package/build/micro-service/architecture/infrastructure/orm/index.d.ts +3 -0
  319. package/build/micro-service/architecture/infrastructure/orm/index.d.ts.map +1 -0
  320. package/build/micro-service/architecture/infrastructure/orm/index.js +3 -0
  321. package/build/micro-service/architecture/infrastructure/orm/index.js.map +1 -0
  322. package/build/micro-service/architecture/infrastructure/repositories/abstract.d.ts +19 -0
  323. package/build/micro-service/architecture/infrastructure/repositories/abstract.d.ts.map +1 -0
  324. package/build/micro-service/architecture/infrastructure/repositories/abstract.js +64 -0
  325. package/build/micro-service/architecture/infrastructure/repositories/abstract.js.map +1 -0
  326. package/build/micro-service/architecture/infrastructure/repositories/index.d.ts +2 -0
  327. package/build/micro-service/architecture/infrastructure/repositories/index.d.ts.map +1 -0
  328. package/build/micro-service/architecture/infrastructure/repositories/index.js +2 -0
  329. package/build/micro-service/architecture/infrastructure/repositories/index.js.map +1 -0
  330. package/build/micro-service/architecture/infrastructure/repositories/mongoose.d.ts +13 -0
  331. package/build/micro-service/architecture/infrastructure/repositories/mongoose.d.ts.map +1 -0
  332. package/build/micro-service/architecture/infrastructure/repositories/mongoose.js +92 -0
  333. package/build/micro-service/architecture/infrastructure/repositories/mongoose.js.map +1 -0
  334. package/build/micro-service/architecture/infrastructure/repositories/sequelize.d.ts +12 -0
  335. package/build/micro-service/architecture/infrastructure/repositories/sequelize.d.ts.map +1 -0
  336. package/build/micro-service/architecture/infrastructure/repositories/sequelize.js +49 -0
  337. package/build/micro-service/architecture/infrastructure/repositories/sequelize.js.map +1 -0
  338. package/build/micro-service/architecture/infrastructure/repositories/types.d.ts +43 -0
  339. package/build/micro-service/architecture/infrastructure/repositories/types.d.ts.map +1 -0
  340. package/build/micro-service/architecture/infrastructure/repositories/types.js +2 -0
  341. package/build/micro-service/architecture/infrastructure/repositories/types.js.map +1 -0
  342. package/build/micro-service/architecture/infrastructure/repository-interface.d.ts +9 -0
  343. package/build/micro-service/architecture/infrastructure/repository-interface.d.ts.map +1 -0
  344. package/build/micro-service/architecture/infrastructure/repository-interface.js +2 -0
  345. package/build/micro-service/architecture/infrastructure/repository-interface.js.map +1 -0
  346. package/build/micro-service/architecture/infrastructure/repository.d.ts +9 -0
  347. package/build/micro-service/architecture/infrastructure/repository.d.ts.map +1 -0
  348. package/build/micro-service/architecture/infrastructure/repository.js +2 -0
  349. package/build/micro-service/architecture/infrastructure/repository.js.map +1 -0
  350. package/build/micro-service/architecture/platform/index.d.ts +6 -0
  351. package/build/micro-service/architecture/platform/index.d.ts.map +1 -0
  352. package/build/micro-service/architecture/platform/index.js +5 -0
  353. package/build/micro-service/architecture/platform/index.js.map +1 -0
  354. package/build/micro-service/architecture/platform/micro-service.d.ts +24 -0
  355. package/build/micro-service/architecture/platform/micro-service.d.ts.map +1 -0
  356. package/build/micro-service/architecture/platform/micro-service.js +40 -0
  357. package/build/micro-service/architecture/platform/micro-service.js.map +1 -0
  358. package/build/micro-service/architecture/platform/page/index.d.ts +2 -0
  359. package/build/micro-service/architecture/platform/page/index.d.ts.map +1 -0
  360. package/build/micro-service/architecture/platform/page/index.js +2 -0
  361. package/build/micro-service/architecture/platform/page/index.js.map +1 -0
  362. package/build/micro-service/architecture/platform/page/page.d.ts +16 -0
  363. package/build/micro-service/architecture/platform/page/page.d.ts.map +1 -0
  364. package/build/micro-service/architecture/platform/page/page.js +38 -0
  365. package/build/micro-service/architecture/platform/page/page.js.map +1 -0
  366. package/build/micro-service/architecture/platform/server/adapters/express-adapter.d.ts +15 -0
  367. package/build/micro-service/architecture/platform/server/adapters/express-adapter.d.ts.map +1 -0
  368. package/build/micro-service/architecture/platform/server/adapters/express-adapter.js +91 -0
  369. package/build/micro-service/architecture/platform/server/adapters/express-adapter.js.map +1 -0
  370. package/build/micro-service/architecture/platform/server/adapters/fastify-adapter.d.ts +15 -0
  371. package/build/micro-service/architecture/platform/server/adapters/fastify-adapter.d.ts.map +1 -0
  372. package/build/micro-service/architecture/platform/server/adapters/fastify-adapter.js +54 -0
  373. package/build/micro-service/architecture/platform/server/adapters/fastify-adapter.js.map +1 -0
  374. package/build/micro-service/architecture/platform/server/adapters/index.d.ts +3 -0
  375. package/build/micro-service/architecture/platform/server/adapters/index.d.ts.map +1 -0
  376. package/build/micro-service/architecture/platform/server/adapters/index.js +3 -0
  377. package/build/micro-service/architecture/platform/server/adapters/index.js.map +1 -0
  378. package/build/micro-service/architecture/platform/server/index.d.ts +2 -0
  379. package/build/micro-service/architecture/platform/server/index.d.ts.map +1 -0
  380. package/build/micro-service/architecture/platform/server/index.js +2 -0
  381. package/build/micro-service/architecture/platform/server/index.js.map +1 -0
  382. package/build/micro-service/architecture/platform/server/server-adapter.d.ts +21 -0
  383. package/build/micro-service/architecture/platform/server/server-adapter.d.ts.map +1 -0
  384. package/build/micro-service/architecture/platform/server/server-adapter.js +2 -0
  385. package/build/micro-service/architecture/platform/server/server-adapter.js.map +1 -0
  386. package/build/micro-service/architecture/platform/server/server.d.ts +97 -0
  387. package/build/micro-service/architecture/platform/server/server.d.ts.map +1 -0
  388. package/build/micro-service/architecture/platform/server/server.js +219 -0
  389. package/build/micro-service/architecture/platform/server/server.js.map +1 -0
  390. package/build/micro-service/index.d.ts +2 -0
  391. package/build/micro-service/index.d.ts.map +1 -0
  392. package/build/micro-service/index.js +2 -0
  393. package/build/micro-service/index.js.map +1 -0
  394. package/build/optionals.d.ts +4 -0
  395. package/build/optionals.d.ts.map +1 -0
  396. package/build/optionals.js +2 -0
  397. package/build/optionals.js.map +1 -0
  398. package/build/orm-exports.d.ts +5 -0
  399. package/build/orm-exports.d.ts.map +1 -0
  400. package/build/orm-exports.js +3 -0
  401. package/build/orm-exports.js.map +1 -0
  402. package/build/runtime/detector.d.ts +7 -0
  403. package/build/runtime/detector.d.ts.map +1 -0
  404. package/build/runtime/detector.js +28 -0
  405. package/build/runtime/detector.js.map +1 -0
  406. package/build/runtime/index.d.ts +3 -0
  407. package/build/runtime/index.d.ts.map +1 -0
  408. package/build/runtime/index.js +3 -0
  409. package/build/runtime/index.js.map +1 -0
  410. package/build/runtime/types.d.ts +8 -0
  411. package/build/runtime/types.d.ts.map +1 -0
  412. package/build/runtime/types.js +2 -0
  413. package/build/runtime/types.js.map +1 -0
  414. package/build/service/architecture/application/application.d.ts +22 -0
  415. package/build/service/architecture/application/application.d.ts.map +1 -0
  416. package/build/service/architecture/application/application.js +25 -0
  417. package/build/service/architecture/application/application.js.map +1 -0
  418. package/build/service/architecture/application/entry-points/index.d.ts +2 -0
  419. package/build/service/architecture/application/entry-points/index.d.ts.map +1 -0
  420. package/build/service/architecture/application/entry-points/index.js +2 -0
  421. package/build/service/architecture/application/entry-points/index.js.map +1 -0
  422. package/build/service/architecture/application/entry-points/rest/common/handler.d.ts +4 -0
  423. package/build/service/architecture/application/entry-points/rest/common/handler.d.ts.map +1 -0
  424. package/build/service/architecture/application/entry-points/rest/common/handler.js +2 -0
  425. package/build/service/architecture/application/entry-points/rest/common/handler.js.map +1 -0
  426. package/build/service/architecture/application/entry-points/rest/common/index.d.ts +3 -0
  427. package/build/service/architecture/application/entry-points/rest/common/index.d.ts.map +1 -0
  428. package/build/service/architecture/application/entry-points/rest/common/index.js +3 -0
  429. package/build/service/architecture/application/entry-points/rest/common/index.js.map +1 -0
  430. package/build/service/architecture/application/entry-points/rest/common/request.d.ts +9 -0
  431. package/build/service/architecture/application/entry-points/rest/common/request.d.ts.map +1 -0
  432. package/build/service/architecture/application/entry-points/rest/common/request.js +2 -0
  433. package/build/service/architecture/application/entry-points/rest/common/request.js.map +1 -0
  434. package/build/service/architecture/application/entry-points/rest/hook-handlers/hook-handler.d.ts +7 -0
  435. package/build/service/architecture/application/entry-points/rest/hook-handlers/hook-handler.d.ts.map +1 -0
  436. package/build/service/architecture/application/entry-points/rest/hook-handlers/hook-handler.js +2 -0
  437. package/build/service/architecture/application/entry-points/rest/hook-handlers/hook-handler.js.map +1 -0
  438. package/build/service/architecture/application/entry-points/rest/hook-handlers/index.d.ts +2 -0
  439. package/build/service/architecture/application/entry-points/rest/hook-handlers/index.d.ts.map +1 -0
  440. package/build/service/architecture/application/entry-points/rest/hook-handlers/index.js +2 -0
  441. package/build/service/architecture/application/entry-points/rest/hook-handlers/index.js.map +1 -0
  442. package/build/service/architecture/application/entry-points/rest/index.d.ts +4 -0
  443. package/build/service/architecture/application/entry-points/rest/index.d.ts.map +1 -0
  444. package/build/service/architecture/application/entry-points/rest/index.js +4 -0
  445. package/build/service/architecture/application/entry-points/rest/index.js.map +1 -0
  446. package/build/service/architecture/application/entry-points/rest/route-handlers/abstract.d.ts +27 -0
  447. package/build/service/architecture/application/entry-points/rest/route-handlers/abstract.d.ts.map +1 -0
  448. package/build/service/architecture/application/entry-points/rest/route-handlers/abstract.js +21 -0
  449. package/build/service/architecture/application/entry-points/rest/route-handlers/abstract.js.map +1 -0
  450. package/build/service/architecture/application/entry-points/rest/route-handlers/generics.d.ts +8 -0
  451. package/build/service/architecture/application/entry-points/rest/route-handlers/generics.d.ts.map +1 -0
  452. package/build/service/architecture/application/entry-points/rest/route-handlers/generics.js +10 -0
  453. package/build/service/architecture/application/entry-points/rest/route-handlers/generics.js.map +1 -0
  454. package/build/service/architecture/application/entry-points/rest/route-handlers/get-route-handler.d.ts +10 -0
  455. package/build/service/architecture/application/entry-points/rest/route-handlers/get-route-handler.d.ts.map +1 -0
  456. package/build/service/architecture/application/entry-points/rest/route-handlers/get-route-handler.js +11 -0
  457. package/build/service/architecture/application/entry-points/rest/route-handlers/get-route-handler.js.map +1 -0
  458. package/build/service/architecture/application/entry-points/rest/route-handlers/index.d.ts +6 -0
  459. package/build/service/architecture/application/entry-points/rest/route-handlers/index.d.ts.map +1 -0
  460. package/build/service/architecture/application/entry-points/rest/route-handlers/index.js +6 -0
  461. package/build/service/architecture/application/entry-points/rest/route-handlers/index.js.map +1 -0
  462. package/build/service/architecture/application/entry-points/rest/route-handlers/post-route-handler.d.ts +11 -0
  463. package/build/service/architecture/application/entry-points/rest/route-handlers/post-route-handler.d.ts.map +1 -0
  464. package/build/service/architecture/application/entry-points/rest/route-handlers/post-route-handler.js +11 -0
  465. package/build/service/architecture/application/entry-points/rest/route-handlers/post-route-handler.js.map +1 -0
  466. package/build/service/architecture/application/entry-points/rest/route-handlers/route-handler.d.ts +9 -0
  467. package/build/service/architecture/application/entry-points/rest/route-handlers/route-handler.d.ts.map +1 -0
  468. package/build/service/architecture/application/entry-points/rest/route-handlers/route-handler.js +2 -0
  469. package/build/service/architecture/application/entry-points/rest/route-handlers/route-handler.js.map +1 -0
  470. package/build/service/architecture/application/index.d.ts +3 -0
  471. package/build/service/architecture/application/index.d.ts.map +1 -0
  472. package/build/service/architecture/application/index.js +3 -0
  473. package/build/service/architecture/application/index.js.map +1 -0
  474. package/build/service/architecture/architecture.d.ts +11 -0
  475. package/build/service/architecture/architecture.d.ts.map +1 -0
  476. package/build/service/architecture/architecture.js +20 -0
  477. package/build/service/architecture/architecture.js.map +1 -0
  478. package/build/service/architecture/domain/domain.d.ts +11 -0
  479. package/build/service/architecture/domain/domain.d.ts.map +1 -0
  480. package/build/service/architecture/domain/domain.js +25 -0
  481. package/build/service/architecture/domain/domain.js.map +1 -0
  482. package/build/service/architecture/domain/index.d.ts +3 -0
  483. package/build/service/architecture/domain/index.d.ts.map +1 -0
  484. package/build/service/architecture/domain/index.js +3 -0
  485. package/build/service/architecture/domain/index.js.map +1 -0
  486. package/build/service/architecture/domain/provider.d.ts +6 -0
  487. package/build/service/architecture/domain/provider.d.ts.map +1 -0
  488. package/build/service/architecture/domain/provider.js +7 -0
  489. package/build/service/architecture/domain/provider.js.map +1 -0
  490. package/build/service/architecture/index.d.ts +6 -0
  491. package/build/service/architecture/index.d.ts.map +1 -0
  492. package/build/service/architecture/index.js +6 -0
  493. package/build/service/architecture/index.js.map +1 -0
  494. package/build/service/architecture/infrastructure/index.d.ts +7 -0
  495. package/build/service/architecture/infrastructure/index.d.ts.map +1 -0
  496. package/build/service/architecture/infrastructure/index.js +5 -0
  497. package/build/service/architecture/infrastructure/index.js.map +1 -0
  498. package/build/service/architecture/infrastructure/infrastructure.d.ts +10 -0
  499. package/build/service/architecture/infrastructure/infrastructure.d.ts.map +1 -0
  500. package/build/service/architecture/infrastructure/infrastructure.js +12 -0
  501. package/build/service/architecture/infrastructure/infrastructure.js.map +1 -0
  502. package/build/service/architecture/infrastructure/orm/adapter-loader.d.ts +5 -0
  503. package/build/service/architecture/infrastructure/orm/adapter-loader.d.ts.map +1 -0
  504. package/build/service/architecture/infrastructure/orm/adapter-loader.js +25 -0
  505. package/build/service/architecture/infrastructure/orm/adapter-loader.js.map +1 -0
  506. package/build/service/architecture/infrastructure/orm/adapters/mongoose-adapter.d.ts +13 -0
  507. package/build/service/architecture/infrastructure/orm/adapters/mongoose-adapter.d.ts.map +1 -0
  508. package/build/service/architecture/infrastructure/orm/adapters/mongoose-adapter.js +90 -0
  509. package/build/service/architecture/infrastructure/orm/adapters/mongoose-adapter.js.map +1 -0
  510. package/build/service/architecture/infrastructure/orm/adapters/sequelize-adapter.d.ts +12 -0
  511. package/build/service/architecture/infrastructure/orm/adapters/sequelize-adapter.d.ts.map +1 -0
  512. package/build/service/architecture/infrastructure/orm/adapters/sequelize-adapter.js +49 -0
  513. package/build/service/architecture/infrastructure/orm/adapters/sequelize-adapter.js.map +1 -0
  514. package/build/service/architecture/infrastructure/orm/index.d.ts +3 -0
  515. package/build/service/architecture/infrastructure/orm/index.d.ts.map +1 -0
  516. package/build/service/architecture/infrastructure/orm/index.js +3 -0
  517. package/build/service/architecture/infrastructure/orm/index.js.map +1 -0
  518. package/build/service/architecture/infrastructure/repositories/abstract.d.ts +20 -0
  519. package/build/service/architecture/infrastructure/repositories/abstract.d.ts.map +1 -0
  520. package/build/service/architecture/infrastructure/repositories/abstract.js +63 -0
  521. package/build/service/architecture/infrastructure/repositories/abstract.js.map +1 -0
  522. package/build/service/architecture/infrastructure/repositories/index.d.ts +2 -0
  523. package/build/service/architecture/infrastructure/repositories/index.d.ts.map +1 -0
  524. package/build/service/architecture/infrastructure/repositories/index.js +2 -0
  525. package/build/service/architecture/infrastructure/repositories/index.js.map +1 -0
  526. package/build/service/architecture/infrastructure/repositories/mongoose.d.ts +13 -0
  527. package/build/service/architecture/infrastructure/repositories/mongoose.d.ts.map +1 -0
  528. package/build/service/architecture/infrastructure/repositories/mongoose.js +92 -0
  529. package/build/service/architecture/infrastructure/repositories/mongoose.js.map +1 -0
  530. package/build/service/architecture/infrastructure/repositories/sequelize.d.ts +12 -0
  531. package/build/service/architecture/infrastructure/repositories/sequelize.d.ts.map +1 -0
  532. package/build/service/architecture/infrastructure/repositories/sequelize.js +49 -0
  533. package/build/service/architecture/infrastructure/repositories/sequelize.js.map +1 -0
  534. package/build/service/architecture/infrastructure/repositories/types.d.ts +47 -0
  535. package/build/service/architecture/infrastructure/repositories/types.d.ts.map +1 -0
  536. package/build/service/architecture/infrastructure/repositories/types.js +6 -0
  537. package/build/service/architecture/infrastructure/repositories/types.js.map +1 -0
  538. package/build/service/architecture/infrastructure/repository-interface.d.ts +9 -0
  539. package/build/service/architecture/infrastructure/repository-interface.d.ts.map +1 -0
  540. package/build/service/architecture/infrastructure/repository-interface.js +2 -0
  541. package/build/service/architecture/infrastructure/repository-interface.js.map +1 -0
  542. package/build/service/architecture/infrastructure/repository.d.ts +9 -0
  543. package/build/service/architecture/infrastructure/repository.d.ts.map +1 -0
  544. package/build/service/architecture/infrastructure/repository.js +2 -0
  545. package/build/service/architecture/infrastructure/repository.js.map +1 -0
  546. package/build/service/architecture/platform/index.d.ts +6 -0
  547. package/build/service/architecture/platform/index.d.ts.map +1 -0
  548. package/build/service/architecture/platform/index.js +5 -0
  549. package/build/service/architecture/platform/index.js.map +1 -0
  550. package/build/service/architecture/platform/page/index.d.ts +2 -0
  551. package/build/service/architecture/platform/page/index.d.ts.map +1 -0
  552. package/build/service/architecture/platform/page/index.js +2 -0
  553. package/build/service/architecture/platform/page/index.js.map +1 -0
  554. package/build/service/architecture/platform/page/page.d.ts +16 -0
  555. package/build/service/architecture/platform/page/page.d.ts.map +1 -0
  556. package/build/service/architecture/platform/page/page.js +38 -0
  557. package/build/service/architecture/platform/page/page.js.map +1 -0
  558. package/build/service/architecture/platform/server/adapters/express-adapter.d.ts +15 -0
  559. package/build/service/architecture/platform/server/adapters/express-adapter.d.ts.map +1 -0
  560. package/build/service/architecture/platform/server/adapters/express-adapter.js +91 -0
  561. package/build/service/architecture/platform/server/adapters/express-adapter.js.map +1 -0
  562. package/build/service/architecture/platform/server/adapters/fastify-adapter.d.ts +15 -0
  563. package/build/service/architecture/platform/server/adapters/fastify-adapter.d.ts.map +1 -0
  564. package/build/service/architecture/platform/server/adapters/fastify-adapter.js +54 -0
  565. package/build/service/architecture/platform/server/adapters/fastify-adapter.js.map +1 -0
  566. package/build/service/architecture/platform/server/adapters/index.d.ts +3 -0
  567. package/build/service/architecture/platform/server/adapters/index.d.ts.map +1 -0
  568. package/build/service/architecture/platform/server/adapters/index.js +3 -0
  569. package/build/service/architecture/platform/server/adapters/index.js.map +1 -0
  570. package/build/service/architecture/platform/server/index.d.ts +2 -0
  571. package/build/service/architecture/platform/server/index.d.ts.map +1 -0
  572. package/build/service/architecture/platform/server/index.js +2 -0
  573. package/build/service/architecture/platform/server/index.js.map +1 -0
  574. package/build/service/architecture/platform/server/server-adapter.d.ts +21 -0
  575. package/build/service/architecture/platform/server/server-adapter.d.ts.map +1 -0
  576. package/build/service/architecture/platform/server/server-adapter.js +2 -0
  577. package/build/service/architecture/platform/server/server-adapter.js.map +1 -0
  578. package/build/service/architecture/platform/server/server.d.ts +97 -0
  579. package/build/service/architecture/platform/server/server.d.ts.map +1 -0
  580. package/build/service/architecture/platform/server/server.js +219 -0
  581. package/build/service/architecture/platform/server/server.js.map +1 -0
  582. package/build/service/architecture/platform/service.d.ts +24 -0
  583. package/build/service/architecture/platform/service.d.ts.map +1 -0
  584. package/build/service/architecture/platform/service.js +40 -0
  585. package/build/service/architecture/platform/service.js.map +1 -0
  586. package/build/service/index.d.ts +2 -0
  587. package/build/service/index.d.ts.map +1 -0
  588. package/build/service/index.js +2 -0
  589. package/build/service/index.js.map +1 -0
  590. package/build/test/tsconfig.tsbuildinfo +1 -0
  591. package/build/utils/base64.d.ts +3 -0
  592. package/build/utils/base64.d.ts.map +1 -0
  593. package/build/utils/base64.js +7 -0
  594. package/build/utils/base64.js.map +1 -0
  595. package/build/utils/hmac.d.ts +2 -0
  596. package/build/utils/hmac.d.ts.map +1 -0
  597. package/build/utils/hmac.js +7 -0
  598. package/build/utils/hmac.js.map +1 -0
  599. package/build/utils/index.d.ts +3 -0
  600. package/build/utils/index.d.ts.map +1 -0
  601. package/build/utils/index.js +3 -0
  602. package/build/utils/index.js.map +1 -0
  603. package/package.json +110 -27
  604. package/src/configuration/app-config.ts +24 -0
  605. package/src/configuration/index.ts +20 -0
  606. package/src/configuration/loader-factory.ts +1 -0
  607. package/src/configuration/loader.ts +70 -0
  608. package/src/configuration/loaders/index.ts +2 -0
  609. package/src/configuration/loaders/json-loader.ts +32 -0
  610. package/src/configuration/loaders/yaml-loader.ts +32 -0
  611. package/src/configuration/types.ts +32 -0
  612. package/src/configuration/validation.ts +50 -0
  613. package/src/dependency-injection/container.ts +92 -0
  614. package/src/dependency-injection/index.ts +1 -0
  615. package/src/error/custom.ts +52 -1
  616. package/src/examples/index.ts +2 -0
  617. package/src/examples/providers/filesystem-provider.ts +198 -0
  618. package/src/examples/providers/index.ts +6 -0
  619. package/src/examples/providers/process-provider.ts +150 -0
  620. package/src/examples/repositories/index.ts +3 -0
  621. package/src/examples/repositories/sqlite-repository.ts +170 -0
  622. package/src/index.ts +32 -2
  623. package/src/locales/en.json +1 -9
  624. package/src/locales/fr.json +1 -9
  625. package/src/localization/adapters/index.ts +90 -0
  626. package/src/localization/index.ts +16 -0
  627. package/src/localization/locales/en.json +9 -0
  628. package/src/localization/locales/es.json +9 -0
  629. package/src/localization/localization.ts +222 -0
  630. package/src/localization/types.ts +110 -0
  631. package/src/localization/validation.ts +43 -0
  632. package/src/logs/adapters/console-adapter.ts +90 -0
  633. package/src/logs/adapters/pino-adapter.ts +65 -0
  634. package/src/logs/config.ts +53 -0
  635. package/src/logs/index.ts +16 -0
  636. package/src/logs/logger.ts +66 -0
  637. package/src/logs/types.ts +44 -0
  638. package/src/orm-exports.ts +23 -0
  639. package/src/runtime/detector.ts +61 -0
  640. package/src/runtime/index.ts +2 -0
  641. package/src/runtime/types.ts +18 -0
  642. package/src/{micro-service → service}/architecture/application/entry-points/rest/route-handlers/abstract.ts +8 -7
  643. package/src/{micro-service → service}/architecture/application/entry-points/rest/route-handlers/post-route-handler.ts +3 -1
  644. package/src/service/architecture/domain/domain.ts +36 -0
  645. package/src/service/architecture/domain/index.ts +2 -0
  646. package/src/service/architecture/domain/provider.ts +9 -0
  647. package/src/service/architecture/infrastructure/index.ts +48 -0
  648. package/src/service/architecture/infrastructure/orm/adapter-loader.ts +52 -0
  649. package/src/service/architecture/infrastructure/orm/adapters/mongoose-adapter.ts +133 -0
  650. package/src/service/architecture/infrastructure/orm/adapters/sequelize-adapter.ts +75 -0
  651. package/src/service/architecture/infrastructure/orm/index.ts +2 -0
  652. package/src/service/architecture/infrastructure/repositories/abstract.ts +112 -0
  653. package/src/service/architecture/infrastructure/repositories/types.ts +125 -0
  654. package/src/service/architecture/infrastructure/repository-interface.ts +35 -0
  655. package/src/service/architecture/infrastructure/repository.ts +75 -0
  656. package/src/service/architecture/platform/index.ts +5 -0
  657. package/src/service/architecture/platform/page/index.ts +1 -0
  658. package/src/service/architecture/platform/page/page.ts +52 -0
  659. package/src/service/architecture/platform/server/adapters/express-adapter.ts +112 -0
  660. package/src/service/architecture/platform/server/adapters/fastify-adapter.ts +61 -0
  661. package/src/service/architecture/platform/server/adapters/index.ts +2 -0
  662. package/src/service/architecture/platform/server/index.ts +1 -0
  663. package/src/service/architecture/platform/server/server-adapter.ts +23 -0
  664. package/src/{micro-service/architecture/platform/service/service.ts → service/architecture/platform/server/server.ts} +73 -90
  665. package/src/service/architecture/platform/service.ts +63 -0
  666. package/context.yaml +0 -151
  667. package/eslint.config.mjs +0 -59
  668. package/guidelines.yaml +0 -74
  669. package/mongodb.yaml +0 -29
  670. package/patterns.yaml +0 -55
  671. package/src/configuration.ts +0 -13
  672. package/src/logs.ts +0 -77
  673. package/src/micro-service/architecture/domain/domain.ts +0 -19
  674. package/src/micro-service/architecture/domain/index.ts +0 -1
  675. package/src/micro-service/architecture/infrastructure/repositories/abstract.ts +0 -90
  676. package/src/micro-service/architecture/infrastructure/repositories/mongoose.ts +0 -124
  677. package/src/micro-service/architecture/infrastructure/repositories/sequelize.ts +0 -70
  678. package/src/micro-service/architecture/infrastructure/repositories/types.ts +0 -69
  679. package/src/micro-service/architecture/platform/index.ts +0 -2
  680. package/src/micro-service/architecture/platform/micro-service.ts +0 -53
  681. package/src/micro-service/architecture/platform/service/index.ts +0 -1
  682. package/start.md +0 -34
  683. package/test/tsconfig.json +0 -9
  684. package/test/unit/helpers/common/common.ts +0 -32
  685. package/test/unit/helpers/common/logger.ts +0 -8
  686. package/test/unit/helpers/database/mongo.ts +0 -77
  687. package/test/unit/lib/global-setup.ts +0 -79
  688. package/test/unit/lib/setup-files.ts +0 -16
  689. package/test/unit/micro-service/architecture/application/application.test.ts +0 -60
  690. package/test/unit/micro-service/architecture/application/entry-points/rest/route-handlers/abstract.test.ts +0 -62
  691. package/test/unit/micro-service/architecture/application/entry-points/rest/route-handlers/get-route-handler.test.ts +0 -38
  692. package/test/unit/micro-service/architecture/application/entry-points/rest/route-handlers/post-route-handler.test.ts +0 -45
  693. package/test/unit/micro-service/architecture/architecture.test.ts +0 -64
  694. package/test/unit/micro-service/architecture/domain/domain.test.ts +0 -35
  695. package/test/unit/micro-service/architecture/infrastructure/infrastructure.test.ts +0 -33
  696. package/test/unit/micro-service/architecture/infrastructure/repositories/abstract.test.ts +0 -86
  697. package/test/unit/micro-service/architecture/platform/micro-service.test.ts +0 -86
  698. package/test/unit/micro-service/architecture/platform/service/service.test.ts +0 -200
  699. package/tsconfig.json +0 -63
  700. package/vite.config.mjs +0 -44
  701. /package/src/{micro-service → service}/architecture/application/application.ts +0 -0
  702. /package/src/{micro-service → service}/architecture/application/entry-points/index.ts +0 -0
  703. /package/src/{micro-service → service}/architecture/application/entry-points/rest/common/handler.ts +0 -0
  704. /package/src/{micro-service → service}/architecture/application/entry-points/rest/common/index.ts +0 -0
  705. /package/src/{micro-service → service}/architecture/application/entry-points/rest/common/request.ts +0 -0
  706. /package/src/{micro-service → service}/architecture/application/entry-points/rest/hook-handlers/hook-handler.ts +0 -0
  707. /package/src/{micro-service → service}/architecture/application/entry-points/rest/hook-handlers/index.ts +0 -0
  708. /package/src/{micro-service → service}/architecture/application/entry-points/rest/index.ts +0 -0
  709. /package/src/{micro-service → service}/architecture/application/entry-points/rest/route-handlers/generics.ts +0 -0
  710. /package/src/{micro-service → service}/architecture/application/entry-points/rest/route-handlers/get-route-handler.ts +0 -0
  711. /package/src/{micro-service → service}/architecture/application/entry-points/rest/route-handlers/index.ts +0 -0
  712. /package/src/{micro-service → service}/architecture/application/entry-points/rest/route-handlers/route-handler.ts +0 -0
  713. /package/src/{micro-service → service}/architecture/application/index.ts +0 -0
  714. /package/src/{micro-service → service}/architecture/architecture.ts +0 -0
  715. /package/src/{micro-service → service}/architecture/index.ts +0 -0
  716. /package/src/{micro-service → service}/architecture/infrastructure/infrastructure.ts +0 -0
  717. /package/src/{micro-service → service}/architecture/infrastructure/repositories/index.ts +0 -0
  718. /package/src/{micro-service → service}/index.ts +0 -0
@@ -1,25 +1,27 @@
1
- import proxy from "@fastify/http-proxy";
2
1
  import { FastifyInstance } from "fastify";
3
- import { ZodTypeProvider } from "fastify-type-provider-zod";
4
2
  import { container } from "tsyringe";
5
3
  import { Mongoose } from "mongoose";
6
4
  import { Sequelize } from "sequelize";
5
+ import { Express } from "express";
7
6
 
8
7
  import { HookHandler, RouteHandler } from "../../application";
9
8
  import { CustomError } from "../../../../error";
10
9
  import { Optional } from "../../../../optionals";
10
+ import { ServerAdapter } from "./server-adapter";
11
+ import { FastifyAdapter } from "./adapters/fastify-adapter";
12
+ import { ExpressAdapter } from "./adapters/express-adapter";
13
+ import { PageModule } from "../page";
11
14
 
12
- export enum ServiceType {
15
+ export enum ServerType {
13
16
  SERVER = "SERVER",
14
17
  GATEWAY = "GATEWAY",
15
18
  }
16
19
 
17
20
  export enum ServerVendor {
18
21
  FASTIFY = "FASTIFY",
22
+ EXPRESS = "EXPRESS",
19
23
  }
20
24
 
21
- type ServerInstance = FastifyInstance;
22
-
23
25
  type ProxyGateway = {
24
26
  upstream: string;
25
27
  prefix?: string;
@@ -29,10 +31,10 @@ type ProxiesGateway = Array<ProxyGateway>;
29
31
 
30
32
  type GatewayService = { proxies: ProxiesGateway };
31
33
 
32
- type ServiceServer = {
33
- type: ServiceType;
34
+ type HttpServerConfig = {
35
+ type: ServerType;
34
36
  vendor: ServerVendor;
35
- instance: ServerInstance;
37
+ instance: unknown;
36
38
  gateway?: GatewayService;
37
39
  };
38
40
 
@@ -58,10 +60,18 @@ type DatabaseServer = {
58
60
  onDatabaseConnected?: OnDatabaseConnectedFunction;
59
61
  };
60
62
 
61
- export type ConfigService = {
63
+ type ServerPageConfig = {
64
+ devServerUrl?: string;
65
+ staticDir?: string;
66
+ customRegister?: (server: unknown) => Promise<void> | void;
67
+ apiPrefix?: string;
68
+ };
69
+
70
+ export type ConfigServer = {
62
71
  name: string;
63
- server: ServiceServer;
72
+ server: HttpServerConfig;
64
73
  databases: Array<DatabaseServer>;
74
+ page?: ServerPageConfig;
65
75
  };
66
76
 
67
77
  export enum HandlersType {
@@ -71,53 +81,6 @@ export enum HandlersType {
71
81
 
72
82
  type Handlers = RouteHandler | HookHandler;
73
83
 
74
- export const strategiesForServerVendor = {
75
- [ServerVendor.FASTIFY]: {
76
- handlers: {
77
- [HandlersType.ROUTE]: (
78
- server: FastifyInstance,
79
- handler: Handlers
80
- ): void => {
81
- const route = handler as RouteHandler;
82
-
83
- server.withTypeProvider<ZodTypeProvider>().route({
84
- url: route.url,
85
- method: route.method,
86
- schema: route.schema,
87
- handler: route.execute.bind(route),
88
- });
89
-
90
- // console.info(`registered route: ${route.method} ${route.url}`);
91
- },
92
- [HandlersType.HOOK]: (
93
- server: FastifyInstance,
94
- handler: Handlers
95
- ): void => {
96
- const hook = handler as HookHandler;
97
-
98
- server.addHook(hook.name, hook.execute.bind(hook));
99
-
100
- // console.info(`registered hook: ${hook.name}`);
101
- },
102
- },
103
- server: {
104
- [ServiceType.SERVER]: (_: ServerInstance) => {},
105
- [ServiceType.GATEWAY]: (
106
- instance: ServerInstance,
107
- proxies?: ProxiesGateway
108
- ) => {
109
- proxies?.forEach((proxyConf) => {
110
- instance.register(proxy, {
111
- upstream: proxyConf.upstream,
112
- ...(proxyConf.prefix ? { prefix: proxyConf.prefix } : {}),
113
- http2: false, // Optional: configuration specific to your needs.
114
- });
115
- });
116
- },
117
- },
118
- },
119
- };
120
-
121
84
  export const strategiesForDatabaseVendor = {
122
85
  [DatabaseVendor.MONGOOSE]: async (input: {
123
86
  serviceName: string;
@@ -188,41 +151,48 @@ type RegisterHandlersInput = {
188
151
  handlersType: HandlersType;
189
152
  };
190
153
 
191
- type ServicePort = {
154
+ type ServerPort = {
192
155
  start: (input: StartInput) => Promise<void>;
193
156
  registerHandlers: (input: RegisterHandlersInput) => Promise<void>;
194
157
  };
195
158
 
196
- export class Service implements ServicePort {
159
+ export class Server implements ServerPort {
197
160
  private name: string;
198
- private server: ServiceServer;
161
+ private server: HttpServerConfig;
199
162
  private databases: Array<DatabaseServer>;
163
+ private page?: ServerPageConfig | undefined;
164
+ private adapter: ServerAdapter;
200
165
 
201
- constructor({ name, server, databases }: ConfigService) {
166
+ constructor({ name, server, databases, page }: ConfigServer) {
202
167
  this.name = name;
203
168
  this.server = server;
204
169
  this.databases = databases;
170
+ this.page = page;
171
+
172
+ if (this.server.vendor === ServerVendor.FASTIFY) {
173
+ this.adapter = new FastifyAdapter(
174
+ this.server.instance as FastifyInstance,
175
+ );
176
+ } else if (this.server.vendor === ServerVendor.EXPRESS) {
177
+ this.adapter = new ExpressAdapter(this.server.instance as Express);
178
+ } else {
179
+ throw new Error(`Unsupported server vendor: ${this.server.vendor}`);
180
+ }
205
181
  }
206
182
 
207
183
  public async registerHandlers(input: RegisterHandlersInput): Promise<void> {
208
184
  const { handlers, handlersType } = input;
209
185
 
210
- const registerHandlersFunction =
211
- strategiesForServerVendor[this.server.vendor].handlers[handlersType];
212
-
213
- if (!registerHandlersFunction) {
214
- throw new CustomError({
215
- message: `service vendor ${this.server.vendor} is not supported for ${handlersType} registration`,
216
- code: 500,
217
- reason: "service vendor not supported",
218
- metadata: { vendor: this.server.vendor },
219
- });
220
- }
221
-
222
186
  await Promise.all(
223
187
  handlers.map(async (handler) => {
224
188
  try {
225
- registerHandlersFunction(this.server.instance, handler);
189
+ if (handlersType === HandlersType.ROUTE) {
190
+ this.adapter.registerRoute(handler as RouteHandler);
191
+ } else if (handlersType === HandlersType.HOOK) {
192
+ this.adapter.registerHook(handler as HookHandler);
193
+ } else {
194
+ throw new Error(`Handler type ${handlersType} is not supported`);
195
+ }
226
196
  } catch (error: unknown) {
227
197
  throw new CustomError({
228
198
  message: `failed to register ${handlersType}: ${handler.constructor.name}`,
@@ -232,7 +202,7 @@ export class Service implements ServicePort {
232
202
  metadata: { handler: handler.constructor.name },
233
203
  });
234
204
  }
235
- })
205
+ }),
236
206
  );
237
207
  }
238
208
 
@@ -290,29 +260,25 @@ export class Service implements ServicePort {
290
260
  }
291
261
 
292
262
  private async configureServer(): Promise<void> {
293
- const configureServerFunction =
294
- strategiesForServerVendor[this.server.vendor].server[this.server.type];
295
-
296
- if (!configureServerFunction) {
297
- throw new CustomError({
298
- message: `service vendor ${this.server.vendor} is not supported for server configuration`,
299
- code: 500,
300
- reason: "service vendor not supported",
301
- metadata: { service: { name: this.name, vendor: this.server.vendor } },
263
+ if (
264
+ this.server.type === ServerType.GATEWAY &&
265
+ this.server.gateway?.proxies
266
+ ) {
267
+ this.server.gateway.proxies.forEach((proxyConf) => {
268
+ this.adapter.registerProxy({
269
+ upstream: proxyConf.upstream,
270
+ prefix: proxyConf.prefix || "/",
271
+ http2: false,
272
+ });
302
273
  });
303
274
  }
304
-
305
- configureServerFunction(this.server.instance, this.server.gateway?.proxies);
306
275
  }
307
276
 
308
277
  private async startServer(input: StartInput): Promise<void> {
309
278
  const { port } = input;
310
279
 
311
280
  try {
312
- await this.server.instance.listen({
313
- host: "0.0.0.0",
314
- port: port,
315
- });
281
+ await this.adapter.listen(port);
316
282
  } catch (error: unknown) {
317
283
  throw new CustomError({
318
284
  message: `failed to start service "${this.name}"`,
@@ -330,11 +296,28 @@ export class Service implements ServicePort {
330
296
  }
331
297
  }
332
298
 
299
+ private async configurePageModule(): Promise<void> {
300
+ if (!this.page) {
301
+ return;
302
+ }
303
+
304
+ const { apiPrefix, ...pageProps } = this.page;
305
+
306
+ const pageModule = new PageModule({
307
+ root: process.cwd(),
308
+ page: pageProps,
309
+ ...(apiPrefix ? { apiPrefix } : {}),
310
+ });
311
+
312
+ await pageModule.register(this.adapter);
313
+ }
314
+
333
315
  private async configure(input: StartInput): Promise<void> {
334
316
  const { port } = input;
335
317
 
336
318
  // await this.configureDatabases();
337
319
  await this.configureServer();
320
+ await this.configurePageModule();
338
321
  await this.startServer({ port });
339
322
  }
340
323
 
@@ -0,0 +1,63 @@
1
+ import { Application, ConfigApplication } from "../application";
2
+ import { ConfigDomain, Domain } from "../domain";
3
+ import { ConfigInfrastructure, Infrastructure } from "../infrastructure";
4
+ import { ConfigServer, HandlersType, Server } from "./server/server";
5
+ import type { Optional } from "../../../optionals";
6
+
7
+ export type ConfigService = {
8
+ architecture: {
9
+ application?: Optional<ConfigApplication>;
10
+ domain: ConfigDomain;
11
+ infrastructure: ConfigInfrastructure;
12
+ server?: Optional<ConfigServer>;
13
+ };
14
+ };
15
+
16
+ export class Service {
17
+ private application?: Optional<Application>;
18
+ private domain: Domain;
19
+ private infrastructure: Infrastructure;
20
+ private server?: Optional<Server>;
21
+
22
+ constructor(config: ConfigService) {
23
+ const { architecture } = config;
24
+ const { application, domain, infrastructure, server } = architecture;
25
+
26
+ this.application = application ? new Application(application) : undefined;
27
+ this.domain = new Domain(domain);
28
+ this.infrastructure = new Infrastructure(infrastructure);
29
+ this.server = server ? new Server(server) : undefined;
30
+ }
31
+
32
+ public async start(input?: { port?: number }): Promise<void> {
33
+ // Configure databases if server is provided
34
+ if (this.server) {
35
+ await this.server.configureDatabases();
36
+ }
37
+
38
+ // Start infrastructure (repositories)
39
+ this.infrastructure.start();
40
+
41
+ // Start domain (providers)
42
+ await this.domain.start();
43
+
44
+ // Start application (routes/hooks) if provided
45
+ if (this.application) {
46
+ this.application.start();
47
+ }
48
+
49
+ // Register handlers and start server if provided
50
+ if (this.server && this.application) {
51
+ this.server.registerHandlers({
52
+ handlers: this.application.routeHandlers,
53
+ handlersType: HandlersType.ROUTE,
54
+ });
55
+ this.server.registerHandlers({
56
+ handlers: this.application.hookHandlers,
57
+ handlersType: HandlersType.HOOK,
58
+ });
59
+
60
+ await this.server.start({ port: input?.port ?? 3000 });
61
+ }
62
+ }
63
+ }
package/context.yaml DELETED
@@ -1,151 +0,0 @@
1
- # Zacatl Project: Structured Context
2
-
3
- components:
4
- - name: MicroService
5
- type: class
6
- file: src/micro-service/architecture/platform/micro-service.ts
7
- description: |
8
- The main orchestrator for the microservice. Bootstraps Application, Domain, Infrastructure, and Service layers. Handles startup, dependency registration, and handler registration.
9
- methods:
10
- - name: constructor
11
- description: Initializes all architecture layers from config.
12
- - name: start
13
- description: Starts the service, configures databases, registers handlers, and launches the HTTP server.
14
- dependencies:
15
- - Application
16
- - Domain
17
- - Infrastructure
18
- - Service
19
-
20
- - name: Application
21
- type: class
22
- file: src/micro-service/architecture/application/application.ts
23
- description: |
24
- Handles HTTP entry points (REST), validation, and delegates to domain logic. Registers route and hook handlers using DI.
25
- methods:
26
- - name: constructor
27
- description: Configures i18n and stores entry point config.
28
- - name: start
29
- description: Registers and stores REST hook and route handlers.
30
- dependencies:
31
- - AbstractArchitecture
32
- - HookHandler
33
- - RouteHandler
34
-
35
- - name: Infrastructure
36
- type: class
37
- file: src/micro-service/architecture/infrastructure/infrastructure.ts
38
- description: |
39
- Registers and manages repositories (e.g., MongoDB) for persistence. Uses DI for repository registration.
40
- methods:
41
- - name: constructor
42
- description: Stores repository config.
43
- - name: start
44
- description: Registers repositories in DI container.
45
- dependencies:
46
- - AbstractArchitecture
47
-
48
- - name: BaseRepository
49
- type: abstract class
50
- file: src/micro-service/architecture/infrastructure/repositories/abstract.ts
51
- description: |
52
- Abstract base for MongoDB repositories. Handles model creation, lazy initialization, and CRUD methods. Ensures returned documents have an id field.
53
- methods:
54
- - name: constructor
55
- description: Sets up Mongoose model and schema.
56
- - name: findById
57
- description: Finds a document by id and returns a lean object with id.
58
- - name: create
59
- description: Creates a new document and returns a lean object with id.
60
- - name: update
61
- description: Updates a document by id and returns a lean object with id.
62
- - name: delete
63
- description: Deletes a document by id and returns a lean object with id.
64
- dependencies:
65
- - mongoose
66
- - tsyringe
67
-
68
- - name: AbstractArchitecture
69
- type: abstract class
70
- file: src/micro-service/architecture/architecture.ts
71
- description: |
72
- Provides generic dependency registration helpers for all architecture layers. Enforces a start() contract.
73
- methods:
74
- - name: registerDependencies
75
- description: Registers an array of classes in the DI container.
76
- - name: registerAndStoreDependencies
77
- description: Registers classes and stores resolved instances in a provided array.
78
- - name: start
79
- description: Abstract method to be implemented by subclasses.
80
- dependencies:
81
- - tsyringe
82
-
83
- - name: CustomError
84
- type: class
85
- file: src/error/custom.ts
86
- description: |
87
- Base class for all custom errors. Supports metadata, error codes, and unique IDs. Used for structured error handling.
88
- methods:
89
- - name: constructor
90
- description: Initializes error with message, code, reason, metadata, and stack trace.
91
-
92
- - name: getConfigOrThrow
93
- type: function
94
- file: src/configuration.ts
95
- description: |
96
- Retrieves configuration values from the config system. Throws if missing.
97
-
98
- - name: defaultLogger
99
- type: object
100
- file: src/logs.ts
101
- description: |
102
- Pino-based logger configured with environment and service metadata. Used for structured logging.
103
-
104
- - name: Utility Exports
105
- type: module
106
- file: src/utils/index.ts
107
- description: |
108
- Exports utility functions (e.g., base64, hmac) for use throughout the codebase.
109
-
110
- layers:
111
- - name: Platform
112
- description: Bootstraps the app, configures DI, starts the server.
113
- files:
114
- - src/micro-service/architecture/platform/micro-service.ts
115
- - src/micro-service/architecture/platform/service/service.ts
116
- - name: Application
117
- description: Handles HTTP requests, validation, delegates to domain logic.
118
- files:
119
- - src/micro-service/architecture/application/application.ts
120
- - src/micro-service/architecture/application/entry-points/rest/route-handlers/
121
- - src/micro-service/architecture/application/entry-points/rest/hook-handlers/
122
- - name: Domain
123
- description: Pure business rules, models, and logic (no infrastructure deps).
124
- files:
125
- - src/micro-service/architecture/domain/
126
- - name: Infrastructure
127
- description: Persistence (MongoDB repositories), external service integration.
128
- files:
129
- - src/micro-service/architecture/infrastructure/repositories/
130
- - src/micro-service/architecture/infrastructure/infrastructure.ts
131
-
132
- patterns:
133
- - Dependency Injection: All services, repositories, and handlers are registered in the DI container (tsyringe). Never instantiate dependencies directly.
134
- - Error Handling: Custom error classes extend CustomError. Errors are thrown and bubble up to Fastify's error handler unless custom handling is needed.
135
- - Validation: All request/response validation uses zod schemas.
136
- - Testing: All business logic, handlers, and utilities are unit tested using vitest. Tests mirror the src/ structure.
137
-
138
- config:
139
- - Localization: Locale JSON files in src/locales/ (e.g., en.json)
140
- - Environment Variables:
141
- - SERVICE_NAME: Service name
142
- - NODE_ENV: Environment (development, production, test)
143
- - CONNECTION_STRING: Database connection string
144
- - APP_VERSION: Application version
145
- - APP_ENV: Application environment
146
-
147
- testing:
148
- - All tests are in test/unit/, mirroring src/ structure.
149
- - Uses vitest for all tests.
150
- - Mocks external dependencies (DB, services) in tests.
151
- - Test helpers in test/unit/helpers/.
package/eslint.config.mjs DELETED
@@ -1,59 +0,0 @@
1
- import { FlatCompat } from "@eslint/eslintrc";
2
- import js from "@eslint/js";
3
- import tseslint from "typescript-eslint";
4
- import tsEslintParser from "@typescript-eslint/parser";
5
- import path from "path";
6
- import { fileURLToPath } from "url";
7
-
8
- const __filename = fileURLToPath(import.meta.url);
9
- const __dirname = path.dirname(__filename);
10
-
11
- const compat = new FlatCompat({
12
- baseDirectory: __dirname, // optional; default: process.cwd()
13
- resolvePluginsRelativeTo: __dirname, // optional
14
- recommendedConfig: js.configs.recommended, // optional unless you're using "eslint:recommended"
15
- allConfig: js.configs.all, // optional unless you're using "eslint:all"
16
- });
17
-
18
- export default [
19
- {
20
- ignores: [
21
- "README.md",
22
- "package-lock.json",
23
- "package.json",
24
- "tsconfig.json",
25
- "bun.lockb",
26
- "build/**/*",
27
- "report/**/*",
28
- "eslint.config.mjs",
29
- "vite.config.mjs",
30
- "LICENSE",
31
- "Dockerfile",
32
- "config/**/*",
33
- "doc/**/*",
34
- "locales/**/*",
35
- ],
36
- },
37
- {
38
- files: ["src/*.ts"],
39
- languageOptions: {
40
- parser: tsEslintParser,
41
- parserOptions: {
42
- project: "./tsconfig.json",
43
- },
44
- globals: {
45
- __dirname: "readonly",
46
- process: "readonly",
47
- console: "readonly",
48
- },
49
- },
50
- plugins: {
51
- "@typescript-eslint": tseslint,
52
- },
53
- rules: {
54
- "no-unused-vars": "off",
55
- },
56
- },
57
- js.configs.recommended,
58
- ...compat.config({}),
59
- ];
package/guidelines.yaml DELETED
@@ -1,74 +0,0 @@
1
- # Zacatl Project: Coding Guidelines & Best Practices
2
-
3
- naming:
4
- file_folder:
5
- - Use lowercase and hyphens (e.g., user-repository.ts, route-handlers/)
6
- variables:
7
- - Use meaningful, descriptive names
8
- classes:
9
- - Use PascalCase for class names
10
- functions:
11
- - Use camelCase for function and method names
12
-
13
- style:
14
- - Write clean, modular, and straightforward code
15
- - Use strong typing and TypeScript generics where appropriate
16
- - Prefer async/await for asynchronous code
17
- - Keep functions short, focused, and readable
18
- - Prefer clarity over excessive comments; use tests to document behavior
19
- - Avoid code duplication (DRY principle); extract reusable logic into utils/ or shared services
20
- - Use modern TypeScript/ES features
21
-
22
- architecture:
23
- - Follow layered (hexagonal) architecture: Platform → Application → Domain → Infrastructure
24
- - Strict separation of concerns between layers
25
- - Application: Handles HTTP, validation, delegates to domain
26
- - Domain: Pure business logic, no infrastructure dependencies
27
- - Infrastructure: Persistence, external integrations
28
- - Platform: Bootstraps, configures DI, starts server
29
-
30
- patterns:
31
- dependency_injection:
32
- - Use tsyringe for all DI
33
- - Register all services, repositories, and handlers in the DI container
34
- - Never instantiate dependencies directly; always resolve via DI
35
- error_handling:
36
- - All custom errors extend CustomError (src/error/custom.ts)
37
- - Use CustomError.handle(error) in middleware or route handlers to log/format errors
38
- - Always include relevant metadata and a clear message in error instances
39
- - Throw errors for exceptional cases; do not return error objects
40
- - Let errors bubble up to Fastify’s error handler unless custom handling is needed
41
- validation:
42
- - Use zod schemas for all request/response validation
43
- testing:
44
- - Use vitest for all tests
45
- - Place tests in test/, mirroring src/ structure
46
- - Write unit tests for all logic
47
- - Mock all external dependencies (DB, services) in tests
48
- - Use descriptive test names and group related tests in files named after the module under test
49
- - Run tests using the vitest CLI
50
- documentation:
51
- - Update context.yaml and guidelines.yaml with any new patterns, conventions, or architectural changes
52
- - Document new features, patterns, or conventions in YAML, not Markdown
53
-
54
- mongodb:
55
- - Define all schemas in infrastructure/repositories/
56
- - Embed related data for performance when possible
57
- - Keep schemas minimal and use concise property names
58
- - Use references for large or independent data
59
- - Ensure documents stay well below MongoDB’s 16MB limit
60
- - Define indexes for frequently queried fields
61
- - Use Mongoose and zod for schema and runtime validation
62
- - Consider schema versioning for breaking changes
63
-
64
- extending:
65
- - Add new features by creating new handlers, services, or repositories in the appropriate layer
66
- - Register all new classes in the DI container
67
- - Write tests for all new logic
68
- - Update context.yaml and guidelines.yaml with new patterns or conventions
69
-
70
- security:
71
- - Validate all inputs
72
- - Handle errors gracefully
73
- - Never expose sensitive data
74
- - Sanitize and validate all external data
package/mongodb.yaml DELETED
@@ -1,29 +0,0 @@
1
- # Zacatl Project: MongoDB Schema Design Guidelines
2
-
3
- origin: mongodb_schema_design_guidelines.md
4
- source: MongoDB_schema_design_guidelines.pdf
5
-
6
- principles:
7
- - favor_embedding:
8
- rule: Embed related data within a single document when possible to improve performance by reducing the need for joins/queries.
9
- rationale: Embedded documents ensure related data is retrieved together, enhancing read performance for one-to-few/one-to-many relationships.
10
- - minimalism_and_simplicity:
11
- rule: Design schemas with simplicity and minimalism. Use nested objects to reflect natural data hierarchies.
12
- rationale: Minimal schemas are easier to understand, maintain, and scale.
13
- - property_naming:
14
- rule: Use single-word property names when possible; otherwise, limit to two words.
15
- rationale: Short, concise property names reduce errors and improve readability.
16
- - document_size_and_cardinality:
17
- rule: Keep document size within MongoDB’s 16MB limit. Avoid embedding data that could grow unbounded (high-cardinality relationships).
18
- rationale: Large documents degrade performance and complicate replication/backup. Use references for large/independent data.
19
- - lifecycle_consistency:
20
- rule: Embed data only if it shares a lifecycle with the parent document. Use references if embedded data is accessed/updated independently.
21
- rationale: Aligning lifecycles ensures consistent, predictable schema behavior.
22
-
23
- flexibility:
24
- - These guidelines are best practices and should be adapted to specific application requirements and data access patterns.
25
- - The recommendation for concise property names is flexible, but clarity and consistency are critical.
26
-
27
- conclusion:
28
- - Following these guidelines will help ensure MongoDB schemas are optimized for performance, maintainability, and scalability.
29
- - Adapt as needed for your application’s needs.