@warlock.js/core 3.0.40 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/cjs/code-quality/config.js +1 -7
  2. package/cjs/code-quality/config.js.map +1 -1
  3. package/cjs/code-quality/issue-tracker.js +1 -119
  4. package/cjs/code-quality/issue-tracker.js.map +1 -1
  5. package/cjs/dev2-server/config-handlers.d.ts +8 -0
  6. package/cjs/dev2-server/config-handlers.d.ts.map +1 -0
  7. package/cjs/dev2-server/config-handlers.js +56 -0
  8. package/cjs/dev2-server/config-handlers.js.map +1 -0
  9. package/cjs/dev2-server/config-loader.d.ts +61 -0
  10. package/cjs/dev2-server/config-loader.d.ts.map +1 -0
  11. package/cjs/dev2-server/config-loader.js +122 -0
  12. package/cjs/dev2-server/config-loader.js.map +1 -0
  13. package/cjs/dev2-server/connectors/base-connector.d.ts +49 -0
  14. package/cjs/dev2-server/connectors/base-connector.d.ts.map +1 -0
  15. package/cjs/dev2-server/connectors/base-connector.js +48 -0
  16. package/cjs/dev2-server/connectors/base-connector.js.map +1 -0
  17. package/cjs/dev2-server/connectors/cache-connector.d.ts +23 -0
  18. package/cjs/dev2-server/connectors/cache-connector.d.ts.map +1 -0
  19. package/cjs/dev2-server/connectors/cache-connector.js +35 -0
  20. package/cjs/dev2-server/connectors/cache-connector.js.map +1 -0
  21. package/cjs/dev2-server/connectors/database-connector.d.ts +23 -0
  22. package/cjs/dev2-server/connectors/database-connector.d.ts.map +1 -0
  23. package/cjs/dev2-server/connectors/database-connector.js +46 -0
  24. package/cjs/dev2-server/connectors/database-connector.js.map +1 -0
  25. package/cjs/dev2-server/connectors/http-connector.d.ts +29 -0
  26. package/cjs/dev2-server/connectors/http-connector.d.ts.map +1 -0
  27. package/cjs/dev2-server/connectors/http-connector.js +71 -0
  28. package/cjs/dev2-server/connectors/http-connector.js.map +1 -0
  29. package/cjs/dev2-server/connectors/index.d.ts +10 -0
  30. package/cjs/dev2-server/connectors/index.d.ts.map +1 -0
  31. package/cjs/dev2-server/connectors/types.d.ts +49 -0
  32. package/cjs/dev2-server/connectors/types.d.ts.map +1 -0
  33. package/cjs/dev2-server/connectors/types.js +9 -0
  34. package/cjs/dev2-server/connectors/types.js.map +1 -0
  35. package/cjs/dev2-server/dependency-graph.d.ts +93 -0
  36. package/cjs/dev2-server/dependency-graph.d.ts.map +1 -0
  37. package/cjs/dev2-server/dependency-graph.js +266 -0
  38. package/cjs/dev2-server/dependency-graph.js.map +1 -0
  39. package/cjs/dev2-server/dev-logger.d.ts +14 -0
  40. package/cjs/dev2-server/dev-logger.d.ts.map +1 -0
  41. package/cjs/dev2-server/dev-logger.js +105 -0
  42. package/cjs/dev2-server/dev-logger.js.map +1 -0
  43. package/cjs/dev2-server/development-server.d.ts +97 -0
  44. package/cjs/dev2-server/development-server.d.ts.map +1 -0
  45. package/cjs/dev2-server/development-server.js +224 -0
  46. package/cjs/dev2-server/development-server.js.map +1 -0
  47. package/cjs/dev2-server/events.d.ts +5 -0
  48. package/cjs/dev2-server/events.d.ts.map +1 -0
  49. package/cjs/dev2-server/events.js +4 -0
  50. package/cjs/dev2-server/events.js.map +1 -0
  51. package/cjs/dev2-server/file-event-handler.d.ts +58 -0
  52. package/cjs/dev2-server/file-event-handler.d.ts.map +1 -0
  53. package/cjs/dev2-server/file-event-handler.js +140 -0
  54. package/cjs/dev2-server/file-event-handler.js.map +1 -0
  55. package/cjs/dev2-server/file-manager.d.ts +115 -0
  56. package/cjs/dev2-server/file-manager.d.ts.map +1 -0
  57. package/cjs/dev2-server/file-manager.js +319 -0
  58. package/cjs/dev2-server/file-manager.js.map +1 -0
  59. package/cjs/dev2-server/file-operations.d.ts +54 -0
  60. package/cjs/dev2-server/file-operations.d.ts.map +1 -0
  61. package/cjs/dev2-server/file-operations.js +191 -0
  62. package/cjs/dev2-server/file-operations.js.map +1 -0
  63. package/cjs/dev2-server/files-orchestrator.d.ts +88 -0
  64. package/cjs/dev2-server/files-orchestrator.d.ts.map +1 -0
  65. package/cjs/dev2-server/files-orchestrator.js +273 -0
  66. package/cjs/dev2-server/files-orchestrator.js.map +1 -0
  67. package/cjs/dev2-server/files-watcher.d.ts +53 -0
  68. package/cjs/dev2-server/files-watcher.d.ts.map +1 -0
  69. package/cjs/dev2-server/files-watcher.js +88 -0
  70. package/cjs/dev2-server/files-watcher.js.map +1 -0
  71. package/cjs/dev2-server/flags.d.ts +10 -0
  72. package/cjs/dev2-server/flags.d.ts.map +1 -0
  73. package/cjs/dev2-server/flags.js +9 -0
  74. package/cjs/dev2-server/flags.js.map +1 -0
  75. package/cjs/dev2-server/health-checker.d.ts +3 -0
  76. package/cjs/dev2-server/health-checker.d.ts.map +1 -0
  77. package/cjs/dev2-server/health-checker.js +2 -0
  78. package/cjs/dev2-server/health-checker.js.map +1 -0
  79. package/cjs/dev2-server/import-transformer.d.ts +16 -0
  80. package/cjs/dev2-server/import-transformer.d.ts.map +1 -0
  81. package/cjs/dev2-server/import-transformer.js +248 -0
  82. package/cjs/dev2-server/import-transformer.js.map +1 -0
  83. package/cjs/dev2-server/index.d.ts +1 -0
  84. package/cjs/dev2-server/index.d.ts.map +1 -0
  85. package/cjs/dev2-server/layer-executor.d.ts +64 -0
  86. package/cjs/dev2-server/layer-executor.d.ts.map +1 -0
  87. package/cjs/dev2-server/layer-executor.js +292 -0
  88. package/cjs/dev2-server/layer-executor.js.map +1 -0
  89. package/cjs/dev2-server/manifest-manager.d.ts +80 -0
  90. package/cjs/dev2-server/manifest-manager.d.ts.map +1 -0
  91. package/cjs/dev2-server/manifest-manager.js +107 -0
  92. package/cjs/dev2-server/manifest-manager.js.map +1 -0
  93. package/cjs/dev2-server/module-loader.d.ts +100 -0
  94. package/cjs/dev2-server/module-loader.d.ts.map +1 -0
  95. package/cjs/dev2-server/module-loader.js +228 -0
  96. package/cjs/dev2-server/module-loader.js.map +1 -0
  97. package/cjs/dev2-server/package-json-manager.d.ts +16 -0
  98. package/cjs/dev2-server/package-json-manager.d.ts.map +1 -0
  99. package/cjs/dev2-server/package-json-manager.js +20 -0
  100. package/cjs/dev2-server/package-json-manager.js.map +1 -0
  101. package/cjs/dev2-server/parse-imports.d.ts +8 -0
  102. package/cjs/dev2-server/parse-imports.d.ts.map +1 -0
  103. package/cjs/dev2-server/parse-imports.js +322 -0
  104. package/cjs/dev2-server/parse-imports.js.map +1 -0
  105. package/cjs/dev2-server/path.d.ts +39 -0
  106. package/cjs/dev2-server/path.d.ts.map +1 -0
  107. package/cjs/dev2-server/path.js +56 -0
  108. package/cjs/dev2-server/path.js.map +1 -0
  109. package/cjs/dev2-server/runtime-import-helper.d.ts +9 -0
  110. package/cjs/dev2-server/runtime-import-helper.d.ts.map +1 -0
  111. package/cjs/dev2-server/runtime-import-helper.js +157 -0
  112. package/cjs/dev2-server/runtime-import-helper.js.map +1 -0
  113. package/cjs/dev2-server/special-files-collector.d.ts +114 -0
  114. package/cjs/dev2-server/special-files-collector.d.ts.map +1 -0
  115. package/cjs/dev2-server/special-files-collector.js +212 -0
  116. package/cjs/dev2-server/special-files-collector.js.map +1 -0
  117. package/cjs/dev2-server/start-development-server.d.ts +7 -0
  118. package/cjs/dev2-server/start-development-server.d.ts.map +1 -0
  119. package/cjs/dev2-server/start-development-server.js +21 -0
  120. package/cjs/dev2-server/start-development-server.js.map +1 -0
  121. package/cjs/dev2-server/transpile-file.d.ts +10 -0
  122. package/cjs/dev2-server/transpile-file.d.ts.map +1 -0
  123. package/cjs/dev2-server/transpile-file.js +31 -0
  124. package/cjs/dev2-server/transpile-file.js.map +1 -0
  125. package/cjs/dev2-server/tsconfig-manager.d.ts +45 -0
  126. package/cjs/dev2-server/tsconfig-manager.d.ts.map +1 -0
  127. package/cjs/dev2-server/tsconfig-manager.js +105 -0
  128. package/cjs/dev2-server/tsconfig-manager.js.map +1 -0
  129. package/cjs/dev2-server/types.d.ts +16 -0
  130. package/cjs/dev2-server/types.d.ts.map +1 -0
  131. package/cjs/dev2-server/utils.d.ts +8 -0
  132. package/cjs/dev2-server/utils.d.ts.map +1 -0
  133. package/cjs/dev2-server/utils.js +28 -0
  134. package/cjs/dev2-server/utils.js.map +1 -0
  135. package/cjs/router/route-registry.d.ts +4 -0
  136. package/cjs/router/route-registry.d.ts.map +1 -1
  137. package/cjs/router/route-registry.js +26 -7
  138. package/cjs/router/route-registry.js.map +1 -1
  139. package/cjs/router/router.d.ts +13 -8
  140. package/cjs/router/router.d.ts.map +1 -1
  141. package/cjs/router/router.js +73 -35
  142. package/cjs/router/router.js.map +1 -1
  143. package/cjs/router/types.d.ts +10 -2
  144. package/cjs/router/types.d.ts.map +1 -1
  145. package/cjs/starters/start-cli-server.js +1 -1
  146. package/cjs/starters/start-cli-server.js.map +1 -1
  147. package/cjs/starters/start-http-server.d.ts.map +1 -1
  148. package/cjs/starters/start-http-server.js +4 -99
  149. package/cjs/starters/start-http-server.js.map +1 -1
  150. package/esm/code-quality/config.js +1 -7
  151. package/esm/code-quality/config.js.map +1 -1
  152. package/esm/code-quality/issue-tracker.js +1 -119
  153. package/esm/code-quality/issue-tracker.js.map +1 -1
  154. package/esm/dev2-server/config-handlers.d.ts +8 -0
  155. package/esm/dev2-server/config-handlers.d.ts.map +1 -0
  156. package/esm/dev2-server/config-handlers.js +56 -0
  157. package/esm/dev2-server/config-handlers.js.map +1 -0
  158. package/esm/dev2-server/config-loader.d.ts +61 -0
  159. package/esm/dev2-server/config-loader.d.ts.map +1 -0
  160. package/esm/dev2-server/config-loader.js +122 -0
  161. package/esm/dev2-server/config-loader.js.map +1 -0
  162. package/esm/dev2-server/connectors/base-connector.d.ts +49 -0
  163. package/esm/dev2-server/connectors/base-connector.d.ts.map +1 -0
  164. package/esm/dev2-server/connectors/base-connector.js +48 -0
  165. package/esm/dev2-server/connectors/base-connector.js.map +1 -0
  166. package/esm/dev2-server/connectors/cache-connector.d.ts +23 -0
  167. package/esm/dev2-server/connectors/cache-connector.d.ts.map +1 -0
  168. package/esm/dev2-server/connectors/cache-connector.js +35 -0
  169. package/esm/dev2-server/connectors/cache-connector.js.map +1 -0
  170. package/esm/dev2-server/connectors/database-connector.d.ts +23 -0
  171. package/esm/dev2-server/connectors/database-connector.d.ts.map +1 -0
  172. package/esm/dev2-server/connectors/database-connector.js +46 -0
  173. package/esm/dev2-server/connectors/database-connector.js.map +1 -0
  174. package/esm/dev2-server/connectors/http-connector.d.ts +29 -0
  175. package/esm/dev2-server/connectors/http-connector.d.ts.map +1 -0
  176. package/esm/dev2-server/connectors/http-connector.js +71 -0
  177. package/esm/dev2-server/connectors/http-connector.js.map +1 -0
  178. package/esm/dev2-server/connectors/index.d.ts +10 -0
  179. package/esm/dev2-server/connectors/index.d.ts.map +1 -0
  180. package/esm/dev2-server/connectors/types.d.ts +49 -0
  181. package/esm/dev2-server/connectors/types.d.ts.map +1 -0
  182. package/esm/dev2-server/connectors/types.js +9 -0
  183. package/esm/dev2-server/connectors/types.js.map +1 -0
  184. package/esm/dev2-server/dependency-graph.d.ts +93 -0
  185. package/esm/dev2-server/dependency-graph.d.ts.map +1 -0
  186. package/esm/dev2-server/dependency-graph.js +266 -0
  187. package/esm/dev2-server/dependency-graph.js.map +1 -0
  188. package/esm/dev2-server/dev-logger.d.ts +14 -0
  189. package/esm/dev2-server/dev-logger.d.ts.map +1 -0
  190. package/esm/dev2-server/dev-logger.js +105 -0
  191. package/esm/dev2-server/dev-logger.js.map +1 -0
  192. package/esm/dev2-server/development-server.d.ts +97 -0
  193. package/esm/dev2-server/development-server.d.ts.map +1 -0
  194. package/esm/dev2-server/development-server.js +224 -0
  195. package/esm/dev2-server/development-server.js.map +1 -0
  196. package/esm/dev2-server/events.d.ts +5 -0
  197. package/esm/dev2-server/events.d.ts.map +1 -0
  198. package/esm/dev2-server/events.js +4 -0
  199. package/esm/dev2-server/events.js.map +1 -0
  200. package/esm/dev2-server/file-event-handler.d.ts +58 -0
  201. package/esm/dev2-server/file-event-handler.d.ts.map +1 -0
  202. package/esm/dev2-server/file-event-handler.js +140 -0
  203. package/esm/dev2-server/file-event-handler.js.map +1 -0
  204. package/esm/dev2-server/file-manager.d.ts +115 -0
  205. package/esm/dev2-server/file-manager.d.ts.map +1 -0
  206. package/esm/dev2-server/file-manager.js +319 -0
  207. package/esm/dev2-server/file-manager.js.map +1 -0
  208. package/esm/dev2-server/file-operations.d.ts +54 -0
  209. package/esm/dev2-server/file-operations.d.ts.map +1 -0
  210. package/esm/dev2-server/file-operations.js +191 -0
  211. package/esm/dev2-server/file-operations.js.map +1 -0
  212. package/esm/dev2-server/files-orchestrator.d.ts +88 -0
  213. package/esm/dev2-server/files-orchestrator.d.ts.map +1 -0
  214. package/esm/dev2-server/files-orchestrator.js +273 -0
  215. package/esm/dev2-server/files-orchestrator.js.map +1 -0
  216. package/esm/dev2-server/files-watcher.d.ts +53 -0
  217. package/esm/dev2-server/files-watcher.d.ts.map +1 -0
  218. package/esm/dev2-server/files-watcher.js +88 -0
  219. package/esm/dev2-server/files-watcher.js.map +1 -0
  220. package/esm/dev2-server/flags.d.ts +10 -0
  221. package/esm/dev2-server/flags.d.ts.map +1 -0
  222. package/esm/dev2-server/flags.js +9 -0
  223. package/esm/dev2-server/flags.js.map +1 -0
  224. package/esm/dev2-server/health-checker.d.ts +3 -0
  225. package/esm/dev2-server/health-checker.d.ts.map +1 -0
  226. package/esm/dev2-server/health-checker.js +2 -0
  227. package/esm/dev2-server/health-checker.js.map +1 -0
  228. package/esm/dev2-server/import-transformer.d.ts +16 -0
  229. package/esm/dev2-server/import-transformer.d.ts.map +1 -0
  230. package/esm/dev2-server/import-transformer.js +248 -0
  231. package/esm/dev2-server/import-transformer.js.map +1 -0
  232. package/esm/dev2-server/index.d.ts +1 -0
  233. package/esm/dev2-server/index.d.ts.map +1 -0
  234. package/esm/dev2-server/layer-executor.d.ts +64 -0
  235. package/esm/dev2-server/layer-executor.d.ts.map +1 -0
  236. package/esm/dev2-server/layer-executor.js +292 -0
  237. package/esm/dev2-server/layer-executor.js.map +1 -0
  238. package/esm/dev2-server/manifest-manager.d.ts +80 -0
  239. package/esm/dev2-server/manifest-manager.d.ts.map +1 -0
  240. package/esm/dev2-server/manifest-manager.js +107 -0
  241. package/esm/dev2-server/manifest-manager.js.map +1 -0
  242. package/esm/dev2-server/module-loader.d.ts +100 -0
  243. package/esm/dev2-server/module-loader.d.ts.map +1 -0
  244. package/esm/dev2-server/module-loader.js +228 -0
  245. package/esm/dev2-server/module-loader.js.map +1 -0
  246. package/esm/dev2-server/package-json-manager.d.ts +16 -0
  247. package/esm/dev2-server/package-json-manager.d.ts.map +1 -0
  248. package/esm/dev2-server/package-json-manager.js +20 -0
  249. package/esm/dev2-server/package-json-manager.js.map +1 -0
  250. package/esm/dev2-server/parse-imports.d.ts +8 -0
  251. package/esm/dev2-server/parse-imports.d.ts.map +1 -0
  252. package/esm/dev2-server/parse-imports.js +322 -0
  253. package/esm/dev2-server/parse-imports.js.map +1 -0
  254. package/esm/dev2-server/path.d.ts +39 -0
  255. package/esm/dev2-server/path.d.ts.map +1 -0
  256. package/esm/dev2-server/path.js +56 -0
  257. package/esm/dev2-server/path.js.map +1 -0
  258. package/esm/dev2-server/runtime-import-helper.d.ts +9 -0
  259. package/esm/dev2-server/runtime-import-helper.d.ts.map +1 -0
  260. package/esm/dev2-server/runtime-import-helper.js +157 -0
  261. package/esm/dev2-server/runtime-import-helper.js.map +1 -0
  262. package/esm/dev2-server/special-files-collector.d.ts +114 -0
  263. package/esm/dev2-server/special-files-collector.d.ts.map +1 -0
  264. package/esm/dev2-server/special-files-collector.js +212 -0
  265. package/esm/dev2-server/special-files-collector.js.map +1 -0
  266. package/esm/dev2-server/start-development-server.d.ts +7 -0
  267. package/esm/dev2-server/start-development-server.d.ts.map +1 -0
  268. package/esm/dev2-server/start-development-server.js +21 -0
  269. package/esm/dev2-server/start-development-server.js.map +1 -0
  270. package/esm/dev2-server/transpile-file.d.ts +10 -0
  271. package/esm/dev2-server/transpile-file.d.ts.map +1 -0
  272. package/esm/dev2-server/transpile-file.js +31 -0
  273. package/esm/dev2-server/transpile-file.js.map +1 -0
  274. package/esm/dev2-server/tsconfig-manager.d.ts +45 -0
  275. package/esm/dev2-server/tsconfig-manager.d.ts.map +1 -0
  276. package/esm/dev2-server/tsconfig-manager.js +105 -0
  277. package/esm/dev2-server/tsconfig-manager.js.map +1 -0
  278. package/esm/dev2-server/types.d.ts +16 -0
  279. package/esm/dev2-server/types.d.ts.map +1 -0
  280. package/esm/dev2-server/utils.d.ts +8 -0
  281. package/esm/dev2-server/utils.d.ts.map +1 -0
  282. package/esm/dev2-server/utils.js +28 -0
  283. package/esm/dev2-server/utils.js.map +1 -0
  284. package/esm/router/route-registry.d.ts +4 -0
  285. package/esm/router/route-registry.d.ts.map +1 -1
  286. package/esm/router/route-registry.js +26 -7
  287. package/esm/router/route-registry.js.map +1 -1
  288. package/esm/router/router.d.ts +13 -8
  289. package/esm/router/router.d.ts.map +1 -1
  290. package/esm/router/router.js +73 -35
  291. package/esm/router/router.js.map +1 -1
  292. package/esm/router/types.d.ts +10 -2
  293. package/esm/router/types.d.ts.map +1 -1
  294. package/esm/starters/start-cli-server.js +1 -1
  295. package/esm/starters/start-cli-server.js.map +1 -1
  296. package/esm/starters/start-http-server.d.ts.map +1 -1
  297. package/esm/starters/start-http-server.js +4 -99
  298. package/esm/starters/start-http-server.js.map +1 -1
  299. package/package.json +3 -3
  300. package/cjs/code-quality/checkers/eslint-checker.js +0 -39
  301. package/cjs/code-quality/checkers/eslint-checker.js.map +0 -1
  302. package/cjs/code-quality/checkers/typescript-checker.js +0 -76
  303. package/cjs/code-quality/checkers/typescript-checker.js.map +0 -1
  304. package/cjs/code-quality/formatters/eslint-formatter.js +0 -56
  305. package/cjs/code-quality/formatters/eslint-formatter.js.map +0 -1
  306. package/cjs/code-quality/formatters/summary-formatter.js +0 -102
  307. package/cjs/code-quality/formatters/summary-formatter.js.map +0 -1
  308. package/cjs/code-quality/formatters/typescript-formatter.js +0 -64
  309. package/cjs/code-quality/formatters/typescript-formatter.js.map +0 -1
  310. package/cjs/code-quality/project-scanner.js +0 -78
  311. package/cjs/code-quality/project-scanner.js.map +0 -1
  312. package/cjs/code-quality/single-file-checker.js +0 -153
  313. package/cjs/code-quality/single-file-checker.js.map +0 -1
  314. package/cjs/dev-server/file-health.d.ts +0 -9
  315. package/cjs/dev-server/file-health.d.ts.map +0 -1
  316. package/cjs/dev-server/file-manager.d.ts +0 -39
  317. package/cjs/dev-server/file-manager.d.ts.map +0 -1
  318. package/cjs/dev-server/files-orchestrator.d.ts +0 -1
  319. package/cjs/dev-server/files-orchestrator.d.ts.map +0 -1
  320. package/cjs/dev-server/types.d.ts +0 -2
  321. package/cjs/dev-server/types.d.ts.map +0 -1
  322. package/cjs/starters/http-server-starter.js +0 -34
  323. package/cjs/starters/http-server-starter.js.map +0 -1
  324. package/cjs/utils/internal.js +0 -3
  325. package/cjs/utils/internal.js.map +0 -1
  326. package/esm/code-quality/checkers/eslint-checker.js +0 -39
  327. package/esm/code-quality/checkers/eslint-checker.js.map +0 -1
  328. package/esm/code-quality/checkers/typescript-checker.js +0 -76
  329. package/esm/code-quality/checkers/typescript-checker.js.map +0 -1
  330. package/esm/code-quality/formatters/eslint-formatter.js +0 -56
  331. package/esm/code-quality/formatters/eslint-formatter.js.map +0 -1
  332. package/esm/code-quality/formatters/summary-formatter.js +0 -102
  333. package/esm/code-quality/formatters/summary-formatter.js.map +0 -1
  334. package/esm/code-quality/formatters/typescript-formatter.js +0 -64
  335. package/esm/code-quality/formatters/typescript-formatter.js.map +0 -1
  336. package/esm/code-quality/project-scanner.js +0 -78
  337. package/esm/code-quality/project-scanner.js.map +0 -1
  338. package/esm/code-quality/single-file-checker.js +0 -153
  339. package/esm/code-quality/single-file-checker.js.map +0 -1
  340. package/esm/dev-server/file-health.d.ts +0 -9
  341. package/esm/dev-server/file-health.d.ts.map +0 -1
  342. package/esm/dev-server/file-manager.d.ts +0 -39
  343. package/esm/dev-server/file-manager.d.ts.map +0 -1
  344. package/esm/dev-server/files-orchestrator.d.ts +0 -1
  345. package/esm/dev-server/files-orchestrator.d.ts.map +0 -1
  346. package/esm/dev-server/types.d.ts +0 -2
  347. package/esm/dev-server/types.d.ts.map +0 -1
  348. package/esm/starters/http-server-starter.js +0 -34
  349. package/esm/starters/http-server-starter.js.map +0 -1
  350. package/esm/utils/internal.js +0 -3
  351. package/esm/utils/internal.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transpile-file.js","sources":["../../src/dev2-server/transpile-file.ts"],"sourcesContent":[null],"names":[],"mappings":"oKAMA;;;;;;AAMG;AACI,eAAe,SAAS,CAAC,WAAwB,EAAA;AACtD,IAAA,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,SAAS,CAC1D,WAAW,CAAC,MAAM,EAClB;AACE,QAAA,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI;AAChE,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,WAAW,CAAC,YAAY;QACpC,WAAW,EAAE,eAAe,CAAC,QAAQ;AACtC,KAAA,CACF,CAAC;;AAGF,IAAA,IAAI,SAAS,EAAE;AACb,QAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC5E,QAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;;;AAI1D,QAAA,MAAM,iBAAiB,GAAG,UAAU,GAAG,CAA0B,uBAAA,EAAA,iBAAiB,EAAE,CAAC;;QAGrF,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,MAAK;;AAElD,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,iBAAiB,CAAC;AAC1B,KAAA;AAED,IAAA,OAAO,UAAU,CAAC;AACpB"}
@@ -0,0 +1,45 @@
1
+ export declare class TSConfigManager {
2
+ /**
3
+ * Aliases list (from tsconfig paths)
4
+ */
5
+ aliases: Record<string, string[]>;
6
+ /**
7
+ * Base URL for resolving paths
8
+ */
9
+ baseUrl: string;
10
+ /**
11
+ * TSConfig
12
+ */
13
+ tsconfig: any;
14
+ init(): Promise<void>;
15
+ /**
16
+ * Check if the given path is an alias
17
+ * This checks if it's a REAL path alias (not an external package alias)
18
+ *
19
+ * Real aliases map to local paths (e.g., app/* -> src/app/*, src/* -> src/*)
20
+ * External package aliases map to themselves with @ prefix (e.g., @warlock.js/core -> @warlock.js/core)
21
+ */
22
+ isAlias(path: string): boolean;
23
+ /**
24
+ * Get the alias key that matches the given import path
25
+ */
26
+ getMatchingAlias(path: string): string | null;
27
+ /**
28
+ * Resolve an alias import path to a relative path based on tsconfig paths
29
+ * Example: "app/users/services/get-users.service" -> "src/app/users/services/get-users.service"
30
+ *
31
+ * @param path - The import path with alias (e.g., "app/users/services/get-users.service")
32
+ * @returns The resolved relative path or null if alias not found
33
+ */
34
+ resolveAliasPath(checkingPath: string): string | null;
35
+ /**
36
+ * Resolve an alias import path to an absolute path
37
+ * Example: "app/users/services/get-users.service" -> "/absolute/path/to/src/app/users/services/get-users.service"
38
+ *
39
+ * @param path - The import path with alias
40
+ * @returns The resolved absolute path or null if alias not found
41
+ */
42
+ resolveAliasToAbsolute(path: string): string | null;
43
+ }
44
+ export declare const tsconfigManager: TSConfigManager;
45
+ //# sourceMappingURL=tsconfig-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsconfig-manager.d.ts","sourceRoot":"","sources":["../../src/dev2-server/tsconfig-manager.ts"],"names":[],"mappings":"AAIA,qBAAa,eAAe;IAC1B;;OAEG;IACI,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;IAE9C;;OAEG;IACI,OAAO,EAAE,MAAM,CAAO;IAE7B;;OAEG;IACI,QAAQ,EAAE,GAAG,CAAM;IAEb,IAAI;IAUjB;;;;;;OAMG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM;IA8B3B;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASpD;;;;;;OAMG;IACI,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA4B5D;;;;;;OAMG;IACI,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAO3D;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -0,0 +1,105 @@
1
+ import path from'node:path';import ts from'typescript';import {Path}from'./path.js';class TSConfigManager {
2
+ /**
3
+ * Aliases list (from tsconfig paths)
4
+ */
5
+ aliases = {};
6
+ /**
7
+ * Base URL for resolving paths
8
+ */
9
+ baseUrl = ".";
10
+ /**
11
+ * TSConfig
12
+ */
13
+ tsconfig = {};
14
+ async init() {
15
+ // use typescript to load the tsconfig.json file
16
+ const output = await ts.readConfigFile(Path.toAbsolute("tsconfig.json"), ts.sys.readFile);
17
+ this.tsconfig = output.config;
18
+ this.aliases = output.config?.compilerOptions?.paths || {};
19
+ this.baseUrl = output.config?.compilerOptions?.baseUrl || ".";
20
+ }
21
+ /**
22
+ * Check if the given path is an alias
23
+ * This checks if it's a REAL path alias (not an external package alias)
24
+ *
25
+ * Real aliases map to local paths (e.g., app/* -> src/app/*, src/* -> src/*)
26
+ * External package aliases map to themselves with @ prefix (e.g., @warlock.js/core -> @warlock.js/core)
27
+ */
28
+ isAlias(path) {
29
+ return Object.keys(this.aliases).some((alias) => {
30
+ // Remove /* from alias pattern for matching
31
+ const aliasPattern = alias.replace("/*", "");
32
+ if (!path.startsWith(aliasPattern)) {
33
+ return false;
34
+ }
35
+ // Check if this is a real alias or just an external package mapping
36
+ const aliasTargets = this.aliases[alias];
37
+ if (!Array.isArray(aliasTargets) || aliasTargets.length === 0) {
38
+ return false;
39
+ }
40
+ aliasTargets[0].replace("/*", "");
41
+ // If the alias starts with @, it's likely an external package alias
42
+ // Example: "@warlock.js/core" -> "@warlock.js/core" (external package)
43
+ if (aliasPattern.startsWith("@")) {
44
+ return false;
45
+ }
46
+ // Otherwise, it's a real path alias (including self-referencing ones like src/* -> src/*)
47
+ // Example: "app/*" -> "src/app/*" (real alias)
48
+ // Example: "src/*" -> "src/*" (self-referencing alias, still valid)
49
+ return true;
50
+ });
51
+ }
52
+ /**
53
+ * Get the alias key that matches the given import path
54
+ */
55
+ getMatchingAlias(path) {
56
+ const aliasKey = Object.keys(this.aliases).find((alias) => {
57
+ const aliasPattern = alias.replace("/*", "");
58
+ return path.startsWith(aliasPattern);
59
+ });
60
+ return aliasKey || null;
61
+ }
62
+ /**
63
+ * Resolve an alias import path to a relative path based on tsconfig paths
64
+ * Example: "app/users/services/get-users.service" -> "src/app/users/services/get-users.service"
65
+ *
66
+ * @param path - The import path with alias (e.g., "app/users/services/get-users.service")
67
+ * @returns The resolved relative path or null if alias not found
68
+ */
69
+ resolveAliasPath(checkingPath) {
70
+ // Find matching alias from tsconfig paths
71
+ const aliasKey = this.getMatchingAlias(checkingPath);
72
+ if (!aliasKey)
73
+ return null;
74
+ const aliasTargets = this.aliases[aliasKey];
75
+ if (!Array.isArray(aliasTargets) || aliasTargets.length === 0) {
76
+ return null;
77
+ }
78
+ // Get the first target path (usually there's only one)
79
+ const targetPattern = aliasTargets[0];
80
+ // Replace alias pattern with target pattern
81
+ const aliasPattern = aliasKey.replace("/*", "");
82
+ const targetBase = targetPattern.replace("/*", "");
83
+ // Remove any leading slash so path.join does not drop the base
84
+ const relativePart = checkingPath
85
+ .substring(aliasPattern.length)
86
+ .replace(/^[/\\]/, "");
87
+ // Join the target base with the relative part
88
+ const resolvedPath = path.join(targetBase, relativePart);
89
+ return Path.normalize(resolvedPath);
90
+ }
91
+ /**
92
+ * Resolve an alias import path to an absolute path
93
+ * Example: "app/users/services/get-users.service" -> "/absolute/path/to/src/app/users/services/get-users.service"
94
+ *
95
+ * @param path - The import path with alias
96
+ * @returns The resolved absolute path or null if alias not found
97
+ */
98
+ resolveAliasToAbsolute(path) {
99
+ const relativePath = this.resolveAliasPath(path);
100
+ if (!relativePath)
101
+ return null;
102
+ return Path.normalize(Path.toAbsolute(relativePath));
103
+ }
104
+ }
105
+ const tsconfigManager = new TSConfigManager();export{TSConfigManager,tsconfigManager};//# sourceMappingURL=tsconfig-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tsconfig-manager.js","sources":["../../src/dev2-server/tsconfig-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export type LayerType = "FSR" | "HMR";
2
+ export type FileType = "main" | "config" | "event" | "route" | "controller" | "service" | "model" | "other";
3
+ export type FileManifest = {
4
+ absolutePath: string;
5
+ relativePath: string;
6
+ lastModified: number;
7
+ hash: string;
8
+ dependencies: string[];
9
+ dependents: string[];
10
+ version: number;
11
+ type: FileType;
12
+ layer: LayerType;
13
+ cachePath: string;
14
+ };
15
+ export type FileState = "idle" | "loading" | "ready" | "error" | "updating" | "deleted";
16
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dev2-server/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AACtC,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,OAAO,GACP,YAAY,GACZ,SAAS,GACT,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function createFreshWarlockDirectory(): Promise<void>;
2
+ export declare function getFilesFromDirectory(directoryPath?: string, pattern?: string): Promise<string[]>;
3
+ export declare function warlockCachePath(relativePath: string): string;
4
+ /**
5
+ * Compare two sets for equality
6
+ */
7
+ export declare function areSetsEqual<T>(set1: Set<T>, set2: Set<T>): boolean;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/dev2-server/utils.ts"],"names":[],"mappings":"AAOA,wBAAsB,2BAA2B,kBAMhD;AAED,wBAAsB,qBAAqB,CAAC,aAAa,SAAY,EAAE,OAAO,SAAkB,qBAM/F;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,UAEpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAMnE"}
@@ -0,0 +1,28 @@
1
+ import {directoryExists,removeDirectoryAsync,createDirectoryAsync}from'@mongez/fs';import'@warlock.js/logger';import'../utils/date-output.js';import'../http/middleware/inject-request-context.js';import {warlockPath,srcPath}from'../utils/paths.js';import'@mongez/slug';import'@mongez/supportive-is';import'@mongez/reinforcements';import glob from'fast-glob';import {Path}from'./path.js';const directoryPath = warlockPath();
2
+ async function createFreshWarlockDirectory() {
3
+ if (await directoryExists(directoryPath)) {
4
+ await removeDirectoryAsync(directoryPath);
5
+ }
6
+ await createDirectoryAsync(directoryPath + "/cache", { recursive: true });
7
+ }
8
+ async function getFilesFromDirectory(directoryPath = srcPath(), pattern = "**/*.{ts,tsx}") {
9
+ const files = await glob(`${Path.normalize(directoryPath)}/${pattern}`, {
10
+ absolute: true, // Return absolute paths
11
+ });
12
+ return files.map((file) => Path.normalize(file));
13
+ }
14
+ function warlockCachePath(relativePath) {
15
+ return `${warlockPath("cache")}/${relativePath}`;
16
+ }
17
+ /**
18
+ * Compare two sets for equality
19
+ */
20
+ function areSetsEqual(set1, set2) {
21
+ if (set1.size !== set2.size)
22
+ return false;
23
+ for (const item of set1) {
24
+ if (!set2.has(item))
25
+ return false;
26
+ }
27
+ return true;
28
+ }export{areSetsEqual,createFreshWarlockDirectory,getFilesFromDirectory,warlockCachePath};//# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../src/dev2-server/utils.ts"],"sourcesContent":[null],"names":[],"mappings":"kYAKA,MAAM,aAAa,GAAG,WAAW,EAAE,CAAC;AAE7B,eAAe,2BAA2B,GAAA;AAC/C,IAAA,IAAI,MAAM,eAAe,CAAC,aAAa,CAAC,EAAE;AACxC,QAAA,MAAM,oBAAoB,CAAC,aAAa,CAAC,CAAC;AAC3C,KAAA;AAED,IAAA,MAAM,oBAAoB,CAAC,aAAa,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5E,CAAC;AAEM,eAAe,qBAAqB,CAAC,aAAa,GAAG,OAAO,EAAE,EAAE,OAAO,GAAG,eAAe,EAAA;AAC9F,IAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAI,CAAA,EAAA,OAAO,EAAE,EAAE;QACtE,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,CAAC;AAEK,SAAU,gBAAgB,CAAC,YAAoB,EAAA;IACnD,OAAO,CAAA,EAAG,WAAW,CAAC,OAAO,CAAC,CAAI,CAAA,EAAA,YAAY,EAAE,CAAC;AACnD,CAAC;AAED;;AAEG;AACa,SAAA,YAAY,CAAI,IAAY,EAAE,IAAY,EAAA;AACxD,IAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,KAAK,CAAC;AAC1C,IAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,KAAK,CAAC;AACnC,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AACd"}
@@ -10,6 +10,10 @@ export declare class RouteRegistry {
10
10
  * Register all routes from the router's internal list
11
11
  */
12
12
  register(routes: Route[]): void;
13
+ /**
14
+ * Register a single route
15
+ */
16
+ registerRoute(route: Route): void;
13
17
  /**
14
18
  * Find a matching route for the given method and URL
15
19
  * @returns Matched route with extracted params, or null if no match
@@ -1 +1 @@
1
- {"version":3,"file":"route-registry.d.ts","sourceRoot":"","sources":["../../src/router/route-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgB;;IAS9B;;OAEG;IACI,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAiBtC;;;OAGG;IACI,IAAI,CACT,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI;IAe1D;;OAEG;IACI,aAAa,IAAI,MAAM;CAG/B"}
1
+ {"version":3,"file":"route-registry.d.ts","sourceRoot":"","sources":["../../src/router/route-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgB;;IAS9B;;OAEG;IACI,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAmBtC;;OAEG;IACI,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAOxC;;;OAGG;IACI,IAAI,CACT,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI;IAqB1D;;OAEG;IACI,aAAa,IAAI,MAAM;CAM/B"}
@@ -14,16 +14,32 @@ class RouteRegistry {
14
14
  * Register all routes from the router's internal list
15
15
  */
16
16
  register(routes) {
17
- // Reset the router (clear all existing routes)
18
- this.router.reset();
19
17
  // Register each route
20
18
  for (const route of routes) {
21
- this.router.on(route.method, route.path, (req, params) => {
22
- // Store the route and params for later use
23
- return { route, params };
24
- });
19
+ if (route.method === "all") {
20
+ this.registerRoute({
21
+ ...route,
22
+ method: "GET",
23
+ });
24
+ this.registerRoute({
25
+ ...route,
26
+ method: "POST",
27
+ });
28
+ }
29
+ else {
30
+ this.registerRoute(route);
31
+ }
25
32
  }
26
33
  }
34
+ /**
35
+ * Register a single route
36
+ */
37
+ registerRoute(route) {
38
+ this.router.on(route.method, route.path, (req, params) => {
39
+ // Store the route and params for later use
40
+ return { route, params };
41
+ });
42
+ }
27
43
  /**
28
44
  * Find a matching route for the given method and URL
29
45
  * @returns Matched route with extracted params, or null if no match
@@ -43,6 +59,9 @@ class RouteRegistry {
43
59
  * Get all registered routes count (for debugging)
44
60
  */
45
61
  getRouteCount() {
46
- return this.router.prettyPrint().split("\n").filter((line) => line.trim()).length;
62
+ return this.router
63
+ .prettyPrint()
64
+ .split("\n")
65
+ .filter(line => line.trim()).length;
47
66
  }
48
67
  }export{RouteRegistry};//# sourceMappingURL=route-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-registry.js","sources":["../../src/router/route-registry.ts"],"sourcesContent":[null],"names":[],"mappings":"mCAGA;;;AAGG;MACU,aAAa,CAAA;AAChB,IAAA,MAAM,CAAgB;AAE9B,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACtB,YAAA,mBAAmB,EAAE,IAAI;AACzB,YAAA,aAAa,EAAE,KAAK;AACrB,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;AACI,IAAA,QAAQ,CAAC,MAAe,EAAA;;AAE7B,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;;AAGpB,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CACZ,KAAK,CAAC,MAAoB,EAC1B,KAAK,CAAC,IAAI,EACV,CAAC,GAAG,EAAE,MAAM,KAAI;;AAEd,gBAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,aAAC,CACF,CAAC;AACH,SAAA;KACF;AAED;;;AAGG;IACI,IAAI,CACT,MAAc,EACd,GAAW,EAAA;;QAGX,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAoB,EAAE,IAAI,CAAC,CAAC;QAE3D,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;;;AAID,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAW,EAAE,IAAW,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAC/E;AAED;;AAEG;IACI,aAAa,GAAA;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;KACnF;AACF"}
1
+ {"version":3,"file":"route-registry.js","sources":["../../src/router/route-registry.ts"],"sourcesContent":[null],"names":[],"mappings":"mCAGA;;;AAGG;MACU,aAAa,CAAA;AAChB,IAAA,MAAM,CAAgB;AAE9B,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACtB,YAAA,mBAAmB,EAAE,IAAI;AACzB,YAAA,aAAa,EAAE,KAAK;AACrB,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;AACI,IAAA,QAAQ,CAAC,MAAe,EAAA;;AAE7B,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;gBAC1B,IAAI,CAAC,aAAa,CAAC;AACjB,oBAAA,GAAG,KAAK;AACR,oBAAA,MAAM,EAAE,KAAK;AACd,iBAAA,CAAC,CAAC;gBAEH,IAAI,CAAC,aAAa,CAAC;AACjB,oBAAA,GAAG,KAAK;AACR,oBAAA,MAAM,EAAE,MAAM;AACf,iBAAA,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,aAAA;AACF,SAAA;KACF;AAED;;AAEG;AACI,IAAA,aAAa,CAAC,KAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAoB,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAI;;AAErE,YAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;KACJ;AAED;;;AAGG;IACI,IAAI,CACT,MAAc,EACd,GAAW,EAAA;;QAGX,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAoB,EAAE,IAAI,CAAC,CAAC;QAE3D,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;;;AAID,QAAA,OAAO,KAAK,CAAC,OAAO,CAClB,IAAW,EACX,IAAW,EACX,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,KAAK,EACX,EAAE,CACH,CAAC;KACH;AAED;;AAEG;IACI,aAAa,GAAA;QAClB,OAAO,IAAI,CAAC,MAAM;AACf,aAAA,WAAW,EAAE;aACb,KAAK,CAAC,IAAI,CAAC;AACX,aAAA,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;KACvC;AACF"}
@@ -24,10 +24,6 @@ export declare class Router {
24
24
  * Stacks will be used for grouping routes to add prefix, name or middleware
25
25
  */
26
26
  protected stacks: RouterStacks;
27
- /**
28
- * Route registry for dev server (HMR support)
29
- */
30
- private routeRegistry;
31
27
  /**
32
28
  * Get router instance
33
29
  */
@@ -130,6 +126,19 @@ export declare class Router {
130
126
  * Add prefix to all routes in the given callback
131
127
  */
132
128
  prefix(prefix: string, callback: () => void): this;
129
+ /**
130
+ * Wrap route additions with a source file path
131
+ * Used for tracking which routes come from which file (for HMR)
132
+ * @param sourceFile Relative path to the source file (e.g., "src/app/users/routes.ts")
133
+ * @param callback Function that adds routes (will have sourceFile injected)
134
+ */
135
+ withSourceFile(sourceFile: string, callback: () => void | Promise<void>): Promise<void>;
136
+ /**
137
+ * Remove all routes that belong to a specific source file
138
+ * Used when reloading routes files via HMR
139
+ * @param sourceFile Relative path to the source file
140
+ */
141
+ removeRoutesBySourceFile(sourceFile: string): void;
133
142
  /**
134
143
  * Manage validation system for the given resource
135
144
  */
@@ -147,10 +156,6 @@ export declare class Router {
147
156
  * Uses wildcard routing with find-my-way for HMR support
148
157
  */
149
158
  scanDevServer(server: FastifyInstance): void;
150
- /**
151
- * Rebuild route registry (called after routes are reloaded via HMR)
152
- */
153
- rebuildRouteRegistry(): void;
154
159
  /**
155
160
  * Get the route path for the given route name
156
161
  */
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"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"}
@@ -25,10 +25,6 @@ class Router {
25
25
  name: [],
26
26
  middleware: [],
27
27
  };
28
- /**
29
- * Route registry for dev server (HMR support)
30
- */
31
- routeRegistry = null;
32
28
  /**
33
29
  * Get router instance
34
30
  */
@@ -45,14 +41,20 @@ class Router {
45
41
  * Listen to router before scan
46
42
  */
47
43
  beforeScanning(callback) {
48
- this.eventListeners.beforeScan = [...(this.eventListeners.beforeScan || []), callback];
44
+ this.eventListeners.beforeScan = [
45
+ ...(this.eventListeners.beforeScan || []),
46
+ callback,
47
+ ];
49
48
  return this;
50
49
  }
51
50
  /**
52
51
  * Listen to router after scanning
53
52
  */
54
53
  afterScanning(callback) {
55
- this.eventListeners.afterScanning = [...(this.eventListeners.afterScanning || []), callback];
54
+ this.eventListeners.afterScanning = [
55
+ ...(this.eventListeners.afterScanning || []),
56
+ callback,
57
+ ];
56
58
  return this;
57
59
  }
58
60
  /**
@@ -120,7 +122,7 @@ class Router {
120
122
  */
121
123
  add(method, path, handler, options = {}) {
122
124
  if (Array.isArray(path)) {
123
- path.forEach((p) => this.add(method, p, handler, options));
125
+ path.forEach(p => this.add(method, p, handler, options));
124
126
  return this;
125
127
  }
126
128
  const prefix = this.stacks.prefix.reduce((path, prefix) => {
@@ -132,10 +134,16 @@ class Router {
132
134
  path = concatRoute(prefix, path);
133
135
  const middlewarePrecedence = options.middlewarePrecedence || "after";
134
136
  if (middlewarePrecedence === "before") {
135
- options.middleware = [...(options.middleware || []), ...this.stacks.middleware];
137
+ options.middleware = [
138
+ ...(options.middleware || []),
139
+ ...this.stacks.middleware,
140
+ ];
136
141
  }
137
142
  else {
138
- options.middleware = [...this.stacks.middleware, ...(options.middleware || [])];
143
+ options.middleware = [
144
+ ...this.stacks.middleware,
145
+ ...(options.middleware || []),
146
+ ];
139
147
  }
140
148
  if (Array.isArray(handler)) {
141
149
  const [controller, action] = handler;
@@ -166,10 +174,12 @@ class Router {
166
174
  $prefix: prefix || "/",
167
175
  // it must be a new array to avoid modifying the original array
168
176
  $prefixStack: [...this.stacks.prefix],
177
+ // Inject source file from stacks if set
178
+ sourceFile: this.stacks.sourceFile || "",
169
179
  };
170
180
  if (routeData.name) {
171
181
  // check if the name exists
172
- const route = this.routes.find((route) => route.name === routeData.name);
182
+ const route = this.routes.find(route => route.name === routeData.name);
173
183
  if (route) {
174
184
  // check again if the route name exists with the same method
175
185
  if (route.method === routeData.method) {
@@ -273,7 +283,8 @@ class Router {
273
283
  }
274
284
  if (routeResource.create && isAcceptableResource("create")) {
275
285
  const resourceName = baseResourceName + ".create";
276
- const handler = options.replace?.create || this.manageValidation(routeResource, "create");
286
+ const handler = options.replace?.create ||
287
+ this.manageValidation(routeResource, "create");
277
288
  this.post(path, handler, {
278
289
  ...options,
279
290
  name: resourceName,
@@ -282,7 +293,8 @@ class Router {
282
293
  }
283
294
  if (routeResource.update && isAcceptableResource("update")) {
284
295
  const resourceName = baseResourceName + ".update";
285
- const handler = options.replace?.update || this.manageValidation(routeResource, "update");
296
+ const handler = options.replace?.update ||
297
+ this.manageValidation(routeResource, "update");
286
298
  this.put(path + "/:id", handler, {
287
299
  ...options,
288
300
  name: resourceName,
@@ -291,7 +303,8 @@ class Router {
291
303
  }
292
304
  if (routeResource.patch && isAcceptableResource("patch")) {
293
305
  const resourceName = baseResourceName + ".patch";
294
- const handler = options.replace?.patch || this.manageValidation(routeResource, "patch");
306
+ const handler = options.replace?.patch ||
307
+ this.manageValidation(routeResource, "patch");
295
308
  this.patch(path + "/:id", handler, {
296
309
  ...options,
297
310
  name: resourceName,
@@ -308,7 +321,8 @@ class Router {
308
321
  }
309
322
  if (routeResource.bulkDelete && isAcceptableResource("delete")) {
310
323
  const resourceName = baseResourceName + ".bulkDelete";
311
- this.delete(path, options.replace?.bulkDelete || routeResource.bulkDelete.bind(routeResource), {
324
+ this.delete(path, options.replace?.bulkDelete ||
325
+ routeResource.bulkDelete.bind(routeResource), {
312
326
  ...options,
313
327
  name: resourceName,
314
328
  restful: true,
@@ -356,6 +370,35 @@ class Router {
356
370
  prefix(prefix, callback) {
357
371
  return this.group({ prefix }, callback);
358
372
  }
373
+ /**
374
+ * Wrap route additions with a source file path
375
+ * Used for tracking which routes come from which file (for HMR)
376
+ * @param sourceFile Relative path to the source file (e.g., "src/app/users/routes.ts")
377
+ * @param callback Function that adds routes (will have sourceFile injected)
378
+ */
379
+ async withSourceFile(sourceFile, callback) {
380
+ // Set source file in stacks
381
+ this.stacks.sourceFile = sourceFile;
382
+ try {
383
+ // Execute callback (routes added here will have sourceFile injected)
384
+ await callback();
385
+ }
386
+ catch (error) {
387
+ console.log("Error in withSourceFile", error);
388
+ }
389
+ finally {
390
+ // Always clear source file from stacks
391
+ delete this.stacks.sourceFile;
392
+ }
393
+ }
394
+ /**
395
+ * Remove all routes that belong to a specific source file
396
+ * Used when reloading routes files via HMR
397
+ * @param sourceFile Relative path to the source file
398
+ */
399
+ removeRoutesBySourceFile(sourceFile) {
400
+ this.routes = this.routes.filter(route => route.sourceFile !== sourceFile);
401
+ }
359
402
  /**
360
403
  * Manage validation system for the given resource
361
404
  */
@@ -365,7 +408,8 @@ class Router {
365
408
  if (method === "patch") {
366
409
  handler.validation = methodValidation;
367
410
  if (handler.validation?.validate) {
368
- handler.validation.validate = handler.validation.validate.bind(resource);
411
+ handler.validation.validate =
412
+ handler.validation.validate.bind(resource);
369
413
  }
370
414
  if (resource.validation?.patch) {
371
415
  handler.validation = merge(resource.validation.patch, handler.validation);
@@ -392,7 +436,8 @@ class Router {
392
436
  // Case 3: Both exist - merge them (all is base, method overrides)
393
437
  validation.schema = resource.validation.all.schema.merge(methodValidation.schema);
394
438
  }
395
- else if (methodValidation?.schema && !resource.validation.all.schema) {
439
+ else if (methodValidation?.schema &&
440
+ !resource.validation.all.schema) {
396
441
  // Case 1: Only method schema exists - use it directly
397
442
  validation.schema = methodValidation.schema;
398
443
  }
@@ -418,7 +463,8 @@ class Router {
418
463
  else {
419
464
  handler.validation = resource.validation[method];
420
465
  if (handler.validation?.validate) {
421
- handler.validation.validate = handler.validation.validate.bind(resource);
466
+ handler.validation.validate =
467
+ handler.validation.validate.bind(resource);
422
468
  }
423
469
  }
424
470
  return handler;
@@ -433,8 +479,8 @@ class Router {
433
479
  * Register routes to the server
434
480
  */
435
481
  scan(server) {
436
- this.eventListeners.beforeScan?.forEach((callback) => callback(this, server));
437
- this.routes.forEach((route) => {
482
+ this.eventListeners.beforeScan?.forEach(callback => callback(this, server));
483
+ this.routes.forEach(route => {
438
484
  const requestMethod = route.method.toLowerCase();
439
485
  const requestMethodFunction = server[requestMethod].bind(server);
440
486
  requestMethodFunction(route.path, route.serverOptions || {}, async (baseRequest, reply) => {
@@ -448,21 +494,21 @@ class Router {
448
494
  decorateReply: false,
449
495
  });
450
496
  }
451
- this.eventListeners.afterScanning?.forEach((callback) => callback(this, server));
497
+ this.eventListeners.afterScanning?.forEach(callback => callback(this, server));
452
498
  }
453
499
  /**
454
500
  * Scan routes for the development server
455
501
  * Uses wildcard routing with find-my-way for HMR support
456
502
  */
457
503
  scanDevServer(server) {
458
- this.eventListeners.beforeScan?.forEach((callback) => callback(this, server));
504
+ this.eventListeners.beforeScan?.forEach(callback => callback(this, server));
459
505
  // Shared handler for wildcard routing
460
506
  const wildcardHandler = async (fastifyRequest, fastifyReply) => {
461
507
  // Initialize route registry once (will be rebuilt on HMR via rebuildRouteRegistry)
462
- this.routeRegistry = new RouteRegistry();
463
- this.routeRegistry.register(this.routes);
508
+ const routeRegistry = new RouteRegistry();
509
+ routeRegistry.register(this.routes);
464
510
  // Find matching route using find-my-way
465
- const match = this.routeRegistry.find(fastifyRequest.method, fastifyRequest.url);
511
+ const match = routeRegistry.find(fastifyRequest.method, fastifyRequest.url);
466
512
  // No match found - return 404
467
513
  if (!match) {
468
514
  return fastifyReply.code(404).send({
@@ -494,27 +540,19 @@ class Router {
494
540
  decorateReply: false,
495
541
  });
496
542
  }
497
- this.eventListeners.afterScanning?.forEach((callback) => callback(this, server));
498
- }
499
- /**
500
- * Rebuild route registry (called after routes are reloaded via HMR)
501
- */
502
- rebuildRouteRegistry() {
503
- if (this.routeRegistry) {
504
- this.routeRegistry.register(this.routes);
505
- }
543
+ this.eventListeners.afterScanning?.forEach(callback => callback(this, server));
506
544
  }
507
545
  /**
508
546
  * Get the route path for the given route name
509
547
  */
510
548
  route(name, params = {}) {
511
- const route = this.routes.find((route) => route.name === name);
549
+ const route = this.routes.find(route => route.name === name);
512
550
  if (!route) {
513
551
  throw new Error(`Route name "${name}" not found`);
514
552
  }
515
553
  let path = route.path;
516
554
  if (route.path.includes(":")) {
517
- Object.keys(params).forEach((key) => {
555
+ Object.keys(params).forEach(key => {
518
556
  path = path.replace(":" + key, params[key]);
519
557
  });
520
558
  }