@typetron/framework 0.3.16 → 0.3.18

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 (428) hide show
  1. package/Cache/Cache.d.ts +9 -0
  2. package/Cache/Cache.d.ts.map +1 -0
  3. package/Cache/Cache.js +7 -0
  4. package/Cache/Cache.js.map +1 -0
  5. package/Cache/CacheLoader.d.ts +8 -0
  6. package/Cache/CacheLoader.d.ts.map +1 -0
  7. package/Cache/CacheLoader.js +55 -0
  8. package/Cache/CacheLoader.js.map +1 -0
  9. package/Cache/Consumers/Cache.d.ts +18 -0
  10. package/Cache/Consumers/Cache.d.ts.map +1 -0
  11. package/Cache/Consumers/Cache.js +99 -0
  12. package/Cache/Consumers/Cache.js.map +1 -0
  13. package/Cache/Contracts/CacheInterface.d.ts +14 -0
  14. package/Cache/Contracts/CacheInterface.d.ts.map +1 -0
  15. package/Cache/Contracts/CacheInterface.js +3 -0
  16. package/Cache/Contracts/CacheInterface.js.map +1 -0
  17. package/Cache/Contracts/EngineInterface.d.ts +8 -0
  18. package/Cache/Contracts/EngineInterface.d.ts.map +1 -0
  19. package/Cache/Contracts/EngineInterface.js +3 -0
  20. package/Cache/Contracts/EngineInterface.js.map +1 -0
  21. package/Cache/Contracts/ServiceInterface.d.ts +8 -0
  22. package/Cache/Contracts/ServiceInterface.d.ts.map +1 -0
  23. package/Cache/Contracts/ServiceInterface.js +3 -0
  24. package/Cache/Contracts/ServiceInterface.js.map +1 -0
  25. package/Cache/Engines/DatabaseCache.d.ts +11 -0
  26. package/Cache/Engines/DatabaseCache.d.ts.map +1 -0
  27. package/Cache/Engines/DatabaseCache.js +40 -0
  28. package/Cache/Engines/DatabaseCache.js.map +1 -0
  29. package/Cache/Engines/FileCache.d.ts +22 -0
  30. package/Cache/Engines/FileCache.d.ts.map +1 -0
  31. package/Cache/Engines/FileCache.js +107 -0
  32. package/Cache/Engines/FileCache.js.map +1 -0
  33. package/Cache/Services/DatabaseCacheService.d.ts +13 -0
  34. package/Cache/Services/DatabaseCacheService.d.ts.map +1 -0
  35. package/Cache/Services/DatabaseCacheService.js +74 -0
  36. package/Cache/Services/DatabaseCacheService.js.map +1 -0
  37. package/Cache/Services/FileCacheService.d.ts +13 -0
  38. package/Cache/Services/FileCacheService.d.ts.map +1 -0
  39. package/Cache/Services/FileCacheService.js +60 -0
  40. package/Cache/Services/FileCacheService.js.map +1 -0
  41. package/Cache/Stores/DatabaseStore.d.ts +16 -0
  42. package/Cache/Stores/DatabaseStore.d.ts.map +1 -0
  43. package/Cache/Stores/DatabaseStore.js +208 -0
  44. package/Cache/Stores/DatabaseStore.js.map +1 -0
  45. package/Cache/Stores/FileStore.d.ts +16 -0
  46. package/Cache/Stores/FileStore.d.ts.map +1 -0
  47. package/Cache/Stores/FileStore.js +63 -0
  48. package/Cache/Stores/FileStore.js.map +1 -0
  49. package/Cache/Stores/MemoryStore.d.ts +13 -0
  50. package/Cache/Stores/MemoryStore.d.ts.map +1 -0
  51. package/Cache/Stores/MemoryStore.js +60 -0
  52. package/Cache/Stores/MemoryStore.js.map +1 -0
  53. package/Cache/index.d.ts +6 -0
  54. package/Cache/index.d.ts.map +1 -0
  55. package/Cache/index.js +18 -0
  56. package/Cache/index.js.map +1 -0
  57. package/Cache/types.d.ts +5 -0
  58. package/Cache/types.d.ts.map +1 -0
  59. package/Cache/types.js +3 -0
  60. package/Cache/types.js.map +1 -0
  61. package/Container/ClassResolver.d.ts +8 -8
  62. package/Container/ClassResolver.d.ts.map +1 -1
  63. package/Container/ClassResolver.js +89 -87
  64. package/Container/ClassResolver.js.map +1 -1
  65. package/Container/Container.d.ts +24 -24
  66. package/Container/Container.d.ts.map +1 -1
  67. package/Container/Container.js +118 -118
  68. package/Container/Container.js.map +1 -1
  69. package/Container/Contracts.d.ts +2 -2
  70. package/Container/Contracts.js +2 -2
  71. package/Container/Decorators.d.ts +4 -4
  72. package/Container/Decorators.js +21 -21
  73. package/Container/Metadata.d.ts +20 -20
  74. package/Container/Metadata.js +18 -18
  75. package/Container/Resolver.d.ts +18 -18
  76. package/Container/Resolver.js +15 -15
  77. package/Container/index.d.ts +5 -5
  78. package/Container/index.js +17 -17
  79. package/Database/Clauses/Where.js +1 -1
  80. package/Database/Connection.d.ts +20 -20
  81. package/Database/Connection.js +42 -42
  82. package/Database/Decorators.d.ts +36 -36
  83. package/Database/Decorators.js +116 -116
  84. package/Database/Drivers/DatabaseDriver.d.ts +28 -28
  85. package/Database/Drivers/DatabaseDriver.js +6 -6
  86. package/Database/Drivers/MySQL/Alter/index.d.ts +33 -33
  87. package/Database/Drivers/MySQL/Alter/index.js +61 -61
  88. package/Database/Drivers/MySQL/ColumnDefinition.d.ts +6 -6
  89. package/Database/Drivers/MySQL/ColumnDefinition.js +17 -17
  90. package/Database/Drivers/MySQL/Create.d.ts +9 -9
  91. package/Database/Drivers/MySQL/Create.js +37 -37
  92. package/Database/Drivers/MySQL/MysqlDriver.d.ts +41 -41
  93. package/Database/Drivers/MySQL/MysqlDriver.js +76 -76
  94. package/Database/Drivers/MySQL/Schema.d.ts +15 -15
  95. package/Database/Drivers/MySQL/Schema.js +65 -65
  96. package/Database/Drivers/MySQL/index.d.ts +1 -1
  97. package/Database/Drivers/MySQL/index.js +15 -15
  98. package/Database/Drivers/SQL/Schema.d.ts +6 -6
  99. package/Database/Drivers/SQL/Schema.js +57 -57
  100. package/Database/Drivers/SQL/Statements/Alter.d.ts +7 -7
  101. package/Database/Drivers/SQL/Statements/Alter.js +17 -17
  102. package/Database/Drivers/SQL/Statements/BaseStatement.d.ts +12 -12
  103. package/Database/Drivers/SQL/Statements/BaseStatement.js +46 -46
  104. package/Database/Drivers/SQL/Statements/Delete.d.ts +5 -5
  105. package/Database/Drivers/SQL/Statements/Delete.js +16 -16
  106. package/Database/Drivers/SQL/Statements/Insert.d.ts +6 -6
  107. package/Database/Drivers/SQL/Statements/Insert.js +23 -23
  108. package/Database/Drivers/SQL/Statements/Select.d.ts +7 -7
  109. package/Database/Drivers/SQL/Statements/Select.js +44 -44
  110. package/Database/Drivers/SQL/Statements/Update.d.ts +6 -6
  111. package/Database/Drivers/SQL/Statements/Update.js +27 -27
  112. package/Database/Drivers/SQL/index.d.ts +8 -8
  113. package/Database/Drivers/SQL/index.js +2 -2
  114. package/Database/Drivers/SQLite/Create.d.ts +9 -9
  115. package/Database/Drivers/SQLite/Create.js +36 -36
  116. package/Database/Drivers/SQLite/Schema.d.ts +15 -15
  117. package/Database/Drivers/SQLite/Schema.js +44 -44
  118. package/Database/Drivers/SQLite/SqliteDriver.d.ts +42 -42
  119. package/Database/Drivers/SQLite/SqliteDriver.d.ts.map +1 -1
  120. package/Database/Drivers/SQLite/SqliteDriver.js +102 -102
  121. package/Database/Drivers/SQLite/SqliteDriver.js.map +1 -1
  122. package/Database/Drivers/SQLite/index.d.ts +2 -2
  123. package/Database/Drivers/SQLite/index.js +26 -26
  124. package/Database/Drivers/SchemaContract.d.ts +8 -8
  125. package/Database/Drivers/SchemaContract.js +9 -9
  126. package/Database/Drivers/Statement.d.ts +9 -9
  127. package/Database/Drivers/Statement.js +15 -15
  128. package/Database/Drivers/index.d.ts +4 -4
  129. package/Database/Drivers/index.js +16 -16
  130. package/Database/Entity.d.ts +64 -64
  131. package/Database/Entity.d.ts.map +1 -1
  132. package/Database/Entity.js +252 -252
  133. package/Database/Entity.js.map +1 -1
  134. package/Database/EntityNotFoundError.d.ts +5 -5
  135. package/Database/EntityNotFoundError.js +10 -10
  136. package/Database/EntityProxyHandler.d.ts +5 -5
  137. package/Database/EntityProxyHandler.js +30 -30
  138. package/Database/EntityQuery.d.ts +28 -28
  139. package/Database/EntityQuery.js +156 -156
  140. package/Database/Expression.d.ts +3 -3
  141. package/Database/Expression.js +6 -6
  142. package/Database/Fields.d.ts +155 -155
  143. package/Database/Fields.js +548 -548
  144. package/Database/Helpers.d.ts +1 -1
  145. package/Database/Helpers.js +16 -16
  146. package/Database/List.d.ts +24 -24
  147. package/Database/List.d.ts.map +1 -1
  148. package/Database/List.js +49 -49
  149. package/Database/List.js.map +1 -1
  150. package/Database/Migrations/Migration.d.ts +7 -7
  151. package/Database/Migrations/Migration.js +9 -9
  152. package/Database/Migrations/MigrationHistory.d.ts +8 -8
  153. package/Database/Migrations/MigrationHistory.js +38 -38
  154. package/Database/Migrations/Migrator.d.ts +20 -20
  155. package/Database/Migrations/Migrator.js +118 -118
  156. package/Database/Migrations/index.d.ts +3 -3
  157. package/Database/Migrations/index.js +15 -15
  158. package/Database/ORM/BaseRelationship.d.ts +7 -7
  159. package/Database/ORM/BaseRelationship.js +10 -10
  160. package/Database/Query.d.ts +62 -62
  161. package/Database/Query.d.ts.map +1 -1
  162. package/Database/Query.js +265 -264
  163. package/Database/Query.js.map +1 -1
  164. package/Database/Seeders/Seeder.d.ts +3 -3
  165. package/Database/Seeders/Seeder.js +6 -6
  166. package/Database/Seeders/SeederManager.d.ts +8 -8
  167. package/Database/Seeders/SeederManager.js +24 -24
  168. package/Database/Seeders/index.d.ts +2 -2
  169. package/Database/Seeders/index.js +14 -14
  170. package/Database/StringExpression.d.ts +6 -6
  171. package/Database/StringExpression.js +14 -14
  172. package/Database/Types.d.ts +117 -117
  173. package/Database/Types.d.ts.map +1 -1
  174. package/Database/Types.js +94 -94
  175. package/Database/Types.js.map +1 -1
  176. package/Database/index.d.ts +20 -20
  177. package/Database/index.js +20 -20
  178. package/Encryption/index.d.ts +15 -15
  179. package/Encryption/index.js +53 -53
  180. package/Forms/Decorators.d.ts +6 -6
  181. package/Forms/Decorators.js +28 -28
  182. package/Forms/Form.d.ts +17 -17
  183. package/Forms/Form.js +69 -69
  184. package/Forms/FormFields.d.ts +9 -9
  185. package/Forms/FormFields.js +35 -35
  186. package/Forms/index.d.ts +3 -3
  187. package/Forms/index.js +15 -15
  188. package/Framework/App.d.ts +6 -6
  189. package/Framework/App.js +9 -9
  190. package/Framework/Application.d.ts +17 -17
  191. package/Framework/Application.d.ts.map +1 -1
  192. package/Framework/Application.js +94 -93
  193. package/Framework/Application.js.map +1 -1
  194. package/Framework/Auth/Auth.d.ts +24 -24
  195. package/Framework/Auth/Auth.js +108 -108
  196. package/Framework/Auth/Authenticatable.d.ts +6 -6
  197. package/Framework/Auth/Authenticatable.js +2 -2
  198. package/Framework/Auth/User.d.ts +10 -10
  199. package/Framework/Auth/User.js +37 -37
  200. package/Framework/Auth/index.d.ts +5 -5
  201. package/Framework/Auth/index.d.ts.map +1 -1
  202. package/Framework/Auth/index.js +45 -45
  203. package/Framework/Auth/index.js.map +1 -1
  204. package/Framework/Config/AppConfig.d.ts +18 -18
  205. package/Framework/Config/AppConfig.js +11 -11
  206. package/Framework/Config/AuthConfig.d.ts +8 -8
  207. package/Framework/Config/AuthConfig.js +7 -7
  208. package/Framework/Config/BaseConfig.d.ts +6 -6
  209. package/Framework/Config/BaseConfig.js +12 -12
  210. package/Framework/Config/CacheConfig.d.ts +16 -0
  211. package/Framework/Config/CacheConfig.d.ts.map +1 -0
  212. package/Framework/Config/CacheConfig.js +23 -0
  213. package/Framework/Config/CacheConfig.js.map +1 -0
  214. package/Framework/Config/DatabaseConfig.d.ts +10 -10
  215. package/Framework/Config/DatabaseConfig.js +25 -25
  216. package/Framework/Config/index.d.ts +5 -4
  217. package/Framework/Config/index.d.ts.map +1 -1
  218. package/Framework/Config/index.js +17 -16
  219. package/Framework/Config/index.js.map +1 -1
  220. package/Framework/Middleware/AuthMiddleware.d.ts +7 -7
  221. package/Framework/Middleware/AuthMiddleware.js +63 -63
  222. package/Framework/Middleware/CorsMiddleware.d.ts +6 -6
  223. package/Framework/Middleware/CorsMiddleware.js +43 -43
  224. package/Framework/Middleware/StaticAssetsMiddleware.d.ts +14 -14
  225. package/Framework/Middleware/StaticAssetsMiddleware.js +104 -104
  226. package/Framework/Middleware/index.d.ts +2 -2
  227. package/Framework/Middleware/index.js +14 -14
  228. package/Framework/Provider.d.ts +5 -5
  229. package/Framework/Provider.js +20 -20
  230. package/Framework/Providers/CacheProvider.d.ts +7 -0
  231. package/Framework/Providers/CacheProvider.d.ts.map +1 -0
  232. package/Framework/Providers/CacheProvider.js +39 -0
  233. package/Framework/Providers/CacheProvider.js.map +1 -0
  234. package/Framework/Providers/DatabaseProvider.d.ts +9 -9
  235. package/Framework/Providers/DatabaseProvider.js +63 -63
  236. package/Framework/Providers/WebsocketsProvider.d.ts +12 -12
  237. package/Framework/Providers/WebsocketsProvider.js +122 -122
  238. package/Framework/Resolvers/AuthResolver.d.ts +5 -5
  239. package/Framework/Resolvers/AuthResolver.js +14 -14
  240. package/Framework/Resolvers/EntityResolver.d.ts +9 -9
  241. package/Framework/Resolvers/EntityResolver.js +40 -40
  242. package/Framework/Resolvers/FormResolver.d.ts +9 -9
  243. package/Framework/Resolvers/FormResolver.js +32 -32
  244. package/Framework/RootDir.d.ts +2 -2
  245. package/Framework/RootDir.js +6 -6
  246. package/Framework/index.d.ts +7 -6
  247. package/Framework/index.d.ts.map +1 -1
  248. package/Framework/index.js +19 -18
  249. package/Framework/index.js.map +1 -1
  250. package/Models/Model.d.ts +9 -9
  251. package/Models/Model.js +35 -35
  252. package/Models/index.d.ts +21 -21
  253. package/Models/index.d.ts.map +1 -1
  254. package/Models/index.js +58 -58
  255. package/Models/index.js.map +1 -1
  256. package/Router/BaseController.d.ts +4 -4
  257. package/Router/BaseController.js +20 -20
  258. package/Router/Decorators.d.ts +21 -21
  259. package/Router/Decorators.js +170 -170
  260. package/Router/Guard.d.ts +4 -4
  261. package/Router/Guard.js +10 -10
  262. package/Router/Http/Contracts.d.ts +3 -3
  263. package/Router/Http/Contracts.js +2 -2
  264. package/Router/Http/ErrorHandler.d.ts +9 -9
  265. package/Router/Http/ErrorHandler.js +51 -51
  266. package/Router/Http/ErrorHandlerInterface.d.ts +5 -5
  267. package/Router/Http/ErrorHandlerInterface.js +6 -6
  268. package/Router/Http/Errors/HttpError.d.ts +7 -7
  269. package/Router/Http/Errors/HttpError.js +15 -15
  270. package/Router/Http/Handler.d.ts +15 -15
  271. package/Router/Http/Handler.js +131 -131
  272. package/Router/Http/Request.d.ts +22 -22
  273. package/Router/Http/Request.js +151 -151
  274. package/Router/Http/Response.d.ts +17 -17
  275. package/Router/Http/Response.js +51 -51
  276. package/Router/Http/index.d.ts +83 -83
  277. package/Router/Http/index.js +99 -99
  278. package/Router/Metadata.d.ts +31 -31
  279. package/Router/Metadata.js +25 -25
  280. package/Router/Middleware.d.ts +5 -5
  281. package/Router/Middleware.js +2 -2
  282. package/Router/Route.d.ts +23 -23
  283. package/Router/Route.js +110 -110
  284. package/Router/RouteNotFoundError.d.ts +3 -3
  285. package/Router/RouteNotFoundError.js +9 -9
  286. package/Router/Router.d.ts +12 -12
  287. package/Router/Router.js +32 -32
  288. package/Router/Websockets/Handler.d.ts +12 -12
  289. package/Router/Websockets/Handler.js +59 -59
  290. package/Router/Websockets/WebsocketEvent.d.ts +15 -15
  291. package/Router/Websockets/WebsocketEvent.js +53 -53
  292. package/Router/Websockets/index.d.ts +16 -16
  293. package/Router/Websockets/index.d.ts.map +1 -1
  294. package/Router/Websockets/index.js +57 -57
  295. package/Router/Websockets/index.js.map +1 -1
  296. package/Router/Websockets/types.d.ts +20 -20
  297. package/Router/Websockets/types.js +8 -8
  298. package/Router/index.d.ts +6 -6
  299. package/Router/index.js +18 -18
  300. package/Storage/File.d.ts +11 -11
  301. package/Storage/File.js +46 -46
  302. package/Storage/Image.d.ts +3 -3
  303. package/Storage/Image.js +7 -7
  304. package/Storage/InvalidImage.d.ts +3 -3
  305. package/Storage/InvalidImage.js +7 -7
  306. package/Storage/Storage.d.ts +13 -12
  307. package/Storage/Storage.d.ts.map +1 -1
  308. package/Storage/Storage.js +104 -110
  309. package/Storage/Storage.js.map +1 -1
  310. package/Storage/index.d.ts +4 -4
  311. package/Storage/index.js +16 -16
  312. package/Storage/utils.d.ts +5 -5
  313. package/Storage/utils.js +20 -20
  314. package/Support/Array.d.ts +28 -28
  315. package/Support/Array.d.ts.map +1 -1
  316. package/Support/Array.js +108 -108
  317. package/Support/Array.js.map +1 -1
  318. package/Support/Math.d.ts +6 -6
  319. package/Support/Math.js +7 -7
  320. package/Support/Metadata.d.ts +14 -14
  321. package/Support/Metadata.js +20 -20
  322. package/Support/String.d.ts +11 -11
  323. package/Support/String.js +23 -23
  324. package/Support/index.d.ts +14 -13
  325. package/Support/index.d.ts.map +1 -1
  326. package/Support/index.js +6 -5
  327. package/Support/index.js.map +1 -1
  328. package/Support/utils.d.ts +2 -0
  329. package/Support/utils.d.ts.map +1 -0
  330. package/Support/utils.js +13 -0
  331. package/Support/utils.js.map +1 -0
  332. package/Testing/TestCase.d.ts +32 -32
  333. package/Testing/TestCase.js +130 -130
  334. package/Validation/Rule.d.ts +6 -6
  335. package/Validation/Rule.js +6 -6
  336. package/Validation/RuleInterface.d.ts +6 -6
  337. package/Validation/RuleInterface.js +2 -2
  338. package/Validation/Rules/Email.d.ts +3 -3
  339. package/Validation/Rules/Email.js +20 -20
  340. package/Validation/Rules/FileExtension.d.ts +3 -3
  341. package/Validation/Rules/FileExtension.js +22 -22
  342. package/Validation/Rules/MaxLength.d.ts +3 -3
  343. package/Validation/Rules/MaxLength.js +19 -19
  344. package/Validation/Rules/MinLength.d.ts +3 -3
  345. package/Validation/Rules/MinLength.js +19 -19
  346. package/Validation/Rules/Optional.d.ts +3 -3
  347. package/Validation/Rules/Optional.js +19 -19
  348. package/Validation/Rules/Required.d.ts +3 -3
  349. package/Validation/Rules/Required.js +26 -26
  350. package/Validation/Validator.d.ts +11 -11
  351. package/Validation/Validator.js +10 -10
  352. package/Validation/index.d.ts +9 -9
  353. package/Validation/index.js +21 -21
  354. package/package.json +8 -5
  355. package/tests/Cache/DatabaseStoreTest.d.ts +2 -0
  356. package/tests/Cache/DatabaseStoreTest.d.ts.map +1 -0
  357. package/tests/Cache/DatabaseStoreTest.js +138 -0
  358. package/tests/Cache/DatabaseStoreTest.js.map +1 -0
  359. package/tests/Cache/FileStoreTest.d.ts +2 -0
  360. package/tests/Cache/FileStoreTest.d.ts.map +1 -0
  361. package/tests/Cache/FileStoreTest.js +142 -0
  362. package/tests/Cache/FileStoreTest.js.map +1 -0
  363. package/tests/Cache/MemoryStoreTest.d.ts +2 -0
  364. package/tests/Cache/MemoryStoreTest.d.ts.map +1 -0
  365. package/tests/Cache/MemoryStoreTest.js +141 -0
  366. package/tests/Cache/MemoryStoreTest.js.map +1 -0
  367. package/tests/Container/ContainerTest.d.ts +1 -1
  368. package/tests/Container/ContainerTest.js +395 -395
  369. package/tests/Database/Drivers/MySQL/AlterTest.d.ts +1 -1
  370. package/tests/Database/Drivers/MySQL/AlterTest.js +135 -135
  371. package/tests/Database/Drivers/MySQL/CreateTest.d.ts +1 -1
  372. package/tests/Database/Drivers/MySQL/CreateTest.js +57 -57
  373. package/tests/Database/Drivers/MysqlDriverTest.d.ts +1 -1
  374. package/tests/Database/Drivers/MysqlDriverTest.js +149 -149
  375. package/tests/Database/Drivers/SqliteDriverTest.d.ts +1 -1
  376. package/tests/Database/Drivers/SqliteDriverTest.js +135 -135
  377. package/tests/Database/Entities/Article.d.ts +10 -10
  378. package/tests/Database/Entities/Article.js +42 -42
  379. package/tests/Database/Entities/Profile.d.ts +10 -10
  380. package/tests/Database/Entities/Profile.js +38 -38
  381. package/tests/Database/Entities/Role.d.ts +8 -8
  382. package/tests/Database/Entities/Role.js +30 -30
  383. package/tests/Database/Entities/User.d.ts +15 -15
  384. package/tests/Database/Entities/User.js +57 -57
  385. package/tests/Database/EntityRelationshipsTest.d.ts +1 -1
  386. package/tests/Database/EntityRelationshipsTest.js +552 -552
  387. package/tests/Database/EntityTest.d.ts +1 -1
  388. package/tests/Database/EntityTest.js +233 -233
  389. package/tests/Database/Migrations/RunnerTest.d.ts +1 -1
  390. package/tests/Database/Migrations/RunnerTest.js +111 -111
  391. package/tests/Database/Migrations/migrations/1.createUserTable.d.ts +5 -5
  392. package/tests/Database/Migrations/migrations/1.createUserTable.js +13 -13
  393. package/tests/Database/Migrations/migrations/2.createArticlesTable.d.ts +5 -5
  394. package/tests/Database/Migrations/migrations/2.createArticlesTable.js +13 -13
  395. package/tests/Database/QueryTest.d.ts +1 -1
  396. package/tests/Database/QueryTest.js +622 -622
  397. package/tests/Database/SchemaTest.d.ts +1 -1
  398. package/tests/Database/SchemaTest.js +45 -45
  399. package/tests/Database/Seeders/RunnerTest.d.ts +1 -1
  400. package/tests/Database/Seeders/RunnerTest.js +43 -43
  401. package/tests/Database/Seeders/seeders/RandomSeeder.d.ts +4 -4
  402. package/tests/Database/Seeders/seeders/RandomSeeder.js +13 -13
  403. package/tests/Database/utils.d.ts +5 -5
  404. package/tests/Database/utils.js +18 -18
  405. package/tests/Forms/FormsTest.d.ts +1 -1
  406. package/tests/Forms/FormsTest.js +79 -79
  407. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.d.ts +1 -1
  408. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.js +165 -165
  409. package/tests/Framework/Resolvers/EntityResolverTest.d.ts +1 -1
  410. package/tests/Framework/Resolvers/EntityResolverTest.js +59 -59
  411. package/tests/Model/ModelTest.d.ts +1 -1
  412. package/tests/Model/ModelTest.js +233 -233
  413. package/tests/Router/HttpHandlerTest.d.ts +1 -1
  414. package/tests/Router/HttpHandlerTest.js +36 -36
  415. package/tests/Router/WebSocketsHandlerTest.d.ts +1 -1
  416. package/tests/Router/WebSocketsHandlerTest.js +35 -35
  417. package/tests/Support/ArrayTest.d.ts +1 -1
  418. package/tests/Support/ArrayTest.js +258 -258
  419. package/tests/Support/StringTest.d.ts +1 -1
  420. package/tests/Support/StringTest.js +38 -38
  421. package/tests/Validation/RulesTest.d.ts +1 -1
  422. package/tests/Validation/RulesTest.js +67 -67
  423. package/Database/Drivers/SQL/Statements/Create.d.ts +0 -7
  424. package/Database/Drivers/SQL/Statements/Create.d.ts.map +0 -1
  425. package/Database/Drivers/SQL/Statements/Create.js +0 -22
  426. package/Database/Drivers/SQL/Statements/Create.js.map +0 -1
  427. package/LICENSE.md +0 -21
  428. package/Readme.md +0 -123
@@ -1,132 +1,132 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Handler = void 0;
13
- const Container_1 = require("../../Container");
14
- const __1 = require("../");
15
- const _1 = require("./");
16
- const Request_1 = require("./Request");
17
- const http_1 = require("http");
18
- const Framework_1 = require("../../Framework");
19
- class Handler {
20
- constructor() {
21
- this.cachedRoutes = {};
22
- }
23
- addRoute(uri, method, controller, action, name, parametersTypes = [], middleware = []) {
24
- uri = this.prepareUri(uri);
25
- const route = new __1.Route(uri, method, controller, action, name, parametersTypes, middleware);
26
- if (this.router.routes.find(item => item.uri === uri && item.method === method)) {
27
- throw new Error(`There is already a route with the same url: [${method}] '${uri}'`);
28
- }
29
- this.router.routes.push(route);
30
- return route;
31
- }
32
- // async handle(app: Application, request: Request) {
33
- // try {
34
- // return await this.handle(app, request)
35
- // } catch (error) {
36
- // return this.errorHandler.handle(error, request)
37
- // }
38
- // }
39
- startServer(app) {
40
- const config = app.get(Framework_1.AppConfig);
41
- const server = http_1.createServer(async (incomingMessage, serverResponse) => {
42
- try {
43
- const request = await Request_1.Request.capture(incomingMessage);
44
- const response = await this.handle(app, request);
45
- _1.Response.send(response, serverResponse);
46
- }
47
- catch (error) {
48
- _1.Response.send(await this.errorHandler.handle(error), serverResponse);
49
- }
50
- });
51
- server.listen(config.port);
52
- }
53
- async handle(app, request) {
54
- const container = app.createChildContainer();
55
- container.set(Request_1.Request, request);
56
- let stack = async () => {
57
- var _a;
58
- // const routeIndex = this.cachedRoutes[`${request.method} ${request.uri}`]
59
- // ?? this.findRouteIndex(request.uri ?? '', request.method)
60
- const routeIndex = this.findRouteIndex((_a = request.uri) !== null && _a !== void 0 ? _a : '', request.method);
61
- const route = this.router.routes[routeIndex];
62
- container.set(__1.Route, route);
63
- request.parameters = route.parameters;
64
- let routeStack = async () => {
65
- const content = await route.run(container);
66
- if (content instanceof _1.Response) {
67
- return content;
68
- }
69
- return _1.Response.ok(content);
70
- };
71
- route.middleware.forEach(middlewareClass => {
72
- const middleware = container.get(middlewareClass);
73
- routeStack = middleware.handle.bind(middleware, request, routeStack);
74
- });
75
- return await routeStack(request);
76
- };
77
- this.router.middleware.forEach(middlewareClass => {
78
- const middleware = container.get(middlewareClass);
79
- stack = middleware.handle.bind(middleware, request, stack);
80
- });
81
- return await stack(request);
82
- }
83
- findRouteIndex(uri, method) {
84
- const preparedUri = this.prepareUri(uri);
85
- const index = this.router.routes.findIndex(route => {
86
- return route.method === method && route.matches(preparedUri);
87
- });
88
- if (index === -1) {
89
- throw new __1.RouteNotFoundError(`[${method}] ${uri}`);
90
- }
91
- this.cachedRoutes[`${method} ${uri}`] = index;
92
- return index;
93
- // return this.routes
94
- // .where('uri', uri)
95
- // .findWhere('method', method) || this.routeNotFound(uri);
96
- // const uriParts = uri.split('/'); // ['users', '1', 'posts'];
97
- //
98
- // let currentRoute: string | undefined;
99
- //
100
- // let routesGroup = this.routesMap;
101
- // uriParts.forEach(part => {
102
- // if (routesGroup[part]) {
103
- // return routesGroup = routesGroup[part];
104
- // }
105
- // if (routesGroup['*']) {
106
- // return routesGroup = routesGroup['*'];
107
- // }
108
- //
109
- // throw new Error(`Route for '${uri}' not found`);
110
- // });
111
- // this.routes;
112
- }
113
- prepareUri(uri) {
114
- if (uri[0] === '/') {
115
- uri = uri.substr(1);
116
- }
117
- if (uri[uri.length - 1] === '/') {
118
- uri = uri.substring(0, uri.length - 1);
119
- }
120
- return uri;
121
- }
122
- }
123
- __decorate([
124
- Container_1.Inject(),
125
- __metadata("design:type", __1.Router)
126
- ], Handler.prototype, "router", void 0);
127
- __decorate([
128
- Container_1.Inject(),
129
- __metadata("design:type", _1.ErrorHandlerInterface)
130
- ], Handler.prototype, "errorHandler", void 0);
131
- exports.Handler = Handler;
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Handler = void 0;
13
+ const Container_1 = require("../../Container");
14
+ const __1 = require("../");
15
+ const _1 = require("./");
16
+ const Request_1 = require("./Request");
17
+ const http_1 = require("http");
18
+ const Framework_1 = require("../../Framework");
19
+ class Handler {
20
+ constructor() {
21
+ this.cachedRoutes = {};
22
+ }
23
+ addRoute(uri, method, controller, action, name, parametersTypes = [], middleware = []) {
24
+ uri = this.prepareUri(uri);
25
+ const route = new __1.Route(uri, method, controller, action, name, parametersTypes, middleware);
26
+ if (this.router.routes.find(item => item.uri === uri && item.method === method)) {
27
+ throw new Error(`There is already a route with the same url: [${method}] '${uri}'`);
28
+ }
29
+ this.router.routes.push(route);
30
+ return route;
31
+ }
32
+ // async handle(app: Application, request: Request) {
33
+ // try {
34
+ // return await this.handle(app, request)
35
+ // } catch (error) {
36
+ // return this.errorHandler.handle(error, request)
37
+ // }
38
+ // }
39
+ startServer(app) {
40
+ const config = app.get(Framework_1.AppConfig);
41
+ const server = http_1.createServer(async (incomingMessage, serverResponse) => {
42
+ try {
43
+ const request = await Request_1.Request.capture(incomingMessage);
44
+ const response = await this.handle(app, request);
45
+ _1.Response.send(response, serverResponse);
46
+ }
47
+ catch (error) {
48
+ _1.Response.send(await this.errorHandler.handle(error), serverResponse);
49
+ }
50
+ });
51
+ server.listen(config.port);
52
+ }
53
+ async handle(app, request) {
54
+ const container = app.createChildContainer();
55
+ container.set(Request_1.Request, request);
56
+ let stack = async () => {
57
+ var _a;
58
+ // const routeIndex = this.cachedRoutes[`${request.method} ${request.uri}`]
59
+ // ?? this.findRouteIndex(request.uri ?? '', request.method)
60
+ const routeIndex = this.findRouteIndex((_a = request.uri) !== null && _a !== void 0 ? _a : '', request.method);
61
+ const route = this.router.routes[routeIndex];
62
+ container.set(__1.Route, route);
63
+ request.parameters = route.parameters;
64
+ let routeStack = async () => {
65
+ const content = await route.run(container);
66
+ if (content instanceof _1.Response) {
67
+ return content;
68
+ }
69
+ return _1.Response.ok(content);
70
+ };
71
+ route.middleware.forEach(middlewareClass => {
72
+ const middleware = container.get(middlewareClass);
73
+ routeStack = middleware.handle.bind(middleware, request, routeStack);
74
+ });
75
+ return await routeStack(request);
76
+ };
77
+ this.router.middleware.forEach(middlewareClass => {
78
+ const middleware = container.get(middlewareClass);
79
+ stack = middleware.handle.bind(middleware, request, stack);
80
+ });
81
+ return await stack(request);
82
+ }
83
+ findRouteIndex(uri, method) {
84
+ const preparedUri = this.prepareUri(uri);
85
+ const index = this.router.routes.findIndex(route => {
86
+ return route.method === method && route.matches(preparedUri);
87
+ });
88
+ if (index === -1) {
89
+ throw new __1.RouteNotFoundError(`[${method}] ${uri}`);
90
+ }
91
+ this.cachedRoutes[`${method} ${uri}`] = index;
92
+ return index;
93
+ // return this.routes
94
+ // .where('uri', uri)
95
+ // .findWhere('method', method) || this.routeNotFound(uri);
96
+ // const uriParts = uri.split('/'); // ['users', '1', 'posts'];
97
+ //
98
+ // let currentRoute: string | undefined;
99
+ //
100
+ // let routesGroup = this.routesMap;
101
+ // uriParts.forEach(part => {
102
+ // if (routesGroup[part]) {
103
+ // return routesGroup = routesGroup[part];
104
+ // }
105
+ // if (routesGroup['*']) {
106
+ // return routesGroup = routesGroup['*'];
107
+ // }
108
+ //
109
+ // throw new Error(`Route for '${uri}' not found`);
110
+ // });
111
+ // this.routes;
112
+ }
113
+ prepareUri(uri) {
114
+ if (uri[0] === '/') {
115
+ uri = uri.substr(1);
116
+ }
117
+ if (uri[uri.length - 1] === '/') {
118
+ uri = uri.substring(0, uri.length - 1);
119
+ }
120
+ return uri;
121
+ }
122
+ }
123
+ __decorate([
124
+ Container_1.Inject(),
125
+ __metadata("design:type", __1.Router)
126
+ ], Handler.prototype, "router", void 0);
127
+ __decorate([
128
+ Container_1.Inject(),
129
+ __metadata("design:type", _1.ErrorHandlerInterface)
130
+ ], Handler.prototype, "errorHandler", void 0);
131
+ exports.Handler = Handler;
132
132
  //# sourceMappingURL=Handler.js.map
@@ -1,23 +1,23 @@
1
- /// <reference types="node" />
2
- import { IncomingHttpHeaders, IncomingMessage } from 'http';
3
- import { Http } from '.';
4
- import { Parameters } from './Contracts';
5
- import { ParsedUrlQuery } from 'querystring';
6
- import { File } from '../../Storage';
7
- export declare class Request {
8
- uri: string;
9
- method: Http.Method;
10
- query: ParsedUrlQuery;
11
- cookies: Parameters;
12
- headers: IncomingHttpHeaders;
13
- body: string | object | undefined;
14
- files: Record<string, File | File[]>;
15
- parameters: Record<string, string | number>;
16
- constructor(uri: string, method: Http.Method, query?: ParsedUrlQuery, cookies?: Parameters, headers?: IncomingHttpHeaders, body?: string | object | undefined, files?: Record<string, File | File[]>);
17
- static loadMultipartContent(incomingMessage: IncomingMessage): Promise<[string | object, Record<string, File | File[]>]>;
18
- static loadSimpleContent(incomingMessage: IncomingMessage): Promise<string | object | undefined>;
19
- static capture(message: IncomingMessage): Promise<Request>;
20
- private static isJSONRequest;
21
- private static isMultipartRequest;
22
- }
1
+ /// <reference types="node" />
2
+ import { IncomingHttpHeaders, IncomingMessage } from 'http';
3
+ import { Http } from '.';
4
+ import { Parameters } from './Contracts';
5
+ import { ParsedUrlQuery } from 'querystring';
6
+ import { File } from '../../Storage';
7
+ export declare class Request {
8
+ uri: string;
9
+ method: Http.Method;
10
+ query: ParsedUrlQuery;
11
+ cookies: Parameters;
12
+ headers: IncomingHttpHeaders;
13
+ body: string | object | undefined;
14
+ files: Record<string, File | File[]>;
15
+ parameters: Record<string, string | number>;
16
+ constructor(uri: string, method: Http.Method, query?: ParsedUrlQuery, cookies?: Parameters, headers?: IncomingHttpHeaders, body?: string | object | undefined, files?: Record<string, File | File[]>);
17
+ static loadMultipartContent(incomingMessage: IncomingMessage): Promise<[string | object, Record<string, File | File[]>]>;
18
+ static loadSimpleContent(incomingMessage: IncomingMessage): Promise<string | object | undefined>;
19
+ static capture(message: IncomingMessage): Promise<Request>;
20
+ private static isJSONRequest;
21
+ private static isMultipartRequest;
22
+ }
23
23
  //# sourceMappingURL=Request.d.ts.map
@@ -1,152 +1,152 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.Request = void 0;
26
- const Url = __importStar(require("url"));
27
- const _1 = require(".");
28
- const querystring = __importStar(require("querystring"));
29
- const Storage_1 = require("../../Storage");
30
- const busboy_1 = __importDefault(require("busboy"));
31
- const os = __importStar(require("os"));
32
- const fs = __importStar(require("fs"));
33
- class Request {
34
- constructor(uri, method, query = {}, cookies = {}, headers = {}, body = {}, files = {}) {
35
- this.uri = uri;
36
- this.method = method;
37
- this.query = query;
38
- this.cookies = cookies;
39
- this.headers = headers;
40
- this.body = body;
41
- this.files = files;
42
- // static methodField = '_method'
43
- this.parameters = {};
44
- }
45
- // get headers() {
46
- // return this.request.headers;
47
- // }
48
- //
49
- // get url(): string {
50
- // return this.request.url || '';
51
- // }
52
- //
53
- // set url(url: string) {
54
- // this.request.url = url;
55
- // }
56
- //
57
- // get method(): Http.Method {
58
- // return this.request.method as Http.Method;
59
- // }
60
- //
61
- // set method(method: Http.Method) {
62
- // this.request.method = method;
63
- // }
64
- // emit(event: string) {
65
- // this.request.emit(event);
66
- // }
67
- static async loadMultipartContent(incomingMessage) {
68
- return new Promise((resolve, reject) => {
69
- const busboy = new busboy_1.default({ headers: incomingMessage.headers });
70
- const files = {};
71
- const content = {};
72
- busboy.on('file', function (fieldName, file, fileName, encoding, mimetype) {
73
- const extension = fileName.split('.').pop();
74
- const fileInstance = new Storage_1.File(`upload_${new Date().getTime().toString()}_${String.randomAlphaNum(9)}.${extension}`);
75
- fileInstance.originalName = fileName;
76
- fileInstance.directory = os.tmpdir();
77
- fileInstance.saved = true;
78
- const stream = fs.createWriteStream(fileInstance.path);
79
- stream.on('error', reject);
80
- file.on('data', function (data) {
81
- stream.write(data);
82
- });
83
- file.on('end', function () {
84
- stream.end();
85
- const field = files[fieldName];
86
- files[fieldName] = field instanceof Array ? [...field, fileInstance] : field ? [field, fileInstance] : fileInstance;
87
- });
88
- });
89
- busboy.on('field', function (fieldName, value) {
90
- content[fieldName] = value;
91
- });
92
- busboy.on('finish', function () {
93
- resolve([content, files]);
94
- });
95
- incomingMessage.pipe(busboy);
96
- });
97
- }
98
- static async loadSimpleContent(incomingMessage) {
99
- let rawData = '';
100
- incomingMessage.on('data', chunk => {
101
- rawData += chunk;
102
- });
103
- return new Promise((resolve, reject) => {
104
- incomingMessage.on('end', async () => {
105
- try {
106
- if (this.isJSONRequest(incomingMessage)) {
107
- try {
108
- return resolve(JSON.parse(rawData));
109
- }
110
- catch (error) {
111
- resolve({});
112
- }
113
- }
114
- resolve(rawData);
115
- }
116
- catch (error) {
117
- if (error instanceof SyntaxError) {
118
- error.stack = `Value used: '${rawData}'\n at ` + error.stack;
119
- reject(error);
120
- }
121
- resolve(rawData ? rawData : undefined);
122
- }
123
- });
124
- });
125
- }
126
- static async capture(message) {
127
- const url = Url.parse(message.url || '');
128
- const request = new this(url.pathname || '', message.method || _1.Http.Method.GET, url.query ? querystring.parse(url.query) : {}, {}, // message.headers.cookie.split(';')
129
- message.headers);
130
- if (request.method !== _1.Http.Method.GET) {
131
- if (this.isMultipartRequest(message)) {
132
- [request.body, request.files] = await Request.loadMultipartContent(message);
133
- }
134
- else {
135
- request.body = await Request.loadSimpleContent(message);
136
- }
137
- // const overwrittenMethod = (request.body as Record<string, string | undefined>)[Request.methodField] || ''
138
- // request.method = Http.Method[overwrittenMethod.toUpperCase() as Http.Method] || request.method
139
- }
140
- return request;
141
- }
142
- static isJSONRequest(incomingMessage) {
143
- var _a;
144
- return (_a = incomingMessage.headers['content-type']) === null || _a === void 0 ? void 0 : _a.includes('application/json');
145
- }
146
- static isMultipartRequest(message) {
147
- var _a;
148
- return (_a = message.headers['content-type']) === null || _a === void 0 ? void 0 : _a.includes('multipart/form-data');
149
- }
150
- }
151
- exports.Request = Request;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.Request = void 0;
26
+ const Url = __importStar(require("url"));
27
+ const _1 = require(".");
28
+ const querystring = __importStar(require("querystring"));
29
+ const Storage_1 = require("../../Storage");
30
+ const busboy_1 = __importDefault(require("busboy"));
31
+ const os = __importStar(require("os"));
32
+ const fs = __importStar(require("fs"));
33
+ class Request {
34
+ constructor(uri, method, query = {}, cookies = {}, headers = {}, body = {}, files = {}) {
35
+ this.uri = uri;
36
+ this.method = method;
37
+ this.query = query;
38
+ this.cookies = cookies;
39
+ this.headers = headers;
40
+ this.body = body;
41
+ this.files = files;
42
+ // static methodField = '_method'
43
+ this.parameters = {};
44
+ }
45
+ // get headers() {
46
+ // return this.request.headers;
47
+ // }
48
+ //
49
+ // get url(): string {
50
+ // return this.request.url || '';
51
+ // }
52
+ //
53
+ // set url(url: string) {
54
+ // this.request.url = url;
55
+ // }
56
+ //
57
+ // get method(): Http.Method {
58
+ // return this.request.method as Http.Method;
59
+ // }
60
+ //
61
+ // set method(method: Http.Method) {
62
+ // this.request.method = method;
63
+ // }
64
+ // emit(event: string) {
65
+ // this.request.emit(event);
66
+ // }
67
+ static async loadMultipartContent(incomingMessage) {
68
+ return new Promise((resolve, reject) => {
69
+ const busboy = new busboy_1.default({ headers: incomingMessage.headers });
70
+ const files = {};
71
+ const content = {};
72
+ busboy.on('file', function (fieldName, file, fileName, encoding, mimetype) {
73
+ const extension = fileName.split('.').pop();
74
+ const fileInstance = new Storage_1.File(`upload_${new Date().getTime().toString()}_${String.randomAlphaNum(9)}.${extension}`);
75
+ fileInstance.originalName = fileName;
76
+ fileInstance.directory = os.tmpdir();
77
+ fileInstance.saved = true;
78
+ const stream = fs.createWriteStream(fileInstance.path);
79
+ stream.on('error', reject);
80
+ file.on('data', function (data) {
81
+ stream.write(data);
82
+ });
83
+ file.on('end', function () {
84
+ stream.end();
85
+ const field = files[fieldName];
86
+ files[fieldName] = field instanceof Array ? [...field, fileInstance] : field ? [field, fileInstance] : fileInstance;
87
+ });
88
+ });
89
+ busboy.on('field', function (fieldName, value) {
90
+ content[fieldName] = value;
91
+ });
92
+ busboy.on('finish', function () {
93
+ resolve([content, files]);
94
+ });
95
+ incomingMessage.pipe(busboy);
96
+ });
97
+ }
98
+ static async loadSimpleContent(incomingMessage) {
99
+ let rawData = '';
100
+ incomingMessage.on('data', chunk => {
101
+ rawData += chunk;
102
+ });
103
+ return new Promise((resolve, reject) => {
104
+ incomingMessage.on('end', async () => {
105
+ try {
106
+ if (this.isJSONRequest(incomingMessage)) {
107
+ try {
108
+ return resolve(JSON.parse(rawData));
109
+ }
110
+ catch (error) {
111
+ resolve({});
112
+ }
113
+ }
114
+ resolve(rawData);
115
+ }
116
+ catch (error) {
117
+ if (error instanceof SyntaxError) {
118
+ error.stack = `Value used: '${rawData}'\n at ` + error.stack;
119
+ reject(error);
120
+ }
121
+ resolve(rawData ? rawData : undefined);
122
+ }
123
+ });
124
+ });
125
+ }
126
+ static async capture(message) {
127
+ const url = Url.parse(message.url || '');
128
+ const request = new this(url.pathname || '', message.method || _1.Http.Method.GET, url.query ? querystring.parse(url.query) : {}, {}, // message.headers.cookie.split(';')
129
+ message.headers);
130
+ if (request.method !== _1.Http.Method.GET) {
131
+ if (this.isMultipartRequest(message)) {
132
+ [request.body, request.files] = await Request.loadMultipartContent(message);
133
+ }
134
+ else {
135
+ request.body = await Request.loadSimpleContent(message);
136
+ }
137
+ // const overwrittenMethod = (request.body as Record<string, string | undefined>)[Request.methodField] || ''
138
+ // request.method = Http.Method[overwrittenMethod.toUpperCase() as Http.Method] || request.method
139
+ }
140
+ return request;
141
+ }
142
+ static isJSONRequest(incomingMessage) {
143
+ var _a;
144
+ return (_a = incomingMessage.headers['content-type']) === null || _a === void 0 ? void 0 : _a.includes('application/json');
145
+ }
146
+ static isMultipartRequest(message) {
147
+ var _a;
148
+ return (_a = message.headers['content-type']) === null || _a === void 0 ? void 0 : _a.includes('multipart/form-data');
149
+ }
150
+ }
151
+ exports.Request = Request;
152
152
  //# sourceMappingURL=Request.js.map
@@ -1,18 +1,18 @@
1
- /// <reference types="node" />
2
- import { OutgoingHttpHeaders, ServerResponse } from 'http';
3
- import { Http } from '.';
4
- import { Buffer } from 'buffer';
5
- export declare class Response<T = any> {
6
- body: T;
7
- status: Http.Status;
8
- headers: OutgoingHttpHeaders;
9
- constructor(body: T, status?: Http.Status, headers?: OutgoingHttpHeaders);
10
- static ok(content: string | object): Response<string | object>;
11
- static notFound(content: string | object): Response<string | object>;
12
- static badRequest(content: string | object): Response<string | object>;
13
- static send(response: Response<undefined | number | string | object | Buffer>, serverResponse: ServerResponse): void;
14
- static getContent(response: Response<number | string | object | undefined>): string | Buffer;
15
- setHeader(name: string, value: string): void;
16
- setHeaders(headers: OutgoingHttpHeaders): void;
17
- }
1
+ /// <reference types="node" />
2
+ import { OutgoingHttpHeaders, ServerResponse } from 'http';
3
+ import { Http } from '.';
4
+ import { Buffer } from 'buffer';
5
+ export declare class Response<T = any> {
6
+ body: T;
7
+ status: Http.Status;
8
+ headers: OutgoingHttpHeaders;
9
+ constructor(body: T, status?: Http.Status, headers?: OutgoingHttpHeaders);
10
+ static ok(content: string | object): Response<string | object>;
11
+ static notFound(content: string | object): Response<string | object>;
12
+ static badRequest(content: string | object): Response<string | object>;
13
+ static send(response: Response<undefined | number | string | object | Buffer>, serverResponse: ServerResponse): void;
14
+ static getContent(response: Response<number | string | object | undefined>): string | Buffer;
15
+ setHeader(name: string, value: string): void;
16
+ setHeaders(headers: OutgoingHttpHeaders): void;
17
+ }
18
18
  //# sourceMappingURL=Response.d.ts.map