@warlock.js/core 3.0.40 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/cjs/code-quality/config.js +1 -7
  2. package/cjs/code-quality/config.js.map +1 -1
  3. package/cjs/code-quality/issue-tracker.js +1 -119
  4. package/cjs/code-quality/issue-tracker.js.map +1 -1
  5. package/cjs/dev2-server/config-handlers.d.ts +8 -0
  6. package/cjs/dev2-server/config-handlers.d.ts.map +1 -0
  7. package/cjs/dev2-server/config-handlers.js +56 -0
  8. package/cjs/dev2-server/config-handlers.js.map +1 -0
  9. package/cjs/dev2-server/config-loader.d.ts +61 -0
  10. package/cjs/dev2-server/config-loader.d.ts.map +1 -0
  11. package/cjs/dev2-server/config-loader.js +117 -0
  12. package/cjs/dev2-server/config-loader.js.map +1 -0
  13. package/cjs/dev2-server/connectors/base-connector.d.ts +49 -0
  14. package/cjs/dev2-server/connectors/base-connector.d.ts.map +1 -0
  15. package/cjs/dev2-server/connectors/base-connector.js +48 -0
  16. package/cjs/dev2-server/connectors/base-connector.js.map +1 -0
  17. package/cjs/dev2-server/connectors/cache-connector.d.ts +23 -0
  18. package/cjs/dev2-server/connectors/cache-connector.d.ts.map +1 -0
  19. package/cjs/dev2-server/connectors/cache-connector.js +35 -0
  20. package/cjs/dev2-server/connectors/cache-connector.js.map +1 -0
  21. package/cjs/dev2-server/connectors/database-connector.d.ts +23 -0
  22. package/cjs/dev2-server/connectors/database-connector.d.ts.map +1 -0
  23. package/cjs/dev2-server/connectors/database-connector.js +42 -0
  24. package/cjs/dev2-server/connectors/database-connector.js.map +1 -0
  25. package/cjs/dev2-server/connectors/http-connector.d.ts +29 -0
  26. package/cjs/dev2-server/connectors/http-connector.d.ts.map +1 -0
  27. package/cjs/dev2-server/connectors/http-connector.js +71 -0
  28. package/cjs/dev2-server/connectors/http-connector.js.map +1 -0
  29. package/cjs/dev2-server/connectors/index.d.ts +10 -0
  30. package/cjs/dev2-server/connectors/index.d.ts.map +1 -0
  31. package/cjs/dev2-server/connectors/types.d.ts +49 -0
  32. package/cjs/dev2-server/connectors/types.d.ts.map +1 -0
  33. package/cjs/dev2-server/connectors/types.js +9 -0
  34. package/cjs/dev2-server/connectors/types.js.map +1 -0
  35. package/cjs/dev2-server/dependency-graph.d.ts +86 -0
  36. package/cjs/dev2-server/dependency-graph.d.ts.map +1 -0
  37. package/cjs/dev2-server/dependency-graph.js +225 -0
  38. package/cjs/dev2-server/dependency-graph.js.map +1 -0
  39. package/cjs/dev2-server/dev-logger.d.ts +14 -0
  40. package/cjs/dev2-server/dev-logger.d.ts.map +1 -0
  41. package/cjs/dev2-server/dev-logger.js +117 -0
  42. package/cjs/dev2-server/dev-logger.js.map +1 -0
  43. package/cjs/dev2-server/development-server.d.ts +97 -0
  44. package/cjs/dev2-server/development-server.d.ts.map +1 -0
  45. package/cjs/dev2-server/development-server.js +212 -0
  46. package/cjs/dev2-server/development-server.js.map +1 -0
  47. package/cjs/dev2-server/events.d.ts +5 -0
  48. package/cjs/dev2-server/events.d.ts.map +1 -0
  49. package/cjs/dev2-server/events.js +4 -0
  50. package/cjs/dev2-server/events.js.map +1 -0
  51. package/cjs/dev2-server/file-event-handler.d.ts +58 -0
  52. package/cjs/dev2-server/file-event-handler.d.ts.map +1 -0
  53. package/cjs/dev2-server/file-event-handler.js +140 -0
  54. package/cjs/dev2-server/file-event-handler.js.map +1 -0
  55. package/cjs/dev2-server/file-manager.d.ts +110 -0
  56. package/cjs/dev2-server/file-manager.d.ts.map +1 -0
  57. package/cjs/dev2-server/file-manager.js +314 -0
  58. package/cjs/dev2-server/file-manager.js.map +1 -0
  59. package/cjs/dev2-server/file-operations.d.ts +54 -0
  60. package/cjs/dev2-server/file-operations.d.ts.map +1 -0
  61. package/cjs/dev2-server/file-operations.js +191 -0
  62. package/cjs/dev2-server/file-operations.js.map +1 -0
  63. package/cjs/dev2-server/files-orchestrator.d.ts +88 -0
  64. package/cjs/dev2-server/files-orchestrator.d.ts.map +1 -0
  65. package/cjs/dev2-server/files-orchestrator.js +271 -0
  66. package/cjs/dev2-server/files-orchestrator.js.map +1 -0
  67. package/cjs/dev2-server/files-watcher.d.ts +53 -0
  68. package/cjs/dev2-server/files-watcher.d.ts.map +1 -0
  69. package/cjs/dev2-server/files-watcher.js +88 -0
  70. package/cjs/dev2-server/files-watcher.js.map +1 -0
  71. package/cjs/dev2-server/flags.d.ts +10 -0
  72. package/cjs/dev2-server/flags.d.ts.map +1 -0
  73. package/cjs/dev2-server/flags.js +9 -0
  74. package/cjs/dev2-server/flags.js.map +1 -0
  75. package/cjs/dev2-server/health-checker.d.ts +3 -0
  76. package/cjs/dev2-server/health-checker.d.ts.map +1 -0
  77. package/cjs/dev2-server/health-checker.js +2 -0
  78. package/cjs/dev2-server/health-checker.js.map +1 -0
  79. package/cjs/dev2-server/import-transformer.d.ts +16 -0
  80. package/cjs/dev2-server/import-transformer.d.ts.map +1 -0
  81. package/cjs/dev2-server/import-transformer.js +219 -0
  82. package/cjs/dev2-server/import-transformer.js.map +1 -0
  83. package/cjs/dev2-server/index.d.ts +1 -0
  84. package/cjs/dev2-server/index.d.ts.map +1 -0
  85. package/cjs/dev2-server/layer-executor.d.ts +64 -0
  86. package/cjs/dev2-server/layer-executor.d.ts.map +1 -0
  87. package/cjs/dev2-server/layer-executor.js +287 -0
  88. package/cjs/dev2-server/layer-executor.js.map +1 -0
  89. package/cjs/dev2-server/manifest-manager.d.ts +80 -0
  90. package/cjs/dev2-server/manifest-manager.d.ts.map +1 -0
  91. package/cjs/dev2-server/manifest-manager.js +107 -0
  92. package/cjs/dev2-server/manifest-manager.js.map +1 -0
  93. package/cjs/dev2-server/module-loader.d.ts +100 -0
  94. package/cjs/dev2-server/module-loader.d.ts.map +1 -0
  95. package/cjs/dev2-server/module-loader.js +229 -0
  96. package/cjs/dev2-server/module-loader.js.map +1 -0
  97. package/cjs/dev2-server/package-json-manager.d.ts +16 -0
  98. package/cjs/dev2-server/package-json-manager.d.ts.map +1 -0
  99. package/cjs/dev2-server/package-json-manager.js +20 -0
  100. package/cjs/dev2-server/package-json-manager.js.map +1 -0
  101. package/cjs/dev2-server/parse-imports.d.ts +8 -0
  102. package/cjs/dev2-server/parse-imports.d.ts.map +1 -0
  103. package/cjs/dev2-server/parse-imports.js +268 -0
  104. package/cjs/dev2-server/parse-imports.js.map +1 -0
  105. package/cjs/dev2-server/path.d.ts +39 -0
  106. package/cjs/dev2-server/path.d.ts.map +1 -0
  107. package/cjs/dev2-server/path.js +56 -0
  108. package/cjs/dev2-server/path.js.map +1 -0
  109. package/cjs/dev2-server/runtime-import-helper.d.ts +9 -0
  110. package/cjs/dev2-server/runtime-import-helper.d.ts.map +1 -0
  111. package/cjs/dev2-server/runtime-import-helper.js +79 -0
  112. package/cjs/dev2-server/runtime-import-helper.js.map +1 -0
  113. package/cjs/dev2-server/special-files-collector.d.ts +114 -0
  114. package/cjs/dev2-server/special-files-collector.d.ts.map +1 -0
  115. package/cjs/dev2-server/special-files-collector.js +212 -0
  116. package/cjs/dev2-server/special-files-collector.js.map +1 -0
  117. package/cjs/dev2-server/start-development-server.d.ts +7 -0
  118. package/cjs/dev2-server/start-development-server.d.ts.map +1 -0
  119. package/cjs/dev2-server/start-development-server.js +21 -0
  120. package/cjs/dev2-server/start-development-server.js.map +1 -0
  121. package/cjs/dev2-server/transpile-file.d.ts +6 -0
  122. package/cjs/dev2-server/transpile-file.d.ts.map +1 -0
  123. package/cjs/dev2-server/transpile-file.js +14 -0
  124. package/cjs/dev2-server/transpile-file.js.map +1 -0
  125. package/cjs/dev2-server/tsconfig-manager.d.ts +45 -0
  126. package/cjs/dev2-server/tsconfig-manager.d.ts.map +1 -0
  127. package/cjs/dev2-server/tsconfig-manager.js +104 -0
  128. package/cjs/dev2-server/tsconfig-manager.js.map +1 -0
  129. package/cjs/dev2-server/types.d.ts +16 -0
  130. package/cjs/dev2-server/types.d.ts.map +1 -0
  131. package/cjs/dev2-server/utils.d.ts +8 -0
  132. package/cjs/dev2-server/utils.d.ts.map +1 -0
  133. package/cjs/dev2-server/utils.js +28 -0
  134. package/cjs/dev2-server/utils.js.map +1 -0
  135. package/cjs/router/router.d.ts +14 -8
  136. package/cjs/router/router.d.ts.map +1 -1
  137. package/cjs/router/router.js +77 -35
  138. package/cjs/router/router.js.map +1 -1
  139. package/cjs/router/types.d.ts +8 -0
  140. package/cjs/router/types.d.ts.map +1 -1
  141. package/cjs/starters/start-cli-server.js +1 -1
  142. package/cjs/starters/start-cli-server.js.map +1 -1
  143. package/cjs/starters/start-http-server.d.ts.map +1 -1
  144. package/cjs/starters/start-http-server.js +4 -99
  145. package/cjs/starters/start-http-server.js.map +1 -1
  146. package/esm/code-quality/config.js +1 -7
  147. package/esm/code-quality/config.js.map +1 -1
  148. package/esm/code-quality/issue-tracker.js +1 -119
  149. package/esm/code-quality/issue-tracker.js.map +1 -1
  150. package/esm/dev2-server/config-handlers.d.ts +8 -0
  151. package/esm/dev2-server/config-handlers.d.ts.map +1 -0
  152. package/esm/dev2-server/config-handlers.js +56 -0
  153. package/esm/dev2-server/config-handlers.js.map +1 -0
  154. package/esm/dev2-server/config-loader.d.ts +61 -0
  155. package/esm/dev2-server/config-loader.d.ts.map +1 -0
  156. package/esm/dev2-server/config-loader.js +117 -0
  157. package/esm/dev2-server/config-loader.js.map +1 -0
  158. package/esm/dev2-server/connectors/base-connector.d.ts +49 -0
  159. package/esm/dev2-server/connectors/base-connector.d.ts.map +1 -0
  160. package/esm/dev2-server/connectors/base-connector.js +48 -0
  161. package/esm/dev2-server/connectors/base-connector.js.map +1 -0
  162. package/esm/dev2-server/connectors/cache-connector.d.ts +23 -0
  163. package/esm/dev2-server/connectors/cache-connector.d.ts.map +1 -0
  164. package/esm/dev2-server/connectors/cache-connector.js +35 -0
  165. package/esm/dev2-server/connectors/cache-connector.js.map +1 -0
  166. package/esm/dev2-server/connectors/database-connector.d.ts +23 -0
  167. package/esm/dev2-server/connectors/database-connector.d.ts.map +1 -0
  168. package/esm/dev2-server/connectors/database-connector.js +42 -0
  169. package/esm/dev2-server/connectors/database-connector.js.map +1 -0
  170. package/esm/dev2-server/connectors/http-connector.d.ts +29 -0
  171. package/esm/dev2-server/connectors/http-connector.d.ts.map +1 -0
  172. package/esm/dev2-server/connectors/http-connector.js +71 -0
  173. package/esm/dev2-server/connectors/http-connector.js.map +1 -0
  174. package/esm/dev2-server/connectors/index.d.ts +10 -0
  175. package/esm/dev2-server/connectors/index.d.ts.map +1 -0
  176. package/esm/dev2-server/connectors/types.d.ts +49 -0
  177. package/esm/dev2-server/connectors/types.d.ts.map +1 -0
  178. package/esm/dev2-server/connectors/types.js +9 -0
  179. package/esm/dev2-server/connectors/types.js.map +1 -0
  180. package/esm/dev2-server/dependency-graph.d.ts +86 -0
  181. package/esm/dev2-server/dependency-graph.d.ts.map +1 -0
  182. package/esm/dev2-server/dependency-graph.js +225 -0
  183. package/esm/dev2-server/dependency-graph.js.map +1 -0
  184. package/esm/dev2-server/dev-logger.d.ts +14 -0
  185. package/esm/dev2-server/dev-logger.d.ts.map +1 -0
  186. package/esm/dev2-server/dev-logger.js +117 -0
  187. package/esm/dev2-server/dev-logger.js.map +1 -0
  188. package/esm/dev2-server/development-server.d.ts +97 -0
  189. package/esm/dev2-server/development-server.d.ts.map +1 -0
  190. package/esm/dev2-server/development-server.js +212 -0
  191. package/esm/dev2-server/development-server.js.map +1 -0
  192. package/esm/dev2-server/events.d.ts +5 -0
  193. package/esm/dev2-server/events.d.ts.map +1 -0
  194. package/esm/dev2-server/events.js +4 -0
  195. package/esm/dev2-server/events.js.map +1 -0
  196. package/esm/dev2-server/file-event-handler.d.ts +58 -0
  197. package/esm/dev2-server/file-event-handler.d.ts.map +1 -0
  198. package/esm/dev2-server/file-event-handler.js +140 -0
  199. package/esm/dev2-server/file-event-handler.js.map +1 -0
  200. package/esm/dev2-server/file-manager.d.ts +110 -0
  201. package/esm/dev2-server/file-manager.d.ts.map +1 -0
  202. package/esm/dev2-server/file-manager.js +314 -0
  203. package/esm/dev2-server/file-manager.js.map +1 -0
  204. package/esm/dev2-server/file-operations.d.ts +54 -0
  205. package/esm/dev2-server/file-operations.d.ts.map +1 -0
  206. package/esm/dev2-server/file-operations.js +191 -0
  207. package/esm/dev2-server/file-operations.js.map +1 -0
  208. package/esm/dev2-server/files-orchestrator.d.ts +88 -0
  209. package/esm/dev2-server/files-orchestrator.d.ts.map +1 -0
  210. package/esm/dev2-server/files-orchestrator.js +271 -0
  211. package/esm/dev2-server/files-orchestrator.js.map +1 -0
  212. package/esm/dev2-server/files-watcher.d.ts +53 -0
  213. package/esm/dev2-server/files-watcher.d.ts.map +1 -0
  214. package/esm/dev2-server/files-watcher.js +88 -0
  215. package/esm/dev2-server/files-watcher.js.map +1 -0
  216. package/esm/dev2-server/flags.d.ts +10 -0
  217. package/esm/dev2-server/flags.d.ts.map +1 -0
  218. package/esm/dev2-server/flags.js +9 -0
  219. package/esm/dev2-server/flags.js.map +1 -0
  220. package/esm/dev2-server/health-checker.d.ts +3 -0
  221. package/esm/dev2-server/health-checker.d.ts.map +1 -0
  222. package/esm/dev2-server/health-checker.js +2 -0
  223. package/esm/dev2-server/health-checker.js.map +1 -0
  224. package/esm/dev2-server/import-transformer.d.ts +16 -0
  225. package/esm/dev2-server/import-transformer.d.ts.map +1 -0
  226. package/esm/dev2-server/import-transformer.js +219 -0
  227. package/esm/dev2-server/import-transformer.js.map +1 -0
  228. package/esm/dev2-server/index.d.ts +1 -0
  229. package/esm/dev2-server/index.d.ts.map +1 -0
  230. package/esm/dev2-server/layer-executor.d.ts +64 -0
  231. package/esm/dev2-server/layer-executor.d.ts.map +1 -0
  232. package/esm/dev2-server/layer-executor.js +287 -0
  233. package/esm/dev2-server/layer-executor.js.map +1 -0
  234. package/esm/dev2-server/manifest-manager.d.ts +80 -0
  235. package/esm/dev2-server/manifest-manager.d.ts.map +1 -0
  236. package/esm/dev2-server/manifest-manager.js +107 -0
  237. package/esm/dev2-server/manifest-manager.js.map +1 -0
  238. package/esm/dev2-server/module-loader.d.ts +100 -0
  239. package/esm/dev2-server/module-loader.d.ts.map +1 -0
  240. package/esm/dev2-server/module-loader.js +229 -0
  241. package/esm/dev2-server/module-loader.js.map +1 -0
  242. package/esm/dev2-server/package-json-manager.d.ts +16 -0
  243. package/esm/dev2-server/package-json-manager.d.ts.map +1 -0
  244. package/esm/dev2-server/package-json-manager.js +20 -0
  245. package/esm/dev2-server/package-json-manager.js.map +1 -0
  246. package/esm/dev2-server/parse-imports.d.ts +8 -0
  247. package/esm/dev2-server/parse-imports.d.ts.map +1 -0
  248. package/esm/dev2-server/parse-imports.js +268 -0
  249. package/esm/dev2-server/parse-imports.js.map +1 -0
  250. package/esm/dev2-server/path.d.ts +39 -0
  251. package/esm/dev2-server/path.d.ts.map +1 -0
  252. package/esm/dev2-server/path.js +56 -0
  253. package/esm/dev2-server/path.js.map +1 -0
  254. package/esm/dev2-server/runtime-import-helper.d.ts +9 -0
  255. package/esm/dev2-server/runtime-import-helper.d.ts.map +1 -0
  256. package/esm/dev2-server/runtime-import-helper.js +79 -0
  257. package/esm/dev2-server/runtime-import-helper.js.map +1 -0
  258. package/esm/dev2-server/special-files-collector.d.ts +114 -0
  259. package/esm/dev2-server/special-files-collector.d.ts.map +1 -0
  260. package/esm/dev2-server/special-files-collector.js +212 -0
  261. package/esm/dev2-server/special-files-collector.js.map +1 -0
  262. package/esm/dev2-server/start-development-server.d.ts +7 -0
  263. package/esm/dev2-server/start-development-server.d.ts.map +1 -0
  264. package/esm/dev2-server/start-development-server.js +21 -0
  265. package/esm/dev2-server/start-development-server.js.map +1 -0
  266. package/esm/dev2-server/transpile-file.d.ts +6 -0
  267. package/esm/dev2-server/transpile-file.d.ts.map +1 -0
  268. package/esm/dev2-server/transpile-file.js +14 -0
  269. package/esm/dev2-server/transpile-file.js.map +1 -0
  270. package/esm/dev2-server/tsconfig-manager.d.ts +45 -0
  271. package/esm/dev2-server/tsconfig-manager.d.ts.map +1 -0
  272. package/esm/dev2-server/tsconfig-manager.js +104 -0
  273. package/esm/dev2-server/tsconfig-manager.js.map +1 -0
  274. package/esm/dev2-server/types.d.ts +16 -0
  275. package/esm/dev2-server/types.d.ts.map +1 -0
  276. package/esm/dev2-server/utils.d.ts +8 -0
  277. package/esm/dev2-server/utils.d.ts.map +1 -0
  278. package/esm/dev2-server/utils.js +28 -0
  279. package/esm/dev2-server/utils.js.map +1 -0
  280. package/esm/router/router.d.ts +14 -8
  281. package/esm/router/router.d.ts.map +1 -1
  282. package/esm/router/router.js +78 -36
  283. package/esm/router/router.js.map +1 -1
  284. package/esm/router/types.d.ts +8 -0
  285. package/esm/router/types.d.ts.map +1 -1
  286. package/esm/starters/start-cli-server.js +1 -1
  287. package/esm/starters/start-cli-server.js.map +1 -1
  288. package/esm/starters/start-http-server.d.ts.map +1 -1
  289. package/esm/starters/start-http-server.js +4 -99
  290. package/esm/starters/start-http-server.js.map +1 -1
  291. package/package.json +3 -3
  292. package/cjs/code-quality/checkers/eslint-checker.js +0 -39
  293. package/cjs/code-quality/checkers/eslint-checker.js.map +0 -1
  294. package/cjs/code-quality/checkers/typescript-checker.js +0 -76
  295. package/cjs/code-quality/checkers/typescript-checker.js.map +0 -1
  296. package/cjs/code-quality/formatters/eslint-formatter.js +0 -56
  297. package/cjs/code-quality/formatters/eslint-formatter.js.map +0 -1
  298. package/cjs/code-quality/formatters/summary-formatter.js +0 -102
  299. package/cjs/code-quality/formatters/summary-formatter.js.map +0 -1
  300. package/cjs/code-quality/formatters/typescript-formatter.js +0 -64
  301. package/cjs/code-quality/formatters/typescript-formatter.js.map +0 -1
  302. package/cjs/code-quality/project-scanner.js +0 -78
  303. package/cjs/code-quality/project-scanner.js.map +0 -1
  304. package/cjs/code-quality/single-file-checker.js +0 -153
  305. package/cjs/code-quality/single-file-checker.js.map +0 -1
  306. package/cjs/starters/http-server-starter.js +0 -34
  307. package/cjs/starters/http-server-starter.js.map +0 -1
  308. package/cjs/utils/internal.js +0 -3
  309. package/cjs/utils/internal.js.map +0 -1
  310. package/esm/code-quality/checkers/eslint-checker.js +0 -39
  311. package/esm/code-quality/checkers/eslint-checker.js.map +0 -1
  312. package/esm/code-quality/checkers/typescript-checker.js +0 -76
  313. package/esm/code-quality/checkers/typescript-checker.js.map +0 -1
  314. package/esm/code-quality/formatters/eslint-formatter.js +0 -56
  315. package/esm/code-quality/formatters/eslint-formatter.js.map +0 -1
  316. package/esm/code-quality/formatters/summary-formatter.js +0 -102
  317. package/esm/code-quality/formatters/summary-formatter.js.map +0 -1
  318. package/esm/code-quality/formatters/typescript-formatter.js +0 -64
  319. package/esm/code-quality/formatters/typescript-formatter.js.map +0 -1
  320. package/esm/code-quality/project-scanner.js +0 -78
  321. package/esm/code-quality/project-scanner.js.map +0 -1
  322. package/esm/code-quality/single-file-checker.js +0 -153
  323. package/esm/code-quality/single-file-checker.js.map +0 -1
  324. package/esm/starters/http-server-starter.js +0 -34
  325. package/esm/starters/http-server-starter.js.map +0 -1
  326. package/esm/utils/internal.js +0 -3
  327. package/esm/utils/internal.js.map +0 -1
@@ -0,0 +1,287 @@
1
+ 'use strict';var devLogger=require('./dev-logger.js');/**
2
+ * LayerExecutor handles the execution of file reloads based on their layer type
3
+ *
4
+ * Strategy:
5
+ * 1. Determine reload type (FSR or HMR) based on invalidation chain
6
+ * 2. For FSR: Restart connectors if needed, reload special files
7
+ * 3. For HMR: Clear module cache, reload affected modules
8
+ */
9
+ class LayerExecutor {
10
+ dependencyGraph;
11
+ specialFilesCollector;
12
+ connectors;
13
+ moduleLoader;
14
+ configLoader;
15
+ constructor(dependencyGraph, specialFilesCollector, connectors, moduleLoader, configLoader) {
16
+ this.dependencyGraph = dependencyGraph;
17
+ this.specialFilesCollector = specialFilesCollector;
18
+ this.connectors = connectors;
19
+ this.moduleLoader = moduleLoader;
20
+ this.configLoader = configLoader;
21
+ }
22
+ /**
23
+ * Execute batch reload for multiple changed files
24
+ * @param changedPaths Array of relative paths that changed
25
+ * @param filesMap Map of all FileManager instances
26
+ */
27
+ async executeBatchReload(changedPaths, filesMap) {
28
+ if (changedPaths.length === 0) {
29
+ return;
30
+ }
31
+ // Build combined invalidation chain for all changed files
32
+ const allInvalidatedFiles = new Set();
33
+ const fsrFiles = [];
34
+ const hmrFiles = [];
35
+ for (const relativePath of changedPaths) {
36
+ const fileManager = filesMap.get(relativePath);
37
+ if (!fileManager)
38
+ continue;
39
+ // Get invalidation chain for this file
40
+ const invalidationChain = this.dependencyGraph.getInvalidationChain(relativePath);
41
+ // Add to combined set
42
+ invalidationChain.forEach((file) => allInvalidatedFiles.add(file));
43
+ // Determine strategy for this file
44
+ const strategy = this.determineReloadStrategy(invalidationChain, filesMap);
45
+ if (strategy === "FSR") {
46
+ fsrFiles.push(relativePath);
47
+ }
48
+ else {
49
+ hmrFiles.push(relativePath);
50
+ }
51
+ }
52
+ // Separate config files from other FSR files
53
+ const configFiles = fsrFiles.filter((path) => {
54
+ const file = filesMap.get(path);
55
+ return file?.type === "config";
56
+ });
57
+ const nonConfigFsrFiles = fsrFiles.filter((path) => {
58
+ const file = filesMap.get(path);
59
+ return file?.type !== "config";
60
+ });
61
+ // Log once for the entire batch
62
+ if (configFiles.length > 0) {
63
+ // Get affected connectors
64
+ const affectedConnectors = this.connectors.filter((connector) => connector.shouldRestart(configFiles));
65
+ if (configFiles.length === 1) {
66
+ devLogger.devLogConfig(configFiles[0], affectedConnectors.map((connector) => connector.name));
67
+ }
68
+ else {
69
+ devLogger.devLogConfig(`${configFiles.length} files`, affectedConnectors.map((connector) => connector.name));
70
+ }
71
+ // await Promise.all(affectedConnectors.map((connector) => connector.restart()));
72
+ }
73
+ if (nonConfigFsrFiles.length > 0) {
74
+ if (nonConfigFsrFiles.length === 1) {
75
+ devLogger.devLogFSR(nonConfigFsrFiles[0]);
76
+ }
77
+ else {
78
+ devLogger.devLogFSR(`${nonConfigFsrFiles.length} files`);
79
+ }
80
+ }
81
+ if (hmrFiles.length > 0 && fsrFiles.length === 0) {
82
+ if (hmrFiles.length === 1) {
83
+ const dependentCount = this.dependencyGraph.getInvalidationChain(hmrFiles[0]).length - 1;
84
+ devLogger.devLogHMR(hmrFiles[0], dependentCount > 0 ? dependentCount : undefined);
85
+ }
86
+ else {
87
+ hmrFiles.forEach(file => {
88
+ const dependentCount = this.dependencyGraph.getInvalidationChain(file).length - 1;
89
+ devLogger.devLogHMR(file, dependentCount > 0 ? dependentCount : undefined);
90
+ });
91
+ }
92
+ }
93
+ // Execute reload once for all files
94
+ const invalidationChain = Array.from(allInvalidatedFiles);
95
+ if (fsrFiles.length > 0) {
96
+ // If any file requires FSR, do FSR for all
97
+ const firstFsrFile = filesMap.get(fsrFiles[0]);
98
+ await this.executeFullServerRestart(firstFsrFile, invalidationChain, filesMap);
99
+ }
100
+ else {
101
+ // All files are HMR
102
+ const firstHmrFile = filesMap.get(hmrFiles[0]);
103
+ await this.executeHotModuleReplacement(firstHmrFile, invalidationChain, filesMap);
104
+ }
105
+ }
106
+ /**
107
+ * Determine if we need FSR or HMR
108
+ * FSR is needed if ANY file in the invalidation chain is FSR layer
109
+ */
110
+ determineReloadStrategy(invalidationChain, filesMap) {
111
+ for (const relativePath of invalidationChain) {
112
+ const file = filesMap.get(relativePath);
113
+ if (file && file.layer === "FSR") {
114
+ return "FSR";
115
+ }
116
+ }
117
+ return "HMR";
118
+ }
119
+ /**
120
+ * Execute Full Server Restart
121
+ * This happens when config, routes, or other FSR layer files change
122
+ */
123
+ async executeFullServerRestart(changedFile, invalidationChain, filesMap) {
124
+ // Step 1: Handle config files specially
125
+ const configFiles = invalidationChain
126
+ .map((path) => filesMap.get(path))
127
+ .filter((file) => file !== undefined && file.type === "config");
128
+ if (configFiles.length > 0) {
129
+ // Reload config files first
130
+ for (const configFile of configFiles) {
131
+ await this.configLoader.reloadConfig(configFile);
132
+ }
133
+ // Restart only affected connectors
134
+ await this.restartAffectedConnectors(invalidationChain);
135
+ // Clear module cache for invalidation chain
136
+ this.clearModuleCacheForChain(invalidationChain, filesMap);
137
+ // Reload special files if affected
138
+ await this.reloadAffectedSpecialFiles(invalidationChain);
139
+ return;
140
+ }
141
+ // Step 2: For non-config FSR (routes, etc.), restart all connectors
142
+ await this.restartAffectedConnectors(invalidationChain);
143
+ // Step 3: Clear module cache for invalidation chain
144
+ this.clearModuleCacheForChain(invalidationChain, filesMap);
145
+ // Step 4: Reload special files if affected
146
+ await this.reloadAffectedSpecialFiles(invalidationChain);
147
+ }
148
+ /**
149
+ * Execute Hot Module Replacement
150
+ * This happens when only HMR layer files (controllers, services, etc.) change
151
+ */
152
+ async executeHotModuleReplacement(changedFile, invalidationChain, filesMap) {
153
+ // Step 1: Clear module cache for invalidation chain
154
+ this.clearModuleCacheForChain(invalidationChain, filesMap);
155
+ // Step 2: Reload affected modules
156
+ await this.reloadAffectedModules(invalidationChain, filesMap);
157
+ }
158
+ /**
159
+ * Restart connectors that are affected by the changed files
160
+ */
161
+ async restartAffectedConnectors(affectedFiles) {
162
+ const connectorsToRestart = this.connectors.filter((connector) => connector.shouldRestart(affectedFiles));
163
+ if (connectorsToRestart.length === 0) {
164
+ return;
165
+ }
166
+ // Restart in priority order
167
+ for (const connector of connectorsToRestart) {
168
+ await connector.restart();
169
+ }
170
+ }
171
+ /**
172
+ * Clear Node.js module cache for the invalidation chain
173
+ */
174
+ clearModuleCacheForChain(invalidationChain, filesMap) {
175
+ for (const relativePath of invalidationChain) {
176
+ const file = filesMap.get(relativePath);
177
+ if (file) {
178
+ this.moduleLoader.clearModuleCache(file.absolutePath);
179
+ // Update module version for HMR cache busting
180
+ if (typeof global.__updateModuleVersion === "function") {
181
+ global.__updateModuleVersion(`./${file.cachePath}`, Date.now());
182
+ }
183
+ }
184
+ }
185
+ }
186
+ /**
187
+ * Reload special files that are affected by the change
188
+ * This includes main, routes, events, locales
189
+ * Special files are reloaded if they are in the invalidation chain OR if they depend on files in the chain
190
+ */
191
+ async reloadAffectedSpecialFiles(invalidationChain) {
192
+ // Helper to check if a file is affected (either in chain or depends on chain)
193
+ const isAffected = (file) => {
194
+ // Direct match: file itself is in the chain
195
+ if (invalidationChain.includes(file.relativePath)) {
196
+ return true;
197
+ }
198
+ // Indirect match: file depends on something in the chain
199
+ for (const dep of file.dependencies) {
200
+ if (invalidationChain.includes(dep)) {
201
+ return true;
202
+ }
203
+ }
204
+ return false;
205
+ };
206
+ // Check which special files are affected
207
+ const affectedMainFiles = this.specialFilesCollector.getMainFiles().filter(isAffected);
208
+ const affectedRouteFiles = this.specialFilesCollector.getRouteFiles().filter(isAffected);
209
+ const affectedEventFiles = this.specialFilesCollector.getEventFiles().filter(isAffected);
210
+ const affectedLocaleFiles = this.specialFilesCollector.getLocaleFiles().filter(isAffected);
211
+ // Reload affected special files
212
+ if (affectedMainFiles.length > 0) {
213
+ for (const file of affectedMainFiles) {
214
+ await this.moduleLoader.reloadModule(file);
215
+ }
216
+ }
217
+ if (affectedLocaleFiles.length > 0) {
218
+ for (const file of affectedLocaleFiles) {
219
+ await this.moduleLoader.reloadModule(file);
220
+ }
221
+ }
222
+ if (affectedEventFiles.length > 0) {
223
+ for (const file of affectedEventFiles) {
224
+ await this.moduleLoader.reloadModule(file);
225
+ }
226
+ }
227
+ if (affectedRouteFiles.length > 0) {
228
+ for (const file of affectedRouteFiles) {
229
+ await this.moduleLoader.reloadModule(file);
230
+ }
231
+ }
232
+ }
233
+ /**
234
+ * Reload affected modules (for HMR)
235
+ * Special files (main, routes, events, locales) need to be actively reloaded
236
+ * Other files will be loaded on next import
237
+ */
238
+ async reloadAffectedModules(invalidationChain, filesMap) {
239
+ // Helper to check if a file is affected (either in chain or depends on chain)
240
+ const isAffected = (file) => {
241
+ // Direct match: file itself is in the chain
242
+ if (invalidationChain.includes(file.relativePath)) {
243
+ return true;
244
+ }
245
+ // Indirect match: file depends on something in the chain
246
+ for (const dep of file.dependencies) {
247
+ if (invalidationChain.includes(dep)) {
248
+ return true;
249
+ }
250
+ }
251
+ return false;
252
+ };
253
+ // Check which special files are affected
254
+ const affectedMainFiles = this.specialFilesCollector.getMainFiles().filter(isAffected);
255
+ const affectedRouteFiles = this.specialFilesCollector.getRouteFiles().filter(isAffected);
256
+ const affectedEventFiles = this.specialFilesCollector.getEventFiles().filter(isAffected);
257
+ const affectedLocaleFiles = this.specialFilesCollector.getLocaleFiles().filter(isAffected);
258
+ const hasSpecialFiles = affectedMainFiles.length > 0 ||
259
+ affectedRouteFiles.length > 0 ||
260
+ affectedEventFiles.length > 0 ||
261
+ affectedLocaleFiles.length > 0;
262
+ if (!hasSpecialFiles) {
263
+ return;
264
+ }
265
+ // Reload special files
266
+ if (affectedMainFiles.length > 0) {
267
+ for (const file of affectedMainFiles) {
268
+ await this.moduleLoader.reloadModule(file);
269
+ }
270
+ }
271
+ if (affectedLocaleFiles.length > 0) {
272
+ for (const file of affectedLocaleFiles) {
273
+ await this.moduleLoader.reloadModule(file);
274
+ }
275
+ }
276
+ if (affectedEventFiles.length > 0) {
277
+ for (const file of affectedEventFiles) {
278
+ await this.moduleLoader.reloadModule(file);
279
+ }
280
+ }
281
+ if (affectedRouteFiles.length > 0) {
282
+ for (const file of affectedRouteFiles) {
283
+ await this.moduleLoader.reloadModule(file);
284
+ }
285
+ }
286
+ }
287
+ }exports.LayerExecutor=LayerExecutor;//# sourceMappingURL=layer-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer-executor.js","sources":["../../src/dev2-server/layer-executor.ts"],"sourcesContent":[null],"names":["devLogConfig","devLogFSR","devLogHMR"],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import { FileManager } from "./file-manager";
2
+ import type { FileManifest } from "./types";
3
+ /**
4
+ * Manifest structure with metadata and files
5
+ */
6
+ export type Manifest = {
7
+ version: string;
8
+ lastBuildTime: number;
9
+ projectHash?: string;
10
+ stats: {
11
+ totalFiles: number;
12
+ totalDependencies: number;
13
+ };
14
+ files: Record<string, FileManifest>;
15
+ };
16
+ export declare class ManifestManager {
17
+ private readonly files;
18
+ /**
19
+ * Manifest data with metadata
20
+ */
21
+ private manifest;
22
+ /**
23
+ * Constructor
24
+ */
25
+ constructor(files: Map<string, FileManager>);
26
+ /**
27
+ * Initialize manifest manager
28
+ * @returns true if manifest exists, false otherwise
29
+ */
30
+ init(): Promise<boolean>;
31
+ /**
32
+ * Save manifest to disk
33
+ */
34
+ save(): Promise<void>;
35
+ /**
36
+ * Get file manifest data
37
+ */
38
+ getFile(filePath: string): FileManifest | undefined;
39
+ /**
40
+ * Check if file exists in manifest
41
+ */
42
+ hasFile(filePath: string): boolean;
43
+ /**
44
+ * Set file manifest data
45
+ */
46
+ setFile(filePath: string, fileManifest: FileManifest): void;
47
+ /**
48
+ * Remove file from manifest
49
+ */
50
+ removeFile(filePath: string): void;
51
+ /**
52
+ * Get all file paths in manifest
53
+ */
54
+ getAllFilePaths(): string[];
55
+ /**
56
+ * Get all file manifests
57
+ */
58
+ getAllFiles(): Record<string, FileManifest>;
59
+ /**
60
+ * Get manifest metadata
61
+ */
62
+ getMetadata(): {
63
+ version: string;
64
+ lastBuildTime: number;
65
+ projectHash: string;
66
+ stats: {
67
+ totalFiles: number;
68
+ totalDependencies: number;
69
+ };
70
+ };
71
+ /**
72
+ * Calculate total dependencies across all files
73
+ */
74
+ private calculateTotalDependencies;
75
+ /**
76
+ * Clear all files from manifest
77
+ */
78
+ clear(): void;
79
+ }
80
+ //# sourceMappingURL=manifest-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-manager.d.ts","sourceRoot":"","sources":["../../src/dev2-server/manifest-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACrC,CAAC;AAEF,qBAAa,eAAe;IAiBP,OAAO,CAAC,QAAQ,CAAC,KAAK;IAhBzC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAQd;IAEF;;OAEG;gBACiC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAEnE;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IASlC;;OAEG;IACI,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI1D;;OAEG;IACI,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIzC;;OAEG;IACI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI;IAIlE;;OAEG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACI,eAAe,IAAI,MAAM,EAAE;IAIlC;;OAEG;IACI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAIlD;;OAEG;IACI,WAAW;;;;;;;;;IASlB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAOlC;;OAEG;IACI,KAAK,IAAI,IAAI;CAOrB"}
@@ -0,0 +1,107 @@
1
+ 'use strict';var fs=require('@mongez/fs'),flags=require('./flags.js');class ManifestManager {
2
+ files;
3
+ /**
4
+ * Manifest data with metadata
5
+ */
6
+ manifest = {
7
+ version: "1.0.0",
8
+ lastBuildTime: Date.now(),
9
+ stats: {
10
+ totalFiles: 0,
11
+ totalDependencies: 0,
12
+ },
13
+ files: {},
14
+ };
15
+ /**
16
+ * Constructor
17
+ */
18
+ constructor(files) {
19
+ this.files = files;
20
+ }
21
+ /**
22
+ * Initialize manifest manager
23
+ * @returns true if manifest exists, false otherwise
24
+ */
25
+ async init() {
26
+ if (await fs.fileExistsAsync(flags.MANIFEST_PATH)) {
27
+ this.manifest = await fs.getJsonFileAsync(flags.MANIFEST_PATH);
28
+ return true;
29
+ }
30
+ else {
31
+ return false;
32
+ }
33
+ }
34
+ /**
35
+ * Save manifest to disk
36
+ */
37
+ async save() {
38
+ // Update stats before saving
39
+ this.manifest.stats.totalFiles = Object.keys(this.manifest.files).length;
40
+ this.manifest.stats.totalDependencies = this.calculateTotalDependencies();
41
+ this.manifest.lastBuildTime = Date.now();
42
+ await fs.putFileAsync(flags.MANIFEST_PATH, JSON.stringify(this.manifest, null, 2));
43
+ }
44
+ /**
45
+ * Get file manifest data
46
+ */
47
+ getFile(filePath) {
48
+ return this.manifest.files[filePath];
49
+ }
50
+ /**
51
+ * Check if file exists in manifest
52
+ */
53
+ hasFile(filePath) {
54
+ return filePath in this.manifest.files;
55
+ }
56
+ /**
57
+ * Set file manifest data
58
+ */
59
+ setFile(filePath, fileManifest) {
60
+ this.manifest.files[filePath] = fileManifest;
61
+ }
62
+ /**
63
+ * Remove file from manifest
64
+ */
65
+ removeFile(filePath) {
66
+ delete this.manifest.files[filePath];
67
+ }
68
+ /**
69
+ * Get all file paths in manifest
70
+ */
71
+ getAllFilePaths() {
72
+ return Object.keys(this.manifest.files);
73
+ }
74
+ /**
75
+ * Get all file manifests
76
+ */
77
+ getAllFiles() {
78
+ return this.manifest.files;
79
+ }
80
+ /**
81
+ * Get manifest metadata
82
+ */
83
+ getMetadata() {
84
+ return {
85
+ version: this.manifest.version,
86
+ lastBuildTime: this.manifest.lastBuildTime,
87
+ projectHash: this.manifest.projectHash,
88
+ stats: this.manifest.stats,
89
+ };
90
+ }
91
+ /**
92
+ * Calculate total dependencies across all files
93
+ */
94
+ calculateTotalDependencies() {
95
+ return Object.values(this.manifest.files).reduce((total, file) => total + (file.dependencies?.length || 0), 0);
96
+ }
97
+ /**
98
+ * Clear all files from manifest
99
+ */
100
+ clear() {
101
+ this.manifest.files = {};
102
+ this.manifest.stats = {
103
+ totalFiles: 0,
104
+ totalDependencies: 0,
105
+ };
106
+ }
107
+ }exports.ManifestManager=ManifestManager;//# sourceMappingURL=manifest-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-manager.js","sources":["../../src/dev2-server/manifest-manager.ts"],"sourcesContent":[null],"names":["fileExistsAsync","MANIFEST_PATH","getJsonFileAsync","putFileAsync"],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import type { FileManager } from "./file-manager";
2
+ import type { SpecialFilesCollector } from "./special-files-collector";
3
+ /**
4
+ * Module Loader
5
+ * Dynamically loads and manages application modules (main, routes, events, locales)
6
+ * Handles module cache invalidation for HMR
7
+ */
8
+ export declare class ModuleLoader {
9
+ private readonly specialFilesCollector;
10
+ /**
11
+ * Loaded modules cache
12
+ * Maps absolute path to loaded module
13
+ */
14
+ private readonly loadedModules;
15
+ /**
16
+ * Constructor
17
+ */
18
+ constructor(specialFilesCollector: SpecialFilesCollector);
19
+ /**
20
+ * Load all special files in correct order
21
+ */
22
+ loadAll(): Promise<void>;
23
+ /**
24
+ * Load all main.ts files
25
+ * Main files are module entry points that run initialization code
26
+ * Loaded in parallel as they should be independent
27
+ */
28
+ loadMainFiles(): Promise<void>;
29
+ /**
30
+ * Load all locale files
31
+ * Locale files register translations
32
+ * Loaded in parallel as they are independent
33
+ */
34
+ loadLocaleFiles(): Promise<void>;
35
+ /**
36
+ * Load all event files
37
+ * Event files register event handlers
38
+ * Loaded in parallel as they are independent
39
+ */
40
+ loadEventFiles(): Promise<void>;
41
+ /**
42
+ * Load all route files
43
+ * Route files register HTTP routes
44
+ * Loaded sequentially as order might matter
45
+ */
46
+ loadRouteFiles(): Promise<void>;
47
+ /**
48
+ * Load a single module
49
+ * @param file FileManager instance
50
+ * @param type Module type for logging
51
+ * @param bustCache Whether to add timestamp for cache busting (for HMR)
52
+ */
53
+ private loadModule;
54
+ /**
55
+ * Reload a single module (for HMR)
56
+ * @param file FileManager instance
57
+ */
58
+ reloadModule(file: FileManager): Promise<void>;
59
+ /**
60
+ * Clear module cache for a specific file
61
+ * This forces Node.js to re-import the module
62
+ * @param absolutePath Absolute path to the module
63
+ */
64
+ clearModuleCache(absolutePath: string): void;
65
+ /**
66
+ * Clear module cache for multiple files
67
+ * @param absolutePaths Array of absolute paths
68
+ */
69
+ clearModuleCacheMultiple(absolutePaths: string[]): void;
70
+ /**
71
+ * Clear all application module cache
72
+ * Used for full server restart
73
+ */
74
+ clearAllModuleCache(): void;
75
+ /**
76
+ * Get loaded module by path
77
+ * @param absolutePath Absolute path to the module
78
+ */
79
+ getLoadedModule(absolutePath: string): any | undefined;
80
+ /**
81
+ * Check if a module is loaded
82
+ * @param absolutePath Absolute path to the module
83
+ */
84
+ isModuleLoaded(absolutePath: string): boolean;
85
+ /**
86
+ * Get all loaded module paths
87
+ */
88
+ getLoadedModulePaths(): string[];
89
+ /**
90
+ * Get statistics about loaded modules
91
+ */
92
+ getStats(): {
93
+ totalLoaded: number;
94
+ mainFiles: number;
95
+ routeFiles: number;
96
+ eventFiles: number;
97
+ localeFiles: number;
98
+ };
99
+ }
100
+ //# sourceMappingURL=module-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-loader.d.ts","sourceRoot":"","sources":["../../src/dev2-server/module-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE;;;;GAIG;AACH,qBAAa,YAAY;IAUX,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IATlD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IAExD;;OAEG;gBAC0B,qBAAqB,EAAE,qBAAqB;IAEzE;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrC;;;;OAIG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3C;;;;OAIG;IACU,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAe7C;;;;OAIG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5C;;;;OAIG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB5C;;;;;OAKG;YACW,UAAU;IA8CxB;;;OAGG;IACU,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC3D;;;;OAIG;IACI,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAKnD;;;OAGG;IACI,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;IAM9D;;;OAGG;IACI,mBAAmB,IAAI,IAAI;IAOlC;;;OAGG;IACI,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAI7D;;;OAGG;IACI,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAIpD;;OAEG;IACI,oBAAoB,IAAI,MAAM,EAAE;IAIvC;;OAEG;IACI,QAAQ,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB;CASF"}