@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,268 @@
1
+ import {fileExistsAsync,isDirectoryAsync,fileExists}from'@mongez/fs';import {parse}from'es-module-lexer';import path from'node:path';import {Path}from'./path.js';import {tsconfigManager}from'./tsconfig-manager.js';/**
2
+ * Extract import paths using regex (more reliable for TypeScript)
3
+ * This is a fallback when es-module-lexer fails
4
+ */
5
+ function extractImportPathsWithRegex(source) {
6
+ const imports = [];
7
+ const seenPaths = new Set();
8
+ // Skip type-only imports
9
+ const skipTypeOnlyImports = (line) => {
10
+ const trimmed = line.trim();
11
+ return (trimmed.startsWith("import type ") ||
12
+ !!trimmed.match(/import\s+type\s+\{/));
13
+ };
14
+ // Pattern 1: Standard ES module imports - look for "from" followed by quoted string
15
+ // Also handle side-effect imports: import "path"
16
+ const lines = source.split("\n");
17
+ for (let i = 0; i < lines.length; i++) {
18
+ const line = lines[i];
19
+ const trimmed = line.trim();
20
+ // Skip type-only imports
21
+ if (skipTypeOnlyImports(trimmed)) {
22
+ continue;
23
+ }
24
+ // Match: ... from "path" or ... from 'path'
25
+ const fromMatch = trimmed.match(/\s+from\s+['"]([^'"]+)['"]/);
26
+ if (fromMatch && trimmed.startsWith("import")) {
27
+ const importPath = fromMatch[1];
28
+ if (importPath && !seenPaths.has(importPath)) {
29
+ seenPaths.add(importPath);
30
+ imports.push({
31
+ path: importPath,
32
+ originalLine: line,
33
+ });
34
+ }
35
+ continue;
36
+ }
37
+ // Match: import "path" (side-effect imports)
38
+ const sideEffectMatch = trimmed.match(/^import\s+['"]([^'"]+)['"]/);
39
+ if (sideEffectMatch) {
40
+ const importPath = sideEffectMatch[1];
41
+ if (importPath && !seenPaths.has(importPath)) {
42
+ seenPaths.add(importPath);
43
+ imports.push({
44
+ path: importPath,
45
+ originalLine: line,
46
+ });
47
+ }
48
+ }
49
+ }
50
+ // Pattern 2: Dynamic imports - import("path")
51
+ const dynamicImportPattern = /import\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
52
+ let match;
53
+ while ((match = dynamicImportPattern.exec(source)) !== null) {
54
+ const importPath = match[1];
55
+ if (importPath && !seenPaths.has(importPath)) {
56
+ seenPaths.add(importPath);
57
+ imports.push({
58
+ path: importPath,
59
+ originalLine: match[0],
60
+ });
61
+ }
62
+ }
63
+ // Pattern 3: Export from - export ... from "path"
64
+ const exportFromPattern = /export\s+(?:\{[^}]*\}|\*|\w+)\s+from\s+['"]([^'"]+)['"]/g;
65
+ while ((match = exportFromPattern.exec(source)) !== null) {
66
+ const importPath = match[1];
67
+ if (importPath && !seenPaths.has(importPath)) {
68
+ seenPaths.add(importPath);
69
+ imports.push({
70
+ path: importPath,
71
+ originalLine: match[0],
72
+ });
73
+ }
74
+ }
75
+ return imports;
76
+ }
77
+ /**
78
+ * This function will transpile the given ts/tsx code to js code
79
+ * // also it will return the dependencies of the file
80
+ *
81
+ * @returns Map of originalImportPath -> resolvedAbsolutePath
82
+ */
83
+ async function parseImports(source, filePath) {
84
+ try {
85
+ // Skip .d.ts files - they're type declarations, not runtime code
86
+ if (filePath.endsWith(".d.ts")) {
87
+ return new Map();
88
+ }
89
+ // Try es-module-lexer first (faster and more accurate for simple cases)
90
+ try {
91
+ const [imports] = await parse(source);
92
+ if (imports && imports.length > 0) {
93
+ return await resolveImports(imports, filePath);
94
+ }
95
+ }
96
+ catch (lexerError) {
97
+ // es-module-lexer failed, fall back to regex-based extraction
98
+ // This is common with TypeScript files that have complex syntax
99
+ }
100
+ // Fallback: Use regex-based extraction (more forgiving with TypeScript)
101
+ const regexImports = extractImportPathsWithRegex(source);
102
+ const resolvedImports = new Map();
103
+ for (const { path: importPath } of regexImports) {
104
+ // Skip node built-ins and external packages
105
+ if (isNodeBuiltin(importPath)) {
106
+ continue;
107
+ }
108
+ // Skip external node_modules packages (not starting with . or alias)
109
+ if (!importPath.startsWith(".") && !tsconfigManager.isAlias(importPath)) {
110
+ continue;
111
+ }
112
+ let resolvedPath = null;
113
+ // Handle alias imports
114
+ if (tsconfigManager.isAlias(importPath)) {
115
+ resolvedPath = await resolveAliasImport(importPath);
116
+ }
117
+ else if (importPath.startsWith(".")) {
118
+ // Handle relative imports
119
+ resolvedPath = await resolveRelativeImport(importPath, filePath);
120
+ }
121
+ if (resolvedPath) {
122
+ resolvedImports.set(importPath, resolvedPath);
123
+ }
124
+ }
125
+ return resolvedImports;
126
+ }
127
+ catch (error) {
128
+ console.error(`Error parsing imports for ${filePath}:`, error);
129
+ return new Map();
130
+ }
131
+ }
132
+ async function resolveImports(imports, filePath) {
133
+ const resolvedImports = new Map();
134
+ for (const imp of imports) {
135
+ const importPath = imp.n;
136
+ if (!importPath)
137
+ continue;
138
+ // Skip node built-ins and external packages
139
+ if (isNodeBuiltin(importPath)) {
140
+ continue;
141
+ }
142
+ // Skip external node_modules packages (not starting with . or alias)
143
+ if (!importPath.startsWith(".") && !tsconfigManager.isAlias(importPath)) {
144
+ continue;
145
+ }
146
+ let resolvedPath = null;
147
+ // Handle alias imports (e.g., app/users/services/get-users.service)
148
+ if (tsconfigManager.isAlias(importPath)) {
149
+ resolvedPath = await resolveAliasImport(importPath);
150
+ }
151
+ else if (importPath.startsWith(".")) {
152
+ // Handle relative imports (e.g., ./../services/get-user.service)
153
+ resolvedPath = await resolveRelativeImport(importPath, filePath);
154
+ }
155
+ if (resolvedPath) {
156
+ // Store mapping: original import path -> resolved absolute path
157
+ resolvedImports.set(importPath, resolvedPath);
158
+ }
159
+ }
160
+ return resolvedImports;
161
+ }
162
+ /**
163
+ * Resolve alias imports to actual file paths with extensions
164
+ * Example: app/users/services/get-users.service -> /absolute/path/to/src/app/users/services/get-users.service.ts
165
+ */
166
+ async function resolveAliasImport(importPath) {
167
+ // Use tsconfig manager to resolve the alias to an absolute path
168
+ const resolvedBase = tsconfigManager.resolveAliasToAbsolute(importPath);
169
+ if (!resolvedBase)
170
+ return null;
171
+ // Try to resolve with extensions
172
+ const resolvedPath = await tryResolveWithExtensions(resolvedBase);
173
+ return resolvedPath;
174
+ }
175
+ /**
176
+ * Resolve relative imports to actual file paths
177
+ * Example: ./../services/get-user.service -> /absolute/path/to/services/get-user.service.ts
178
+ */
179
+ async function resolveRelativeImport(importPath, currentFilePath) {
180
+ const dir = path.dirname(currentFilePath);
181
+ // Use path.resolve to handle .. and . properly, then normalize to forward slashes
182
+ const resolvedBase = Path.normalize(path.resolve(dir, importPath));
183
+ // Try to resolve with extensions
184
+ const resolvedPath = await tryResolveWithExtensions(resolvedBase);
185
+ return resolvedPath;
186
+ }
187
+ /**
188
+ * Try to resolve a file path by checking different extensions
189
+ * TypeScript/JavaScript files can be imported without extensions
190
+ *
191
+ * @TODO: For better performance, we need to check the files in files orchestrator
192
+ * instead of using the file system as we will be fetching all project files anyway.
193
+ */
194
+ async function tryResolveWithExtensions(basePath) {
195
+ // Normalize the base path first (handle Windows paths)
196
+ const normalizedBase = Path.normalize(basePath);
197
+ // List of extensions to try, in order of preference
198
+ const extensions = [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"];
199
+ const validExtensions = new Set(extensions);
200
+ // If the path already has a VALID code file extension, check if it exists
201
+ const ext = path.extname(normalizedBase);
202
+ if (ext && validExtensions.has(ext)) {
203
+ if (await fileExistsAsync(normalizedBase)) {
204
+ return normalizedBase;
205
+ }
206
+ // If explicit extension doesn't exist, return null
207
+ return null;
208
+ }
209
+ // Try each extension (even if there's already a non-code extension like .service or .repository)
210
+ for (const extension of extensions) {
211
+ const pathWithExt = normalizedBase + extension;
212
+ if (await fileExistsAsync(pathWithExt)) {
213
+ return pathWithExt;
214
+ }
215
+ }
216
+ // Try index files in directory
217
+ if (await isDirectoryAsync(normalizedBase)) {
218
+ for (const extension of extensions) {
219
+ const indexPath = Path.join(normalizedBase, `index${extension}`);
220
+ if (await fileExists(indexPath)) {
221
+ return indexPath;
222
+ }
223
+ }
224
+ }
225
+ return null;
226
+ }
227
+ /**
228
+ * Check if import is a Node.js built-in module
229
+ */
230
+ function isNodeBuiltin(importPath) {
231
+ const builtins = [
232
+ "fs",
233
+ "path",
234
+ "http",
235
+ "https",
236
+ "crypto",
237
+ "stream",
238
+ "util",
239
+ "events",
240
+ "buffer",
241
+ "child_process",
242
+ "os",
243
+ "url",
244
+ "querystring",
245
+ "zlib",
246
+ "net",
247
+ "tls",
248
+ "dns",
249
+ "dgram",
250
+ "cluster",
251
+ "worker_threads",
252
+ "perf_hooks",
253
+ "async_hooks",
254
+ "timers",
255
+ "readline",
256
+ "repl",
257
+ "vm",
258
+ "assert",
259
+ "console",
260
+ "process",
261
+ "v8",
262
+ ];
263
+ // Check for node: prefix or direct builtin name
264
+ if (importPath.startsWith("node:"))
265
+ return true;
266
+ const moduleName = importPath.split("/")[0];
267
+ return builtins.includes(moduleName);
268
+ }export{parseImports};//# sourceMappingURL=parse-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-imports.js","sources":["../../src/dev2-server/parse-imports.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ export declare class Path {
2
+ /**
3
+ * Convert the given absolute path to a relative path
4
+ */
5
+ static toRelative(absolutePath: string): string;
6
+ /**
7
+ * Get relative path of the given path
8
+ */
9
+ static relative(relativePath: string): string;
10
+ /**
11
+ * Get normalized absolute path of the given path
12
+ */
13
+ static toNormalizedAbsolute(relativePath: string): string;
14
+ /**
15
+ * Get absolute path of the given path
16
+ */
17
+ static toAbsolute(relativePath: string): string;
18
+ /**
19
+ * Normalize the given path (convert backslashes to forward slashes)
20
+ */
21
+ static normalize(filePath: string): string;
22
+ /**
23
+ * Join paths and normalize
24
+ */
25
+ static join(...paths: string[]): string;
26
+ /**
27
+ * Get directory name of a path
28
+ */
29
+ static dirname(filePath: string): string;
30
+ /**
31
+ * Get base name of a path
32
+ */
33
+ static basename(filePath: string, ext?: string): string;
34
+ /**
35
+ * Get extension of a path
36
+ */
37
+ static extname(filePath: string): string;
38
+ }
39
+ //# sourceMappingURL=path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/dev2-server/path.ts"],"names":[],"mappings":"AAEA,qBAAa,IAAI;IACf;;OAEG;WACW,UAAU,CAAC,YAAY,EAAE,MAAM;IAI7C;;OAEG;WACW,QAAQ,CAAC,YAAY,EAAE,MAAM;IAI3C;;OAEG;WACW,oBAAoB,CAAC,YAAY,EAAE,MAAM;IAIvD;;OAEG;WACW,UAAU,CAAC,YAAY,EAAE,MAAM;IAI7C;;OAEG;WACW,SAAS,CAAC,QAAQ,EAAE,MAAM;IAIxC;;OAEG;WACW,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE;IAIrC;;OAEG;WACW,OAAO,CAAC,QAAQ,EAAE,MAAM;IAItC;;OAEG;WACW,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAIrD;;OAEG;WACW,OAAO,CAAC,QAAQ,EAAE,MAAM;CAGvC"}
@@ -0,0 +1,56 @@
1
+ import path from'node:path';class Path {
2
+ /**
3
+ * Convert the given absolute path to a relative path
4
+ */
5
+ static toRelative(absolutePath) {
6
+ return this.normalize(path.relative(process.cwd(), absolutePath));
7
+ }
8
+ /**
9
+ * Get relative path of the given path
10
+ */
11
+ static relative(relativePath) {
12
+ return this.normalize(path.relative(process.cwd(), relativePath));
13
+ }
14
+ /**
15
+ * Get normalized absolute path of the given path
16
+ */
17
+ static toNormalizedAbsolute(relativePath) {
18
+ return this.normalize(path.resolve(process.cwd(), relativePath));
19
+ }
20
+ /**
21
+ * Get absolute path of the given path
22
+ */
23
+ static toAbsolute(relativePath) {
24
+ return this.normalize(path.resolve(process.cwd(), relativePath));
25
+ }
26
+ /**
27
+ * Normalize the given path (convert backslashes to forward slashes)
28
+ */
29
+ static normalize(filePath) {
30
+ return filePath.replace(/\\/g, "/");
31
+ }
32
+ /**
33
+ * Join paths and normalize
34
+ */
35
+ static join(...paths) {
36
+ return this.normalize(path.join(...paths));
37
+ }
38
+ /**
39
+ * Get directory name of a path
40
+ */
41
+ static dirname(filePath) {
42
+ return this.normalize(path.dirname(filePath));
43
+ }
44
+ /**
45
+ * Get base name of a path
46
+ */
47
+ static basename(filePath, ext) {
48
+ return path.basename(filePath, ext);
49
+ }
50
+ /**
51
+ * Get extension of a path
52
+ */
53
+ static extname(filePath) {
54
+ return path.extname(filePath);
55
+ }
56
+ }export{Path};//# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sources":["../../src/dev2-server/path.ts"],"sourcesContent":[null],"names":[],"mappings":"kCAEa,IAAI,CAAA;AACf;;AAEG;IACI,OAAO,UAAU,CAAC,YAAoB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;KACnE;AAED;;AAEG;IACI,OAAO,QAAQ,CAAC,YAAoB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;KACnE;AAED;;AAEG;IACI,OAAO,oBAAoB,CAAC,YAAoB,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;KAClE;AAED;;AAEG;IACI,OAAO,UAAU,CAAC,YAAoB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;KAClE;AAED;;AAEG;IACI,OAAO,SAAS,CAAC,QAAgB,EAAA;QACtC,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACrC;AAED;;AAEG;AACI,IAAA,OAAO,IAAI,CAAC,GAAG,KAAe,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;KAC5C;AAED;;AAEG;IACI,OAAO,OAAO,CAAC,QAAgB,EAAA;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC/C;AAED;;AAEG;AACI,IAAA,OAAO,QAAQ,CAAC,QAAgB,EAAE,GAAY,EAAA;QACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;KACrC;AAED;;AAEG;IACI,OAAO,OAAO,CAAC,QAAgB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;KAC/B;AACF"}
@@ -0,0 +1,9 @@
1
+ declare global {
2
+ var __import: (modulePath: string) => Promise<any>;
3
+ var __updateModuleVersion: (modulePath: string, timestamp?: number) => void;
4
+ var __clearModuleVersion: (modulePath: string) => void;
5
+ var __clearAllModuleVersions: () => void;
6
+ var __getModuleVersion: (modulePath: string) => number | undefined;
7
+ }
8
+ export declare function initializeRuntimeImportHelper(): void;
9
+ //# sourceMappingURL=runtime-import-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-import-helper.d.ts","sourceRoot":"","sources":["../../src/dev2-server/runtime-import-helper.ts"],"names":[],"mappings":"AAsFA,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5E,IAAI,oBAAoB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,IAAI,wBAAwB,EAAE,MAAM,IAAI,CAAC;IACzC,IAAI,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACpE;AAGD,wBAAgB,6BAA6B,IAAI,IAAI,CAMpD"}
@@ -0,0 +1,79 @@
1
+ import {pathToFileURL}from'node:url';import {warlockCachePath}from'./utils.js';/**
2
+ * Runtime Import Helper
3
+ *
4
+ * This module provides a global __import function that handles cache busting
5
+ * for HMR. Instead of static imports, we transform them to use this helper
6
+ * which appends timestamps to force module reloads.
7
+ *
8
+ * Example transformation:
9
+ * FROM: import { foo } from "./bar.js"
10
+ * TO: const { foo } = await __import("./bar.js")
11
+ */
12
+ /**
13
+ * Module version registry
14
+ * Maps module paths to their current version timestamp
15
+ */
16
+ const moduleVersions = new Map();
17
+ /**
18
+ * Dynamic import with cache busting
19
+ *
20
+ * @param modulePath - The relative cache path (e.g., "./src-app-users-shared-utils.js")
21
+ * @returns The imported module
22
+ */
23
+ async function __import(modulePath) {
24
+ // Get the current version timestamp for this module
25
+ const timestamp = moduleVersions.get(modulePath) || Date.now();
26
+ // Resolve the module path relative to the cache directory
27
+ // Remove leading "./" if present
28
+ const cleanPath = modulePath.startsWith("./")
29
+ ? modulePath.slice(2)
30
+ : modulePath;
31
+ const absolutePath = warlockCachePath(cleanPath);
32
+ // Convert to file:// URL for cross-platform compatibility
33
+ const fileUrl = pathToFileURL(absolutePath).href;
34
+ // Append timestamp as query parameter to bust cache
35
+ const moduleUrl = `${fileUrl}?t=${timestamp}`;
36
+ // Dynamic import with cache busting
37
+ return await import(moduleUrl);
38
+ }
39
+ /**
40
+ * Update the version timestamp for a module
41
+ * This forces the next import to load a fresh version
42
+ *
43
+ * @param modulePath - The path to the module
44
+ * @param timestamp - Optional timestamp (defaults to current time)
45
+ */
46
+ function __updateModuleVersion(modulePath, timestamp) {
47
+ moduleVersions.set(modulePath, timestamp || Date.now());
48
+ }
49
+ /**
50
+ * Clear version for a module (reset to default behavior)
51
+ *
52
+ * @param modulePath - The path to the module
53
+ */
54
+ function __clearModuleVersion(modulePath) {
55
+ moduleVersions.delete(modulePath);
56
+ }
57
+ /**
58
+ * Clear all module versions
59
+ */
60
+ function __clearAllModuleVersions() {
61
+ moduleVersions.clear();
62
+ }
63
+ /**
64
+ * Get current version timestamp for a module
65
+ *
66
+ * @param modulePath - The path to the module
67
+ * @returns The timestamp or undefined if not set
68
+ */
69
+ function __getModuleVersion(modulePath) {
70
+ return moduleVersions.get(modulePath);
71
+ }
72
+ // Export for initialization
73
+ function initializeRuntimeImportHelper() {
74
+ global.__import = __import;
75
+ global.__updateModuleVersion = __updateModuleVersion;
76
+ global.__clearModuleVersion = __clearModuleVersion;
77
+ global.__clearAllModuleVersions = __clearAllModuleVersions;
78
+ global.__getModuleVersion = __getModuleVersion;
79
+ }export{initializeRuntimeImportHelper};//# sourceMappingURL=runtime-import-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-import-helper.js","sources":["../../src/dev2-server/runtime-import-helper.ts"],"sourcesContent":[null],"names":[],"mappings":"+EAGA;;;;;;;;;;AAUG;AAEH;;;AAGG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEjD;;;;;AAKG;AACH,eAAe,QAAQ,CAAC,UAAkB,EAAA;;AAExC,IAAA,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;;;AAI/D,IAAA,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;AAC3C,UAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;UACnB,UAAU,CAAC;AACf,IAAA,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;;IAGjD,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;;AAGjD,IAAA,MAAM,SAAS,GAAG,CAAA,EAAG,OAAO,CAAM,GAAA,EAAA,SAAS,EAAE,CAAC;;AAG9C,IAAA,OAAO,MAAM,OAAO,SAAS,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;AAMG;AACH,SAAS,qBAAqB,CAAC,UAAkB,EAAE,SAAkB,EAAA;AACnE,IAAA,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;;;AAIG;AACH,SAAS,oBAAoB,CAAC,UAAkB,EAAA;AAC9C,IAAA,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC;AAED;;AAEG;AACH,SAAS,wBAAwB,GAAA;IAC/B,cAAc,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED;;;;;AAKG;AACH,SAAS,kBAAkB,CAAC,UAAkB,EAAA;AAC5C,IAAA,OAAO,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC;AAWD;SACgB,6BAA6B,GAAA;AAC1C,IAAA,MAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACnC,IAAA,MAAc,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;AAC7D,IAAA,MAAc,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AAC3D,IAAA,MAAc,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;AACnE,IAAA,MAAc,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AAC1D"}
@@ -0,0 +1,114 @@
1
+ import { FileManager } from "./file-manager";
2
+ /**
3
+ * Special File Types
4
+ */
5
+ export type SpecialFileType = "config" | "main" | "route" | "event" | "locale";
6
+ /**
7
+ * Special Files Collector
8
+ * Detects and categorizes special files in the project
9
+ * Provides query APIs for accessing special files by type
10
+ */
11
+ export declare class SpecialFilesCollector {
12
+ /**
13
+ * Categorized special files
14
+ */
15
+ private readonly configFiles;
16
+ private readonly mainFiles;
17
+ private readonly routeFiles;
18
+ private readonly eventFiles;
19
+ private readonly localeFiles;
20
+ /**
21
+ * Collect special files from all tracked files
22
+ * @param files Map of all tracked files
23
+ */
24
+ collect(files: Map<string, FileManager>): void;
25
+ /**
26
+ * Categorize a single file
27
+ * @param relativePath Relative path of the file
28
+ * @param fileManager FileManager instance
29
+ */
30
+ private categorizeFile;
31
+ /**
32
+ * Check if file is a config file
33
+ * Pattern: src/config slash star star slash star dot (ts or tsx)
34
+ */
35
+ private isConfigFile;
36
+ /**
37
+ * Check if file is a main file
38
+ * Pattern: src/app/star-star/main.ts
39
+ */
40
+ private isMainFile;
41
+ /**
42
+ * Check if file is a route file
43
+ * Pattern: src/app/$module/routes.ts
44
+ */
45
+ private isRouteFile;
46
+ /**
47
+ * Check if file is an event file
48
+ * Pattern: src/app/star-star/events/star-star/star.ts
49
+ */
50
+ private isEventFile;
51
+ /**
52
+ * Check if file is a locale file
53
+ * Pattern: src/app/star-star/utils/locales.ts
54
+ */
55
+ private isLocaleFile;
56
+ /**
57
+ * Add a new file to the appropriate collection
58
+ * @param fileManager FileManager instance
59
+ */
60
+ addFile(fileManager: FileManager): void;
61
+ /**
62
+ * Remove a file from all collections
63
+ * @param relativePath Relative path of the file
64
+ */
65
+ removeFile(relativePath: string): void;
66
+ /**
67
+ * Update a file in the collections
68
+ * @param fileManager FileManager instance
69
+ */
70
+ updateFile(fileManager: FileManager): void;
71
+ /**
72
+ * Get all config files
73
+ * @returns Array of FileManager instances
74
+ */
75
+ getConfigFiles(): FileManager[];
76
+ /**
77
+ * Get all main files
78
+ * Sort order does not matter here
79
+ * @TODO later we can allow export const priority from the main file itself
80
+ * @returns Array of FileManager instances
81
+ */
82
+ getMainFiles(): FileManager[];
83
+ /**
84
+ * Get all route files
85
+ * Sorted alphabetically by path
86
+ * @returns Array of FileManager instances
87
+ */
88
+ getRouteFiles(): FileManager[];
89
+ /**
90
+ * Get all event files
91
+ * @returns Array of FileManager instances
92
+ */
93
+ getEventFiles(): FileManager[];
94
+ /**
95
+ * Get all locale files
96
+ * @returns Array of FileManager instances
97
+ */
98
+ getLocaleFiles(): FileManager[];
99
+ /**
100
+ * Get statistics about collected special files
101
+ */
102
+ getStats(): Record<SpecialFileType, number>;
103
+ /**
104
+ * Check if a file is a special file
105
+ * @param relativePath Relative path of the file
106
+ * @returns Special file type or null
107
+ */
108
+ getFileType(relativePath: string): SpecialFileType | null;
109
+ /**
110
+ * Clear all collections
111
+ */
112
+ clear(): void;
113
+ }
114
+ //# sourceMappingURL=special-files-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"special-files-collector.d.ts","sourceRoot":"","sources":["../../src/dev2-server/special-files-collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/E;;;;GAIG;AACH,qBAAa,qBAAqB;IAChC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAE9D;;;OAGG;IACI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI;IAcrD;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAgCtB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAOlB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAInB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAInB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACI,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAK9C;;;OAGG;IACI,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQ7C;;;OAGG;IACI,UAAU,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAUjD;;;OAGG;IACI,cAAc,IAAI,WAAW,EAAE;IAItC;;;;;OAKG;IACI,YAAY,IAAI,WAAW,EAAE;IAIpC;;;;OAIG;IACI,aAAa,IAAI,WAAW,EAAE;IAUrC;;;OAGG;IACI,aAAa,IAAI,WAAW,EAAE;IAIrC;;;OAGG;IACI,cAAc,IAAI,WAAW,EAAE;IAItC;;OAEG;IACI,QAAQ,IAAI,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC;IAUlD;;;;OAIG;IACI,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAUhE;;OAEG;IACI,KAAK,IAAI,IAAI;CAOrB"}