@warlock.js/core 4.0.30 → 4.0.39

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 (703) hide show
  1. package/esm/cli/index.js +2 -1
  2. package/esm/cli/index.js.map +1 -1
  3. package/esm/cli/start.js +132 -2
  4. package/esm/cli/start.js.map +1 -1
  5. package/esm/index.js +72 -1
  6. package/esm/index.js.map +1 -1
  7. package/package.json +71 -65
  8. package/esm/application.d.ts +0 -27
  9. package/esm/application.d.ts.map +0 -1
  10. package/esm/bootstrap/setup.d.ts +0 -7
  11. package/esm/bootstrap/setup.d.ts.map +0 -1
  12. package/esm/bootstrap/setup.js +0 -38
  13. package/esm/bootstrap/setup.js.map +0 -1
  14. package/esm/bootstrap.d.ts +0 -2
  15. package/esm/bootstrap.d.ts.map +0 -1
  16. package/esm/bootstrap.js +0 -5
  17. package/esm/bootstrap.js.map +0 -1
  18. package/esm/cache/database-cache-driver.d.ts +0 -56
  19. package/esm/cache/database-cache-driver.d.ts.map +0 -1
  20. package/esm/cache/database-cache-driver.js +0 -96
  21. package/esm/cache/database-cache-driver.js.map +0 -1
  22. package/esm/cache/index.d.ts +0 -3
  23. package/esm/cache/index.d.ts.map +0 -1
  24. package/esm/cache/index.js +0 -1
  25. package/esm/cache/index.js.map +0 -1
  26. package/esm/cli/cli-command.d.ts +0 -115
  27. package/esm/cli/cli-command.d.ts.map +0 -1
  28. package/esm/cli/cli-command.js +0 -224
  29. package/esm/cli/cli-command.js.map +0 -1
  30. package/esm/cli/cli-commands.manager.d.ts +0 -71
  31. package/esm/cli/cli-commands.manager.d.ts.map +0 -1
  32. package/esm/cli/cli-commands.manager.js +0 -345
  33. package/esm/cli/cli-commands.manager.js.map +0 -1
  34. package/esm/cli/cli-commands.utils.d.ts +0 -68
  35. package/esm/cli/cli-commands.utils.d.ts.map +0 -1
  36. package/esm/cli/cli-commands.utils.js +0 -182
  37. package/esm/cli/cli-commands.utils.js.map +0 -1
  38. package/esm/cli/commands/build.command.d.ts +0 -2
  39. package/esm/cli/commands/build.command.d.ts.map +0 -1
  40. package/esm/cli/commands/build.command.js +0 -8
  41. package/esm/cli/commands/build.command.js.map +0 -1
  42. package/esm/cli/commands/dev-server.command.d.ts +0 -2
  43. package/esm/cli/commands/dev-server.command.d.ts.map +0 -1
  44. package/esm/cli/commands/dev-server.command.js +0 -16
  45. package/esm/cli/commands/dev-server.command.js.map +0 -1
  46. package/esm/cli/commands/start-production.command.d.ts +0 -2
  47. package/esm/cli/commands/start-production.command.d.ts.map +0 -1
  48. package/esm/cli/commands/start-production.command.js +0 -65
  49. package/esm/cli/commands/start-production.command.js.map +0 -1
  50. package/esm/cli/commands/typings-generator.command.d.ts +0 -2
  51. package/esm/cli/commands/typings-generator.command.d.ts.map +0 -1
  52. package/esm/cli/commands/typings-generator.command.js +0 -40
  53. package/esm/cli/commands/typings-generator.command.js.map +0 -1
  54. package/esm/cli/commands-loader.d.ts +0 -18
  55. package/esm/cli/commands-loader.d.ts.map +0 -1
  56. package/esm/cli/commands-loader.js +0 -45
  57. package/esm/cli/commands-loader.js.map +0 -1
  58. package/esm/cli/framework-cli-commands.d.ts +0 -2
  59. package/esm/cli/framework-cli-commands.d.ts.map +0 -1
  60. package/esm/cli/framework-cli-commands.js +0 -6
  61. package/esm/cli/framework-cli-commands.js.map +0 -1
  62. package/esm/cli/index.d.ts +0 -3
  63. package/esm/cli/index.d.ts.map +0 -1
  64. package/esm/cli/parse-cli-args.d.ts +0 -18
  65. package/esm/cli/parse-cli-args.d.ts.map +0 -1
  66. package/esm/cli/parse-cli-args.js +0 -82
  67. package/esm/cli/parse-cli-args.js.map +0 -1
  68. package/esm/cli/start.d.ts +0 -2
  69. package/esm/cli/start.d.ts.map +0 -1
  70. package/esm/cli/string-similarity.d.ts +0 -44
  71. package/esm/cli/string-similarity.d.ts.map +0 -1
  72. package/esm/cli/string-similarity.js +0 -57
  73. package/esm/cli/string-similarity.js.map +0 -1
  74. package/esm/cli/types.d.ts +0 -201
  75. package/esm/cli/types.d.ts.map +0 -1
  76. package/esm/config/config-getter.d.ts +0 -35
  77. package/esm/config/config-getter.d.ts.map +0 -1
  78. package/esm/config/config-getter.js +0 -21
  79. package/esm/config/config-getter.js.map +0 -1
  80. package/esm/config/config-handlers.d.ts +0 -19
  81. package/esm/config/config-handlers.d.ts.map +0 -1
  82. package/esm/config/config-handlers.js +0 -47
  83. package/esm/config/config-handlers.js.map +0 -1
  84. package/esm/config/config-loader.d.ts +0 -37
  85. package/esm/config/config-loader.d.ts.map +0 -1
  86. package/esm/config/config-loader.js +0 -83
  87. package/esm/config/config-loader.js.map +0 -1
  88. package/esm/config/config-manager.d.ts +0 -22
  89. package/esm/config/config-manager.d.ts.map +0 -1
  90. package/esm/config/config-manager.js +0 -25
  91. package/esm/config/config-manager.js.map +0 -1
  92. package/esm/config/config-special-handlers.d.ts +0 -17
  93. package/esm/config/config-special-handlers.d.ts.map +0 -1
  94. package/esm/config/config-special-handlers.js +0 -23
  95. package/esm/config/config-special-handlers.js.map +0 -1
  96. package/esm/config/index.d.ts +0 -5
  97. package/esm/config/index.d.ts.map +0 -1
  98. package/esm/config/load-config-files.d.ts +0 -6
  99. package/esm/config/load-config-files.d.ts.map +0 -1
  100. package/esm/config/load-config-files.js +0 -19
  101. package/esm/config/load-config-files.js.map +0 -1
  102. package/esm/config/types.d.ts +0 -52
  103. package/esm/config/types.d.ts.map +0 -1
  104. package/esm/database/decorators/index.d.ts +0 -2
  105. package/esm/database/decorators/index.d.ts.map +0 -1
  106. package/esm/database/decorators/sluggable.d.ts +0 -2
  107. package/esm/database/decorators/sluggable.d.ts.map +0 -1
  108. package/esm/database/decorators/sluggable.js +0 -8
  109. package/esm/database/decorators/sluggable.js.map +0 -1
  110. package/esm/database/index.d.ts +0 -3
  111. package/esm/database/index.d.ts.map +0 -1
  112. package/esm/database/models/database-log/database-log.d.ts +0 -13
  113. package/esm/database/models/database-log/database-log.d.ts.map +0 -1
  114. package/esm/database/models/database-log/database-log.js +0 -16
  115. package/esm/database/models/database-log/database-log.js.map +0 -1
  116. package/esm/database/models/database-log/index.d.ts +0 -2
  117. package/esm/database/models/database-log/index.d.ts.map +0 -1
  118. package/esm/dev2-server/config-handlers.d.ts +0 -8
  119. package/esm/dev2-server/config-handlers.d.ts.map +0 -1
  120. package/esm/dev2-server/config-loader.d.ts +0 -61
  121. package/esm/dev2-server/config-loader.d.ts.map +0 -1
  122. package/esm/dev2-server/connectors/base-connector.d.ts +0 -49
  123. package/esm/dev2-server/connectors/base-connector.d.ts.map +0 -1
  124. package/esm/dev2-server/connectors/base-connector.js +0 -48
  125. package/esm/dev2-server/connectors/base-connector.js.map +0 -1
  126. package/esm/dev2-server/connectors/cache-connector.d.ts +0 -23
  127. package/esm/dev2-server/connectors/cache-connector.d.ts.map +0 -1
  128. package/esm/dev2-server/connectors/cache-connector.js +0 -35
  129. package/esm/dev2-server/connectors/cache-connector.js.map +0 -1
  130. package/esm/dev2-server/connectors/connectors-manager.d.ts +0 -38
  131. package/esm/dev2-server/connectors/connectors-manager.d.ts.map +0 -1
  132. package/esm/dev2-server/connectors/connectors-manager.js +0 -80
  133. package/esm/dev2-server/connectors/connectors-manager.js.map +0 -1
  134. package/esm/dev2-server/connectors/database-connector.d.ts +0 -23
  135. package/esm/dev2-server/connectors/database-connector.d.ts.map +0 -1
  136. package/esm/dev2-server/connectors/database-connector.js +0 -42
  137. package/esm/dev2-server/connectors/database-connector.js.map +0 -1
  138. package/esm/dev2-server/connectors/http-connector.d.ts +0 -29
  139. package/esm/dev2-server/connectors/http-connector.d.ts.map +0 -1
  140. package/esm/dev2-server/connectors/http-connector.js +0 -69
  141. package/esm/dev2-server/connectors/http-connector.js.map +0 -1
  142. package/esm/dev2-server/connectors/index.d.ts +0 -11
  143. package/esm/dev2-server/connectors/index.d.ts.map +0 -1
  144. package/esm/dev2-server/connectors/types.d.ts +0 -49
  145. package/esm/dev2-server/connectors/types.d.ts.map +0 -1
  146. package/esm/dev2-server/connectors/types.js +0 -9
  147. package/esm/dev2-server/connectors/types.js.map +0 -1
  148. package/esm/dev2-server/create-worker.d.ts +0 -34
  149. package/esm/dev2-server/create-worker.d.ts.map +0 -1
  150. package/esm/dev2-server/create-worker.js +0 -37
  151. package/esm/dev2-server/create-worker.js.map +0 -1
  152. package/esm/dev2-server/dependency-graph.d.ts +0 -93
  153. package/esm/dev2-server/dependency-graph.d.ts.map +0 -1
  154. package/esm/dev2-server/dependency-graph.js +0 -266
  155. package/esm/dev2-server/dependency-graph.js.map +0 -1
  156. package/esm/dev2-server/dev-logger.d.ts +0 -14
  157. package/esm/dev2-server/dev-logger.d.ts.map +0 -1
  158. package/esm/dev2-server/dev-logger.js +0 -130
  159. package/esm/dev2-server/dev-logger.js.map +0 -1
  160. package/esm/dev2-server/development-server.d.ts +0 -47
  161. package/esm/dev2-server/development-server.d.ts.map +0 -1
  162. package/esm/dev2-server/development-server.js +0 -135
  163. package/esm/dev2-server/development-server.js.map +0 -1
  164. package/esm/dev2-server/events.d.ts +0 -5
  165. package/esm/dev2-server/events.d.ts.map +0 -1
  166. package/esm/dev2-server/events.js +0 -4
  167. package/esm/dev2-server/events.js.map +0 -1
  168. package/esm/dev2-server/file-event-handler.d.ts +0 -156
  169. package/esm/dev2-server/file-event-handler.d.ts.map +0 -1
  170. package/esm/dev2-server/file-event-handler.js +0 -300
  171. package/esm/dev2-server/file-event-handler.js.map +0 -1
  172. package/esm/dev2-server/file-manager.d.ts +0 -385
  173. package/esm/dev2-server/file-manager.d.ts.map +0 -1
  174. package/esm/dev2-server/file-manager.js +0 -580
  175. package/esm/dev2-server/file-manager.js.map +0 -1
  176. package/esm/dev2-server/file-operations.d.ts +0 -203
  177. package/esm/dev2-server/file-operations.d.ts.map +0 -1
  178. package/esm/dev2-server/file-operations.js +0 -365
  179. package/esm/dev2-server/file-operations.js.map +0 -1
  180. package/esm/dev2-server/files-orchestrator.d.ts +0 -146
  181. package/esm/dev2-server/files-orchestrator.d.ts.map +0 -1
  182. package/esm/dev2-server/files-orchestrator.js +0 -314
  183. package/esm/dev2-server/files-orchestrator.js.map +0 -1
  184. package/esm/dev2-server/files-watcher.d.ts +0 -67
  185. package/esm/dev2-server/files-watcher.d.ts.map +0 -1
  186. package/esm/dev2-server/files-watcher.js +0 -95
  187. package/esm/dev2-server/files-watcher.js.map +0 -1
  188. package/esm/dev2-server/flags.d.ts +0 -10
  189. package/esm/dev2-server/flags.d.ts.map +0 -1
  190. package/esm/dev2-server/flags.js +0 -9
  191. package/esm/dev2-server/flags.js.map +0 -1
  192. package/esm/dev2-server/health-checker/checkers/base-health-checker.d.ts +0 -52
  193. package/esm/dev2-server/health-checker/checkers/base-health-checker.d.ts.map +0 -1
  194. package/esm/dev2-server/health-checker/checkers/base-health-checker.js +0 -71
  195. package/esm/dev2-server/health-checker/checkers/base-health-checker.js.map +0 -1
  196. package/esm/dev2-server/health-checker/checkers/eslint-health-checker.d.ts +0 -40
  197. package/esm/dev2-server/health-checker/checkers/eslint-health-checker.d.ts.map +0 -1
  198. package/esm/dev2-server/health-checker/checkers/eslint-health-checker.js +0 -217
  199. package/esm/dev2-server/health-checker/checkers/eslint-health-checker.js.map +0 -1
  200. package/esm/dev2-server/health-checker/checkers/typescript-health-checker.d.ts +0 -56
  201. package/esm/dev2-server/health-checker/checkers/typescript-health-checker.d.ts.map +0 -1
  202. package/esm/dev2-server/health-checker/checkers/typescript-health-checker.js +0 -279
  203. package/esm/dev2-server/health-checker/checkers/typescript-health-checker.js.map +0 -1
  204. package/esm/dev2-server/health-checker/file-health-checker.contract.d.ts +0 -59
  205. package/esm/dev2-server/health-checker/file-health-checker.contract.d.ts.map +0 -1
  206. package/esm/dev2-server/health-checker/file-health-result.d.ts +0 -68
  207. package/esm/dev2-server/health-checker/file-health-result.d.ts.map +0 -1
  208. package/esm/dev2-server/health-checker/file-health-result.js +0 -40
  209. package/esm/dev2-server/health-checker/file-health-result.js.map +0 -1
  210. package/esm/dev2-server/health-checker/files-healthcare.manager.d.ts +0 -115
  211. package/esm/dev2-server/health-checker/files-healthcare.manager.d.ts.map +0 -1
  212. package/esm/dev2-server/health-checker/files-healthcare.manager.js +0 -422
  213. package/esm/dev2-server/health-checker/files-healthcare.manager.js.map +0 -1
  214. package/esm/dev2-server/health-checker/index.d.ts +0 -6
  215. package/esm/dev2-server/health-checker/index.d.ts.map +0 -1
  216. package/esm/dev2-server/health-checker/workers/eslint-health.worker.d.ts +0 -2
  217. package/esm/dev2-server/health-checker/workers/eslint-health.worker.d.ts.map +0 -1
  218. package/esm/dev2-server/health-checker/workers/eslint-health.worker.js +0 -214
  219. package/esm/dev2-server/health-checker/workers/eslint-health.worker.js.map +0 -1
  220. package/esm/dev2-server/health-checker/workers/ts-health.worker.d.ts +0 -2
  221. package/esm/dev2-server/health-checker/workers/ts-health.worker.d.ts.map +0 -1
  222. package/esm/dev2-server/health-checker/workers/ts-health.worker.js +0 -261
  223. package/esm/dev2-server/health-checker/workers/ts-health.worker.js.map +0 -1
  224. package/esm/dev2-server/import-transformer.d.ts +0 -17
  225. package/esm/dev2-server/import-transformer.d.ts.map +0 -1
  226. package/esm/dev2-server/import-transformer.js +0 -236
  227. package/esm/dev2-server/import-transformer.js.map +0 -1
  228. package/esm/dev2-server/index.d.ts +0 -1
  229. package/esm/dev2-server/index.d.ts.map +0 -1
  230. package/esm/dev2-server/layer-executor.d.ts +0 -60
  231. package/esm/dev2-server/layer-executor.d.ts.map +0 -1
  232. package/esm/dev2-server/layer-executor.js +0 -309
  233. package/esm/dev2-server/layer-executor.js.map +0 -1
  234. package/esm/dev2-server/manifest-manager.d.ts +0 -80
  235. package/esm/dev2-server/manifest-manager.d.ts.map +0 -1
  236. package/esm/dev2-server/manifest-manager.js +0 -107
  237. package/esm/dev2-server/manifest-manager.js.map +0 -1
  238. package/esm/dev2-server/module-loader.d.ts +0 -104
  239. package/esm/dev2-server/module-loader.d.ts.map +0 -1
  240. package/esm/dev2-server/module-loader.js +0 -251
  241. package/esm/dev2-server/module-loader.js.map +0 -1
  242. package/esm/dev2-server/package-json-manager.d.ts +0 -16
  243. package/esm/dev2-server/package-json-manager.d.ts.map +0 -1
  244. package/esm/dev2-server/package-json-manager.js +0 -20
  245. package/esm/dev2-server/package-json-manager.js.map +0 -1
  246. package/esm/dev2-server/parse-imports.d.ts +0 -13
  247. package/esm/dev2-server/parse-imports.d.ts.map +0 -1
  248. package/esm/dev2-server/parse-imports.js +0 -329
  249. package/esm/dev2-server/parse-imports.js.map +0 -1
  250. package/esm/dev2-server/path.d.ts +0 -39
  251. package/esm/dev2-server/path.d.ts.map +0 -1
  252. package/esm/dev2-server/path.js +0 -56
  253. package/esm/dev2-server/path.js.map +0 -1
  254. package/esm/dev2-server/runtime-import-helper.d.ts +0 -9
  255. package/esm/dev2-server/runtime-import-helper.d.ts.map +0 -1
  256. package/esm/dev2-server/runtime-import-helper.js +0 -150
  257. package/esm/dev2-server/runtime-import-helper.js.map +0 -1
  258. package/esm/dev2-server/special-files-collector.d.ts +0 -114
  259. package/esm/dev2-server/special-files-collector.d.ts.map +0 -1
  260. package/esm/dev2-server/special-files-collector.js +0 -212
  261. package/esm/dev2-server/special-files-collector.js.map +0 -1
  262. package/esm/dev2-server/start-development-server.d.ts +0 -7
  263. package/esm/dev2-server/start-development-server.d.ts.map +0 -1
  264. package/esm/dev2-server/start-development-server.js +0 -21
  265. package/esm/dev2-server/start-development-server.js.map +0 -1
  266. package/esm/dev2-server/transpile-file.d.ts +0 -11
  267. package/esm/dev2-server/transpile-file.d.ts.map +0 -1
  268. package/esm/dev2-server/transpile-file.js +0 -21
  269. package/esm/dev2-server/transpile-file.js.map +0 -1
  270. package/esm/dev2-server/tsconfig-manager.d.ts +0 -45
  271. package/esm/dev2-server/tsconfig-manager.d.ts.map +0 -1
  272. package/esm/dev2-server/tsconfig-manager.js +0 -107
  273. package/esm/dev2-server/tsconfig-manager.js.map +0 -1
  274. package/esm/dev2-server/type-generator.d.ts +0 -115
  275. package/esm/dev2-server/type-generator.d.ts.map +0 -1
  276. package/esm/dev2-server/type-generator.js +0 -566
  277. package/esm/dev2-server/type-generator.js.map +0 -1
  278. package/esm/dev2-server/types.d.ts +0 -30
  279. package/esm/dev2-server/types.d.ts.map +0 -1
  280. package/esm/dev2-server/utils.d.ts +0 -15
  281. package/esm/dev2-server/utils.d.ts.map +0 -1
  282. package/esm/dev2-server/utils.js +0 -40
  283. package/esm/dev2-server/utils.js.map +0 -1
  284. package/esm/http/config.d.ts +0 -10
  285. package/esm/http/config.d.ts.map +0 -1
  286. package/esm/http/config.js +0 -22
  287. package/esm/http/config.js.map +0 -1
  288. package/esm/http/createHttpApplication.d.ts +0 -3
  289. package/esm/http/createHttpApplication.d.ts.map +0 -1
  290. package/esm/http/createHttpApplication.js +0 -28
  291. package/esm/http/createHttpApplication.js.map +0 -1
  292. package/esm/http/database/RequestLog.d.ts +0 -13
  293. package/esm/http/database/RequestLog.d.ts.map +0 -1
  294. package/esm/http/database/RequestLog.js +0 -25
  295. package/esm/http/database/RequestLog.js.map +0 -1
  296. package/esm/http/errors/index.d.ts +0 -2
  297. package/esm/http/errors/index.d.ts.map +0 -1
  298. package/esm/http/errors/resource-not-found.error.d.ts +0 -21
  299. package/esm/http/errors/resource-not-found.error.d.ts.map +0 -1
  300. package/esm/http/errors/resource-not-found.error.js +0 -40
  301. package/esm/http/errors/resource-not-found.error.js.map +0 -1
  302. package/esm/http/events.d.ts +0 -4
  303. package/esm/http/events.d.ts.map +0 -1
  304. package/esm/http/events.js +0 -26
  305. package/esm/http/events.js.map +0 -1
  306. package/esm/http/index.d.ts +0 -16
  307. package/esm/http/index.d.ts.map +0 -1
  308. package/esm/http/middleware/cache-response-middleware.d.ts +0 -34
  309. package/esm/http/middleware/cache-response-middleware.d.ts.map +0 -1
  310. package/esm/http/middleware/cache-response-middleware.js +0 -45
  311. package/esm/http/middleware/cache-response-middleware.js.map +0 -1
  312. package/esm/http/middleware/index.d.ts +0 -3
  313. package/esm/http/middleware/index.d.ts.map +0 -1
  314. package/esm/http/middleware/inject-request-context.d.ts +0 -35
  315. package/esm/http/middleware/inject-request-context.d.ts.map +0 -1
  316. package/esm/http/middleware/inject-request-context.js +0 -110
  317. package/esm/http/middleware/inject-request-context.js.map +0 -1
  318. package/esm/http/plugins/index.d.ts +0 -3
  319. package/esm/http/plugins/index.d.ts.map +0 -1
  320. package/esm/http/plugins.d.ts +0 -3
  321. package/esm/http/plugins.d.ts.map +0 -1
  322. package/esm/http/plugins.js +0 -39
  323. package/esm/http/plugins.js.map +0 -1
  324. package/esm/http/request-controller.d.ts +0 -11
  325. package/esm/http/request-controller.d.ts.map +0 -1
  326. package/esm/http/request-controller.js +0 -9
  327. package/esm/http/request-controller.js.map +0 -1
  328. package/esm/http/request.d.ts +0 -376
  329. package/esm/http/request.d.ts.map +0 -1
  330. package/esm/http/request.js +0 -729
  331. package/esm/http/request.js.map +0 -1
  332. package/esm/http/response.d.ts +0 -271
  333. package/esm/http/response.d.ts.map +0 -1
  334. package/esm/http/response.js +0 -574
  335. package/esm/http/response.js.map +0 -1
  336. package/esm/http/server.d.ts +0 -8
  337. package/esm/http/server.d.ts.map +0 -1
  338. package/esm/http/server.js +0 -15
  339. package/esm/http/server.js.map +0 -1
  340. package/esm/http/types.d.ts +0 -174
  341. package/esm/http/types.d.ts.map +0 -1
  342. package/esm/http/uploaded-file.d.ts +0 -445
  343. package/esm/http/uploaded-file.d.ts.map +0 -1
  344. package/esm/http/uploaded-file.js +0 -694
  345. package/esm/http/uploaded-file.js.map +0 -1
  346. package/esm/http/uploads-config.d.ts +0 -26
  347. package/esm/http/uploads-config.d.ts.map +0 -1
  348. package/esm/http/uploads-config.js +0 -35
  349. package/esm/http/uploads-config.js.map +0 -1
  350. package/esm/http/uploads-types.d.ts +0 -236
  351. package/esm/http/uploads-types.d.ts.map +0 -1
  352. package/esm/image/image.d.ts +0 -382
  353. package/esm/image/image.d.ts.map +0 -1
  354. package/esm/image/image.js +0 -552
  355. package/esm/image/image.js.map +0 -1
  356. package/esm/image/index.d.ts +0 -2
  357. package/esm/image/index.d.ts.map +0 -1
  358. package/esm/index.d.ts +0 -29
  359. package/esm/index.d.ts.map +0 -1
  360. package/esm/logger/index.d.ts +0 -3
  361. package/esm/logger/index.d.ts.map +0 -1
  362. package/esm/logger/logger.d.ts +0 -3
  363. package/esm/logger/logger.d.ts.map +0 -1
  364. package/esm/logger/logger.js +0 -16
  365. package/esm/logger/logger.js.map +0 -1
  366. package/esm/logger/types.d.ts +0 -39
  367. package/esm/logger/types.d.ts.map +0 -1
  368. package/esm/mail/config.d.ts +0 -83
  369. package/esm/mail/config.d.ts.map +0 -1
  370. package/esm/mail/config.js +0 -152
  371. package/esm/mail/config.js.map +0 -1
  372. package/esm/mail/events.d.ts +0 -96
  373. package/esm/mail/events.d.ts.map +0 -1
  374. package/esm/mail/events.js +0 -123
  375. package/esm/mail/events.js.map +0 -1
  376. package/esm/mail/index.d.ts +0 -10
  377. package/esm/mail/index.d.ts.map +0 -1
  378. package/esm/mail/mail.d.ts +0 -175
  379. package/esm/mail/mail.d.ts.map +0 -1
  380. package/esm/mail/mail.js +0 -286
  381. package/esm/mail/mail.js.map +0 -1
  382. package/esm/mail/mailer-pool.d.ts +0 -26
  383. package/esm/mail/mailer-pool.d.ts.map +0 -1
  384. package/esm/mail/mailer-pool.js +0 -95
  385. package/esm/mail/mailer-pool.js.map +0 -1
  386. package/esm/mail/react-mail.d.ts +0 -6
  387. package/esm/mail/react-mail.d.ts.map +0 -1
  388. package/esm/mail/react-mail.js +0 -25
  389. package/esm/mail/react-mail.js.map +0 -1
  390. package/esm/mail/send-mail.d.ts +0 -33
  391. package/esm/mail/send-mail.d.ts.map +0 -1
  392. package/esm/mail/send-mail.js +0 -309
  393. package/esm/mail/send-mail.js.map +0 -1
  394. package/esm/mail/test-mailbox.d.ts +0 -110
  395. package/esm/mail/test-mailbox.d.ts.map +0 -1
  396. package/esm/mail/test-mailbox.js +0 -143
  397. package/esm/mail/test-mailbox.js.map +0 -1
  398. package/esm/mail/types.d.ts +0 -245
  399. package/esm/mail/types.d.ts.map +0 -1
  400. package/esm/mail/types.js +0 -13
  401. package/esm/mail/types.js.map +0 -1
  402. package/esm/manifest/manifest-manager.d.ts +0 -74
  403. package/esm/manifest/manifest-manager.d.ts.map +0 -1
  404. package/esm/manifest/manifest-manager.js +0 -88
  405. package/esm/manifest/manifest-manager.js.map +0 -1
  406. package/esm/output/index.d.ts +0 -3
  407. package/esm/output/index.d.ts.map +0 -1
  408. package/esm/output/output.d.ts +0 -193
  409. package/esm/output/output.d.ts.map +0 -1
  410. package/esm/output/output.js +0 -599
  411. package/esm/output/output.js.map +0 -1
  412. package/esm/output/types.d.ts +0 -23
  413. package/esm/output/types.d.ts.map +0 -1
  414. package/esm/production/build-app-production.d.ts +0 -6
  415. package/esm/production/build-app-production.d.ts.map +0 -1
  416. package/esm/production/build-app-production.js +0 -8
  417. package/esm/production/build-app-production.js.map +0 -1
  418. package/esm/production/esbuild-plugins.d.ts +0 -5
  419. package/esm/production/esbuild-plugins.d.ts.map +0 -1
  420. package/esm/production/esbuild-plugins.js +0 -23
  421. package/esm/production/esbuild-plugins.js.map +0 -1
  422. package/esm/production/production-builder.d.ts +0 -76
  423. package/esm/production/production-builder.d.ts.map +0 -1
  424. package/esm/production/production-builder.js +0 -245
  425. package/esm/production/production-builder.js.map +0 -1
  426. package/esm/react/index.d.ts +0 -3
  427. package/esm/react/index.d.ts.map +0 -1
  428. package/esm/react/index.js +0 -7
  429. package/esm/react/index.js.map +0 -1
  430. package/esm/repositories/base-repository-manager.d.ts +0 -47
  431. package/esm/repositories/base-repository-manager.d.ts.map +0 -1
  432. package/esm/repositories/base-repository-manager.js +0 -63
  433. package/esm/repositories/base-repository-manager.js.map +0 -1
  434. package/esm/repositories/index.d.ts +0 -8
  435. package/esm/repositories/index.d.ts.map +0 -1
  436. package/esm/repositories/repository-destroyer-manager.d.ts +0 -21
  437. package/esm/repositories/repository-destroyer-manager.d.ts.map +0 -1
  438. package/esm/repositories/repository-destroyer-manager.js +0 -38
  439. package/esm/repositories/repository-destroyer-manager.js.map +0 -1
  440. package/esm/repositories/repository-filler-manager.d.ts +0 -60
  441. package/esm/repositories/repository-filler-manager.d.ts.map +0 -1
  442. package/esm/repositories/repository-filler-manager.js +0 -102
  443. package/esm/repositories/repository-filler-manager.js.map +0 -1
  444. package/esm/repositories/repository-filler.d.ts +0 -26
  445. package/esm/repositories/repository-filler.d.ts.map +0 -1
  446. package/esm/repositories/repository-filler.js +0 -63
  447. package/esm/repositories/repository-filler.js.map +0 -1
  448. package/esm/repositories/repository-list-manager.d.ts +0 -385
  449. package/esm/repositories/repository-list-manager.d.ts.map +0 -1
  450. package/esm/repositories/repository-list-manager.js +0 -812
  451. package/esm/repositories/repository-list-manager.js.map +0 -1
  452. package/esm/repositories/repository-listing.d.ts +0 -82
  453. package/esm/repositories/repository-listing.d.ts.map +0 -1
  454. package/esm/repositories/repository-listing.js +0 -177
  455. package/esm/repositories/repository-listing.js.map +0 -1
  456. package/esm/repositories/repository-manager.d.ts +0 -5
  457. package/esm/repositories/repository-manager.d.ts.map +0 -1
  458. package/esm/repositories/repository-manager.js +0 -2
  459. package/esm/repositories/repository-manager.js.map +0 -1
  460. package/esm/repositories/types.d.ts +0 -114
  461. package/esm/repositories/types.d.ts.map +0 -1
  462. package/esm/repositories/utils.d.ts +0 -3
  463. package/esm/repositories/utils.d.ts.map +0 -1
  464. package/esm/repositories/utils.js +0 -7
  465. package/esm/repositories/utils.js.map +0 -1
  466. package/esm/restful/index.d.ts +0 -2
  467. package/esm/restful/index.d.ts.map +0 -1
  468. package/esm/restful/restful.d.ts +0 -110
  469. package/esm/restful/restful.d.ts.map +0 -1
  470. package/esm/restful/restful.js +0 -317
  471. package/esm/restful/restful.js.map +0 -1
  472. package/esm/router/index.d.ts +0 -4
  473. package/esm/router/index.d.ts.map +0 -1
  474. package/esm/router/route-registry.d.ts +0 -30
  475. package/esm/router/route-registry.d.ts.map +0 -1
  476. package/esm/router/route-registry.js +0 -67
  477. package/esm/router/route-registry.js.map +0 -1
  478. package/esm/router/route.d.ts +0 -34
  479. package/esm/router/route.d.ts.map +0 -1
  480. package/esm/router/router.d.ts +0 -169
  481. package/esm/router/router.d.ts.map +0 -1
  482. package/esm/router/router.js +0 -564
  483. package/esm/router/router.js.map +0 -1
  484. package/esm/router/types.d.ts +0 -258
  485. package/esm/router/types.d.ts.map +0 -1
  486. package/esm/router/utils.d.ts +0 -5
  487. package/esm/router/utils.d.ts.map +0 -1
  488. package/esm/router/utils.js +0 -6
  489. package/esm/router/utils.js.map +0 -1
  490. package/esm/storage/config.d.ts +0 -8
  491. package/esm/storage/config.d.ts.map +0 -1
  492. package/esm/storage/config.js +0 -6
  493. package/esm/storage/config.js.map +0 -1
  494. package/esm/storage/drivers/cloud-driver.d.ts +0 -127
  495. package/esm/storage/drivers/cloud-driver.d.ts.map +0 -1
  496. package/esm/storage/drivers/cloud-driver.js +0 -406
  497. package/esm/storage/drivers/cloud-driver.js.map +0 -1
  498. package/esm/storage/drivers/do-spaces-driver.d.ts +0 -47
  499. package/esm/storage/drivers/do-spaces-driver.d.ts.map +0 -1
  500. package/esm/storage/drivers/do-spaces-driver.js +0 -52
  501. package/esm/storage/drivers/do-spaces-driver.js.map +0 -1
  502. package/esm/storage/drivers/local-driver.d.ts +0 -136
  503. package/esm/storage/drivers/local-driver.d.ts.map +0 -1
  504. package/esm/storage/drivers/local-driver.js +0 -409
  505. package/esm/storage/drivers/local-driver.js.map +0 -1
  506. package/esm/storage/drivers/r2-driver.d.ts +0 -50
  507. package/esm/storage/drivers/r2-driver.d.ts.map +0 -1
  508. package/esm/storage/drivers/r2-driver.js +0 -59
  509. package/esm/storage/drivers/r2-driver.js.map +0 -1
  510. package/esm/storage/drivers/s3-driver.d.ts +0 -32
  511. package/esm/storage/drivers/s3-driver.d.ts.map +0 -1
  512. package/esm/storage/drivers/s3-driver.js +0 -34
  513. package/esm/storage/drivers/s3-driver.js.map +0 -1
  514. package/esm/storage/index.d.ts +0 -12
  515. package/esm/storage/index.d.ts.map +0 -1
  516. package/esm/storage/scoped-storage.d.ts +0 -402
  517. package/esm/storage/scoped-storage.d.ts.map +0 -1
  518. package/esm/storage/scoped-storage.js +0 -488
  519. package/esm/storage/scoped-storage.js.map +0 -1
  520. package/esm/storage/storage-file.d.ts +0 -216
  521. package/esm/storage/storage-file.d.ts.map +0 -1
  522. package/esm/storage/storage-file.js +0 -358
  523. package/esm/storage/storage-file.js.map +0 -1
  524. package/esm/storage/storage.d.ts +0 -582
  525. package/esm/storage/storage.d.ts.map +0 -1
  526. package/esm/storage/storage.js +0 -941
  527. package/esm/storage/storage.js.map +0 -1
  528. package/esm/storage/types.d.ts +0 -728
  529. package/esm/storage/types.d.ts.map +0 -1
  530. package/esm/storage/utils/mime.d.ts +0 -33
  531. package/esm/storage/utils/mime.d.ts.map +0 -1
  532. package/esm/storage/utils/mime.js +0 -45
  533. package/esm/storage/utils/mime.js.map +0 -1
  534. package/esm/store/index.d.ts +0 -25
  535. package/esm/store/index.d.ts.map +0 -1
  536. package/esm/store/index.js +0 -52
  537. package/esm/store/index.js.map +0 -1
  538. package/esm/tests/boot-testing.d.ts +0 -7
  539. package/esm/tests/boot-testing.d.ts.map +0 -1
  540. package/esm/tests/boot-testing.js +0 -23
  541. package/esm/tests/boot-testing.js.map +0 -1
  542. package/esm/tests/create-http-test-application.d.ts +0 -25
  543. package/esm/tests/create-http-test-application.d.ts.map +0 -1
  544. package/esm/tests/create-http-test-application.js +0 -76
  545. package/esm/tests/create-http-test-application.js.map +0 -1
  546. package/esm/tests/http-response-output-test.d.ts +0 -42
  547. package/esm/tests/http-response-output-test.d.ts.map +0 -1
  548. package/esm/tests/http-response-output-test.js +0 -53
  549. package/esm/tests/http-response-output-test.js.map +0 -1
  550. package/esm/tests/http-test-response.d.ts +0 -75
  551. package/esm/tests/http-test-response.d.ts.map +0 -1
  552. package/esm/tests/index.d.ts +0 -4
  553. package/esm/tests/index.d.ts.map +0 -1
  554. package/esm/tests/init-testing.d.ts +0 -7
  555. package/esm/tests/init-testing.d.ts.map +0 -1
  556. package/esm/tests/types.d.ts +0 -10
  557. package/esm/tests/types.d.ts.map +0 -1
  558. package/esm/utils/app-log.d.ts +0 -8
  559. package/esm/utils/app-log.d.ts.map +0 -1
  560. package/esm/utils/app-log.js +0 -7
  561. package/esm/utils/app-log.js.map +0 -1
  562. package/esm/utils/cleanup-temp-files.d.ts +0 -5
  563. package/esm/utils/cleanup-temp-files.d.ts.map +0 -1
  564. package/esm/utils/database-log.d.ts +0 -25
  565. package/esm/utils/database-log.d.ts.map +0 -1
  566. package/esm/utils/database-log.js +0 -44
  567. package/esm/utils/database-log.js.map +0 -1
  568. package/esm/utils/date-output.d.ts +0 -69
  569. package/esm/utils/date-output.d.ts.map +0 -1
  570. package/esm/utils/date-output.js +0 -62
  571. package/esm/utils/date-output.js.map +0 -1
  572. package/esm/utils/date-output.test.d.ts +0 -2
  573. package/esm/utils/date-output.test.d.ts.map +0 -1
  574. package/esm/utils/download-file.d.ts +0 -3
  575. package/esm/utils/download-file.d.ts.map +0 -1
  576. package/esm/utils/environment.d.ts +0 -4
  577. package/esm/utils/environment.d.ts.map +0 -1
  578. package/esm/utils/environment.js +0 -6
  579. package/esm/utils/environment.js.map +0 -1
  580. package/esm/utils/get-localized.d.ts +0 -10
  581. package/esm/utils/get-localized.d.ts.map +0 -1
  582. package/esm/utils/get-localized.js +0 -15
  583. package/esm/utils/get-localized.js.map +0 -1
  584. package/esm/utils/get-localized.test.d.ts +0 -2
  585. package/esm/utils/get-localized.test.d.ts.map +0 -1
  586. package/esm/utils/index.d.ts +0 -13
  587. package/esm/utils/index.d.ts.map +0 -1
  588. package/esm/utils/internal.d.ts +0 -4
  589. package/esm/utils/internal.d.ts.map +0 -1
  590. package/esm/utils/paths.d.ts +0 -55
  591. package/esm/utils/paths.d.ts.map +0 -1
  592. package/esm/utils/paths.js +0 -89
  593. package/esm/utils/paths.js.map +0 -1
  594. package/esm/utils/promise-all-object.d.ts +0 -8
  595. package/esm/utils/promise-all-object.d.ts.map +0 -1
  596. package/esm/utils/promise-all-object.js +0 -12
  597. package/esm/utils/promise-all-object.js.map +0 -1
  598. package/esm/utils/queue.d.ts +0 -49
  599. package/esm/utils/queue.d.ts.map +0 -1
  600. package/esm/utils/queue.js +0 -89
  601. package/esm/utils/queue.js.map +0 -1
  602. package/esm/utils/sleep.d.ts +0 -2
  603. package/esm/utils/sleep.d.ts.map +0 -1
  604. package/esm/utils/sleep.js +0 -3
  605. package/esm/utils/sleep.js.map +0 -1
  606. package/esm/utils/sluggable.d.ts +0 -5
  607. package/esm/utils/sluggable.d.ts.map +0 -1
  608. package/esm/utils/sluggable.js +0 -15
  609. package/esm/utils/sluggable.js.map +0 -1
  610. package/esm/utils/sluggable.test.d.ts +0 -2
  611. package/esm/utils/sluggable.test.d.ts.map +0 -1
  612. package/esm/utils/to-json.d.ts +0 -2
  613. package/esm/utils/to-json.d.ts.map +0 -1
  614. package/esm/utils/to-json.js +0 -26
  615. package/esm/utils/to-json.js.map +0 -1
  616. package/esm/utils/types.d.ts +0 -22
  617. package/esm/utils/types.d.ts.map +0 -1
  618. package/esm/utils/urls.d.ts +0 -21
  619. package/esm/utils/urls.d.ts.map +0 -1
  620. package/esm/utils/urls.js +0 -31
  621. package/esm/utils/urls.js.map +0 -1
  622. package/esm/validation/database/exists-except-current-id.d.ts +0 -7
  623. package/esm/validation/database/exists-except-current-id.d.ts.map +0 -1
  624. package/esm/validation/database/exists-except-current-id.js +0 -23
  625. package/esm/validation/database/exists-except-current-id.js.map +0 -1
  626. package/esm/validation/database/exists-except-current-user.d.ts +0 -7
  627. package/esm/validation/database/exists-except-current-user.d.ts.map +0 -1
  628. package/esm/validation/database/exists-except-current-user.js +0 -25
  629. package/esm/validation/database/exists-except-current-user.js.map +0 -1
  630. package/esm/validation/database/exists.d.ts +0 -7
  631. package/esm/validation/database/exists.d.ts.map +0 -1
  632. package/esm/validation/database/exists.js +0 -21
  633. package/esm/validation/database/exists.js.map +0 -1
  634. package/esm/validation/database/index.d.ts +0 -12
  635. package/esm/validation/database/index.d.ts.map +0 -1
  636. package/esm/validation/database/types.d.ts +0 -68
  637. package/esm/validation/database/types.d.ts.map +0 -1
  638. package/esm/validation/database/unique-except-current-id.d.ts +0 -7
  639. package/esm/validation/database/unique-except-current-id.d.ts.map +0 -1
  640. package/esm/validation/database/unique-except-current-id.js +0 -23
  641. package/esm/validation/database/unique-except-current-id.js.map +0 -1
  642. package/esm/validation/database/unique-except-current-user.d.ts +0 -7
  643. package/esm/validation/database/unique-except-current-user.d.ts.map +0 -1
  644. package/esm/validation/database/unique-except-current-user.js +0 -25
  645. package/esm/validation/database/unique-except-current-user.js.map +0 -1
  646. package/esm/validation/database/unique.d.ts +0 -7
  647. package/esm/validation/database/unique.d.ts.map +0 -1
  648. package/esm/validation/database/unique.js +0 -30
  649. package/esm/validation/database/unique.js.map +0 -1
  650. package/esm/validation/file/file.d.ts +0 -22
  651. package/esm/validation/file/file.d.ts.map +0 -1
  652. package/esm/validation/file/file.js +0 -60
  653. package/esm/validation/file/file.js.map +0 -1
  654. package/esm/validation/file/index.d.ts +0 -6
  655. package/esm/validation/file/index.d.ts.map +0 -1
  656. package/esm/validation/index.d.ts +0 -16
  657. package/esm/validation/index.d.ts.map +0 -1
  658. package/esm/validation/init.d.ts +0 -7
  659. package/esm/validation/init.d.ts.map +0 -1
  660. package/esm/validation/init.js +0 -34
  661. package/esm/validation/init.js.map +0 -1
  662. package/esm/validation/plugins/database-plugin.d.ts +0 -14
  663. package/esm/validation/plugins/database-plugin.d.ts.map +0 -1
  664. package/esm/validation/plugins/database-plugin.js +0 -95
  665. package/esm/validation/plugins/database-plugin.js.map +0 -1
  666. package/esm/validation/plugins/file-plugin.d.ts +0 -11
  667. package/esm/validation/plugins/file-plugin.d.ts.map +0 -1
  668. package/esm/validation/plugins/file-plugin.js +0 -17
  669. package/esm/validation/plugins/file-plugin.js.map +0 -1
  670. package/esm/validation/plugins/index.d.ts +0 -9
  671. package/esm/validation/plugins/index.d.ts.map +0 -1
  672. package/esm/validation/plugins/localized-plugin.d.ts +0 -11
  673. package/esm/validation/plugins/localized-plugin.d.ts.map +0 -1
  674. package/esm/validation/plugins/localized-plugin.js +0 -19
  675. package/esm/validation/plugins/localized-plugin.js.map +0 -1
  676. package/esm/validation/types.d.ts +0 -87
  677. package/esm/validation/types.d.ts.map +0 -1
  678. package/esm/validation/validateAll.d.ts +0 -7
  679. package/esm/validation/validateAll.d.ts.map +0 -1
  680. package/esm/validation/validateAll.js +0 -39
  681. package/esm/validation/validateAll.js.map +0 -1
  682. package/esm/validation/validators/file-validator.d.ts +0 -40
  683. package/esm/validation/validators/file-validator.d.ts.map +0 -1
  684. package/esm/validation/validators/file-validator.js +0 -94
  685. package/esm/validation/validators/file-validator.js.map +0 -1
  686. package/esm/validation/validators/index.d.ts +0 -7
  687. package/esm/validation/validators/index.d.ts.map +0 -1
  688. package/esm/warlock-config/default-configurations.d.ts +0 -3
  689. package/esm/warlock-config/default-configurations.d.ts.map +0 -1
  690. package/esm/warlock-config/default-configurations.js +0 -8
  691. package/esm/warlock-config/default-configurations.js.map +0 -1
  692. package/esm/warlock-config/define-config.d.ts +0 -3
  693. package/esm/warlock-config/define-config.d.ts.map +0 -1
  694. package/esm/warlock-config/define-config.js +0 -3
  695. package/esm/warlock-config/define-config.js.map +0 -1
  696. package/esm/warlock-config/index.d.ts +0 -4
  697. package/esm/warlock-config/index.d.ts.map +0 -1
  698. package/esm/warlock-config/types.d.ts +0 -79
  699. package/esm/warlock-config/types.d.ts.map +0 -1
  700. package/esm/warlock-config/warlock-config.manager.d.ts +0 -83
  701. package/esm/warlock-config/warlock-config.manager.d.ts.map +0 -1
  702. package/esm/warlock-config/warlock-config.manager.js +0 -141
  703. package/esm/warlock-config/warlock-config.manager.js.map +0 -1
@@ -1,564 +0,0 @@
1
- import proxy from'@fastify/http-proxy';import fastifyStatic from'@fastify/static';import concatRoute from'@mongez/concat-route';import {trim,toCamelCase,ltrim,merge}from'@mongez/reinforcements';import {isEmpty}from'@mongez/supportive-is';import {log}from'@warlock.js/logger';import {Request}from'../http/request.js';import {Response}from'../http/response.js';import {RouteRegistry}from'./route-registry.js';class Router {
2
- /**
3
- * Routes list
4
- */
5
- routes = [];
6
- /**
7
- * Router Instance
8
- */
9
- static instance;
10
- /**
11
- * Static paths
12
- */
13
- staticDirectories = [];
14
- /**
15
- * Event listeners
16
- */
17
- eventListeners = {};
18
- /**
19
- * Stacks
20
- * Stacks will be used for grouping routes to add prefix, name or middleware
21
- */
22
- stacks = {
23
- prefix: [],
24
- name: [],
25
- middleware: [],
26
- };
27
- /**
28
- * Get router instance
29
- */
30
- static getInstance() {
31
- if (!Router.instance) {
32
- Router.instance = new Router();
33
- }
34
- return Router.instance;
35
- }
36
- constructor() {
37
- //
38
- }
39
- /**
40
- * Listen to router before scan
41
- */
42
- beforeScanning(callback) {
43
- this.eventListeners.beforeScan = [...(this.eventListeners.beforeScan || []), callback];
44
- return this;
45
- }
46
- /**
47
- * Listen to router after scanning
48
- */
49
- afterScanning(callback) {
50
- this.eventListeners.afterScanning = [...(this.eventListeners.afterScanning || []), callback];
51
- return this;
52
- }
53
- /**
54
- * Redirect path to another path
55
- */
56
- redirect(from, to, redirectMode = "temporary") {
57
- return this.get(from, (_request, response) => {
58
- response.redirect(to, redirectMode === "temporary" ? 302 : 301);
59
- });
60
- }
61
- /**
62
- * Server static folder
63
- */
64
- directory(options) {
65
- this.staticDirectories.push(options);
66
- return this;
67
- }
68
- /**
69
- * Serve file
70
- */
71
- file(path, location, cacheTime) {
72
- return this.get(path, (_request, response) => {
73
- response.sendFile(location, cacheTime);
74
- });
75
- }
76
- /**
77
- * Serve cached file, it will cache the file to 1 year by default
78
- */
79
- cachedFile(path, location, cacheTime) {
80
- return this.get(path, (_request, response) => {
81
- response.sendCachedFile(location, cacheTime);
82
- });
83
- }
84
- /**
85
- * Serve list of files
86
- */
87
- files(files, cacheTime) {
88
- for (const [path, location] of Object.entries(files)) {
89
- this.get(path, (_request, response) => {
90
- response.sendFile(location, cacheTime);
91
- });
92
- }
93
- }
94
- /**
95
- * Serve list of cached files, it will cache the file to 1 year by default
96
- */
97
- cachedFiles(files, cacheTime) {
98
- for (const [path, location] of Object.entries(files)) {
99
- this.get(path, (_request, response) => {
100
- response.sendCachedFile(location, cacheTime);
101
- });
102
- }
103
- }
104
- /**
105
- * Add proxy route
106
- */
107
- proxy(options) {
108
- this.beforeScanning((_router, server) => {
109
- server.register(proxy, options);
110
- });
111
- return this;
112
- }
113
- /**
114
- * Add route to routes list
115
- */
116
- add(method, path, handler, options = {}) {
117
- if (Array.isArray(path)) {
118
- path.forEach((p) => this.add(method, p, handler, options));
119
- return this;
120
- }
121
- const prefix = this.stacks.prefix.reduce((path, prefix) => {
122
- return concatRoute(path, prefix);
123
- }, "");
124
- const name = this.stacks.name.reduceRight((name, prefixName) => {
125
- return trim(prefixName + "." + name, ".");
126
- }, options.name || trim(path.replace(/\//g, "."), "."));
127
- path = concatRoute(prefix, path);
128
- const middlewarePrecedence = options.middlewarePrecedence || "after";
129
- if (middlewarePrecedence === "before") {
130
- options.middleware = [...(options.middleware || []), ...this.stacks.middleware];
131
- }
132
- else {
133
- options.middleware = [...this.stacks.middleware, ...(options.middleware || [])];
134
- }
135
- if (Array.isArray(handler)) {
136
- const [controller, action] = handler;
137
- if (typeof controller[action] !== "function") {
138
- throw new Error(`Invalid controller action "${action}" for controller "${controller.constructor.name}"`);
139
- }
140
- handler = controller[action].bind(controller);
141
- if (!handler.validation) {
142
- handler.validation = {};
143
- if (controller[`${action}ValidationSchema`]) {
144
- handler.validation.schema = controller[`${action}ValidationSchema`]();
145
- }
146
- if (controller[`${action}Validate`]) {
147
- handler.validation.validate = controller[`${action}Validate`];
148
- }
149
- }
150
- }
151
- const routeData = {
152
- method,
153
- path,
154
- handler,
155
- ...options,
156
- name,
157
- $prefix: prefix || "/",
158
- // it must be a new array to avoid modifying the original array
159
- $prefixStack: [...this.stacks.prefix],
160
- // Inject source file from stacks if set
161
- sourceFile: this.stacks.sourceFile || "",
162
- };
163
- if (routeData.name) {
164
- // check if the name exists
165
- const route = this.routes.find((route) => route.name === routeData.name);
166
- if (route) {
167
- // check again if the route name exists with the same method
168
- if (route.method === routeData.method) {
169
- throw new Error(`Route name "${routeData.name}" already exists`);
170
- }
171
- else {
172
- routeData.name += `.${routeData.method.toLowerCase()}`;
173
- }
174
- }
175
- }
176
- this.routes.push(routeData);
177
- return this;
178
- }
179
- /**
180
- * Add a request that accepts all methods
181
- */
182
- any(path, handler, options = {}) {
183
- return this.add("all", path, handler, options);
184
- }
185
- /**
186
- * Add get request method
187
- */
188
- get(path, handler, options = {}) {
189
- return this.add("GET", path, handler, options);
190
- }
191
- /**
192
- * Add post request method
193
- */
194
- post(path, handler, options = {}) {
195
- return this.add("POST", path, handler, options);
196
- }
197
- /**
198
- * Add put request method
199
- */
200
- put(path, handler, options = {}) {
201
- return this.add("PUT", path, handler, options);
202
- }
203
- /**
204
- * Add delete request method
205
- */
206
- delete(path, handler, options = {}) {
207
- return this.add("DELETE", path, handler, options);
208
- }
209
- /**
210
- * Add patch request method
211
- */
212
- patch(path, handler, options = {}) {
213
- return this.add("PATCH", path, handler, options);
214
- }
215
- /**
216
- * Add head request method
217
- */
218
- head(path, handler, options = {}) {
219
- return this.add("HEAD", path, handler, options);
220
- }
221
- /**
222
- * Add options request method
223
- */
224
- options(path, handler, options = {}) {
225
- return this.add("OPTIONS", path, handler, options);
226
- }
227
- /**
228
- * Add full restful resource routes
229
- * This method will generate the following routes:
230
- * 1. GET /path: list all resources
231
- * 2. GET /path/:id: get a single resource
232
- * 3. POST /path: create a new resource
233
- * 4. PUT /path/:id: update a resource
234
- * 5. DELETE /path/:id: delete a resource
235
- * 6. PATCH /path/:id: update a resource partially
236
- */
237
- restfulResource(path, resource, options = {}) {
238
- return this.prefix(path, () => {
239
- path = "";
240
- // get base resource name
241
- const baseResourceName = options.name || toCamelCase(ltrim(path, "/"));
242
- // clone the resource so we don't mess up with it
243
- const routeResource = resource;
244
- const isAcceptableResource = (type) => {
245
- return Boolean(
246
- // check if the route is not excluded
247
- (!options.except || !options.except.includes(type)) &&
248
- // check if the only option is set and the route is included
249
- (!options.only || options.only.includes(type)));
250
- };
251
- if (routeResource.list && isAcceptableResource("list")) {
252
- const resourceName = baseResourceName + ".list";
253
- this.get(path, options.replace?.list || routeResource.list.bind(routeResource), {
254
- ...options,
255
- name: resourceName,
256
- restful: true,
257
- });
258
- }
259
- if (routeResource.get && isAcceptableResource("get")) {
260
- const resourceName = baseResourceName + ".single";
261
- this.get(path + "/:id", options.replace?.get || routeResource.get.bind(routeResource), {
262
- ...options,
263
- name: resourceName,
264
- restful: true,
265
- });
266
- }
267
- if (routeResource.create && isAcceptableResource("create")) {
268
- const resourceName = baseResourceName + ".create";
269
- const handler = options.replace?.create || this.manageValidation(routeResource, "create");
270
- this.post(path, handler, {
271
- ...options,
272
- name: resourceName,
273
- restful: true,
274
- });
275
- }
276
- if (routeResource.update && isAcceptableResource("update")) {
277
- const resourceName = baseResourceName + ".update";
278
- const handler = options.replace?.update || this.manageValidation(routeResource, "update");
279
- this.put(path + "/:id", handler, {
280
- ...options,
281
- name: resourceName,
282
- restful: true,
283
- });
284
- }
285
- if (routeResource.patch && isAcceptableResource("patch")) {
286
- const resourceName = baseResourceName + ".patch";
287
- const handler = options.replace?.patch || this.manageValidation(routeResource, "patch");
288
- this.patch(path + "/:id", handler, {
289
- ...options,
290
- name: resourceName,
291
- restful: true,
292
- });
293
- }
294
- if (routeResource.delete && isAcceptableResource("delete")) {
295
- const resourceName = baseResourceName + ".delete";
296
- this.delete(path + "/:id", options.replace?.delete || routeResource.delete.bind(routeResource), {
297
- ...options,
298
- name: resourceName,
299
- restful: true,
300
- });
301
- }
302
- if (routeResource.bulkDelete && isAcceptableResource("delete")) {
303
- const resourceName = baseResourceName + ".bulkDelete";
304
- this.delete(path, options.replace?.bulkDelete || routeResource.bulkDelete.bind(routeResource), {
305
- ...options,
306
- name: resourceName,
307
- restful: true,
308
- });
309
- }
310
- return this;
311
- });
312
- }
313
- /**
314
- * Group routes with options
315
- */
316
- group(options, callback) {
317
- const { prefix,
318
- // name must always be defined because
319
- // if there are multiple groups without name
320
- // they might generate the same route name
321
- // thus causing an error
322
- // in this case we need always to make sure that
323
- // the name is always defined.
324
- name = prefix ? trim(prefix.replace(/\//g, "."), ".") : undefined, middleware, } = options;
325
- if (prefix) {
326
- this.stacks.prefix.push(prefix);
327
- }
328
- if (name) {
329
- this.stacks.name.push(name);
330
- }
331
- if (middleware) {
332
- this.stacks.middleware.push(...middleware);
333
- }
334
- callback();
335
- if (prefix) {
336
- this.stacks.prefix.pop();
337
- }
338
- if (name) {
339
- this.stacks.name.pop();
340
- }
341
- if (middleware) {
342
- this.stacks.middleware.splice(this.stacks.middleware.length - middleware.length, middleware.length);
343
- }
344
- return this;
345
- }
346
- /**
347
- * Add prefix to all routes in the given callback
348
- */
349
- prefix(prefix, callback) {
350
- return this.group({ prefix }, callback);
351
- }
352
- /**
353
- * Wrap route additions with a source file path
354
- * Used for tracking which routes come from which file (for HMR)
355
- * @param sourceFile Relative path to the source file (e.g., "src/app/users/routes.ts")
356
- * @param callback Function that adds routes (will have sourceFile injected)
357
- */
358
- async withSourceFile(sourceFile, callback) {
359
- // Set source file in stacks
360
- this.stacks.sourceFile = sourceFile;
361
- try {
362
- // Execute callback (routes added here will have sourceFile injected)
363
- return await callback();
364
- }
365
- catch (error) {
366
- console.log("Error in withSourceFile", error);
367
- }
368
- finally {
369
- // Always clear source file from stacks
370
- delete this.stacks.sourceFile;
371
- }
372
- }
373
- /**
374
- * Remove all routes that belong to a specific source file
375
- * Used when reloading routes files via HMR
376
- * @param sourceFile Relative path to the source file
377
- */
378
- removeRoutesBySourceFile(sourceFile) {
379
- this.routes = this.routes.filter((route) => route.sourceFile !== sourceFile);
380
- }
381
- /**
382
- * Manage validation system for the given resource
383
- */
384
- manageValidation(resource, method) {
385
- const handler = resource[method]?.bind(resource);
386
- const methodValidation = resource?.validation?.[method];
387
- if (method === "patch") {
388
- handler.validation = methodValidation;
389
- if (handler.validation?.validate) {
390
- handler.validation.validate = handler.validation.validate.bind(resource);
391
- }
392
- if (resource.validation?.patch) {
393
- handler.validation = merge(resource.validation.patch, handler.validation);
394
- }
395
- return handler;
396
- }
397
- if (!resource.validation || (!methodValidation && !resource.validation.all))
398
- return handler;
399
- if (resource.validation.all) {
400
- const validationMethods = {
401
- all: resource?.validation?.all?.validate,
402
- [method]: methodValidation?.validate,
403
- };
404
- const validation = {};
405
- if (resource.validation.all.schema || methodValidation?.schema) {
406
- if (!methodValidation?.schema && resource.validation.all.schema) {
407
- // Case 2: Only all.schema exists - clone it for this method
408
- validation.schema = resource.validation.all.schema;
409
- }
410
- else if (methodValidation?.schema && resource.validation.all.schema) {
411
- // Case 3: Both exist - merge them (all is base, method overrides)
412
- validation.schema = resource.validation.all.schema.merge(methodValidation.schema);
413
- }
414
- else if (methodValidation?.schema && !resource.validation.all.schema) {
415
- // Case 1: Only method schema exists - use it directly
416
- validation.schema = methodValidation.schema;
417
- }
418
- // Case 4: Neither exists - handled by outer if being false
419
- }
420
- if (validationMethods.all || validationMethods[method]) {
421
- validation.validate = async (request, response) => {
422
- if (validationMethods.all) {
423
- const output = await validationMethods.all.call(resource, request, response);
424
- if (output)
425
- return output;
426
- }
427
- if (validationMethods[method]) {
428
- return await validationMethods[method]?.call(resource, request, response);
429
- }
430
- return;
431
- };
432
- }
433
- if (!isEmpty(validation)) {
434
- handler.validation = validation;
435
- }
436
- }
437
- else {
438
- handler.validation = resource.validation[method];
439
- if (handler.validation?.validate) {
440
- handler.validation.validate = handler.validation.validate.bind(resource);
441
- }
442
- }
443
- return handler;
444
- }
445
- /**
446
- * Get all routes list
447
- */
448
- list() {
449
- return this.routes;
450
- }
451
- /**
452
- * Register routes to the server
453
- */
454
- scan(server) {
455
- this.eventListeners.beforeScan?.forEach((callback) => callback(this, server));
456
- this.routes.forEach((route) => {
457
- const requestMethod = route.method.toLowerCase();
458
- const requestMethodFunction = server[requestMethod].bind(server);
459
- requestMethodFunction(route.path, route.serverOptions || {}, async (baseRequest, reply) => {
460
- const { output, response } = await this.handleRoute(route)(baseRequest, reply);
461
- return output || response.baseResponse;
462
- });
463
- });
464
- for (const directoryOptions of this.staticDirectories) {
465
- server.register(fastifyStatic, {
466
- ...directoryOptions,
467
- decorateReply: false,
468
- });
469
- }
470
- this.eventListeners.afterScanning?.forEach((callback) => callback(this, server));
471
- }
472
- /**
473
- * Scan routes for the development server
474
- * Uses wildcard routing with find-my-way for HMR support
475
- */
476
- scanDevServer(server) {
477
- this.eventListeners.beforeScan?.forEach((callback) => callback(this, server));
478
- // Shared handler for wildcard routing
479
- const wildcardHandler = async (fastifyRequest, fastifyReply) => {
480
- // Initialize route registry once (will be rebuilt on HMR via rebuildRouteRegistry)
481
- const routeRegistry = new RouteRegistry();
482
- routeRegistry.register(this.routes);
483
- // Find matching route using find-my-way
484
- const match = routeRegistry.find(fastifyRequest.method, fastifyRequest.url);
485
- // No match found - return 404
486
- if (!match) {
487
- return fastifyReply.code(404).send({
488
- error: "Route not found",
489
- path: fastifyRequest.url,
490
- method: fastifyRequest.method,
491
- });
492
- }
493
- // Inject extracted params into the request
494
- fastifyRequest.params = match.params;
495
- // Call the matched route handler
496
- const { output, response } = await this.handleRoute(match.route)(fastifyRequest, fastifyReply);
497
- return output || response.baseResponse;
498
- };
499
- // Register wildcard route for all methods EXCEPT OPTIONS (to avoid conflict with CORS)
500
- // OPTIONS is handled by @fastify/cors plugin for preflight requests
501
- const methods = ["GET", "POST", "PUT", "DELETE", "PATCH"];
502
- for (const method of methods) {
503
- server.route({
504
- method,
505
- url: "*",
506
- handler: wildcardHandler,
507
- });
508
- }
509
- // Register static directories
510
- for (const directoryOptions of this.staticDirectories) {
511
- server.register(fastifyStatic, {
512
- ...directoryOptions,
513
- decorateReply: false,
514
- });
515
- }
516
- this.eventListeners.afterScanning?.forEach((callback) => callback(this, server));
517
- }
518
- /**
519
- * Get the route path for the given route name
520
- */
521
- route(name, params = {}) {
522
- const route = this.routes.find((route) => route.name === name);
523
- if (!route) {
524
- throw new Error(`Route name "${name}" not found`);
525
- }
526
- let path = route.path;
527
- if (route.path.includes(":")) {
528
- Object.keys(params).forEach((key) => {
529
- path = path.replace(":" + key, params[key]);
530
- });
531
- }
532
- return path;
533
- }
534
- /**
535
- * Handle the given route
536
- */
537
- handleRoute(route) {
538
- return async (fastifyRequest, fastifyResponse) => {
539
- const request = new Request();
540
- const response = new Response();
541
- response.setResponse(fastifyResponse);
542
- request.response = response;
543
- response.request = request;
544
- request.setRequest(fastifyRequest).setRoute(route);
545
- Request.current = request;
546
- log.info({
547
- module: "route",
548
- action: route.method + " " + route.path.replace("/*", ""),
549
- message: `Starting Request: ${request.id}`,
550
- context: {
551
- request,
552
- response,
553
- },
554
- });
555
- const result = await request.execute();
556
- return {
557
- output: result,
558
- response,
559
- request,
560
- };
561
- };
562
- }
563
- }
564
- const router = Router.getInstance();export{Router,router};//# sourceMappingURL=router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.js","sources":["../../src/router/router.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}