@warlock.js/core 4.0.135 → 4.0.137

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 (521) hide show
  1. package/esm/benchmark/benchmark-snapshots.d.ts +47 -0
  2. package/esm/benchmark/benchmark-snapshots.d.ts.map +1 -0
  3. package/esm/benchmark/benchmark-snapshots.js +77 -0
  4. package/esm/benchmark/benchmark-snapshots.js.map +1 -0
  5. package/esm/benchmark/benchmark.d.ts +25 -0
  6. package/esm/benchmark/benchmark.d.ts.map +1 -0
  7. package/esm/benchmark/benchmark.example.d.ts +2 -0
  8. package/esm/benchmark/benchmark.example.d.ts.map +1 -0
  9. package/esm/benchmark/benchmark.js +120 -0
  10. package/esm/benchmark/benchmark.js.map +1 -0
  11. package/esm/benchmark/channels/console.channel.d.ts +14 -0
  12. package/esm/benchmark/channels/console.channel.d.ts.map +1 -0
  13. package/esm/benchmark/channels/console.channel.js +29 -0
  14. package/esm/benchmark/channels/console.channel.js.map +1 -0
  15. package/esm/benchmark/channels/index.d.ts +3 -0
  16. package/esm/benchmark/channels/index.d.ts.map +1 -0
  17. package/esm/benchmark/channels/noop.channel.d.ts +5 -0
  18. package/esm/benchmark/channels/noop.channel.d.ts.map +1 -0
  19. package/esm/benchmark/channels/noop.channel.js +3 -0
  20. package/esm/benchmark/channels/noop.channel.js.map +1 -0
  21. package/esm/benchmark/index.d.ts +7 -0
  22. package/esm/benchmark/index.d.ts.map +1 -0
  23. package/esm/benchmark/profiler.d.ts +63 -0
  24. package/esm/benchmark/profiler.d.ts.map +1 -0
  25. package/esm/benchmark/profiler.js +155 -0
  26. package/esm/benchmark/profiler.js.map +1 -0
  27. package/esm/benchmark/types.d.ts +167 -0
  28. package/esm/benchmark/types.d.ts.map +1 -0
  29. package/esm/cli/cli-commands.manager.js +1 -1
  30. package/esm/cli/cli-commands.manager.js.map +1 -1
  31. package/esm/cli/commands/dev-server.command.js +1 -1
  32. package/esm/cli/commands/dev-server.command.js.map +1 -1
  33. package/esm/cli/commands/drop-tables.command.d.ts +2 -0
  34. package/esm/cli/commands/drop-tables.command.d.ts.map +1 -0
  35. package/esm/cli/commands/drop-tables.command.js +17 -0
  36. package/esm/cli/commands/drop-tables.command.js.map +1 -0
  37. package/esm/cli/commands/generate/generate.command.d.ts.map +1 -1
  38. package/esm/cli/commands/generate/generate.command.js +1 -0
  39. package/esm/cli/commands/generate/generate.command.js.map +1 -1
  40. package/esm/cli/commands/generate/generators/controller.generator.js +6 -6
  41. package/esm/cli/commands/generate/generators/controller.generator.js.map +1 -1
  42. package/esm/cli/commands/generate/generators/module.generator.d.ts.map +1 -1
  43. package/esm/cli/commands/generate/generators/module.generator.js +6 -5
  44. package/esm/cli/commands/generate/generators/module.generator.js.map +1 -1
  45. package/esm/cli/commands/generate/generators/validation.generator.js +11 -11
  46. package/esm/cli/commands/generate/generators/validation.generator.js.map +1 -1
  47. package/esm/cli/commands/generate/templates/stubs.d.ts +6 -3
  48. package/esm/cli/commands/generate/templates/stubs.d.ts.map +1 -1
  49. package/esm/cli/commands/generate/templates/stubs.js +37 -25
  50. package/esm/cli/commands/generate/templates/stubs.js.map +1 -1
  51. package/esm/cli/commands/generate/utils/prompt.js +21 -0
  52. package/esm/cli/commands/generate/utils/prompt.js.map +1 -0
  53. package/esm/cli/commands/seed.command.d.ts.map +1 -1
  54. package/esm/cli/commands/seed.command.js +9 -2
  55. package/esm/cli/commands/seed.command.js.map +1 -1
  56. package/esm/cli/commands/storage-put.action.d.ts +22 -0
  57. package/esm/cli/commands/storage-put.action.d.ts.map +1 -0
  58. package/esm/cli/commands/storage-put.action.js +75 -0
  59. package/esm/cli/commands/storage-put.action.js.map +1 -0
  60. package/esm/cli/commands/storage-put.command.d.ts +20 -0
  61. package/esm/cli/commands/storage-put.command.d.ts.map +1 -0
  62. package/esm/cli/commands/storage-put.command.js +41 -0
  63. package/esm/cli/commands/storage-put.command.js.map +1 -0
  64. package/esm/cli/commands/typings-generator.command.js +1 -1
  65. package/esm/cli/commands/typings-generator.command.js.map +1 -1
  66. package/esm/cli/commands-loader.js +1 -1
  67. package/esm/cli/commands-loader.js.map +1 -1
  68. package/esm/cli/framework-cli-commands.d.ts.map +1 -1
  69. package/esm/cli/framework-cli-commands.js +7 -2
  70. package/esm/cli/framework-cli-commands.js.map +1 -1
  71. package/esm/cli/types.d.ts +1 -1
  72. package/esm/cli/types.d.ts.map +1 -1
  73. package/esm/config/config-getter.d.ts +1 -1
  74. package/esm/config/config-getter.d.ts.map +1 -1
  75. package/esm/config/config-getter.js.map +1 -1
  76. package/esm/config/config-loader.d.ts +1 -1
  77. package/esm/config/config-loader.d.ts.map +1 -1
  78. package/esm/config/config-loader.js +1 -1
  79. package/esm/config/config-loader.js.map +1 -1
  80. package/esm/config/config-manager.d.ts +1 -1
  81. package/esm/config/config-manager.d.ts.map +1 -1
  82. package/esm/config/load-config-files.d.ts.map +1 -1
  83. package/esm/config/load-config-files.js +1 -1
  84. package/esm/config/load-config-files.js.map +1 -1
  85. package/esm/connectors/base-connector.d.ts.map +1 -0
  86. package/esm/{dev2-server/connectors → connectors}/base-connector.js +1 -1
  87. package/esm/connectors/base-connector.js.map +1 -0
  88. package/esm/connectors/cache-connector.d.ts.map +1 -0
  89. package/esm/connectors/cache-connector.js.map +1 -0
  90. package/esm/connectors/communicator-connector.d.ts.map +1 -0
  91. package/esm/connectors/communicator-connector.js.map +1 -0
  92. package/esm/connectors/connectors-manager.d.ts.map +1 -0
  93. package/esm/{dev2-server/connectors → connectors}/connectors-manager.js +1 -1
  94. package/esm/connectors/connectors-manager.js.map +1 -0
  95. package/esm/connectors/database-connector.d.ts.map +1 -0
  96. package/esm/connectors/database-connector.js.map +1 -0
  97. package/esm/{dev2-server/connectors → connectors}/http-connector.d.ts +2 -0
  98. package/esm/connectors/http-connector.d.ts.map +1 -0
  99. package/esm/{dev2-server/connectors → connectors}/http-connector.js +18 -4
  100. package/esm/connectors/http-connector.js.map +1 -0
  101. package/esm/connectors/index.d.ts.map +1 -0
  102. package/esm/connectors/storage.connector.d.ts.map +1 -0
  103. package/esm/{dev2-server/connectors → connectors}/storage.connector.js +1 -1
  104. package/esm/connectors/storage.connector.js.map +1 -0
  105. package/esm/connectors/types.d.ts.map +1 -0
  106. package/esm/connectors/types.js.map +1 -0
  107. package/esm/database/drop-tables-action.d.ts +3 -0
  108. package/esm/database/drop-tables-action.d.ts.map +1 -0
  109. package/esm/database/drop-tables-action.js +29 -0
  110. package/esm/database/drop-tables-action.js.map +1 -0
  111. package/esm/database/migrate-action.js +18 -10
  112. package/esm/database/migrate-action.js.map +1 -1
  113. package/esm/database/seed-command-action.js +4 -4
  114. package/esm/database/seed-command-action.js.map +1 -1
  115. package/esm/database/seeds/seeder.d.ts +4 -0
  116. package/esm/database/seeds/seeder.d.ts.map +1 -1
  117. package/esm/database/seeds/seeder.js.map +1 -1
  118. package/esm/database/seeds/seeders.manager.d.ts +1 -1
  119. package/esm/database/seeds/seeders.manager.d.ts.map +1 -1
  120. package/esm/database/seeds/seeders.manager.js +12 -5
  121. package/esm/database/seeds/seeders.manager.js.map +1 -1
  122. package/esm/database/utils.d.ts +1 -2
  123. package/esm/database/utils.d.ts.map +1 -1
  124. package/esm/database/utils.js +2 -2
  125. package/esm/database/utils.js.map +1 -1
  126. package/esm/dev-server/create-worker.d.ts.map +1 -0
  127. package/esm/dev-server/create-worker.js.map +1 -0
  128. package/esm/{dev2-server → dev-server}/dependency-graph.d.ts +10 -1
  129. package/esm/dev-server/dependency-graph.d.ts.map +1 -0
  130. package/esm/{dev2-server → dev-server}/dependency-graph.js +49 -5
  131. package/esm/dev-server/dependency-graph.js.map +1 -0
  132. package/esm/dev-server/dev-logger.d.ts.map +1 -0
  133. package/esm/dev-server/dev-logger.js.map +1 -0
  134. package/esm/{dev2-server → dev-server}/development-server.d.ts +8 -0
  135. package/esm/dev-server/development-server.d.ts.map +1 -0
  136. package/esm/{dev2-server → dev-server}/development-server.js +57 -7
  137. package/esm/dev-server/development-server.js.map +1 -0
  138. package/esm/dev-server/events.d.ts.map +1 -0
  139. package/esm/dev-server/events.js.map +1 -0
  140. package/esm/dev-server/export-analyzer.d.ts.map +1 -0
  141. package/esm/dev-server/export-analyzer.js.map +1 -0
  142. package/esm/dev-server/file-event-handler.d.ts.map +1 -0
  143. package/esm/{dev2-server → dev-server}/file-event-handler.js +13 -4
  144. package/esm/dev-server/file-event-handler.js.map +1 -0
  145. package/esm/{dev2-server → dev-server}/file-manager.d.ts +10 -1
  146. package/esm/dev-server/file-manager.d.ts.map +1 -0
  147. package/esm/{dev2-server → dev-server}/file-manager.js +26 -3
  148. package/esm/dev-server/file-manager.js.map +1 -0
  149. package/esm/dev-server/file-operations.d.ts.map +1 -0
  150. package/esm/dev-server/file-operations.js.map +1 -0
  151. package/esm/{dev2-server → dev-server}/files-orchestrator.d.ts +7 -1
  152. package/esm/dev-server/files-orchestrator.d.ts.map +1 -0
  153. package/esm/{dev2-server → dev-server}/files-orchestrator.js +39 -8
  154. package/esm/dev-server/files-orchestrator.js.map +1 -0
  155. package/esm/dev-server/files-watcher.d.ts.map +1 -0
  156. package/esm/{dev2-server → dev-server}/files-watcher.js +30 -4
  157. package/esm/dev-server/files-watcher.js.map +1 -0
  158. package/esm/dev-server/flags.d.ts.map +1 -0
  159. package/esm/dev-server/flags.js.map +1 -0
  160. package/esm/dev-server/health-checker/checkers/base-health-checker.d.ts.map +1 -0
  161. package/esm/dev-server/health-checker/checkers/base-health-checker.js.map +1 -0
  162. package/esm/dev-server/health-checker/checkers/eslint-health-checker.d.ts.map +1 -0
  163. package/esm/dev-server/health-checker/checkers/eslint-health-checker.js.map +1 -0
  164. package/esm/dev-server/health-checker/checkers/typescript-health-checker.d.ts.map +1 -0
  165. package/esm/dev-server/health-checker/checkers/typescript-health-checker.js.map +1 -0
  166. package/esm/dev-server/health-checker/file-health-checker.contract.d.ts.map +1 -0
  167. package/esm/dev-server/health-checker/file-health-result.d.ts.map +1 -0
  168. package/esm/dev-server/health-checker/file-health-result.js.map +1 -0
  169. package/esm/dev-server/health-checker/files-healthcare.manager.d.ts.map +1 -0
  170. package/esm/dev-server/health-checker/files-healthcare.manager.js.map +1 -0
  171. package/esm/dev-server/health-checker/index.d.ts.map +1 -0
  172. package/esm/dev-server/health-checker/workers/eslint-health.worker.d.ts.map +1 -0
  173. package/esm/dev-server/health-checker/workers/eslint-health.worker.js.map +1 -0
  174. package/esm/dev-server/health-checker/workers/ts-health.worker.d.ts.map +1 -0
  175. package/esm/dev-server/health-checker/workers/ts-health.worker.js.map +1 -0
  176. package/esm/dev-server/import-deduplicator.d.ts +75 -0
  177. package/esm/dev-server/import-deduplicator.d.ts.map +1 -0
  178. package/esm/dev-server/import-deduplicator.js +288 -0
  179. package/esm/dev-server/import-deduplicator.js.map +1 -0
  180. package/esm/dev-server/import-deduplicator.test.d.ts +7 -0
  181. package/esm/dev-server/import-deduplicator.test.d.ts.map +1 -0
  182. package/esm/dev-server/import-transformer.d.ts.map +1 -0
  183. package/esm/{dev2-server → dev-server}/import-transformer.js +61 -129
  184. package/esm/dev-server/import-transformer.js.map +1 -0
  185. package/esm/{dev2-server → dev-server}/index.d.ts.map +1 -1
  186. package/esm/{dev2-server → dev-server}/layer-executor.d.ts +5 -2
  187. package/esm/dev-server/layer-executor.d.ts.map +1 -0
  188. package/esm/{dev2-server → dev-server}/layer-executor.js +34 -9
  189. package/esm/dev-server/layer-executor.js.map +1 -0
  190. package/esm/dev-server/manifest-manager.d.ts.map +1 -0
  191. package/esm/dev-server/manifest-manager.js.map +1 -0
  192. package/esm/{dev2-server → dev-server}/module-loader.d.ts +3 -0
  193. package/esm/dev-server/module-loader.d.ts.map +1 -0
  194. package/esm/{dev2-server → dev-server}/module-loader.js +9 -5
  195. package/esm/dev-server/module-loader.js.map +1 -0
  196. package/esm/dev-server/package-json-manager.d.ts.map +1 -0
  197. package/esm/dev-server/package-json-manager.js.map +1 -0
  198. package/esm/dev-server/parse-imports.d.ts +34 -0
  199. package/esm/dev-server/parse-imports.d.ts.map +1 -0
  200. package/esm/{dev2-server → dev-server}/parse-imports.js +98 -1
  201. package/esm/dev-server/parse-imports.js.map +1 -0
  202. package/esm/dev-server/path.d.ts.map +1 -0
  203. package/esm/dev-server/path.js.map +1 -0
  204. package/esm/dev-server/runtime-import-helper.d.ts.map +1 -0
  205. package/esm/{dev2-server → dev-server}/runtime-import-helper.js +3 -3
  206. package/esm/dev-server/runtime-import-helper.js.map +1 -0
  207. package/esm/dev-server/special-files-collector.d.ts.map +1 -0
  208. package/esm/dev-server/special-files-collector.js.map +1 -0
  209. package/esm/dev-server/start-development-server.d.ts.map +1 -0
  210. package/esm/dev-server/start-development-server.js.map +1 -0
  211. package/esm/dev-server/transpile-file.d.ts.map +1 -0
  212. package/esm/dev-server/transpile-file.js.map +1 -0
  213. package/esm/dev-server/tsconfig-manager.d.ts.map +1 -0
  214. package/esm/dev-server/tsconfig-manager.js.map +1 -0
  215. package/esm/dev-server/type-generator.d.ts.map +1 -0
  216. package/esm/dev-server/type-generator.js.map +1 -0
  217. package/esm/dev-server/types.d.ts.map +1 -0
  218. package/esm/dev-server/utils.d.ts.map +1 -0
  219. package/esm/{dev2-server → dev-server}/utils.js +2 -1
  220. package/esm/dev-server/utils.js.map +1 -0
  221. package/esm/encryption/encrypt.d.ts +23 -0
  222. package/esm/encryption/encrypt.d.ts.map +1 -0
  223. package/esm/encryption/encrypt.js +85 -0
  224. package/esm/encryption/encrypt.js.map +1 -0
  225. package/esm/encryption/hash.d.ts +17 -0
  226. package/esm/encryption/hash.d.ts.map +1 -0
  227. package/esm/encryption/hash.js +26 -0
  228. package/esm/encryption/hash.js.map +1 -0
  229. package/esm/encryption/index.d.ts +5 -0
  230. package/esm/encryption/index.d.ts.map +1 -0
  231. package/esm/encryption/password.d.ts +23 -0
  232. package/esm/encryption/password.d.ts.map +1 -0
  233. package/esm/encryption/password.js +72 -0
  234. package/esm/encryption/password.js.map +1 -0
  235. package/esm/encryption/types.d.ts +51 -0
  236. package/esm/encryption/types.d.ts.map +1 -0
  237. package/esm/generations/add-command.action.d.ts.map +1 -1
  238. package/esm/generations/add-command.action.js +44 -15
  239. package/esm/generations/add-command.action.js.map +1 -1
  240. package/esm/http/middleware/inject-request-context.d.ts.map +1 -1
  241. package/esm/http/middleware/inject-request-context.js +3 -1
  242. package/esm/http/middleware/inject-request-context.js.map +1 -1
  243. package/esm/http/request.d.ts +9 -1
  244. package/esm/http/request.d.ts.map +1 -1
  245. package/esm/http/request.js +11 -1
  246. package/esm/http/request.js.map +1 -1
  247. package/esm/http/response.d.ts.map +1 -1
  248. package/esm/http/response.js +54 -16
  249. package/esm/http/response.js.map +1 -1
  250. package/esm/http/types.d.ts +14 -6
  251. package/esm/http/types.d.ts.map +1 -1
  252. package/esm/http/uploaded-file.js +1 -1
  253. package/esm/index.d.ts +7 -3
  254. package/esm/index.d.ts.map +1 -1
  255. package/esm/index.js +1 -1
  256. package/esm/mail/mailer-pool.js +11 -11
  257. package/esm/mail/send-mail.js +1 -1
  258. package/esm/mail/send-mail.js.map +1 -1
  259. package/esm/production/production-builder.js +1 -1
  260. package/esm/repositories/adapters/cascade/cascade-adapter.js +2 -2
  261. package/esm/repositories/adapters/cascade/cascade-adapter.js.map +1 -1
  262. package/esm/repositories/adapters/cascade/cascade-query-builder.d.ts +17 -0
  263. package/esm/repositories/adapters/cascade/cascade-query-builder.d.ts.map +1 -1
  264. package/esm/repositories/adapters/cascade/cascade-query-builder.js +39 -25
  265. package/esm/repositories/adapters/cascade/cascade-query-builder.js.map +1 -1
  266. package/esm/repositories/adapters/cascade/filter-applicator.d.ts +49 -0
  267. package/esm/repositories/adapters/cascade/filter-applicator.d.ts.map +1 -1
  268. package/esm/repositories/adapters/cascade/filter-applicator.js +99 -0
  269. package/esm/repositories/adapters/cascade/filter-applicator.js.map +1 -1
  270. package/esm/repositories/contracts/query-builder.contract.d.ts +41 -0
  271. package/esm/repositories/contracts/query-builder.contract.d.ts.map +1 -1
  272. package/esm/repositories/contracts/types.d.ts +56 -6
  273. package/esm/repositories/contracts/types.d.ts.map +1 -1
  274. package/esm/repositories/repository.manager.d.ts +93 -48
  275. package/esm/repositories/repository.manager.d.ts.map +1 -1
  276. package/esm/repositories/repository.manager.js +139 -50
  277. package/esm/repositories/repository.manager.js.map +1 -1
  278. package/esm/resource/resource-field-builder.d.ts.map +1 -1
  279. package/esm/resource/resource-field-builder.js +18 -4
  280. package/esm/resource/resource-field-builder.js.map +1 -1
  281. package/esm/resource/resource.d.ts +23 -1
  282. package/esm/resource/resource.d.ts.map +1 -1
  283. package/esm/resource/resource.js +56 -3
  284. package/esm/resource/resource.js.map +1 -1
  285. package/esm/resource/types.d.ts +12 -2
  286. package/esm/resource/types.d.ts.map +1 -1
  287. package/esm/restful/restful.js +1 -1
  288. package/esm/restful/restful.js.map +1 -1
  289. package/esm/retry/index.d.ts +3 -0
  290. package/esm/retry/index.d.ts.map +1 -0
  291. package/esm/retry/retry.d.ts +21 -0
  292. package/esm/retry/retry.d.ts.map +1 -0
  293. package/esm/retry/retry.js +39 -0
  294. package/esm/retry/retry.js.map +1 -0
  295. package/esm/retry/types.d.ts +27 -0
  296. package/esm/retry/types.d.ts.map +1 -0
  297. package/esm/router/types.d.ts +10 -10
  298. package/esm/router/types.d.ts.map +1 -1
  299. package/esm/storage/scoped-storage.d.ts +34 -1
  300. package/esm/storage/scoped-storage.d.ts.map +1 -1
  301. package/esm/storage/scoped-storage.js +84 -1
  302. package/esm/storage/scoped-storage.js.map +1 -1
  303. package/esm/storage/types.d.ts +53 -0
  304. package/esm/storage/types.d.ts.map +1 -1
  305. package/esm/tests/index.d.ts +1 -0
  306. package/esm/tests/index.d.ts.map +1 -1
  307. package/esm/tests/start-http-development-server.d.ts +12 -0
  308. package/esm/tests/start-http-development-server.d.ts.map +1 -1
  309. package/esm/tests/start-http-development-server.js +66 -6
  310. package/esm/tests/start-http-development-server.js.map +1 -1
  311. package/esm/tests/test-helpers.d.ts +43 -0
  312. package/esm/tests/test-helpers.d.ts.map +1 -0
  313. package/esm/tests/test-helpers.js +86 -0
  314. package/esm/tests/test-helpers.js.map +1 -0
  315. package/esm/tests/vitest-setup.d.ts +1 -1
  316. package/esm/tests/vitest-setup.d.ts.map +1 -1
  317. package/esm/tests/vitest-setup.js +1 -1
  318. package/esm/tests/vitest-setup.js.map +1 -1
  319. package/esm/use-cases/index.d.ts +7 -0
  320. package/esm/use-cases/index.d.ts.map +1 -0
  321. package/esm/use-cases/types.d.ts +267 -0
  322. package/esm/use-cases/types.d.ts.map +1 -0
  323. package/esm/use-cases/use-case-events.d.ts +33 -0
  324. package/esm/use-cases/use-case-events.d.ts.map +1 -0
  325. package/esm/use-cases/use-case-events.js +65 -0
  326. package/esm/use-cases/use-case-events.js.map +1 -0
  327. package/esm/use-cases/use-case-pipeline.d.ts +29 -0
  328. package/esm/use-cases/use-case-pipeline.d.ts.map +1 -0
  329. package/esm/use-cases/use-case-pipeline.js +45 -0
  330. package/esm/use-cases/use-case-pipeline.js.map +1 -0
  331. package/esm/use-cases/use-case.d.ts +27 -0
  332. package/esm/use-cases/use-case.d.ts.map +1 -0
  333. package/esm/use-cases/use-case.errors.d.ts +6 -0
  334. package/esm/use-cases/use-case.errors.d.ts.map +1 -0
  335. package/esm/use-cases/use-case.errors.js +8 -0
  336. package/esm/use-cases/use-case.errors.js.map +1 -0
  337. package/esm/use-cases/use-case.js +138 -0
  338. package/esm/use-cases/use-case.js.map +1 -0
  339. package/esm/use-cases/use-cases-registry.d.ts +38 -0
  340. package/esm/use-cases/use-cases-registry.d.ts.map +1 -0
  341. package/esm/use-cases/use-cases-registry.js +92 -0
  342. package/esm/use-cases/use-cases-registry.js.map +1 -0
  343. package/esm/validation/database/exists-except-current-id.js +1 -1
  344. package/esm/validation/database/exists-except-current-user.js +1 -1
  345. package/esm/validation/database/unique-except-current-id.js +1 -1
  346. package/esm/validation/database/unique-except-current-user.js +1 -1
  347. package/esm/validation/init.js.map +1 -1
  348. package/esm/validation/plugins/database-plugin.d.ts.map +1 -1
  349. package/esm/validation/plugins/database-plugin.js +18 -30
  350. package/esm/validation/plugins/database-plugin.js.map +1 -1
  351. package/esm/validation/plugins/file-plugin.d.ts.map +1 -1
  352. package/esm/validation/plugins/file-plugin.js.map +1 -1
  353. package/esm/validation/plugins/localized-plugin.d.ts.map +1 -1
  354. package/esm/validation/plugins/localized-plugin.js.map +1 -1
  355. package/esm/validation/validators/file-validator.d.ts +14 -14
  356. package/esm/validation/validators/file-validator.d.ts.map +1 -1
  357. package/esm/validation/validators/file-validator.js +26 -27
  358. package/esm/validation/validators/file-validator.js.map +1 -1
  359. package/esm/warlock-config/types.d.ts +7 -2
  360. package/esm/warlock-config/types.d.ts.map +1 -1
  361. package/esm/warlock-config/warlock-config.manager.js +1 -1
  362. package/esm/warlock-config/warlock-config.manager.js.map +1 -1
  363. package/package.json +7 -7
  364. package/esm/dev2-server/connectors/base-connector.d.ts.map +0 -1
  365. package/esm/dev2-server/connectors/base-connector.js.map +0 -1
  366. package/esm/dev2-server/connectors/cache-connector.d.ts.map +0 -1
  367. package/esm/dev2-server/connectors/cache-connector.js.map +0 -1
  368. package/esm/dev2-server/connectors/communicator-connector.d.ts.map +0 -1
  369. package/esm/dev2-server/connectors/communicator-connector.js.map +0 -1
  370. package/esm/dev2-server/connectors/connectors-manager.d.ts.map +0 -1
  371. package/esm/dev2-server/connectors/connectors-manager.js.map +0 -1
  372. package/esm/dev2-server/connectors/database-connector.d.ts.map +0 -1
  373. package/esm/dev2-server/connectors/database-connector.js.map +0 -1
  374. package/esm/dev2-server/connectors/http-connector.d.ts.map +0 -1
  375. package/esm/dev2-server/connectors/http-connector.js.map +0 -1
  376. package/esm/dev2-server/connectors/index.d.ts.map +0 -1
  377. package/esm/dev2-server/connectors/storage.connector.d.ts.map +0 -1
  378. package/esm/dev2-server/connectors/storage.connector.js.map +0 -1
  379. package/esm/dev2-server/connectors/types.d.ts.map +0 -1
  380. package/esm/dev2-server/connectors/types.js.map +0 -1
  381. package/esm/dev2-server/create-worker.d.ts.map +0 -1
  382. package/esm/dev2-server/create-worker.js.map +0 -1
  383. package/esm/dev2-server/dependency-graph.d.ts.map +0 -1
  384. package/esm/dev2-server/dependency-graph.js.map +0 -1
  385. package/esm/dev2-server/dev-logger.d.ts.map +0 -1
  386. package/esm/dev2-server/dev-logger.js.map +0 -1
  387. package/esm/dev2-server/development-server.d.ts.map +0 -1
  388. package/esm/dev2-server/development-server.js.map +0 -1
  389. package/esm/dev2-server/events.d.ts.map +0 -1
  390. package/esm/dev2-server/events.js.map +0 -1
  391. package/esm/dev2-server/export-analyzer.d.ts.map +0 -1
  392. package/esm/dev2-server/export-analyzer.js.map +0 -1
  393. package/esm/dev2-server/file-event-handler.d.ts.map +0 -1
  394. package/esm/dev2-server/file-event-handler.js.map +0 -1
  395. package/esm/dev2-server/file-manager.d.ts.map +0 -1
  396. package/esm/dev2-server/file-manager.js.map +0 -1
  397. package/esm/dev2-server/file-operations.d.ts.map +0 -1
  398. package/esm/dev2-server/file-operations.js.map +0 -1
  399. package/esm/dev2-server/files-orchestrator.d.ts.map +0 -1
  400. package/esm/dev2-server/files-orchestrator.js.map +0 -1
  401. package/esm/dev2-server/files-watcher.d.ts.map +0 -1
  402. package/esm/dev2-server/files-watcher.js.map +0 -1
  403. package/esm/dev2-server/flags.d.ts.map +0 -1
  404. package/esm/dev2-server/flags.js.map +0 -1
  405. package/esm/dev2-server/health-checker/checkers/base-health-checker.d.ts.map +0 -1
  406. package/esm/dev2-server/health-checker/checkers/base-health-checker.js.map +0 -1
  407. package/esm/dev2-server/health-checker/checkers/eslint-health-checker.d.ts.map +0 -1
  408. package/esm/dev2-server/health-checker/checkers/eslint-health-checker.js.map +0 -1
  409. package/esm/dev2-server/health-checker/checkers/typescript-health-checker.d.ts.map +0 -1
  410. package/esm/dev2-server/health-checker/checkers/typescript-health-checker.js.map +0 -1
  411. package/esm/dev2-server/health-checker/file-health-checker.contract.d.ts.map +0 -1
  412. package/esm/dev2-server/health-checker/file-health-result.d.ts.map +0 -1
  413. package/esm/dev2-server/health-checker/file-health-result.js.map +0 -1
  414. package/esm/dev2-server/health-checker/files-healthcare.manager.d.ts.map +0 -1
  415. package/esm/dev2-server/health-checker/files-healthcare.manager.js.map +0 -1
  416. package/esm/dev2-server/health-checker/index.d.ts.map +0 -1
  417. package/esm/dev2-server/health-checker/workers/eslint-health.worker.d.ts.map +0 -1
  418. package/esm/dev2-server/health-checker/workers/eslint-health.worker.js.map +0 -1
  419. package/esm/dev2-server/health-checker/workers/ts-health.worker.d.ts.map +0 -1
  420. package/esm/dev2-server/health-checker/workers/ts-health.worker.js.map +0 -1
  421. package/esm/dev2-server/import-transformer.d.ts.map +0 -1
  422. package/esm/dev2-server/import-transformer.js.map +0 -1
  423. package/esm/dev2-server/layer-executor.d.ts.map +0 -1
  424. package/esm/dev2-server/layer-executor.js.map +0 -1
  425. package/esm/dev2-server/manifest-manager.d.ts.map +0 -1
  426. package/esm/dev2-server/manifest-manager.js.map +0 -1
  427. package/esm/dev2-server/module-loader.d.ts.map +0 -1
  428. package/esm/dev2-server/module-loader.js.map +0 -1
  429. package/esm/dev2-server/package-json-manager.d.ts.map +0 -1
  430. package/esm/dev2-server/package-json-manager.js.map +0 -1
  431. package/esm/dev2-server/parse-imports.d.ts +0 -13
  432. package/esm/dev2-server/parse-imports.d.ts.map +0 -1
  433. package/esm/dev2-server/parse-imports.js.map +0 -1
  434. package/esm/dev2-server/path.d.ts.map +0 -1
  435. package/esm/dev2-server/path.js.map +0 -1
  436. package/esm/dev2-server/runtime-import-helper.d.ts.map +0 -1
  437. package/esm/dev2-server/runtime-import-helper.js.map +0 -1
  438. package/esm/dev2-server/special-files-collector.d.ts.map +0 -1
  439. package/esm/dev2-server/special-files-collector.js.map +0 -1
  440. package/esm/dev2-server/start-development-server.d.ts.map +0 -1
  441. package/esm/dev2-server/start-development-server.js.map +0 -1
  442. package/esm/dev2-server/transpile-file.d.ts.map +0 -1
  443. package/esm/dev2-server/transpile-file.js.map +0 -1
  444. package/esm/dev2-server/tsconfig-manager.d.ts.map +0 -1
  445. package/esm/dev2-server/tsconfig-manager.js.map +0 -1
  446. package/esm/dev2-server/type-generator.d.ts.map +0 -1
  447. package/esm/dev2-server/type-generator.js.map +0 -1
  448. package/esm/dev2-server/types.d.ts.map +0 -1
  449. package/esm/dev2-server/utils.d.ts.map +0 -1
  450. package/esm/dev2-server/utils.js.map +0 -1
  451. package/esm/http/errors/resource-not-found.error.d.ts +0 -21
  452. package/esm/http/errors/resource-not-found.error.d.ts.map +0 -1
  453. package/esm/router/utils.d.ts +0 -5
  454. package/esm/router/utils.d.ts.map +0 -1
  455. package/esm/store/index.d.ts +0 -25
  456. package/esm/store/index.d.ts.map +0 -1
  457. package/esm/store/index.js +0 -52
  458. package/esm/store/index.js.map +0 -1
  459. /package/esm/{dev2-server/connectors → connectors}/base-connector.d.ts +0 -0
  460. /package/esm/{dev2-server/connectors → connectors}/cache-connector.d.ts +0 -0
  461. /package/esm/{dev2-server/connectors → connectors}/cache-connector.js +0 -0
  462. /package/esm/{dev2-server/connectors → connectors}/communicator-connector.d.ts +0 -0
  463. /package/esm/{dev2-server/connectors → connectors}/communicator-connector.js +0 -0
  464. /package/esm/{dev2-server/connectors → connectors}/connectors-manager.d.ts +0 -0
  465. /package/esm/{dev2-server/connectors → connectors}/database-connector.d.ts +0 -0
  466. /package/esm/{dev2-server/connectors → connectors}/database-connector.js +0 -0
  467. /package/esm/{dev2-server/connectors → connectors}/index.d.ts +0 -0
  468. /package/esm/{dev2-server/connectors → connectors}/storage.connector.d.ts +0 -0
  469. /package/esm/{dev2-server/connectors → connectors}/types.d.ts +0 -0
  470. /package/esm/{dev2-server/connectors → connectors}/types.js +0 -0
  471. /package/esm/{dev2-server → dev-server}/create-worker.d.ts +0 -0
  472. /package/esm/{dev2-server → dev-server}/create-worker.js +0 -0
  473. /package/esm/{dev2-server → dev-server}/dev-logger.d.ts +0 -0
  474. /package/esm/{dev2-server → dev-server}/dev-logger.js +0 -0
  475. /package/esm/{dev2-server → dev-server}/events.d.ts +0 -0
  476. /package/esm/{dev2-server → dev-server}/events.js +0 -0
  477. /package/esm/{dev2-server → dev-server}/export-analyzer.d.ts +0 -0
  478. /package/esm/{dev2-server → dev-server}/export-analyzer.js +0 -0
  479. /package/esm/{dev2-server → dev-server}/file-event-handler.d.ts +0 -0
  480. /package/esm/{dev2-server → dev-server}/file-operations.d.ts +0 -0
  481. /package/esm/{dev2-server → dev-server}/file-operations.js +0 -0
  482. /package/esm/{dev2-server → dev-server}/files-watcher.d.ts +0 -0
  483. /package/esm/{dev2-server → dev-server}/flags.d.ts +0 -0
  484. /package/esm/{dev2-server → dev-server}/flags.js +0 -0
  485. /package/esm/{dev2-server → dev-server}/health-checker/checkers/base-health-checker.d.ts +0 -0
  486. /package/esm/{dev2-server → dev-server}/health-checker/checkers/base-health-checker.js +0 -0
  487. /package/esm/{dev2-server → dev-server}/health-checker/checkers/eslint-health-checker.d.ts +0 -0
  488. /package/esm/{dev2-server → dev-server}/health-checker/checkers/eslint-health-checker.js +0 -0
  489. /package/esm/{dev2-server → dev-server}/health-checker/checkers/typescript-health-checker.d.ts +0 -0
  490. /package/esm/{dev2-server → dev-server}/health-checker/checkers/typescript-health-checker.js +0 -0
  491. /package/esm/{dev2-server → dev-server}/health-checker/file-health-checker.contract.d.ts +0 -0
  492. /package/esm/{dev2-server → dev-server}/health-checker/file-health-result.d.ts +0 -0
  493. /package/esm/{dev2-server → dev-server}/health-checker/file-health-result.js +0 -0
  494. /package/esm/{dev2-server → dev-server}/health-checker/files-healthcare.manager.d.ts +0 -0
  495. /package/esm/{dev2-server → dev-server}/health-checker/files-healthcare.manager.js +0 -0
  496. /package/esm/{dev2-server → dev-server}/health-checker/index.d.ts +0 -0
  497. /package/esm/{dev2-server → dev-server}/health-checker/workers/eslint-health.worker.d.ts +0 -0
  498. /package/esm/{dev2-server → dev-server}/health-checker/workers/eslint-health.worker.js +0 -0
  499. /package/esm/{dev2-server → dev-server}/health-checker/workers/ts-health.worker.d.ts +0 -0
  500. /package/esm/{dev2-server → dev-server}/health-checker/workers/ts-health.worker.js +0 -0
  501. /package/esm/{dev2-server → dev-server}/import-transformer.d.ts +0 -0
  502. /package/esm/{dev2-server → dev-server}/index.d.ts +0 -0
  503. /package/esm/{dev2-server → dev-server}/manifest-manager.d.ts +0 -0
  504. /package/esm/{dev2-server → dev-server}/manifest-manager.js +0 -0
  505. /package/esm/{dev2-server → dev-server}/package-json-manager.d.ts +0 -0
  506. /package/esm/{dev2-server → dev-server}/package-json-manager.js +0 -0
  507. /package/esm/{dev2-server → dev-server}/path.d.ts +0 -0
  508. /package/esm/{dev2-server → dev-server}/path.js +0 -0
  509. /package/esm/{dev2-server → dev-server}/runtime-import-helper.d.ts +0 -0
  510. /package/esm/{dev2-server → dev-server}/special-files-collector.d.ts +0 -0
  511. /package/esm/{dev2-server → dev-server}/special-files-collector.js +0 -0
  512. /package/esm/{dev2-server → dev-server}/start-development-server.d.ts +0 -0
  513. /package/esm/{dev2-server → dev-server}/start-development-server.js +0 -0
  514. /package/esm/{dev2-server → dev-server}/transpile-file.d.ts +0 -0
  515. /package/esm/{dev2-server → dev-server}/transpile-file.js +0 -0
  516. /package/esm/{dev2-server → dev-server}/tsconfig-manager.d.ts +0 -0
  517. /package/esm/{dev2-server → dev-server}/tsconfig-manager.js +0 -0
  518. /package/esm/{dev2-server → dev-server}/type-generator.d.ts +0 -0
  519. /package/esm/{dev2-server → dev-server}/type-generator.js +0 -0
  520. /package/esm/{dev2-server → dev-server}/types.d.ts +0 -0
  521. /package/esm/{dev2-server → dev-server}/utils.d.ts +0 -0
@@ -0,0 +1,288 @@
1
+ /**
2
+ * Import Deduplicator
3
+ *
4
+ * A pure function module for deduplicating and transforming ES6 imports.
5
+ * This module is framework-agnostic and can be tested in isolation.
6
+ *
7
+ * The transformer:
8
+ * 1. Groups imports by resolved module path
9
+ * 2. Consolidates bindings for duplicate imports
10
+ * 3. Creates alias assignments for duplicate bindings
11
+ * 4. Generates optimized __import() calls
12
+ */
13
+ // ============================================================================
14
+ // Regex Patterns
15
+ // ============================================================================
16
+ /**
17
+ * Pattern to match ES6 import statements
18
+ * Handles:
19
+ * - import { a, b } from "module" (named imports, can span multiple lines)
20
+ * - import * as Foo from "module" (namespace imports)
21
+ * - import Foo from "module" (default imports)
22
+ * - import Foo, { a, b } from "module" (mixed imports)
23
+ */
24
+ const IMPORT_REGEX = /import\s+(\{[\s\S]*?\}|\*\s+as\s+\w+|\w+(?:\s*,\s*\{[\s\S]*?\})?)\s+from\s+["']([^"']+)["'];?/gm;
25
+ /**
26
+ * Pattern to match side-effect imports: import "module";
27
+ */
28
+ const SIDE_EFFECT_IMPORT_REGEX = /import\s+["']([^"']+)["'];?/g;
29
+ // ============================================================================
30
+ // Pure Functions
31
+ // ============================================================================
32
+ /**
33
+ * Check if an import path is a relative or absolute path
34
+ */
35
+ function isLocalImport(importPath) {
36
+ return importPath.startsWith(".") || importPath.startsWith("/");
37
+ }
38
+ /**
39
+ * Parse import specifier into bindings
40
+ *
41
+ * @param specifier The import specifier string (e.g., "{ a, b as c }", "* as Foo", "Default")
42
+ * @returns Parsed binding information
43
+ */
44
+ function parseImportSpecifier(specifier) {
45
+ const trimmed = specifier.trim();
46
+ const result = { bindings: [] };
47
+ if (trimmed.startsWith("* as ")) {
48
+ // Namespace import: import * as Foo
49
+ result.namespaceImport = trimmed.replace("* as ", "").trim();
50
+ }
51
+ else if (trimmed.startsWith("{")) {
52
+ // Named imports: import { a, b as c }
53
+ const content = trimmed.match(/\{([\s\S]*?)\}/)?.[1] || "";
54
+ result.bindings = parseNamedImports(content);
55
+ }
56
+ else if (trimmed.match(/^(\w+)\s*,\s*\{/)) {
57
+ // Mixed import: import Foo, { a, b }
58
+ const mixedMatch = trimmed.match(/^(\w+)\s*,\s*\{([\s\S]*?)\}/);
59
+ if (mixedMatch) {
60
+ result.defaultImport = mixedMatch[1];
61
+ result.bindings = parseNamedImports(mixedMatch[2]);
62
+ }
63
+ }
64
+ else {
65
+ // Default import: import Foo
66
+ result.defaultImport = trimmed;
67
+ }
68
+ return result;
69
+ }
70
+ /**
71
+ * Parse named imports content (the part inside braces)
72
+ */
73
+ function parseNamedImports(content) {
74
+ const bindings = [];
75
+ const parts = content
76
+ .split(",")
77
+ .map((s) => s.trim())
78
+ .filter(Boolean);
79
+ for (const part of parts) {
80
+ const asMatch = part.match(/^(\w+)\s+as\s+(\w+)$/);
81
+ if (asMatch) {
82
+ bindings.push({ originalName: asMatch[1], localName: asMatch[2] });
83
+ }
84
+ else {
85
+ bindings.push({ originalName: part, localName: part });
86
+ }
87
+ }
88
+ return bindings;
89
+ }
90
+ /**
91
+ * Merge bindings from a new import into an existing group
92
+ * Returns aliases that need to be created for duplicate bindings
93
+ */
94
+ function mergeBindings(group, newBindings) {
95
+ const aliases = [];
96
+ for (const binding of newBindings) {
97
+ const existing = group.bindings.find((b) => b.originalName === binding.originalName);
98
+ if (existing) {
99
+ // Same original name - check if local names differ
100
+ if (existing.localName !== binding.localName) {
101
+ // Need to create an alias: const newLocal = existingLocal;
102
+ aliases.push(`const ${binding.localName} = ${existing.localName};`);
103
+ }
104
+ // If local names are the same, no action needed (deduplicated)
105
+ }
106
+ else {
107
+ // New binding
108
+ group.bindings.push(binding);
109
+ }
110
+ }
111
+ return aliases;
112
+ }
113
+ /**
114
+ * Build an __import statement for a group of imports
115
+ */
116
+ function buildGroupImportStatement(group) {
117
+ const { cachePath, bindings, namespaceImport, defaultImport } = group;
118
+ if (namespaceImport) {
119
+ return `const ${namespaceImport} = await __import("./${cachePath}")`;
120
+ }
121
+ if (defaultImport && bindings.length > 0) {
122
+ const moduleVar = generateModuleVar();
123
+ const namedDestructure = formatBindings(bindings);
124
+ return `const ${moduleVar} = await __import("./${cachePath}");
125
+ const ${defaultImport} = ${moduleVar}?.default ?? ${moduleVar};
126
+ const { ${namedDestructure} } = ${moduleVar};`;
127
+ }
128
+ if (defaultImport) {
129
+ const moduleVar = generateModuleVar();
130
+ return `const ${moduleVar} = await __import("./${cachePath}");
131
+ const ${defaultImport} = ${moduleVar}?.default ?? ${moduleVar};`;
132
+ }
133
+ if (bindings.length > 0) {
134
+ const namedDestructure = formatBindings(bindings);
135
+ return `const { ${namedDestructure} } = await __import("./${cachePath}")`;
136
+ }
137
+ return `await __import("./${cachePath}")`;
138
+ }
139
+ /**
140
+ * Format bindings for destructuring
141
+ */
142
+ function formatBindings(bindings) {
143
+ return bindings
144
+ .map((b) => b.originalName === b.localName ? b.localName : `${b.originalName}: ${b.localName}`)
145
+ .join(", ");
146
+ }
147
+ /**
148
+ * Generate a unique module variable name
149
+ */
150
+ function generateModuleVar() {
151
+ return `__module_${Math.random().toString(36).slice(2, 8)}`;
152
+ }
153
+ // ============================================================================
154
+ // Main Transform Function
155
+ // ============================================================================
156
+ /**
157
+ * Transform and deduplicate imports in code
158
+ *
159
+ * This is the main pure function that can be tested independently.
160
+ *
161
+ * @param code The transpiled JavaScript code containing ES6 imports
162
+ * @param resolveCachePath Function to resolve an import path to a cache path
163
+ * @param options Additional transform options
164
+ * @returns Transform result with deduplicated code
165
+ */
166
+ function deduplicateImports(code, resolveCachePath, options = {}) {
167
+ const { isAlias = () => false } = options;
168
+ let transformedCode = code;
169
+ const unresolvedImports = [];
170
+ const importGroups = new Map();
171
+ const allAliasAssignments = [];
172
+ // -------------------------------------------------------------------------
173
+ // Phase 1: Collect and group all imports by cache path
174
+ // -------------------------------------------------------------------------
175
+ const importMatches = Array.from(code.matchAll(IMPORT_REGEX));
176
+ for (const match of importMatches) {
177
+ const fullImport = match[0];
178
+ const importSpecifier = match[1];
179
+ const importPath = match[2];
180
+ // Only transform local imports and alias imports
181
+ if (!isLocalImport(importPath) && !isAlias(importPath)) {
182
+ continue;
183
+ }
184
+ const cachePath = resolveCachePath(importPath);
185
+ if (!cachePath) {
186
+ unresolvedImports.push(importPath);
187
+ continue;
188
+ }
189
+ // Get or create the import group for this cache path
190
+ if (!importGroups.has(cachePath)) {
191
+ importGroups.set(cachePath, {
192
+ cachePath,
193
+ bindings: [],
194
+ matches: [],
195
+ });
196
+ }
197
+ const group = importGroups.get(cachePath);
198
+ group.matches.push({ fullImport, index: match.index });
199
+ // Parse and merge bindings
200
+ const parsed = parseImportSpecifier(importSpecifier);
201
+ if (parsed.namespaceImport && !group.namespaceImport) {
202
+ group.namespaceImport = parsed.namespaceImport;
203
+ }
204
+ if (parsed.defaultImport && !group.defaultImport) {
205
+ group.defaultImport = parsed.defaultImport;
206
+ }
207
+ // Merge bindings and collect aliases
208
+ const aliases = mergeBindings(group, parsed.bindings);
209
+ allAliasAssignments.push(...aliases);
210
+ }
211
+ // -------------------------------------------------------------------------
212
+ // Phase 2: Generate deduplicated imports
213
+ // -------------------------------------------------------------------------
214
+ const replacements = [];
215
+ for (const [, group] of importGroups) {
216
+ const sortedMatches = [...group.matches].sort((a, b) => a.index - b.index);
217
+ const primaryMatch = sortedMatches[0];
218
+ // Build consolidated import statement
219
+ const importStatement = buildGroupImportStatement(group);
220
+ // Add the primary replacement
221
+ replacements.push({
222
+ index: primaryMatch.index,
223
+ length: primaryMatch.fullImport.length,
224
+ replacement: importStatement,
225
+ });
226
+ // Remove all duplicate imports
227
+ for (let i = 1; i < sortedMatches.length; i++) {
228
+ const duplicateMatch = sortedMatches[i];
229
+ replacements.push({
230
+ index: duplicateMatch.index,
231
+ length: duplicateMatch.fullImport.length,
232
+ replacement: "",
233
+ });
234
+ }
235
+ }
236
+ // Sort replacements by index descending (to avoid index shifts)
237
+ replacements.sort((a, b) => b.index - a.index);
238
+ // Apply replacements
239
+ for (const r of replacements) {
240
+ transformedCode =
241
+ transformedCode.slice(0, r.index) + r.replacement + transformedCode.slice(r.index + r.length);
242
+ }
243
+ // -------------------------------------------------------------------------
244
+ // Phase 3: Insert alias assignments
245
+ // -------------------------------------------------------------------------
246
+ if (allAliasAssignments.length > 0) {
247
+ // Find the last __import call and insert aliases after it
248
+ const lastImportMatch = transformedCode.match(/.*await __import\([^)]+\)[^\n]*/g);
249
+ if (lastImportMatch) {
250
+ const lastImport = lastImportMatch[lastImportMatch.length - 1];
251
+ const lastImportIndex = transformedCode.lastIndexOf(lastImport);
252
+ const insertPosition = lastImportIndex + lastImport.length;
253
+ transformedCode =
254
+ transformedCode.slice(0, insertPosition) +
255
+ "\n" +
256
+ allAliasAssignments.join("\n") +
257
+ transformedCode.slice(insertPosition);
258
+ }
259
+ }
260
+ // -------------------------------------------------------------------------
261
+ // Phase 4: Transform side-effect imports
262
+ // -------------------------------------------------------------------------
263
+ const sideEffectMatches = Array.from(transformedCode.matchAll(SIDE_EFFECT_IMPORT_REGEX));
264
+ for (let i = sideEffectMatches.length - 1; i >= 0; i--) {
265
+ const match = sideEffectMatches[i];
266
+ const fullImport = match[0];
267
+ const importPath = match[1];
268
+ if (!isLocalImport(importPath) && !isAlias(importPath)) {
269
+ continue;
270
+ }
271
+ const cachePath = resolveCachePath(importPath);
272
+ if (!cachePath) {
273
+ unresolvedImports.push(importPath);
274
+ continue;
275
+ }
276
+ const newImport = `await __import("./${cachePath}")`;
277
+ const startIndex = match.index;
278
+ const endIndex = startIndex + fullImport.length;
279
+ transformedCode =
280
+ transformedCode.slice(0, startIndex) + newImport + transformedCode.slice(endIndex);
281
+ }
282
+ return {
283
+ code: transformedCode,
284
+ unresolvedImports,
285
+ groups: importGroups,
286
+ aliasAssignments: allAliasAssignments,
287
+ };
288
+ }export{buildGroupImportStatement,deduplicateImports,isLocalImport,mergeBindings,parseImportSpecifier};//# sourceMappingURL=import-deduplicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-deduplicator.js","sources":["../../src/dev-server/import-deduplicator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Tests for Import Deduplicator
3
+ *
4
+ * Run with: npx tsx @warlock.js/core/src/dev-server/import-deduplicator.test.ts
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=import-deduplicator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-deduplicator.test.d.ts","sourceRoot":"","sources":["../../src/dev-server/import-deduplicator.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-transformer.d.ts","sourceRoot":"","sources":["../../src/dev-server/import-transformer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAiBlD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAqNjE"}
@@ -1,4 +1,4 @@
1
- import {devLogError}from'./dev-logger.js';import {exportAnalyzer}from'./export-analyzer.js';import {Path}from'./path.js';import {tsconfigManager}from'./tsconfig-manager.js';let filesOrchestrator;
1
+ import {devLogError}from'./dev-logger.js';import {exportAnalyzer}from'./export-analyzer.js';import {deduplicateImports}from'./import-deduplicator.js';import {Path}from'./path.js';import {tsconfigManager}from'./tsconfig-manager.js';let filesOrchestrator;
2
2
  loadFilesOrchestrator();
3
3
  async function loadFilesOrchestrator() {
4
4
  try {
@@ -23,86 +23,22 @@ async function loadFilesOrchestrator() {
23
23
  */
24
24
  function transformImports(fileManager) {
25
25
  const code = fileManager.transpiled;
26
- // Pattern to match ES6 import statements
27
- // Matches: import ... from "..."
28
- // Handles:
29
- // - import { a, b } from "module" (named imports, can span multiple lines)
30
- // - import * as Foo from "module" (namespace imports)
31
- // - import Foo from "module" (default imports)
32
- // - import Foo, { a, b } from "module" (mixed imports)
33
- const importRegex = /import\s+(\{[\s\S]*?\}|\*\s+as\s+\w+|\w+(?:\s*,\s*\{[\s\S]*?\})?)\s+from\s+["']([^"']+)["'];?/gm;
34
- // Pattern to match side-effect imports: import "module";
35
- const sideEffectImportRegex = /import\s+["']([^"']+)["'];?/g;
26
+ // Create a path resolver that uses the fileManager's importMap
27
+ const resolveCachePath = (importPath) => {
28
+ if (!fileManager.importMap.has(importPath)) {
29
+ return null;
30
+ }
31
+ return findCachePathForImport(importPath, fileManager);
32
+ };
33
+ // Use the pure deduplicator for import transformation
34
+ const result = deduplicateImports(code, resolveCachePath, {
35
+ isAlias: (path) => tsconfigManager.isAlias(path),
36
+ });
37
+ let transformedCode = result.code;
38
+ const unresolvedImports = [...result.unresolvedImports];
36
39
  // Pattern to match ES6 export statements
37
40
  // Matches: export * from "..." and export { ... } from "..."
38
41
  const exportRegex = /export\s+((?:\*|\{[^}]*\}))\s+from\s+["']([^"']+)["'];?/g;
39
- let transformedCode = code;
40
- const unresolvedImports = [];
41
- // Process imports first
42
- const importMatches = Array.from(code.matchAll(importRegex));
43
- for (let i = importMatches.length - 1; i >= 0; i--) {
44
- const match = importMatches[i];
45
- const fullImport = match[0];
46
- const importSpecifier = match[1]; // What's being imported (e.g., "{ foo }", "* as bar", "default")
47
- const importPath = match[2]; // The module path
48
- // Only transform relative imports and alias imports
49
- // Skip external packages (node_modules, node built-ins)
50
- const isRelativeImport = importPath.startsWith(".") || importPath.startsWith("/");
51
- const isAliasImport = tsconfigManager.isAlias(importPath);
52
- if (!isRelativeImport && !isAliasImport) {
53
- // This is an external package - keep as-is
54
- continue;
55
- }
56
- // Check if this import was resolved by parseImports (exists in importMap)
57
- // If not in importMap, it means parseImports skipped it (external package), so we skip it too
58
- if (!fileManager.importMap.has(importPath)) {
59
- // Not in importMap = external package, skip transformation
60
- continue;
61
- }
62
- // Find the cache path for this import
63
- const cachePath = findCachePathForImport(importPath, fileManager);
64
- if (!cachePath) {
65
- // Could not resolve - track it (this is a local file that should exist but doesn't)
66
- unresolvedImports.push(importPath);
67
- continue;
68
- }
69
- // Build the correct replacement depending on the import shape
70
- const newImport = buildImportReplacement(importSpecifier, cachePath);
71
- // Replace in code
72
- const startIndex = match.index;
73
- const endIndex = startIndex + fullImport.length;
74
- transformedCode =
75
- transformedCode.slice(0, startIndex) + newImport + transformedCode.slice(endIndex);
76
- }
77
- // Process side-effect imports: import "module";
78
- const sideEffectMatches = Array.from(transformedCode.matchAll(sideEffectImportRegex));
79
- for (let i = sideEffectMatches.length - 1; i >= 0; i--) {
80
- const match = sideEffectMatches[i];
81
- const fullImport = match[0];
82
- const importPath = match[1];
83
- // Only transform relative imports and alias imports
84
- // Skip external packages (node_modules, node built-ins)
85
- const isRelativeImport = importPath.startsWith(".") || importPath.startsWith("/");
86
- const isAliasImport = tsconfigManager.isAlias(importPath);
87
- if (!isRelativeImport && !isAliasImport) {
88
- continue;
89
- }
90
- if (!fileManager.importMap.has(importPath)) {
91
- continue;
92
- }
93
- const cachePath = findCachePathForImport(importPath, fileManager);
94
- if (!cachePath) {
95
- unresolvedImports.push(importPath);
96
- continue;
97
- }
98
- // FROM: import "./themes";
99
- // TO: await __import("./src-app-mail-themes.js");
100
- const newImport = `await __import("./${cachePath}")`;
101
- const startIndex = match.index;
102
- const endIndex = startIndex + fullImport.length;
103
- transformedCode =
104
- transformedCode.slice(0, startIndex) + newImport + transformedCode.slice(endIndex);
105
- }
106
42
  // Process exports (need to re-process after imports to get updated string positions)
107
43
  const exportMatches = Array.from(transformedCode.matchAll(exportRegex));
108
44
  for (let i = exportMatches.length - 1; i >= 0; i--) {
@@ -118,14 +54,20 @@ function transformImports(fileManager) {
118
54
  // This is an external package - keep as-is
119
55
  continue;
120
56
  }
121
- // Check if this import was resolved by parseImports (exists in importMap)
122
- // If not in importMap, it means parseImports skipped it (external package), so we skip it too
123
- if (!fileManager.importMap.has(importPath)) {
124
- // Not in importMap = external package, skip transformation
125
- continue;
126
- }
127
57
  // Find the cache path for this import
128
- const cachePath = findCachePathForImport(importPath, fileManager);
58
+ let cachePath = findCachePathForImport(importPath, fileManager);
59
+ // If not in importMap but is a relative import, compute the cache path directly
60
+ if (!cachePath && isRelativeImport) {
61
+ // Resolve the relative import path from the current file's directory
62
+ const currentDir = Path.dirname(fileManager.relativePath);
63
+ let resolvedPath = Path.join(currentDir, importPath);
64
+ // Normalize the path and ensure it has the correct extension
65
+ if (!resolvedPath.endsWith(".ts") && !resolvedPath.endsWith(".tsx")) {
66
+ resolvedPath += ".ts";
67
+ }
68
+ // Compute cache path using the same formula as FileManager.cachePath
69
+ cachePath = resolvedPath.replace(/\//g, "-").replace(/\.(ts|tsx)$/, ".js");
70
+ }
129
71
  if (!cachePath) {
130
72
  // Could not resolve - track it (this is a local file that should exist but doesn't)
131
73
  unresolvedImports.push(importPath);
@@ -211,6 +153,40 @@ function transformImports(fileManager) {
211
153
  transformedCode.slice(0, startIndex) + newExport + transformedCode.slice(endIndex);
212
154
  }
213
155
  }
156
+ // Transform dynamic imports: import("./path") → __import("cache-path")
157
+ // This handles dynamic imports in function bodies that weren't caught by static import transformation
158
+ const dynamicImportRegex = /\bimport\s*\(\s*["']([^"']+)["']\s*\)/g;
159
+ const dynamicMatches = Array.from(transformedCode.matchAll(dynamicImportRegex));
160
+ for (let i = dynamicMatches.length - 1; i >= 0; i--) {
161
+ const match = dynamicMatches[i];
162
+ const fullImport = match[0];
163
+ const importPath = match[1];
164
+ // Only transform relative imports and alias imports
165
+ const isRelativeImport = importPath.startsWith(".") || importPath.startsWith("/");
166
+ const isAliasImport = tsconfigManager.isAlias(importPath);
167
+ if (!isRelativeImport && !isAliasImport) {
168
+ // External package - keep as-is
169
+ continue;
170
+ }
171
+ // Check if this import was resolved by parseImports
172
+ if (!fileManager.importMap.has(importPath)) {
173
+ // Not in importMap = external package or untracked, skip
174
+ continue;
175
+ }
176
+ // Find the cache path for this import
177
+ const cachePath = findCachePathForImport(importPath, fileManager);
178
+ if (!cachePath) {
179
+ unresolvedImports.push(importPath);
180
+ continue;
181
+ }
182
+ // Transform to __import with cache path
183
+ const newImport = `__import("./${cachePath}")`;
184
+ // Replace in code (reverse order so indices stay valid)
185
+ const startIndex = match.index;
186
+ const endIndex = startIndex + fullImport.length;
187
+ transformedCode =
188
+ transformedCode.slice(0, startIndex) + newImport + transformedCode.slice(endIndex);
189
+ }
214
190
  // If there are unresolved imports, throw an error
215
191
  if (unresolvedImports.length > 0) {
216
192
  devLogError(`Failed to transform imports in ${fileManager.relativePath}:\n` +
@@ -220,50 +196,6 @@ function transformImports(fileManager) {
220
196
  }
221
197
  return transformedCode;
222
198
  }
223
- /**
224
- * Build a replacement statement for different import syntaxes
225
- * @param importSpecifier The import specifier (e.g., "Foo", "{ a, b }", "Foo, { a, b }", "* as Bar")
226
- * @param cachePath The path to the cached file
227
- */
228
- function buildImportReplacement(importSpecifier, cachePath) {
229
- const trimmed = importSpecifier.trim();
230
- // Namespace import: import * as Foo from "module";
231
- if (trimmed.startsWith("* as ")) {
232
- const identifier = trimmed.replace("* as ", "").trim();
233
- return `const ${identifier} = await __import("./${cachePath}")`;
234
- }
235
- // Mixed import: import Foo, { a, b } from "module";
236
- // Transform to: const __module = await __import(...); const Foo = __module?.default ?? __module; const { a, b } = __module;
237
- // Handle multiline: import Foo, {\n a,\n b\n} from "module";
238
- if (trimmed.match(/^(\w+)\s*,\s*\{/)) {
239
- const match = trimmed.match(/^(\w+)\s*,\s*(\{[\s\S]*?\})/);
240
- if (match) {
241
- const defaultImport = match[1];
242
- let namedImports = match[2];
243
- const moduleVar = `__module_${Math.random().toString(36).slice(2, 8)}`;
244
- // Clean up whitespace and normalize
245
- namedImports = namedImports.replace(/\s+/g, " ").trim();
246
- // Normalize `{ default as X }` to `{ default: X }` for valid destructuring
247
- const normalized = namedImports.replace(/default\s+as\s+/g, "default: ");
248
- // Generate correct syntax with proper separators
249
- return `const ${moduleVar} = await __import("./${cachePath}");
250
- const ${defaultImport} = ${moduleVar}?.default ?? ${moduleVar};
251
- const ${normalized} = ${moduleVar};`;
252
- }
253
- }
254
- // Destructured / named imports (including default alias): import { a, default as X } from "module";
255
- if (trimmed.startsWith("{")) {
256
- // Clean up multiline formatting
257
- let cleanedImports = trimmed.replace(/\s+/g, " ").trim();
258
- // Normalize `{ default as X }` to `{ default: X }` for valid destructuring
259
- const normalized = cleanedImports.replace(/default\s+as\s+/g, "default: ");
260
- return `const ${normalized} = await __import("./${cachePath}")`;
261
- }
262
- // Default import: import Foo from "module";
263
- // Use default with fallback to module object
264
- const moduleVar = `__module_${Math.random().toString(36).slice(2, 8)}`;
265
- return `const ${moduleVar} = await __import("./${cachePath}");\nconst ${trimmed} = ${moduleVar}?.default ?? ${moduleVar};`;
266
- }
267
199
  /**
268
200
  * Find the cache path for an import
269
201
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-transformer.js","sources":["../../src/dev-server/import-transformer.ts"],"sourcesContent":[null],"names":[],"mappings":"uOAQA,IAAI,iBAAoC,CAAC;AAEzC,qBAAqB,EAAE,CAAC;AAExB,eAAe,qBAAqB,GAAA;IAClC,IAAI;AACF,QAAA,MAAM,MAAM,GAAG,MAAM,OAAO,yBAAsB,CAAC,CAAC;AACpD,QAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,KAAA;IAAC,OAAO,KAAK,EAAE,GAAE;AACpB,CAAC;AAED;;;;;;;;;;;;;AAaG;AACG,SAAU,gBAAgB,CAAC,WAAwB,EAAA;AACvD,IAAA,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC;;AAGpC,IAAA,MAAM,gBAAgB,GAAG,CAAC,UAAkB,KAAmB;QAC7D,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC1C,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AACD,QAAA,OAAO,sBAAsB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACzD,KAAC,CAAC;;AAGF,IAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,EAAE;QACxD,OAAO,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC;AACjD,KAAA,CAAC,CAAC;AAEH,IAAA,IAAI,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC;IAClC,MAAM,iBAAiB,GAAG,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;;;IAIxD,MAAM,WAAW,GAAG,0DAA0D,CAAC;;AAG/E,IAAA,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;AACxE,IAAA,KAAK,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAClD,QAAA,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC/B,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;;;AAI5B,QAAA,MAAM,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAClF,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE1D,QAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,aAAa,EAAE;;YAEvC,SAAS;AACV,SAAA;;QAGD,IAAI,SAAS,GAAG,sBAAsB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;;AAGhE,QAAA,IAAI,CAAC,SAAS,IAAI,gBAAgB,EAAE;;YAElC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAC1D,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;;AAGrD,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACnE,YAAY,IAAI,KAAK,CAAC;AACvB,aAAA;;AAGD,YAAA,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAC5E,SAAA;QAED,IAAI,CAAC,SAAS,EAAE;;AAEd,YAAA,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,SAAS;AACV,SAAA;;;;;QAOD,IAAI,eAAe,KAAK,GAAG,EAAE;;;;YAK3B,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAE9D,IAAI,CAAC,eAAe,EAAE;AACpB,gBAAA,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnC,SAAS;AACV,aAAA;;YAGD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YACtD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAEpE,IAAI,CAAC,iBAAiB,EAAE;;AAEtB,gBAAA,MAAM,SAAS,GAAG,CAAoB,iBAAA,EAAA,SAAS,GAAG,CAAC;AACnD,gBAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAM,CAAC;AAChC,gBAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;gBAChD,eAAe;AACb,oBAAA,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACrF,SAAS;AACV,aAAA;;YAGD,MAAM,UAAU,GAAG,cAAc,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;;YAGpE,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,gBAAgB,EAAE;AACrE,gBAAA,MAAM,SAAS,GAAG,CAAc,WAAA,EAAA,CAAC,EAAE,CAAC;gBACpC,MAAM,UAAU,GAAa,EAAE,CAAC;;gBAGhC,UAAU,CAAC,IAAI,CAAC,CAAA,MAAA,EAAS,SAAS,CAAwB,qBAAA,EAAA,SAAS,CAAK,GAAA,CAAA,CAAC,CAAC;;AAG1E,gBAAA,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,YAAY,EAAE;oBAChD,UAAU,CAAC,IAAI,CAAC,CAAgB,aAAA,EAAA,UAAU,CAAM,GAAA,EAAA,SAAS,CAAI,CAAA,EAAA,UAAU,CAAG,CAAA,CAAA,CAAC,CAAC;AAC7E,iBAAA;;gBAGD,IAAI,UAAU,CAAC,gBAAgB,EAAE;AAC/B,oBAAA,UAAU,CAAC,IAAI,CAAC,kBAAkB,SAAS,CAAA,SAAA,CAAW,CAAC,CAAC;AACzD,iBAAA;gBAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAGxC,gBAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAM,CAAC;AAChC,gBAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;gBAChD,eAAe;AACb,oBAAA,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtF,aAAA;AAAM,iBAAA;;;AAGL,gBAAA,MAAM,SAAS,GAAG,CAAoB,iBAAA,EAAA,SAAS,GAAG,CAAC;;AAGnD,gBAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAM,CAAC;AAChC,gBAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;gBAChD,eAAe;AACb,oBAAA,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtF,aAAA;AACF,SAAA;AAAM,aAAA;;;AAGL,YAAA,MAAM,SAAS,GAAG,CAAY,SAAA,EAAA,CAAC,EAAE,CAAC;AAClC,YAAA,MAAM,YAAY,GAAG,eAAe,CAAC;;YAErC,MAAM,WAAW,GACf,YAAY;AACT,iBAAA,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;kBACxB,KAAK,CAAC,GAAG,CAAC;AACX,iBAAA,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,gBAAgB,GAAG,WAAW;AACjC,iBAAA,GAAG,CAAC,CAAC,IAAI,KAAK,CAAgB,aAAA,EAAA,IAAI,CAAM,GAAA,EAAA,SAAS,CAAI,CAAA,EAAA,IAAI,GAAG,CAAC;iBAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,CAAS,MAAA,EAAA,SAAS,wBAAwB,SAAS,CAAA,KAAA,EAAQ,gBAAgB,CAAA,CAAE,CAAC;;AAGhG,YAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAM,CAAC;AAChC,YAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;YAChD,eAAe;AACb,gBAAA,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtF,SAAA;AACF,KAAA;;;IAID,MAAM,kBAAkB,GAAG,wCAAwC,CAAC;AAEpE,IAAA,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAChF,IAAA,KAAK,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,QAAA,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAChC,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;;AAG5B,QAAA,MAAM,gBAAgB,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAClF,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE1D,QAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,aAAa,EAAE;;YAEvC,SAAS;AACV,SAAA;;QAGD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;;YAE1C,SAAS;AACV,SAAA;;QAGD,MAAM,SAAS,GAAG,sBAAsB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAElE,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,SAAS;AACV,SAAA;;AAGD,QAAA,MAAM,SAAS,GAAG,CAAe,YAAA,EAAA,SAAS,IAAI,CAAC;;AAG/C,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAM,CAAC;AAChC,QAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;QAChD,eAAe;AACb,YAAA,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtF,KAAA;;AAGD,IAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,QAAA,WAAW,CACT,CAAA,+BAAA,EAAkC,WAAW,CAAC,YAAY,CAAK,GAAA,CAAA;AAC7D,YAAA,CAAA,oBAAA,EAAuB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAI,EAAA,CAAA;AACvD,YAAA,CAAA,mDAAA,CAAqD,CACxD,CAAC;AACF,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;AAED,IAAA,OAAO,eAAe,CAAC;AACzB,CAAC;AAqDD;;;;;;;;;;AAUG;AACH,SAAS,sBAAsB,CAAC,UAAkB,EAAE,WAAwB,EAAA;;IAE1E,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE9D,IAAI,CAAC,eAAe,EAAE;AACpB,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;;IAGD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;;;AAItD,IAAA,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dev2-server/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dev-server/index.ts"],"names":[],"mappings":""}
@@ -17,10 +17,12 @@ export declare class LayerExecutor {
17
17
  constructor(dependencyGraph: DependencyGraph, specialFilesCollector: SpecialFilesCollector, moduleLoader: ModuleLoader);
18
18
  /**
19
19
  * Execute batch reload for multiple changed files
20
- * @param changedPaths Array of relative paths that changed
20
+ * @param changedPaths Array of relative paths that changed (code files only)
21
21
  * @param filesMap Map of all FileManager instances
22
+ * @param deletedFiles Array of deleted file paths
23
+ * @param allChangedPaths Optional array of all changed paths including env files (for config reload)
22
24
  */
23
- executeBatchReload(changedPaths: string[], filesMap: Map<string, FileManager>, deletedFiles: string[]): Promise<void>;
25
+ executeBatchReload(changedPaths: string[], filesMap: Map<string, FileManager>, deletedFiles: string[], allChangedPaths?: string[]): Promise<void>;
24
26
  /**
25
27
  * Determine if we need FSR or HMR
26
28
  * FSR is needed if ANY file in the invalidation chain is FSR layer
@@ -55,6 +57,7 @@ export declare class LayerExecutor {
55
57
  * Reload affected modules (for HMR)
56
58
  * Special files (main, routes, events, locales) need to be actively reloaded
57
59
  * Other files will be loaded on next import
60
+ * @returns Array of affected config file paths (for connector restart logic)
58
61
  */
59
62
  private reloadAffectedModules;
60
63
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer-executor.d.ts","sourceRoot":"","sources":["../../src/dev-server/layer-executor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE;;;;;;;GAOG;AACH,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,eAAe,EAAE,eAAe,EAChC,qBAAqB,EAAE,qBAAqB,EAC5C,YAAY,EAAE,YAAY;IAG7C;;;;;;OAMG;IACU,kBAAkB,CAC7B,YAAY,EAAE,MAAM,EAAE,EACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAClC,YAAY,EAAE,MAAM,EAAE,EACtB,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC;IAiGhB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;;OAGG;YACW,wBAAwB;IAqCtC;;;OAGG;YACW,2BAA2B;IAiBzC;;OAEG;YACW,yBAAyB;IAevC;;;OAGG;YACW,wBAAwB;IAwBtC;;;;OAIG;YACW,0BAA0B;IAmDxC;;;;;OAKG;YACW,qBAAqB;CAyGpC"}