raiton 0.0.2 → 1.0.0-alpha.2

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 (435) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +98 -1
  3. package/build/bin/index.mjs +6816 -47
  4. package/build/raiton-1.0.0-alpha.2.tgz +0 -0
  5. package/package.json +22 -35
  6. package/source/bin/bootstrapper.ts +15 -0
  7. package/source/bin/cli-tools.ts +73 -0
  8. package/source/bin/cli.ts +12 -0
  9. package/source/bin/index.ts +6 -0
  10. package/source/commands/artifact.command.ts +28 -0
  11. package/source/commands/build.command.ts +31 -0
  12. package/source/commands/develop.command.ts +47 -0
  13. package/source/commands/grafts.command.ts +27 -0
  14. package/source/commands/start.command.ts +28 -0
  15. package/source/core/application.ts +115 -0
  16. package/source/core/artifacts/artifact.ts +109 -0
  17. package/source/core/artifacts/artifacts.ts +10 -0
  18. package/source/core/artifacts/index.ts +1 -0
  19. package/source/core/artifacts/runner.ts +3 -0
  20. package/source/core/builder.ts +138 -0
  21. package/source/core/bytes.util.ts +17 -0
  22. package/source/core/command.ts +24 -0
  23. package/source/core/commands.ts +44 -0
  24. package/source/core/config/config.ts +51 -0
  25. package/source/core/config/define.ts +13 -0
  26. package/source/core/config/index.ts +2 -0
  27. package/source/core/context.ts +33 -0
  28. package/source/core/controller/builder.ts +38 -0
  29. package/source/core/controller/compiler.ts +22 -0
  30. package/source/core/controller/index.ts +3 -0
  31. package/source/core/controller/metadata.ts +13 -0
  32. package/source/core/directories.ts +30 -0
  33. package/source/core/helpers/index.ts +1 -0
  34. package/source/core/helpers/raiton.ts +3 -0
  35. package/source/core/hmr.ts +106 -0
  36. package/source/core/hooks.ts +28 -0
  37. package/source/core/index.ts +13 -0
  38. package/source/core/injection/index.ts +1 -0
  39. package/source/core/injection/injection.ts +157 -0
  40. package/source/core/middleware/compose.ts +40 -0
  41. package/source/core/middleware/index.ts +2 -0
  42. package/source/core/middleware/pipeline.ts +27 -0
  43. package/source/core/plugins/index.ts +2 -0
  44. package/source/core/plugins/plugin.ts +8 -0
  45. package/source/core/plugins/scope.ts +46 -0
  46. package/source/core/process.util.ts +12 -0
  47. package/source/core/raiton.ts +21 -0
  48. package/source/core/router/handler.ts +59 -0
  49. package/source/core/router/index.ts +4 -0
  50. package/source/core/router/matcher.ts +51 -0
  51. package/source/core/router/route.ts +63 -0
  52. package/source/core/router/router.ts +31 -0
  53. package/source/core/server.ts +26 -0
  54. package/source/core/thread.ts +87 -0
  55. package/source/env.d.ts +3 -0
  56. package/source/requirements.ts +27 -0
  57. package/source/sdk/artifacts.ts +55 -0
  58. package/source/sdk/constants/decorators.constant.ts +7 -0
  59. package/source/sdk/constants/index.ts +2 -0
  60. package/source/sdk/constants/microservices.constant.ts +4 -0
  61. package/source/sdk/controllers.ts +4 -0
  62. package/source/sdk/data-transfer-object.ts +7 -0
  63. package/source/sdk/decorators/access-guard.decorator.ts +9 -0
  64. package/source/sdk/decorators/controllable.decorator.ts +20 -0
  65. package/source/sdk/decorators/index.ts +5 -0
  66. package/source/sdk/decorators/injection.decorator.ts +46 -0
  67. package/source/sdk/decorators/middleware.decorator.ts +15 -0
  68. package/source/sdk/decorators/parametrable.ts +24 -0
  69. package/source/sdk/decorators/payload.decorator.ts +77 -0
  70. package/source/sdk/decorators/routable.decorator.ts +48 -0
  71. package/source/sdk/encryption.ts +155 -0
  72. package/source/sdk/enums/encrypted.enum.ts +13 -0
  73. package/source/sdk/enums/event.message.enum.ts +4 -0
  74. package/{build/sdk/enums/http-parameters.enum.d.ts → source/sdk/enums/http-parameters.enum.ts} +3 -5
  75. package/source/sdk/enums/http.enum.ts +10 -0
  76. package/source/sdk/enums/index.ts +6 -0
  77. package/{build/sdk/enums/runtime.enum.d.ts → source/sdk/enums/runtime.enum.ts} +2 -4
  78. package/{build/sdk/enums/timestamp.enum.d.ts → source/sdk/enums/timestamp.enum.ts} +2 -4
  79. package/source/sdk/env.ts +40 -0
  80. package/source/sdk/index.ts +6 -0
  81. package/source/sdk/json.ts +55 -0
  82. package/source/sdk/plugins/body-parser.plugin.ts +119 -0
  83. package/source/sdk/plugins/index.ts +2 -0
  84. package/source/sdk/plugins/security/body-limit.ts +19 -0
  85. package/source/sdk/plugins/security/cors.ts +44 -0
  86. package/source/sdk/plugins/security/headers.ts +14 -0
  87. package/source/sdk/plugins/security/index.ts +13 -0
  88. package/source/sdk/plugins/security/method-guard.ts +14 -0
  89. package/source/sdk/plugins/security/rate-limit.ts +42 -0
  90. package/source/sdk/repositories.ts +14 -0
  91. package/source/sdk/request.ts +3 -0
  92. package/source/sdk/responses.ts +45 -0
  93. package/source/sdk/runtime/bun/server.ts +72 -0
  94. package/source/sdk/runtime/deno/server.ts +53 -0
  95. package/source/sdk/runtime/index.ts +47 -0
  96. package/source/sdk/runtime/node/server.ts +60 -0
  97. package/source/sdk/runtime/web/server.ts +57 -0
  98. package/{build/sdk/schemes.d.ts → source/sdk/schemes.ts} +91 -33
  99. package/source/sdk/services.ts +9 -0
  100. package/{build/sdk/throwable.d.ts → source/sdk/throwable.ts} +35 -12
  101. package/source/sdk/utilities/alias-path.util.ts +49 -0
  102. package/source/sdk/utilities/artifacts.util.ts +62 -0
  103. package/source/sdk/utilities/callable.util.ts +27 -0
  104. package/source/sdk/utilities/controller.util.ts +8 -0
  105. package/source/sdk/utilities/index.ts +7 -0
  106. package/source/sdk/utilities/json.util.ts +21 -0
  107. package/source/sdk/utilities/path.util.ts +19 -0
  108. package/source/sdk/utilities/url.ts +5 -0
  109. package/source/sdk/utilities/utilities.util.ts +25 -0
  110. package/source/types/access-guards.ts +4 -0
  111. package/{build/types/application.d.ts → source/types/application.ts} +23 -7
  112. package/source/types/artifact.ts +40 -0
  113. package/source/types/builder.ts +48 -0
  114. package/source/types/config.ts +7 -0
  115. package/source/types/controller.ts +34 -0
  116. package/source/types/contruct.ts +3 -0
  117. package/source/types/core.ts +28 -0
  118. package/source/types/data-transfer-object.ts +4 -0
  119. package/{build/types/directory.d.ts → source/types/directory.ts} +4 -4
  120. package/source/types/encryption.ts +17 -0
  121. package/source/types/generic.ts +3 -0
  122. package/{build/types/hmr.d.ts → source/types/hmr.ts} +19 -5
  123. package/source/types/http-responses.ts +8 -0
  124. package/source/types/index.ts +26 -0
  125. package/source/types/injection.ts +13 -0
  126. package/source/types/middleware.ts +18 -0
  127. package/source/types/parseable.ts +7 -0
  128. package/source/types/plugin.ts +10 -0
  129. package/source/types/raiton.ts +9 -0
  130. package/source/types/responses.ts +10 -0
  131. package/source/types/router.ts +11 -0
  132. package/source/types/runtime.ts +53 -0
  133. package/{build/types/scheme.d.ts → source/types/scheme.ts} +33 -8
  134. package/source/types/server.ts +12 -0
  135. package/source/types/thread.ts +31 -0
  136. package/source/types/utilities.ts +4 -0
  137. package/source/types/values.ts +3 -0
  138. package/.releaserc.json +0 -45
  139. package/build/bin/bootstrapper.d.ts +0 -5
  140. package/build/bin/bootstrapper.mjs +0 -46
  141. package/build/bin/cli.d.ts +0 -5
  142. package/build/bin/cli.mjs +0 -6
  143. package/build/bin/index.d.ts +0 -1
  144. package/build/chunk-3PWMRP6G.mjs +0 -16
  145. package/build/chunk-52JR26TI.mjs +0 -29
  146. package/build/chunk-5LNOA4SK.mjs +0 -16
  147. package/build/chunk-AUGL35CF.mjs +0 -24
  148. package/build/chunk-BVILWYAP.mjs +0 -14
  149. package/build/chunk-BYYJRCB4.mjs +0 -10
  150. package/build/chunk-FFRJ4AUA.mjs +0 -16
  151. package/build/chunk-GPJSLV3Q.mjs +0 -50
  152. package/build/chunk-HVFHDVAH.mjs +0 -20
  153. package/build/chunk-IOCHNQMF.mjs +0 -13
  154. package/build/chunk-JATYBWHL.mjs +0 -36
  155. package/build/chunk-JWNBO7XV.mjs +0 -53
  156. package/build/chunk-K4IQQ2KF.mjs +0 -55
  157. package/build/chunk-K4KLOLSO.mjs +0 -645
  158. package/build/chunk-M2RZZJQR.mjs +0 -27
  159. package/build/chunk-MLFGBJDV.mjs +0 -12
  160. package/build/chunk-NB62GSFI.mjs +0 -27
  161. package/build/chunk-O7R3NJQN.mjs +0 -19
  162. package/build/chunk-P3IRIFPT.mjs +0 -53
  163. package/build/chunk-QFSXFOEN.mjs +0 -56
  164. package/build/chunk-QHCQ4AUA.mjs +0 -14
  165. package/build/chunk-QI7OFSXB.mjs +0 -37
  166. package/build/chunk-RVH2YBNU.mjs +0 -111
  167. package/build/chunk-RXG7754R.mjs +0 -25
  168. package/build/chunk-S3ONGVNZ.mjs +0 -11
  169. package/build/chunk-SRR4467I.mjs +0 -29
  170. package/build/chunk-T6L55AUG.mjs +0 -32
  171. package/build/chunk-TOJFTPAY.mjs +0 -83
  172. package/build/chunk-UAPCBU3J.mjs +0 -12
  173. package/build/chunk-UCHBN3DV.mjs +0 -52
  174. package/build/chunk-UWM46HLZ.mjs +0 -18
  175. package/build/chunk-UZFCGVHP.mjs +0 -8
  176. package/build/chunk-VQINCGLQ.mjs +0 -59
  177. package/build/chunk-VRL4S7UF.mjs +0 -74
  178. package/build/chunk-WAWFDMOH.mjs +0 -72
  179. package/build/chunk-X3JFRRRQ.mjs +0 -45
  180. package/build/chunk-XFBLELHI.mjs +0 -34
  181. package/build/chunk-XIGE72LC.mjs +0 -34
  182. package/build/chunk-XW7EPAD7.mjs +0 -0
  183. package/build/chunk-YGIZFKLJ.mjs +0 -20
  184. package/build/chunk-YRVIAORI.mjs +0 -8
  185. package/build/chunk-YXU5W2CB.mjs +0 -12
  186. package/build/commands/artifact.command.d.ts +0 -14
  187. package/build/commands/artifact.command.mjs +0 -59
  188. package/build/commands/build.command.d.ts +0 -14
  189. package/build/commands/build.command.mjs +0 -65
  190. package/build/commands/develop.command.d.ts +0 -13
  191. package/build/commands/develop.command.mjs +0 -75
  192. package/build/commands/grafts.command.d.ts +0 -12
  193. package/build/commands/grafts.command.mjs +0 -58
  194. package/build/commands/start.command.d.ts +0 -12
  195. package/build/commands/start.command.mjs +0 -64
  196. package/build/core/application.d.ts +0 -27
  197. package/build/core/application.mjs +0 -124
  198. package/build/core/artifact.d.ts +0 -19
  199. package/build/core/artifact.mjs +0 -133
  200. package/build/core/builder.d.ts +0 -35
  201. package/build/core/builder.mjs +0 -45
  202. package/build/core/bytes.util.d.ts +0 -6
  203. package/build/core/bytes.util.mjs +0 -8
  204. package/build/core/command.d.ts +0 -15
  205. package/build/core/command.mjs +0 -6
  206. package/build/core/commands.d.ts +0 -13
  207. package/build/core/commands.mjs +0 -7
  208. package/build/core/config.d.ts +0 -10
  209. package/build/core/config.mjs +0 -7
  210. package/build/core/context.d.ts +0 -15
  211. package/build/core/context.mjs +0 -6
  212. package/build/core/controller/builder.d.ts +0 -10
  213. package/build/core/controller/builder.mjs +0 -45
  214. package/build/core/controller/compiler.d.ts +0 -6
  215. package/build/core/controller/compiler.mjs +0 -45
  216. package/build/core/controller/index.d.ts +0 -13
  217. package/build/core/controller/index.mjs +0 -50
  218. package/build/core/controller/metadata.d.ts +0 -10
  219. package/build/core/controller/metadata.mjs +0 -6
  220. package/build/core/directories.d.ts +0 -11
  221. package/build/core/directories.mjs +0 -8
  222. package/build/core/hmr.d.ts +0 -22
  223. package/build/core/hmr.mjs +0 -6
  224. package/build/core/hooks.d.ts +0 -12
  225. package/build/core/hooks.mjs +0 -6
  226. package/build/core/index.d.ts +0 -41
  227. package/build/core/index.mjs +0 -100
  228. package/build/core/middleware/compose.d.ts +0 -8
  229. package/build/core/middleware/compose.mjs +0 -6
  230. package/build/core/middleware/index.d.ts +0 -6
  231. package/build/core/middleware/index.mjs +0 -11
  232. package/build/core/middleware/pipeline.d.ts +0 -14
  233. package/build/core/middleware/pipeline.mjs +0 -7
  234. package/build/core/plugins/index.d.ts +0 -14
  235. package/build/core/plugins/index.mjs +0 -48
  236. package/build/core/plugins/plugin.d.ts +0 -17
  237. package/build/core/plugins/plugin.mjs +0 -6
  238. package/build/core/plugins/scope.d.ts +0 -24
  239. package/build/core/plugins/scope.mjs +0 -45
  240. package/build/core/process.util.d.ts +0 -3
  241. package/build/core/process.util.mjs +0 -6
  242. package/build/core/raiton.d.ts +0 -20
  243. package/build/core/raiton.mjs +0 -6
  244. package/build/core/router/handler.d.ts +0 -10
  245. package/build/core/router/handler.mjs +0 -45
  246. package/build/core/router/index.d.ts +0 -12
  247. package/build/core/router/index.mjs +0 -54
  248. package/build/core/router/matcher.d.ts +0 -21
  249. package/build/core/router/matcher.mjs +0 -6
  250. package/build/core/router/route.d.ts +0 -20
  251. package/build/core/router/route.mjs +0 -6
  252. package/build/core/router/router.d.ts +0 -16
  253. package/build/core/router/router.mjs +0 -8
  254. package/build/core/thread.d.ts +0 -30
  255. package/build/core/thread.mjs +0 -45
  256. package/build/env.d.d.ts +0 -2
  257. package/build/env.d.mjs +0 -0
  258. package/build/raiton-0.0.2.tgz +0 -0
  259. package/build/requirements.d.ts +0 -2
  260. package/build/requirements.mjs +0 -19
  261. package/build/sdk/artifacts.d.ts +0 -13
  262. package/build/sdk/artifacts.mjs +0 -45
  263. package/build/sdk/constants/decorators.constant.d.ts +0 -11
  264. package/build/sdk/constants/decorators.constant.mjs +0 -6
  265. package/build/sdk/constants/index.d.ts +0 -2
  266. package/build/sdk/constants/index.mjs +0 -11
  267. package/build/sdk/constants/microservices.constant.d.ts +0 -5
  268. package/build/sdk/constants/microservices.constant.mjs +0 -6
  269. package/build/sdk/controllers.d.ts +0 -4
  270. package/build/sdk/controllers.mjs +0 -6
  271. package/build/sdk/data-transfer-object.d.ts +0 -7
  272. package/build/sdk/data-transfer-object.mjs +0 -7
  273. package/build/sdk/decorators/access-guard.decorator.d.ts +0 -2
  274. package/build/sdk/decorators/access-guard.decorator.mjs +0 -0
  275. package/build/sdk/decorators/controllable.d.ts +0 -3
  276. package/build/sdk/decorators/controllable.mjs +0 -45
  277. package/build/sdk/decorators/controllers.decorator.d.ts +0 -2
  278. package/build/sdk/decorators/controllers.decorator.mjs +0 -0
  279. package/build/sdk/decorators/grafts.decorator.d.ts +0 -2
  280. package/build/sdk/decorators/grafts.decorator.mjs +0 -0
  281. package/build/sdk/decorators/index.d.ts +0 -3
  282. package/build/sdk/decorators/index.mjs +0 -75
  283. package/build/sdk/decorators/parameters.decorator.d.ts +0 -2
  284. package/build/sdk/decorators/parameters.decorator.mjs +0 -0
  285. package/build/sdk/decorators/parametrable.d.ts +0 -9
  286. package/build/sdk/decorators/parametrable.mjs +0 -57
  287. package/build/sdk/decorators/payload.decorator.d.ts +0 -2
  288. package/build/sdk/decorators/payload.decorator.mjs +0 -0
  289. package/build/sdk/decorators/routable.d.ts +0 -10
  290. package/build/sdk/decorators/routable.mjs +0 -59
  291. package/build/sdk/dependency-container.d.ts +0 -19
  292. package/build/sdk/dependency-container.mjs +0 -46
  293. package/build/sdk/encryption.d.ts +0 -27
  294. package/build/sdk/encryption.mjs +0 -141
  295. package/build/sdk/enums/encrypted.enum.d.ts +0 -15
  296. package/build/sdk/enums/encrypted.enum.mjs +0 -6
  297. package/build/sdk/enums/event.message.enum.d.ts +0 -6
  298. package/build/sdk/enums/event.message.enum.mjs +0 -6
  299. package/build/sdk/enums/http-parameters.enum.mjs +0 -6
  300. package/build/sdk/enums/http.enum.d.ts +0 -12
  301. package/build/sdk/enums/http.enum.mjs +0 -6
  302. package/build/sdk/enums/index.d.ts +0 -6
  303. package/build/sdk/enums/index.mjs +0 -27
  304. package/build/sdk/enums/runtime.enum.mjs +0 -6
  305. package/build/sdk/enums/timestamp.enum.mjs +0 -6
  306. package/build/sdk/env.d.ts +0 -6
  307. package/build/sdk/env.mjs +0 -74
  308. package/build/sdk/fastify.d.ts +0 -11
  309. package/build/sdk/fastify.mjs +0 -9
  310. package/build/sdk/grafts.d.ts +0 -15
  311. package/build/sdk/grafts.mjs +0 -71
  312. package/build/sdk/index.d.ts +0 -34
  313. package/build/sdk/index.mjs +0 -126
  314. package/build/sdk/json.d.ts +0 -17
  315. package/build/sdk/json.mjs +0 -87
  316. package/build/sdk/plugins/body-parser.plugin.d.ts +0 -17
  317. package/build/sdk/plugins/body-parser.plugin.mjs +0 -7
  318. package/build/sdk/plugins/index.d.ts +0 -17
  319. package/build/sdk/plugins/index.mjs +0 -48
  320. package/build/sdk/plugins/security/body-limit.d.ts +0 -17
  321. package/build/sdk/plugins/security/body-limit.mjs +0 -45
  322. package/build/sdk/plugins/security/cors.d.ts +0 -22
  323. package/build/sdk/plugins/security/cors.mjs +0 -45
  324. package/build/sdk/plugins/security/headers.d.ts +0 -17
  325. package/build/sdk/plugins/security/headers.mjs +0 -45
  326. package/build/sdk/plugins/security/index.d.ts +0 -25
  327. package/build/sdk/plugins/security/index.mjs +0 -45
  328. package/build/sdk/plugins/security/method-guard.d.ts +0 -17
  329. package/build/sdk/plugins/security/method-guard.mjs +0 -45
  330. package/build/sdk/plugins/security/rate-limit.d.ts +0 -21
  331. package/build/sdk/plugins/security/rate-limit.mjs +0 -45
  332. package/build/sdk/repositories.d.ts +0 -7
  333. package/build/sdk/repositories.mjs +0 -17
  334. package/build/sdk/request.d.ts +0 -4
  335. package/build/sdk/request.mjs +0 -6
  336. package/build/sdk/responses.d.ts +0 -8
  337. package/build/sdk/responses.mjs +0 -20
  338. package/build/sdk/routes.d.ts +0 -7
  339. package/build/sdk/routes.mjs +0 -61
  340. package/build/sdk/runtime/bun/server.d.ts +0 -6
  341. package/build/sdk/runtime/bun/server.mjs +0 -6
  342. package/build/sdk/runtime/deno/server.d.ts +0 -6
  343. package/build/sdk/runtime/deno/server.mjs +0 -6
  344. package/build/sdk/runtime/index.d.ts +0 -15
  345. package/build/sdk/runtime/index.mjs +0 -11
  346. package/build/sdk/runtime/node/reply.d.ts +0 -2
  347. package/build/sdk/runtime/node/reply.mjs +0 -0
  348. package/build/sdk/runtime/node/request.d.ts +0 -2
  349. package/build/sdk/runtime/node/request.mjs +0 -0
  350. package/build/sdk/runtime/node/server.d.ts +0 -6
  351. package/build/sdk/runtime/node/server.mjs +0 -6
  352. package/build/sdk/runtime/web/server.d.ts +0 -6
  353. package/build/sdk/runtime/web/server.mjs +0 -6
  354. package/build/sdk/schemes.mjs +0 -129
  355. package/build/sdk/services.d.ts +0 -8
  356. package/build/sdk/services.mjs +0 -10
  357. package/build/sdk/throwable.mjs +0 -14
  358. package/build/sdk/utilities/alias-path.util.d.ts +0 -9
  359. package/build/sdk/utilities/alias-path.util.mjs +0 -6
  360. package/build/sdk/utilities/artifacts.util.d.ts +0 -3
  361. package/build/sdk/utilities/artifacts.util.mjs +0 -45
  362. package/build/sdk/utilities/callable.util.d.ts +0 -3
  363. package/build/sdk/utilities/callable.util.mjs +0 -6
  364. package/build/sdk/utilities/controller.util.d.ts +0 -3
  365. package/build/sdk/utilities/controller.util.mjs +0 -6
  366. package/build/sdk/utilities/index.d.ts +0 -7
  367. package/build/sdk/utilities/index.mjs +0 -62
  368. package/build/sdk/utilities/json.util.d.ts +0 -3
  369. package/build/sdk/utilities/json.util.mjs +0 -6
  370. package/build/sdk/utilities/parameters-arguments.util.d.ts +0 -2
  371. package/build/sdk/utilities/parameters-arguments.util.mjs +0 -0
  372. package/build/sdk/utilities/url.d.ts +0 -3
  373. package/build/sdk/utilities/url.mjs +0 -7
  374. package/build/sdk/utilities/utilities.util.d.ts +0 -6
  375. package/build/sdk/utilities/utilities.util.mjs +0 -8
  376. package/build/types/access-guards.d.ts +0 -6
  377. package/build/types/access-guards.mjs +0 -0
  378. package/build/types/application.mjs +0 -0
  379. package/build/types/artifact.d.ts +0 -21
  380. package/build/types/artifact.mjs +0 -0
  381. package/build/types/builder.d.ts +0 -32
  382. package/build/types/builder.mjs +0 -0
  383. package/build/types/config.d.ts +0 -6
  384. package/build/types/config.mjs +0 -0
  385. package/build/types/controller.d.ts +0 -25
  386. package/build/types/controller.mjs +0 -0
  387. package/build/types/contruct.d.ts +0 -3
  388. package/build/types/contruct.mjs +0 -0
  389. package/build/types/core.d.ts +0 -15
  390. package/build/types/core.mjs +0 -0
  391. package/build/types/data-transfer-object.d.ts +0 -5
  392. package/build/types/data-transfer-object.mjs +0 -0
  393. package/build/types/dependency-container.d.ts +0 -20
  394. package/build/types/dependency-container.mjs +0 -0
  395. package/build/types/directory.mjs +0 -0
  396. package/build/types/encryption.d.ts +0 -16
  397. package/build/types/encryption.mjs +0 -0
  398. package/build/types/generic.d.ts +0 -4
  399. package/build/types/generic.mjs +0 -0
  400. package/build/types/hmr.mjs +0 -0
  401. package/build/types/http-responses.d.ts +0 -10
  402. package/build/types/http-responses.mjs +0 -0
  403. package/build/types/index.d.ts +0 -45
  404. package/build/types/index.mjs +0 -0
  405. package/build/types/middleware.d.ts +0 -12
  406. package/build/types/middleware.mjs +0 -0
  407. package/build/types/parameters.d.ts +0 -19
  408. package/build/types/parameters.mjs +0 -0
  409. package/build/types/parseable.d.ts +0 -5
  410. package/build/types/parseable.mjs +0 -0
  411. package/build/types/payload.d.ts +0 -6
  412. package/build/types/payload.mjs +0 -0
  413. package/build/types/plugin.d.ts +0 -20
  414. package/build/types/plugin.mjs +0 -0
  415. package/build/types/raiton.d.ts +0 -12
  416. package/build/types/raiton.mjs +0 -0
  417. package/build/types/repositories.d.ts +0 -8
  418. package/build/types/repositories.mjs +0 -0
  419. package/build/types/router.d.ts +0 -14
  420. package/build/types/router.mjs +0 -0
  421. package/build/types/runtime.d.ts +0 -37
  422. package/build/types/runtime.mjs +0 -0
  423. package/build/types/scheme.mjs +0 -0
  424. package/build/types/server.d.ts +0 -57
  425. package/build/types/server.mjs +0 -0
  426. package/build/types/services.d.ts +0 -8
  427. package/build/types/services.mjs +0 -0
  428. package/build/types/thread.d.ts +0 -24
  429. package/build/types/thread.mjs +0 -0
  430. package/build/types/utilities.d.ts +0 -6
  431. package/build/types/utilities.mjs +0 -0
  432. package/build/types/values.d.ts +0 -4
  433. package/build/types/values.mjs +0 -0
  434. /package/{build/chunk-4OWCGDUD.mjs → source/sdk/runtime/node/reply.ts} +0 -0
  435. /package/{build/chunk-DIWD7ZCJ.mjs → source/sdk/runtime/node/request.ts} +0 -0
@@ -0,0 +1,55 @@
1
+ import {ParseableEntriesType, ParseablePrimitiveType} from "../types/parseable";
2
+ import {stabilizeJson} from "./utilities";
3
+
4
+
5
+ export class Json<T extends ParseableEntriesType> {
6
+
7
+ public readonly stack: Map<keyof T, T[keyof T]> = new Map();
8
+
9
+ constructor(json: ParseablePrimitiveType<T>) {
10
+ this.records(stabilizeJson<T>(json));
11
+ }
12
+
13
+ records(data: T): this {
14
+ for (const [key, value] of Object.entries(data))
15
+ this.stack.set(key as keyof T, value as T[keyof T]);
16
+ return this;
17
+ }
18
+
19
+ get<K extends keyof T>(key: K): T[K] {
20
+ return this.stack.get(key) as T[K];
21
+ }
22
+
23
+ set<K extends keyof T>(key: K, value: T[K]): this {
24
+ this.stack.set(key, value);
25
+ return this;
26
+ }
27
+
28
+ remove<K extends keyof T>(key: K): this {
29
+ this.stack.delete(key);
30
+ return this;
31
+ }
32
+
33
+ clear(): this {
34
+ this.stack.clear();
35
+ return this;
36
+ }
37
+
38
+ render(): T {
39
+ return Object.fromEntries(this.stack) as any as T;
40
+ }
41
+
42
+ static stabilize<T>(json: string | T | null): T {
43
+ return stabilizeJson<T>(json);
44
+ }
45
+
46
+ static from<T extends ParseableEntriesType>(data: T): Json<T> {
47
+ const json = new Json<T>(null);
48
+ json.records(data);
49
+ return json;
50
+ }
51
+
52
+ static records<T extends ParseableEntriesType>(support: Json<T>, data: ParseablePrimitiveType<T>): Json<T> {
53
+ return support.records(this.stabilize(data));
54
+ }
55
+ }
@@ -0,0 +1,119 @@
1
+ import type {MiddlewareParameters, Plugin} from "@/types";
2
+ import {RequestContext} from "@/core/context";
3
+ import {Logger} from "@protorians/logger";
4
+ import {tryParseJson} from "@/sdk/utilities/json.util";
5
+
6
+ export function bodyParserPlugin(): Plugin {
7
+ return {
8
+ name: 'body-parser-plugin',
9
+ setup: (scope) => {
10
+ scope.use(async ({context, next}: MiddlewareParameters) => {
11
+ const contentType = context.req.headers.get('content-type') || '';
12
+
13
+ if (context.req.body && !context.state.bodyParsed) {
14
+ try {
15
+ const rawBody = await readRawBody(context.req.body);
16
+ const bodyString = decode(rawBody);
17
+
18
+ readQueryBody(context);
19
+ readJsonBody(context, contentType, bodyString);
20
+ readUrlEncodedBody(context, contentType, bodyString);
21
+ readTextBody(context, contentType, bodyString);
22
+
23
+ if (!context.state.bodyParsed) {
24
+ context.req.body = rawBody as unknown as any;
25
+ context.state.bodyParsed = true;
26
+ }
27
+
28
+ } catch (e) {
29
+ Logger.error('Error parsing body:', e);
30
+ }
31
+ }
32
+
33
+ await next();
34
+ });
35
+ }
36
+ };
37
+ }
38
+
39
+ function readJsonBody(ctx: RequestContext, contentType: string, body: any) {
40
+ if (contentType.includes('application/json')) {
41
+ ctx.req.body = tryParseJson(body) || {} as unknown as any;
42
+ ctx.state.bodyParsed = true;
43
+ }
44
+ }
45
+
46
+ function readUrlEncodedBody(ctx: RequestContext, contentType: string, body: string) {
47
+ if (contentType.includes('application/x-www-form-urlencoded')) {
48
+ const params = new URLSearchParams(body);
49
+ const record: Record<string, any> = {};
50
+ params.forEach((value, key) => {
51
+ record[key] = value;
52
+ });
53
+ ctx.req.body = record as unknown as any;
54
+ ctx.state.bodyParsed = true;
55
+ }
56
+ }
57
+
58
+ function readTextBody(ctx: RequestContext, contentType: string, body: string) {
59
+ if (contentType.includes('text/')) {
60
+ ctx.req.body = body as unknown as any;
61
+ ctx.state.bodyParsed = true;
62
+ }
63
+ }
64
+
65
+ function readQueryBody(ctx: RequestContext) {
66
+ const searchParams = new URLSearchParams(ctx.req.url.split('?')[1] || '');
67
+ const record = {} as Record<string, any>;
68
+ searchParams.forEach((value, key) => record[key] = value);
69
+ ctx.req.query = record as unknown as any;
70
+ }
71
+
72
+ async function readRawBody(body: any): Promise<Uint8Array | string> {
73
+ if (body instanceof ReadableStream) {
74
+ const reader = body.getReader();
75
+ const chunks: Uint8Array[] = [];
76
+ while (true) {
77
+ const {done, value} = await reader.read();
78
+ if (done) break;
79
+ chunks.push(value);
80
+ }
81
+ const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0);
82
+ const result = new Uint8Array(totalLength);
83
+ let offset = 0;
84
+ for (const chunk of chunks) {
85
+ result.set(chunk, offset);
86
+ offset += chunk.length;
87
+ }
88
+ return result;
89
+ }
90
+
91
+ if (typeof body === 'object' && body !== null && 'on' in body && typeof body.on === 'function') {
92
+ return new Promise((resolve, reject) => {
93
+ const chunks: any[] = [];
94
+ body.on('data', (chunk: any) => chunks.push(chunk));
95
+ body.on('end', () => {
96
+ if (chunks.length > 0 && typeof chunks[0] === 'string') {
97
+ resolve(chunks.join(''));
98
+ } else {
99
+ const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0);
100
+ const result = new Uint8Array(totalLength);
101
+ let offset = 0;
102
+ for (const chunk of chunks) {
103
+ result.set(new Uint8Array(chunk), offset);
104
+ offset += chunk.length;
105
+ }
106
+ resolve(result);
107
+ }
108
+ });
109
+ body.on('error', reject);
110
+ });
111
+ }
112
+
113
+ return body;
114
+ }
115
+
116
+ function decode(data: Uint8Array | string): string {
117
+ if (typeof data === 'string') return data;
118
+ return new TextDecoder().decode(data);
119
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./body-parser.plugin"
2
+ export * from "./security/index"
@@ -0,0 +1,19 @@
1
+ import {definePlugin} from "@/core/plugins";
2
+ import {MiddlewareParameters} from "@/types";
3
+
4
+
5
+ export const secureBodyLimit = (maxBytes = 1_000_000) =>
6
+ definePlugin((scope) => {
7
+ scope.use(async ({context, next}: MiddlewareParameters) => {
8
+ const len = Number(
9
+ context.req.headers.get('content-length') ?? 0
10
+ )
11
+
12
+ if (len > maxBytes) {
13
+ context.reply.status(413)
14
+ return context.send({ error: 'Payload too large' })
15
+ }
16
+
17
+ await next()
18
+ })
19
+ }, 'body-limit')
@@ -0,0 +1,44 @@
1
+ import {definePlugin} from "@/core/plugins";
2
+ import {Context, MiddlewareParameters, NextCallable} from "@/types";
3
+
4
+ export interface CorsOptions {
5
+ origin?: string | string[]
6
+ methods?: string[]
7
+ headers?: string[]
8
+ }
9
+
10
+ export const secureCors = (opts: CorsOptions = {}) =>
11
+ definePlugin((scope) => {
12
+ scope.use(async ({context, next}: MiddlewareParameters) => {
13
+ const origin = context.req.headers.get('origin')
14
+
15
+ if (opts.origin) {
16
+ const allowed = Array.isArray(opts.origin)
17
+ ? opts.origin.includes(origin!)
18
+ : opts.origin === origin
19
+
20
+ if (allowed) {
21
+ context.reply.header('Access-Control-Allow-Origin', origin!)
22
+ }
23
+ } else {
24
+ context.reply.header('Access-Control-Allow-Origin', '*')
25
+ }
26
+
27
+ context.reply.header(
28
+ 'Access-Control-Allow-Methods',
29
+ (opts.methods ?? ['GET', 'POST', 'PUT', 'DELETE']).join(',')
30
+ )
31
+
32
+ context.reply.header(
33
+ 'Access-Control-Allow-Headers',
34
+ (opts.headers ?? ['Content-Type', 'Authorization']).join(',')
35
+ )
36
+
37
+ if (context.req.method === 'OPTIONS') {
38
+ context.reply.status(204)
39
+ return context.send(null)
40
+ }
41
+
42
+ await next()
43
+ })
44
+ }, 'cors')
@@ -0,0 +1,14 @@
1
+ import {definePlugin} from "@/core/plugins";
2
+ import {Context, MiddlewareParameters, NextCallable} from "@/types";
3
+
4
+
5
+ export const secureHeaders = definePlugin((scope) => {
6
+ scope.use(async ({context, next}: MiddlewareParameters) => {
7
+ context.reply.header('X-Content-Type-Options', 'nosniff')
8
+ context.reply.header('X-Frame-Options', 'DENY')
9
+ context.reply.header('Referrer-Policy', 'no-referrer')
10
+ context.reply.header('X-XSS-Protection', '1; mode=block')
11
+
12
+ await next()
13
+ })
14
+ }, 'security-headers')
@@ -0,0 +1,13 @@
1
+ import {secureHeaders} from './headers'
2
+ import {secureCors} from './cors'
3
+ import {secureRateLimit} from './rate-limit'
4
+ import {secureBodyLimit} from './body-limit'
5
+ import {secureMethodGuard} from './method-guard'
6
+
7
+ export class Security {
8
+ static headers = secureHeaders
9
+ static cors = secureCors
10
+ static rateLimit = secureRateLimit
11
+ static bodyLimit = secureBodyLimit
12
+ static methodGuard = secureMethodGuard
13
+ }
@@ -0,0 +1,14 @@
1
+ import {definePlugin} from "@/core/plugins";
2
+ import {Context, MiddlewareParameters, NextCallable} from "@/types";
3
+
4
+
5
+ export const secureMethodGuard = (allowed: string[]) =>
6
+ definePlugin((scope) => {
7
+ scope.use(async ({context, next}: MiddlewareParameters) => {
8
+ if (!allowed.includes(context.req.method)) {
9
+ context.reply.status(405)
10
+ return context.send({ error: 'Method not allowed' })
11
+ }
12
+ await next()
13
+ })
14
+ }, 'method-guard')
@@ -0,0 +1,42 @@
1
+ import {definePlugin} from "@/core/plugins";
2
+ import {Context, MiddlewareParameters, NextCallable} from "@/types";
3
+
4
+
5
+ export interface RateLimitOptions {
6
+ windowMs?: number
7
+ max?: number
8
+ }
9
+
10
+ export const secureRateLimit = (
11
+ opts: RateLimitOptions = {}
12
+ ) =>
13
+ definePlugin((scope) => {
14
+ const hits = new Map<string, { count: number; ts: number }>()
15
+
16
+ const windowMs = opts.windowMs ?? 60_000
17
+ const max = opts.max ?? 100
18
+
19
+ scope.use(async ({context, next}: MiddlewareParameters) => {
20
+ const ip =
21
+ context.req.remoteAddress ?? 'unknown'
22
+ const now = Date.now()
23
+
24
+ const entry = hits.get(ip) ?? {count: 0, ts: now}
25
+
26
+ if (now - entry.ts > windowMs) {
27
+ entry.count = 0
28
+ entry.ts = now
29
+ }
30
+
31
+ entry.count++
32
+
33
+ hits.set(ip, entry)
34
+
35
+ if (entry.count > max) {
36
+ context.reply.status(429)
37
+ return context.send({error: 'Too many requests'})
38
+ }
39
+
40
+ await next()
41
+ })
42
+ }, 'rate-limit')
@@ -0,0 +1,14 @@
1
+ import {Throwable} from "./throwable";
2
+
3
+
4
+ export class DelegateRepository {
5
+ protected readonly client: any;
6
+ public readonly model!: any;
7
+
8
+ protected supported(method: string): boolean {
9
+ if (typeof this.model !== 'object') throw new Throwable('Model not found, please check your repository')
10
+ else if (!(method in this.model)) throw new Throwable(`Method ${method} not found, please check your repository`)
11
+ return true;
12
+ }
13
+
14
+ }
@@ -0,0 +1,3 @@
1
+ export class RaitonRequest {
2
+
3
+ }
@@ -0,0 +1,45 @@
1
+ import type {IHttpResponse, ParseableType, ResponseParameters} from "@/types";
2
+ import {RequestContext} from "@/core/context";
3
+
4
+ export function httpResponse<T extends ParseableType>(
5
+ statusCode: number,
6
+ message?: string,
7
+ data?: T,
8
+ error?: any,
9
+ ): IHttpResponse<T> {
10
+ return {
11
+ statusCode,
12
+ message,
13
+ data,
14
+ error,
15
+ }
16
+ }
17
+
18
+ export function successResponse<T extends ParseableType>(
19
+ message?: string,
20
+ data?: T,
21
+ error?: any,
22
+ ): IHttpResponse<T> {
23
+ return httpResponse<T>(200, message, data, error);
24
+ }
25
+
26
+ export function errorResponse<T extends ParseableType>(
27
+ message?: string,
28
+ data?: T,
29
+ error?: any,
30
+ ): IHttpResponse<T> {
31
+ return httpResponse<T>(500, message, data, error);
32
+ }
33
+
34
+
35
+ export class RaitonResponse {
36
+ constructor(
37
+ public readonly parameters: ResponseParameters,
38
+ public readonly context: RequestContext,
39
+ ) {
40
+ }
41
+
42
+ parse(){
43
+
44
+ }
45
+ }
@@ -0,0 +1,72 @@
1
+ import {RuntimeAdapterInterface} from '@/types'
2
+
3
+ export const bunRuntime: RuntimeAdapterInterface = {
4
+ createServer(handler) {
5
+ if (typeof Bun === 'undefined') throw new Error(
6
+ 'bun is not installed, please run `npm install bun`'
7
+ )
8
+
9
+ let server: any
10
+
11
+ return {
12
+ async listen(port) {
13
+ server = Bun.serve({
14
+ port,
15
+ fetch: async (request: Request) => {
16
+ let responseBody: any
17
+ let statusCode = 200
18
+ const headers = new Headers()
19
+
20
+ await handler(
21
+ {
22
+ method: request.method,
23
+ url: request.url,
24
+ headers: request.headers as any,
25
+ body: request.body as any
26
+ },
27
+ {
28
+ status(code) {
29
+ statusCode = code
30
+ },
31
+ header(name, value) {
32
+ headers.set(name, value)
33
+ },
34
+ send(body: any) {
35
+ if (body === undefined) {
36
+ responseBody = ''
37
+ } else if (typeof body === 'string' || Buffer.isBuffer(body)) {
38
+ responseBody = body;
39
+ } else {
40
+ headers.set('content-type', 'application/json');
41
+ responseBody = (JSON.stringify(body));
42
+ }
43
+ },
44
+ text(text: string | Buffer) {
45
+ responseBody = text
46
+ },
47
+ json(json: any) {
48
+ headers.set('content-type', 'application/json')
49
+ responseBody = JSON.stringify(json)
50
+ },
51
+ }
52
+ )
53
+
54
+ if (responseBody instanceof Response) {
55
+ return responseBody;
56
+ }
57
+
58
+ return new Response(
59
+ typeof responseBody === 'object' && !(responseBody instanceof Buffer)
60
+ ? JSON.stringify(responseBody)
61
+ : responseBody,
62
+ {status: statusCode, headers}
63
+ )
64
+ }
65
+ })
66
+ },
67
+ async close() {
68
+ server?.stop()
69
+ }
70
+ }
71
+ }
72
+ }
@@ -0,0 +1,53 @@
1
+ import {RuntimeAdapterInterface} from '@/types'
2
+
3
+ export const denoRuntime: RuntimeAdapterInterface = {
4
+ createServer(handler) {
5
+ let controller: AbortController
6
+
7
+ return {
8
+ async listen(port) {
9
+ if (typeof Deno === 'undefined') throw new Error(
10
+ 'Deno is not installed, please run `deno install -A -f --unstable https://deno.land/x/raiton/cli.ts`'
11
+ )
12
+
13
+ controller = new AbortController()
14
+ Deno.serve({port, signal: controller.signal}, async (req: any) => {
15
+ let body: any
16
+ let status = 200
17
+ const headers = new Headers()
18
+
19
+ await handler(
20
+ {
21
+ method: req.method,
22
+ url: req.url,
23
+ headers: req.headers,
24
+ body: req.body
25
+ },
26
+ {
27
+ status(code) {
28
+ status = code
29
+ },
30
+ header(name, value) {
31
+ headers.set(name, value)
32
+ },
33
+ send(value: any) {
34
+ body = value
35
+ },
36
+ text(text: string | Buffer) {
37
+ body = text
38
+ },
39
+ json(json: any) {
40
+ body = JSON.stringify(json)
41
+ },
42
+ }
43
+ )
44
+
45
+ return new Response(body, {status, headers})
46
+ })
47
+ },
48
+ async close() {
49
+ controller.abort()
50
+ }
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,47 @@
1
+ import type {RuntimeAdapterInterface, RuntimeHandlerCallable, RuntimeInterface, RuntimeServerInterface} from "@/types";
2
+ import {RuntimeType} from "@/sdk/enums/runtime.enum";
3
+ import {nodeRuntime} from "@/sdk/runtime/node/server";
4
+ import {bunRuntime} from "@/sdk/runtime/bun/server";
5
+ import {denoRuntime} from "@/sdk/runtime/deno/server";
6
+ import {webRuntime} from "@/sdk/runtime/web/server";
7
+
8
+
9
+ export class Runtime implements RuntimeInterface {
10
+ constructor(
11
+ public readonly type: RuntimeType = RuntimeType.Node
12
+ ) {
13
+ }
14
+
15
+ get isNode(): boolean {
16
+ return this.type === RuntimeType.Node;
17
+ }
18
+
19
+ get isDeno(): boolean {
20
+ return this.type === RuntimeType.Deno;
21
+ }
22
+
23
+ get isWeb(): boolean {
24
+ return this.type === RuntimeType.Web;
25
+ }
26
+
27
+ get isBun(): boolean {
28
+ return this.type === RuntimeType.Bun;
29
+ }
30
+
31
+ adapter(): RuntimeAdapterInterface {
32
+ switch (this.type) {
33
+ case RuntimeType.Node:
34
+ return nodeRuntime
35
+ case RuntimeType.Bun:
36
+ return bunRuntime
37
+ case RuntimeType.Deno:
38
+ return denoRuntime
39
+ case RuntimeType.Web:
40
+ return webRuntime
41
+ }
42
+ }
43
+
44
+ createServer(handler: RuntimeHandlerCallable): RuntimeServerInterface {
45
+ return this.adapter().createServer(handler)
46
+ }
47
+ }
@@ -0,0 +1,60 @@
1
+ import http from 'node:http'
2
+ import {
3
+ RuntimeAdapterInterface,
4
+ RuntimeRequestInterface,
5
+ RuntimeReplyInterface
6
+ } from '@/types'
7
+
8
+ export const nodeRuntime: RuntimeAdapterInterface = {
9
+ createServer(handler) {
10
+ const server = http.createServer(async (req, res) => {
11
+ const runtimeReq: RuntimeRequestInterface = {
12
+ method: req.method || 'GET',
13
+ url: req.url || '/',
14
+ headers: new Headers(req.headers as any),
15
+ body: req as any,
16
+ remoteAddress: req.socket.remoteAddress
17
+ }
18
+
19
+ const runtimeReply: RuntimeReplyInterface = {
20
+ status(code) {
21
+ res.statusCode = code
22
+ },
23
+ header(name, value) {
24
+ res.setHeader(name, value)
25
+ },
26
+ send(body: any) {
27
+ if (body === undefined) {
28
+ res.end()
29
+ } else if (typeof body === 'string' || Buffer.isBuffer(body)) {
30
+ res.end(body)
31
+ } else {
32
+ res.setHeader('content-type', 'application/json')
33
+ res.end(JSON.stringify(body))
34
+ }
35
+ },
36
+ text(text: string|Buffer) {
37
+ res.end(text)
38
+ },
39
+ json(json: any) {
40
+ res.end(JSON.stringify(json))
41
+ },
42
+ }
43
+
44
+ await handler(runtimeReq, runtimeReply)
45
+ })
46
+
47
+ return {
48
+ listen(port) {
49
+ return new Promise((resolve) =>
50
+ server.listen(port, resolve)
51
+ )
52
+ },
53
+ close() {
54
+ return new Promise((resolve, reject) =>
55
+ server.close(err => err ? reject(err) : resolve())
56
+ )
57
+ }
58
+ }
59
+ }
60
+ }