@warlock.js/core 4.0.162 → 4.0.163

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 (901) hide show
  1. package/esm/benchmark/index.d.ts +7 -0
  2. package/esm/benchmark/index.d.ts.map +1 -0
  3. package/esm/benchmark/profiler.d.ts +63 -0
  4. package/esm/benchmark/profiler.d.ts.map +1 -0
  5. package/esm/benchmark/profiler.js +155 -0
  6. package/esm/benchmark/profiler.js.map +1 -0
  7. package/esm/benchmark/types.d.ts +167 -0
  8. package/esm/benchmark/types.d.ts.map +1 -0
  9. package/esm/bootstrap/setup.d.ts +2 -0
  10. package/esm/bootstrap/setup.d.ts.map +1 -0
  11. package/esm/bootstrap/setup.js +14 -0
  12. package/esm/bootstrap/setup.js.map +1 -0
  13. package/esm/bootstrap.d.ts +2 -0
  14. package/esm/bootstrap.d.ts.map +1 -0
  15. package/esm/bootstrap.js +5 -0
  16. package/esm/bootstrap.js.map +1 -0
  17. package/esm/cache/database-cache-driver.d.ts +56 -0
  18. package/esm/cache/database-cache-driver.d.ts.map +1 -0
  19. package/esm/cache/database-cache-driver.js +112 -0
  20. package/esm/cache/database-cache-driver.js.map +1 -0
  21. package/esm/cache/index.d.ts +3 -0
  22. package/esm/cache/index.d.ts.map +1 -0
  23. package/esm/cache/index.js +1 -0
  24. package/esm/cache/index.js.map +1 -0
  25. package/esm/cli/cli-command.d.ts +115 -0
  26. package/esm/cli/cli-command.d.ts.map +1 -0
  27. package/esm/cli/cli-command.js +227 -0
  28. package/esm/cli/cli-command.js.map +1 -0
  29. package/esm/cli/cli-commands.manager.d.ts +71 -0
  30. package/esm/cli/cli-commands.manager.d.ts.map +1 -0
  31. package/esm/cli/cli-commands.manager.js +362 -0
  32. package/esm/cli/cli-commands.manager.js.map +1 -0
  33. package/esm/cli/cli-commands.utils.d.ts +69 -0
  34. package/esm/cli/cli-commands.utils.d.ts.map +1 -0
  35. package/esm/cli/cli-commands.utils.js +180 -0
  36. package/esm/cli/cli-commands.utils.js.map +1 -0
  37. package/esm/cli/commands/add.command.d.ts +2 -0
  38. package/esm/cli/commands/add.command.d.ts.map +1 -0
  39. package/esm/cli/commands/add.command.js +15 -0
  40. package/esm/cli/commands/add.command.js.map +1 -0
  41. package/esm/cli/commands/build.command.d.ts +2 -0
  42. package/esm/cli/commands/build.command.d.ts.map +1 -0
  43. package/esm/cli/commands/build.command.js +8 -0
  44. package/esm/cli/commands/build.command.js.map +1 -0
  45. package/esm/cli/commands/create-database.command.d.ts +2 -0
  46. package/esm/cli/commands/create-database.command.d.ts.map +1 -0
  47. package/esm/cli/commands/create-database.command.js +18 -0
  48. package/esm/cli/commands/create-database.command.js.map +1 -0
  49. package/esm/cli/commands/dev-server.command.d.ts +2 -0
  50. package/esm/cli/commands/dev-server.command.d.ts.map +1 -0
  51. package/esm/cli/commands/dev-server.command.js +18 -0
  52. package/esm/cli/commands/dev-server.command.js.map +1 -0
  53. package/esm/cli/commands/drop-tables.command.d.ts +2 -0
  54. package/esm/cli/commands/drop-tables.command.d.ts.map +1 -0
  55. package/esm/cli/commands/drop-tables.command.js +17 -0
  56. package/esm/cli/commands/drop-tables.command.js.map +1 -0
  57. package/esm/cli/commands/generate/generate.command.d.ts +10 -0
  58. package/esm/cli/commands/generate/generate.command.d.ts.map +1 -0
  59. package/esm/cli/commands/generate/generate.command.js +188 -0
  60. package/esm/cli/commands/generate/generate.command.js.map +1 -0
  61. package/esm/cli/commands/generate/generators/column-dsl-parser.d.ts +11 -0
  62. package/esm/cli/commands/generate/generators/column-dsl-parser.d.ts.map +1 -0
  63. package/esm/cli/commands/generate/generators/column-dsl-parser.js +47 -0
  64. package/esm/cli/commands/generate/generators/column-dsl-parser.js.map +1 -0
  65. package/esm/cli/commands/generate/generators/controller.generator.d.ts +3 -0
  66. package/esm/cli/commands/generate/generators/controller.generator.d.ts.map +1 -0
  67. package/esm/cli/commands/generate/generators/controller.generator.js +51 -0
  68. package/esm/cli/commands/generate/generators/controller.generator.js.map +1 -0
  69. package/esm/cli/commands/generate/generators/migration.generator.d.ts +13 -0
  70. package/esm/cli/commands/generate/generators/migration.generator.d.ts.map +1 -0
  71. package/esm/cli/commands/generate/generators/migration.generator.js +82 -0
  72. package/esm/cli/commands/generate/generators/migration.generator.js.map +1 -0
  73. package/esm/cli/commands/generate/generators/model.generator.d.ts +3 -0
  74. package/esm/cli/commands/generate/generators/model.generator.d.ts.map +1 -0
  75. package/esm/cli/commands/generate/generators/model.generator.js +58 -0
  76. package/esm/cli/commands/generate/generators/model.generator.js.map +1 -0
  77. package/esm/cli/commands/generate/generators/module.generator.d.ts +3 -0
  78. package/esm/cli/commands/generate/generators/module.generator.d.ts.map +1 -0
  79. package/esm/cli/commands/generate/generators/module.generator.js +149 -0
  80. package/esm/cli/commands/generate/generators/module.generator.js.map +1 -0
  81. package/esm/cli/commands/generate/generators/repository.generator.d.ts +3 -0
  82. package/esm/cli/commands/generate/generators/repository.generator.d.ts.map +1 -0
  83. package/esm/cli/commands/generate/generators/repository.generator.js +37 -0
  84. package/esm/cli/commands/generate/generators/repository.generator.js.map +1 -0
  85. package/esm/cli/commands/generate/generators/resource.generator.d.ts +3 -0
  86. package/esm/cli/commands/generate/generators/resource.generator.d.ts.map +1 -0
  87. package/esm/cli/commands/generate/generators/resource.generator.js +37 -0
  88. package/esm/cli/commands/generate/generators/resource.generator.js.map +1 -0
  89. package/esm/cli/commands/generate/generators/service.generator.d.ts +3 -0
  90. package/esm/cli/commands/generate/generators/service.generator.d.ts.map +1 -0
  91. package/esm/cli/commands/generate/generators/service.generator.js +37 -0
  92. package/esm/cli/commands/generate/generators/service.generator.js.map +1 -0
  93. package/esm/cli/commands/generate/generators/validation.generator.d.ts +3 -0
  94. package/esm/cli/commands/generate/generators/validation.generator.d.ts.map +1 -0
  95. package/esm/cli/commands/generate/generators/validation.generator.js +46 -0
  96. package/esm/cli/commands/generate/generators/validation.generator.js.map +1 -0
  97. package/esm/cli/commands/generate/templates/stubs.d.ts +129 -0
  98. package/esm/cli/commands/generate/templates/stubs.d.ts.map +1 -0
  99. package/esm/cli/commands/generate/templates/stubs.js +528 -0
  100. package/esm/cli/commands/generate/templates/stubs.js.map +1 -0
  101. package/esm/cli/commands/generate/types.d.ts +53 -0
  102. package/esm/cli/commands/generate/types.d.ts.map +1 -0
  103. package/esm/cli/commands/generate/utils/name-parser.d.ts +40 -0
  104. package/esm/cli/commands/generate/utils/name-parser.d.ts.map +1 -0
  105. package/esm/cli/commands/generate/utils/name-parser.js +65 -0
  106. package/esm/cli/commands/generate/utils/name-parser.js.map +1 -0
  107. package/esm/cli/commands/generate/utils/path-resolver.d.ts +30 -0
  108. package/esm/cli/commands/generate/utils/path-resolver.d.ts.map +1 -0
  109. package/esm/cli/commands/generate/utils/path-resolver.js +42 -0
  110. package/esm/cli/commands/generate/utils/path-resolver.js.map +1 -0
  111. package/esm/cli/commands/generate/utils/prompt.d.ts +13 -0
  112. package/esm/cli/commands/generate/utils/prompt.d.ts.map +1 -0
  113. package/esm/cli/commands/generate/utils/prompt.js +21 -0
  114. package/esm/cli/commands/generate/utils/prompt.js.map +1 -0
  115. package/esm/cli/commands/migrate.command.d.ts +2 -0
  116. package/esm/cli/commands/migrate.command.d.ts.map +1 -0
  117. package/esm/cli/commands/migrate.command.js +52 -0
  118. package/esm/cli/commands/migrate.command.js.map +1 -0
  119. package/esm/cli/commands/seed.command.d.ts +2 -0
  120. package/esm/cli/commands/seed.command.d.ts.map +1 -0
  121. package/esm/cli/commands/seed.command.js +24 -0
  122. package/esm/cli/commands/seed.command.js.map +1 -0
  123. package/esm/cli/commands/start-production.command.d.ts +2 -0
  124. package/esm/cli/commands/start-production.command.d.ts.map +1 -0
  125. package/esm/cli/commands/start-production.command.js +65 -0
  126. package/esm/cli/commands/start-production.command.js.map +1 -0
  127. package/esm/cli/commands/storage-put.action.d.ts +22 -0
  128. package/esm/cli/commands/storage-put.action.d.ts.map +1 -0
  129. package/esm/cli/commands/storage-put.action.js +75 -0
  130. package/esm/cli/commands/storage-put.action.js.map +1 -0
  131. package/esm/cli/commands/storage-put.command.d.ts +20 -0
  132. package/esm/cli/commands/storage-put.command.d.ts.map +1 -0
  133. package/esm/cli/commands/storage-put.command.js +41 -0
  134. package/esm/cli/commands/storage-put.command.js.map +1 -0
  135. package/esm/cli/commands/typings-generator.command.d.ts +2 -0
  136. package/esm/cli/commands/typings-generator.command.d.ts.map +1 -0
  137. package/esm/cli/commands/typings-generator.command.js +37 -0
  138. package/esm/cli/commands/typings-generator.command.js.map +1 -0
  139. package/esm/cli/commands-loader.d.ts +18 -0
  140. package/esm/cli/commands-loader.d.ts.map +1 -0
  141. package/esm/cli/commands-loader.js +45 -0
  142. package/esm/cli/commands-loader.js.map +1 -0
  143. package/esm/cli/framework-cli-commands.d.ts +2 -0
  144. package/esm/cli/framework-cli-commands.d.ts.map +1 -0
  145. package/esm/cli/framework-cli-commands.js +27 -0
  146. package/esm/cli/framework-cli-commands.js.map +1 -0
  147. package/esm/cli/index.d.ts +3 -0
  148. package/esm/cli/index.d.ts.map +1 -0
  149. package/esm/cli/index.js +1 -0
  150. package/esm/cli/index.js.map +1 -0
  151. package/esm/cli/parse-cli-args.d.ts +18 -0
  152. package/esm/cli/parse-cli-args.d.ts.map +1 -0
  153. package/esm/cli/parse-cli-args.js +82 -0
  154. package/esm/cli/parse-cli-args.js.map +1 -0
  155. package/esm/cli/start.d.ts +2 -0
  156. package/esm/cli/start.d.ts.map +1 -0
  157. package/esm/cli/start.js +2 -0
  158. package/esm/cli/start.js.map +1 -0
  159. package/esm/cli/string-similarity.d.ts +44 -0
  160. package/esm/cli/string-similarity.d.ts.map +1 -0
  161. package/esm/cli/string-similarity.js +57 -0
  162. package/esm/cli/string-similarity.js.map +1 -0
  163. package/esm/cli/types.d.ts +218 -0
  164. package/esm/cli/types.d.ts.map +1 -0
  165. package/esm/config/config-getter.d.ts +35 -0
  166. package/esm/config/config-getter.d.ts.map +1 -0
  167. package/esm/config/config-getter.js +21 -0
  168. package/esm/config/config-getter.js.map +1 -0
  169. package/esm/config/config-handlers.d.ts +7 -0
  170. package/esm/config/config-handlers.d.ts.map +1 -0
  171. package/esm/config/config-handlers.js +19 -0
  172. package/esm/config/config-handlers.js.map +1 -0
  173. package/esm/config/config-loader.d.ts +37 -0
  174. package/esm/config/config-loader.d.ts.map +1 -0
  175. package/esm/config/config-loader.js +85 -0
  176. package/esm/config/config-loader.js.map +1 -0
  177. package/esm/config/config-manager.d.ts +22 -0
  178. package/esm/config/config-manager.d.ts.map +1 -0
  179. package/esm/config/config-manager.js +25 -0
  180. package/esm/config/config-manager.js.map +1 -0
  181. package/esm/config/config-special-handlers.d.ts +17 -0
  182. package/esm/config/config-special-handlers.d.ts.map +1 -0
  183. package/esm/config/config-special-handlers.js +23 -0
  184. package/esm/config/config-special-handlers.js.map +1 -0
  185. package/esm/config/index.d.ts +5 -0
  186. package/esm/config/index.d.ts.map +1 -0
  187. package/esm/config/load-config-files.d.ts +6 -0
  188. package/esm/config/load-config-files.d.ts.map +1 -0
  189. package/esm/config/load-config-files.js +19 -0
  190. package/esm/config/load-config-files.js.map +1 -0
  191. package/esm/config/types.d.ts +52 -0
  192. package/esm/config/types.d.ts.map +1 -0
  193. package/esm/connectors/base-connector.d.ts +49 -0
  194. package/esm/connectors/base-connector.d.ts.map +1 -0
  195. package/esm/connectors/base-connector.js +48 -0
  196. package/esm/connectors/base-connector.js.map +1 -0
  197. package/esm/connectors/cache-connector.d.ts +23 -0
  198. package/esm/connectors/cache-connector.d.ts.map +1 -0
  199. package/esm/connectors/cache-connector.js +35 -0
  200. package/esm/connectors/cache-connector.js.map +1 -0
  201. package/esm/connectors/communicator-connector.d.ts +23 -0
  202. package/esm/connectors/communicator-connector.d.ts.map +1 -0
  203. package/esm/connectors/communicator-connector.js +62 -0
  204. package/esm/connectors/communicator-connector.js.map +1 -0
  205. package/esm/connectors/connectors-manager.d.ts +42 -0
  206. package/esm/connectors/connectors-manager.d.ts.map +1 -0
  207. package/esm/connectors/connectors-manager.js +93 -0
  208. package/esm/connectors/connectors-manager.js.map +1 -0
  209. package/esm/connectors/database-connector.d.ts +23 -0
  210. package/esm/connectors/database-connector.d.ts.map +1 -0
  211. package/esm/connectors/database-connector.js +51 -0
  212. package/esm/connectors/database-connector.js.map +1 -0
  213. package/esm/connectors/http-connector.d.ts +31 -0
  214. package/esm/connectors/http-connector.d.ts.map +1 -0
  215. package/esm/connectors/http-connector.js +83 -0
  216. package/esm/connectors/http-connector.js.map +1 -0
  217. package/esm/connectors/index.d.ts +15 -0
  218. package/esm/connectors/index.d.ts.map +1 -0
  219. package/esm/connectors/logger-connector.d.ts +23 -0
  220. package/esm/connectors/logger-connector.d.ts.map +1 -0
  221. package/esm/connectors/logger-connector.js +45 -0
  222. package/esm/connectors/logger-connector.js.map +1 -0
  223. package/esm/connectors/mail-connector.d.ts +23 -0
  224. package/esm/connectors/mail-connector.d.ts.map +1 -0
  225. package/esm/connectors/mail-connector.js +45 -0
  226. package/esm/connectors/mail-connector.js.map +1 -0
  227. package/esm/connectors/storage.connector.d.ts +23 -0
  228. package/esm/connectors/storage.connector.d.ts.map +1 -0
  229. package/esm/connectors/storage.connector.js +30 -0
  230. package/esm/connectors/storage.connector.js.map +1 -0
  231. package/esm/connectors/types.d.ts +54 -0
  232. package/esm/connectors/types.d.ts.map +1 -0
  233. package/esm/connectors/types.js +13 -0
  234. package/esm/connectors/types.js.map +1 -0
  235. package/esm/database/create-database-action.d.ts +3 -0
  236. package/esm/database/create-database-action.d.ts.map +1 -0
  237. package/esm/database/create-database-action.js +28 -0
  238. package/esm/database/create-database-action.js.map +1 -0
  239. package/esm/database/drop-tables-action.d.ts +3 -0
  240. package/esm/database/drop-tables-action.d.ts.map +1 -0
  241. package/esm/database/drop-tables-action.js +29 -0
  242. package/esm/database/drop-tables-action.js.map +1 -0
  243. package/esm/database/index.d.ts +4 -0
  244. package/esm/database/index.d.ts.map +1 -0
  245. package/esm/database/migrate-action.d.ts +8 -0
  246. package/esm/database/migrate-action.d.ts.map +1 -0
  247. package/esm/database/migrate-action.js +118 -0
  248. package/esm/database/migrate-action.js.map +1 -0
  249. package/esm/database/models/database-log/database-log.d.ts +16 -0
  250. package/esm/database/models/database-log/database-log.d.ts.map +1 -0
  251. package/esm/database/models/database-log/database-log.js +17 -0
  252. package/esm/database/models/database-log/database-log.js.map +1 -0
  253. package/esm/database/models/database-log/index.d.ts +2 -0
  254. package/esm/database/models/database-log/index.d.ts.map +1 -0
  255. package/esm/database/seed-command-action.d.ts +3 -0
  256. package/esm/database/seed-command-action.d.ts.map +1 -0
  257. package/esm/database/seed-command-action.js +36 -0
  258. package/esm/database/seed-command-action.js.map +1 -0
  259. package/esm/database/seeds/index.d.ts +3 -0
  260. package/esm/database/seeds/index.d.ts.map +1 -0
  261. package/esm/database/seeds/seeder.d.ts +40 -0
  262. package/esm/database/seeds/seeder.d.ts.map +1 -0
  263. package/esm/database/seeds/seeder.js +6 -0
  264. package/esm/database/seeds/seeder.js.map +1 -0
  265. package/esm/database/seeds/seeders.manager.d.ts +47 -0
  266. package/esm/database/seeds/seeders.manager.d.ts.map +1 -0
  267. package/esm/database/seeds/seeders.manager.js +144 -0
  268. package/esm/database/seeds/seeders.manager.js.map +1 -0
  269. package/esm/database/seeds/seeds-table-migration.d.ts +8 -0
  270. package/esm/database/seeds/seeds-table-migration.d.ts.map +1 -0
  271. package/esm/database/seeds/seeds-table-migration.js +18 -0
  272. package/esm/database/seeds/seeds-table-migration.js.map +1 -0
  273. package/esm/database/seeds/types.d.ts +13 -0
  274. package/esm/database/seeds/types.d.ts.map +1 -0
  275. package/esm/database/seeds/utils.d.ts +2 -0
  276. package/esm/database/seeds/utils.d.ts.map +1 -0
  277. package/esm/database/seeds/utils.js +1 -0
  278. package/esm/database/seeds/utils.js.map +1 -0
  279. package/esm/database/utils.d.ts +17 -0
  280. package/esm/database/utils.d.ts.map +1 -0
  281. package/esm/database/utils.js +30 -0
  282. package/esm/database/utils.js.map +1 -0
  283. package/esm/dev-server/create-worker.d.ts +34 -0
  284. package/esm/dev-server/create-worker.d.ts.map +1 -0
  285. package/esm/dev-server/create-worker.js +37 -0
  286. package/esm/dev-server/create-worker.js.map +1 -0
  287. package/esm/dev-server/dependency-graph.d.ts +102 -0
  288. package/esm/dev-server/dependency-graph.d.ts.map +1 -0
  289. package/esm/dev-server/dependency-graph.js +310 -0
  290. package/esm/dev-server/dependency-graph.js.map +1 -0
  291. package/esm/dev-server/dev-logger.d.ts +14 -0
  292. package/esm/dev-server/dev-logger.d.ts.map +1 -0
  293. package/esm/dev-server/dev-logger.js +130 -0
  294. package/esm/dev-server/dev-logger.js.map +1 -0
  295. package/esm/dev-server/development-server.d.ts +55 -0
  296. package/esm/dev-server/development-server.d.ts.map +1 -0
  297. package/esm/dev-server/development-server.js +199 -0
  298. package/esm/dev-server/development-server.js.map +1 -0
  299. package/esm/dev-server/events.d.ts +5 -0
  300. package/esm/dev-server/events.d.ts.map +1 -0
  301. package/esm/dev-server/events.js +4 -0
  302. package/esm/dev-server/events.js.map +1 -0
  303. package/esm/dev-server/export-analyzer.d.ts +84 -0
  304. package/esm/dev-server/export-analyzer.d.ts.map +1 -0
  305. package/esm/dev-server/export-analyzer.js +206 -0
  306. package/esm/dev-server/export-analyzer.js.map +1 -0
  307. package/esm/dev-server/file-event-handler.d.ts +156 -0
  308. package/esm/dev-server/file-event-handler.d.ts.map +1 -0
  309. package/esm/dev-server/file-event-handler.js +309 -0
  310. package/esm/dev-server/file-event-handler.js.map +1 -0
  311. package/esm/dev-server/file-manager.d.ts +394 -0
  312. package/esm/dev-server/file-manager.d.ts.map +1 -0
  313. package/esm/dev-server/file-manager.js +603 -0
  314. package/esm/dev-server/file-manager.js.map +1 -0
  315. package/esm/dev-server/file-operations.d.ts +203 -0
  316. package/esm/dev-server/file-operations.d.ts.map +1 -0
  317. package/esm/dev-server/file-operations.js +365 -0
  318. package/esm/dev-server/file-operations.js.map +1 -0
  319. package/esm/dev-server/files-orchestrator.d.ts +153 -0
  320. package/esm/dev-server/files-orchestrator.d.ts.map +1 -0
  321. package/esm/dev-server/files-orchestrator.js +349 -0
  322. package/esm/dev-server/files-orchestrator.js.map +1 -0
  323. package/esm/dev-server/files-watcher.d.ts +67 -0
  324. package/esm/dev-server/files-watcher.d.ts.map +1 -0
  325. package/esm/dev-server/files-watcher.js +121 -0
  326. package/esm/dev-server/files-watcher.js.map +1 -0
  327. package/esm/dev-server/flags.d.ts +10 -0
  328. package/esm/dev-server/flags.d.ts.map +1 -0
  329. package/esm/dev-server/flags.js +9 -0
  330. package/esm/dev-server/flags.js.map +1 -0
  331. package/esm/dev-server/health-checker/checkers/base-health-checker.d.ts +52 -0
  332. package/esm/dev-server/health-checker/checkers/base-health-checker.d.ts.map +1 -0
  333. package/esm/dev-server/health-checker/checkers/base-health-checker.js +71 -0
  334. package/esm/dev-server/health-checker/checkers/base-health-checker.js.map +1 -0
  335. package/esm/dev-server/health-checker/checkers/eslint-health-checker.d.ts +40 -0
  336. package/esm/dev-server/health-checker/checkers/eslint-health-checker.d.ts.map +1 -0
  337. package/esm/dev-server/health-checker/checkers/eslint-health-checker.js +217 -0
  338. package/esm/dev-server/health-checker/checkers/eslint-health-checker.js.map +1 -0
  339. package/esm/dev-server/health-checker/checkers/typescript-health-checker.d.ts +56 -0
  340. package/esm/dev-server/health-checker/checkers/typescript-health-checker.d.ts.map +1 -0
  341. package/esm/dev-server/health-checker/checkers/typescript-health-checker.js +279 -0
  342. package/esm/dev-server/health-checker/checkers/typescript-health-checker.js.map +1 -0
  343. package/esm/dev-server/health-checker/file-health-checker.contract.d.ts +59 -0
  344. package/esm/dev-server/health-checker/file-health-checker.contract.d.ts.map +1 -0
  345. package/esm/dev-server/health-checker/file-health-result.d.ts +68 -0
  346. package/esm/dev-server/health-checker/file-health-result.d.ts.map +1 -0
  347. package/esm/dev-server/health-checker/file-health-result.js +40 -0
  348. package/esm/dev-server/health-checker/file-health-result.js.map +1 -0
  349. package/esm/dev-server/health-checker/files-healthcare.manager.d.ts +115 -0
  350. package/esm/dev-server/health-checker/files-healthcare.manager.d.ts.map +1 -0
  351. package/esm/dev-server/health-checker/files-healthcare.manager.js +422 -0
  352. package/esm/dev-server/health-checker/files-healthcare.manager.js.map +1 -0
  353. package/esm/dev-server/health-checker/index.d.ts +6 -0
  354. package/esm/dev-server/health-checker/index.d.ts.map +1 -0
  355. package/esm/dev-server/health-checker/workers/eslint-health.worker.d.ts +2 -0
  356. package/esm/dev-server/health-checker/workers/eslint-health.worker.d.ts.map +1 -0
  357. package/esm/dev-server/health-checker/workers/eslint-health.worker.js +214 -0
  358. package/esm/dev-server/health-checker/workers/eslint-health.worker.js.map +1 -0
  359. package/esm/dev-server/health-checker/workers/ts-health.worker.d.ts +2 -0
  360. package/esm/dev-server/health-checker/workers/ts-health.worker.d.ts.map +1 -0
  361. package/esm/dev-server/health-checker/workers/ts-health.worker.js +261 -0
  362. package/esm/dev-server/health-checker/workers/ts-health.worker.js.map +1 -0
  363. package/esm/dev-server/import-deduplicator.d.ts +75 -0
  364. package/esm/dev-server/import-deduplicator.d.ts.map +1 -0
  365. package/esm/dev-server/import-deduplicator.js +288 -0
  366. package/esm/dev-server/import-deduplicator.js.map +1 -0
  367. package/esm/dev-server/import-deduplicator.test.d.ts +7 -0
  368. package/esm/dev-server/import-deduplicator.test.d.ts.map +1 -0
  369. package/esm/dev-server/import-transformer.d.ts +17 -0
  370. package/esm/dev-server/import-transformer.d.ts.map +1 -0
  371. package/esm/dev-server/import-transformer.js +221 -0
  372. package/esm/dev-server/import-transformer.js.map +1 -0
  373. package/esm/dev-server/index.d.ts +1 -0
  374. package/esm/dev-server/index.d.ts.map +1 -0
  375. package/esm/dev-server/layer-executor.d.ts +64 -0
  376. package/esm/dev-server/layer-executor.d.ts.map +1 -0
  377. package/esm/dev-server/layer-executor.js +338 -0
  378. package/esm/dev-server/layer-executor.js.map +1 -0
  379. package/esm/dev-server/manifest-manager.d.ts +80 -0
  380. package/esm/dev-server/manifest-manager.d.ts.map +1 -0
  381. package/esm/dev-server/manifest-manager.js +107 -0
  382. package/esm/dev-server/manifest-manager.js.map +1 -0
  383. package/esm/dev-server/module-loader.d.ts +111 -0
  384. package/esm/dev-server/module-loader.d.ts.map +1 -0
  385. package/esm/dev-server/module-loader.js +276 -0
  386. package/esm/dev-server/module-loader.js.map +1 -0
  387. package/esm/dev-server/package-json-manager.d.ts +16 -0
  388. package/esm/dev-server/package-json-manager.d.ts.map +1 -0
  389. package/esm/dev-server/package-json-manager.js +20 -0
  390. package/esm/dev-server/package-json-manager.js.map +1 -0
  391. package/esm/dev-server/parse-imports.d.ts +34 -0
  392. package/esm/dev-server/parse-imports.d.ts.map +1 -0
  393. package/esm/dev-server/parse-imports.js +426 -0
  394. package/esm/dev-server/parse-imports.js.map +1 -0
  395. package/esm/dev-server/path.d.ts +39 -0
  396. package/esm/dev-server/path.d.ts.map +1 -0
  397. package/esm/dev-server/path.js +56 -0
  398. package/esm/dev-server/path.js.map +1 -0
  399. package/esm/dev-server/runtime-import-helper.d.ts +8 -0
  400. package/esm/dev-server/runtime-import-helper.d.ts.map +1 -0
  401. package/esm/dev-server/runtime-import-helper.js +158 -0
  402. package/esm/dev-server/runtime-import-helper.js.map +1 -0
  403. package/esm/dev-server/special-files-collector.d.ts +114 -0
  404. package/esm/dev-server/special-files-collector.d.ts.map +1 -0
  405. package/esm/dev-server/special-files-collector.js +212 -0
  406. package/esm/dev-server/special-files-collector.js.map +1 -0
  407. package/esm/dev-server/start-development-server.d.ts +7 -0
  408. package/esm/dev-server/start-development-server.d.ts.map +1 -0
  409. package/esm/dev-server/start-development-server.js +21 -0
  410. package/esm/dev-server/start-development-server.js.map +1 -0
  411. package/esm/dev-server/transpile-file.d.ts +11 -0
  412. package/esm/dev-server/transpile-file.d.ts.map +1 -0
  413. package/esm/dev-server/transpile-file.js +30 -0
  414. package/esm/dev-server/transpile-file.js.map +1 -0
  415. package/esm/dev-server/tsconfig-manager.d.ts +45 -0
  416. package/esm/dev-server/tsconfig-manager.d.ts.map +1 -0
  417. package/esm/dev-server/tsconfig-manager.js +107 -0
  418. package/esm/dev-server/tsconfig-manager.js.map +1 -0
  419. package/esm/dev-server/type-generator.d.ts +115 -0
  420. package/esm/dev-server/type-generator.d.ts.map +1 -0
  421. package/esm/dev-server/type-generator.js +566 -0
  422. package/esm/dev-server/type-generator.js.map +1 -0
  423. package/esm/dev-server/types.d.ts +30 -0
  424. package/esm/dev-server/types.d.ts.map +1 -0
  425. package/esm/dev-server/utils.d.ts +15 -0
  426. package/esm/dev-server/utils.d.ts.map +1 -0
  427. package/esm/dev-server/utils.js +41 -0
  428. package/esm/dev-server/utils.js.map +1 -0
  429. package/esm/encryption/encrypt.d.ts +23 -0
  430. package/esm/encryption/encrypt.d.ts.map +1 -0
  431. package/esm/encryption/encrypt.js +85 -0
  432. package/esm/encryption/encrypt.js.map +1 -0
  433. package/esm/encryption/hash.d.ts +17 -0
  434. package/esm/encryption/hash.d.ts.map +1 -0
  435. package/esm/encryption/hash.js +26 -0
  436. package/esm/encryption/hash.js.map +1 -0
  437. package/esm/encryption/index.d.ts +5 -0
  438. package/esm/encryption/index.d.ts.map +1 -0
  439. package/esm/encryption/password.d.ts +23 -0
  440. package/esm/encryption/password.d.ts.map +1 -0
  441. package/esm/encryption/password.js +72 -0
  442. package/esm/encryption/password.js.map +1 -0
  443. package/esm/encryption/types.d.ts +51 -0
  444. package/esm/encryption/types.d.ts.map +1 -0
  445. package/esm/generations/add-command.action.d.ts +3 -0
  446. package/esm/generations/add-command.action.d.ts.map +1 -0
  447. package/esm/generations/add-command.action.js +382 -0
  448. package/esm/generations/add-command.action.js.map +1 -0
  449. package/esm/generations/stubs.d.ts +2 -0
  450. package/esm/generations/stubs.d.ts.map +1 -0
  451. package/esm/generations/stubs.js +81 -0
  452. package/esm/generations/stubs.js.map +1 -0
  453. package/esm/http/config.d.ts +10 -0
  454. package/esm/http/config.d.ts.map +1 -0
  455. package/esm/http/config.js +22 -0
  456. package/esm/http/config.js.map +1 -0
  457. package/esm/http/context/request-context.d.ts +47 -0
  458. package/esm/http/context/request-context.d.ts.map +1 -0
  459. package/esm/http/context/request-context.js +52 -0
  460. package/esm/http/context/request-context.js.map +1 -0
  461. package/esm/http/createHttpApplication.d.ts +3 -0
  462. package/esm/http/createHttpApplication.d.ts.map +1 -0
  463. package/esm/http/createHttpApplication.js +28 -0
  464. package/esm/http/createHttpApplication.js.map +1 -0
  465. package/esm/http/database/RequestLog.d.ts +16 -0
  466. package/esm/http/database/RequestLog.d.ts.map +1 -0
  467. package/esm/http/database/RequestLog.js +26 -0
  468. package/esm/http/database/RequestLog.js.map +1 -0
  469. package/esm/http/errors/errors.d.ts +39 -0
  470. package/esm/http/errors/errors.d.ts.map +1 -0
  471. package/esm/http/errors/errors.js +76 -0
  472. package/esm/http/errors/errors.js.map +1 -0
  473. package/esm/http/errors/index.d.ts +2 -0
  474. package/esm/http/errors/index.d.ts.map +1 -0
  475. package/esm/http/events.d.ts +4 -0
  476. package/esm/http/events.d.ts.map +1 -0
  477. package/esm/http/events.js +26 -0
  478. package/esm/http/events.js.map +1 -0
  479. package/esm/http/index.d.ts +17 -0
  480. package/esm/http/index.d.ts.map +1 -0
  481. package/esm/http/middleware/cache-response-middleware.d.ts +34 -0
  482. package/esm/http/middleware/cache-response-middleware.d.ts.map +1 -0
  483. package/esm/http/middleware/cache-response-middleware.js +45 -0
  484. package/esm/http/middleware/cache-response-middleware.js.map +1 -0
  485. package/esm/http/middleware/index.d.ts +3 -0
  486. package/esm/http/middleware/index.d.ts.map +1 -0
  487. package/esm/http/middleware/inject-request-context.d.ts +21 -0
  488. package/esm/http/middleware/inject-request-context.d.ts.map +1 -0
  489. package/esm/http/middleware/inject-request-context.js +119 -0
  490. package/esm/http/middleware/inject-request-context.js.map +1 -0
  491. package/esm/http/plugins.d.ts +3 -0
  492. package/esm/http/plugins.d.ts.map +1 -0
  493. package/esm/http/plugins.js +36 -0
  494. package/esm/http/plugins.js.map +1 -0
  495. package/esm/http/request-controller.d.ts +11 -0
  496. package/esm/http/request-controller.d.ts.map +1 -0
  497. package/esm/http/request-controller.js +9 -0
  498. package/esm/http/request-controller.js.map +1 -0
  499. package/esm/http/request.d.ts +400 -0
  500. package/esm/http/request.d.ts.map +1 -0
  501. package/esm/http/request.js +766 -0
  502. package/esm/http/request.js.map +1 -0
  503. package/esm/http/response.d.ts +374 -0
  504. package/esm/http/response.d.ts.map +1 -0
  505. package/esm/http/response.js +974 -0
  506. package/esm/http/response.js.map +1 -0
  507. package/esm/http/server.d.ts +8 -0
  508. package/esm/http/server.d.ts.map +1 -0
  509. package/esm/http/server.js +15 -0
  510. package/esm/http/server.js.map +1 -0
  511. package/esm/http/types.d.ts +230 -0
  512. package/esm/http/types.d.ts.map +1 -0
  513. package/esm/http/uploaded-file.d.ts +459 -0
  514. package/esm/http/uploaded-file.d.ts.map +1 -0
  515. package/esm/http/uploaded-file.js +709 -0
  516. package/esm/http/uploaded-file.js.map +1 -0
  517. package/esm/http/uploads-config.d.ts +26 -0
  518. package/esm/http/uploads-config.d.ts.map +1 -0
  519. package/esm/http/uploads-config.js +35 -0
  520. package/esm/http/uploads-config.js.map +1 -0
  521. package/esm/http/uploads-types.d.ts +236 -0
  522. package/esm/http/uploads-types.d.ts.map +1 -0
  523. package/esm/image/image.d.ts +388 -0
  524. package/esm/image/image.d.ts.map +1 -0
  525. package/esm/image/image.js +602 -0
  526. package/esm/image/image.js.map +1 -0
  527. package/esm/image/index.d.ts +2 -0
  528. package/esm/image/index.d.ts.map +1 -0
  529. package/esm/index.d.ts +34 -0
  530. package/esm/index.d.ts.map +1 -0
  531. package/esm/index.js +1 -0
  532. package/esm/index.js.map +1 -0
  533. package/esm/logger/index.d.ts +3 -0
  534. package/esm/logger/index.d.ts.map +1 -0
  535. package/esm/logger/logger.d.ts +3 -0
  536. package/esm/logger/logger.d.ts.map +1 -0
  537. package/esm/logger/logger.js +16 -0
  538. package/esm/logger/logger.js.map +1 -0
  539. package/esm/logger/types.d.ts +39 -0
  540. package/esm/logger/types.d.ts.map +1 -0
  541. package/esm/mail/config.d.ts +80 -0
  542. package/esm/mail/config.d.ts.map +1 -0
  543. package/esm/mail/config.js +158 -0
  544. package/esm/mail/config.js.map +1 -0
  545. package/esm/mail/events.d.ts +96 -0
  546. package/esm/mail/events.d.ts.map +1 -0
  547. package/esm/mail/events.js +123 -0
  548. package/esm/mail/events.js.map +1 -0
  549. package/esm/mail/index.d.ts +10 -0
  550. package/esm/mail/index.d.ts.map +1 -0
  551. package/esm/mail/mail.d.ts +175 -0
  552. package/esm/mail/mail.d.ts.map +1 -0
  553. package/esm/mail/mail.js +286 -0
  554. package/esm/mail/mail.js.map +1 -0
  555. package/esm/mail/mailer-pool.d.ts +27 -0
  556. package/esm/mail/mailer-pool.d.ts.map +1 -0
  557. package/esm/mail/mailer-pool.js +215 -0
  558. package/esm/mail/mailer-pool.js.map +1 -0
  559. package/esm/mail/react-mail.d.ts +12 -0
  560. package/esm/mail/react-mail.d.ts.map +1 -0
  561. package/esm/mail/react-mail.js +40 -0
  562. package/esm/mail/react-mail.js.map +1 -0
  563. package/esm/mail/send-mail.d.ts +33 -0
  564. package/esm/mail/send-mail.d.ts.map +1 -0
  565. package/esm/mail/send-mail.js +313 -0
  566. package/esm/mail/send-mail.js.map +1 -0
  567. package/esm/mail/test-mailbox.d.ts +110 -0
  568. package/esm/mail/test-mailbox.d.ts.map +1 -0
  569. package/esm/mail/test-mailbox.js +143 -0
  570. package/esm/mail/test-mailbox.js.map +1 -0
  571. package/esm/mail/types.d.ts +264 -0
  572. package/esm/mail/types.d.ts.map +1 -0
  573. package/esm/mail/types.js +13 -0
  574. package/esm/mail/types.js.map +1 -0
  575. package/esm/manifest/manifest-manager.d.ts +74 -0
  576. package/esm/manifest/manifest-manager.d.ts.map +1 -0
  577. package/esm/manifest/manifest-manager.js +88 -0
  578. package/esm/manifest/manifest-manager.js.map +1 -0
  579. package/esm/production/build-app-production.d.ts +6 -0
  580. package/esm/production/build-app-production.d.ts.map +1 -0
  581. package/esm/production/build-app-production.js +8 -0
  582. package/esm/production/build-app-production.js.map +1 -0
  583. package/esm/production/esbuild-plugins.d.ts +5 -0
  584. package/esm/production/esbuild-plugins.d.ts.map +1 -0
  585. package/esm/production/esbuild-plugins.js +23 -0
  586. package/esm/production/esbuild-plugins.js.map +1 -0
  587. package/esm/production/production-builder.d.ts +76 -0
  588. package/esm/production/production-builder.d.ts.map +1 -0
  589. package/esm/production/production-builder.js +254 -0
  590. package/esm/production/production-builder.js.map +1 -0
  591. package/esm/react/index.d.ts +14 -0
  592. package/esm/react/index.d.ts.map +1 -0
  593. package/esm/react/index.js +65 -0
  594. package/esm/react/index.js.map +1 -0
  595. package/esm/repositories/adapters/cascade/cascade-adapter.d.ts +85 -0
  596. package/esm/repositories/adapters/cascade/cascade-adapter.d.ts.map +1 -0
  597. package/esm/repositories/adapters/cascade/cascade-adapter.js +179 -0
  598. package/esm/repositories/adapters/cascade/cascade-adapter.js.map +1 -0
  599. package/esm/repositories/adapters/cascade/cascade-query-builder.d.ts +141 -0
  600. package/esm/repositories/adapters/cascade/cascade-query-builder.d.ts.map +1 -0
  601. package/esm/repositories/adapters/cascade/cascade-query-builder.js +281 -0
  602. package/esm/repositories/adapters/cascade/cascade-query-builder.js.map +1 -0
  603. package/esm/repositories/adapters/cascade/filter-applicator.d.ts +126 -0
  604. package/esm/repositories/adapters/cascade/filter-applicator.d.ts.map +1 -0
  605. package/esm/repositories/adapters/cascade/filter-applicator.js +549 -0
  606. package/esm/repositories/adapters/cascade/filter-applicator.js.map +1 -0
  607. package/esm/repositories/adapters/cascade/index.d.ts +7 -0
  608. package/esm/repositories/adapters/cascade/index.d.ts.map +1 -0
  609. package/esm/repositories/contracts/index.d.ts +8 -0
  610. package/esm/repositories/contracts/index.d.ts.map +1 -0
  611. package/esm/repositories/contracts/query-builder.contract.d.ts +320 -0
  612. package/esm/repositories/contracts/query-builder.contract.d.ts.map +1 -0
  613. package/esm/repositories/contracts/repository-adapter.contract.d.ts +183 -0
  614. package/esm/repositories/contracts/repository-adapter.contract.d.ts.map +1 -0
  615. package/esm/repositories/contracts/types.d.ts +328 -0
  616. package/esm/repositories/contracts/types.d.ts.map +1 -0
  617. package/esm/repositories/index.d.ts +8 -0
  618. package/esm/repositories/index.d.ts.map +1 -0
  619. package/esm/repositories/repository.manager.d.ts +694 -0
  620. package/esm/repositories/repository.manager.d.ts.map +1 -0
  621. package/esm/repositories/repository.manager.js +1123 -0
  622. package/esm/repositories/repository.manager.js.map +1 -0
  623. package/esm/resource/define-resource.d.ts +65 -0
  624. package/esm/resource/define-resource.d.ts.map +1 -0
  625. package/esm/resource/define-resource.js +62 -0
  626. package/esm/resource/define-resource.js.map +1 -0
  627. package/esm/resource/index.d.ts +6 -0
  628. package/esm/resource/index.d.ts.map +1 -0
  629. package/esm/resource/register-resource.d.ts +21 -0
  630. package/esm/resource/register-resource.d.ts.map +1 -0
  631. package/esm/resource/register-resource.js +23 -0
  632. package/esm/resource/register-resource.js.map +1 -0
  633. package/esm/resource/resource-field-builder.d.ts +104 -0
  634. package/esm/resource/resource-field-builder.d.ts.map +1 -0
  635. package/esm/resource/resource-field-builder.js +260 -0
  636. package/esm/resource/resource-field-builder.js.map +1 -0
  637. package/esm/resource/resource.d.ts +217 -0
  638. package/esm/resource/resource.d.ts.map +1 -0
  639. package/esm/resource/resource.js +307 -0
  640. package/esm/resource/resource.js.map +1 -0
  641. package/esm/resource/types.d.ts +74 -0
  642. package/esm/resource/types.d.ts.map +1 -0
  643. package/esm/restful/index.d.ts +2 -0
  644. package/esm/restful/index.d.ts.map +1 -0
  645. package/esm/restful/restful.d.ts +110 -0
  646. package/esm/restful/restful.d.ts.map +1 -0
  647. package/esm/restful/restful.js +317 -0
  648. package/esm/restful/restful.js.map +1 -0
  649. package/esm/retry/index.d.ts +3 -0
  650. package/esm/retry/index.d.ts.map +1 -0
  651. package/esm/retry/retry.d.ts +21 -0
  652. package/esm/retry/retry.d.ts.map +1 -0
  653. package/esm/retry/retry.js +39 -0
  654. package/esm/retry/retry.js.map +1 -0
  655. package/esm/retry/types.d.ts +27 -0
  656. package/esm/retry/types.d.ts.map +1 -0
  657. package/esm/router/index.d.ts +3 -0
  658. package/esm/router/index.d.ts.map +1 -0
  659. package/esm/router/route-builder.d.ts +120 -0
  660. package/esm/router/route-builder.d.ts.map +1 -0
  661. package/esm/router/route-builder.js +201 -0
  662. package/esm/router/route-builder.js.map +1 -0
  663. package/esm/router/route-registry.d.ts +30 -0
  664. package/esm/router/route-registry.d.ts.map +1 -0
  665. package/esm/router/route-registry.js +67 -0
  666. package/esm/router/route-registry.js.map +1 -0
  667. package/esm/router/route.d.ts +34 -0
  668. package/esm/router/route.d.ts.map +1 -0
  669. package/esm/router/router.d.ts +188 -0
  670. package/esm/router/router.d.ts.map +1 -0
  671. package/esm/router/router.js +605 -0
  672. package/esm/router/router.js.map +1 -0
  673. package/esm/router/types.d.ts +254 -0
  674. package/esm/router/types.d.ts.map +1 -0
  675. package/esm/storage/config.d.ts +15 -0
  676. package/esm/storage/config.d.ts.map +1 -0
  677. package/esm/storage/config.js +32 -0
  678. package/esm/storage/config.js.map +1 -0
  679. package/esm/storage/context/storage-driver-context.d.ts +69 -0
  680. package/esm/storage/context/storage-driver-context.d.ts.map +1 -0
  681. package/esm/storage/context/storage-driver-context.js +80 -0
  682. package/esm/storage/context/storage-driver-context.js.map +1 -0
  683. package/esm/storage/drivers/cloud-driver.d.ts +206 -0
  684. package/esm/storage/drivers/cloud-driver.d.ts.map +1 -0
  685. package/esm/storage/drivers/cloud-driver.js +721 -0
  686. package/esm/storage/drivers/cloud-driver.js.map +1 -0
  687. package/esm/storage/drivers/do-spaces-driver.d.ts +43 -0
  688. package/esm/storage/drivers/do-spaces-driver.d.ts.map +1 -0
  689. package/esm/storage/drivers/do-spaces-driver.js +50 -0
  690. package/esm/storage/drivers/do-spaces-driver.js.map +1 -0
  691. package/esm/storage/drivers/local-driver.d.ts +151 -0
  692. package/esm/storage/drivers/local-driver.d.ts.map +1 -0
  693. package/esm/storage/drivers/local-driver.js +448 -0
  694. package/esm/storage/drivers/local-driver.js.map +1 -0
  695. package/esm/storage/drivers/r2-driver.d.ts +47 -0
  696. package/esm/storage/drivers/r2-driver.d.ts.map +1 -0
  697. package/esm/storage/drivers/r2-driver.js +60 -0
  698. package/esm/storage/drivers/r2-driver.js.map +1 -0
  699. package/esm/storage/drivers/s3-driver.d.ts +32 -0
  700. package/esm/storage/drivers/s3-driver.d.ts.map +1 -0
  701. package/esm/storage/drivers/s3-driver.js +37 -0
  702. package/esm/storage/drivers/s3-driver.js.map +1 -0
  703. package/esm/storage/index.d.ts +13 -0
  704. package/esm/storage/index.d.ts.map +1 -0
  705. package/esm/storage/scoped-storage.d.ts +547 -0
  706. package/esm/storage/scoped-storage.d.ts.map +1 -0
  707. package/esm/storage/scoped-storage.js +739 -0
  708. package/esm/storage/scoped-storage.js.map +1 -0
  709. package/esm/storage/storage-file.d.ts +222 -0
  710. package/esm/storage/storage-file.d.ts.map +1 -0
  711. package/esm/storage/storage-file.js +376 -0
  712. package/esm/storage/storage-file.js.map +1 -0
  713. package/esm/storage/storage.d.ts +583 -0
  714. package/esm/storage/storage.d.ts.map +1 -0
  715. package/esm/storage/storage.js +948 -0
  716. package/esm/storage/storage.js.map +1 -0
  717. package/esm/storage/types.d.ts +966 -0
  718. package/esm/storage/types.d.ts.map +1 -0
  719. package/esm/storage/utils/mime.d.ts +33 -0
  720. package/esm/storage/utils/mime.d.ts.map +1 -0
  721. package/esm/storage/utils/mime.js +45 -0
  722. package/esm/storage/utils/mime.js.map +1 -0
  723. package/esm/tests/index.d.ts +9 -0
  724. package/esm/tests/index.d.ts.map +1 -0
  725. package/esm/tests/start-http-development-server.d.ts +15 -0
  726. package/esm/tests/start-http-development-server.d.ts.map +1 -0
  727. package/esm/tests/start-http-development-server.js +69 -0
  728. package/esm/tests/start-http-development-server.js.map +1 -0
  729. package/esm/tests/test-helpers.d.ts +43 -0
  730. package/esm/tests/test-helpers.d.ts.map +1 -0
  731. package/esm/tests/test-helpers.js +86 -0
  732. package/esm/tests/test-helpers.js.map +1 -0
  733. package/esm/tests/vitest-setup.d.ts +10 -0
  734. package/esm/tests/vitest-setup.d.ts.map +1 -0
  735. package/esm/tests/vitest-setup.js +36 -0
  736. package/esm/tests/vitest-setup.js.map +1 -0
  737. package/esm/use-cases/index.d.ts +7 -0
  738. package/esm/use-cases/index.d.ts.map +1 -0
  739. package/esm/use-cases/types.d.ts +267 -0
  740. package/esm/use-cases/types.d.ts.map +1 -0
  741. package/esm/use-cases/use-case-events.d.ts +33 -0
  742. package/esm/use-cases/use-case-events.d.ts.map +1 -0
  743. package/esm/use-cases/use-case-events.js +65 -0
  744. package/esm/use-cases/use-case-events.js.map +1 -0
  745. package/esm/use-cases/use-case-pipeline.d.ts +29 -0
  746. package/esm/use-cases/use-case-pipeline.d.ts.map +1 -0
  747. package/esm/use-cases/use-case-pipeline.js +45 -0
  748. package/esm/use-cases/use-case-pipeline.js.map +1 -0
  749. package/esm/use-cases/use-case.d.ts +27 -0
  750. package/esm/use-cases/use-case.d.ts.map +1 -0
  751. package/esm/use-cases/use-case.errors.d.ts +6 -0
  752. package/esm/use-cases/use-case.errors.d.ts.map +1 -0
  753. package/esm/use-cases/use-case.errors.js +8 -0
  754. package/esm/use-cases/use-case.errors.js.map +1 -0
  755. package/esm/use-cases/use-case.js +138 -0
  756. package/esm/use-cases/use-case.js.map +1 -0
  757. package/esm/use-cases/use-cases-registry.d.ts +38 -0
  758. package/esm/use-cases/use-cases-registry.d.ts.map +1 -0
  759. package/esm/use-cases/use-cases-registry.js +92 -0
  760. package/esm/use-cases/use-cases-registry.js.map +1 -0
  761. package/esm/utils/app-log.d.ts +8 -0
  762. package/esm/utils/app-log.d.ts.map +1 -0
  763. package/esm/utils/app-log.js +7 -0
  764. package/esm/utils/app-log.js.map +1 -0
  765. package/esm/utils/cleanup-temp-files.d.ts +5 -0
  766. package/esm/utils/cleanup-temp-files.d.ts.map +1 -0
  767. package/esm/utils/database-log.d.ts +25 -0
  768. package/esm/utils/database-log.d.ts.map +1 -0
  769. package/esm/utils/database-log.js +43 -0
  770. package/esm/utils/database-log.js.map +1 -0
  771. package/esm/utils/download-file.d.ts +3 -0
  772. package/esm/utils/download-file.d.ts.map +1 -0
  773. package/esm/utils/environment.d.ts +4 -0
  774. package/esm/utils/environment.d.ts.map +1 -0
  775. package/esm/utils/environment.js +6 -0
  776. package/esm/utils/environment.js.map +1 -0
  777. package/esm/utils/framework-vesion.d.ts +6 -0
  778. package/esm/utils/framework-vesion.d.ts.map +1 -0
  779. package/esm/utils/framework-vesion.js +18 -0
  780. package/esm/utils/framework-vesion.js.map +1 -0
  781. package/esm/utils/get-localized.d.ts +10 -0
  782. package/esm/utils/get-localized.d.ts.map +1 -0
  783. package/esm/utils/get-localized.js +15 -0
  784. package/esm/utils/get-localized.js.map +1 -0
  785. package/esm/utils/index.d.ts +12 -0
  786. package/esm/utils/index.d.ts.map +1 -0
  787. package/esm/utils/internal.d.ts +4 -0
  788. package/esm/utils/internal.d.ts.map +1 -0
  789. package/esm/utils/paths.d.ts +55 -0
  790. package/esm/utils/paths.d.ts.map +1 -0
  791. package/esm/utils/paths.js +89 -0
  792. package/esm/utils/paths.js.map +1 -0
  793. package/esm/utils/promise-all-object.d.ts +8 -0
  794. package/esm/utils/promise-all-object.d.ts.map +1 -0
  795. package/esm/utils/promise-all-object.js +12 -0
  796. package/esm/utils/promise-all-object.js.map +1 -0
  797. package/esm/utils/queue.d.ts +49 -0
  798. package/esm/utils/queue.d.ts.map +1 -0
  799. package/esm/utils/queue.js +89 -0
  800. package/esm/utils/queue.js.map +1 -0
  801. package/esm/utils/sleep.d.ts +2 -0
  802. package/esm/utils/sleep.d.ts.map +1 -0
  803. package/esm/utils/sleep.js +3 -0
  804. package/esm/utils/sleep.js.map +1 -0
  805. package/esm/utils/sluggable.d.ts +5 -0
  806. package/esm/utils/sluggable.d.ts.map +1 -0
  807. package/esm/utils/sluggable.js +15 -0
  808. package/esm/utils/sluggable.js.map +1 -0
  809. package/esm/utils/to-json.d.ts +2 -0
  810. package/esm/utils/to-json.d.ts.map +1 -0
  811. package/esm/utils/to-json.js +26 -0
  812. package/esm/utils/to-json.js.map +1 -0
  813. package/esm/utils/types.d.ts +22 -0
  814. package/esm/utils/types.d.ts.map +1 -0
  815. package/esm/utils/urls.d.ts +21 -0
  816. package/esm/utils/urls.d.ts.map +1 -0
  817. package/esm/utils/urls.js +31 -0
  818. package/esm/utils/urls.js.map +1 -0
  819. package/esm/validation/database/exists-except-current-id.d.ts +7 -0
  820. package/esm/validation/database/exists-except-current-id.d.ts.map +1 -0
  821. package/esm/validation/database/exists-except-current-id.js +24 -0
  822. package/esm/validation/database/exists-except-current-id.js.map +1 -0
  823. package/esm/validation/database/exists-except-current-user.d.ts +7 -0
  824. package/esm/validation/database/exists-except-current-user.d.ts.map +1 -0
  825. package/esm/validation/database/exists-except-current-user.js +26 -0
  826. package/esm/validation/database/exists-except-current-user.js.map +1 -0
  827. package/esm/validation/database/exists.d.ts +7 -0
  828. package/esm/validation/database/exists.d.ts.map +1 -0
  829. package/esm/validation/database/exists.js +22 -0
  830. package/esm/validation/database/exists.js.map +1 -0
  831. package/esm/validation/database/index.d.ts +12 -0
  832. package/esm/validation/database/index.d.ts.map +1 -0
  833. package/esm/validation/database/types.d.ts +68 -0
  834. package/esm/validation/database/types.d.ts.map +1 -0
  835. package/esm/validation/database/unique-except-current-id.d.ts +7 -0
  836. package/esm/validation/database/unique-except-current-id.d.ts.map +1 -0
  837. package/esm/validation/database/unique-except-current-id.js +24 -0
  838. package/esm/validation/database/unique-except-current-id.js.map +1 -0
  839. package/esm/validation/database/unique-except-current-user.d.ts +7 -0
  840. package/esm/validation/database/unique-except-current-user.d.ts.map +1 -0
  841. package/esm/validation/database/unique-except-current-user.js +29 -0
  842. package/esm/validation/database/unique-except-current-user.js.map +1 -0
  843. package/esm/validation/database/unique.d.ts +7 -0
  844. package/esm/validation/database/unique.d.ts.map +1 -0
  845. package/esm/validation/database/unique.js +31 -0
  846. package/esm/validation/database/unique.js.map +1 -0
  847. package/esm/validation/file/file.d.ts +22 -0
  848. package/esm/validation/file/file.d.ts.map +1 -0
  849. package/esm/validation/file/file.js +60 -0
  850. package/esm/validation/file/file.js.map +1 -0
  851. package/esm/validation/file/index.d.ts +6 -0
  852. package/esm/validation/file/index.d.ts.map +1 -0
  853. package/esm/validation/index.d.ts +16 -0
  854. package/esm/validation/index.d.ts.map +1 -0
  855. package/esm/validation/init.d.ts +7 -0
  856. package/esm/validation/init.d.ts.map +1 -0
  857. package/esm/validation/init.js +36 -0
  858. package/esm/validation/init.js.map +1 -0
  859. package/esm/validation/plugins/database-plugin.d.ts +14 -0
  860. package/esm/validation/plugins/database-plugin.d.ts.map +1 -0
  861. package/esm/validation/plugins/database-plugin.js +83 -0
  862. package/esm/validation/plugins/database-plugin.js.map +1 -0
  863. package/esm/validation/plugins/file-plugin.d.ts +11 -0
  864. package/esm/validation/plugins/file-plugin.d.ts.map +1 -0
  865. package/esm/validation/plugins/file-plugin.js +17 -0
  866. package/esm/validation/plugins/file-plugin.js.map +1 -0
  867. package/esm/validation/plugins/index.d.ts +9 -0
  868. package/esm/validation/plugins/index.d.ts.map +1 -0
  869. package/esm/validation/plugins/localized-plugin.d.ts +11 -0
  870. package/esm/validation/plugins/localized-plugin.d.ts.map +1 -0
  871. package/esm/validation/plugins/localized-plugin.js +19 -0
  872. package/esm/validation/plugins/localized-plugin.js.map +1 -0
  873. package/esm/validation/types.d.ts +87 -0
  874. package/esm/validation/types.d.ts.map +1 -0
  875. package/esm/validation/validateAll.d.ts +7 -0
  876. package/esm/validation/validateAll.d.ts.map +1 -0
  877. package/esm/validation/validateAll.js +60 -0
  878. package/esm/validation/validateAll.js.map +1 -0
  879. package/esm/validation/validators/file-validator.d.ts +62 -0
  880. package/esm/validation/validators/file-validator.d.ts.map +1 -0
  881. package/esm/validation/validators/file-validator.js +136 -0
  882. package/esm/validation/validators/file-validator.js.map +1 -0
  883. package/esm/validation/validators/index.d.ts +7 -0
  884. package/esm/validation/validators/index.d.ts.map +1 -0
  885. package/esm/warlock-config/default-configurations.d.ts +3 -0
  886. package/esm/warlock-config/default-configurations.d.ts.map +1 -0
  887. package/esm/warlock-config/default-configurations.js +8 -0
  888. package/esm/warlock-config/default-configurations.js.map +1 -0
  889. package/esm/warlock-config/define-config.d.ts +3 -0
  890. package/esm/warlock-config/define-config.d.ts.map +1 -0
  891. package/esm/warlock-config/define-config.js +3 -0
  892. package/esm/warlock-config/define-config.js.map +1 -0
  893. package/esm/warlock-config/index.d.ts +4 -0
  894. package/esm/warlock-config/index.d.ts.map +1 -0
  895. package/esm/warlock-config/types.d.ts +129 -0
  896. package/esm/warlock-config/types.d.ts.map +1 -0
  897. package/esm/warlock-config/warlock-config.manager.d.ts +83 -0
  898. package/esm/warlock-config/warlock-config.manager.d.ts.map +1 -0
  899. package/esm/warlock-config/warlock-config.manager.js +141 -0
  900. package/esm/warlock-config/warlock-config.manager.js.map +1 -0
  901. package/package.json +7 -7
@@ -0,0 +1,974 @@
1
+ import config from'@mongez/config';import events from'@mongez/events';import {fileExistsAsync}from'@mongez/fs';import {isScalar,isIterable,isPlainObject}from'@mongez/supportive-is';import {log}from'@warlock.js/logger';import fs from'fs';import mime from'mime';import path from'path';import {renderReact}from'../react/index.js';var ResponseStatus;
2
+ (function (ResponseStatus) {
3
+ ResponseStatus[ResponseStatus["OK"] = 200] = "OK";
4
+ ResponseStatus[ResponseStatus["CREATED"] = 201] = "CREATED";
5
+ ResponseStatus[ResponseStatus["ACCEPTED"] = 202] = "ACCEPTED";
6
+ ResponseStatus[ResponseStatus["MOVED_PERMANENTLY"] = 301] = "MOVED_PERMANENTLY";
7
+ ResponseStatus[ResponseStatus["FOUND"] = 302] = "FOUND";
8
+ ResponseStatus[ResponseStatus["SEE_OTHER"] = 303] = "SEE_OTHER";
9
+ ResponseStatus[ResponseStatus["NOT_MODIFIED"] = 304] = "NOT_MODIFIED";
10
+ ResponseStatus[ResponseStatus["TEMPORARY_REDIRECT"] = 307] = "TEMPORARY_REDIRECT";
11
+ ResponseStatus[ResponseStatus["PERMANENT_REDIRECT"] = 308] = "PERMANENT_REDIRECT";
12
+ ResponseStatus[ResponseStatus["NO_CONTENT"] = 204] = "NO_CONTENT";
13
+ ResponseStatus[ResponseStatus["BAD_REQUEST"] = 400] = "BAD_REQUEST";
14
+ ResponseStatus[ResponseStatus["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
15
+ ResponseStatus[ResponseStatus["FORBIDDEN"] = 403] = "FORBIDDEN";
16
+ ResponseStatus[ResponseStatus["NOT_FOUND"] = 404] = "NOT_FOUND";
17
+ ResponseStatus[ResponseStatus["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED";
18
+ ResponseStatus[ResponseStatus["CONFLICT"] = 409] = "CONFLICT";
19
+ ResponseStatus[ResponseStatus["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
20
+ ResponseStatus[ResponseStatus["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
21
+ ResponseStatus[ResponseStatus["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
22
+ })(ResponseStatus || (ResponseStatus = {}));
23
+ class Response {
24
+ /**
25
+ * Current route
26
+ */
27
+ route;
28
+ /**
29
+ * Fastify response object
30
+ */
31
+ baseResponse;
32
+ /**
33
+ * Current status code
34
+ */
35
+ currentStatusCode = 200;
36
+ /**
37
+ * Current response body
38
+ */
39
+ currentBody;
40
+ /**
41
+ * A flag to determine if response is being sent
42
+ */
43
+ isSending = false;
44
+ /**
45
+ * Request object
46
+ */
47
+ request;
48
+ /**
49
+ * Internal events related to this particular response object
50
+ */
51
+ events = new Map();
52
+ /**
53
+ * Parsed body
54
+ * This will return the parsed body of the response
55
+ * Please note that if this property is called before the response is sent, it will return undefined
56
+ */
57
+ parsedBody;
58
+ /**
59
+ * Get Current response body
60
+ */
61
+ get body() {
62
+ return this.currentBody;
63
+ }
64
+ /**
65
+ * Set response body
66
+ */
67
+ set body(body) {
68
+ this.currentBody = body;
69
+ }
70
+ /**
71
+ * Add event on sending response
72
+ */
73
+ onSending(callback) {
74
+ this.events.set("sending", [...(this.events.get("sending") || []), callback]);
75
+ return this;
76
+ }
77
+ /**
78
+ * Add event on sent response
79
+ */
80
+ onSent(callback) {
81
+ this.events.set("sent", [...(this.events.get("sent") || []), callback]);
82
+ return this;
83
+ }
84
+ /**
85
+ * Set the Fastify response object
86
+ */
87
+ setResponse(response) {
88
+ this.baseResponse = response;
89
+ // Listen to the 'finish' event to track when response is fully sent
90
+ // This works for all response types: JSON, streams, buffers, files, etc.
91
+ this.baseResponse.raw.once("finish", () => {
92
+ this.request.endTime = Date.now();
93
+ });
94
+ return this;
95
+ }
96
+ /**
97
+ * Reset the response state
98
+ */
99
+ reset() {
100
+ this.route = {};
101
+ this.currentBody = null;
102
+ this.currentStatusCode = 200;
103
+ }
104
+ /**
105
+ * Set current route
106
+ */
107
+ setRoute(route) {
108
+ this.route = route;
109
+ return this;
110
+ }
111
+ /**
112
+ * Get the content type
113
+ */
114
+ get contentType() {
115
+ return this.baseResponse.getHeader("Content-Type");
116
+ }
117
+ /**
118
+ * Set the content type
119
+ */
120
+ setContentType(contentType) {
121
+ this.baseResponse.header("Content-Type", contentType);
122
+ return this;
123
+ }
124
+ /**
125
+ * Get the status code
126
+ */
127
+ get statusCode() {
128
+ return this.currentStatusCode ?? this.baseResponse.statusCode;
129
+ }
130
+ /**
131
+ * Check if response status is ok
132
+ */
133
+ get isOk() {
134
+ return this.currentStatusCode >= 200 && this.currentStatusCode < 300;
135
+ }
136
+ /**
137
+ * Check if the response has been sent
138
+ */
139
+ get sent() {
140
+ return this.baseResponse.sent;
141
+ }
142
+ /**
143
+ * Add a listener to the response event
144
+ */
145
+ static on(event, listener) {
146
+ return events.subscribe(`response.${event}`, listener);
147
+ }
148
+ /**
149
+ * Trigger the response event
150
+ */
151
+ static async trigger(event, ...args) {
152
+ // make a timeout to make sure the request events is executed first
153
+ return new Promise((resolve) => {
154
+ setTimeout(async () => {
155
+ await events.triggerAllAsync(`response.${event}`, ...args);
156
+ resolve(true);
157
+ }, 0);
158
+ });
159
+ }
160
+ /**
161
+ * Parse body
162
+ */
163
+ async parseBody() {
164
+ return await this.parse(this.currentBody);
165
+ }
166
+ /**
167
+ * Parse the given value
168
+ */
169
+ async parse(value) {
170
+ // if it is a falsy value, return it
171
+ if (!value || isScalar(value))
172
+ return value;
173
+ // if it has a `toJSON` method, call it and await the result then return it
174
+ if (value.toJSON) {
175
+ value.request = this.request;
176
+ return await value.toJSON();
177
+ }
178
+ // if it is iterable, an array or array-like object then parse each item
179
+ if (isIterable(value)) {
180
+ const values = Array.from(value);
181
+ return Promise.all(values.map(async (item) => {
182
+ return await this.parse(item);
183
+ }));
184
+ }
185
+ // if not plain object, then return it
186
+ if (!isPlainObject(value)) {
187
+ return value;
188
+ }
189
+ // loop over the object and check if the value and call `parse` on it
190
+ for (const key in value) {
191
+ const subValue = value[key];
192
+ value[key] = await this.parse(subValue);
193
+ }
194
+ return value;
195
+ }
196
+ /**
197
+ * Make a log message
198
+ */
199
+ log(message, level = "info") {
200
+ if (!config.get("http.log"))
201
+ return;
202
+ log({
203
+ module: "response",
204
+ action: this.route.method + " " + this.route.path.replace("/*", "") + `:${this.request.id}`,
205
+ message,
206
+ type: level,
207
+ context: {
208
+ request: this.request,
209
+ response: this,
210
+ },
211
+ });
212
+ }
213
+ /**
214
+ * Check if returning response is json
215
+ */
216
+ get isJson() {
217
+ return this.getHeader("Content-Type") === "application/json";
218
+ }
219
+ /**
220
+ * Send the response
221
+ * @param data - Response data
222
+ * @param statusCode - HTTP status code
223
+ * @param triggerEvents - Whether to trigger response events (default: true)
224
+ */
225
+ async send(data, statusCode, triggerEvents = true) {
226
+ if (statusCode) {
227
+ this.currentStatusCode = statusCode;
228
+ }
229
+ if (data === this)
230
+ return this;
231
+ if (data) {
232
+ this.currentBody = data;
233
+ }
234
+ if (!this.currentStatusCode) {
235
+ this.currentStatusCode = 200;
236
+ }
237
+ this.log("Sending response");
238
+ // trigger the sending event
239
+ if (Array.isArray(this.currentBody) || isPlainObject(this.currentBody)) {
240
+ this.setContentType("application/json");
241
+ }
242
+ if (triggerEvents) {
243
+ await Response.trigger("sending", this);
244
+ for (const callback of this.events.get("sending") || []) {
245
+ await callback(this);
246
+ }
247
+ if (this.isJson) {
248
+ await Response.trigger("sendingJson", this);
249
+ for (const callback of this.events.get("sendingJson") || []) {
250
+ await callback(this);
251
+ }
252
+ if (this.isOk) {
253
+ await Response.trigger("sendingSuccessJson", this);
254
+ for (const callback of this.events.get("sendingSuccessJson") || []) {
255
+ await callback(this);
256
+ }
257
+ }
258
+ }
259
+ }
260
+ // parse the body and make sure it is transformed to sync data instead of async data
261
+ if (typeof this.currentBody !== "string") {
262
+ this.parsedBody = await this.parseBody();
263
+ }
264
+ else {
265
+ this.parsedBody = data;
266
+ }
267
+ // Set the status first
268
+ this.baseResponse.status(this.currentStatusCode);
269
+ // Then send the response with the parsed body
270
+ await this.baseResponse.send(this.parsedBody);
271
+ this.log("Response sent");
272
+ if (triggerEvents) {
273
+ // trigger the sent event
274
+ Response.trigger("sent", this);
275
+ for (const callback of this.events.get("sent") || []) {
276
+ callback(this);
277
+ }
278
+ // trigger the success event if the status code is 2xx
279
+ if (this.currentStatusCode >= 200 && this.currentStatusCode < 300) {
280
+ Response.trigger("success", this);
281
+ }
282
+ // trigger the successCreate event if the status code is 201
283
+ if (this.currentStatusCode === 201) {
284
+ Response.trigger("successCreate", this);
285
+ }
286
+ // trigger the badRequest event if the status code is 400
287
+ if (this.currentStatusCode === 400) {
288
+ Response.trigger("badRequest", this);
289
+ }
290
+ // trigger the unauthorized event if the status code is 401
291
+ if (this.currentStatusCode === 401) {
292
+ Response.trigger("unauthorized", this);
293
+ }
294
+ // trigger the forbidden event if the status code is 403
295
+ if (this.currentStatusCode === 403) {
296
+ Response.trigger("forbidden", this);
297
+ }
298
+ // trigger the notFound event if the status code is 404
299
+ if (this.currentStatusCode === 404) {
300
+ Response.trigger("notFound", this);
301
+ }
302
+ // trigger the throttled event if the status code is 429
303
+ if (this.currentStatusCode === 429) {
304
+ Response.trigger("throttled", this);
305
+ }
306
+ // trigger the serverError event if the status code is 500
307
+ if (this.currentStatusCode === 500) {
308
+ Response.trigger("serverError", this);
309
+ }
310
+ // trigger the error event if the status code is 4xx or 5xx
311
+ if (this.currentStatusCode >= 400) {
312
+ Response.trigger("error", this);
313
+ }
314
+ }
315
+ return this;
316
+ }
317
+ /**
318
+ * Send html response
319
+ */
320
+ html(data, statusCode) {
321
+ return this.setContentType("text/html").send(data, statusCode);
322
+ }
323
+ /**
324
+ * Render the given react component
325
+ */
326
+ render(element, status = 200) {
327
+ return this.setStatusCode(status).html(renderReact(element));
328
+ }
329
+ /**
330
+ * Send xml response
331
+ */
332
+ xml(data, statusCode) {
333
+ return this.setContentType("text/xml").send(data, statusCode);
334
+ }
335
+ /**
336
+ * Send plain text response
337
+ */
338
+ text(data, statusCode) {
339
+ return this.setContentType("text/plain").send(data, statusCode);
340
+ }
341
+ /**
342
+ * Create a streaming response for progressive/chunked data sending
343
+ *
344
+ * This method allows you to send data in chunks and control when the response ends.
345
+ * Perfect for Server-Sent Events (SSE), progressive rendering, or streaming large responses.
346
+ *
347
+ * @example
348
+ * ```ts
349
+ * const stream = response.stream("text/html");
350
+ * stream.send("<html><body>");
351
+ * stream.send("<h1>Hello</h1>");
352
+ * stream.render(<MyComponent />);
353
+ * stream.send("</body></html>");
354
+ * stream.end();
355
+ * ```
356
+ *
357
+ * @param contentType - The content type for the stream (default: "text/plain")
358
+ * @returns Stream controller with send(), render(), and end() methods
359
+ */
360
+ stream(contentType = "text/plain") {
361
+ // Set headers using the response API
362
+ this.setContentType(contentType);
363
+ this.header("Transfer-Encoding", "chunked");
364
+ this.header("Cache-Control", "no-cache");
365
+ this.header("Connection", "keep-alive");
366
+ this.header("X-Content-Type-Options", "nosniff");
367
+ // Trigger sending events
368
+ Response.trigger("sending", this);
369
+ for (const callback of this.events.get("sending") || []) {
370
+ callback(this);
371
+ }
372
+ this.log("Starting stream");
373
+ // Track stream state
374
+ let isEnded = false;
375
+ const chunks = [];
376
+ // Write headers to start the stream
377
+ // Note: We use raw here because we need chunked encoding control
378
+ // This is the only valid use case for bypassing Fastify's abstraction
379
+ this.baseResponse.raw.writeHead(this.statusCode, this.getHeaders());
380
+ return {
381
+ /**
382
+ * Send a chunk of data to the client
383
+ * @param data - Data to send (string, Buffer, or any serializable data)
384
+ */
385
+ send: (data) => {
386
+ if (isEnded) {
387
+ throw new Error("Cannot send data: stream has already ended");
388
+ }
389
+ this.baseResponse.raw.write(data);
390
+ return this;
391
+ },
392
+ /**
393
+ * Render a React component and send it as a chunk
394
+ * @param element - React element or component to render
395
+ */
396
+ render: (element) => {
397
+ if (isEnded) {
398
+ throw new Error("Cannot render: stream has already ended");
399
+ }
400
+ const html = renderReact(element);
401
+ chunks.push(html);
402
+ this.baseResponse.raw.write(html);
403
+ return this;
404
+ },
405
+ /**
406
+ * End the stream and trigger completion events
407
+ */
408
+ end: () => {
409
+ if (isEnded) {
410
+ return this;
411
+ }
412
+ isEnded = true;
413
+ // Store the streamed content for logging/debugging
414
+ this.currentBody = chunks;
415
+ this.parsedBody = chunks;
416
+ // End the response
417
+ this.baseResponse.raw.end();
418
+ this.log("Stream ended");
419
+ // Trigger sent events
420
+ Response.trigger("sent", this);
421
+ for (const callback of this.events.get("sent") || []) {
422
+ callback(this);
423
+ }
424
+ // Trigger success event if status is 2xx
425
+ if (this.isOk) {
426
+ Response.trigger("success", this);
427
+ }
428
+ // Trigger status-specific events
429
+ if (this.currentStatusCode === 201) {
430
+ Response.trigger("successCreate", this);
431
+ }
432
+ return this;
433
+ },
434
+ /**
435
+ * Check if the stream has ended
436
+ */
437
+ get ended() {
438
+ return isEnded;
439
+ },
440
+ };
441
+ }
442
+ /**
443
+ * Create a Server-Sent Events (SSE) stream
444
+ *
445
+ * SSE is a standard for pushing real-time updates from server to client.
446
+ * Perfect for live notifications, progress updates, or real-time data feeds.
447
+ *
448
+ * @example
449
+ * ```ts
450
+ * const sse = response.sse();
451
+ *
452
+ * // Send events
453
+ * sse.send("message", { text: "Hello!" });
454
+ * sse.send("notification", { type: "info", message: "Update available" }, "msg-123");
455
+ *
456
+ * // Keep connection alive
457
+ * const keepAlive = setInterval(() => sse.comment("ping"), 30000);
458
+ *
459
+ * // Clean up when done
460
+ * clearInterval(keepAlive);
461
+ * sse.end();
462
+ * ```
463
+ *
464
+ * @returns SSE controller with send(), comment(), and end() methods
465
+ */
466
+ sse() {
467
+ // Set SSE-specific headers
468
+ this.setContentType("text/event-stream");
469
+ this.header("Cache-Control", "no-cache, no-store, must-revalidate");
470
+ this.header("Connection", "keep-alive");
471
+ this.header("X-Accel-Buffering", "no"); // Disable nginx buffering
472
+ // Trigger sending events
473
+ Response.trigger("sending", this);
474
+ for (const callback of this.events.get("sending") || []) {
475
+ callback(this);
476
+ }
477
+ this.log("Starting SSE stream");
478
+ // Track stream state
479
+ let isEnded = false;
480
+ const events = [];
481
+ const disconnectHandlers = [];
482
+ // Write headers to start the stream
483
+ this.baseResponse.raw.writeHead(this.statusCode, this.getHeaders());
484
+ // Detect client disconnect — set isEnded silently and invoke cleanup handlers.
485
+ // Without this, background jobs keep writing to a dead socket after the client drops.
486
+ this.baseResponse.raw.on("close", () => {
487
+ if (!isEnded) {
488
+ isEnded = true;
489
+ this.log("SSE client disconnected");
490
+ for (const handler of disconnectHandlers) {
491
+ handler();
492
+ }
493
+ }
494
+ });
495
+ const controller = {
496
+ /**
497
+ * Send an SSE event
498
+ * @param event - Event name (e.g., "message", "chunk", "done")
499
+ * @param data - Event data (will be JSON stringified)
500
+ * @param id - Optional event ID for client-side Last-Event-ID tracking (reconnect support)
501
+ */
502
+ send: (event, data, id) => {
503
+ // Silent no-op after disconnect — background jobs should not crash when
504
+ // the client drops mid-stream. The onDisconnect handler handles cleanup.
505
+ if (isEnded)
506
+ return controller;
507
+ let message = "";
508
+ if (id)
509
+ message += `id: ${id}\n`;
510
+ message += `event: ${event}\n`;
511
+ message += `data: ${JSON.stringify(data)}\n\n`;
512
+ events.push({ event, data, id });
513
+ this.baseResponse.raw.write(message);
514
+ return controller;
515
+ },
516
+ /**
517
+ * Send a comment (keeps connection alive, invisible to client)
518
+ * Useful for preventing timeout on long-lived connections
519
+ * @param text - Comment text
520
+ */
521
+ comment: (text) => {
522
+ // Silent no-op after disconnect
523
+ if (isEnded)
524
+ return controller;
525
+ this.baseResponse.raw.write(`: ${text}\n\n`);
526
+ return controller;
527
+ },
528
+ /**
529
+ * End the SSE stream and trigger completion events
530
+ */
531
+ end: () => {
532
+ if (isEnded)
533
+ return controller;
534
+ isEnded = true;
535
+ // Store the events for logging/debugging
536
+ this.currentBody = events;
537
+ this.parsedBody = events;
538
+ // End the response
539
+ this.baseResponse.raw.end();
540
+ this.log("SSE stream ended");
541
+ // Trigger sent events
542
+ Response.trigger("sent", this);
543
+ for (const callback of this.events.get("sent") || []) {
544
+ callback(this);
545
+ }
546
+ // Trigger success event if status is 2xx
547
+ if (this.isOk) {
548
+ Response.trigger("success", this);
549
+ }
550
+ return controller;
551
+ },
552
+ /**
553
+ * Register a handler to be called when the client disconnects.
554
+ * Use this to clean up EventEmitter listeners, cancel background jobs, etc.
555
+ *
556
+ * @example
557
+ * ```ts
558
+ * const sse = response.sse();
559
+ * const listener = (chunk) => sse.send("chunk", { chunk });
560
+ * eventBus.on(aiMessageId, listener);
561
+ * sse.onDisconnect(() => eventBus.off(aiMessageId, listener));
562
+ * ```
563
+ */
564
+ onDisconnect: (handler) => {
565
+ disconnectHandlers.push(handler);
566
+ return controller;
567
+ },
568
+ /**
569
+ * Check if the stream has ended (either via end() or client disconnect)
570
+ */
571
+ get ended() {
572
+ return isEnded;
573
+ },
574
+ };
575
+ return controller;
576
+ }
577
+ /**
578
+ * Set the status code
579
+ */
580
+ setStatusCode(statusCode) {
581
+ this.currentStatusCode = statusCode;
582
+ return this;
583
+ }
584
+ /**
585
+ * Redirect the user to another route
586
+ */
587
+ redirect(url, statusCode = 302) {
588
+ this.baseResponse.redirect(url, statusCode);
589
+ return this;
590
+ }
591
+ /**
592
+ * Permanent redirect
593
+ */
594
+ permanentRedirect(url) {
595
+ this.baseResponse.redirect(url, 301);
596
+ return this;
597
+ }
598
+ /**
599
+ * Get the response time
600
+ */
601
+ getResponseTime() {
602
+ return this.baseResponse.elapsedTime;
603
+ }
604
+ /**
605
+ * Remove a specific header
606
+ */
607
+ removeHeader(key) {
608
+ this.baseResponse.removeHeader(key);
609
+ return this;
610
+ }
611
+ /**
612
+ * Get a specific header
613
+ */
614
+ getHeader(key) {
615
+ return this.baseResponse.getHeader(key);
616
+ }
617
+ /**
618
+ * Get the response headers
619
+ */
620
+ getHeaders() {
621
+ return this.baseResponse.getHeaders();
622
+ }
623
+ /**
624
+ * Set multiple headers
625
+ */
626
+ headers(headers) {
627
+ this.baseResponse.headers(headers);
628
+ return this;
629
+ }
630
+ /**
631
+ * Set the response header
632
+ */
633
+ header(key, value) {
634
+ this.baseResponse.header(key, value);
635
+ return this;
636
+ }
637
+ /**
638
+ * Set a cookie on the response
639
+ *
640
+ * @example
641
+ * response.cookie('theme', 'dark', { maxAge: 3600, httpOnly: true })
642
+ */
643
+ cookie(name, value, options) {
644
+ const defaultOptions = config.get("http.cookies.options", {});
645
+ this.baseResponse.setCookie(name, JSON.stringify(value), { ...defaultOptions, ...options });
646
+ return this;
647
+ }
648
+ /**
649
+ * Clear a cookie from the response
650
+ *
651
+ * @example
652
+ * response.clearCookie('token', { path: '/' });
653
+ */
654
+ clearCookie(name, options) {
655
+ const defaultOptions = config.get("http.cookies.options", {});
656
+ this.baseResponse.clearCookie(name, { ...defaultOptions, ...options });
657
+ return this;
658
+ }
659
+ /**
660
+ * Alias to header method
661
+ */
662
+ setHeader(key, value) {
663
+ return this.header(key, value);
664
+ }
665
+ /**
666
+ * Send an error response with status code 500
667
+ */
668
+ serverError(data) {
669
+ return this.send(data, 500);
670
+ }
671
+ /**
672
+ * Send a forbidden response with status code 403
673
+ */
674
+ forbidden(data = {
675
+ error: "You are not allowed to access this resource, FORBIDDEN",
676
+ }) {
677
+ return this.send(data, 403);
678
+ }
679
+ /**
680
+ * Send a service unavailable response with status code 503
681
+ */
682
+ serviceUnavailable(data) {
683
+ return this.send(data, 503);
684
+ }
685
+ /**
686
+ * Send an unauthorized response with status code 401
687
+ */
688
+ unauthorized(data = {
689
+ error: "unauthorized",
690
+ }) {
691
+ return this.send(data, 401);
692
+ }
693
+ /**
694
+ * Send a not found response with status code 404
695
+ */
696
+ notFound(data = {
697
+ error: "notFound",
698
+ }) {
699
+ return this.send(data, 404);
700
+ }
701
+ /**
702
+ * Send a bad request response with status code 400
703
+ */
704
+ badRequest(data) {
705
+ return this.send(data, 400);
706
+ }
707
+ /**
708
+ * Send a success response with status code 201
709
+ */
710
+ successCreate(data) {
711
+ return this.send(data, 201);
712
+ }
713
+ /**
714
+ * Send a success response
715
+ */
716
+ success(data = { success: true }) {
717
+ return this.send(data);
718
+ }
719
+ /**
720
+ * Send a no content response with status code 204
721
+ */
722
+ noContent() {
723
+ return this.baseResponse.status(204).send();
724
+ }
725
+ /**
726
+ * Send an accepted response with status code 202
727
+ * Used for async operations that have been accepted but not yet processed
728
+ */
729
+ accepted(data = { message: "Request accepted for processing" }) {
730
+ return this.send(data, 202);
731
+ }
732
+ /**
733
+ * Send a conflict response with status code 409
734
+ */
735
+ conflict(data = { error: "Resource conflict" }) {
736
+ return this.send(data, 409);
737
+ }
738
+ /**
739
+ * Send an unprocessable entity response with status code 422
740
+ * Used for semantic validation errors
741
+ */
742
+ unprocessableEntity(data) {
743
+ return this.send(data, 422);
744
+ }
745
+ /**
746
+ * Apply response options (cache, disposition, etag)
747
+ * Shared helper for sendFile and sendBuffer
748
+ */
749
+ applyResponseOptions(options, defaultFilename) {
750
+ // Set content type if provided
751
+ if (options.contentType) {
752
+ this.baseResponse.type(options.contentType);
753
+ }
754
+ // Set cache headers if specified
755
+ if (options.cacheTime) {
756
+ const cacheControl = options.immutable
757
+ ? `public, max-age=${options.cacheTime}, immutable`
758
+ : `public, max-age=${options.cacheTime}`;
759
+ this.header("Cache-Control", cacheControl);
760
+ this.header("Expires", new Date(Date.now() + options.cacheTime * 1000).toUTCString());
761
+ }
762
+ // Set ETag if provided (for conditional requests)
763
+ if (options.etag) {
764
+ this.header("ETag", options.etag);
765
+ // Check If-None-Match for conditional request
766
+ const ifNoneMatch = this.request.header("if-none-match");
767
+ if (ifNoneMatch && ifNoneMatch === options.etag) {
768
+ this.log("Content not modified (ETag match), sending 304");
769
+ this.baseResponse.status(304).send();
770
+ return true; // Indicates 304 was sent
771
+ }
772
+ }
773
+ // Set Content-Disposition if inline or filename is specified
774
+ if (options.inline !== undefined || options.filename) {
775
+ const disposition = options.inline ? "inline" : "attachment";
776
+ const filename = options.filename || defaultFilename || "file";
777
+ this.header("Content-Disposition", `${disposition}; filename=\"${filename}\"`);
778
+ }
779
+ return false; // No 304 sent
780
+ }
781
+ /**
782
+ * Send a file as a response
783
+ */
784
+ async sendFile(filePath, options) {
785
+ this.log(`Sending file: ${filePath}`);
786
+ // Check if file exists first
787
+ if (!(await fileExistsAsync(filePath))) {
788
+ return this.notFound({
789
+ error: "File Not Found",
790
+ });
791
+ }
792
+ try {
793
+ // Normalize options to object format
794
+ const opts = typeof options === "number" ? { cacheTime: options } : options || {};
795
+ // Get file stats for ETag and Last-Modified
796
+ const stats = await fs.promises.stat(filePath);
797
+ const lastModified = stats.mtime;
798
+ // Generate ETag based on file size and modification time
799
+ const etag = `"${stats.size}-${stats.mtime.getTime()}"`;
800
+ // Set Last-Modified header
801
+ this.header("Last-Modified", lastModified.toUTCString());
802
+ this.header("ETag", etag);
803
+ // Set content type
804
+ const contentType = this.getFileContentType(filePath);
805
+ this.baseResponse.type(contentType);
806
+ // Apply common response options (cache, disposition)
807
+ const defaultFilename = path.basename(filePath);
808
+ const sent304 = this.applyResponseOptions({ ...opts, etag, contentType }, defaultFilename);
809
+ if (sent304)
810
+ return this.baseResponse;
811
+ // Check conditional request headers
812
+ const ifNoneMatch = this.request.header("if-none-match");
813
+ const ifModifiedSince = this.request.header("if-modified-since");
814
+ // Handle If-None-Match (ETag validation)
815
+ if (ifNoneMatch && ifNoneMatch === etag) {
816
+ this.log("File not modified (ETag match), sending 304");
817
+ return this.baseResponse.status(304).send();
818
+ }
819
+ // Handle If-Modified-Since (Last-Modified validation)
820
+ if (ifModifiedSince) {
821
+ const modifiedSinceDate = new Date(ifModifiedSince);
822
+ if (lastModified.getTime() <= modifiedSinceDate.getTime()) {
823
+ this.log("File not modified (Last-Modified check), sending 304");
824
+ return this.baseResponse.status(304).send();
825
+ }
826
+ }
827
+ // Use streaming for efficient file sending
828
+ const stream = fs.createReadStream(filePath);
829
+ // Handle stream errors
830
+ stream.on("error", (error) => {
831
+ this.log(`Error reading file: ${error.message}`, "error");
832
+ if (!this.baseResponse.sent) {
833
+ this.serverError({
834
+ error: "Error reading file",
835
+ message: error.message,
836
+ });
837
+ }
838
+ });
839
+ // Send the stream (endTime will be set by finish event listener)
840
+ return this.baseResponse.send(stream);
841
+ }
842
+ catch (error) {
843
+ this.log(`Error sending file: ${error.message}`, "error");
844
+ return this.serverError({
845
+ error: "Error sending file",
846
+ message: error.message,
847
+ });
848
+ }
849
+ }
850
+ /**
851
+ * Send buffer as a response
852
+ * Useful for dynamically generated content (e.g., resized images, generated PDFs)
853
+ */
854
+ sendBuffer(buffer, options) {
855
+ this.log("Sending buffer");
856
+ // Normalize options to object format
857
+ const opts = typeof options === "number" ? { cacheTime: options } : options || {};
858
+ // Apply common response options (cache, disposition, etag)
859
+ const sent304 = this.applyResponseOptions(opts);
860
+ if (sent304)
861
+ return this.baseResponse;
862
+ // Note: endTime is set in the main send() method for non-streaming responses
863
+ return this.baseResponse.send(buffer);
864
+ }
865
+ /**
866
+ * Send an Image instance as a response
867
+ * Automatically detects image format and sets content type
868
+ */
869
+ async sendImage(image, // Type as 'any' to avoid circular dependency with Image class
870
+ options) {
871
+ this.log("Sending image");
872
+ // Normalize options to object format
873
+ const opts = typeof options === "number" ? { cacheTime: options } : options || {};
874
+ // Get image metadata to determine format
875
+ const metadata = await image.metadata();
876
+ const format = metadata.format || "jpeg";
877
+ // Convert image to buffer
878
+ const buffer = await image.toBuffer();
879
+ // Auto-set content type if not provided
880
+ const contentType = opts.contentType || `image/${format}`;
881
+ // Auto-generate ETag if not provided
882
+ // Format: "format-widthxheight-size" (e.g., "jpeg-800x600-45231")
883
+ // This catches changes in dimensions, quality, filters, and format
884
+ if (!opts.etag) {
885
+ const width = metadata.width || 0;
886
+ const height = metadata.height || 0;
887
+ opts.etag = `"${format}-${width}x${height}-${buffer.length}"`;
888
+ }
889
+ // Apply common response options with auto-detected content type
890
+ const sent304 = this.applyResponseOptions({ ...opts, contentType });
891
+ if (sent304)
892
+ return this.baseResponse;
893
+ // Note: endTime is set in the main send() method for non-streaming responses
894
+ return this.baseResponse.send(buffer);
895
+ }
896
+ /**
897
+ * Send file and cache it
898
+ * Cache time in seconds
899
+ * Cache time will be one year
900
+ */
901
+ sendCachedFile(path, cacheTime = 31536000) {
902
+ return this.sendFile(path, cacheTime);
903
+ }
904
+ /**
905
+ * Download the given file path
906
+ */
907
+ download(path, filename) {
908
+ return this.downloadFile(path, filename);
909
+ }
910
+ /**
911
+ * Download the given file path
912
+ */
913
+ async downloadFile(filePath, filename) {
914
+ // Check if file exists first
915
+ if (!(await fileExistsAsync(filePath))) {
916
+ return this.notFound({
917
+ error: "File Not Found",
918
+ });
919
+ }
920
+ try {
921
+ if (!filename) {
922
+ filename = path.basename(filePath);
923
+ }
924
+ this.baseResponse.header("Content-Disposition", `attachment; filename="${filename}"`);
925
+ // this.baseResponse.header("Content-Type", this.getFileContentType(filePath));
926
+ this.baseResponse.header("Content-Type", "application/octet-stream");
927
+ const stream = fs.createReadStream(filePath);
928
+ // Handle stream errors
929
+ stream.on("error", (error) => {
930
+ this.log(`Error reading file for download: ${error.message}`, "error");
931
+ if (!this.baseResponse.sent) {
932
+ this.serverError({
933
+ error: "Error reading file",
934
+ message: error.message,
935
+ });
936
+ }
937
+ });
938
+ // Send the stream (endTime will be set by finish event listener)
939
+ return this.baseResponse.send(stream);
940
+ }
941
+ catch (error) {
942
+ this.log(`Error downloading file: ${error.message}`, "error");
943
+ return this.serverError({
944
+ error: "Error downloading file",
945
+ message: error.message,
946
+ });
947
+ }
948
+ }
949
+ /**
950
+ * Get content type of the given path
951
+ */
952
+ getFileContentType(filePath) {
953
+ const type = mime.getType(filePath) || "application/octet-stream";
954
+ return type;
955
+ }
956
+ /**
957
+ * Mark the response as failed
958
+ */
959
+ failedSchema(result) {
960
+ const { errors, inputKey, inputError, status } = config.get("validation.response", {
961
+ errors: "errors",
962
+ inputKey: "input",
963
+ inputError: "error",
964
+ status: 400,
965
+ });
966
+ log.error("request", "validation", `${this.request.id} - Validation failed`);
967
+ return this.send({
968
+ [errors]: result.errors.map((error) => ({
969
+ [inputKey]: error.input,
970
+ [inputError]: error.error,
971
+ })),
972
+ }, status);
973
+ }
974
+ }export{Response,ResponseStatus};//# sourceMappingURL=response.js.map