@warlock.js/core 4.0.48 → 4.0.59

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 (723) hide show
  1. package/esm/application.d.ts +27 -0
  2. package/esm/application.d.ts.map +1 -0
  3. package/esm/bootstrap/setup.d.ts +2 -0
  4. package/esm/bootstrap/setup.d.ts.map +1 -0
  5. package/esm/bootstrap/setup.js +14 -0
  6. package/esm/bootstrap/setup.js.map +1 -0
  7. package/esm/bootstrap.d.ts +2 -0
  8. package/esm/bootstrap.d.ts.map +1 -0
  9. package/esm/bootstrap.js +5 -0
  10. package/esm/bootstrap.js.map +1 -0
  11. package/esm/cache/database-cache-driver.d.ts +56 -0
  12. package/esm/cache/database-cache-driver.d.ts.map +1 -0
  13. package/esm/cache/database-cache-driver.js +112 -0
  14. package/esm/cache/database-cache-driver.js.map +1 -0
  15. package/esm/cache/index.d.ts +3 -0
  16. package/esm/cache/index.d.ts.map +1 -0
  17. package/esm/cache/index.js +1 -0
  18. package/esm/cache/index.js.map +1 -0
  19. package/esm/cli/cli-command.d.ts +115 -0
  20. package/esm/cli/cli-command.d.ts.map +1 -0
  21. package/esm/cli/cli-command.js +227 -0
  22. package/esm/cli/cli-command.js.map +1 -0
  23. package/esm/cli/cli-commands.manager.d.ts +71 -0
  24. package/esm/cli/cli-commands.manager.d.ts.map +1 -0
  25. package/esm/cli/cli-commands.manager.js +348 -0
  26. package/esm/cli/cli-commands.manager.js.map +1 -0
  27. package/esm/cli/cli-commands.utils.d.ts +73 -0
  28. package/esm/cli/cli-commands.utils.d.ts.map +1 -0
  29. package/esm/cli/cli-commands.utils.js +195 -0
  30. package/esm/cli/cli-commands.utils.js.map +1 -0
  31. package/esm/cli/commands/add.command.d.ts +2 -0
  32. package/esm/cli/commands/add.command.d.ts.map +1 -0
  33. package/esm/cli/commands/add.command.js +15 -0
  34. package/esm/cli/commands/add.command.js.map +1 -0
  35. package/esm/cli/commands/build.command.d.ts +2 -0
  36. package/esm/cli/commands/build.command.d.ts.map +1 -0
  37. package/esm/cli/commands/build.command.js +8 -0
  38. package/esm/cli/commands/build.command.js.map +1 -0
  39. package/esm/cli/commands/dev-server.command.d.ts +2 -0
  40. package/esm/cli/commands/dev-server.command.d.ts.map +1 -0
  41. package/esm/cli/commands/dev-server.command.js +16 -0
  42. package/esm/cli/commands/dev-server.command.js.map +1 -0
  43. package/esm/cli/commands/migrate.command.d.ts +2 -0
  44. package/esm/cli/commands/migrate.command.d.ts.map +1 -0
  45. package/esm/cli/commands/migrate.command.js +37 -0
  46. package/esm/cli/commands/migrate.command.js.map +1 -0
  47. package/esm/cli/commands/seed.command.d.ts +2 -0
  48. package/esm/cli/commands/seed.command.d.ts.map +1 -0
  49. package/esm/cli/commands/seed.command.js +17 -0
  50. package/esm/cli/commands/seed.command.js.map +1 -0
  51. package/esm/cli/commands/start-production.command.d.ts +2 -0
  52. package/esm/cli/commands/start-production.command.d.ts.map +1 -0
  53. package/esm/cli/commands/start-production.command.js +65 -0
  54. package/esm/cli/commands/start-production.command.js.map +1 -0
  55. package/esm/cli/commands/typings-generator.command.d.ts +2 -0
  56. package/esm/cli/commands/typings-generator.command.d.ts.map +1 -0
  57. package/esm/cli/commands/typings-generator.command.js +37 -0
  58. package/esm/cli/commands/typings-generator.command.js.map +1 -0
  59. package/esm/cli/commands-loader.d.ts +18 -0
  60. package/esm/cli/commands-loader.d.ts.map +1 -0
  61. package/esm/cli/commands-loader.js +45 -0
  62. package/esm/cli/commands-loader.js.map +1 -0
  63. package/esm/cli/framework-cli-commands.d.ts +2 -0
  64. package/esm/cli/framework-cli-commands.d.ts.map +1 -0
  65. package/esm/cli/framework-cli-commands.js +11 -0
  66. package/esm/cli/framework-cli-commands.js.map +1 -0
  67. package/esm/cli/index.d.ts +3 -0
  68. package/esm/cli/index.d.ts.map +1 -0
  69. package/esm/cli/index.js +1 -4
  70. package/esm/cli/index.js.map +1 -1
  71. package/esm/cli/parse-cli-args.d.ts +18 -0
  72. package/esm/cli/parse-cli-args.d.ts.map +1 -0
  73. package/esm/cli/parse-cli-args.js +82 -0
  74. package/esm/cli/parse-cli-args.js.map +1 -0
  75. package/esm/cli/start.d.ts +2 -0
  76. package/esm/cli/start.d.ts.map +1 -0
  77. package/esm/cli/start.js +2 -6
  78. package/esm/cli/start.js.map +1 -1
  79. package/esm/cli/string-similarity.d.ts +44 -0
  80. package/esm/cli/string-similarity.d.ts.map +1 -0
  81. package/esm/cli/string-similarity.js +57 -0
  82. package/esm/cli/string-similarity.js.map +1 -0
  83. package/esm/cli/types.d.ts +206 -0
  84. package/esm/cli/types.d.ts.map +1 -0
  85. package/esm/config/config-getter.d.ts +35 -0
  86. package/esm/config/config-getter.d.ts.map +1 -0
  87. package/esm/config/config-getter.js +21 -0
  88. package/esm/config/config-getter.js.map +1 -0
  89. package/esm/config/config-handlers.d.ts +19 -0
  90. package/esm/config/config-handlers.d.ts.map +1 -0
  91. package/esm/config/config-handlers.js +47 -0
  92. package/esm/config/config-handlers.js.map +1 -0
  93. package/esm/config/config-loader.d.ts +37 -0
  94. package/esm/config/config-loader.d.ts.map +1 -0
  95. package/esm/config/config-loader.js +85 -0
  96. package/esm/config/config-loader.js.map +1 -0
  97. package/esm/config/config-manager.d.ts +22 -0
  98. package/esm/config/config-manager.d.ts.map +1 -0
  99. package/esm/config/config-manager.js +25 -0
  100. package/esm/config/config-manager.js.map +1 -0
  101. package/esm/config/config-special-handlers.d.ts +17 -0
  102. package/esm/config/config-special-handlers.d.ts.map +1 -0
  103. package/esm/config/config-special-handlers.js +23 -0
  104. package/esm/config/config-special-handlers.js.map +1 -0
  105. package/esm/config/index.d.ts +5 -0
  106. package/esm/config/index.d.ts.map +1 -0
  107. package/esm/config/load-config-files.d.ts +6 -0
  108. package/esm/config/load-config-files.d.ts.map +1 -0
  109. package/esm/config/load-config-files.js +19 -0
  110. package/esm/config/load-config-files.js.map +1 -0
  111. package/esm/config/types.d.ts +52 -0
  112. package/esm/config/types.d.ts.map +1 -0
  113. package/esm/database/index.d.ts +4 -0
  114. package/esm/database/index.d.ts.map +1 -0
  115. package/esm/database/migrate-action.d.ts +8 -0
  116. package/esm/database/migrate-action.d.ts.map +1 -0
  117. package/esm/database/migrate-action.js +95 -0
  118. package/esm/database/migrate-action.js.map +1 -0
  119. package/esm/database/models/database-log/database-log.d.ts +16 -0
  120. package/esm/database/models/database-log/database-log.d.ts.map +1 -0
  121. package/esm/database/models/database-log/database-log.js +17 -0
  122. package/esm/database/models/database-log/database-log.js.map +1 -0
  123. package/esm/database/models/database-log/index.d.ts +2 -0
  124. package/esm/database/models/database-log/index.d.ts.map +1 -0
  125. package/esm/database/seed-command-action.d.ts +3 -0
  126. package/esm/database/seed-command-action.d.ts.map +1 -0
  127. package/esm/database/seed-command-action.js +36 -0
  128. package/esm/database/seed-command-action.js.map +1 -0
  129. package/esm/database/seeds/index.d.ts +3 -0
  130. package/esm/database/seeds/index.d.ts.map +1 -0
  131. package/esm/database/seeds/seeder.d.ts +36 -0
  132. package/esm/database/seeds/seeder.d.ts.map +1 -0
  133. package/esm/database/seeds/seeder.js +6 -0
  134. package/esm/database/seeds/seeder.js.map +1 -0
  135. package/esm/database/seeds/seeders.manager.d.ts +47 -0
  136. package/esm/database/seeds/seeders.manager.d.ts.map +1 -0
  137. package/esm/database/seeds/seeders.manager.js +137 -0
  138. package/esm/database/seeds/seeders.manager.js.map +1 -0
  139. package/esm/database/seeds/seeds-table-migration.d.ts +8 -0
  140. package/esm/database/seeds/seeds-table-migration.d.ts.map +1 -0
  141. package/esm/database/seeds/seeds-table-migration.js +18 -0
  142. package/esm/database/seeds/seeds-table-migration.js.map +1 -0
  143. package/esm/database/seeds/types.d.ts +13 -0
  144. package/esm/database/seeds/types.d.ts.map +1 -0
  145. package/esm/database/seeds/utils.d.ts +2 -0
  146. package/esm/database/seeds/utils.d.ts.map +1 -0
  147. package/esm/database/seeds/utils.js +1 -0
  148. package/esm/database/seeds/utils.js.map +1 -0
  149. package/esm/database/utils.d.ts +18 -0
  150. package/esm/database/utils.d.ts.map +1 -0
  151. package/esm/database/utils.js +30 -0
  152. package/esm/database/utils.js.map +1 -0
  153. package/esm/dev2-server/connectors/base-connector.d.ts +49 -0
  154. package/esm/dev2-server/connectors/base-connector.d.ts.map +1 -0
  155. package/esm/dev2-server/connectors/base-connector.js +48 -0
  156. package/esm/dev2-server/connectors/base-connector.js.map +1 -0
  157. package/esm/dev2-server/connectors/cache-connector.d.ts +23 -0
  158. package/esm/dev2-server/connectors/cache-connector.d.ts.map +1 -0
  159. package/esm/dev2-server/connectors/cache-connector.js +35 -0
  160. package/esm/dev2-server/connectors/cache-connector.js.map +1 -0
  161. package/esm/dev2-server/connectors/connectors-manager.d.ts +38 -0
  162. package/esm/dev2-server/connectors/connectors-manager.d.ts.map +1 -0
  163. package/esm/dev2-server/connectors/connectors-manager.js +81 -0
  164. package/esm/dev2-server/connectors/connectors-manager.js.map +1 -0
  165. package/esm/dev2-server/connectors/database-connector.d.ts +23 -0
  166. package/esm/dev2-server/connectors/database-connector.d.ts.map +1 -0
  167. package/esm/dev2-server/connectors/database-connector.js +51 -0
  168. package/esm/dev2-server/connectors/database-connector.js.map +1 -0
  169. package/esm/dev2-server/connectors/http-connector.d.ts +29 -0
  170. package/esm/dev2-server/connectors/http-connector.d.ts.map +1 -0
  171. package/esm/dev2-server/connectors/http-connector.js +69 -0
  172. package/esm/dev2-server/connectors/http-connector.js.map +1 -0
  173. package/esm/dev2-server/connectors/index.d.ts +12 -0
  174. package/esm/dev2-server/connectors/index.d.ts.map +1 -0
  175. package/esm/dev2-server/connectors/storage.connector.d.ts +23 -0
  176. package/esm/dev2-server/connectors/storage.connector.d.ts.map +1 -0
  177. package/esm/dev2-server/connectors/storage.connector.js +29 -0
  178. package/esm/dev2-server/connectors/storage.connector.js.map +1 -0
  179. package/esm/dev2-server/connectors/types.d.ts +51 -0
  180. package/esm/dev2-server/connectors/types.d.ts.map +1 -0
  181. package/esm/dev2-server/connectors/types.js +10 -0
  182. package/esm/dev2-server/connectors/types.js.map +1 -0
  183. package/esm/dev2-server/create-worker.d.ts +34 -0
  184. package/esm/dev2-server/create-worker.d.ts.map +1 -0
  185. package/esm/dev2-server/create-worker.js +37 -0
  186. package/esm/dev2-server/create-worker.js.map +1 -0
  187. package/esm/dev2-server/dependency-graph.d.ts +93 -0
  188. package/esm/dev2-server/dependency-graph.d.ts.map +1 -0
  189. package/esm/dev2-server/dependency-graph.js +266 -0
  190. package/esm/dev2-server/dependency-graph.js.map +1 -0
  191. package/esm/dev2-server/dev-logger.d.ts +14 -0
  192. package/esm/dev2-server/dev-logger.d.ts.map +1 -0
  193. package/esm/dev2-server/dev-logger.js +130 -0
  194. package/esm/dev2-server/dev-logger.js.map +1 -0
  195. package/esm/dev2-server/development-server.d.ts +47 -0
  196. package/esm/dev2-server/development-server.d.ts.map +1 -0
  197. package/esm/dev2-server/development-server.js +149 -0
  198. package/esm/dev2-server/development-server.js.map +1 -0
  199. package/esm/dev2-server/events.d.ts +5 -0
  200. package/esm/dev2-server/events.d.ts.map +1 -0
  201. package/esm/dev2-server/events.js +4 -0
  202. package/esm/dev2-server/events.js.map +1 -0
  203. package/esm/dev2-server/export-analyzer.d.ts +84 -0
  204. package/esm/dev2-server/export-analyzer.d.ts.map +1 -0
  205. package/esm/dev2-server/export-analyzer.js +206 -0
  206. package/esm/dev2-server/export-analyzer.js.map +1 -0
  207. package/esm/dev2-server/file-event-handler.d.ts +156 -0
  208. package/esm/dev2-server/file-event-handler.d.ts.map +1 -0
  209. package/esm/dev2-server/file-event-handler.js +300 -0
  210. package/esm/dev2-server/file-event-handler.js.map +1 -0
  211. package/esm/dev2-server/file-manager.d.ts +385 -0
  212. package/esm/dev2-server/file-manager.d.ts.map +1 -0
  213. package/esm/dev2-server/file-manager.js +580 -0
  214. package/esm/dev2-server/file-manager.js.map +1 -0
  215. package/esm/dev2-server/file-operations.d.ts +203 -0
  216. package/esm/dev2-server/file-operations.d.ts.map +1 -0
  217. package/esm/dev2-server/file-operations.js +365 -0
  218. package/esm/dev2-server/file-operations.js.map +1 -0
  219. package/esm/dev2-server/files-orchestrator.d.ts +146 -0
  220. package/esm/dev2-server/files-orchestrator.d.ts.map +1 -0
  221. package/esm/dev2-server/files-orchestrator.js +314 -0
  222. package/esm/dev2-server/files-orchestrator.js.map +1 -0
  223. package/esm/dev2-server/files-watcher.d.ts +67 -0
  224. package/esm/dev2-server/files-watcher.d.ts.map +1 -0
  225. package/esm/dev2-server/files-watcher.js +95 -0
  226. package/esm/dev2-server/files-watcher.js.map +1 -0
  227. package/esm/dev2-server/flags.d.ts +10 -0
  228. package/esm/dev2-server/flags.d.ts.map +1 -0
  229. package/esm/dev2-server/flags.js +9 -0
  230. package/esm/dev2-server/flags.js.map +1 -0
  231. package/esm/dev2-server/health-checker/checkers/base-health-checker.d.ts +52 -0
  232. package/esm/dev2-server/health-checker/checkers/base-health-checker.d.ts.map +1 -0
  233. package/esm/dev2-server/health-checker/checkers/base-health-checker.js +71 -0
  234. package/esm/dev2-server/health-checker/checkers/base-health-checker.js.map +1 -0
  235. package/esm/dev2-server/health-checker/checkers/eslint-health-checker.d.ts +40 -0
  236. package/esm/dev2-server/health-checker/checkers/eslint-health-checker.d.ts.map +1 -0
  237. package/esm/dev2-server/health-checker/checkers/eslint-health-checker.js +217 -0
  238. package/esm/dev2-server/health-checker/checkers/eslint-health-checker.js.map +1 -0
  239. package/esm/dev2-server/health-checker/checkers/typescript-health-checker.d.ts +56 -0
  240. package/esm/dev2-server/health-checker/checkers/typescript-health-checker.d.ts.map +1 -0
  241. package/esm/dev2-server/health-checker/checkers/typescript-health-checker.js +279 -0
  242. package/esm/dev2-server/health-checker/checkers/typescript-health-checker.js.map +1 -0
  243. package/esm/dev2-server/health-checker/file-health-checker.contract.d.ts +59 -0
  244. package/esm/dev2-server/health-checker/file-health-checker.contract.d.ts.map +1 -0
  245. package/esm/dev2-server/health-checker/file-health-result.d.ts +68 -0
  246. package/esm/dev2-server/health-checker/file-health-result.d.ts.map +1 -0
  247. package/esm/dev2-server/health-checker/file-health-result.js +40 -0
  248. package/esm/dev2-server/health-checker/file-health-result.js.map +1 -0
  249. package/esm/dev2-server/health-checker/files-healthcare.manager.d.ts +115 -0
  250. package/esm/dev2-server/health-checker/files-healthcare.manager.d.ts.map +1 -0
  251. package/esm/dev2-server/health-checker/files-healthcare.manager.js +422 -0
  252. package/esm/dev2-server/health-checker/files-healthcare.manager.js.map +1 -0
  253. package/esm/dev2-server/health-checker/index.d.ts +6 -0
  254. package/esm/dev2-server/health-checker/index.d.ts.map +1 -0
  255. package/esm/dev2-server/health-checker/workers/eslint-health.worker.d.ts +2 -0
  256. package/esm/dev2-server/health-checker/workers/eslint-health.worker.d.ts.map +1 -0
  257. package/esm/dev2-server/health-checker/workers/eslint-health.worker.js +214 -0
  258. package/esm/dev2-server/health-checker/workers/eslint-health.worker.js.map +1 -0
  259. package/esm/dev2-server/health-checker/workers/ts-health.worker.d.ts +2 -0
  260. package/esm/dev2-server/health-checker/workers/ts-health.worker.d.ts.map +1 -0
  261. package/esm/dev2-server/health-checker/workers/ts-health.worker.js +261 -0
  262. package/esm/dev2-server/health-checker/workers/ts-health.worker.js.map +1 -0
  263. package/esm/dev2-server/import-transformer.d.ts +17 -0
  264. package/esm/dev2-server/import-transformer.d.ts.map +1 -0
  265. package/esm/dev2-server/import-transformer.js +280 -0
  266. package/esm/dev2-server/import-transformer.js.map +1 -0
  267. package/esm/dev2-server/index.d.ts +1 -0
  268. package/esm/dev2-server/index.d.ts.map +1 -0
  269. package/esm/dev2-server/layer-executor.d.ts +61 -0
  270. package/esm/dev2-server/layer-executor.d.ts.map +1 -0
  271. package/esm/dev2-server/layer-executor.js +314 -0
  272. package/esm/dev2-server/layer-executor.js.map +1 -0
  273. package/esm/dev2-server/manifest-manager.d.ts +80 -0
  274. package/esm/dev2-server/manifest-manager.d.ts.map +1 -0
  275. package/esm/dev2-server/manifest-manager.js +107 -0
  276. package/esm/dev2-server/manifest-manager.js.map +1 -0
  277. package/esm/dev2-server/module-loader.d.ts +108 -0
  278. package/esm/dev2-server/module-loader.d.ts.map +1 -0
  279. package/esm/dev2-server/module-loader.js +266 -0
  280. package/esm/dev2-server/module-loader.js.map +1 -0
  281. package/esm/dev2-server/package-json-manager.d.ts +16 -0
  282. package/esm/dev2-server/package-json-manager.d.ts.map +1 -0
  283. package/esm/dev2-server/package-json-manager.js +20 -0
  284. package/esm/dev2-server/package-json-manager.js.map +1 -0
  285. package/esm/dev2-server/parse-imports.d.ts +13 -0
  286. package/esm/dev2-server/parse-imports.d.ts.map +1 -0
  287. package/esm/dev2-server/parse-imports.js +329 -0
  288. package/esm/dev2-server/parse-imports.js.map +1 -0
  289. package/esm/dev2-server/path.d.ts +39 -0
  290. package/esm/dev2-server/path.d.ts.map +1 -0
  291. package/esm/dev2-server/path.js +56 -0
  292. package/esm/dev2-server/path.js.map +1 -0
  293. package/esm/dev2-server/runtime-import-helper.d.ts +8 -0
  294. package/esm/dev2-server/runtime-import-helper.d.ts.map +1 -0
  295. package/esm/dev2-server/runtime-import-helper.js +157 -0
  296. package/esm/dev2-server/runtime-import-helper.js.map +1 -0
  297. package/esm/dev2-server/special-files-collector.d.ts +114 -0
  298. package/esm/dev2-server/special-files-collector.d.ts.map +1 -0
  299. package/esm/dev2-server/special-files-collector.js +212 -0
  300. package/esm/dev2-server/special-files-collector.js.map +1 -0
  301. package/esm/dev2-server/start-development-server.d.ts +7 -0
  302. package/esm/dev2-server/start-development-server.d.ts.map +1 -0
  303. package/esm/dev2-server/start-development-server.js +21 -0
  304. package/esm/dev2-server/start-development-server.js.map +1 -0
  305. package/esm/dev2-server/transpile-file.d.ts +11 -0
  306. package/esm/dev2-server/transpile-file.d.ts.map +1 -0
  307. package/esm/dev2-server/transpile-file.js +21 -0
  308. package/esm/dev2-server/transpile-file.js.map +1 -0
  309. package/esm/dev2-server/tsconfig-manager.d.ts +45 -0
  310. package/esm/dev2-server/tsconfig-manager.d.ts.map +1 -0
  311. package/esm/dev2-server/tsconfig-manager.js +107 -0
  312. package/esm/dev2-server/tsconfig-manager.js.map +1 -0
  313. package/esm/dev2-server/type-generator.d.ts +115 -0
  314. package/esm/dev2-server/type-generator.d.ts.map +1 -0
  315. package/esm/dev2-server/type-generator.js +566 -0
  316. package/esm/dev2-server/type-generator.js.map +1 -0
  317. package/esm/dev2-server/types.d.ts +30 -0
  318. package/esm/dev2-server/types.d.ts.map +1 -0
  319. package/esm/dev2-server/utils.d.ts +15 -0
  320. package/esm/dev2-server/utils.d.ts.map +1 -0
  321. package/esm/dev2-server/utils.js +40 -0
  322. package/esm/dev2-server/utils.js.map +1 -0
  323. package/esm/generations/add-command.action.d.ts +3 -0
  324. package/esm/generations/add-command.action.d.ts.map +1 -0
  325. package/esm/generations/add-command.action.js +154 -0
  326. package/esm/generations/add-command.action.js.map +1 -0
  327. package/esm/http/config.d.ts +10 -0
  328. package/esm/http/config.d.ts.map +1 -0
  329. package/esm/http/config.js +22 -0
  330. package/esm/http/config.js.map +1 -0
  331. package/esm/http/context/request-context.d.ts +47 -0
  332. package/esm/http/context/request-context.d.ts.map +1 -0
  333. package/esm/http/context/request-context.js +52 -0
  334. package/esm/http/context/request-context.js.map +1 -0
  335. package/esm/http/createHttpApplication.d.ts +3 -0
  336. package/esm/http/createHttpApplication.d.ts.map +1 -0
  337. package/esm/http/createHttpApplication.js +28 -0
  338. package/esm/http/createHttpApplication.js.map +1 -0
  339. package/esm/http/database/RequestLog.d.ts +16 -0
  340. package/esm/http/database/RequestLog.d.ts.map +1 -0
  341. package/esm/http/database/RequestLog.js +26 -0
  342. package/esm/http/database/RequestLog.js.map +1 -0
  343. package/esm/http/errors/index.d.ts +2 -0
  344. package/esm/http/errors/index.d.ts.map +1 -0
  345. package/esm/http/errors/resource-not-found.error.d.ts +21 -0
  346. package/esm/http/errors/resource-not-found.error.d.ts.map +1 -0
  347. package/esm/http/errors/resource-not-found.error.js +40 -0
  348. package/esm/http/errors/resource-not-found.error.js.map +1 -0
  349. package/esm/http/events.d.ts +4 -0
  350. package/esm/http/events.d.ts.map +1 -0
  351. package/esm/http/events.js +26 -0
  352. package/esm/http/events.js.map +1 -0
  353. package/esm/http/index.d.ts +17 -0
  354. package/esm/http/index.d.ts.map +1 -0
  355. package/esm/http/middleware/cache-response-middleware.d.ts +34 -0
  356. package/esm/http/middleware/cache-response-middleware.d.ts.map +1 -0
  357. package/esm/http/middleware/cache-response-middleware.js +45 -0
  358. package/esm/http/middleware/cache-response-middleware.js.map +1 -0
  359. package/esm/http/middleware/index.d.ts +3 -0
  360. package/esm/http/middleware/index.d.ts.map +1 -0
  361. package/esm/http/middleware/inject-request-context.d.ts +21 -0
  362. package/esm/http/middleware/inject-request-context.d.ts.map +1 -0
  363. package/esm/http/middleware/inject-request-context.js +105 -0
  364. package/esm/http/middleware/inject-request-context.js.map +1 -0
  365. package/esm/http/plugins/index.d.ts +3 -0
  366. package/esm/http/plugins/index.d.ts.map +1 -0
  367. package/esm/http/plugins.d.ts +3 -0
  368. package/esm/http/plugins.d.ts.map +1 -0
  369. package/esm/http/plugins.js +31 -0
  370. package/esm/http/plugins.js.map +1 -0
  371. package/esm/http/request-controller.d.ts +11 -0
  372. package/esm/http/request-controller.d.ts.map +1 -0
  373. package/esm/http/request-controller.js +9 -0
  374. package/esm/http/request-controller.js.map +1 -0
  375. package/esm/http/request.d.ts +380 -0
  376. package/esm/http/request.d.ts.map +1 -0
  377. package/esm/http/request.js +733 -0
  378. package/esm/http/request.js.map +1 -0
  379. package/esm/http/response.js +914 -0
  380. package/esm/http/response.js.map +1 -0
  381. package/esm/http/server.d.ts +8 -0
  382. package/esm/http/server.d.ts.map +1 -0
  383. package/esm/http/server.js +15 -0
  384. package/esm/http/server.js.map +1 -0
  385. package/esm/http/types.d.ts +174 -0
  386. package/esm/http/types.d.ts.map +1 -0
  387. package/esm/http/uploaded-file.d.ts +459 -0
  388. package/esm/http/uploaded-file.d.ts.map +1 -0
  389. package/esm/http/uploaded-file.js +709 -0
  390. package/esm/http/uploaded-file.js.map +1 -0
  391. package/esm/http/uploads-config.d.ts +26 -0
  392. package/esm/http/uploads-config.d.ts.map +1 -0
  393. package/esm/http/uploads-config.js +35 -0
  394. package/esm/http/uploads-config.js.map +1 -0
  395. package/esm/http/uploads-types.d.ts +236 -0
  396. package/esm/http/uploads-types.d.ts.map +1 -0
  397. package/esm/image/image.d.ts +388 -0
  398. package/esm/image/image.d.ts.map +1 -0
  399. package/esm/image/image.js +602 -0
  400. package/esm/image/image.js.map +1 -0
  401. package/esm/image/index.d.ts +2 -0
  402. package/esm/image/index.d.ts.map +1 -0
  403. package/esm/index.d.ts +28 -0
  404. package/esm/index.d.ts.map +1 -0
  405. package/esm/index.js +1 -28
  406. package/esm/index.js.map +1 -1
  407. package/esm/logger/index.d.ts +3 -0
  408. package/esm/logger/index.d.ts.map +1 -0
  409. package/esm/logger/logger.d.ts +3 -0
  410. package/esm/logger/logger.d.ts.map +1 -0
  411. package/esm/logger/logger.js +16 -0
  412. package/esm/logger/logger.js.map +1 -0
  413. package/esm/logger/types.d.ts +39 -0
  414. package/esm/logger/types.d.ts.map +1 -0
  415. package/esm/mail/config.d.ts +83 -0
  416. package/esm/mail/config.d.ts.map +1 -0
  417. package/esm/mail/config.js +152 -0
  418. package/esm/mail/config.js.map +1 -0
  419. package/esm/mail/events.d.ts +96 -0
  420. package/esm/mail/events.d.ts.map +1 -0
  421. package/esm/mail/events.js +123 -0
  422. package/esm/mail/events.js.map +1 -0
  423. package/esm/mail/index.d.ts +10 -0
  424. package/esm/mail/index.d.ts.map +1 -0
  425. package/esm/mail/mail.d.ts +175 -0
  426. package/esm/mail/mail.d.ts.map +1 -0
  427. package/esm/mail/mail.js +286 -0
  428. package/esm/mail/mail.js.map +1 -0
  429. package/esm/mail/mailer-pool.d.ts +27 -0
  430. package/esm/mail/mailer-pool.d.ts.map +1 -0
  431. package/esm/mail/mailer-pool.js +143 -0
  432. package/esm/mail/mailer-pool.js.map +1 -0
  433. package/esm/mail/react-mail.d.ts +9 -0
  434. package/esm/mail/react-mail.d.ts.map +1 -0
  435. package/esm/mail/react-mail.js +28 -0
  436. package/esm/mail/react-mail.js.map +1 -0
  437. package/esm/mail/send-mail.d.ts +33 -0
  438. package/esm/mail/send-mail.d.ts.map +1 -0
  439. package/esm/mail/send-mail.js +309 -0
  440. package/esm/mail/send-mail.js.map +1 -0
  441. package/esm/mail/test-mailbox.d.ts +110 -0
  442. package/esm/mail/test-mailbox.d.ts.map +1 -0
  443. package/esm/mail/test-mailbox.js +143 -0
  444. package/esm/mail/test-mailbox.js.map +1 -0
  445. package/esm/mail/types.d.ts +245 -0
  446. package/esm/mail/types.d.ts.map +1 -0
  447. package/esm/mail/types.js +13 -0
  448. package/esm/mail/types.js.map +1 -0
  449. package/esm/manifest/manifest-manager.d.ts +74 -0
  450. package/esm/manifest/manifest-manager.d.ts.map +1 -0
  451. package/esm/manifest/manifest-manager.js +88 -0
  452. package/esm/manifest/manifest-manager.js.map +1 -0
  453. package/esm/production/build-app-production.d.ts +6 -0
  454. package/esm/production/build-app-production.d.ts.map +1 -0
  455. package/esm/production/build-app-production.js +8 -0
  456. package/esm/production/build-app-production.js.map +1 -0
  457. package/esm/production/esbuild-plugins.d.ts +5 -0
  458. package/esm/production/esbuild-plugins.d.ts.map +1 -0
  459. package/esm/production/esbuild-plugins.js +23 -0
  460. package/esm/production/esbuild-plugins.js.map +1 -0
  461. package/esm/production/production-builder.d.ts +76 -0
  462. package/esm/production/production-builder.d.ts.map +1 -0
  463. package/esm/production/production-builder.js +247 -0
  464. package/esm/production/production-builder.js.map +1 -0
  465. package/esm/react/index.d.ts +14 -0
  466. package/esm/react/index.d.ts.map +1 -0
  467. package/esm/react/index.js +65 -0
  468. package/esm/react/index.js.map +1 -0
  469. package/esm/repositories/adapters/cascade/cascade-adapter.d.ts +85 -0
  470. package/esm/repositories/adapters/cascade/cascade-adapter.d.ts.map +1 -0
  471. package/esm/repositories/adapters/cascade/cascade-adapter.js +179 -0
  472. package/esm/repositories/adapters/cascade/cascade-adapter.js.map +1 -0
  473. package/esm/repositories/adapters/cascade/cascade-query-builder.d.ts +124 -0
  474. package/esm/repositories/adapters/cascade/cascade-query-builder.d.ts.map +1 -0
  475. package/esm/repositories/adapters/cascade/cascade-query-builder.js +267 -0
  476. package/esm/repositories/adapters/cascade/cascade-query-builder.js.map +1 -0
  477. package/esm/repositories/adapters/cascade/filter-applicator.d.ts +62 -0
  478. package/esm/repositories/adapters/cascade/filter-applicator.d.ts.map +1 -0
  479. package/esm/repositories/adapters/cascade/filter-applicator.js +423 -0
  480. package/esm/repositories/adapters/cascade/filter-applicator.js.map +1 -0
  481. package/esm/repositories/adapters/cascade/index.d.ts +7 -0
  482. package/esm/repositories/adapters/cascade/index.d.ts.map +1 -0
  483. package/esm/repositories/contracts/index.d.ts +8 -0
  484. package/esm/repositories/contracts/index.d.ts.map +1 -0
  485. package/esm/repositories/contracts/query-builder.contract.d.ts +279 -0
  486. package/esm/repositories/contracts/query-builder.contract.d.ts.map +1 -0
  487. package/esm/repositories/contracts/repository-adapter.contract.d.ts +183 -0
  488. package/esm/repositories/contracts/repository-adapter.contract.d.ts.map +1 -0
  489. package/esm/repositories/contracts/types.d.ts +278 -0
  490. package/esm/repositories/contracts/types.d.ts.map +1 -0
  491. package/esm/repositories/index.d.ts +8 -0
  492. package/esm/repositories/index.d.ts.map +1 -0
  493. package/esm/repositories/repository.manager.d.ts +619 -0
  494. package/esm/repositories/repository.manager.d.ts.map +1 -0
  495. package/esm/repositories/repository.manager.js +978 -0
  496. package/esm/repositories/repository.manager.js.map +1 -0
  497. package/esm/resource/define-resource.js +58 -0
  498. package/esm/resource/define-resource.js.map +1 -0
  499. package/esm/resource/index.d.ts +5 -0
  500. package/esm/resource/index.d.ts.map +1 -0
  501. package/esm/resource/resource-field-builder.d.ts +83 -0
  502. package/esm/resource/resource-field-builder.d.ts.map +1 -0
  503. package/esm/resource/resource-field-builder.js +189 -0
  504. package/esm/resource/resource-field-builder.js.map +1 -0
  505. package/esm/resource/resource.d.ts +105 -0
  506. package/esm/resource/resource.d.ts.map +1 -0
  507. package/esm/resource/resource.js +231 -0
  508. package/esm/resource/resource.js.map +1 -0
  509. package/esm/resource/types.d.ts +40 -0
  510. package/esm/resource/types.d.ts.map +1 -0
  511. package/esm/restful/index.d.ts +2 -0
  512. package/esm/restful/index.d.ts.map +1 -0
  513. package/esm/restful/restful.d.ts +110 -0
  514. package/esm/restful/restful.d.ts.map +1 -0
  515. package/esm/restful/restful.js +317 -0
  516. package/esm/restful/restful.js.map +1 -0
  517. package/esm/router/index.d.ts +4 -0
  518. package/esm/router/index.d.ts.map +1 -0
  519. package/esm/router/route-registry.d.ts +30 -0
  520. package/esm/router/route-registry.d.ts.map +1 -0
  521. package/esm/router/route-registry.js +67 -0
  522. package/esm/router/route-registry.js.map +1 -0
  523. package/esm/router/route.d.ts +34 -0
  524. package/esm/router/route.d.ts.map +1 -0
  525. package/esm/router/router.d.ts +169 -0
  526. package/esm/router/router.d.ts.map +1 -0
  527. package/esm/router/router.js +578 -0
  528. package/esm/router/router.js.map +1 -0
  529. package/esm/router/types.d.ts +267 -0
  530. package/esm/router/types.d.ts.map +1 -0
  531. package/esm/router/utils.d.ts +5 -0
  532. package/esm/router/utils.d.ts.map +1 -0
  533. package/esm/router/utils.js +6 -0
  534. package/esm/router/utils.js.map +1 -0
  535. package/esm/storage/config.d.ts +15 -0
  536. package/esm/storage/config.d.ts.map +1 -0
  537. package/esm/storage/config.js +32 -0
  538. package/esm/storage/config.js.map +1 -0
  539. package/esm/storage/context/storage-driver-context.d.ts +69 -0
  540. package/esm/storage/context/storage-driver-context.d.ts.map +1 -0
  541. package/esm/storage/context/storage-driver-context.js +80 -0
  542. package/esm/storage/context/storage-driver-context.js.map +1 -0
  543. package/esm/storage/drivers/cloud-driver.d.ts +196 -0
  544. package/esm/storage/drivers/cloud-driver.d.ts.map +1 -0
  545. package/esm/storage/drivers/cloud-driver.js +697 -0
  546. package/esm/storage/drivers/cloud-driver.js.map +1 -0
  547. package/esm/storage/drivers/do-spaces-driver.d.ts +43 -0
  548. package/esm/storage/drivers/do-spaces-driver.d.ts.map +1 -0
  549. package/esm/storage/drivers/do-spaces-driver.js +50 -0
  550. package/esm/storage/drivers/do-spaces-driver.js.map +1 -0
  551. package/esm/storage/drivers/local-driver.d.ts +151 -0
  552. package/esm/storage/drivers/local-driver.d.ts.map +1 -0
  553. package/esm/storage/drivers/local-driver.js +448 -0
  554. package/esm/storage/drivers/local-driver.js.map +1 -0
  555. package/esm/storage/drivers/r2-driver.d.ts +47 -0
  556. package/esm/storage/drivers/r2-driver.d.ts.map +1 -0
  557. package/esm/storage/drivers/r2-driver.js +60 -0
  558. package/esm/storage/drivers/r2-driver.js.map +1 -0
  559. package/esm/storage/drivers/s3-driver.d.ts +32 -0
  560. package/esm/storage/drivers/s3-driver.d.ts.map +1 -0
  561. package/esm/storage/drivers/s3-driver.js +37 -0
  562. package/esm/storage/drivers/s3-driver.js.map +1 -0
  563. package/esm/storage/index.d.ts +13 -0
  564. package/esm/storage/index.d.ts.map +1 -0
  565. package/esm/storage/scoped-storage.d.ts +514 -0
  566. package/esm/storage/scoped-storage.d.ts.map +1 -0
  567. package/esm/storage/scoped-storage.js +656 -0
  568. package/esm/storage/scoped-storage.js.map +1 -0
  569. package/esm/storage/storage-file.d.ts +216 -0
  570. package/esm/storage/storage-file.d.ts.map +1 -0
  571. package/esm/storage/storage-file.js +358 -0
  572. package/esm/storage/storage-file.js.map +1 -0
  573. package/esm/storage/storage.d.ts +583 -0
  574. package/esm/storage/storage.d.ts.map +1 -0
  575. package/esm/storage/storage.js +945 -0
  576. package/esm/storage/storage.js.map +1 -0
  577. package/esm/storage/types.d.ts +909 -0
  578. package/esm/storage/types.d.ts.map +1 -0
  579. package/esm/storage/utils/mime.d.ts +33 -0
  580. package/esm/storage/utils/mime.d.ts.map +1 -0
  581. package/esm/storage/utils/mime.js +45 -0
  582. package/esm/storage/utils/mime.js.map +1 -0
  583. package/esm/store/index.d.ts +25 -0
  584. package/esm/store/index.d.ts.map +1 -0
  585. package/esm/store/index.js +52 -0
  586. package/esm/store/index.js.map +1 -0
  587. package/esm/utils/app-log.d.ts +8 -0
  588. package/esm/utils/app-log.d.ts.map +1 -0
  589. package/esm/utils/app-log.js +7 -0
  590. package/esm/utils/app-log.js.map +1 -0
  591. package/esm/utils/cleanup-temp-files.d.ts +5 -0
  592. package/esm/utils/cleanup-temp-files.d.ts.map +1 -0
  593. package/esm/utils/database-log.d.ts +25 -0
  594. package/esm/utils/database-log.d.ts.map +1 -0
  595. package/esm/utils/database-log.js +43 -0
  596. package/esm/utils/database-log.js.map +1 -0
  597. package/esm/utils/download-file.d.ts +3 -0
  598. package/esm/utils/download-file.d.ts.map +1 -0
  599. package/esm/utils/environment.d.ts +4 -0
  600. package/esm/utils/environment.d.ts.map +1 -0
  601. package/esm/utils/environment.js +6 -0
  602. package/esm/utils/environment.js.map +1 -0
  603. package/esm/utils/get-localized.d.ts +10 -0
  604. package/esm/utils/get-localized.d.ts.map +1 -0
  605. package/esm/utils/get-localized.js +15 -0
  606. package/esm/utils/get-localized.js.map +1 -0
  607. package/esm/utils/index.d.ts +12 -0
  608. package/esm/utils/index.d.ts.map +1 -0
  609. package/esm/utils/internal.d.ts +4 -0
  610. package/esm/utils/internal.d.ts.map +1 -0
  611. package/esm/utils/paths.d.ts +55 -0
  612. package/esm/utils/paths.d.ts.map +1 -0
  613. package/esm/utils/paths.js +89 -0
  614. package/esm/utils/paths.js.map +1 -0
  615. package/esm/utils/promise-all-object.d.ts +8 -0
  616. package/esm/utils/promise-all-object.d.ts.map +1 -0
  617. package/esm/utils/promise-all-object.js +12 -0
  618. package/esm/utils/promise-all-object.js.map +1 -0
  619. package/esm/utils/queue.d.ts +49 -0
  620. package/esm/utils/queue.d.ts.map +1 -0
  621. package/esm/utils/queue.js +89 -0
  622. package/esm/utils/queue.js.map +1 -0
  623. package/esm/utils/sleep.d.ts +2 -0
  624. package/esm/utils/sleep.d.ts.map +1 -0
  625. package/esm/utils/sleep.js +3 -0
  626. package/esm/utils/sleep.js.map +1 -0
  627. package/esm/utils/sluggable.d.ts +5 -0
  628. package/esm/utils/sluggable.d.ts.map +1 -0
  629. package/esm/utils/sluggable.js +15 -0
  630. package/esm/utils/sluggable.js.map +1 -0
  631. package/esm/utils/to-json.d.ts +2 -0
  632. package/esm/utils/to-json.d.ts.map +1 -0
  633. package/esm/utils/to-json.js +26 -0
  634. package/esm/utils/to-json.js.map +1 -0
  635. package/esm/utils/types.d.ts +22 -0
  636. package/esm/utils/types.d.ts.map +1 -0
  637. package/esm/utils/urls.d.ts +21 -0
  638. package/esm/utils/urls.d.ts.map +1 -0
  639. package/esm/utils/urls.js +31 -0
  640. package/esm/utils/urls.js.map +1 -0
  641. package/esm/validation/database/exists-except-current-id.d.ts +7 -0
  642. package/esm/validation/database/exists-except-current-id.d.ts.map +1 -0
  643. package/esm/validation/database/exists-except-current-id.js +23 -0
  644. package/esm/validation/database/exists-except-current-id.js.map +1 -0
  645. package/esm/validation/database/exists-except-current-user.d.ts +7 -0
  646. package/esm/validation/database/exists-except-current-user.d.ts.map +1 -0
  647. package/esm/validation/database/exists-except-current-user.js +25 -0
  648. package/esm/validation/database/exists-except-current-user.js.map +1 -0
  649. package/esm/validation/database/exists.d.ts +7 -0
  650. package/esm/validation/database/exists.d.ts.map +1 -0
  651. package/esm/validation/database/exists.js +21 -0
  652. package/esm/validation/database/exists.js.map +1 -0
  653. package/esm/validation/database/index.d.ts +12 -0
  654. package/esm/validation/database/index.d.ts.map +1 -0
  655. package/esm/validation/database/types.d.ts +68 -0
  656. package/esm/validation/database/types.d.ts.map +1 -0
  657. package/esm/validation/database/unique-except-current-id.d.ts +7 -0
  658. package/esm/validation/database/unique-except-current-id.d.ts.map +1 -0
  659. package/esm/validation/database/unique-except-current-id.js +23 -0
  660. package/esm/validation/database/unique-except-current-id.js.map +1 -0
  661. package/esm/validation/database/unique-except-current-user.d.ts +7 -0
  662. package/esm/validation/database/unique-except-current-user.d.ts.map +1 -0
  663. package/esm/validation/database/unique-except-current-user.js +25 -0
  664. package/esm/validation/database/unique-except-current-user.js.map +1 -0
  665. package/esm/validation/database/unique.d.ts +7 -0
  666. package/esm/validation/database/unique.d.ts.map +1 -0
  667. package/esm/validation/database/unique.js +30 -0
  668. package/esm/validation/database/unique.js.map +1 -0
  669. package/esm/validation/file/file.d.ts +22 -0
  670. package/esm/validation/file/file.d.ts.map +1 -0
  671. package/esm/validation/file/file.js +60 -0
  672. package/esm/validation/file/file.js.map +1 -0
  673. package/esm/validation/file/index.d.ts +6 -0
  674. package/esm/validation/file/index.d.ts.map +1 -0
  675. package/esm/validation/index.d.ts +16 -0
  676. package/esm/validation/index.d.ts.map +1 -0
  677. package/esm/validation/init.d.ts +7 -0
  678. package/esm/validation/init.d.ts.map +1 -0
  679. package/esm/validation/init.js +36 -0
  680. package/esm/validation/init.js.map +1 -0
  681. package/esm/validation/plugins/database-plugin.d.ts +14 -0
  682. package/esm/validation/plugins/database-plugin.d.ts.map +1 -0
  683. package/esm/validation/plugins/database-plugin.js +95 -0
  684. package/esm/validation/plugins/database-plugin.js.map +1 -0
  685. package/esm/validation/plugins/file-plugin.d.ts +11 -0
  686. package/esm/validation/plugins/file-plugin.d.ts.map +1 -0
  687. package/esm/validation/plugins/file-plugin.js +17 -0
  688. package/esm/validation/plugins/file-plugin.js.map +1 -0
  689. package/esm/validation/plugins/index.d.ts +9 -0
  690. package/esm/validation/plugins/index.d.ts.map +1 -0
  691. package/esm/validation/plugins/localized-plugin.d.ts +11 -0
  692. package/esm/validation/plugins/localized-plugin.d.ts.map +1 -0
  693. package/esm/validation/plugins/localized-plugin.js +19 -0
  694. package/esm/validation/plugins/localized-plugin.js.map +1 -0
  695. package/esm/validation/types.d.ts +87 -0
  696. package/esm/validation/types.d.ts.map +1 -0
  697. package/esm/validation/validateAll.d.ts +7 -0
  698. package/esm/validation/validateAll.d.ts.map +1 -0
  699. package/esm/validation/validateAll.js +60 -0
  700. package/esm/validation/validateAll.js.map +1 -0
  701. package/esm/validation/validators/file-validator.d.ts +46 -0
  702. package/esm/validation/validators/file-validator.d.ts.map +1 -0
  703. package/esm/validation/validators/file-validator.js +112 -0
  704. package/esm/validation/validators/file-validator.js.map +1 -0
  705. package/esm/validation/validators/index.d.ts +7 -0
  706. package/esm/validation/validators/index.d.ts.map +1 -0
  707. package/esm/warlock-config/default-configurations.d.ts +3 -0
  708. package/esm/warlock-config/default-configurations.d.ts.map +1 -0
  709. package/esm/warlock-config/default-configurations.js +8 -0
  710. package/esm/warlock-config/default-configurations.js.map +1 -0
  711. package/esm/warlock-config/define-config.d.ts +3 -0
  712. package/esm/warlock-config/define-config.d.ts.map +1 -0
  713. package/esm/warlock-config/define-config.js +3 -0
  714. package/esm/warlock-config/define-config.js.map +1 -0
  715. package/esm/warlock-config/index.d.ts +4 -0
  716. package/esm/warlock-config/index.d.ts.map +1 -0
  717. package/esm/warlock-config/types.d.ts +79 -0
  718. package/esm/warlock-config/types.d.ts.map +1 -0
  719. package/esm/warlock-config/warlock-config.manager.d.ts +83 -0
  720. package/esm/warlock-config/warlock-config.manager.d.ts.map +1 -0
  721. package/esm/warlock-config/warlock-config.manager.js +141 -0
  722. package/esm/warlock-config/warlock-config.manager.js.map +1 -0
  723. package/package.json +66 -71
@@ -0,0 +1,300 @@
1
+ import events from'@mongez/events';import {debounce}from'@mongez/reinforcements';import {devLogSuccess}from'./dev-logger.js';import {FILE_PROCESSING_BATCH_SIZE}from'./flags.js';import {clearFileExistsCache}from'./parse-imports.js';import {Path}from'./path.js';/**
2
+ * FileEventHandler - Handles runtime file system events
3
+ *
4
+ * This class receives file system events (add, change, delete) from the
5
+ * FilesWatcher and processes them in batches for optimal performance.
6
+ *
7
+ * ## Batching Strategy
8
+ *
9
+ * Events are collected and processed after a debounce period (150ms).
10
+ * This batching is crucial when:
11
+ * - Multiple files are created at once (e.g., VSCode extension creating a module)
12
+ * - A file save triggers multiple filesystem events
13
+ * - Large refactoring operations affect many files
14
+ *
15
+ * ## Processing Order
16
+ *
17
+ * 1. **Added files** - Processed first so they're available for imports
18
+ * 2. **Changed files** - Can reference newly added files
19
+ * 3. **Deleted files** - Processed last, dependents are notified
20
+ *
21
+ * ## Batch Add Strategy
22
+ *
23
+ * When multiple files are added (e.g., creating a Warlock module), they're
24
+ * processed using a two-phase approach with topological sorting:
25
+ *
26
+ * 1. **Parse Phase**: All files are parsed to discover dependencies
27
+ * 2. **Sort Phase**: Files are topologically sorted by dependencies
28
+ * 3. **Complete Phase**: Files are finalized in dependency order
29
+ *
30
+ * This ensures that when file A imports file B, file B is processed first.
31
+ *
32
+ * @class FileEventHandler
33
+ */
34
+ class FileEventHandler {
35
+ fileOperations;
36
+ manifest;
37
+ dependencyGraph;
38
+ files;
39
+ /**
40
+ * Pending file change events (relative paths)
41
+ */
42
+ pendingChanges = new Set();
43
+ /**
44
+ * Pending file add events (relative paths)
45
+ */
46
+ pendingAdds = new Set();
47
+ /**
48
+ * Pending file delete events (relative paths)
49
+ */
50
+ pendingDeletes = new Set();
51
+ /**
52
+ * Debounced batch processor
53
+ * Waits 150ms after the last event before processing
54
+ */
55
+ processPendingEvents = debounce(async () => {
56
+ await this.processBatch();
57
+ }, 150);
58
+ /**
59
+ * Creates a new FileEventHandler
60
+ *
61
+ * @param fileOperations - FileOperations instance for file lifecycle management
62
+ * @param manifest - ManifestManager for persisting file metadata
63
+ * @param dependencyGraph - DependencyGraph for tracking dependencies
64
+ * @param files - Map of all tracked FileManager instances
65
+ */
66
+ constructor(fileOperations, manifest, dependencyGraph, files) {
67
+ this.fileOperations = fileOperations;
68
+ this.manifest = manifest;
69
+ this.dependencyGraph = dependencyGraph;
70
+ this.files = files;
71
+ }
72
+ /**
73
+ * Handle a file change event from the file watcher
74
+ *
75
+ * The event is queued and will be processed in the next batch.
76
+ *
77
+ * @param absolutePath - Absolute path to the changed file
78
+ */
79
+ handleFileChange(absolutePath) {
80
+ const relativePath = Path.toRelative(absolutePath);
81
+ this.pendingChanges.add(relativePath);
82
+ this.processPendingEvents();
83
+ }
84
+ /**
85
+ * Handle a file add event from the file watcher
86
+ *
87
+ * The event is queued and will be processed in the next batch.
88
+ *
89
+ * @param absolutePath - Absolute path to the new file
90
+ */
91
+ handleFileAdd(absolutePath) {
92
+ const relativePath = Path.toRelative(absolutePath);
93
+ this.pendingAdds.add(relativePath);
94
+ this.processPendingEvents();
95
+ }
96
+ /**
97
+ * Handle a file delete event from the file watcher
98
+ *
99
+ * The event is queued and will be processed in the next batch.
100
+ *
101
+ * @param absolutePath - Absolute path to the deleted file
102
+ */
103
+ handleFileDelete(absolutePath) {
104
+ const relativePath = Path.toRelative(absolutePath);
105
+ this.pendingDeletes.add(relativePath);
106
+ this.processPendingEvents();
107
+ }
108
+ /**
109
+ * Process all pending events in a batch
110
+ *
111
+ * Events are processed in order: adds → changes → deletes
112
+ * After processing, the dependency graph and manifest are updated.
113
+ *
114
+ * @internal
115
+ */
116
+ async processBatch() {
117
+ // Snapshot pending events
118
+ const changes = Array.from(this.pendingChanges);
119
+ const adds = Array.from(this.pendingAdds);
120
+ const deletes = Array.from(this.pendingDeletes);
121
+ // Clear pending sets
122
+ this.pendingChanges.clear();
123
+ this.pendingAdds.clear();
124
+ this.pendingDeletes.clear();
125
+ // Skip if nothing to process
126
+ if (changes.length === 0 && adds.length === 0 && deletes.length === 0) {
127
+ return;
128
+ }
129
+ // For batch operations, add extra delay to let filesystem settle
130
+ const totalFiles = adds.length + changes.length;
131
+ if (totalFiles > 1) {
132
+ await new Promise((resolve) => setTimeout(resolve, 500));
133
+ clearFileExistsCache();
134
+ }
135
+ // Process in order: adds first, then changes, then deletes
136
+ await this.processBatchAdds(adds);
137
+ await this.processBatchChanges(changes);
138
+ await this.processBatchDeletes(deletes);
139
+ // Update dependency graph and manifest once
140
+ this.fileOperations.updateFileDependents();
141
+ this.fileOperations.syncFilesToManifest();
142
+ await this.manifest.save();
143
+ // Trigger batch completion event (for HMR/reload execution)
144
+ events.trigger("dev-server:batch-complete", {
145
+ added: adds,
146
+ changed: changes,
147
+ deleted: deletes,
148
+ });
149
+ }
150
+ /**
151
+ * Process a batch of changed files
152
+ *
153
+ * Each file is updated (reprocessed if content changed).
154
+ * Processing is done in parallel batches for performance.
155
+ *
156
+ * @param relativePaths - Array of relative paths to changed files
157
+ * @internal
158
+ */
159
+ async processBatchChanges(relativePaths) {
160
+ if (relativePaths.length === 0)
161
+ return;
162
+ const BATCH_SIZE = FILE_PROCESSING_BATCH_SIZE;
163
+ for (let i = 0; i < relativePaths.length; i += BATCH_SIZE) {
164
+ const batch = relativePaths.slice(i, i + BATCH_SIZE);
165
+ await Promise.all(batch.map(async (relativePath) => {
166
+ await this.fileOperations.updateFile(relativePath);
167
+ }));
168
+ }
169
+ }
170
+ /**
171
+ * Process a batch of added files using topological sort
172
+ *
173
+ * This method uses a two-phase approach:
174
+ * 1. Parse all files to discover dependencies
175
+ * 2. Complete files in topological order (dependencies first)
176
+ *
177
+ * This ensures that when file A imports file B (both in the batch),
178
+ * file B is fully processed before file A tries to resolve the import.
179
+ *
180
+ * @param relativePaths - Array of relative paths to new files
181
+ * @internal
182
+ */
183
+ async processBatchAdds(relativePaths) {
184
+ if (relativePaths.length === 0)
185
+ return;
186
+ const batchSet = new Set(relativePaths);
187
+ // PHASE 1: Parse all files in parallel to discover dependencies
188
+ const parsedFiles = await Promise.all(relativePaths.map(async (relativePath) => {
189
+ try {
190
+ return await this.fileOperations.parseNewFile(relativePath);
191
+ }
192
+ catch (error) {
193
+ return null;
194
+ }
195
+ }));
196
+ // Filter out nulls (files that couldn't be parsed)
197
+ const validFiles = parsedFiles.filter((f) => f !== null);
198
+ // PHASE 2: Topological sort for proper dependency order
199
+ const orderedFiles = this.topologicalSort(validFiles, batchSet);
200
+ // PHASE 3: Complete processing in dependency order
201
+ for (const file of orderedFiles) {
202
+ try {
203
+ await this.fileOperations.finalizeNewFile(file);
204
+ devLogSuccess(`Added file: ${file.relativePath}`);
205
+ }
206
+ catch (error) {
207
+ // File may have issues, but we continue with others
208
+ console.error(`Failed to add file ${file.relativePath}:`, error);
209
+ }
210
+ }
211
+ }
212
+ /**
213
+ * Topologically sort files by their dependencies
214
+ *
215
+ * Uses Kahn's algorithm to produce an ordering where files with
216
+ * no batch dependencies come first, and files that depend on other
217
+ * batch files come after their dependencies.
218
+ *
219
+ * @param files - Array of FileManager instances to sort
220
+ * @param batchSet - Set of relative paths in this batch (for filtering deps)
221
+ * @returns Files in topological order (dependencies first)
222
+ *
223
+ * @example
224
+ * ```typescript
225
+ * // If A imports B, and B imports C, result will be: [C, B, A]
226
+ * const ordered = this.topologicalSort([fileA, fileB, fileC], batchSet);
227
+ * ```
228
+ *
229
+ * @internal
230
+ */
231
+ topologicalSort(files, batchSet) {
232
+ const fileMap = new Map();
233
+ const inDegree = new Map();
234
+ const graph = new Map();
235
+ // Initialize data structures
236
+ for (const file of files) {
237
+ fileMap.set(file.relativePath, file);
238
+ inDegree.set(file.relativePath, 0);
239
+ graph.set(file.relativePath, []);
240
+ }
241
+ // Build graph: for each file, record which files depend on it
242
+ for (const file of files) {
243
+ for (const dep of file.dependencies) {
244
+ // Only consider dependencies that are in this batch
245
+ if (batchSet.has(dep) && fileMap.has(dep)) {
246
+ // dep → file (file depends on dep)
247
+ graph.get(dep).push(file.relativePath);
248
+ inDegree.set(file.relativePath, (inDegree.get(file.relativePath) || 0) + 1);
249
+ }
250
+ }
251
+ }
252
+ // Kahn's algorithm: start with files that have no batch dependencies
253
+ const queue = [];
254
+ for (const file of files) {
255
+ if (inDegree.get(file.relativePath) === 0) {
256
+ queue.push(file);
257
+ }
258
+ }
259
+ const result = [];
260
+ while (queue.length > 0) {
261
+ const file = queue.shift();
262
+ result.push(file);
263
+ // For each file that depends on this one, reduce its in-degree
264
+ for (const dependentPath of graph.get(file.relativePath) || []) {
265
+ const newDegree = (inDegree.get(dependentPath) || 0) - 1;
266
+ inDegree.set(dependentPath, newDegree);
267
+ if (newDegree === 0) {
268
+ const dependentFile = fileMap.get(dependentPath);
269
+ if (dependentFile) {
270
+ queue.push(dependentFile);
271
+ }
272
+ }
273
+ }
274
+ }
275
+ // Handle any remaining files (cycles or isolated)
276
+ // These are added at the end to ensure all files are processed
277
+ for (const file of files) {
278
+ if (!result.includes(file)) {
279
+ result.push(file);
280
+ }
281
+ }
282
+ return result;
283
+ }
284
+ /**
285
+ * Process a batch of deleted files
286
+ *
287
+ * Each file is removed from the system and its dependents are notified.
288
+ *
289
+ * @param relativePaths - Array of relative paths to deleted files
290
+ * @internal
291
+ */
292
+ async processBatchDeletes(relativePaths) {
293
+ if (relativePaths.length === 0)
294
+ return;
295
+ for (const relativePath of relativePaths) {
296
+ await this.fileOperations.deleteFile(relativePath);
297
+ devLogSuccess(`Deleted file: ${relativePath}`);
298
+ }
299
+ }
300
+ }export{FileEventHandler};//# sourceMappingURL=file-event-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-event-handler.js","sources":["../../src/dev2-server/file-event-handler.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,385 @@
1
+ import { type FileOperations } from "./file-operations";
2
+ import type { FileManifest, FileState, FileType, LayerType } from "./types";
3
+ /**
4
+ * Options for the process() method
5
+ */
6
+ export interface ProcessOptions {
7
+ /**
8
+ * Force reprocessing even if file hasn't changed
9
+ * @default false
10
+ */
11
+ force?: boolean;
12
+ /**
13
+ * Whether to transform imports to cache paths
14
+ * Set to false during batch operations where imports are transformed later
15
+ * @default true
16
+ */
17
+ transformImports?: boolean;
18
+ /**
19
+ * Whether to save to cache after processing
20
+ * Set to false if you need to do additional transformations before saving
21
+ * @default true
22
+ */
23
+ saveToCache?: boolean;
24
+ }
25
+ /**
26
+ * FileManager - Manages the lifecycle of a single source file
27
+ *
28
+ * ## Lifecycle States
29
+ *
30
+ * ```
31
+ * idle → loading → parsed → transpiled → ready
32
+ * ↑ │
33
+ * └──────────── (file changed) ──────────┘
34
+ * ```
35
+ *
36
+ * ## Processing Pipeline
37
+ *
38
+ * All file processing flows through a unified pipeline:
39
+ * 1. **Load** - Read source from disk
40
+ * 2. **Hash** - Calculate content hash for change detection
41
+ * 3. **Parse** - Discover imports and dependencies
42
+ * 4. **Transpile** - Convert TypeScript to JavaScript
43
+ * 5. **Transform** - Rewrite import paths to cache locations
44
+ * 6. **Save** - Write transformed code to cache (ONCE)
45
+ *
46
+ * ## Usage Examples
47
+ *
48
+ * ```typescript
49
+ * // Standard processing (full pipeline)
50
+ * const file = new FileManager(absolutePath, filesMap, fileOps);
51
+ * await file.process();
52
+ *
53
+ * // Batch processing (parse first, complete later)
54
+ * await file.parse();
55
+ * // ... after dependencies are ready ...
56
+ * await file.complete();
57
+ *
58
+ * // Check for changes and reprocess if needed
59
+ * const changed = await file.process(); // returns false if unchanged
60
+ *
61
+ * // Force reprocessing
62
+ * await file.process({ force: true });
63
+ * ```
64
+ *
65
+ * @class FileManager
66
+ */
67
+ export declare class FileManager {
68
+ readonly absolutePath: string;
69
+ files: Map<string, FileManager>;
70
+ fileOperations: FileOperations;
71
+ /**
72
+ * Relative path from the project root directory
73
+ * Used as the primary identifier for files throughout the system
74
+ * @example "src/app/users/controllers/get-user.controller.ts"
75
+ */
76
+ relativePath: string;
77
+ /**
78
+ * Unix timestamp of the last modification time
79
+ * Used with hash for change detection
80
+ */
81
+ lastModified: number;
82
+ /**
83
+ * SHA-256 hash of the source content
84
+ * Primary mechanism for detecting file changes
85
+ */
86
+ hash: string;
87
+ /**
88
+ * Original TypeScript/JavaScript source code
89
+ * Loaded from disk during processing
90
+ */
91
+ source: string;
92
+ /**
93
+ * Transpiled JavaScript code with transformed imports
94
+ * This is the final output that gets saved to cache and loaded at runtime
95
+ */
96
+ transpiled: string;
97
+ /**
98
+ * Set of relative paths that this file depends on (imports)
99
+ * Used to build the dependency graph for HMR invalidation
100
+ * @example Set(["src/app/users/models/user.model.ts", "src/config/database.ts"])
101
+ */
102
+ dependencies: Set<string>;
103
+ /**
104
+ * Map of original import specifiers to resolved absolute paths
105
+ * Key: the exact import string from source (e.g., "./user.model")
106
+ * Value: resolved absolute path (e.g., "D:/project/src/app/users/models/user.model.ts")
107
+ *
108
+ * Used during import transformation to rewrite paths to cache locations
109
+ */
110
+ importMap: Map<string, string>;
111
+ /**
112
+ * Set of relative paths that depend on this file
113
+ * Populated from the dependency graph after initial processing
114
+ * Used to determine what needs reloading when this file changes
115
+ */
116
+ dependents: Set<string>;
117
+ /**
118
+ * Version number incremented on each change
119
+ * Used for cache busting in dynamic imports
120
+ */
121
+ version: number;
122
+ /**
123
+ * Semantic type of the file based on its path/content
124
+ * Used to determine reload behavior and special handling
125
+ */
126
+ type: FileType | undefined;
127
+ /**
128
+ * Reload layer: HMR (hot module replacement) or FSR (full server restart)
129
+ * Determines how changes to this file are applied at runtime
130
+ */
131
+ layer: LayerType | undefined;
132
+ /**
133
+ * Path to the cached transpiled file (relative to .warlock/cache/)
134
+ * @example "src-app-users-controllers-get-user.controller.js"
135
+ */
136
+ cachePath: string;
137
+ /**
138
+ * Cleanup function called before the file is unloaded
139
+ * Set by module loader for files that export cleanup handlers
140
+ */
141
+ cleanup?: (() => void)[] | (() => void);
142
+ /**
143
+ * Whether imports have been transformed to cache paths
144
+ * Prevents double transformation and tracks processing state
145
+ */
146
+ importsTransformed: boolean;
147
+ /**
148
+ * Whether this file contains only type definitions (no runtime code)
149
+ * Type-only files are excluded from circular dependency detection
150
+ */
151
+ isTypeOnlyFile: boolean;
152
+ /**
153
+ * Current processing state of the file
154
+ *
155
+ * - `idle`: Initial state, no processing started
156
+ * - `loading`: Reading source from disk
157
+ * - `parsed`: Source loaded and imports discovered
158
+ * - `transpiled`: TypeScript compiled to JavaScript
159
+ * - `ready`: Fully processed and available for use
160
+ * - `updating`: Being reprocessed after a change
161
+ * - `deleted`: File has been removed from disk
162
+ */
163
+ state: FileState;
164
+ /**
165
+ * Creates a new FileManager instance
166
+ *
167
+ * @param absolutePath - Full filesystem path to the source file
168
+ * @param files - Map of all tracked files (for import resolution)
169
+ * @param fileOperations - FileOperations instance (for adding missing dependencies)
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * const fileManager = new FileManager(
174
+ * "D:/project/src/app/users/controllers/get-user.controller.ts",
175
+ * filesMap,
176
+ * fileOperations
177
+ * );
178
+ * ```
179
+ */
180
+ constructor(absolutePath: string, files: Map<string, FileManager>, fileOperations: FileOperations);
181
+ /**
182
+ * Initialize the file manager from disk or manifest cache
183
+ *
184
+ * This is the primary entry point for file initialization.
185
+ * If manifest data is provided, it will attempt to use cached data
186
+ * and only reprocess if the file has changed.
187
+ *
188
+ * @param fileManifest - Optional cached manifest data from previous build
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * // Fresh initialization (no cache)
193
+ * await fileManager.init();
194
+ *
195
+ * // Initialize with cached manifest data
196
+ * await fileManager.init(manifestEntry);
197
+ * ```
198
+ */
199
+ init(fileManifest?: Partial<FileManifest>): Promise<void>;
200
+ /**
201
+ * Get the cache path as a file:// URL for dynamic import
202
+ * Includes cache busting query parameter based on version
203
+ *
204
+ * @returns File URL ready for dynamic import, or empty string if no cache
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * const module = await import(fileManager.cachePathUrl);
209
+ * ```
210
+ */
211
+ get cachePathUrl(): string;
212
+ /**
213
+ * Process the file through the unified pipeline
214
+ *
215
+ * This is the core method that handles all file processing.
216
+ * It implements a single-pass pipeline that:
217
+ * 1. Loads source from disk
218
+ * 2. Checks if content changed (skip if unchanged)
219
+ * 3. Parses imports to discover dependencies
220
+ * 4. Ensures all dependencies exist
221
+ * 5. Transpiles TypeScript to JavaScript
222
+ * 6. Transforms imports to cache paths
223
+ * 7. Saves to cache (ONCE - no duplicate writes)
224
+ *
225
+ * @param options - Processing options
226
+ * @param options.force - Force reprocessing even if unchanged
227
+ * @param options.transformImports - Whether to transform import paths (default: true)
228
+ * @param options.saveToCache - Whether to save to cache file (default: true)
229
+ *
230
+ * @returns True if file was processed, false if unchanged and skipped
231
+ *
232
+ * @example
233
+ * ```typescript
234
+ * // Normal processing
235
+ * const changed = await fileManager.process();
236
+ *
237
+ * // Force reprocess
238
+ * await fileManager.process({ force: true });
239
+ *
240
+ * // Batch mode: transform imports later
241
+ * await fileManager.process({ transformImports: false });
242
+ * ```
243
+ */
244
+ process(options?: ProcessOptions): Promise<boolean>;
245
+ /**
246
+ * Parse the file to discover dependencies (Phase 1 of batch processing)
247
+ *
248
+ * This method only performs the first half of processing:
249
+ * - Loads source from disk
250
+ * - Calculates hash
251
+ * - Parses imports to discover dependencies
252
+ * - Sets up file metadata
253
+ *
254
+ * Use this for batch file operations where you need to know
255
+ * dependencies before deciding processing order.
256
+ *
257
+ * **Important**: After calling parse(), you must call complete()
258
+ * to finish processing and make the file usable.
259
+ *
260
+ * @example
261
+ * ```typescript
262
+ * // Batch processing pattern
263
+ * const files = await Promise.all(
264
+ * paths.map(async (path) => {
265
+ * const file = new FileManager(path, filesMap, fileOps);
266
+ * await file.parse();
267
+ * return file;
268
+ * })
269
+ * );
270
+ *
271
+ * // Order by dependencies, then complete
272
+ * for (const file of orderedFiles) {
273
+ * await file.complete();
274
+ * }
275
+ * ```
276
+ */
277
+ parse(): Promise<void>;
278
+ /**
279
+ * Complete file processing after parse() (Phase 2 of batch processing)
280
+ *
281
+ * This method completes the processing pipeline:
282
+ * - Ensures dependencies exist
283
+ * - Transpiles TypeScript to JavaScript
284
+ * - Transforms imports to cache paths
285
+ * - Saves to cache
286
+ *
287
+ * **Important**: This must be called after parse() to finish processing.
288
+ * The file is not usable until complete() has been called.
289
+ *
290
+ * @example
291
+ * ```typescript
292
+ * await file.parse();
293
+ * // ... after dependencies are ready ...
294
+ * await file.complete();
295
+ * // File is now ready for use
296
+ * ```
297
+ */
298
+ complete(): Promise<void>;
299
+ /**
300
+ * Update the file after a change during development
301
+ *
302
+ * This is a convenience method that delegates to process().
303
+ * It checks if the file has actually changed and only reprocesses if needed.
304
+ *
305
+ * @returns True if file was reprocessed, false if unchanged
306
+ *
307
+ * @example
308
+ * ```typescript
309
+ * // Called by file watcher
310
+ * const changed = await fileManager.update();
311
+ * if (changed) {
312
+ * console.log("File was updated");
313
+ * }
314
+ * ```
315
+ */
316
+ update(): Promise<boolean>;
317
+ /**
318
+ * Force reprocess the file regardless of hash match
319
+ *
320
+ * Use this when:
321
+ * - A dependency that was previously missing is now available
322
+ * - Import transformation needs to be redone
323
+ * - Cache is corrupted or missing
324
+ *
325
+ * @example
326
+ * ```typescript
327
+ * // After a missing dependency is added
328
+ * await fileManager.forceReprocess();
329
+ * ```
330
+ */
331
+ forceReprocess(): Promise<void>;
332
+ /**
333
+ * Initialize from cached manifest data
334
+ *
335
+ * Attempts to use cached data from a previous build.
336
+ * If the file has changed (hash mismatch) or cache is missing,
337
+ * falls back to full processing.
338
+ *
339
+ * @param fileManifest - Cached manifest entry
340
+ * @internal
341
+ */
342
+ protected initFromManifest(fileManifest: Partial<FileManifest>): Promise<void>;
343
+ /**
344
+ * Detect the file type and reload layer based on path patterns
345
+ *
346
+ * File types determine special handling:
347
+ * - `main`: Application entry point
348
+ * - `config`: Configuration files
349
+ * - `route`: Route definitions
350
+ * - `controller`: HTTP controllers
351
+ * - `service`: Business logic services
352
+ * - `model`: Database models
353
+ * - `event`: Event handlers
354
+ * - `other`: Everything else
355
+ *
356
+ * Layers determine reload behavior:
357
+ * - `HMR`: Hot module replacement (instant reload)
358
+ * - `FSR`: Full server restart (required for some changes)
359
+ *
360
+ * @internal
361
+ */
362
+ protected detectFileTypeAndLayer(): void;
363
+ /**
364
+ * Export file data as a manifest entry for caching
365
+ *
366
+ * The manifest stores metadata about each file to enable:
367
+ * - Fast startup by skipping unchanged files
368
+ * - Dependency tracking across restarts
369
+ * - Cache validation via hash comparison
370
+ *
371
+ * Note: Source code and transpiled output are NOT stored in manifest.
372
+ * - Source is always read from disk
373
+ * - Transpiled code is stored in .warlock/cache/
374
+ *
375
+ * @returns Manifest entry for this file
376
+ *
377
+ * @example
378
+ * ```typescript
379
+ * const entry = fileManager.toManifest();
380
+ * manifest.setFile(fileManager.relativePath, entry);
381
+ * ```
382
+ */
383
+ toManifest(): FileManifest;
384
+ }
385
+ //# sourceMappingURL=file-manager.d.ts.map