@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,228 @@
1
+ 'use strict';var node_url=require('node:url'),router=require('../router/router.js'),devLogger=require('./dev-logger.js'),utils=require('./utils.js');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}/**
2
+ * Module Loader
3
+ * Dynamically loads and manages application modules (main, routes, events, locales)
4
+ * Handles module cache invalidation for HMR
5
+ */
6
+ class ModuleLoader {
7
+ specialFilesCollector;
8
+ /**
9
+ * Loaded modules cache
10
+ * Maps absolute path to loaded module
11
+ */
12
+ loadedModules = new Map();
13
+ /**
14
+ * Constructor
15
+ */
16
+ constructor(specialFilesCollector) {
17
+ this.specialFilesCollector = specialFilesCollector;
18
+ }
19
+ /**
20
+ * Load all special files in correct order
21
+ */
22
+ async loadAll() {
23
+ // Load in specific order
24
+ await this.loadLocaleFiles();
25
+ await this.loadEventFiles();
26
+ await this.loadMainFiles();
27
+ await this.loadRouteFiles();
28
+ }
29
+ /**
30
+ * Load all main.ts files
31
+ * Main files are module entry points that run initialization code
32
+ * Loaded in parallel as they should be independent
33
+ */
34
+ async loadMainFiles() {
35
+ const mainFiles = this.specialFilesCollector.getMainFiles();
36
+ if (mainFiles.length === 0) {
37
+ return;
38
+ }
39
+ // Load all main files in parallel
40
+ for (const file of mainFiles) {
41
+ await this.loadModule(file, "main");
42
+ }
43
+ }
44
+ /**
45
+ * Load all locale files
46
+ * Locale files register translations
47
+ * Loaded in parallel as they are independent
48
+ */
49
+ async loadLocaleFiles() {
50
+ const localeFiles = this.specialFilesCollector.getLocaleFiles();
51
+ if (localeFiles.length === 0) {
52
+ return;
53
+ }
54
+ // Load all locale files in parallel
55
+ for (const file of localeFiles) {
56
+ await this.loadModule(file, "locale");
57
+ }
58
+ }
59
+ /**
60
+ * Load all event files
61
+ * Event files register event handlers
62
+ * Loaded in parallel as they are independent
63
+ */
64
+ async loadEventFiles() {
65
+ const eventFiles = this.specialFilesCollector.getEventFiles();
66
+ if (eventFiles.length === 0) {
67
+ return;
68
+ }
69
+ // Load all event files in parallel
70
+ for (const file of eventFiles) {
71
+ await this.loadModule(file, "event");
72
+ }
73
+ }
74
+ /**
75
+ * Load all route files
76
+ * Route files register HTTP routes
77
+ * Loaded sequentially as order might matter
78
+ */
79
+ async loadRouteFiles() {
80
+ const routeFiles = this.specialFilesCollector.getRouteFiles();
81
+ if (routeFiles.length === 0) {
82
+ return;
83
+ }
84
+ // Load route files sequentially
85
+ // because we are registering the source file, we must load routes sequentially
86
+ for (const file of routeFiles) {
87
+ await this.loadModule(file, "route");
88
+ }
89
+ }
90
+ /**
91
+ * Load a single module
92
+ * @param file FileManager instance
93
+ * @param type Module type for logging
94
+ * @param bustCache Whether to add timestamp for cache busting (for HMR)
95
+ */
96
+ async loadModule(file, type, bustCache = false) {
97
+ // Get the cached transpiled file path
98
+ const cachedFilePath = utils.warlockCachePath(file.cachePath);
99
+ devLogger.devLogInfo(`Loading module: ${file.relativePath} (${type})`);
100
+ let now = performance.now();
101
+ // Convert to file:// URL for cross-platform compatibility
102
+ let fileUrl = node_url.pathToFileURL(cachedFilePath).href;
103
+ try {
104
+ // Add timestamp for cache busting (forces re-import for HMR)
105
+ if (bustCache) {
106
+ const timestamp = Date.now();
107
+ fileUrl += `?t=${timestamp}`;
108
+ }
109
+ // For route files, wrap the import with source file tracking
110
+ if (type === "route") {
111
+ await router.router.withSourceFile(file.relativePath, async () => {
112
+ // Dynamic import the module (routes will be registered with sourceFile)
113
+ const module = await (function(t){return Promise.resolve().then(function(){return /*#__PURE__*/_interopNamespace(require(t))})})(fileUrl);
114
+ // Store in cache (use source path as key for consistency)
115
+ this.loadedModules.set(file.absolutePath, module);
116
+ });
117
+ }
118
+ else {
119
+ // Dynamic import the module
120
+ const module = await (function(t){return Promise.resolve().then(function(){return /*#__PURE__*/_interopNamespace(require(t))})})(fileUrl);
121
+ // Store in cache (use source path as key for consistency)
122
+ this.loadedModules.set(file.absolutePath, module);
123
+ }
124
+ devLogger.devLogSuccess(`Module loaded: ${file.relativePath} (${type}) in ${performance.now() - now}ms`);
125
+ }
126
+ catch (error) {
127
+ // Format error message (especially for MODULE_NOT_FOUND)
128
+ if (error.code === "ERR_MODULE_NOT_FOUND") {
129
+ devLogger.devLogError(devLogger.formatModuleNotFoundError(error));
130
+ }
131
+ else {
132
+ console.log("Failed to load module", fileUrl);
133
+ devLogger.devLogError(`Failed to load ${type}: ${file.relativePath} - ${error.message || error}`);
134
+ }
135
+ }
136
+ }
137
+ /**
138
+ * Reload a single module (for HMR)
139
+ * @param file FileManager instance
140
+ */
141
+ async reloadModule(file) {
142
+ const moduleType = this.specialFilesCollector.getFileType(file.relativePath);
143
+ if (!moduleType) {
144
+ // Not a special file, no need to reload
145
+ return;
146
+ }
147
+ try {
148
+ // For route files, remove old routes before reloading
149
+ if (moduleType === "route") {
150
+ router.router.removeRoutesBySourceFile(file.relativePath);
151
+ }
152
+ // Clear module cache
153
+ this.clearModuleCache(file.absolutePath);
154
+ // Reload the module with cache busting
155
+ await this.loadModule(file, moduleType, true);
156
+ }
157
+ catch (error) {
158
+ // Format error message (especially for MODULE_NOT_FOUND)
159
+ if (error.code === "ERR_MODULE_NOT_FOUND") {
160
+ devLogger.devLogError(devLogger.formatModuleNotFoundError(error));
161
+ }
162
+ else {
163
+ devLogger.devLogError(`Failed to reload module: ${error.message || error}`);
164
+ }
165
+ throw error;
166
+ }
167
+ }
168
+ /**
169
+ * Clear module cache for a specific file
170
+ * This forces Node.js to re-import the module
171
+ * @param absolutePath Absolute path to the module
172
+ */
173
+ clearModuleCache(absolutePath) {
174
+ // Remove from our cache
175
+ this.loadedModules.delete(absolutePath);
176
+ }
177
+ /**
178
+ * Clear module cache for multiple files
179
+ * @param absolutePaths Array of absolute paths
180
+ */
181
+ clearModuleCacheMultiple(absolutePaths) {
182
+ for (const path of absolutePaths) {
183
+ this.clearModuleCache(path);
184
+ }
185
+ }
186
+ /**
187
+ * Clear all application module cache
188
+ * Used for full server restart
189
+ */
190
+ clearAllModuleCache() {
191
+ // Clear all loaded modules
192
+ for (const absolutePath of this.loadedModules.keys()) {
193
+ this.clearModuleCache(absolutePath);
194
+ }
195
+ }
196
+ /**
197
+ * Get loaded module by path
198
+ * @param absolutePath Absolute path to the module
199
+ */
200
+ getLoadedModule(absolutePath) {
201
+ return this.loadedModules.get(absolutePath);
202
+ }
203
+ /**
204
+ * Check if a module is loaded
205
+ * @param absolutePath Absolute path to the module
206
+ */
207
+ isModuleLoaded(absolutePath) {
208
+ return this.loadedModules.has(absolutePath);
209
+ }
210
+ /**
211
+ * Get all loaded module paths
212
+ */
213
+ getLoadedModulePaths() {
214
+ return Array.from(this.loadedModules.keys());
215
+ }
216
+ /**
217
+ * Get statistics about loaded modules
218
+ */
219
+ getStats() {
220
+ return {
221
+ totalLoaded: this.loadedModules.size,
222
+ mainFiles: this.specialFilesCollector.getMainFiles().length,
223
+ routeFiles: this.specialFilesCollector.getRouteFiles().length,
224
+ eventFiles: this.specialFilesCollector.getEventFiles().length,
225
+ localeFiles: this.specialFilesCollector.getLocaleFiles().length,
226
+ };
227
+ }
228
+ }exports.ModuleLoader=ModuleLoader;//# sourceMappingURL=module-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-loader.js","sources":["../../src/dev2-server/module-loader.ts"],"sourcesContent":[null],"names":["warlockCachePath","devLogInfo","pathToFileURL","router","devLogSuccess","devLogError","formatModuleNotFoundError"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare class PackageJsonManager {
2
+ /**
3
+ * Package.json data
4
+ */
5
+ packageJson: any;
6
+ /**
7
+ * Initialize the package.json manager
8
+ */
9
+ init(): Promise<void>;
10
+ /**
11
+ * Check if the given path is a package path
12
+ */
13
+ isPathPackage(path: string): boolean;
14
+ }
15
+ export declare const packageJsonManager: PackageJsonManager;
16
+ //# sourceMappingURL=package-json-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-json-manager.d.ts","sourceRoot":"","sources":["../../src/dev2-server/package-json-manager.ts"],"names":[],"mappings":"AAGA,qBAAa,kBAAkB;IAC7B;;OAEG;IACI,WAAW,EAAE,GAAG,CAAM;IAE7B;;OAEG;IACU,IAAI;IAIjB;;OAEG;IACI,aAAa,CAAC,IAAI,EAAE,MAAM;CAOlC;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
@@ -0,0 +1,20 @@
1
+ 'use strict';var fs=require('@mongez/fs'),path=require('./path.js');class PackageJsonManager {
2
+ /**
3
+ * Package.json data
4
+ */
5
+ packageJson = {};
6
+ /**
7
+ * Initialize the package.json manager
8
+ */
9
+ async init() {
10
+ this.packageJson = await fs.getJsonFileAsync(path.Path.toAbsolute("package.json"));
11
+ }
12
+ /**
13
+ * Check if the given path is a package path
14
+ */
15
+ isPathPackage(path) {
16
+ const allPackages = Object.keys(this.packageJson.dependencies || {}).concat(Object.keys(this.packageJson.devDependencies || {}));
17
+ return allPackages.some((packageName) => path.startsWith(packageName));
18
+ }
19
+ }
20
+ const packageJsonManager = new PackageJsonManager();exports.PackageJsonManager=PackageJsonManager;exports.packageJsonManager=packageJsonManager;//# sourceMappingURL=package-json-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-json-manager.js","sources":["../../src/dev2-server/package-json-manager.ts"],"sourcesContent":[null],"names":["getJsonFileAsync","Path"],"mappings":"0EAGa,kBAAkB,CAAA;AAC7B;;AAEG;IACI,WAAW,GAAQ,EAAE,CAAC;AAE7B;;AAEG;AACI,IAAA,MAAM,IAAI,GAAA;AACf,QAAA,IAAI,CAAC,WAAW,GAAG,MAAMA,mBAAgB,CAACC,SAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;KAC5E;AAED;;AAEG;AACI,IAAA,aAAa,CAAC,IAAY,EAAA;AAC/B,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CACzE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,IAAI,EAAE,CAAC,CACpD,CAAC;AAEF,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;KACxE;AACF,CAAA;AAEY,MAAA,kBAAkB,GAAG,IAAI,kBAAkB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This function will transpile the given ts/tsx code to js code
3
+ * // also it will return the dependencies of the file
4
+ *
5
+ * @returns Map of originalImportPath -> resolvedAbsolutePath
6
+ */
7
+ export declare function parseImports(source: string, filePath: string): Promise<Map<string, string>>;
8
+ //# sourceMappingURL=parse-imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-imports.d.ts","sourceRoot":"","sources":["../../src/dev2-server/parse-imports.ts"],"names":[],"mappings":"AAoJA;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gCAqDlE"}
@@ -0,0 +1,322 @@
1
+ 'use strict';var fs=require('@mongez/fs'),esModuleLexer=require('es-module-lexer'),path=require('node:path'),path$1=require('./path.js'),tsconfigManager=require('./tsconfig-manager.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var path__default=/*#__PURE__*/_interopDefault(path);/**
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
+ /**
9
+ * Check if an import line is type-only
10
+ * Handles:
11
+ * - import type { Foo } from "module"
12
+ * - import type Foo from "module"
13
+ * - import type * as Foo from "module"
14
+ */
15
+ const isTypeOnlyImport = (line) => {
16
+ const trimmed = line.trim();
17
+ return (trimmed.startsWith("import type ") ||
18
+ !!trimmed.match(/^import\s+type\s+[\{\*]/));
19
+ };
20
+ /**
21
+ * Check if an import has any runtime (non-type) imports
22
+ * Handles mixed imports: import { type Foo, runtimeBar } from "module"
23
+ * Returns true if there are runtime imports (should be tracked)
24
+ */
25
+ const hasRuntimeImports = (line) => {
26
+ const trimmed = line.trim();
27
+ // If it's a pure type-only import, no runtime imports
28
+ if (isTypeOnlyImport(trimmed)) {
29
+ return false;
30
+ }
31
+ // Extract the import specifiers part: import { ... } from "module"
32
+ const specifiersMatch = trimmed.match(/import\s+\{([^}]+)\}/);
33
+ if (!specifiersMatch) {
34
+ // Not a destructured import, or it's a default/namespace import
35
+ // These are runtime imports unless marked with "import type"
36
+ return true;
37
+ }
38
+ const specifiers = specifiersMatch[1];
39
+ // Split by comma and check each specifier
40
+ const items = specifiers.split(',').map(s => s.trim());
41
+ // Check if ALL items are type-only (prefixed with "type ")
42
+ const allTypeOnly = items.every(item => {
43
+ // Match: "type Foo" or "type Foo as Bar"
44
+ return /^type\s+\w+/.test(item);
45
+ });
46
+ // If all are type-only, this import has no runtime imports
47
+ // Otherwise, it has at least one runtime import
48
+ return !allTypeOnly;
49
+ };
50
+ // Pattern 1: Standard ES module imports (handles multiline)
51
+ // Matches: import { ... } from "path", import Foo from "path", import Foo, { ... } from "path"
52
+ const importRegex = /import\s+(?:type\s+)?(\{[\s\S]*?\}|\*\s+as\s+\w+|\w+(?:\s*,\s*\{[\s\S]*?\})?)\s+from\s+['"]([^'"]+)['"]/g;
53
+ let match;
54
+ while ((match = importRegex.exec(source)) !== null) {
55
+ const fullMatch = match[0];
56
+ match[1];
57
+ const importPath = match[2];
58
+ // Skip type-only imports
59
+ if (fullMatch.match(/^import\s+type\s+/)) {
60
+ continue;
61
+ }
62
+ // Skip if it's a mixed import with only types
63
+ if (!hasRuntimeImports(fullMatch)) {
64
+ continue;
65
+ }
66
+ if (importPath && !seenPaths.has(importPath)) {
67
+ seenPaths.add(importPath);
68
+ imports.push({
69
+ path: importPath,
70
+ originalLine: fullMatch,
71
+ });
72
+ }
73
+ }
74
+ // Pattern 1b: Side-effect imports - import "path"
75
+ const sideEffectRegex = /import\s+['"]([^'"]+)['"]/g;
76
+ while ((match = sideEffectRegex.exec(source)) !== null) {
77
+ const importPath = match[1];
78
+ if (importPath && !seenPaths.has(importPath)) {
79
+ seenPaths.add(importPath);
80
+ imports.push({
81
+ path: importPath,
82
+ originalLine: match[0],
83
+ });
84
+ }
85
+ }
86
+ // Pattern 2: Dynamic imports - import("path")
87
+ const dynamicImportPattern = /import\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
88
+ while ((match = dynamicImportPattern.exec(source)) !== null) {
89
+ const importPath = match[1];
90
+ if (importPath && !seenPaths.has(importPath)) {
91
+ seenPaths.add(importPath);
92
+ imports.push({
93
+ path: importPath,
94
+ originalLine: match[0],
95
+ });
96
+ }
97
+ }
98
+ // Pattern 3: Export from - export ... from "path"
99
+ // Skip export type statements (e.g., export type { Foo } from "module")
100
+ const exportFromPattern = /export\s+(?:\{[^}]*\}|\*|\w+)\s+from\s+['"]([^'"]+)['"]/g;
101
+ while ((match = exportFromPattern.exec(source)) !== null) {
102
+ const fullMatch = match[0];
103
+ // Skip type-only exports: export type ... from "module"
104
+ if (/^export\s+type\s+/.test(fullMatch)) {
105
+ continue;
106
+ }
107
+ const importPath = match[1];
108
+ if (importPath && !seenPaths.has(importPath)) {
109
+ seenPaths.add(importPath);
110
+ imports.push({
111
+ path: importPath,
112
+ originalLine: fullMatch,
113
+ });
114
+ }
115
+ }
116
+ return imports;
117
+ }
118
+ /**
119
+ * This function will transpile the given ts/tsx code to js code
120
+ * // also it will return the dependencies of the file
121
+ *
122
+ * @returns Map of originalImportPath -> resolvedAbsolutePath
123
+ */
124
+ async function parseImports(source, filePath) {
125
+ try {
126
+ // Skip .d.ts files - they're type declarations, not runtime code
127
+ if (filePath.endsWith(".d.ts")) {
128
+ return new Map();
129
+ }
130
+ // Try es-module-lexer first (faster and more accurate for simple cases)
131
+ try {
132
+ const [imports] = await esModuleLexer.parse(source);
133
+ if (imports && imports.length > 0) {
134
+ return await resolveImports(imports, filePath);
135
+ }
136
+ }
137
+ catch (lexerError) {
138
+ // es-module-lexer failed, fall back to regex-based extraction
139
+ // This is common with TypeScript files that have complex syntax
140
+ }
141
+ // Fallback: Use regex-based extraction (more forgiving with TypeScript)
142
+ const regexImports = extractImportPathsWithRegex(source);
143
+ const resolvedImports = new Map();
144
+ for (const { path: importPath } of regexImports) {
145
+ // Skip node built-ins and external packages
146
+ if (isNodeBuiltin(importPath)) {
147
+ continue;
148
+ }
149
+ // Skip external node_modules packages (not starting with . or alias)
150
+ if (!importPath.startsWith(".") && !tsconfigManager.tsconfigManager.isAlias(importPath)) {
151
+ continue;
152
+ }
153
+ let resolvedPath = null;
154
+ // Handle alias imports
155
+ if (tsconfigManager.tsconfigManager.isAlias(importPath)) {
156
+ resolvedPath = await resolveAliasImport(importPath);
157
+ }
158
+ else if (importPath.startsWith(".")) {
159
+ // Handle relative imports
160
+ resolvedPath = await resolveRelativeImport(importPath, filePath);
161
+ }
162
+ if (resolvedPath) {
163
+ resolvedImports.set(importPath, resolvedPath);
164
+ }
165
+ }
166
+ return resolvedImports;
167
+ }
168
+ catch (error) {
169
+ console.error(`Error parsing imports for ${filePath}:`, error);
170
+ return new Map();
171
+ }
172
+ }
173
+ async function resolveImports(imports, filePath) {
174
+ const resolvedImports = new Map();
175
+ for (const imp of imports) {
176
+ const importPath = imp.n;
177
+ if (!importPath)
178
+ continue;
179
+ // Skip node built-ins and external packages
180
+ if (isNodeBuiltin(importPath)) {
181
+ continue;
182
+ }
183
+ // Skip external node_modules packages (not starting with . or alias)
184
+ if (!importPath.startsWith(".") && !tsconfigManager.tsconfigManager.isAlias(importPath)) {
185
+ continue;
186
+ }
187
+ let resolvedPath = null;
188
+ // Handle alias imports (e.g., app/users/services/get-users.service)
189
+ if (tsconfigManager.tsconfigManager.isAlias(importPath)) {
190
+ resolvedPath = await resolveAliasImport(importPath);
191
+ }
192
+ else if (importPath.startsWith(".")) {
193
+ // Handle relative imports (e.g., ./../services/get-user.service)
194
+ resolvedPath = await resolveRelativeImport(importPath, filePath);
195
+ }
196
+ if (resolvedPath) {
197
+ // Store mapping: original import path -> resolved absolute path
198
+ resolvedImports.set(importPath, resolvedPath);
199
+ }
200
+ }
201
+ return resolvedImports;
202
+ }
203
+ /**
204
+ * Resolve alias imports to actual file paths with extensions
205
+ * Example: app/users/services/get-users.service -> /absolute/path/to/src/app/users/services/get-users.service.ts
206
+ */
207
+ async function resolveAliasImport(importPath) {
208
+ // Use tsconfig manager to resolve the alias to an absolute path
209
+ const resolvedBase = tsconfigManager.tsconfigManager.resolveAliasToAbsolute(importPath);
210
+ if (!resolvedBase)
211
+ return null;
212
+ // Try to resolve with extensions
213
+ const resolvedPath = await tryResolveWithExtensions(resolvedBase);
214
+ return resolvedPath;
215
+ }
216
+ /**
217
+ * Resolve relative imports to actual file paths
218
+ * Example: ./../services/get-user.service -> /absolute/path/to/services/get-user.service.ts
219
+ */
220
+ async function resolveRelativeImport(importPath, currentFilePath) {
221
+ const dir = path__default.default.dirname(currentFilePath);
222
+ // Use path.resolve to handle .. and . properly, then normalize to forward slashes
223
+ const resolvedBase = path$1.Path.normalize(path__default.default.resolve(dir, importPath));
224
+ // Try to resolve with extensions
225
+ const resolvedPath = await tryResolveWithExtensions(resolvedBase);
226
+ return resolvedPath;
227
+ }
228
+ /**
229
+ * Try to resolve a file path by checking different extensions
230
+ * TypeScript/JavaScript files can be imported without extensions
231
+ *
232
+ * @TODO: For better performance, we need to check the files in files orchestrator
233
+ * instead of using the file system as we will be fetching all project files anyway.
234
+ */
235
+ // Cache for file existence checks to avoid redundant filesystem calls
236
+ const fileExistsCache = new Map();
237
+ async function cachedFileExists(filePath) {
238
+ if (fileExistsCache.has(filePath)) {
239
+ return fileExistsCache.get(filePath);
240
+ }
241
+ const exists = await fs.fileExistsAsync(filePath);
242
+ fileExistsCache.set(filePath, exists);
243
+ return exists;
244
+ }
245
+ async function tryResolveWithExtensions(basePath) {
246
+ // Normalize the base path first (handle Windows paths)
247
+ const normalizedBase = path$1.Path.normalize(basePath);
248
+ // List of extensions to try, in order of preference
249
+ const extensions = [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"];
250
+ const validExtensions = new Set(extensions);
251
+ // If the path already has a VALID code file extension, check if it exists
252
+ const ext = path__default.default.extname(normalizedBase);
253
+ if (ext && validExtensions.has(ext)) {
254
+ if (await cachedFileExists(normalizedBase)) {
255
+ return normalizedBase;
256
+ }
257
+ // If explicit extension doesn't exist, return null
258
+ return null;
259
+ }
260
+ // Try all extensions in parallel for better performance
261
+ const pathsToCheck = extensions.map(extension => normalizedBase + extension);
262
+ const results = await Promise.all(pathsToCheck.map(async (p) => ({ path: p, exists: await cachedFileExists(p) })));
263
+ // Return the first one that exists (in order of preference)
264
+ for (const result of results) {
265
+ if (result.exists) {
266
+ return result.path;
267
+ }
268
+ }
269
+ // Try index files in directory
270
+ if (await fs.isDirectoryAsync(normalizedBase)) {
271
+ const indexPaths = extensions.map(extension => path$1.Path.join(normalizedBase, `index${extension}`));
272
+ const indexResults = await Promise.all(indexPaths.map(async (p) => ({ path: p, exists: await cachedFileExists(p) })));
273
+ for (const result of indexResults) {
274
+ if (result.exists) {
275
+ return result.path;
276
+ }
277
+ }
278
+ }
279
+ return null;
280
+ }
281
+ /**
282
+ * Check if import is a Node.js built-in module
283
+ */
284
+ function isNodeBuiltin(importPath) {
285
+ const builtins = [
286
+ "fs",
287
+ "path",
288
+ "http",
289
+ "https",
290
+ "crypto",
291
+ "stream",
292
+ "util",
293
+ "events",
294
+ "buffer",
295
+ "child_process",
296
+ "os",
297
+ "url",
298
+ "querystring",
299
+ "zlib",
300
+ "net",
301
+ "tls",
302
+ "dns",
303
+ "dgram",
304
+ "cluster",
305
+ "worker_threads",
306
+ "perf_hooks",
307
+ "async_hooks",
308
+ "timers",
309
+ "readline",
310
+ "repl",
311
+ "vm",
312
+ "assert",
313
+ "console",
314
+ "process",
315
+ "v8",
316
+ ];
317
+ // Check for node: prefix or direct builtin name
318
+ if (importPath.startsWith("node:"))
319
+ return true;
320
+ const moduleName = importPath.split("/")[0];
321
+ return builtins.includes(moduleName);
322
+ }exports.parseImports=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":["parse","tsconfigManager","path","Path","fileExistsAsync","isDirectoryAsync"],"mappings":"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"}