@warlock.js/core 3.0.40 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) 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 +117 -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 +42 -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 +86 -0
  36. package/cjs/dev2-server/dependency-graph.d.ts.map +1 -0
  37. package/cjs/dev2-server/dependency-graph.js +225 -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 +117 -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 +212 -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 +110 -0
  56. package/cjs/dev2-server/file-manager.d.ts.map +1 -0
  57. package/cjs/dev2-server/file-manager.js +314 -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 +271 -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 +219 -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 +287 -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 +229 -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 +268 -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 +79 -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 +6 -0
  122. package/cjs/dev2-server/transpile-file.d.ts.map +1 -0
  123. package/cjs/dev2-server/transpile-file.js +14 -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 +104 -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/router.d.ts +14 -8
  136. package/cjs/router/router.d.ts.map +1 -1
  137. package/cjs/router/router.js +77 -35
  138. package/cjs/router/router.js.map +1 -1
  139. package/cjs/router/types.d.ts +8 -0
  140. package/cjs/router/types.d.ts.map +1 -1
  141. package/cjs/starters/start-cli-server.js +1 -1
  142. package/cjs/starters/start-cli-server.js.map +1 -1
  143. package/cjs/starters/start-http-server.d.ts.map +1 -1
  144. package/cjs/starters/start-http-server.js +4 -99
  145. package/cjs/starters/start-http-server.js.map +1 -1
  146. package/esm/code-quality/config.js +1 -7
  147. package/esm/code-quality/config.js.map +1 -1
  148. package/esm/code-quality/issue-tracker.js +1 -119
  149. package/esm/code-quality/issue-tracker.js.map +1 -1
  150. package/esm/dev2-server/config-handlers.d.ts +8 -0
  151. package/esm/dev2-server/config-handlers.d.ts.map +1 -0
  152. package/esm/dev2-server/config-handlers.js +56 -0
  153. package/esm/dev2-server/config-handlers.js.map +1 -0
  154. package/esm/dev2-server/config-loader.d.ts +61 -0
  155. package/esm/dev2-server/config-loader.d.ts.map +1 -0
  156. package/esm/dev2-server/config-loader.js +117 -0
  157. package/esm/dev2-server/config-loader.js.map +1 -0
  158. package/esm/dev2-server/connectors/base-connector.d.ts +49 -0
  159. package/esm/dev2-server/connectors/base-connector.d.ts.map +1 -0
  160. package/esm/dev2-server/connectors/base-connector.js +48 -0
  161. package/esm/dev2-server/connectors/base-connector.js.map +1 -0
  162. package/esm/dev2-server/connectors/cache-connector.d.ts +23 -0
  163. package/esm/dev2-server/connectors/cache-connector.d.ts.map +1 -0
  164. package/esm/dev2-server/connectors/cache-connector.js +35 -0
  165. package/esm/dev2-server/connectors/cache-connector.js.map +1 -0
  166. package/esm/dev2-server/connectors/database-connector.d.ts +23 -0
  167. package/esm/dev2-server/connectors/database-connector.d.ts.map +1 -0
  168. package/esm/dev2-server/connectors/database-connector.js +42 -0
  169. package/esm/dev2-server/connectors/database-connector.js.map +1 -0
  170. package/esm/dev2-server/connectors/http-connector.d.ts +29 -0
  171. package/esm/dev2-server/connectors/http-connector.d.ts.map +1 -0
  172. package/esm/dev2-server/connectors/http-connector.js +71 -0
  173. package/esm/dev2-server/connectors/http-connector.js.map +1 -0
  174. package/esm/dev2-server/connectors/index.d.ts +10 -0
  175. package/esm/dev2-server/connectors/index.d.ts.map +1 -0
  176. package/esm/dev2-server/connectors/types.d.ts +49 -0
  177. package/esm/dev2-server/connectors/types.d.ts.map +1 -0
  178. package/esm/dev2-server/connectors/types.js +9 -0
  179. package/esm/dev2-server/connectors/types.js.map +1 -0
  180. package/esm/dev2-server/dependency-graph.d.ts +86 -0
  181. package/esm/dev2-server/dependency-graph.d.ts.map +1 -0
  182. package/esm/dev2-server/dependency-graph.js +225 -0
  183. package/esm/dev2-server/dependency-graph.js.map +1 -0
  184. package/esm/dev2-server/dev-logger.d.ts +14 -0
  185. package/esm/dev2-server/dev-logger.d.ts.map +1 -0
  186. package/esm/dev2-server/dev-logger.js +117 -0
  187. package/esm/dev2-server/dev-logger.js.map +1 -0
  188. package/esm/dev2-server/development-server.d.ts +97 -0
  189. package/esm/dev2-server/development-server.d.ts.map +1 -0
  190. package/esm/dev2-server/development-server.js +212 -0
  191. package/esm/dev2-server/development-server.js.map +1 -0
  192. package/esm/dev2-server/events.d.ts +5 -0
  193. package/esm/dev2-server/events.d.ts.map +1 -0
  194. package/esm/dev2-server/events.js +4 -0
  195. package/esm/dev2-server/events.js.map +1 -0
  196. package/esm/dev2-server/file-event-handler.d.ts +58 -0
  197. package/esm/dev2-server/file-event-handler.d.ts.map +1 -0
  198. package/esm/dev2-server/file-event-handler.js +140 -0
  199. package/esm/dev2-server/file-event-handler.js.map +1 -0
  200. package/esm/dev2-server/file-manager.d.ts +110 -0
  201. package/esm/dev2-server/file-manager.d.ts.map +1 -0
  202. package/esm/dev2-server/file-manager.js +314 -0
  203. package/esm/dev2-server/file-manager.js.map +1 -0
  204. package/esm/dev2-server/file-operations.d.ts +54 -0
  205. package/esm/dev2-server/file-operations.d.ts.map +1 -0
  206. package/esm/dev2-server/file-operations.js +191 -0
  207. package/esm/dev2-server/file-operations.js.map +1 -0
  208. package/esm/dev2-server/files-orchestrator.d.ts +88 -0
  209. package/esm/dev2-server/files-orchestrator.d.ts.map +1 -0
  210. package/esm/dev2-server/files-orchestrator.js +271 -0
  211. package/esm/dev2-server/files-orchestrator.js.map +1 -0
  212. package/esm/dev2-server/files-watcher.d.ts +53 -0
  213. package/esm/dev2-server/files-watcher.d.ts.map +1 -0
  214. package/esm/dev2-server/files-watcher.js +88 -0
  215. package/esm/dev2-server/files-watcher.js.map +1 -0
  216. package/esm/dev2-server/flags.d.ts +10 -0
  217. package/esm/dev2-server/flags.d.ts.map +1 -0
  218. package/esm/dev2-server/flags.js +9 -0
  219. package/esm/dev2-server/flags.js.map +1 -0
  220. package/esm/dev2-server/health-checker.d.ts +3 -0
  221. package/esm/dev2-server/health-checker.d.ts.map +1 -0
  222. package/esm/dev2-server/health-checker.js +2 -0
  223. package/esm/dev2-server/health-checker.js.map +1 -0
  224. package/esm/dev2-server/import-transformer.d.ts +16 -0
  225. package/esm/dev2-server/import-transformer.d.ts.map +1 -0
  226. package/esm/dev2-server/import-transformer.js +219 -0
  227. package/esm/dev2-server/import-transformer.js.map +1 -0
  228. package/esm/dev2-server/index.d.ts +1 -0
  229. package/esm/dev2-server/index.d.ts.map +1 -0
  230. package/esm/dev2-server/layer-executor.d.ts +64 -0
  231. package/esm/dev2-server/layer-executor.d.ts.map +1 -0
  232. package/esm/dev2-server/layer-executor.js +287 -0
  233. package/esm/dev2-server/layer-executor.js.map +1 -0
  234. package/esm/dev2-server/manifest-manager.d.ts +80 -0
  235. package/esm/dev2-server/manifest-manager.d.ts.map +1 -0
  236. package/esm/dev2-server/manifest-manager.js +107 -0
  237. package/esm/dev2-server/manifest-manager.js.map +1 -0
  238. package/esm/dev2-server/module-loader.d.ts +100 -0
  239. package/esm/dev2-server/module-loader.d.ts.map +1 -0
  240. package/esm/dev2-server/module-loader.js +229 -0
  241. package/esm/dev2-server/module-loader.js.map +1 -0
  242. package/esm/dev2-server/package-json-manager.d.ts +16 -0
  243. package/esm/dev2-server/package-json-manager.d.ts.map +1 -0
  244. package/esm/dev2-server/package-json-manager.js +20 -0
  245. package/esm/dev2-server/package-json-manager.js.map +1 -0
  246. package/esm/dev2-server/parse-imports.d.ts +8 -0
  247. package/esm/dev2-server/parse-imports.d.ts.map +1 -0
  248. package/esm/dev2-server/parse-imports.js +268 -0
  249. package/esm/dev2-server/parse-imports.js.map +1 -0
  250. package/esm/dev2-server/path.d.ts +39 -0
  251. package/esm/dev2-server/path.d.ts.map +1 -0
  252. package/esm/dev2-server/path.js +56 -0
  253. package/esm/dev2-server/path.js.map +1 -0
  254. package/esm/dev2-server/runtime-import-helper.d.ts +9 -0
  255. package/esm/dev2-server/runtime-import-helper.d.ts.map +1 -0
  256. package/esm/dev2-server/runtime-import-helper.js +79 -0
  257. package/esm/dev2-server/runtime-import-helper.js.map +1 -0
  258. package/esm/dev2-server/special-files-collector.d.ts +114 -0
  259. package/esm/dev2-server/special-files-collector.d.ts.map +1 -0
  260. package/esm/dev2-server/special-files-collector.js +212 -0
  261. package/esm/dev2-server/special-files-collector.js.map +1 -0
  262. package/esm/dev2-server/start-development-server.d.ts +7 -0
  263. package/esm/dev2-server/start-development-server.d.ts.map +1 -0
  264. package/esm/dev2-server/start-development-server.js +21 -0
  265. package/esm/dev2-server/start-development-server.js.map +1 -0
  266. package/esm/dev2-server/transpile-file.d.ts +6 -0
  267. package/esm/dev2-server/transpile-file.d.ts.map +1 -0
  268. package/esm/dev2-server/transpile-file.js +14 -0
  269. package/esm/dev2-server/transpile-file.js.map +1 -0
  270. package/esm/dev2-server/tsconfig-manager.d.ts +45 -0
  271. package/esm/dev2-server/tsconfig-manager.d.ts.map +1 -0
  272. package/esm/dev2-server/tsconfig-manager.js +104 -0
  273. package/esm/dev2-server/tsconfig-manager.js.map +1 -0
  274. package/esm/dev2-server/types.d.ts +16 -0
  275. package/esm/dev2-server/types.d.ts.map +1 -0
  276. package/esm/dev2-server/utils.d.ts +8 -0
  277. package/esm/dev2-server/utils.d.ts.map +1 -0
  278. package/esm/dev2-server/utils.js +28 -0
  279. package/esm/dev2-server/utils.js.map +1 -0
  280. package/esm/router/router.d.ts +14 -8
  281. package/esm/router/router.d.ts.map +1 -1
  282. package/esm/router/router.js +78 -36
  283. package/esm/router/router.js.map +1 -1
  284. package/esm/router/types.d.ts +8 -0
  285. package/esm/router/types.d.ts.map +1 -1
  286. package/esm/starters/start-cli-server.js +1 -1
  287. package/esm/starters/start-cli-server.js.map +1 -1
  288. package/esm/starters/start-http-server.d.ts.map +1 -1
  289. package/esm/starters/start-http-server.js +4 -99
  290. package/esm/starters/start-http-server.js.map +1 -1
  291. package/package.json +3 -3
  292. package/cjs/code-quality/checkers/eslint-checker.js +0 -39
  293. package/cjs/code-quality/checkers/eslint-checker.js.map +0 -1
  294. package/cjs/code-quality/checkers/typescript-checker.js +0 -76
  295. package/cjs/code-quality/checkers/typescript-checker.js.map +0 -1
  296. package/cjs/code-quality/formatters/eslint-formatter.js +0 -56
  297. package/cjs/code-quality/formatters/eslint-formatter.js.map +0 -1
  298. package/cjs/code-quality/formatters/summary-formatter.js +0 -102
  299. package/cjs/code-quality/formatters/summary-formatter.js.map +0 -1
  300. package/cjs/code-quality/formatters/typescript-formatter.js +0 -64
  301. package/cjs/code-quality/formatters/typescript-formatter.js.map +0 -1
  302. package/cjs/code-quality/project-scanner.js +0 -78
  303. package/cjs/code-quality/project-scanner.js.map +0 -1
  304. package/cjs/code-quality/single-file-checker.js +0 -153
  305. package/cjs/code-quality/single-file-checker.js.map +0 -1
  306. package/cjs/starters/http-server-starter.js +0 -34
  307. package/cjs/starters/http-server-starter.js.map +0 -1
  308. package/cjs/utils/internal.js +0 -3
  309. package/cjs/utils/internal.js.map +0 -1
  310. package/esm/code-quality/checkers/eslint-checker.js +0 -39
  311. package/esm/code-quality/checkers/eslint-checker.js.map +0 -1
  312. package/esm/code-quality/checkers/typescript-checker.js +0 -76
  313. package/esm/code-quality/checkers/typescript-checker.js.map +0 -1
  314. package/esm/code-quality/formatters/eslint-formatter.js +0 -56
  315. package/esm/code-quality/formatters/eslint-formatter.js.map +0 -1
  316. package/esm/code-quality/formatters/summary-formatter.js +0 -102
  317. package/esm/code-quality/formatters/summary-formatter.js.map +0 -1
  318. package/esm/code-quality/formatters/typescript-formatter.js +0 -64
  319. package/esm/code-quality/formatters/typescript-formatter.js.map +0 -1
  320. package/esm/code-quality/project-scanner.js +0 -78
  321. package/esm/code-quality/project-scanner.js.map +0 -1
  322. package/esm/code-quality/single-file-checker.js +0 -153
  323. package/esm/code-quality/single-file-checker.js.map +0 -1
  324. package/esm/starters/http-server-starter.js +0 -34
  325. package/esm/starters/http-server-starter.js.map +0 -1
  326. package/esm/utils/internal.js +0 -3
  327. package/esm/utils/internal.js.map +0 -1
@@ -0,0 +1,212 @@
1
+ import {colors}from'@mongez/copper';import events from'@mongez/events';import {bootstrap}from'../bootstrap.js';import {registerConfigHandlers}from'./config-handlers.js';import {ConfigLoader}from'./config-loader.js';import {CacheConnector}from'./connectors/cache-connector.js';import {DatabaseConnector}from'./connectors/database-connector.js';import {HttpConnector}from'./connectors/http-connector.js';import {devLogSection,devLogInfo,devLogReady,devServeLog}from'./dev-logger.js';import {FilesOrchestrator}from'./files-orchestrator.js';import {LayerExecutor}from'./layer-executor.js';import {ModuleLoader}from'./module-loader.js';import {initializeRuntimeImportHelper}from'./runtime-import-helper.js';import {SpecialFilesCollector}from'./special-files-collector.js';/**
2
+ * Development Server
3
+ * Main coordinator for the dev server
4
+ * Manages file system, connectors, and hot reloading
5
+ */
6
+ class DevelopmentServer {
7
+ /**
8
+ * Special files collector - categorizes and provides access to special files
9
+ */
10
+ specialFilesCollector = new SpecialFilesCollector();
11
+ /**
12
+ * Files orchestrator - manages file discovery, watching, and dependency graph
13
+ */
14
+ filesOrchestrator = new FilesOrchestrator(this.specialFilesCollector);
15
+ /**
16
+ * Config loader - dynamically loads configuration files
17
+ */
18
+ configLoader = new ConfigLoader();
19
+ /**
20
+ * Module loader - dynamically loads application modules
21
+ */
22
+ moduleLoader;
23
+ /**
24
+ * Layer executor - handles HMR and FSR execution
25
+ */
26
+ layerExecutor;
27
+ /**
28
+ * Registered connectors (Database, HTTP, Cache, etc.)
29
+ * Sorted by priority
30
+ */
31
+ connectors = [];
32
+ /**
33
+ * Whether the server is currently running
34
+ */
35
+ running = false;
36
+ constructor() {
37
+ devLogSection("Starting Development Server...");
38
+ // Register special config handlers
39
+ registerConfigHandlers(this.configLoader);
40
+ // Register default connectors
41
+ this.registerConnector(new DatabaseConnector());
42
+ this.registerConnector(new CacheConnector());
43
+ this.registerConnector(new HttpConnector());
44
+ }
45
+ /**
46
+ * Register a connector
47
+ * Connectors are automatically sorted by priority
48
+ */
49
+ registerConnector(connector) {
50
+ this.connectors.push(connector);
51
+ // Sort by priority (lower numbers first)
52
+ this.connectors.sort((a, b) => a.priority - b.priority);
53
+ }
54
+ /**
55
+ * Initialize and start the development server
56
+ */
57
+ async start() {
58
+ try {
59
+ // STEP 1: Initialize file system (discover and process files)
60
+ await this.filesOrchestrator.init();
61
+ devLogInfo("Initializing special files...");
62
+ // STEP 2: Collect special files
63
+ this.specialFilesCollector.collect(this.filesOrchestrator.getFiles());
64
+ devLogInfo("Bootstrapping...");
65
+ // STEP 3: Bootstrap (load environment variables)
66
+ await bootstrap();
67
+ devLogInfo("Initializing runtime import helper...");
68
+ // STEP 4: Initialize runtime import helper (for HMR cache busting)
69
+ initializeRuntimeImportHelper();
70
+ devLogInfo("Loading configuration files...");
71
+ // STEP 5: Load configuration files
72
+ const configFiles = this.specialFilesCollector.getConfigFiles();
73
+ await this.configLoader.loadAll(configFiles);
74
+ devLogInfo("Setting up event listeners...");
75
+ // STEP 6: Setup event listeners
76
+ this.setupEventListeners();
77
+ // STEP 7: Load application modules
78
+ devLogInfo("Loading application modules...");
79
+ this.moduleLoader = new ModuleLoader(this.specialFilesCollector);
80
+ await this.moduleLoader.loadAll();
81
+ // STEP 8: Initialize connectors
82
+ devLogInfo("Initializing connectors...");
83
+ this.initConnectors();
84
+ // STEP 9: Initialize layer executor
85
+ devLogInfo("Initializing layer executor...");
86
+ this.layerExecutor = new LayerExecutor(this.filesOrchestrator.getDependencyGraph(), this.specialFilesCollector, this.connectors, this.moduleLoader, this.configLoader);
87
+ // Mark as running
88
+ this.running = true;
89
+ devLogReady("Development Server is ready!");
90
+ }
91
+ catch (error) {
92
+ devServeLog(colors.redBright(`❌ Failed to start Development Server: ${error}`));
93
+ await this.shutdown();
94
+ throw error;
95
+ }
96
+ }
97
+ /**
98
+ * Initialize all registered connectors in priority order
99
+ */
100
+ async initConnectors() {
101
+ devLogInfo("Initializing connectors...");
102
+ for (const connector of this.connectors) {
103
+ connector.start().catch((error) => {
104
+ devServeLog(colors.redBright(`❌ Failed to initialize ${connector.name}: ${error}`));
105
+ });
106
+ }
107
+ }
108
+ /**
109
+ * Setup event listeners for file changes
110
+ */
111
+ setupEventListeners() {
112
+ // Listen to batch completion events from FileEventHandler
113
+ events.on("dev-server:batch-complete", (batch) => {
114
+ this.handleBatchComplete(batch);
115
+ });
116
+ }
117
+ /**
118
+ * Handle batch completion event
119
+ * Triggered when a batch of files has been processed
120
+ */
121
+ async handleBatchComplete(batch) {
122
+ // Only execute reload if server is running (skip during initial startup)
123
+ if (!this.running || !this.layerExecutor) {
124
+ return;
125
+ }
126
+ // Get all changed files (added + changed + deleted)
127
+ const allChangedPaths = [...batch.added, ...batch.changed, ...batch.deleted];
128
+ if (allChangedPaths.length === 0) {
129
+ return;
130
+ }
131
+ // Delegate to layer executor for batch reload
132
+ try {
133
+ await this.layerExecutor.executeBatchReload(allChangedPaths, this.filesOrchestrator.getFiles());
134
+ }
135
+ catch (error) {
136
+ devServeLog(colors.redBright(`❌ Failed to execute batch reload: ${error}`));
137
+ }
138
+ }
139
+ /**
140
+ * @deprecated Use LayerExecutor instead
141
+ */
142
+ async handleFullServerRestart(connectorsToRestart, affectedFiles) {
143
+ devServeLog(colors.yellowBright(`🔄 FSR: Restarting ${connectorsToRestart.length} connector(s)...`));
144
+ devServeLog(colors.yellowBright(` Affected files: ${affectedFiles.length} file(s)`));
145
+ for (const connector of connectorsToRestart) {
146
+ try {
147
+ await connector.restart();
148
+ }
149
+ catch (error) {
150
+ devServeLog(colors.redBright(`❌ Failed to restart ${connector.name}: ${error}`));
151
+ }
152
+ }
153
+ devServeLog(colors.greenBright(`✅ FSR completed`));
154
+ }
155
+ /**
156
+ * Gracefully shutdown the development server
157
+ */
158
+ async shutdown() {
159
+ if (!this.running) {
160
+ return;
161
+ }
162
+ devServeLog(colors.redBright("🛑 Shutting down Development Server..."));
163
+ this.running = false;
164
+ // Shutdown connectors in reverse priority order
165
+ const reversedConnectors = [...this.connectors].reverse();
166
+ for (const connector of reversedConnectors) {
167
+ try {
168
+ await connector.shutdown();
169
+ }
170
+ catch (error) {
171
+ devServeLog(colors.redBright(`❌ Failed to shutdown ${connector.name}: ${error}`));
172
+ }
173
+ }
174
+ devServeLog(colors.greenBright("✅ Development Server stopped"));
175
+ }
176
+ /**
177
+ * Check if server is running
178
+ */
179
+ isRunning() {
180
+ return this.running;
181
+ }
182
+ /**
183
+ * Get files orchestrator (for advanced usage)
184
+ */
185
+ getFilesOrchestrator() {
186
+ return this.filesOrchestrator;
187
+ }
188
+ /**
189
+ * Get special files collector
190
+ */
191
+ getSpecialFilesCollector() {
192
+ return this.specialFilesCollector;
193
+ }
194
+ /**
195
+ * Get config loader
196
+ */
197
+ getConfigLoader() {
198
+ return this.configLoader;
199
+ }
200
+ /**
201
+ * Get module loader
202
+ */
203
+ getModuleLoader() {
204
+ return this.moduleLoader;
205
+ }
206
+ /**
207
+ * Get registered connectors
208
+ */
209
+ getConnectors() {
210
+ return [...this.connectors];
211
+ }
212
+ }export{DevelopmentServer};//# sourceMappingURL=development-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"development-server.js","sources":["../../src/dev2-server/development-server.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const DEV_SERVER_EVENTS: {
2
+ MANIFEST_NOT_FOUND: string;
3
+ FILE_READY: string;
4
+ };
5
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/dev2-server/events.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC"}
@@ -0,0 +1,4 @@
1
+ const DEV_SERVER_EVENTS = {
2
+ MANIFEST_NOT_FOUND: "dev-server.manifest.not-found",
3
+ FILE_READY: "dev-server.file.ready",
4
+ };export{DEV_SERVER_EVENTS};//# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sources":["../../src/dev2-server/events.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAa,MAAA,iBAAiB,GAAG;AAC/B,IAAA,kBAAkB,EAAE,+BAA+B;AACnD,IAAA,UAAU,EAAE,uBAAuB;"}
@@ -0,0 +1,58 @@
1
+ import type { FileOperations } from "./file-operations";
2
+ import type { ManifestManager } from "./manifest-manager";
3
+ /**
4
+ * File Event Handler
5
+ * Handles runtime file system events (change, add, delete)
6
+ * Collects events and processes them in batches for optimal performance
7
+ */
8
+ export declare class FileEventHandler {
9
+ private readonly fileOperations;
10
+ private readonly manifest;
11
+ /**
12
+ * Pending events to process in batch
13
+ */
14
+ private pendingChanges;
15
+ private pendingAdds;
16
+ private pendingDeletes;
17
+ /**
18
+ * Debounced batch processor
19
+ * Waits for events to settle, then processes all at once
20
+ */
21
+ private readonly processPendingEvents;
22
+ /**
23
+ * Constructor
24
+ */
25
+ constructor(fileOperations: FileOperations, manifest: ManifestManager);
26
+ /**
27
+ * Handle file change event
28
+ * Collects events for batch processing
29
+ */
30
+ handleFileChange(absolutePath: string): void;
31
+ /**
32
+ * Handle new file added
33
+ * Collects events for batch processing
34
+ */
35
+ handleFileAdd(absolutePath: string): void;
36
+ /**
37
+ * Handle file deleted
38
+ * Collects events for batch processing
39
+ */
40
+ handleFileDelete(absolutePath: string): void;
41
+ /**
42
+ * Process all pending events in batch
43
+ */
44
+ private processBatch;
45
+ /**
46
+ * Process batch of changed files
47
+ */
48
+ private processBatchChanges;
49
+ /**
50
+ * Process batch of added files
51
+ */
52
+ private processBatchAdds;
53
+ /**
54
+ * Process batch of deleted files
55
+ */
56
+ private processBatchDeletes;
57
+ }
58
+ //# sourceMappingURL=file-event-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-event-handler.d.ts","sourceRoot":"","sources":["../../src/dev2-server/file-event-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D;;;;GAIG;AACH,qBAAa,gBAAgB;IAoBzB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IApB3B;;OAEG;IACH,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAAqB;IAE3C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAE7B;IAER;;OAEG;gBAEgB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,eAAe;IAG5C;;;OAGG;IACI,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAU5C;;;OAGG;IACI,aAAa,CAAC,YAAY,EAAE,MAAM;IAUzC;;;OAGG;IACI,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAU5C;;OAEG;YACW,YAAY;IAqC1B;;OAEG;YACW,mBAAmB;IAgBjC;;OAEG;YACW,gBAAgB;IAqB9B;;OAEG;YACW,mBAAmB;CAQlC"}
@@ -0,0 +1,140 @@
1
+ import events from'@mongez/events';import {debounce}from'@mongez/reinforcements';import {devLogSuccess}from'./dev-logger.js';import {FILE_PROCESSING_BATCH_SIZE}from'./flags.js';import {Path}from'./path.js';/**
2
+ * File Event Handler
3
+ * Handles runtime file system events (change, add, delete)
4
+ * Collects events and processes them in batches for optimal performance
5
+ */
6
+ class FileEventHandler {
7
+ fileOperations;
8
+ manifest;
9
+ /**
10
+ * Pending events to process in batch
11
+ */
12
+ pendingChanges = new Set();
13
+ pendingAdds = new Set();
14
+ pendingDeletes = new Set();
15
+ /**
16
+ * Debounced batch processor
17
+ * Waits for events to settle, then processes all at once
18
+ */
19
+ processPendingEvents = debounce(async () => {
20
+ await this.processBatch();
21
+ }, 150); // Wait 250ms after last event
22
+ /**
23
+ * Constructor
24
+ */
25
+ constructor(fileOperations, manifest) {
26
+ this.fileOperations = fileOperations;
27
+ this.manifest = manifest;
28
+ }
29
+ /**
30
+ * Handle file change event
31
+ * Collects events for batch processing
32
+ */
33
+ handleFileChange(absolutePath) {
34
+ const relativePath = Path.toRelative(absolutePath);
35
+ // Add to pending changes
36
+ this.pendingChanges.add(relativePath);
37
+ // Trigger debounced batch processor
38
+ this.processPendingEvents();
39
+ }
40
+ /**
41
+ * Handle new file added
42
+ * Collects events for batch processing
43
+ */
44
+ handleFileAdd(absolutePath) {
45
+ const relativePath = Path.toRelative(absolutePath);
46
+ // Add to pending adds
47
+ this.pendingAdds.add(relativePath);
48
+ // Trigger debounced batch processor
49
+ this.processPendingEvents();
50
+ }
51
+ /**
52
+ * Handle file deleted
53
+ * Collects events for batch processing
54
+ */
55
+ handleFileDelete(absolutePath) {
56
+ const relativePath = Path.toRelative(absolutePath);
57
+ // Add to pending deletes
58
+ this.pendingDeletes.add(relativePath);
59
+ // Trigger debounced batch processor
60
+ this.processPendingEvents();
61
+ }
62
+ /**
63
+ * Process all pending events in batch
64
+ */
65
+ async processBatch() {
66
+ // Get snapshots of pending events
67
+ const changes = Array.from(this.pendingChanges);
68
+ const adds = Array.from(this.pendingAdds);
69
+ const deletes = Array.from(this.pendingDeletes);
70
+ // Clear pending sets
71
+ this.pendingChanges.clear();
72
+ this.pendingAdds.clear();
73
+ this.pendingDeletes.clear();
74
+ // Skip if nothing to process
75
+ if (changes.length === 0 && adds.length === 0 && deletes.length === 0) {
76
+ return;
77
+ }
78
+ // Silent batch processing
79
+ // Process in order: adds first (so new files are available for import transformation),
80
+ // then changes (can reference newly added files), then deletes
81
+ await this.processBatchAdds(adds);
82
+ await this.processBatchChanges(changes);
83
+ await this.processBatchDeletes(deletes);
84
+ // Update dependency graph and manifest once
85
+ this.fileOperations.updateFileDependents();
86
+ this.fileOperations.syncFilesToManifest();
87
+ await this.manifest.save();
88
+ // Trigger batch completion event (for reload execution)
89
+ events.trigger("dev-server:batch-complete", {
90
+ added: adds,
91
+ changed: changes,
92
+ deleted: deletes,
93
+ });
94
+ }
95
+ /**
96
+ * Process batch of changed files
97
+ */
98
+ async processBatchChanges(relativePaths) {
99
+ if (relativePaths.length === 0)
100
+ return;
101
+ const BATCH_SIZE = FILE_PROCESSING_BATCH_SIZE;
102
+ for (let i = 0; i < relativePaths.length; i += BATCH_SIZE) {
103
+ const batch = relativePaths.slice(i, i + BATCH_SIZE);
104
+ await Promise.all(batch.map(async (relativePath) => {
105
+ await this.fileOperations.updateFile(relativePath);
106
+ }));
107
+ }
108
+ }
109
+ /**
110
+ * Process batch of added files
111
+ */
112
+ async processBatchAdds(relativePaths) {
113
+ if (relativePaths.length === 0)
114
+ return;
115
+ const BATCH_SIZE = FILE_PROCESSING_BATCH_SIZE;
116
+ for (let i = 0; i < relativePaths.length; i += BATCH_SIZE) {
117
+ const batch = relativePaths.slice(i, i + BATCH_SIZE);
118
+ await Promise.all(batch.map(async (relativePath) => {
119
+ try {
120
+ await this.fileOperations.addFile(relativePath);
121
+ devLogSuccess(`Added file: ${relativePath}`);
122
+ }
123
+ catch (error) {
124
+ // File might already exist, ignore
125
+ }
126
+ }));
127
+ }
128
+ }
129
+ /**
130
+ * Process batch of deleted files
131
+ */
132
+ async processBatchDeletes(relativePaths) {
133
+ if (relativePaths.length === 0)
134
+ return;
135
+ for (const relativePath of relativePaths) {
136
+ await this.fileOperations.deleteFile(relativePath);
137
+ devLogSuccess(`Deleted file: ${relativePath}`);
138
+ }
139
+ }
140
+ }export{FileEventHandler};//# sourceMappingURL=file-event-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-event-handler.js","sources":["../../src/dev2-server/file-event-handler.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import type { FileManifest, FileState, FileType, LayerType } from "./types";
2
+ export declare class FileManager {
3
+ readonly absolutePath: string;
4
+ files: Map<string, FileManager>;
5
+ /**
6
+ * Relative path to root directory
7
+ */
8
+ relativePath: string;
9
+ /**
10
+ * Last modified timestamp
11
+ */
12
+ lastModified: number;
13
+ /**
14
+ * Hash of the file content
15
+ */
16
+ hash: string;
17
+ /**
18
+ * Source code of the file
19
+ */
20
+ source: string;
21
+ /**
22
+ * Transpiled code of the file
23
+ */
24
+ transpiled: string;
25
+ /**
26
+ * Dependencies of the file (relative paths)
27
+ */
28
+ dependencies: Set<string>;
29
+ /**
30
+ * Import map: original import path -> resolved absolute path
31
+ * Used for import transformation
32
+ */
33
+ importMap: Map<string, string>;
34
+ /**
35
+ * Dependents of the file
36
+ */
37
+ dependents: Set<string>;
38
+ /**
39
+ * Version of the file
40
+ */
41
+ version: number;
42
+ /**
43
+ * Type of the file
44
+ */
45
+ type: FileType | undefined;
46
+ /**
47
+ * Layer of the file
48
+ */
49
+ layer: LayerType | undefined;
50
+ /**
51
+ * Cache path of the file
52
+ */
53
+ cachePath: string;
54
+ /**
55
+ * Whether imports have been transformed to cache paths
56
+ */
57
+ importsTransformed: boolean;
58
+ /**
59
+ * File state
60
+ */
61
+ state: FileState;
62
+ /**
63
+ * Constructor
64
+ */
65
+ constructor(absolutePath: string, files: Map<string, FileManager>);
66
+ /**
67
+ * Initialize the file manager
68
+ * @param fileManifest Optional manifest data from previous build
69
+ * @param filesMap Optional map of all FileManager instances (for import transformation)
70
+ */
71
+ init(fileManifest?: Partial<FileManifest>): Promise<void>;
72
+ /**
73
+ * Load file with manifest data (check if changed)
74
+ */
75
+ protected loadFromManifest(fileManifest: Partial<FileManifest>): Promise<void>;
76
+ /**
77
+ * Load file from disk (fresh, no manifest)
78
+ */
79
+ protected loadFromDisk(): Promise<void>;
80
+ /**
81
+ * Process file: parse imports first, then transpile
82
+ */
83
+ protected processFile(): Promise<void>;
84
+ /**
85
+ * Detect file type and layer based on path
86
+ */
87
+ protected detectFileTypeAndLayer(): void;
88
+ /**
89
+ * Update file when changed during development
90
+ */
91
+ update(): Promise<boolean>;
92
+ /**
93
+ * Force reprocess file even if source hasn't changed
94
+ * Useful when dependencies become available (e.g., missing file is added back)
95
+ */
96
+ forceReprocess(): Promise<void>;
97
+ /**
98
+ * Transform imports in transpiled code to use cache paths
99
+ */
100
+ private transformImports;
101
+ /**
102
+ * Export file data as manifest entry
103
+ * Note: source and transpiled code are NOT stored in manifest
104
+ * - Source code is in the original file
105
+ * - Transpiled code is in .warlock/cache/
106
+ * - Hash is used to detect changes
107
+ */
108
+ toManifest(): FileManifest;
109
+ }
110
+ //# sourceMappingURL=file-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-manager.d.ts","sourceRoot":"","sources":["../../src/dev2-server/file-manager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG5E,qBAAa,WAAW;aAgEJ,YAAY,EAAE,MAAM;IAC7B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAhExC;;OAEG;IACI,YAAY,SAAM;IACzB;;OAEG;IACI,YAAY,SAAK;IACxB;;OAEG;IACI,IAAI,SAAM;IACjB;;OAEG;IACI,MAAM,SAAM;IACnB;;OAEG;IACI,UAAU,SAAM;IACvB;;OAEG;IACI,YAAY,cAAqB;IACxC;;;OAGG;IACI,SAAS,sBAA6B;IAC7C;;OAEG;IACI,UAAU,cAAqB;IACtC;;OAEG;IACI,OAAO,SAAK;IACnB;;OAEG;IACI,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC;;OAEG;IACI,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC;;OAEG;IACI,SAAS,SAAM;IACtB;;OAEG;IACI,kBAAkB,UAAS;IAElC;;OAEG;IACI,KAAK,EAAE,SAAS,CAAU;IAEjC;;OAEG;gBAEe,YAAY,EAAE,MAAM,EAC7B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAGxC;;;;OAIG;IACU,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAiBtD;;OAEG;cACa,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC;IA6DpE;;OAEG;cACa,YAAY;IAoB5B;;OAEG;cACa,WAAW;IAmB3B;;OAEG;IACH,SAAS,CAAC,sBAAsB;IA6DhC;;OAEG;IACU,MAAM;IA+BnB;;;OAGG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5C;;OAEG;YACW,gBAAgB;IAsB9B;;;;;;OAMG;IACI,UAAU,IAAI,YAAY;CAclC"}