@zyno-io/ts-server-foundation 26.712.36

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 (771) hide show
  1. package/README.md +31 -0
  2. package/dist/devconsole/assets/index-BlWLbczn.css +1 -0
  3. package/dist/devconsole/assets/index-lSF6DUY3.js +3 -0
  4. package/dist/devconsole/index.html +13 -0
  5. package/dist/src/app/base.d.ts +66 -0
  6. package/dist/src/app/base.d.ts.map +1 -0
  7. package/dist/src/app/base.js +577 -0
  8. package/dist/src/app/base.js.map +1 -0
  9. package/dist/src/app/commands.d.ts +20 -0
  10. package/dist/src/app/commands.d.ts.map +1 -0
  11. package/dist/src/app/commands.js +17 -0
  12. package/dist/src/app/commands.js.map +1 -0
  13. package/dist/src/app/config-loader.d.ts +9 -0
  14. package/dist/src/app/config-loader.d.ts.map +1 -0
  15. package/dist/src/app/config-loader.js +91 -0
  16. package/dist/src/app/config-loader.js.map +1 -0
  17. package/dist/src/app/config.d.ts +96 -0
  18. package/dist/src/app/config.d.ts.map +1 -0
  19. package/dist/src/app/config.js +114 -0
  20. package/dist/src/app/config.js.map +1 -0
  21. package/dist/src/app/const.d.ts +5 -0
  22. package/dist/src/app/const.d.ts.map +1 -0
  23. package/dist/src/app/const.js +17 -0
  24. package/dist/src/app/const.js.map +1 -0
  25. package/dist/src/app/current.d.ts +5 -0
  26. package/dist/src/app/current.d.ts.map +1 -0
  27. package/dist/src/app/current.js +14 -0
  28. package/dist/src/app/current.js.map +1 -0
  29. package/dist/src/app/index.d.ts +8 -0
  30. package/dist/src/app/index.d.ts.map +1 -0
  31. package/dist/src/app/index.js +13 -0
  32. package/dist/src/app/index.js.map +1 -0
  33. package/dist/src/app/lifecycle.d.ts +9 -0
  34. package/dist/src/app/lifecycle.d.ts.map +1 -0
  35. package/dist/src/app/lifecycle.js +21 -0
  36. package/dist/src/app/lifecycle.js.map +1 -0
  37. package/dist/src/app/migrations-entrypoint.d.ts +3 -0
  38. package/dist/src/app/migrations-entrypoint.d.ts.map +1 -0
  39. package/dist/src/app/migrations-entrypoint.js +35 -0
  40. package/dist/src/app/migrations-entrypoint.js.map +1 -0
  41. package/dist/src/app/resolver.d.ts +6 -0
  42. package/dist/src/app/resolver.d.ts.map +1 -0
  43. package/dist/src/app/resolver.js +15 -0
  44. package/dist/src/app/resolver.js.map +1 -0
  45. package/dist/src/auth/index.d.ts +3 -0
  46. package/dist/src/auth/index.d.ts.map +1 -0
  47. package/dist/src/auth/index.js +15 -0
  48. package/dist/src/auth/index.js.map +1 -0
  49. package/dist/src/auth/jwt.d.ts +61 -0
  50. package/dist/src/auth/jwt.d.ts.map +1 -0
  51. package/dist/src/auth/jwt.js +379 -0
  52. package/dist/src/auth/jwt.js.map +1 -0
  53. package/dist/src/auth/provider.d.ts +21 -0
  54. package/dist/src/auth/provider.d.ts.map +1 -0
  55. package/dist/src/auth/provider.js +148 -0
  56. package/dist/src/auth/provider.js.map +1 -0
  57. package/dist/src/cli/common.d.ts +13 -0
  58. package/dist/src/cli/common.d.ts.map +1 -0
  59. package/dist/src/cli/common.js +99 -0
  60. package/dist/src/cli/common.js.map +1 -0
  61. package/dist/src/cli/tsf-create-app.d.ts +3 -0
  62. package/dist/src/cli/tsf-create-app.d.ts.map +1 -0
  63. package/dist/src/cli/tsf-create-app.js +89 -0
  64. package/dist/src/cli/tsf-create-app.js.map +1 -0
  65. package/dist/src/cli/tsf-dev.d.ts +3 -0
  66. package/dist/src/cli/tsf-dev.d.ts.map +1 -0
  67. package/dist/src/cli/tsf-dev.js +753 -0
  68. package/dist/src/cli/tsf-dev.js.map +1 -0
  69. package/dist/src/cli/tsf-gen-proto.d.ts +3 -0
  70. package/dist/src/cli/tsf-gen-proto.d.ts.map +1 -0
  71. package/dist/src/cli/tsf-gen-proto.js +134 -0
  72. package/dist/src/cli/tsf-gen-proto.js.map +1 -0
  73. package/dist/src/cli/tsf-install.d.ts +8 -0
  74. package/dist/src/cli/tsf-install.d.ts.map +1 -0
  75. package/dist/src/cli/tsf-install.js +424 -0
  76. package/dist/src/cli/tsf-install.js.map +1 -0
  77. package/dist/src/cli/tsf-migrate.d.ts +3 -0
  78. package/dist/src/cli/tsf-migrate.d.ts.map +1 -0
  79. package/dist/src/cli/tsf-migrate.js +271 -0
  80. package/dist/src/cli/tsf-migrate.js.map +1 -0
  81. package/dist/src/cli/tsf-test.d.ts +4 -0
  82. package/dist/src/cli/tsf-test.d.ts.map +1 -0
  83. package/dist/src/cli/tsf-test.js +350 -0
  84. package/dist/src/cli/tsf-test.js.map +1 -0
  85. package/dist/src/cli/tsf-update.d.ts +3 -0
  86. package/dist/src/cli/tsf-update.d.ts.map +1 -0
  87. package/dist/src/cli/tsf-update.js +12 -0
  88. package/dist/src/cli/tsf-update.js.map +1 -0
  89. package/dist/src/cli/tsf.d.ts +3 -0
  90. package/dist/src/cli/tsf.d.ts.map +1 -0
  91. package/dist/src/cli/tsf.js +29 -0
  92. package/dist/src/cli/tsf.js.map +1 -0
  93. package/dist/src/database/database.d.ts +54 -0
  94. package/dist/src/database/database.d.ts.map +1 -0
  95. package/dist/src/database/database.js +695 -0
  96. package/dist/src/database/database.js.map +1 -0
  97. package/dist/src/database/driver.d.ts +28 -0
  98. package/dist/src/database/driver.d.ts.map +1 -0
  99. package/dist/src/database/driver.js +5 -0
  100. package/dist/src/database/driver.js.map +1 -0
  101. package/dist/src/database/drivers/index.d.ts +4 -0
  102. package/dist/src/database/drivers/index.d.ts.map +1 -0
  103. package/dist/src/database/drivers/index.js +9 -0
  104. package/dist/src/database/drivers/index.js.map +1 -0
  105. package/dist/src/database/drivers/mysql-session-rpc.d.ts +40 -0
  106. package/dist/src/database/drivers/mysql-session-rpc.d.ts.map +1 -0
  107. package/dist/src/database/drivers/mysql-session-rpc.js +180 -0
  108. package/dist/src/database/drivers/mysql-session-rpc.js.map +1 -0
  109. package/dist/src/database/drivers/mysql-session.d.ts +25 -0
  110. package/dist/src/database/drivers/mysql-session.d.ts.map +1 -0
  111. package/dist/src/database/drivers/mysql-session.js +124 -0
  112. package/dist/src/database/drivers/mysql-session.js.map +1 -0
  113. package/dist/src/database/drivers/mysql.d.ts +20 -0
  114. package/dist/src/database/drivers/mysql.d.ts.map +1 -0
  115. package/dist/src/database/drivers/mysql.js +84 -0
  116. package/dist/src/database/drivers/mysql.js.map +1 -0
  117. package/dist/src/database/drivers/postgres.d.ts +22 -0
  118. package/dist/src/database/drivers/postgres.d.ts.map +1 -0
  119. package/dist/src/database/drivers/postgres.js +80 -0
  120. package/dist/src/database/drivers/postgres.js.map +1 -0
  121. package/dist/src/database/entity.d.ts +112 -0
  122. package/dist/src/database/entity.d.ts.map +1 -0
  123. package/dist/src/database/entity.js +333 -0
  124. package/dist/src/database/entity.js.map +1 -0
  125. package/dist/src/database/errors.d.ts +7 -0
  126. package/dist/src/database/errors.d.ts.map +1 -0
  127. package/dist/src/database/errors.js +34 -0
  128. package/dist/src/database/errors.js.map +1 -0
  129. package/dist/src/database/factory.d.ts +48 -0
  130. package/dist/src/database/factory.d.ts.map +1 -0
  131. package/dist/src/database/factory.js +139 -0
  132. package/dist/src/database/factory.js.map +1 -0
  133. package/dist/src/database/identifiers.d.ts +8 -0
  134. package/dist/src/database/identifiers.d.ts.map +1 -0
  135. package/dist/src/database/identifiers.js +46 -0
  136. package/dist/src/database/identifiers.js.map +1 -0
  137. package/dist/src/database/index.d.ts +14 -0
  138. package/dist/src/database/index.d.ts.map +1 -0
  139. package/dist/src/database/index.js +33 -0
  140. package/dist/src/database/index.js.map +1 -0
  141. package/dist/src/database/metadata.d.ts +27 -0
  142. package/dist/src/database/metadata.d.ts.map +1 -0
  143. package/dist/src/database/metadata.js +70 -0
  144. package/dist/src/database/metadata.js.map +1 -0
  145. package/dist/src/database/migration/create/comparator.d.ts +3 -0
  146. package/dist/src/database/migration/create/comparator.d.ts.map +1 -0
  147. package/dist/src/database/migration/create/comparator.js +302 -0
  148. package/dist/src/database/migration/create/comparator.js.map +1 -0
  149. package/dist/src/database/migration/create/db-reader.d.ts +9 -0
  150. package/dist/src/database/migration/create/db-reader.d.ts.map +1 -0
  151. package/dist/src/database/migration/create/db-reader.js +478 -0
  152. package/dist/src/database/migration/create/db-reader.js.map +1 -0
  153. package/dist/src/database/migration/create/ddl-generator.d.ts +4 -0
  154. package/dist/src/database/migration/create/ddl-generator.d.ts.map +1 -0
  155. package/dist/src/database/migration/create/ddl-generator.js +431 -0
  156. package/dist/src/database/migration/create/ddl-generator.js.map +1 -0
  157. package/dist/src/database/migration/create/entity-reader.d.ts +7 -0
  158. package/dist/src/database/migration/create/entity-reader.d.ts.map +1 -0
  159. package/dist/src/database/migration/create/entity-reader.js +169 -0
  160. package/dist/src/database/migration/create/entity-reader.js.map +1 -0
  161. package/dist/src/database/migration/create/file-generator.d.ts +7 -0
  162. package/dist/src/database/migration/create/file-generator.d.ts.map +1 -0
  163. package/dist/src/database/migration/create/file-generator.js +60 -0
  164. package/dist/src/database/migration/create/file-generator.js.map +1 -0
  165. package/dist/src/database/migration/create/index.d.ts +19 -0
  166. package/dist/src/database/migration/create/index.d.ts.map +1 -0
  167. package/dist/src/database/migration/create/index.js +102 -0
  168. package/dist/src/database/migration/create/index.js.map +1 -0
  169. package/dist/src/database/migration/create/schema-model.d.ts +99 -0
  170. package/dist/src/database/migration/create/schema-model.d.ts.map +1 -0
  171. package/dist/src/database/migration/create/schema-model.js +24 -0
  172. package/dist/src/database/migration/create/schema-model.js.map +1 -0
  173. package/dist/src/database/migration/create/type-mapper.d.ts +13 -0
  174. package/dist/src/database/migration/create/type-mapper.d.ts.map +1 -0
  175. package/dist/src/database/migration/create/type-mapper.js +293 -0
  176. package/dist/src/database/migration/create/type-mapper.js.map +1 -0
  177. package/dist/src/database/migration/index.d.ts +33 -0
  178. package/dist/src/database/migration/index.d.ts.map +1 -0
  179. package/dist/src/database/migration/index.js +165 -0
  180. package/dist/src/database/migration/index.js.map +1 -0
  181. package/dist/src/database/migration/maintenance.d.ts +26 -0
  182. package/dist/src/database/migration/maintenance.d.ts.map +1 -0
  183. package/dist/src/database/migration/maintenance.js +65 -0
  184. package/dist/src/database/migration/maintenance.js.map +1 -0
  185. package/dist/src/database/query.d.ts +79 -0
  186. package/dist/src/database/query.d.ts.map +1 -0
  187. package/dist/src/database/query.js +435 -0
  188. package/dist/src/database/query.js.map +1 -0
  189. package/dist/src/database/schema.d.ts +147 -0
  190. package/dist/src/database/schema.d.ts.map +1 -0
  191. package/dist/src/database/schema.js +709 -0
  192. package/dist/src/database/schema.js.map +1 -0
  193. package/dist/src/database/session.d.ts +63 -0
  194. package/dist/src/database/session.d.ts.map +1 -0
  195. package/dist/src/database/session.js +226 -0
  196. package/dist/src/database/session.js.map +1 -0
  197. package/dist/src/database/sql.d.ts +37 -0
  198. package/dist/src/database/sql.d.ts.map +1 -0
  199. package/dist/src/database/sql.js +143 -0
  200. package/dist/src/database/sql.js.map +1 -0
  201. package/dist/src/database/values.d.ts +6 -0
  202. package/dist/src/database/values.d.ts.map +1 -0
  203. package/dist/src/database/values.js +237 -0
  204. package/dist/src/database/values.js.map +1 -0
  205. package/dist/src/devconsole/controller.d.ts +11 -0
  206. package/dist/src/devconsole/controller.d.ts.map +1 -0
  207. package/dist/src/devconsole/controller.js +78 -0
  208. package/dist/src/devconsole/controller.js.map +1 -0
  209. package/dist/src/devconsole/generated/devconsole.d.ts +306 -0
  210. package/dist/src/devconsole/generated/devconsole.d.ts.map +1 -0
  211. package/dist/src/devconsole/generated/devconsole.js +4029 -0
  212. package/dist/src/devconsole/generated/devconsole.js.map +1 -0
  213. package/dist/src/devconsole/index.d.ts +10 -0
  214. package/dist/src/devconsole/index.d.ts.map +1 -0
  215. package/dist/src/devconsole/index.js +26 -0
  216. package/dist/src/devconsole/index.js.map +1 -0
  217. package/dist/src/devconsole/observers.d.ts +4 -0
  218. package/dist/src/devconsole/observers.d.ts.map +1 -0
  219. package/dist/src/devconsole/observers.js +170 -0
  220. package/dist/src/devconsole/observers.js.map +1 -0
  221. package/dist/src/devconsole/runtime.d.ts +16 -0
  222. package/dist/src/devconsole/runtime.d.ts.map +1 -0
  223. package/dist/src/devconsole/runtime.js +48 -0
  224. package/dist/src/devconsole/runtime.js.map +1 -0
  225. package/dist/src/devconsole/security.d.ts +8 -0
  226. package/dist/src/devconsole/security.d.ts.map +1 -0
  227. package/dist/src/devconsole/security.js +33 -0
  228. package/dist/src/devconsole/security.js.map +1 -0
  229. package/dist/src/devconsole/server.d.ts +25 -0
  230. package/dist/src/devconsole/server.d.ts.map +1 -0
  231. package/dist/src/devconsole/server.js +452 -0
  232. package/dist/src/devconsole/server.js.map +1 -0
  233. package/dist/src/devconsole/store.d.ts +111 -0
  234. package/dist/src/devconsole/store.d.ts.map +1 -0
  235. package/dist/src/devconsole/store.js +177 -0
  236. package/dist/src/devconsole/store.js.map +1 -0
  237. package/dist/src/di/container.d.ts +38 -0
  238. package/dist/src/di/container.d.ts.map +1 -0
  239. package/dist/src/di/container.js +252 -0
  240. package/dist/src/di/container.js.map +1 -0
  241. package/dist/src/di/errors.d.ts +18 -0
  242. package/dist/src/di/errors.d.ts.map +1 -0
  243. package/dist/src/di/errors.js +71 -0
  244. package/dist/src/di/errors.js.map +1 -0
  245. package/dist/src/di/index.d.ts +5 -0
  246. package/dist/src/di/index.d.ts.map +1 -0
  247. package/dist/src/di/index.js +10 -0
  248. package/dist/src/di/index.js.map +1 -0
  249. package/dist/src/di/module.d.ts +29 -0
  250. package/dist/src/di/module.d.ts.map +1 -0
  251. package/dist/src/di/module.js +42 -0
  252. package/dist/src/di/module.js.map +1 -0
  253. package/dist/src/di/provider.d.ts +34 -0
  254. package/dist/src/di/provider.d.ts.map +1 -0
  255. package/dist/src/di/provider.js +24 -0
  256. package/dist/src/di/provider.js.map +1 -0
  257. package/dist/src/env.d.ts +122 -0
  258. package/dist/src/env.d.ts.map +1 -0
  259. package/dist/src/env.js +61 -0
  260. package/dist/src/env.js.map +1 -0
  261. package/dist/src/events/event-bus.d.ts +26 -0
  262. package/dist/src/events/event-bus.d.ts.map +1 -0
  263. package/dist/src/events/event-bus.js +67 -0
  264. package/dist/src/events/event-bus.js.map +1 -0
  265. package/dist/src/events/index.d.ts +2 -0
  266. package/dist/src/events/index.d.ts.map +1 -0
  267. package/dist/src/events/index.js +7 -0
  268. package/dist/src/events/index.js.map +1 -0
  269. package/dist/src/health/healthcheck.controller.d.ts +9 -0
  270. package/dist/src/health/healthcheck.controller.d.ts.map +1 -0
  271. package/dist/src/health/healthcheck.controller.js +33 -0
  272. package/dist/src/health/healthcheck.controller.js.map +1 -0
  273. package/dist/src/health/healthcheck.service.d.ts +13 -0
  274. package/dist/src/health/healthcheck.service.d.ts.map +1 -0
  275. package/dist/src/health/healthcheck.service.js +37 -0
  276. package/dist/src/health/healthcheck.service.js.map +1 -0
  277. package/dist/src/health/index.d.ts +3 -0
  278. package/dist/src/health/index.d.ts.map +1 -0
  279. package/dist/src/health/index.js +8 -0
  280. package/dist/src/health/index.js.map +1 -0
  281. package/dist/src/helpers/async/context.d.ts +10 -0
  282. package/dist/src/helpers/async/context.d.ts.map +1 -0
  283. package/dist/src/helpers/async/context.js +52 -0
  284. package/dist/src/helpers/async/context.js.map +1 -0
  285. package/dist/src/helpers/async/process.d.ts +16 -0
  286. package/dist/src/helpers/async/process.d.ts.map +1 -0
  287. package/dist/src/helpers/async/process.js +62 -0
  288. package/dist/src/helpers/async/process.js.map +1 -0
  289. package/dist/src/helpers/async/promise.d.ts +11 -0
  290. package/dist/src/helpers/async/promise.d.ts.map +1 -0
  291. package/dist/src/helpers/async/promise.js +32 -0
  292. package/dist/src/helpers/async/promise.js.map +1 -0
  293. package/dist/src/helpers/data/array.d.ts +5 -0
  294. package/dist/src/helpers/data/array.d.ts.map +1 -0
  295. package/dist/src/helpers/data/array.js +27 -0
  296. package/dist/src/helpers/data/array.js.map +1 -0
  297. package/dist/src/helpers/data/objects.d.ts +13 -0
  298. package/dist/src/helpers/data/objects.d.ts.map +1 -0
  299. package/dist/src/helpers/data/objects.js +55 -0
  300. package/dist/src/helpers/data/objects.js.map +1 -0
  301. package/dist/src/helpers/data/serialization.d.ts +5 -0
  302. package/dist/src/helpers/data/serialization.d.ts.map +1 -0
  303. package/dist/src/helpers/data/serialization.js +25 -0
  304. package/dist/src/helpers/data/serialization.js.map +1 -0
  305. package/dist/src/helpers/data/transformer.d.ts +13 -0
  306. package/dist/src/helpers/data/transformer.d.ts.map +1 -0
  307. package/dist/src/helpers/data/transformer.js +50 -0
  308. package/dist/src/helpers/data/transformer.js.map +1 -0
  309. package/dist/src/helpers/index.d.ts +19 -0
  310. package/dist/src/helpers/index.d.ts.map +1 -0
  311. package/dist/src/helpers/index.js +30 -0
  312. package/dist/src/helpers/index.js.map +1 -0
  313. package/dist/src/helpers/io/package.d.ts +10 -0
  314. package/dist/src/helpers/io/package.d.ts.map +1 -0
  315. package/dist/src/helpers/io/package.js +35 -0
  316. package/dist/src/helpers/io/package.js.map +1 -0
  317. package/dist/src/helpers/io/stream.d.ts +18 -0
  318. package/dist/src/helpers/io/stream.d.ts.map +1 -0
  319. package/dist/src/helpers/io/stream.js +131 -0
  320. package/dist/src/helpers/io/stream.js.map +1 -0
  321. package/dist/src/helpers/redis/broadcast.d.ts +15 -0
  322. package/dist/src/helpers/redis/broadcast.d.ts.map +1 -0
  323. package/dist/src/helpers/redis/broadcast.js +93 -0
  324. package/dist/src/helpers/redis/broadcast.js.map +1 -0
  325. package/dist/src/helpers/redis/cache.d.ts +20 -0
  326. package/dist/src/helpers/redis/cache.d.ts.map +1 -0
  327. package/dist/src/helpers/redis/cache.js +57 -0
  328. package/dist/src/helpers/redis/cache.js.map +1 -0
  329. package/dist/src/helpers/redis/mutex.d.ts +45 -0
  330. package/dist/src/helpers/redis/mutex.d.ts.map +1 -0
  331. package/dist/src/helpers/redis/mutex.js +446 -0
  332. package/dist/src/helpers/redis/mutex.js.map +1 -0
  333. package/dist/src/helpers/redis/redis.d.ts +12 -0
  334. package/dist/src/helpers/redis/redis.d.ts.map +1 -0
  335. package/dist/src/helpers/redis/redis.js +62 -0
  336. package/dist/src/helpers/redis/redis.js.map +1 -0
  337. package/dist/src/helpers/security/crypto.d.ts +31 -0
  338. package/dist/src/helpers/security/crypto.d.ts.map +1 -0
  339. package/dist/src/helpers/security/crypto.js +108 -0
  340. package/dist/src/helpers/security/crypto.js.map +1 -0
  341. package/dist/src/helpers/security/validation.d.ts +3 -0
  342. package/dist/src/helpers/security/validation.d.ts.map +1 -0
  343. package/dist/src/helpers/security/validation.js +14 -0
  344. package/dist/src/helpers/security/validation.js.map +1 -0
  345. package/dist/src/helpers/utils/date.d.ts +4 -0
  346. package/dist/src/helpers/utils/date.d.ts.map +1 -0
  347. package/dist/src/helpers/utils/date.js +16 -0
  348. package/dist/src/helpers/utils/date.js.map +1 -0
  349. package/dist/src/helpers/utils/error.d.ts +20 -0
  350. package/dist/src/helpers/utils/error.d.ts.map +1 -0
  351. package/dist/src/helpers/utils/error.js +164 -0
  352. package/dist/src/helpers/utils/error.js.map +1 -0
  353. package/dist/src/helpers/utils/uuid.d.ts +5 -0
  354. package/dist/src/helpers/utils/uuid.d.ts.map +1 -0
  355. package/dist/src/helpers/utils/uuid.js +13 -0
  356. package/dist/src/helpers/utils/uuid.js.map +1 -0
  357. package/dist/src/http/auth.d.ts +20 -0
  358. package/dist/src/http/auth.d.ts.map +1 -0
  359. package/dist/src/http/auth.js +68 -0
  360. package/dist/src/http/auth.js.map +1 -0
  361. package/dist/src/http/base.d.ts +57 -0
  362. package/dist/src/http/base.d.ts.map +1 -0
  363. package/dist/src/http/base.js +331 -0
  364. package/dist/src/http/base.js.map +1 -0
  365. package/dist/src/http/context.d.ts +6 -0
  366. package/dist/src/http/context.d.ts.map +1 -0
  367. package/dist/src/http/context.js +26 -0
  368. package/dist/src/http/context.js.map +1 -0
  369. package/dist/src/http/cors.d.ts +25 -0
  370. package/dist/src/http/cors.d.ts.map +1 -0
  371. package/dist/src/http/cors.js +124 -0
  372. package/dist/src/http/cors.js.map +1 -0
  373. package/dist/src/http/decorators.d.ts +64 -0
  374. package/dist/src/http/decorators.d.ts.map +1 -0
  375. package/dist/src/http/decorators.js +102 -0
  376. package/dist/src/http/decorators.js.map +1 -0
  377. package/dist/src/http/errors.d.ts +50 -0
  378. package/dist/src/http/errors.d.ts.map +1 -0
  379. package/dist/src/http/errors.js +158 -0
  380. package/dist/src/http/errors.js.map +1 -0
  381. package/dist/src/http/index.d.ts +31 -0
  382. package/dist/src/http/index.d.ts.map +1 -0
  383. package/dist/src/http/index.js +33 -0
  384. package/dist/src/http/index.js.map +1 -0
  385. package/dist/src/http/middleware.d.ts +12 -0
  386. package/dist/src/http/middleware.d.ts.map +1 -0
  387. package/dist/src/http/middleware.js +31 -0
  388. package/dist/src/http/middleware.js.map +1 -0
  389. package/dist/src/http/parameter-resolvers.d.ts +3 -0
  390. package/dist/src/http/parameter-resolvers.d.ts.map +1 -0
  391. package/dist/src/http/parameter-resolvers.js +8 -0
  392. package/dist/src/http/parameter-resolvers.js.map +1 -0
  393. package/dist/src/http/request-logging.d.ts +34 -0
  394. package/dist/src/http/request-logging.d.ts.map +1 -0
  395. package/dist/src/http/request-logging.js +130 -0
  396. package/dist/src/http/request-logging.js.map +1 -0
  397. package/dist/src/http/request.d.ts +69 -0
  398. package/dist/src/http/request.d.ts.map +1 -0
  399. package/dist/src/http/request.js +366 -0
  400. package/dist/src/http/request.js.map +1 -0
  401. package/dist/src/http/response.d.ts +98 -0
  402. package/dist/src/http/response.d.ts.map +1 -0
  403. package/dist/src/http/response.js +292 -0
  404. package/dist/src/http/response.js.map +1 -0
  405. package/dist/src/http/router.d.ts +100 -0
  406. package/dist/src/http/router.d.ts.map +1 -0
  407. package/dist/src/http/router.js +1085 -0
  408. package/dist/src/http/router.js.map +1 -0
  409. package/dist/src/http/startup-logging.d.ts +8 -0
  410. package/dist/src/http/startup-logging.d.ts.map +1 -0
  411. package/dist/src/http/startup-logging.js +55 -0
  412. package/dist/src/http/startup-logging.js.map +1 -0
  413. package/dist/src/http/static-files.d.ts +15 -0
  414. package/dist/src/http/static-files.d.ts.map +1 -0
  415. package/dist/src/http/static-files.js +110 -0
  416. package/dist/src/http/static-files.js.map +1 -0
  417. package/dist/src/http/store.d.ts +8 -0
  418. package/dist/src/http/store.d.ts.map +1 -0
  419. package/dist/src/http/store.js +47 -0
  420. package/dist/src/http/store.js.map +1 -0
  421. package/dist/src/http/types.d.ts +23 -0
  422. package/dist/src/http/types.d.ts.map +1 -0
  423. package/dist/src/http/types.js +3 -0
  424. package/dist/src/http/types.js.map +1 -0
  425. package/dist/src/http/upgrade.d.ts +22 -0
  426. package/dist/src/http/upgrade.d.ts.map +1 -0
  427. package/dist/src/http/upgrade.js +164 -0
  428. package/dist/src/http/upgrade.js.map +1 -0
  429. package/dist/src/http/uploads.d.ts +36 -0
  430. package/dist/src/http/uploads.d.ts.map +1 -0
  431. package/dist/src/http/uploads.js +287 -0
  432. package/dist/src/http/uploads.js.map +1 -0
  433. package/dist/src/http/workflow.d.ts +34 -0
  434. package/dist/src/http/workflow.d.ts.map +1 -0
  435. package/dist/src/http/workflow.js +40 -0
  436. package/dist/src/http/workflow.js.map +1 -0
  437. package/dist/src/index.d.ts +21 -0
  438. package/dist/src/index.d.ts.map +1 -0
  439. package/dist/src/index.js +88 -0
  440. package/dist/src/index.js.map +1 -0
  441. package/dist/src/openapi/controller.d.ts +9 -0
  442. package/dist/src/openapi/controller.d.ts.map +1 -0
  443. package/dist/src/openapi/controller.js +45 -0
  444. package/dist/src/openapi/controller.js.map +1 -0
  445. package/dist/src/openapi/index.d.ts +5 -0
  446. package/dist/src/openapi/index.d.ts.map +1 -0
  447. package/dist/src/openapi/index.js +21 -0
  448. package/dist/src/openapi/index.js.map +1 -0
  449. package/dist/src/openapi/schema.d.ts +26 -0
  450. package/dist/src/openapi/schema.d.ts.map +1 -0
  451. package/dist/src/openapi/schema.js +1128 -0
  452. package/dist/src/openapi/schema.js.map +1 -0
  453. package/dist/src/openapi/serializer.d.ts +16 -0
  454. package/dist/src/openapi/serializer.d.ts.map +1 -0
  455. package/dist/src/openapi/serializer.js +506 -0
  456. package/dist/src/openapi/serializer.js.map +1 -0
  457. package/dist/src/openapi/types.d.ts +84 -0
  458. package/dist/src/openapi/types.d.ts.map +1 -0
  459. package/dist/src/openapi/types.js +5 -0
  460. package/dist/src/openapi/types.js.map +1 -0
  461. package/dist/src/reflection/annotations.d.ts +15 -0
  462. package/dist/src/reflection/annotations.d.ts.map +1 -0
  463. package/dist/src/reflection/annotations.js +228 -0
  464. package/dist/src/reflection/annotations.js.map +1 -0
  465. package/dist/src/reflection/conversion.d.ts +15 -0
  466. package/dist/src/reflection/conversion.d.ts.map +1 -0
  467. package/dist/src/reflection/conversion.js +360 -0
  468. package/dist/src/reflection/conversion.js.map +1 -0
  469. package/dist/src/reflection/deserializer.d.ts +15 -0
  470. package/dist/src/reflection/deserializer.d.ts.map +1 -0
  471. package/dist/src/reflection/deserializer.js +42 -0
  472. package/dist/src/reflection/deserializer.js.map +1 -0
  473. package/dist/src/reflection/entity.d.ts +9 -0
  474. package/dist/src/reflection/entity.d.ts.map +1 -0
  475. package/dist/src/reflection/entity.js +74 -0
  476. package/dist/src/reflection/entity.js.map +1 -0
  477. package/dist/src/reflection/errors.d.ts +8 -0
  478. package/dist/src/reflection/errors.d.ts.map +1 -0
  479. package/dist/src/reflection/errors.js +21 -0
  480. package/dist/src/reflection/errors.js.map +1 -0
  481. package/dist/src/reflection/index.d.ts +8 -0
  482. package/dist/src/reflection/index.d.ts.map +1 -0
  483. package/dist/src/reflection/index.js +13 -0
  484. package/dist/src/reflection/index.js.map +1 -0
  485. package/dist/src/reflection/metadata-store.d.ts +14 -0
  486. package/dist/src/reflection/metadata-store.d.ts.map +1 -0
  487. package/dist/src/reflection/metadata-store.js +18 -0
  488. package/dist/src/reflection/metadata-store.js.map +1 -0
  489. package/dist/src/reflection/model.d.ts +271 -0
  490. package/dist/src/reflection/model.d.ts.map +1 -0
  491. package/dist/src/reflection/model.js +36 -0
  492. package/dist/src/reflection/model.js.map +1 -0
  493. package/dist/src/reflection/reflection-class.d.ts +60 -0
  494. package/dist/src/reflection/reflection-class.d.ts.map +1 -0
  495. package/dist/src/reflection/reflection-class.js +263 -0
  496. package/dist/src/reflection/reflection-class.js.map +1 -0
  497. package/dist/src/reflection/type-utils.d.ts +34 -0
  498. package/dist/src/reflection/type-utils.d.ts.map +1 -0
  499. package/dist/src/reflection/type-utils.js +485 -0
  500. package/dist/src/reflection/type-utils.js.map +1 -0
  501. package/dist/src/reflection.d.ts +2 -0
  502. package/dist/src/reflection.d.ts.map +1 -0
  503. package/dist/src/reflection.js +5 -0
  504. package/dist/src/reflection.js.map +1 -0
  505. package/dist/src/services/cli.d.ts +9 -0
  506. package/dist/src/services/cli.d.ts.map +1 -0
  507. package/dist/src/services/cli.js +47 -0
  508. package/dist/src/services/cli.js.map +1 -0
  509. package/dist/src/services/index.d.ts +8 -0
  510. package/dist/src/services/index.d.ts.map +1 -0
  511. package/dist/src/services/index.js +13 -0
  512. package/dist/src/services/index.js.map +1 -0
  513. package/dist/src/services/leader.d.ts +31 -0
  514. package/dist/src/services/leader.d.ts.map +1 -0
  515. package/dist/src/services/leader.js +176 -0
  516. package/dist/src/services/leader.js.map +1 -0
  517. package/dist/src/services/logger.d.ts +60 -0
  518. package/dist/src/services/logger.d.ts.map +1 -0
  519. package/dist/src/services/logger.js +349 -0
  520. package/dist/src/services/logger.js.map +1 -0
  521. package/dist/src/services/mail/index.d.ts +57 -0
  522. package/dist/src/services/mail/index.d.ts.map +1 -0
  523. package/dist/src/services/mail/index.js +89 -0
  524. package/dist/src/services/mail/index.js.map +1 -0
  525. package/dist/src/services/mail/postmark.d.ts +11 -0
  526. package/dist/src/services/mail/postmark.d.ts.map +1 -0
  527. package/dist/src/services/mail/postmark.js +41 -0
  528. package/dist/src/services/mail/postmark.js.map +1 -0
  529. package/dist/src/services/mail/smtp.d.ts +11 -0
  530. package/dist/src/services/mail/smtp.d.ts.map +1 -0
  531. package/dist/src/services/mail/smtp.js +50 -0
  532. package/dist/src/services/mail/smtp.js.map +1 -0
  533. package/dist/src/services/mesh-client/index.d.ts +9 -0
  534. package/dist/src/services/mesh-client/index.d.ts.map +1 -0
  535. package/dist/src/services/mesh-client/index.js +18 -0
  536. package/dist/src/services/mesh-client/index.js.map +1 -0
  537. package/dist/src/services/mesh-client/mesh-client-redis-registry.d.ts +23 -0
  538. package/dist/src/services/mesh-client/mesh-client-redis-registry.d.ts.map +1 -0
  539. package/dist/src/services/mesh-client/mesh-client-redis-registry.js +360 -0
  540. package/dist/src/services/mesh-client/mesh-client-redis-registry.js.map +1 -0
  541. package/dist/src/services/mesh-client/mesh-client-registry.d.ts +16 -0
  542. package/dist/src/services/mesh-client/mesh-client-registry.d.ts.map +1 -0
  543. package/dist/src/services/mesh-client/mesh-client-registry.js +44 -0
  544. package/dist/src/services/mesh-client/mesh-client-registry.js.map +1 -0
  545. package/dist/src/services/mesh-client/mesh-client-service.d.ts +88 -0
  546. package/dist/src/services/mesh-client/mesh-client-service.d.ts.map +1 -0
  547. package/dist/src/services/mesh-client/mesh-client-service.js +222 -0
  548. package/dist/src/services/mesh-client/mesh-client-service.js.map +1 -0
  549. package/dist/src/services/mesh-client/mesh-srpc-server.d.ts +95 -0
  550. package/dist/src/services/mesh-client/mesh-srpc-server.d.ts.map +1 -0
  551. package/dist/src/services/mesh-client/mesh-srpc-server.js +475 -0
  552. package/dist/src/services/mesh-client/mesh-srpc-server.js.map +1 -0
  553. package/dist/src/services/mesh-client/types.d.ts +36 -0
  554. package/dist/src/services/mesh-client/types.d.ts.map +1 -0
  555. package/dist/src/services/mesh-client/types.js +38 -0
  556. package/dist/src/services/mesh-client/types.js.map +1 -0
  557. package/dist/src/services/mesh.d.ts +73 -0
  558. package/dist/src/services/mesh.d.ts.map +1 -0
  559. package/dist/src/services/mesh.js +511 -0
  560. package/dist/src/services/mesh.js.map +1 -0
  561. package/dist/src/services/worker/entity.d.ts +26 -0
  562. package/dist/src/services/worker/entity.d.ts.map +1 -0
  563. package/dist/src/services/worker/entity.js +30 -0
  564. package/dist/src/services/worker/entity.js.map +1 -0
  565. package/dist/src/services/worker/index.d.ts +25 -0
  566. package/dist/src/services/worker/index.d.ts.map +1 -0
  567. package/dist/src/services/worker/index.js +52 -0
  568. package/dist/src/services/worker/index.js.map +1 -0
  569. package/dist/src/services/worker/observer.d.ts +13 -0
  570. package/dist/src/services/worker/observer.d.ts.map +1 -0
  571. package/dist/src/services/worker/observer.js +22 -0
  572. package/dist/src/services/worker/observer.js.map +1 -0
  573. package/dist/src/services/worker/queue.d.ts +38 -0
  574. package/dist/src/services/worker/queue.d.ts.map +1 -0
  575. package/dist/src/services/worker/queue.js +227 -0
  576. package/dist/src/services/worker/queue.js.map +1 -0
  577. package/dist/src/services/worker/recorder.d.ts +17 -0
  578. package/dist/src/services/worker/recorder.d.ts.map +1 -0
  579. package/dist/src/services/worker/recorder.js +88 -0
  580. package/dist/src/services/worker/recorder.js.map +1 -0
  581. package/dist/src/services/worker/runner.d.ts +37 -0
  582. package/dist/src/services/worker/runner.d.ts.map +1 -0
  583. package/dist/src/services/worker/runner.js +319 -0
  584. package/dist/src/services/worker/runner.js.map +1 -0
  585. package/dist/src/services/worker/types.d.ts +63 -0
  586. package/dist/src/services/worker/types.d.ts.map +1 -0
  587. package/dist/src/services/worker/types.js +38 -0
  588. package/dist/src/services/worker/types.js.map +1 -0
  589. package/dist/src/srpc/SrpcByteStream.d.ts +60 -0
  590. package/dist/src/srpc/SrpcByteStream.d.ts.map +1 -0
  591. package/dist/src/srpc/SrpcByteStream.js +237 -0
  592. package/dist/src/srpc/SrpcByteStream.js.map +1 -0
  593. package/dist/src/srpc/SrpcClient.d.ts +67 -0
  594. package/dist/src/srpc/SrpcClient.d.ts.map +1 -0
  595. package/dist/src/srpc/SrpcClient.js +406 -0
  596. package/dist/src/srpc/SrpcClient.js.map +1 -0
  597. package/dist/src/srpc/SrpcServer.d.ts +56 -0
  598. package/dist/src/srpc/SrpcServer.d.ts.map +1 -0
  599. package/dist/src/srpc/SrpcServer.js +519 -0
  600. package/dist/src/srpc/SrpcServer.js.map +1 -0
  601. package/dist/src/srpc/index.d.ts +9 -0
  602. package/dist/src/srpc/index.d.ts.map +1 -0
  603. package/dist/src/srpc/index.js +17 -0
  604. package/dist/src/srpc/index.js.map +1 -0
  605. package/dist/src/srpc/observer.d.ts +21 -0
  606. package/dist/src/srpc/observer.d.ts.map +1 -0
  607. package/dist/src/srpc/observer.js +22 -0
  608. package/dist/src/srpc/observer.js.map +1 -0
  609. package/dist/src/srpc/types.d.ts +92 -0
  610. package/dist/src/srpc/types.d.ts.map +1 -0
  611. package/dist/src/srpc/types.js +28 -0
  612. package/dist/src/srpc/types.js.map +1 -0
  613. package/dist/src/telemetry/index.d.ts +3 -0
  614. package/dist/src/telemetry/index.d.ts.map +1 -0
  615. package/dist/src/telemetry/index.js +22 -0
  616. package/dist/src/telemetry/index.js.map +1 -0
  617. package/dist/src/telemetry/otel/helpers.d.ts +45 -0
  618. package/dist/src/telemetry/otel/helpers.d.ts.map +1 -0
  619. package/dist/src/telemetry/otel/helpers.js +142 -0
  620. package/dist/src/telemetry/otel/helpers.js.map +1 -0
  621. package/dist/src/telemetry/otel/index.d.ts +22 -0
  622. package/dist/src/telemetry/otel/index.d.ts.map +1 -0
  623. package/dist/src/telemetry/otel/index.js +268 -0
  624. package/dist/src/telemetry/otel/index.js.map +1 -0
  625. package/dist/src/telemetry/otel/metrics.controller.d.ts +5 -0
  626. package/dist/src/telemetry/otel/metrics.controller.d.ts.map +1 -0
  627. package/dist/src/telemetry/otel/metrics.controller.js +82 -0
  628. package/dist/src/telemetry/otel/metrics.controller.js.map +1 -0
  629. package/dist/src/telemetry/otel/metrics.d.ts +2 -0
  630. package/dist/src/telemetry/otel/metrics.d.ts.map +1 -0
  631. package/dist/src/telemetry/otel/metrics.js +16 -0
  632. package/dist/src/telemetry/otel/metrics.js.map +1 -0
  633. package/dist/src/telemetry/sentry.d.ts +9 -0
  634. package/dist/src/telemetry/sentry.d.ts.map +1 -0
  635. package/dist/src/telemetry/sentry.js +63 -0
  636. package/dist/src/telemetry/sentry.js.map +1 -0
  637. package/dist/src/testing/database-readiness.d.ts +11 -0
  638. package/dist/src/testing/database-readiness.d.ts.map +1 -0
  639. package/dist/src/testing/database-readiness.js +102 -0
  640. package/dist/src/testing/database-readiness.js.map +1 -0
  641. package/dist/src/testing/expect.d.ts +21 -0
  642. package/dist/src/testing/expect.d.ts.map +1 -0
  643. package/dist/src/testing/expect.js +110 -0
  644. package/dist/src/testing/expect.js.map +1 -0
  645. package/dist/src/testing/fixtures.d.ts +18 -0
  646. package/dist/src/testing/fixtures.d.ts.map +1 -0
  647. package/dist/src/testing/fixtures.js +46 -0
  648. package/dist/src/testing/fixtures.js.map +1 -0
  649. package/dist/src/testing/index.d.ts +143 -0
  650. package/dist/src/testing/index.d.ts.map +1 -0
  651. package/dist/src/testing/index.js +993 -0
  652. package/dist/src/testing/index.js.map +1 -0
  653. package/dist/src/testing/mysql-session-manager-process.d.ts +3 -0
  654. package/dist/src/testing/mysql-session-manager-process.d.ts.map +1 -0
  655. package/dist/src/testing/mysql-session-manager-process.js +77 -0
  656. package/dist/src/testing/mysql-session-manager-process.js.map +1 -0
  657. package/dist/src/testing/mysql-session-manager.d.ts +59 -0
  658. package/dist/src/testing/mysql-session-manager.d.ts.map +1 -0
  659. package/dist/src/testing/mysql-session-manager.js +910 -0
  660. package/dist/src/testing/mysql-session-manager.js.map +1 -0
  661. package/dist/src/testing/sql.d.ts +47 -0
  662. package/dist/src/testing/sql.d.ts.map +1 -0
  663. package/dist/src/testing/sql.js +313 -0
  664. package/dist/src/testing/sql.js.map +1 -0
  665. package/dist/src/type-compiler/go/ast_expression.go +161 -0
  666. package/dist/src/type-compiler/go/ast_metadata.go +355 -0
  667. package/dist/src/type-compiler/go/collect.go +806 -0
  668. package/dist/src/type-compiler/go/emission_plan.go +205 -0
  669. package/dist/src/type-compiler/go/emit_ast.go +406 -0
  670. package/dist/src/type-compiler/go/emit_ast_test.go +248 -0
  671. package/dist/src/type-compiler/go/go.mod +10 -0
  672. package/dist/src/type-compiler/go/plugin.go +308 -0
  673. package/dist/src/type-compiler/go/plugin_test.go +752 -0
  674. package/dist/src/type-compiler/go/precompute.go +86 -0
  675. package/dist/src/type-compiler/go/receive_type.go +837 -0
  676. package/dist/src/type-compiler/go/resolve.go +265 -0
  677. package/dist/src/type-compiler/go/source_scan.go +51 -0
  678. package/dist/src/type-compiler/go/text_parse.go +671 -0
  679. package/dist/src/type-compiler/go/type_expr.go +1227 -0
  680. package/dist/src/type-compiler/go/typia_expr.go +2119 -0
  681. package/dist/src/type-compiler/index.cjs +6 -0
  682. package/dist/src/types/index.d.ts +7 -0
  683. package/dist/src/types/index.d.ts.map +1 -0
  684. package/dist/src/types/index.js +14 -0
  685. package/dist/src/types/index.js.map +1 -0
  686. package/dist/src/types/phone.d.ts +6 -0
  687. package/dist/src/types/phone.d.ts.map +1 -0
  688. package/dist/src/types/phone.js +64 -0
  689. package/dist/src/types/phone.js.map +1 -0
  690. package/dist/src/types/primitives.d.ts +33 -0
  691. package/dist/src/types/primitives.d.ts.map +1 -0
  692. package/dist/src/types/primitives.js +5 -0
  693. package/dist/src/types/primitives.js.map +1 -0
  694. package/dist/src/types/runtime.d.ts +5 -0
  695. package/dist/src/types/runtime.d.ts.map +1 -0
  696. package/dist/src/types/runtime.js +20 -0
  697. package/dist/src/types/runtime.js.map +1 -0
  698. package/dist/src/types/type-annotations.d.ts +28 -0
  699. package/dist/src/types/type-annotations.d.ts.map +1 -0
  700. package/dist/src/types/type-annotations.js +33 -0
  701. package/dist/src/types/type-annotations.js.map +1 -0
  702. package/dist/src/types.d.ts +2 -0
  703. package/dist/src/types.d.ts.map +1 -0
  704. package/dist/src/types.js +7 -0
  705. package/dist/src/types.js.map +1 -0
  706. package/docs/.vitepress/config.mts +85 -0
  707. package/docs/content/CONTRIBUTING.md +53 -0
  708. package/docs/content/README-DEV.md +59 -0
  709. package/docs/content/README.md +52 -0
  710. package/docs/content/authentication.md +213 -0
  711. package/docs/content/cli.md +214 -0
  712. package/docs/content/configuration.md +191 -0
  713. package/docs/content/database.md +476 -0
  714. package/docs/content/devconsole.md +148 -0
  715. package/docs/content/di.md +212 -0
  716. package/docs/content/documentation-plan.md +182 -0
  717. package/docs/content/env.md +120 -0
  718. package/docs/content/getting-started.md +324 -0
  719. package/docs/content/health.md +64 -0
  720. package/docs/content/helpers.md +294 -0
  721. package/docs/content/http.md +402 -0
  722. package/docs/content/index.md +109 -0
  723. package/docs/content/leader-service.md +98 -0
  724. package/docs/content/logging.md +225 -0
  725. package/docs/content/mail.md +171 -0
  726. package/docs/content/mesh-client.md +333 -0
  727. package/docs/content/mesh-service.md +255 -0
  728. package/docs/content/migrations.md +190 -0
  729. package/docs/content/openapi.md +134 -0
  730. package/docs/content/overview.md +98 -0
  731. package/docs/content/public/images/devconsole/01-dashboard.png +0 -0
  732. package/docs/content/public/images/devconsole/02-routes.png +0 -0
  733. package/docs/content/public/images/devconsole/03-openapi.png +0 -0
  734. package/docs/content/public/images/devconsole/04-requests.png +0 -0
  735. package/docs/content/public/images/devconsole/05-srpc.png +0 -0
  736. package/docs/content/public/images/devconsole/06-database.png +0 -0
  737. package/docs/content/public/images/devconsole/06b-database-log.png +0 -0
  738. package/docs/content/public/images/devconsole/07-health.png +0 -0
  739. package/docs/content/public/images/devconsole/08-mutex.png +0 -0
  740. package/docs/content/public/images/devconsole/09-repl.png +0 -0
  741. package/docs/content/public/images/devconsole/10-workers.png +0 -0
  742. package/docs/content/public-api.md +84 -0
  743. package/docs/content/redis.md +174 -0
  744. package/docs/content/reflection.md +180 -0
  745. package/docs/content/release.md +100 -0
  746. package/docs/content/sql.md +121 -0
  747. package/docs/content/srpc.md +292 -0
  748. package/docs/content/telemetry.md +173 -0
  749. package/docs/content/testing.md +327 -0
  750. package/docs/content/type-reflection-architecture.md +149 -0
  751. package/docs/content/types.md +286 -0
  752. package/docs/content/uploads.md +145 -0
  753. package/docs/content/worker.md +182 -0
  754. package/docs/openapi.md +3 -0
  755. package/package.json +124 -0
  756. package/resources/proto/devconsole.proto +286 -0
  757. package/template-app/.env.development +10 -0
  758. package/template-app/gitignore.tmpl +11 -0
  759. package/template-app/package.json.tmpl +25 -0
  760. package/template-app/src/app.ts +13 -0
  761. package/template-app/src/config.ts +5 -0
  762. package/template-app/src/controllers/Example.controller.ts +19 -0
  763. package/template-app/src/database.ts +5 -0
  764. package/template-app/src/entities/Example.entity.ts +9 -0
  765. package/template-app/src/index.ts +7 -0
  766. package/template-app/src/migrations/.gitkeep +2 -0
  767. package/template-app/src/services/Example.service.ts +20 -0
  768. package/template-app/tests/app.spec.ts +8 -0
  769. package/template-app/tsconfig.json +26 -0
  770. package/template-app/tsconfig.test.json +5 -0
  771. package/types.d.ts +4 -0
@@ -0,0 +1,66 @@
1
+ import { Container } from '../di';
2
+ import type { ModuleDefinition, Token } from '../di';
3
+ import { EventBus, EventToken } from '../events';
4
+ import { HttpRequest, HttpResponse, HttpServerRuntime, HttpRouter, type HttpCorsConfig, type RouteParameterResolverRegistry, type StaticFilesOptions } from '../http';
5
+ import { type ClassType } from '../types';
6
+ import { BaseAppConfig } from './config';
7
+ export { getCurrentApp, setCurrentApp } from './current';
8
+ export interface CreateAppOptions<C extends BaseAppConfig = BaseAppConfig> extends ModuleDefinition<C> {
9
+ config?: ClassType<C>;
10
+ defaultConfig?: Partial<C>;
11
+ db?: ClassType;
12
+ frameworkConfig?: Record<string, unknown>;
13
+ serverConfig?: Record<string, unknown>;
14
+ cors?: HttpCorsConfig<C>;
15
+ staticFiles?: boolean | StaticFilesOptions;
16
+ httpResolvers?: RouteParameterResolverRegistry;
17
+ enableHealthcheck?: boolean;
18
+ enableWorker?: boolean;
19
+ enableDkRpc?: boolean;
20
+ }
21
+ export declare class App<C extends BaseAppConfig = BaseAppConfig> {
22
+ readonly options: CreateAppOptions<C>;
23
+ readonly container: Container;
24
+ readonly events: EventBus;
25
+ readonly config: C;
26
+ readonly router: HttpRouter;
27
+ readonly http: HttpServerRuntime<C>;
28
+ private readonly listenerClasses;
29
+ private readonly commandClasses;
30
+ private readonly commandModuleIds;
31
+ private started;
32
+ private starting?;
33
+ private signalHandlers?;
34
+ private forceWorkerRunner;
35
+ private readonly devConsole?;
36
+ private openApiDumpTimer?;
37
+ constructor(options: CreateAppOptions<C>);
38
+ get<T>(token: Token<T>): T;
39
+ getInjectorContext(): Container;
40
+ on<TEvent>(token: EventToken<TEvent>, handler: (event: TEvent) => void | Promise<void>, order?: number): () => void;
41
+ start(): Promise<void>;
42
+ private startInternal;
43
+ stop(): Promise<void>;
44
+ run(port?: number, host?: string): Promise<void>;
45
+ private runEntrypointCommand;
46
+ private printEntrypointUsage;
47
+ private findCommand;
48
+ private invokeCommand;
49
+ private runWorkerEntrypoint;
50
+ private runMigrationsFromEntrypoint;
51
+ private runOpenApiGenerationFromEntrypoint;
52
+ request(request: HttpRequest, response?: HttpResponse): Promise<HttpResponse>;
53
+ private shouldStartWorkerRunner;
54
+ private createAutoConstructInstances;
55
+ private scheduleOpenApiSchemaDump;
56
+ private clearOpenApiDumpTimer;
57
+ private registerDatabaseHealthcheck;
58
+ private getControllerModuleIds;
59
+ private getCommandModuleIds;
60
+ private registerDecoratedListeners;
61
+ private shutdownTelemetryIfInstalled;
62
+ private installSignalHandlers;
63
+ private removeSignalHandlers;
64
+ }
65
+ export declare function createApp<C extends BaseAppConfig = BaseAppConfig>(options: CreateAppOptions<C>): App<C>;
66
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/app/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA0C,MAAM,OAAO,CAAC;AAG1E,OAAO,KAAK,EAAE,gBAAgB,EAAwB,KAAK,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAA6B,MAAM,WAAW,CAAC;AAG5E,OAAO,EACH,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,UAAU,EAGV,KAAK,cAAc,EACnB,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EAC1B,MAAM,SAAS,CAAC;AAUjB,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAczC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAClG,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;IAC3C,aAAa,CAAC,EAAE,8BAA8B,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAOD,qBAAa,GAAG,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAgBxC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAfjD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,WAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAC1D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,cAAc,CAAC,CAA8C;IACrE,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAoB;IAChD,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAE1C,YAAqB,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAwFhD;IAED,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAEzB;IAED,kBAAkB,IAAI,SAAS,CAE9B;IAED,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,SAAI,GAAG,MAAM,IAAI,CAE7G;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAa3B;YAEa,aAAa;IAiCrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B1B;IAEK,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrD;YAEa,oBAAoB;IAgClC,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,WAAW;YASL,aAAa;YAOb,mBAAmB;YAOnB,2BAA2B;YAa3B,kCAAkC;IAM1C,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,GAAE,YAAuC,GAAG,OAAO,CAAC,YAAY,CAAC,CAE5G;IAED,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,4BAA4B;IASpC,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,2BAA2B;IAUnC,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,0BAA0B;YAkBpB,4BAA4B;IAM1C,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,oBAAoB;CAO/B;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAIvG"}
@@ -0,0 +1,577 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.__tsfTypeAliases = exports.App = exports.setCurrentApp = exports.getCurrentApp = void 0;
4
+ exports.createApp = createApp;
5
+ const tslib_1 = require("tslib");
6
+ const di_1 = require("../di");
7
+ const di_2 = require("../di");
8
+ const database_1 = require("../database");
9
+ const events_1 = require("../events");
10
+ const health_1 = require("../health");
11
+ const devconsole_1 = require("../devconsole");
12
+ const http_1 = require("../http");
13
+ const helpers_1 = require("../helpers");
14
+ const services_1 = require("../services");
15
+ const mail_1 = require("../services/mail");
16
+ const sql_1 = require("../database/sql");
17
+ const openapi_1 = require("../openapi");
18
+ const metrics_controller_1 = require("../telemetry/otel/metrics.controller");
19
+ const helpers_2 = require("../telemetry/otel/helpers");
20
+ const metrics_1 = require("../telemetry/otel/metrics");
21
+ const sentry_1 = require("../telemetry/sentry");
22
+ const types_1 = require("../types");
23
+ const config_1 = require("./config");
24
+ const config_loader_1 = require("./config-loader");
25
+ const lifecycle_1 = require("./lifecycle");
26
+ const migrations_entrypoint_1 = require("./migrations-entrypoint");
27
+ const commands_1 = require("./commands");
28
+ const current_1 = require("./current");
29
+ var current_2 = require("./current");
30
+ Object.defineProperty(exports, "getCurrentApp", { enumerable: true, get: function () { return current_2.getCurrentApp; } });
31
+ Object.defineProperty(exports, "setCurrentApp", { enumerable: true, get: function () { return current_2.setCurrentApp; } });
32
+ let _AppMetadata_1;
33
+ class App {
34
+ options;
35
+ container;
36
+ events = new events_1.EventBus();
37
+ config;
38
+ router;
39
+ http;
40
+ listenerClasses;
41
+ commandClasses;
42
+ commandModuleIds;
43
+ started = false;
44
+ starting;
45
+ signalHandlers;
46
+ forceWorkerRunner = false;
47
+ devConsole;
48
+ openApiDumpTimer;
49
+ constructor(options) {
50
+ this.options = options;
51
+ const configClass = options.config ?? config_1.BaseAppConfig;
52
+ this.config = new config_loader_1.ConfigLoader(configClass, options.defaultConfig).load();
53
+ if (this.config.SENTRY_DSN) {
54
+ (0, sentry_1.installSentry)({ dsn: this.config.SENTRY_DSN });
55
+ }
56
+ const configProviders = [{ provide: configClass, useValue: this.config }];
57
+ if (configClass !== config_1.BaseAppConfig) {
58
+ configProviders.push({ provide: config_1.BaseAppConfig, useExisting: configClass });
59
+ }
60
+ const defaultControllers = [];
61
+ if (options.enableHealthcheck !== false)
62
+ defaultControllers.push(health_1.HealthcheckController);
63
+ if ((0, devconsole_1.shouldEnableDevConsole)(this.config))
64
+ defaultControllers.push(devconsole_1.DevConsoleController);
65
+ if ((0, openapi_1.shouldExposeOpenApi)(this.config))
66
+ defaultControllers.push(openapi_1.OpenApiController);
67
+ if ((0, metrics_1.isOtelMetricsEndpointEnabled)())
68
+ defaultControllers.push(metrics_controller_1.MetricsController);
69
+ const rootControllers = uniqueClasses([...(options.controllers ?? []), ...defaultControllers]);
70
+ assertHttpControllerClasses(rootControllers);
71
+ const rootCommands = uniqueClasses([...(options.commands ?? [])]);
72
+ const imports = addFrameworkProvidersToImports(options.imports ?? []);
73
+ const controllers = uniqueClasses([...rootControllers, ...collectImportedControllers(imports)]);
74
+ this.listenerClasses = uniqueClasses([...(options.listeners ?? []), ...collectImportedListeners(imports)]);
75
+ this.commandClasses = uniqueClasses([...rootCommands, ...collectImportedCommands(imports)]);
76
+ assertCommandClasses(this.commandClasses);
77
+ const appProviders = uniqueProviders([
78
+ { provide: App, useValue: this },
79
+ ...configProviders,
80
+ ...(0, services_1.createLoggerProviders)(),
81
+ mail_1.MailService,
82
+ ...(options.enableHealthcheck === false ? [] : [health_1.HealthcheckService]),
83
+ ...(options.db ? [options.db, { provide: database_1.BaseDatabase, useExisting: options.db }] : []),
84
+ ...(options.enableWorker
85
+ ? [
86
+ services_1.WorkerQueueRegistry,
87
+ services_1.WorkerRecorderService,
88
+ {
89
+ provide: services_1.WorkerRunnerService,
90
+ useFactory: (app, queueRegistry, recorder, logger) => new services_1.WorkerRunnerService(app, queueRegistry, recorder, logger),
91
+ deps: [App, services_1.WorkerQueueRegistry, services_1.WorkerRecorderService, services_1.ScopedLogger]
92
+ },
93
+ services_1.WorkerService
94
+ ]
95
+ : []),
96
+ ...(options.providers ?? [])
97
+ ]);
98
+ const controllerProviders = rootControllers.map(controller => createControllerProvider(controller, this));
99
+ const commandProviders = rootCommands.map(command => createCommandProvider(command));
100
+ this.container = new di_1.Container({
101
+ ...options,
102
+ imports,
103
+ providers: [...appProviders, ...controllerProviders, ...commandProviders]
104
+ });
105
+ const rootLogger = this.container.get(services_1.ScopedLogger);
106
+ this.router = new http_1.HttpRouter(this.container, this.events, options.httpResolvers);
107
+ this.http = new http_1.HttpServerRuntime({
108
+ config: this.config,
109
+ router: this.router,
110
+ logger: rootLogger,
111
+ frameworkConfig: options.frameworkConfig,
112
+ serverConfig: options.serverConfig,
113
+ cors: options.cors,
114
+ staticFiles: options.staticFiles,
115
+ packageName: (0, helpers_1.getPackageName)() ?? 'app',
116
+ devConsoleEnabled: (0, devconsole_1.shouldEnableDevConsole)(this.config),
117
+ listenHooks: () => {
118
+ const startedBeforeListen = this.started;
119
+ return {
120
+ start: () => this.start(),
121
+ afterListen: async (server) => {
122
+ this.devConsole?.start(server);
123
+ this.installSignalHandlers();
124
+ await this.events.dispatch(lifecycle_1.onServerBootstrap, undefined);
125
+ await this.events.dispatch(lifecycle_1.onServerMainBootstrapDone, undefined);
126
+ },
127
+ onListenError: async () => {
128
+ if (!startedBeforeListen && this.started)
129
+ await this.stop();
130
+ }
131
+ };
132
+ }
133
+ });
134
+ if ((0, devconsole_1.shouldEnableDevConsole)(this.config))
135
+ this.devConsole = new devconsole_1.DevConsoleRuntime(this, rootLogger);
136
+ if (options.db && options.enableHealthcheck !== false) {
137
+ this.registerDatabaseHealthcheck(options.db);
138
+ }
139
+ const controllerModuleIds = this.getControllerModuleIds(controllers);
140
+ this.commandModuleIds = this.getCommandModuleIds(this.commandClasses);
141
+ for (const controller of controllers)
142
+ this.router.registerController(controller, controllerModuleIds.get(controller));
143
+ this.registerDecoratedListeners();
144
+ }
145
+ get(token) {
146
+ return this.container.get(token);
147
+ }
148
+ getInjectorContext() {
149
+ return this.container;
150
+ }
151
+ on(token, handler, order = 0) {
152
+ return this.events.listen(token, handler, order);
153
+ }
154
+ async start() {
155
+ if (this.started)
156
+ return;
157
+ if (this.starting) {
158
+ await this.starting;
159
+ return;
160
+ }
161
+ this.starting = this.startInternal();
162
+ try {
163
+ await this.starting;
164
+ }
165
+ finally {
166
+ this.starting = undefined;
167
+ }
168
+ }
169
+ async startInternal() {
170
+ await this.events.dispatch(lifecycle_1.onAppBootstrap, undefined);
171
+ if (this.options.db)
172
+ this.container.get(this.options.db);
173
+ this.createAutoConstructInstances();
174
+ let workerStartAttempted = false;
175
+ try {
176
+ if (this.shouldStartWorkerRunner()) {
177
+ workerStartAttempted = true;
178
+ await this.container.get(services_1.WorkerRunnerService).start();
179
+ }
180
+ if ((0, openapi_1.shouldDumpOpenApiSchema)(this.config))
181
+ this.scheduleOpenApiSchemaDump();
182
+ this.started = true;
183
+ }
184
+ catch (error) {
185
+ const cleanupErrors = [];
186
+ const runCleanup = async (cleanup) => {
187
+ try {
188
+ await cleanup();
189
+ }
190
+ catch (cleanupError) {
191
+ cleanupErrors.push(cleanupError);
192
+ }
193
+ };
194
+ if (workerStartAttempted)
195
+ await runCleanup(() => this.container.get(services_1.WorkerRunnerService).shutdown());
196
+ if (this.options.enableWorker)
197
+ await runCleanup(() => this.container.get(services_1.WorkerQueueRegistry).shutdown());
198
+ if (cleanupErrors.length) {
199
+ const rollbackError = cleanupErrors.length === 1 ? cleanupErrors[0] : new AggregateError(cleanupErrors, 'Application startup rollback failed');
200
+ if (error instanceof Error && error.cause === undefined)
201
+ error.cause = rollbackError;
202
+ else
203
+ throw new AggregateError([error, rollbackError], 'Application startup and rollback failed');
204
+ }
205
+ throw error;
206
+ }
207
+ }
208
+ async stop() {
209
+ if (!this.started) {
210
+ this.clearOpenApiDumpTimer();
211
+ this.devConsole?.close();
212
+ return;
213
+ }
214
+ const errors = [];
215
+ const runStep = async (step) => {
216
+ try {
217
+ await step();
218
+ }
219
+ catch (error) {
220
+ errors.push(error);
221
+ }
222
+ };
223
+ await runStep(() => this.events.dispatch(lifecycle_1.onServerShutdownRequested, undefined));
224
+ this.clearOpenApiDumpTimer();
225
+ if (this.options.enableWorker) {
226
+ await runStep(() => this.container.get(services_1.WorkerRunnerService).shutdown());
227
+ await runStep(() => this.container.get(services_1.WorkerQueueRegistry).shutdown());
228
+ }
229
+ await runStep(() => this.removeSignalHandlers());
230
+ await runStep(() => this.devConsole?.close());
231
+ await runStep(() => this.http.close());
232
+ await runStep(() => this.events.dispatch(lifecycle_1.onServerShutdown, undefined));
233
+ await runStep(() => this.shutdownTelemetryIfInstalled());
234
+ this.started = false;
235
+ if (errors.length === 1)
236
+ throw errors[0];
237
+ if (errors.length > 1)
238
+ throw new AggregateError(errors, 'Application shutdown failed');
239
+ }
240
+ async run(port, host) {
241
+ if (await this.runEntrypointCommand(process.argv.slice(2)))
242
+ return;
243
+ await this.http.listen(port, host);
244
+ }
245
+ async runEntrypointCommand(args) {
246
+ const [command, ...rest] = args;
247
+ if (command) {
248
+ const customCommand = this.findCommand(command);
249
+ if (customCommand) {
250
+ const instance = this.container.resolve(customCommand.classType, customCommand.moduleId);
251
+ await this.invokeCommand(instance, rest);
252
+ return true;
253
+ }
254
+ }
255
+ switch (command) {
256
+ case 'server:start':
257
+ return false;
258
+ case 'worker:start':
259
+ await this.runWorkerEntrypoint();
260
+ return true;
261
+ case 'migrate':
262
+ case 'migrate:run':
263
+ await this.runMigrationsFromEntrypoint(rest);
264
+ return true;
265
+ case 'openapi:generate':
266
+ await this.runOpenApiGenerationFromEntrypoint(rest);
267
+ return true;
268
+ case undefined:
269
+ this.printEntrypointUsage();
270
+ return true;
271
+ default:
272
+ this.printEntrypointUsage(`Unknown entrypoint command: ${command}`);
273
+ return true;
274
+ }
275
+ }
276
+ printEntrypointUsage(message) {
277
+ if (message)
278
+ console.error(message);
279
+ const entrypoint = process.argv[1] || '<entrypoint>';
280
+ const customCommands = this.commandClasses
281
+ .map(commandClass => (0, commands_1.getCommandMetadata)(commandClass))
282
+ .filter((metadata) => !!metadata);
283
+ const customCommandLines = customCommands.map(metadata => ` ${metadata.name.padEnd(20)} ${metadata.description ?? ''}`.trimEnd()).join('\n');
284
+ console.error(`Usage: node ${entrypoint} <command> [options]
285
+
286
+ Commands:
287
+ server:start Start the HTTP server
288
+ worker:start Start the worker runner and HTTP health checks
289
+ migrate, migrate:run Run compiled database migrations
290
+ openapi:generate Write openapi.yaml from registered routes
291
+ ${customCommandLines ? `${customCommandLines}\n` : ''}
292
+
293
+ Examples:
294
+ node ${entrypoint} server:start
295
+ node ${entrypoint} worker:start
296
+ node ${entrypoint} migrate:run
297
+ node ${entrypoint} openapi:generate`);
298
+ process.exitCode = 1;
299
+ }
300
+ findCommand(command) {
301
+ const classType = this.commandClasses.find(commandClass => (0, commands_1.getCommandMetadata)(commandClass)?.name === command);
302
+ if (!classType)
303
+ return undefined;
304
+ return {
305
+ classType,
306
+ moduleId: this.commandModuleIds.get(classType)
307
+ };
308
+ }
309
+ async invokeCommand(instance, args) {
310
+ if (!instance || typeof instance.execute !== 'function') {
311
+ throw new Error(`Command ${instance?.constructor?.name ?? '<unknown>'} does not define execute()`);
312
+ }
313
+ await instance.execute(args);
314
+ }
315
+ async runWorkerEntrypoint() {
316
+ if (!this.options.enableWorker)
317
+ throw new Error('Cannot start worker without enableWorker: true');
318
+ this.forceWorkerRunner = true;
319
+ await this.http.listen();
320
+ await new Promise(() => { });
321
+ }
322
+ async runMigrationsFromEntrypoint(args) {
323
+ if (!this.options.db)
324
+ throw new Error('Cannot run migrations without a configured database provider');
325
+ const db = this.get(database_1.BaseDatabase);
326
+ try {
327
+ const migrationsDir = (0, migrations_entrypoint_1.sourceToDistMigrationsDir)((0, migrations_entrypoint_1.parseEntrypointMigrationsDir)(args));
328
+ const migrations = await (0, database_1.loadMigrationsFromDirectory)(migrationsDir);
329
+ const executions = await new database_1.MigrationRunner(db).run(migrations);
330
+ console.log(`Ran ${executions.length} migration(s).`);
331
+ }
332
+ finally {
333
+ await db.driver.close();
334
+ }
335
+ }
336
+ async runOpenApiGenerationFromEntrypoint(args) {
337
+ if (args.length)
338
+ throw new Error(`openapi:generate does not accept arguments: ${args.join(' ')}`);
339
+ const path = await (0, openapi_1.dumpOpenApiSchema)(this);
340
+ console.log(`Wrote OpenAPI schema to ${path}`);
341
+ }
342
+ async request(request, response = new http_1.MemoryHttpResponse()) {
343
+ return this.http.request(request, response);
344
+ }
345
+ shouldStartWorkerRunner() {
346
+ if (!this.options.enableWorker)
347
+ return false;
348
+ if (this.forceWorkerRunner)
349
+ return true;
350
+ if (this.config.ENABLE_JOB_RUNNER !== undefined)
351
+ return this.config.ENABLE_JOB_RUNNER === true;
352
+ return this.config.APP_ENV !== 'production';
353
+ }
354
+ createAutoConstructInstances() {
355
+ for (const registered of this.container.listRegisteredProviders()) {
356
+ const classType = getProviderClass(registered.provider);
357
+ if (classType && (0, lifecycle_1.isAutoConstructProvider)(classType)) {
358
+ this.container.resolve(registered.token, registered.moduleId);
359
+ }
360
+ }
361
+ }
362
+ scheduleOpenApiSchemaDump() {
363
+ this.clearOpenApiDumpTimer();
364
+ const logger = this.container.get(services_1.ScopedLogger).scoped('app');
365
+ this.openApiDumpTimer = setTimeout(() => {
366
+ this.openApiDumpTimer = undefined;
367
+ void (0, openapi_1.dumpOpenApiSchema)(this)
368
+ .then(path => logger.info(`OpenAPI schema written to: ${path}`))
369
+ .catch(error => logger.error('Failed to write OpenAPI schema', error));
370
+ }, 250);
371
+ this.openApiDumpTimer.unref?.();
372
+ }
373
+ clearOpenApiDumpTimer() {
374
+ if (!this.openApiDumpTimer)
375
+ return;
376
+ clearTimeout(this.openApiDumpTimer);
377
+ this.openApiDumpTimer = undefined;
378
+ }
379
+ registerDatabaseHealthcheck(dbClass) {
380
+ const healthcheck = this.container.get(health_1.HealthcheckService);
381
+ healthcheck.register('database', async () => {
382
+ const db = this.container.get(dbClass);
383
+ if (!db?.driver || typeof db.driver.connect !== 'function')
384
+ throw new Error('Configured db provider is not a BaseDatabase instance');
385
+ await db.driver.connect();
386
+ await db.rawFind((0, sql_1.sql) `SELECT 1`);
387
+ });
388
+ }
389
+ getControllerModuleIds(controllers) {
390
+ const controllerSet = new Set(controllers);
391
+ const moduleIds = new Map();
392
+ for (const registered of this.container.listRegisteredProviders()) {
393
+ if (typeof registered.token === 'function' && controllerSet.has(registered.token)) {
394
+ moduleIds.set(registered.token, registered.moduleId);
395
+ }
396
+ }
397
+ return moduleIds;
398
+ }
399
+ getCommandModuleIds(commands) {
400
+ const commandSet = new Set(commands);
401
+ const moduleIds = new Map();
402
+ for (const registered of this.container.listRegisteredProviders()) {
403
+ if (typeof registered.token === 'function' &&
404
+ commandSet.has(registered.token) &&
405
+ !moduleIds.has(registered.token)) {
406
+ moduleIds.set(registered.token, registered.moduleId);
407
+ }
408
+ }
409
+ return moduleIds;
410
+ }
411
+ registerDecoratedListeners() {
412
+ const registeredProviders = this.container.listRegisteredProviders();
413
+ for (const listenerClass of this.listenerClasses) {
414
+ const registered = registeredProviders.find(item => item.token === listenerClass);
415
+ const moduleId = registered?.moduleId;
416
+ for (const metadata of (0, events_1.getListenerMethodMetadata)(listenerClass.prototype)) {
417
+ this.events.listen(metadata.token, async (event) => {
418
+ const listener = moduleId === undefined ? this.container.get(listenerClass) : this.container.resolve(listenerClass, moduleId);
419
+ await listener[metadata.methodName](event);
420
+ }, metadata.order);
421
+ }
422
+ }
423
+ }
424
+ async shutdownTelemetryIfInstalled() {
425
+ if (!helpers_2.OtelState.tracerProvider && !helpers_2.OtelState.meterProvider)
426
+ return;
427
+ const { shutdownTelemetry } = await Promise.resolve().then(() => tslib_1.__importStar(require('../telemetry/otel/index')));
428
+ await shutdownTelemetry();
429
+ }
430
+ installSignalHandlers() {
431
+ if (this.signalHandlers)
432
+ return;
433
+ const signals = ['SIGTERM', 'SIGINT'];
434
+ this.signalHandlers = {};
435
+ for (const signal of signals) {
436
+ const handler = () => {
437
+ this.stop()
438
+ .catch(error => {
439
+ console.error(error);
440
+ process.exit(1);
441
+ })
442
+ .then(() => process.exit(0));
443
+ };
444
+ this.signalHandlers[signal] = handler;
445
+ process.once(signal, handler);
446
+ }
447
+ }
448
+ removeSignalHandlers() {
449
+ if (!this.signalHandlers)
450
+ return;
451
+ for (const [signal, handler] of Object.entries(this.signalHandlers)) {
452
+ if (handler)
453
+ process.off(signal, handler);
454
+ }
455
+ this.signalHandlers = undefined;
456
+ }
457
+ static __tsfType = _AppMetadata_1 = ({ kind: 16, name: "App", typeName: "App", classType: () => App, properties: [{ name: "container", type: { kind: 16, typeName: "Container", classType: () => (typeof require !== "undefined" ? require("../di/index").Container : undefined) }, optional: false }, { name: "events", type: { kind: 2 }, optional: false }, { name: "config", type: { kind: 2, typeName: "C" }, optional: false }, { name: "router", type: { kind: 16, typeName: "HttpRouter", classType: () => (typeof require !== "undefined" ? require("../http/index").HttpRouter : undefined) }, optional: false }, { name: "http", type: { kind: 16, typeName: "HttpServerRuntime", classType: () => (typeof require !== "undefined" ? require("../http/index").HttpServerRuntime : undefined), typeArguments: [{ kind: 2, typeName: "C" }] }, optional: false }], methods: [{ name: "get", parameters: [{ name: "token", type: { kind: 2, typeName: "Token", typeArguments: [{ kind: 2, typeName: "T" }] }, optional: false, default: false }], returnType: { kind: 2, typeName: "T" } }, { name: "getInjectorContext", parameters: [], returnType: { kind: 16, typeName: "Container", classType: () => (typeof require !== "undefined" ? require("../di/index").Container : undefined) } }, { name: "on", parameters: [{ name: "token", type: { kind: 16, typeName: "EventToken", classType: () => (typeof require !== "undefined" ? require("../events/index").EventToken : undefined), typeArguments: [{ kind: 16, typeName: "TEvent", classType: () => (typeof TEvent !== "undefined" ? TEvent : (typeof exports !== "undefined" ? exports.TEvent : undefined)) }] }, optional: false, default: false }, { name: "handler", type: { kind: 2, typeName: "(event: TEvent) => void | Promise<void>" }, optional: false, default: false }, { name: "order", type: { kind: 2 }, optional: true, default: true }], returnType: { kind: 2, typeName: "() => void" } }, { name: "start", parameters: [], returnType: { kind: 22, type: { kind: 3 } } }, { name: "stop", parameters: [], returnType: { kind: 22, type: { kind: 3 } } }, { name: "run", parameters: [{ name: "port", type: { kind: 7 }, optional: true, default: false }, { name: "host", type: { kind: 6 }, optional: true, default: false }], returnType: { kind: 22, type: { kind: 3 } } }, { name: "request", parameters: [{ name: "request", type: { kind: 16, typeName: "HttpRequest", classType: () => (typeof require !== "undefined" ? require("../http/index").HttpRequest : undefined) }, optional: false, default: false }, { name: "response", type: { kind: 16, typeName: "HttpResponse", classType: () => (typeof require !== "undefined" ? require("../http/index").HttpResponse : undefined) }, optional: true, default: true }], returnType: { kind: 22, type: { kind: 16, typeName: "HttpResponse", classType: () => (typeof require !== "undefined" ? require("../http/index").HttpResponse : undefined) } } }], hasConstructor: true, constructorParameters: [{ name: "options", type: { kind: 16, typeName: "CreateAppOptions", classType: () => (typeof CreateAppOptions !== "undefined" ? CreateAppOptions : (typeof exports !== "undefined" ? exports.CreateAppOptions : undefined)), typeArguments: [{ kind: 2, typeName: "C" }] }, optional: false, default: false }] });
458
+ }
459
+ exports.App = App;
460
+ _AppMetadata_1.classType = App;
461
+ App.__tsfType = _AppMetadata_1;
462
+ function createApp(options) {
463
+ const app = new App(options);
464
+ (0, current_1.setCurrentApp)(app);
465
+ return app;
466
+ }
467
+ function getProviderClass(provider) {
468
+ if (!(0, di_1.isStructuredProvider)(provider))
469
+ return (0, types_1.isClass)(provider) ? provider : undefined;
470
+ if ('useClass' in provider)
471
+ return provider.useClass;
472
+ return undefined;
473
+ }
474
+ function createControllerProvider(controller, app) {
475
+ if (controller === devconsole_1.DevConsoleController) {
476
+ if (!app)
477
+ throw new Error('DevConsoleController requires an app instance');
478
+ return {
479
+ provide: devconsole_1.DevConsoleController,
480
+ useFactory: () => new devconsole_1.DevConsoleController(app),
481
+ scope: 'request'
482
+ };
483
+ }
484
+ if (controller === openapi_1.OpenApiController) {
485
+ if (!app)
486
+ throw new Error('OpenApiController requires an app instance');
487
+ return {
488
+ provide: openapi_1.OpenApiController,
489
+ useFactory: () => new openapi_1.OpenApiController(app),
490
+ scope: 'request'
491
+ };
492
+ }
493
+ return {
494
+ provide: controller,
495
+ useClass: controller,
496
+ scope: 'request'
497
+ };
498
+ }
499
+ function createCommandProvider(command) {
500
+ return {
501
+ provide: command,
502
+ useClass: command
503
+ };
504
+ }
505
+ function uniqueClasses(classes) {
506
+ return [...new Set(classes)];
507
+ }
508
+ function addFrameworkProvidersToImports(imports) {
509
+ return imports.map(imported => addFrameworkProvidersToModule((0, di_2.normalizeModule)(imported)));
510
+ }
511
+ function addFrameworkProvidersToModule(definition) {
512
+ const controllers = definition.controllers ?? [];
513
+ assertHttpControllerClasses(controllers);
514
+ const commands = definition.commands ?? [];
515
+ assertCommandClasses(commands);
516
+ const controllerProviders = controllers.map(controller => createControllerProvider(controller));
517
+ const commandProviders = commands.map(command => createCommandProvider(command));
518
+ return {
519
+ ...definition,
520
+ imports: addFrameworkProvidersToImports(definition.imports ?? []),
521
+ providers: uniqueProviders([...(definition.providers ?? []), ...controllerProviders, ...commandProviders])
522
+ };
523
+ }
524
+ function collectImportedControllers(imports) {
525
+ const result = [];
526
+ for (const imported of imports) {
527
+ const definition = (0, di_2.normalizeModule)(imported);
528
+ result.push(...(definition.controllers ?? []), ...collectImportedControllers(definition.imports ?? []));
529
+ }
530
+ return result;
531
+ }
532
+ function collectImportedListeners(imports) {
533
+ const result = [];
534
+ for (const imported of imports) {
535
+ const definition = (0, di_2.normalizeModule)(imported);
536
+ result.push(...(definition.listeners ?? []), ...collectImportedListeners(definition.imports ?? []));
537
+ }
538
+ return result;
539
+ }
540
+ function collectImportedCommands(imports) {
541
+ const result = [];
542
+ for (const imported of imports) {
543
+ const definition = (0, di_2.normalizeModule)(imported);
544
+ result.push(...(definition.commands ?? []), ...collectImportedCommands(definition.imports ?? []));
545
+ }
546
+ return result;
547
+ }
548
+ function uniqueProviders(providers) {
549
+ const order = [];
550
+ const byToken = new Map();
551
+ for (const provider of providers) {
552
+ const token = (0, di_1.getProviderToken)(provider);
553
+ if (!byToken.has(token))
554
+ order.push(token);
555
+ byToken.set(token, provider);
556
+ }
557
+ return order.map(token => byToken.get(token));
558
+ }
559
+ function assertHttpControllerClasses(controllers) {
560
+ for (const controller of controllers) {
561
+ if (typeof controller === 'function' && (0, http_1.getControllerMetadata)(controller))
562
+ continue;
563
+ throw new Error(`Controller ${getClassName(controller)} passed to controllers must be decorated with @http.controller()`);
564
+ }
565
+ }
566
+ function assertCommandClasses(commands) {
567
+ for (const command of commands) {
568
+ if (typeof command === 'function' && (0, commands_1.getCommandMetadata)(command))
569
+ continue;
570
+ throw new Error(`Command ${getClassName(command)} passed to commands must be decorated with @cli.command() or @cli.controller()`);
571
+ }
572
+ }
573
+ function getClassName(classType) {
574
+ return typeof classType === 'function' && classType.name ? classType.name : '<anonymous>';
575
+ }
576
+ exports.__tsfTypeAliases = ({ "CreateAppOptions": { kind: 18, typeName: "CreateAppOptions", types: [{ kind: 20, name: "config", type: { kind: 12, types: [{ kind: 2, typeName: "ClassType", typeArguments: [{ kind: 2, typeName: "C" }] }, { kind: 4 }] }, optional: true }, { kind: 20, name: "defaultConfig", type: { kind: 12, types: [{ kind: 18, typeName: "Partial", utilityType: "Partial", typeArguments: [{ kind: 2, typeName: "C" }], utilityKeys: [], types: [] }, { kind: 4 }] }, optional: true }, { kind: 20, name: "imports", type: { kind: 12, types: [{ kind: 14, type: { kind: 12, types: [{ kind: 18, typeName: "ModuleDefinition", types: [{ kind: 20, name: "config", type: { kind: 12, types: [{ kind: 2, typeName: "ClassType", typeArguments: [{ kind: 2, typeName: "C" }] }, { kind: 4 }] }, optional: true }, { kind: 20, name: "defaultConfig", type: { kind: 12, types: [{ kind: 18, typeName: "Partial", utilityType: "Partial", typeArguments: [{ kind: 2, typeName: "C" }], utilityKeys: [], types: [] }, { kind: 4 }] }, optional: true }, { kind: 20, name: "imports", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "ModuleDefinition | ClassType | ModuleInstance", typeName: "ModuleLike" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "exports", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "Token" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "providers", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "Provider" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "controllers", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "ClassType" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "listeners", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "ClassType" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "commands", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "ClassType" } }, { kind: 4 }] }, optional: true }] }, { kind: 2, typeName: "ClassType" }, { kind: 18, typeName: "ModuleInstance", types: [{ kind: 20, name: "definition", type: { kind: 18, typeName: "ModuleDefinition", types: [{ kind: 20, name: "config", type: { kind: 12, types: [{ kind: 2, typeName: "ClassType", typeArguments: [{ kind: 2, typeName: "C" }] }, { kind: 4 }] }, optional: true }, { kind: 20, name: "defaultConfig", type: { kind: 12, types: [{ kind: 18, typeName: "Partial", utilityType: "Partial", typeArguments: [{ kind: 2, typeName: "C" }], utilityKeys: [], types: [] }, { kind: 4 }] }, optional: true }, { kind: 20, name: "imports", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "ModuleDefinition | ClassType | ModuleInstance", typeName: "ModuleLike" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "exports", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "Token" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "providers", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "Provider" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "controllers", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "ClassType" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "listeners", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "ClassType" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "commands", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "ClassType" } }, { kind: 4 }] }, optional: true }] }, optional: false }] }], typeName: "ModuleLike" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "exports", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "Token" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "providers", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "Provider" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "controllers", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "ClassType" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "listeners", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "ClassType" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "commands", type: { kind: 12, types: [{ kind: 14, type: { kind: 2, typeName: "ClassType" } }, { kind: 4 }] }, optional: true }, { kind: 20, name: "config", type: { kind: 12, types: [{ kind: 2, typeName: "ClassType", typeArguments: [{ kind: 2, typeName: "C" }] }, { kind: 4 }] }, optional: true }, { kind: 20, name: "defaultConfig", type: { kind: 12, types: [{ kind: 18, typeName: "Partial", utilityType: "Partial", typeArguments: [{ kind: 2, typeName: "C" }], utilityKeys: [], types: [] }, { kind: 4 }] }, optional: true }, { kind: 20, name: "db", type: { kind: 12, types: [{ kind: 2, typeName: "ClassType" }, { kind: 4 }] }, optional: true }, { kind: 20, name: "frameworkConfig", type: { kind: 12, types: [{ kind: 18, typeName: "Record", utilityType: "Record", typeArguments: [{ kind: 6 }, { kind: 2 }], index: { kind: 2 }, types: [] }, { kind: 4 }] }, optional: true }, { kind: 20, name: "serverConfig", type: { kind: 12, types: [{ kind: 18, typeName: "Record", utilityType: "Record", typeArguments: [{ kind: 6 }, { kind: 2 }], index: { kind: 2 }, types: [] }, { kind: 4 }] }, optional: true }, { kind: 20, name: "cors", type: { kind: 12, types: [{ kind: 2, typeName: "HttpCorsConfig", typeArguments: [{ kind: 2, typeName: "C" }] }, { kind: 4 }] }, optional: true }, { kind: 20, name: "staticFiles", type: { kind: 12, types: [{ kind: 12, types: [{ kind: 8 }, { kind: 18, typeName: "StaticFilesOptions", types: [{ kind: 20, name: "directory", type: { kind: 12, types: [{ kind: 6 }, { kind: 4 }] }, optional: true }, { kind: 20, name: "index", type: { kind: 12, types: [{ kind: 6 }, { kind: 4 }] }, optional: true }, { kind: 20, name: "spaFallback", type: { kind: 12, types: [{ kind: 6 }, { kind: 4 }] }, optional: true }] }] }, { kind: 4 }] }, optional: true }, { kind: 20, name: "httpResolvers", type: { kind: 12, types: [{ kind: 18, typeName: "Record", utilityType: "Record", typeArguments: [{ kind: 6 }, { kind: 2, typeName: "RouteParameterResolverInput" }], index: { kind: 2, typeName: "RouteParameterResolverInput" }, types: [], typeName: "RouteParameterResolverRegistry" }, { kind: 4 }] }, optional: true }, { kind: 20, name: "enableHealthcheck", type: { kind: 12, types: [{ kind: 8 }, { kind: 4 }] }, optional: true }, { kind: 20, name: "enableWorker", type: { kind: 12, types: [{ kind: 8 }, { kind: 4 }] }, optional: true }, { kind: 20, name: "enableDkRpc", type: { kind: 12, types: [{ kind: 8 }, { kind: 4 }] }, optional: true }] }, "RegisteredCommand": { kind: 18, typeName: "RegisteredCommand", types: [{ kind: 20, name: "classType", type: { kind: 2, typeName: "ClassType" }, optional: false }, { kind: 20, name: "moduleId", type: { kind: 12, types: [{ kind: 7 }, { kind: 4 }] }, optional: true }] } });
577
+ //# sourceMappingURL=base.js.map