@typetron/framework 0.4.0-rc8 → 0.5.0-rc1

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 (1174) hide show
  1. package/.eslintrc-old.js +208 -0
  2. package/Cache/Cache.ts +13 -0
  3. package/Cache/Stores/DatabaseStore.ts +120 -0
  4. package/Cache/Stores/FileStore.ts +69 -0
  5. package/Cache/Stores/MemoryStore.ts +71 -0
  6. package/Cache/index.ts +5 -0
  7. package/Cache/types.ts +4 -0
  8. package/Container/ClassResolver.ts +106 -0
  9. package/Container/Container.ts +144 -0
  10. package/Container/Contracts.ts +3 -0
  11. package/Container/Decorators.ts +20 -0
  12. package/Container/Metadata.ts +16 -0
  13. package/Container/Resolver.ts +27 -0
  14. package/Container/index.ts +5 -0
  15. package/Database/Clauses/Where.ts +0 -0
  16. package/Database/Connection.ts +52 -0
  17. package/Database/Decorators.ts +142 -0
  18. package/Database/Drivers/DatabaseDriver.ts +37 -0
  19. package/Database/Drivers/MySQL/Alter/index.ts +55 -0
  20. package/Database/Drivers/MySQL/ColumnDefinition.ts +16 -0
  21. package/Database/Drivers/MySQL/Create.ts +47 -0
  22. package/Database/Drivers/MySQL/MysqlDriver.ts +123 -0
  23. package/Database/Drivers/MySQL/Schema.ts +82 -0
  24. package/Database/Drivers/MySQL/index.ts +13 -0
  25. package/Database/Drivers/SQL/Schema.ts +73 -0
  26. package/Database/Drivers/SQL/Statements/Alter.ts +22 -0
  27. package/Database/Drivers/SQL/Statements/BaseStatement.ts +55 -0
  28. package/Database/Drivers/SQL/Statements/Delete.ts +20 -0
  29. package/Database/Drivers/SQL/Statements/Insert.ts +24 -0
  30. package/Database/Drivers/SQL/Statements/Select.ts +55 -0
  31. package/Database/Drivers/SQL/Statements/Update.ts +33 -0
  32. package/Database/Drivers/SQL/index.ts +8 -0
  33. package/Database/Drivers/SQLite/Create.ts +45 -0
  34. package/Database/Drivers/SQLite/Schema.ts +54 -0
  35. package/Database/Drivers/SQLite/SqliteDriver.ts +144 -0
  36. package/Database/Drivers/SQLite/index.ts +15 -0
  37. package/Database/Drivers/SchemaContract.ts +11 -0
  38. package/Database/Drivers/Statement.ts +16 -0
  39. package/Database/Drivers/index.ts +4 -0
  40. package/Database/Entity.ts +377 -0
  41. package/Database/EntityNotFoundError.ts +5 -0
  42. package/Database/EntityProxyHandler.ts +43 -0
  43. package/Database/EntityQuery.ts +197 -0
  44. package/Database/Expression.ts +3 -0
  45. package/Database/Fields.ts +816 -0
  46. package/Database/Helpers.ts +12 -0
  47. package/Database/List.ts +71 -0
  48. package/Database/Migrations/Migration.ts +10 -0
  49. package/Database/Migrations/MigrationHistory.ts +20 -0
  50. package/Database/Migrations/Migrator.ts +122 -0
  51. package/Database/Migrations/index.ts +3 -0
  52. package/Database/ORM/BaseRelationship.ts +10 -0
  53. package/Database/Query.ts +374 -0
  54. package/Database/Seeders/Seeder.ts +3 -0
  55. package/Database/Seeders/SeederManager.ts +27 -0
  56. package/Database/Seeders/index.ts +2 -0
  57. package/Database/StringExpression.ts +9 -0
  58. package/Database/Types.ts +165 -0
  59. package/Database/index.ts +23 -0
  60. package/Encryption/index.ts +51 -0
  61. package/Forms/Decorators.ts +29 -0
  62. package/Forms/Form.ts +70 -0
  63. package/Forms/FormFields.ts +36 -0
  64. package/Forms/index.ts +3 -0
  65. package/Framework/App.ts +10 -0
  66. package/Framework/Application.ts +118 -0
  67. package/Framework/Auth/Auth.ts +122 -0
  68. package/Framework/Auth/Authenticatable.ts +9 -0
  69. package/Framework/Auth/User.ts +27 -0
  70. package/Framework/Auth/index.ts +29 -0
  71. package/Framework/Config/AppConfig.ts +25 -0
  72. package/Framework/Config/AuthConfig.ts +9 -0
  73. package/Framework/Config/BaseConfig.ts +9 -0
  74. package/Framework/Config/CacheConfig.ts +38 -0
  75. package/Framework/Config/DatabaseConfig.ts +21 -0
  76. package/Framework/Config/MailConfig.ts +30 -0
  77. package/Framework/Config/index.ts +6 -0
  78. package/Framework/Middleware/AuthMiddleware.ts +31 -0
  79. package/Framework/Middleware/CorsMiddleware.ts +32 -0
  80. package/Framework/Middleware/StaticAssetsMiddleware.ts +76 -0
  81. package/Framework/Middleware/index.ts +2 -0
  82. package/Framework/Provider.ts +9 -0
  83. package/Framework/Providers/CacheProvider.ts +28 -0
  84. package/Framework/Providers/DatabaseProvider.ts +36 -0
  85. package/Framework/Providers/MailProvider.ts +31 -0
  86. package/Framework/Providers/WebsocketsProvider.ts +120 -0
  87. package/Framework/Resolvers/AuthResolver.ts +23 -0
  88. package/Framework/Resolvers/EntityResolver.ts +41 -0
  89. package/Framework/Resolvers/FormResolver.ts +37 -0
  90. package/Framework/RootDir.ts +1 -0
  91. package/Framework/index.ts +8 -0
  92. package/Frontend/Angular/index.ts +24 -0
  93. package/Frontend/Websockets/index.ts +86 -0
  94. package/Mail/MailAddress.ts +4 -0
  95. package/Mail/MailTransport.ts +6 -0
  96. package/Mail/Mailable.ts +16 -0
  97. package/Mail/Mailer.ts +27 -0
  98. package/Mail/PendingMail.ts +68 -0
  99. package/Mail/SentMessage.ts +20 -0
  100. package/Mail/Transports/MemoryTransport.ts +13 -0
  101. package/Mail/Transports/SendGridTransport.ts +95 -0
  102. package/Mail/index.ts +3 -0
  103. package/Models/Model.ts +41 -0
  104. package/Models/index.ts +54 -0
  105. package/Router/BaseController.ts +7 -0
  106. package/Router/Decorators.ts +224 -0
  107. package/Router/Guard.ts +10 -0
  108. package/Router/Http/Contracts.ts +4 -0
  109. package/Router/Http/ErrorHandler.ts +45 -0
  110. package/Router/Http/ErrorHandlerInterface.ts +6 -0
  111. package/Router/Http/Errors/HttpError.ts +15 -0
  112. package/Router/Http/Handler.ts +183 -0
  113. package/Router/Http/HttpRoute.ts +110 -0
  114. package/Router/Http/Middleware.ts +7 -0
  115. package/Router/Http/Request.ts +225 -0
  116. package/Router/Http/Response.ts +35 -0
  117. package/Router/Http/index.ts +85 -0
  118. package/Router/Metadata.ts +34 -0
  119. package/Router/Middleware.ts +16 -0
  120. package/Router/Request.ts +65 -0
  121. package/Router/Route.ts +16 -0
  122. package/Router/RouteNotFoundError.ts +5 -0
  123. package/Router/Router.ts +35 -0
  124. package/Router/Servers/index.ts +6 -0
  125. package/Router/Servers/node.ts +49 -0
  126. package/Router/Servers/uNetworking.ts +151 -0
  127. package/Router/Websockets/Handler.ts +82 -0
  128. package/Router/Websockets/Middleware.ts +7 -0
  129. package/Router/Websockets/Request.ts +3 -0
  130. package/Router/Websockets/WebsocketRoute.ts +61 -0
  131. package/Router/Websockets/index.ts +57 -0
  132. package/Router/Websockets/types.ts +23 -0
  133. package/Router/index.ts +6 -0
  134. package/Storage/File.ts +30 -0
  135. package/Storage/Image.ts +19 -0
  136. package/Storage/InvalidImage.ts +3 -0
  137. package/Storage/Storage.ts +98 -0
  138. package/Storage/index.ts +4 -0
  139. package/Storage/utils.ts +18 -0
  140. package/Support/Array.ts +184 -0
  141. package/Support/Math.ts +12 -0
  142. package/Support/Metadata.ts +31 -0
  143. package/Support/String.ts +38 -0
  144. package/Support/index.ts +19 -0
  145. package/Support/utils.ts +7 -0
  146. package/Testing/TestCase.ts +193 -0
  147. package/Validation/Rule.ts +9 -0
  148. package/Validation/RuleInterface.ts +10 -0
  149. package/Validation/Rules/Email.ts +20 -0
  150. package/Validation/Rules/FileExtension.ts +21 -0
  151. package/Validation/Rules/MaxLength.ts +17 -0
  152. package/Validation/Rules/MinLength.ts +18 -0
  153. package/Validation/Rules/Optional.ts +18 -0
  154. package/Validation/Rules/Required.ts +29 -0
  155. package/Validation/Validator.ts +7 -0
  156. package/Validation/index.ts +12 -0
  157. package/benchmark-index.js +20 -0
  158. package/build/Cache/Stores/DatabaseStore.js +105 -0
  159. package/build/Cache/Stores/DatabaseStore.js.map +1 -0
  160. package/build/Cache/Stores/FileStore.js +65 -0
  161. package/build/Cache/Stores/FileStore.js.map +1 -0
  162. package/build/Cache/Stores/MemoryStore.js +57 -0
  163. package/build/Cache/Stores/MemoryStore.js.map +1 -0
  164. package/build/Cache/index.js +22 -0
  165. package/build/Cache/index.js.map +1 -0
  166. package/build/Container/ClassResolver.js.map +1 -0
  167. package/build/Container/Container.d.ts +25 -0
  168. package/build/Container/Container.d.ts.map +1 -0
  169. package/build/Container/Container.js +123 -0
  170. package/build/Container/Container.js.map +1 -0
  171. package/build/Container/Contracts.d.ts +3 -0
  172. package/build/Container/Contracts.d.ts.map +1 -0
  173. package/build/Container/Decorators.d.ts +5 -0
  174. package/build/Container/Decorators.d.ts.map +1 -0
  175. package/build/Container/Decorators.js +21 -0
  176. package/build/Container/Decorators.js.map +1 -0
  177. package/build/Container/Metadata.d.ts +21 -0
  178. package/build/Container/Metadata.js +17 -0
  179. package/build/Container/Metadata.js.map +1 -0
  180. package/build/Container/Resolver.js +17 -0
  181. package/build/Container/Resolver.js.map +1 -0
  182. package/build/Container/index.js +22 -0
  183. package/build/Container/index.js.map +1 -0
  184. package/build/Database/Connection.js +44 -0
  185. package/build/Database/Connection.js.map +1 -0
  186. package/build/Database/Decorators.d.ts +36 -0
  187. package/build/Database/Decorators.d.ts.map +1 -0
  188. package/build/Database/Decorators.js +116 -0
  189. package/build/Database/Decorators.js.map +1 -0
  190. package/build/Database/Drivers/MySQL/Alter/index.js +70 -0
  191. package/build/Database/Drivers/MySQL/Alter/index.js.map +1 -0
  192. package/build/Database/Drivers/MySQL/ColumnDefinition.js +19 -0
  193. package/build/Database/Drivers/MySQL/ColumnDefinition.js.map +1 -0
  194. package/build/Database/Drivers/MySQL/Create.js +44 -0
  195. package/build/Database/Drivers/MySQL/Create.js.map +1 -0
  196. package/build/Database/Drivers/MySQL/MysqlDriver.js +93 -0
  197. package/build/Database/Drivers/MySQL/MysqlDriver.js.map +1 -0
  198. package/build/Database/Drivers/MySQL/Schema.js.map +1 -0
  199. package/build/Database/Drivers/SQL/Schema.d.ts +7 -0
  200. package/build/Database/Drivers/SQL/Schema.d.ts.map +1 -0
  201. package/build/Database/Drivers/SQL/Schema.js.map +1 -0
  202. package/build/Database/Drivers/SQL/Statements/Alter.js +22 -0
  203. package/build/Database/Drivers/SQL/Statements/Alter.js.map +1 -0
  204. package/build/Database/Drivers/SQL/Statements/BaseStatement.js +46 -0
  205. package/build/Database/Drivers/SQL/Statements/BaseStatement.js.map +1 -0
  206. package/build/Database/Drivers/SQL/Statements/Delete.js.map +1 -0
  207. package/build/Database/Drivers/SQL/Statements/Insert.js +24 -0
  208. package/build/Database/Drivers/SQL/Statements/Insert.js.map +1 -0
  209. package/build/Database/Drivers/SQL/Statements/Select.js +51 -0
  210. package/build/Database/Drivers/SQL/Statements/Select.js.map +1 -0
  211. package/build/Database/Drivers/SQL/Statements/Update.js.map +1 -0
  212. package/build/Database/Drivers/SQLite/Create.js +43 -0
  213. package/build/Database/Drivers/SQLite/Create.js.map +1 -0
  214. package/build/Database/Drivers/SQLite/Schema.js +49 -0
  215. package/build/Database/Drivers/SQLite/Schema.js.map +1 -0
  216. package/build/Database/Drivers/SQLite/SqliteDriver.js +115 -0
  217. package/build/Database/Drivers/SQLite/SqliteDriver.js.map +1 -0
  218. package/build/Database/Drivers/SQLite/index.js +31 -0
  219. package/build/Database/Drivers/SQLite/index.js.map +1 -0
  220. package/build/Database/Drivers/SchemaContract.d.ts +9 -0
  221. package/build/Database/Drivers/SchemaContract.d.ts.map +1 -0
  222. package/build/Database/Drivers/SchemaContract.js +11 -0
  223. package/build/Database/Drivers/SchemaContract.js.map +1 -0
  224. package/build/Database/Drivers/Statement.js +17 -0
  225. package/build/Database/Drivers/Statement.js.map +1 -0
  226. package/build/Database/Drivers/index.js +21 -0
  227. package/build/Database/Drivers/index.js.map +1 -0
  228. package/build/Database/Entity.d.ts +64 -0
  229. package/build/Database/Entity.d.ts.map +1 -0
  230. package/build/Database/Entity.js +243 -0
  231. package/build/Database/Entity.js.map +1 -0
  232. package/build/Database/EntityNotFoundError.js +12 -0
  233. package/build/Database/EntityNotFoundError.js.map +1 -0
  234. package/build/Database/EntityProxyHandler.d.ts.map +1 -0
  235. package/build/Database/EntityProxyHandler.js +40 -0
  236. package/build/Database/EntityProxyHandler.js.map +1 -0
  237. package/build/Database/EntityQuery.js +158 -0
  238. package/build/Database/EntityQuery.js.map +1 -0
  239. package/build/Database/Fields.d.ts +156 -0
  240. package/build/Database/Fields.d.ts.map +1 -0
  241. package/build/Database/Fields.js +564 -0
  242. package/build/Database/Fields.js.map +1 -0
  243. package/build/Database/Helpers.js +16 -0
  244. package/build/Database/Helpers.js.map +1 -0
  245. package/build/Database/List.d.ts +24 -0
  246. package/build/Database/List.d.ts.map +1 -0
  247. package/build/Database/List.js +48 -0
  248. package/build/Database/List.js.map +1 -0
  249. package/build/Database/Migrations/Migration.js +11 -0
  250. package/build/Database/Migrations/Migration.js.map +1 -0
  251. package/build/Database/Migrations/MigrationHistory.js +43 -0
  252. package/build/Database/Migrations/MigrationHistory.js.map +1 -0
  253. package/build/Database/Migrations/Migrator.js +135 -0
  254. package/build/Database/Migrations/Migrator.js.map +1 -0
  255. package/build/Database/Migrations/index.js +20 -0
  256. package/build/Database/Migrations/index.js.map +1 -0
  257. package/build/Database/ORM/BaseRelationship.js +13 -0
  258. package/build/Database/ORM/BaseRelationship.js.map +1 -0
  259. package/build/Database/Query.js +264 -0
  260. package/build/Database/Query.js.map +1 -0
  261. package/build/Database/Seeders/SeederManager.js +27 -0
  262. package/build/Database/Seeders/SeederManager.js.map +1 -0
  263. package/build/Database/Seeders/index.js +19 -0
  264. package/build/Database/Seeders/index.js.map +1 -0
  265. package/build/Database/StringExpression.js +16 -0
  266. package/build/Database/StringExpression.js.map +1 -0
  267. package/build/Database/Types.d.ts +118 -0
  268. package/build/Database/Types.d.ts.map +1 -0
  269. package/build/Database/Types.js +106 -0
  270. package/build/Database/Types.js.map +1 -0
  271. package/build/Database/index.d.ts +21 -0
  272. package/build/Database/index.d.ts.map +1 -0
  273. package/build/Database/index.js +25 -0
  274. package/build/Database/index.js.map +1 -0
  275. package/build/Encryption/index.d.ts +15 -0
  276. package/build/Encryption/index.d.ts.map +1 -0
  277. package/build/Encryption/index.js +68 -0
  278. package/build/Encryption/index.js.map +1 -0
  279. package/build/Forms/Decorators.d.ts.map +1 -0
  280. package/build/Forms/Decorators.js +29 -0
  281. package/build/Forms/Decorators.js.map +1 -0
  282. package/build/Forms/Form.d.ts +18 -0
  283. package/build/Forms/Form.d.ts.map +1 -0
  284. package/build/Forms/Form.js +68 -0
  285. package/build/Forms/Form.js.map +1 -0
  286. package/build/Forms/FormFields.js +39 -0
  287. package/build/Forms/FormFields.js.map +1 -0
  288. package/build/Forms/index.js +20 -0
  289. package/build/Forms/index.js.map +1 -0
  290. package/build/Framework/App.js +11 -0
  291. package/build/Framework/App.js.map +1 -0
  292. package/build/Framework/Application.js +94 -0
  293. package/build/Framework/Application.js.map +1 -0
  294. package/build/Framework/Auth/Auth.js +116 -0
  295. package/build/Framework/Auth/Auth.js.map +1 -0
  296. package/build/Framework/Auth/User.js +41 -0
  297. package/build/Framework/Auth/User.js.map +1 -0
  298. package/build/Framework/Auth/index.d.ts +6 -0
  299. package/build/Framework/Auth/index.d.ts.map +1 -0
  300. package/build/Framework/Auth/index.js +44 -0
  301. package/build/Framework/Auth/index.js.map +1 -0
  302. package/build/Framework/Config/AppConfig.d.ts +26 -0
  303. package/build/Framework/Config/AppConfig.d.ts.map +1 -0
  304. package/build/Framework/Config/AppConfig.js +20 -0
  305. package/build/Framework/Config/AppConfig.js.map +1 -0
  306. package/build/Framework/Config/AuthConfig.js +12 -0
  307. package/build/Framework/Config/AuthConfig.js.map +1 -0
  308. package/build/Framework/Config/BaseConfig.js +14 -0
  309. package/build/Framework/Config/BaseConfig.js.map +1 -0
  310. package/build/Framework/Config/CacheConfig.d.ts +16 -0
  311. package/build/Framework/Config/CacheConfig.d.ts.map +1 -0
  312. package/build/Framework/Config/CacheConfig.js +37 -0
  313. package/build/Framework/Config/CacheConfig.js.map +1 -0
  314. package/build/Framework/Config/DatabaseConfig.js +23 -0
  315. package/build/Framework/Config/DatabaseConfig.js.map +1 -0
  316. package/build/Framework/Config/MailConfig.d.ts +19 -0
  317. package/build/Framework/Config/MailConfig.d.ts.map +1 -0
  318. package/build/Framework/Config/MailConfig.js +11 -0
  319. package/build/Framework/Config/MailConfig.js.map +1 -0
  320. package/build/Framework/Config/index.js +23 -0
  321. package/build/Framework/Config/index.js.map +1 -0
  322. package/build/Framework/Middleware/AuthMiddleware.d.ts +9 -0
  323. package/build/Framework/Middleware/AuthMiddleware.d.ts.map +1 -0
  324. package/build/Framework/Middleware/AuthMiddleware.js +78 -0
  325. package/build/Framework/Middleware/AuthMiddleware.js.map +1 -0
  326. package/build/Framework/Middleware/CorsMiddleware.d.ts +8 -0
  327. package/build/Framework/Middleware/CorsMiddleware.d.ts.map +1 -0
  328. package/build/Framework/Middleware/CorsMiddleware.js +47 -0
  329. package/build/Framework/Middleware/CorsMiddleware.js.map +1 -0
  330. package/build/Framework/Middleware/StaticAssetsMiddleware.d.ts +16 -0
  331. package/build/Framework/Middleware/StaticAssetsMiddleware.d.ts.map +1 -0
  332. package/build/Framework/Middleware/StaticAssetsMiddleware.js +120 -0
  333. package/build/Framework/Middleware/StaticAssetsMiddleware.js.map +1 -0
  334. package/build/Framework/Middleware/index.js +19 -0
  335. package/build/Framework/Middleware/index.js.map +1 -0
  336. package/build/Framework/Provider.js +22 -0
  337. package/build/Framework/Provider.js.map +1 -0
  338. package/build/Framework/Providers/CacheProvider.js +40 -0
  339. package/build/Framework/Providers/CacheProvider.js.map +1 -0
  340. package/build/Framework/Providers/DatabaseProvider.js +80 -0
  341. package/build/Framework/Providers/DatabaseProvider.js.map +1 -0
  342. package/build/Framework/Providers/MailProvider.js +41 -0
  343. package/build/Framework/Providers/MailProvider.js.map +1 -0
  344. package/build/Framework/Providers/WebsocketsProvider.d.ts.map +1 -0
  345. package/build/Framework/Providers/WebsocketsProvider.js +126 -0
  346. package/build/Framework/Providers/WebsocketsProvider.js.map +1 -0
  347. package/build/Framework/Resolvers/AuthResolver.d.ts.map +1 -0
  348. package/build/Framework/Resolvers/AuthResolver.js +19 -0
  349. package/build/Framework/Resolvers/AuthResolver.js.map +1 -0
  350. package/build/Framework/Resolvers/EntityResolver.js.map +1 -0
  351. package/build/Framework/Resolvers/FormResolver.js.map +1 -0
  352. package/build/Framework/index.js +25 -0
  353. package/build/Framework/index.js.map +1 -0
  354. package/build/Mail/Mailable.js +17 -0
  355. package/build/Mail/Mailable.js.map +1 -0
  356. package/build/Mail/Mailer.js +27 -0
  357. package/build/Mail/Mailer.js.map +1 -0
  358. package/build/Mail/PendingMail.js +54 -0
  359. package/build/Mail/PendingMail.js.map +1 -0
  360. package/build/Mail/SentMessage.js +20 -0
  361. package/build/Mail/SentMessage.js.map +1 -0
  362. package/build/Mail/Transports/MemoryTransport.js +15 -0
  363. package/build/Mail/Transports/MemoryTransport.js.map +1 -0
  364. package/build/Mail/Transports/SendGridTransport.js +106 -0
  365. package/build/Mail/Transports/SendGridTransport.js.map +1 -0
  366. package/build/Mail/index.js +20 -0
  367. package/build/Mail/index.js.map +1 -0
  368. package/build/Models/Model.js.map +1 -0
  369. package/build/Models/index.d.ts.map +1 -0
  370. package/build/Models/index.js +64 -0
  371. package/build/Models/index.js.map +1 -0
  372. package/build/Router/BaseController.js +22 -0
  373. package/build/Router/BaseController.js.map +1 -0
  374. package/build/Router/Decorators.d.ts +19 -0
  375. package/build/Router/Decorators.d.ts.map +1 -0
  376. package/build/Router/Decorators.js +175 -0
  377. package/build/Router/Decorators.js.map +1 -0
  378. package/build/Router/Http/ErrorHandler.js +53 -0
  379. package/build/Router/Http/ErrorHandler.js.map +1 -0
  380. package/build/Router/Http/ErrorHandlerInterface.js +8 -0
  381. package/build/Router/Http/ErrorHandlerInterface.js.map +1 -0
  382. package/build/Router/Http/Errors/HttpError.js +18 -0
  383. package/build/Router/Http/Errors/HttpError.js.map +1 -0
  384. package/build/Router/Http/Handler.d.ts +19 -0
  385. package/build/Router/Http/Handler.d.ts.map +1 -0
  386. package/build/Router/Http/Handler.js +163 -0
  387. package/build/Router/Http/Handler.js.map +1 -0
  388. package/build/Router/Http/HttpRoute.d.ts +25 -0
  389. package/build/Router/Http/HttpRoute.d.ts.map +1 -0
  390. package/build/Router/Http/HttpRoute.js +97 -0
  391. package/build/Router/Http/HttpRoute.js.map +1 -0
  392. package/build/Router/Http/Middleware.d.ts +7 -0
  393. package/build/Router/Http/Middleware.d.ts.map +1 -0
  394. package/build/Router/Http/Middleware.js +8 -0
  395. package/build/Router/Http/Middleware.js.map +1 -0
  396. package/build/Router/Http/Request.d.ts +38 -0
  397. package/build/Router/Http/Request.d.ts.map +1 -0
  398. package/build/Router/Http/Request.js +211 -0
  399. package/build/Router/Http/Request.js.map +1 -0
  400. package/build/Router/Http/Response.d.ts +14 -0
  401. package/build/Router/Http/Response.d.ts.map +1 -0
  402. package/build/Router/Http/Response.js +31 -0
  403. package/build/Router/Http/Response.js.map +1 -0
  404. package/build/Router/Http/index.d.ts +84 -0
  405. package/build/Router/Http/index.d.ts.map +1 -0
  406. package/build/Router/Http/index.js +104 -0
  407. package/build/Router/Http/index.js.map +1 -0
  408. package/build/Router/Metadata.d.ts +41 -0
  409. package/build/Router/Metadata.d.ts.map +1 -0
  410. package/build/Router/Metadata.js +33 -0
  411. package/build/Router/Metadata.js.map +1 -0
  412. package/build/Router/Middleware.d.ts +13 -0
  413. package/build/Router/Middleware.d.ts.map +1 -0
  414. package/build/Router/Middleware.js +7 -0
  415. package/build/Router/Middleware.js.map +1 -0
  416. package/build/Router/Request.d.ts +24 -0
  417. package/build/Router/Request.d.ts.map +1 -0
  418. package/build/Router/Request.js +44 -0
  419. package/build/Router/Request.js.map +1 -0
  420. package/build/Router/Route.d.ts +13 -0
  421. package/build/Router/Route.d.ts.map +1 -0
  422. package/build/Router/Route.js +20 -0
  423. package/build/Router/Route.js.map +1 -0
  424. package/build/Router/Router.d.ts +19 -0
  425. package/build/Router/Router.d.ts.map +1 -0
  426. package/build/Router/Router.js +36 -0
  427. package/build/Router/Router.js.map +1 -0
  428. package/build/Router/Servers/index.d.ts +5 -0
  429. package/build/Router/Servers/index.d.ts.map +1 -0
  430. package/build/Router/Servers/index.js +19 -0
  431. package/build/Router/Servers/index.js.map +1 -0
  432. package/build/Router/Servers/node.d.ts.map +1 -0
  433. package/build/Router/Servers/node.js +41 -0
  434. package/build/Router/Servers/node.js.map +1 -0
  435. package/build/Router/Servers/uNetworking.d.ts.map +1 -0
  436. package/build/Router/Servers/uNetworking.js +172 -0
  437. package/build/Router/Servers/uNetworking.js.map +1 -0
  438. package/build/Router/Websockets/Handler.d.ts +15 -0
  439. package/build/Router/Websockets/Handler.d.ts.map +1 -0
  440. package/build/Router/Websockets/Handler.js +69 -0
  441. package/build/Router/Websockets/Handler.js.map +1 -0
  442. package/build/Router/Websockets/Middleware.d.ts +7 -0
  443. package/build/Router/Websockets/Middleware.d.ts.map +1 -0
  444. package/build/Router/Websockets/Middleware.js +8 -0
  445. package/build/Router/Websockets/Middleware.js.map +1 -0
  446. package/build/Router/Websockets/WebsocketRoute.d.ts.map +1 -0
  447. package/build/Router/Websockets/WebsocketRoute.js +47 -0
  448. package/build/Router/Websockets/WebsocketRoute.js.map +1 -0
  449. package/build/Router/Websockets/index.d.ts +19 -0
  450. package/build/Router/Websockets/index.d.ts.map +1 -0
  451. package/build/Router/Websockets/index.js +66 -0
  452. package/build/Router/Websockets/index.js.map +1 -0
  453. package/build/Router/Websockets/types.d.ts +21 -0
  454. package/build/Router/Websockets/types.d.ts.map +1 -0
  455. package/build/Router/Websockets/types.js +9 -0
  456. package/build/Router/Websockets/types.js.map +1 -0
  457. package/build/Router/index.js +23 -0
  458. package/build/Router/index.js.map +1 -0
  459. package/build/Storage/File.d.ts.map +1 -0
  460. package/build/Storage/File.js +65 -0
  461. package/build/Storage/File.js.map +1 -0
  462. package/build/Storage/Storage.d.ts +13 -0
  463. package/build/Storage/Storage.d.ts.map +1 -0
  464. package/build/Storage/Storage.js +120 -0
  465. package/build/Storage/Storage.js.map +1 -0
  466. package/build/Storage/index.js +21 -0
  467. package/build/Storage/index.js.map +1 -0
  468. package/build/Storage/utils.d.ts +5 -0
  469. package/build/Storage/utils.d.ts.map +1 -0
  470. package/build/Storage/utils.js +20 -0
  471. package/build/Storage/utils.js.map +1 -0
  472. package/build/Support/Array.d.ts +29 -0
  473. package/build/Support/Array.d.ts.map +1 -0
  474. package/build/Support/Array.js +112 -0
  475. package/build/Support/Array.js.map +1 -0
  476. package/build/Support/Metadata.d.ts +16 -0
  477. package/build/Support/Metadata.d.ts.map +1 -0
  478. package/build/Support/Metadata.js +33 -0
  479. package/build/Support/Metadata.js.map +1 -0
  480. package/build/Support/String.js.map +1 -0
  481. package/build/Support/index.d.ts +16 -0
  482. package/build/Support/index.d.ts.map +1 -0
  483. package/build/Support/utils.js +12 -0
  484. package/build/Support/utils.js.map +1 -0
  485. package/build/Testing/TestCase.d.ts +33 -0
  486. package/build/Testing/TestCase.d.ts.map +1 -0
  487. package/build/Testing/TestCase.js +138 -0
  488. package/build/Testing/TestCase.js.map +1 -0
  489. package/build/Validation/Rules/Email.js +17 -0
  490. package/build/Validation/Rules/Email.js.map +1 -0
  491. package/build/Validation/Rules/FileExtension.js +19 -0
  492. package/build/Validation/Rules/FileExtension.js.map +1 -0
  493. package/build/Validation/Rules/MaxLength.js +16 -0
  494. package/build/Validation/Rules/MaxLength.js.map +1 -0
  495. package/build/Validation/Rules/MinLength.js +16 -0
  496. package/build/Validation/Rules/MinLength.js.map +1 -0
  497. package/build/Validation/Rules/Optional.js +16 -0
  498. package/build/Validation/Rules/Optional.js.map +1 -0
  499. package/build/Validation/Rules/Required.js +24 -0
  500. package/build/Validation/Rules/Required.js.map +1 -0
  501. package/build/Validation/Validator.js +13 -0
  502. package/build/Validation/Validator.js.map +1 -0
  503. package/build/Validation/index.d.ts +11 -0
  504. package/build/Validation/index.d.ts.map +1 -0
  505. package/build/Validation/index.js +27 -0
  506. package/build/Validation/index.js.map +1 -0
  507. package/package.json +28 -29
  508. package/tests/Cache/DatabaseStoreTest.ts +110 -0
  509. package/tests/Cache/FileStoreTest.ts +93 -0
  510. package/tests/Cache/MemoryStoreTest.ts +92 -0
  511. package/tests/Container/ContainerTest.ts +336 -0
  512. package/tests/Database/Drivers/MySQL/AlterTest.ts +100 -0
  513. package/tests/Database/Drivers/MySQL/CreateTest.ts +39 -0
  514. package/tests/Database/Drivers/MysqlDriverTest.ts +140 -0
  515. package/tests/Database/Drivers/SqliteDriverTest.ts +126 -0
  516. package/tests/Database/Entities/Article.ts +21 -0
  517. package/tests/Database/Entities/Profile.ts +21 -0
  518. package/tests/Database/Entities/Role.ts +15 -0
  519. package/tests/Database/Entities/User.ts +35 -0
  520. package/tests/Database/EntityRelationshipsTest.ts +475 -0
  521. package/tests/Database/EntityTest.ts +202 -0
  522. package/tests/Database/Migrations/RunnerTest.ts +96 -0
  523. package/tests/Database/Migrations/migrations/1.createUserTable.ts +12 -0
  524. package/tests/Database/Migrations/migrations/2.createArticlesTable.ts +12 -0
  525. package/tests/Database/QueryTest.ts +573 -0
  526. package/tests/Database/SchemaTest.ts +32 -0
  527. package/tests/Database/Seeders/RunnerTest.ts +30 -0
  528. package/tests/Database/Seeders/seeders/RandomSeeder.ts +10 -0
  529. package/tests/Database/utils.ts +16 -0
  530. package/tests/Forms/FormsTest.ts +59 -0
  531. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.ts +129 -0
  532. package/tests/Framework/Resolvers/EntityResolverTest.ts +48 -0
  533. package/tests/Framework/Router/RouterTest.ts +33 -0
  534. package/tests/Mail/MailerTest.ts +76 -0
  535. package/tests/Model/ModelTest.ts +183 -0
  536. package/tests/Router/HttpHandlerTest.ts +72 -0
  537. package/tests/Router/RequestTest.ts +77 -0
  538. package/tests/Router/WebSocketsHandlerTest.ts +51 -0
  539. package/tests/Storage/StorageTest.ts +97 -0
  540. package/tests/Support/ArrayTest.ts +167 -0
  541. package/tests/Support/StringTest.ts +18 -0
  542. package/tests/Validation/RulesTest.ts +54 -0
  543. package/Cache/Stores/DatabaseStore.js +0 -104
  544. package/Cache/Stores/DatabaseStore.js.map +0 -1
  545. package/Cache/Stores/FileStore.js +0 -63
  546. package/Cache/Stores/FileStore.js.map +0 -1
  547. package/Cache/Stores/MemoryStore.js +0 -60
  548. package/Cache/Stores/MemoryStore.js.map +0 -1
  549. package/Cache/index.js +0 -18
  550. package/Cache/index.js.map +0 -1
  551. package/Container/ClassResolver.js.map +0 -1
  552. package/Container/Container.d.ts +0 -25
  553. package/Container/Container.d.ts.map +0 -1
  554. package/Container/Container.js +0 -123
  555. package/Container/Container.js.map +0 -1
  556. package/Container/Contracts.d.ts +0 -3
  557. package/Container/Contracts.d.ts.map +0 -1
  558. package/Container/Decorators.d.ts +0 -5
  559. package/Container/Decorators.d.ts.map +0 -1
  560. package/Container/Decorators.js +0 -22
  561. package/Container/Decorators.js.map +0 -1
  562. package/Container/Metadata.d.ts +0 -21
  563. package/Container/Metadata.js +0 -19
  564. package/Container/Metadata.js.map +0 -1
  565. package/Container/Resolver.js +0 -16
  566. package/Container/Resolver.js.map +0 -1
  567. package/Container/index.js +0 -18
  568. package/Container/index.js.map +0 -1
  569. package/Database/Connection.js +0 -43
  570. package/Database/Connection.js.map +0 -1
  571. package/Database/Decorators.d.ts +0 -37
  572. package/Database/Decorators.d.ts.map +0 -1
  573. package/Database/Decorators.js +0 -116
  574. package/Database/Decorators.js.map +0 -1
  575. package/Database/Drivers/MySQL/Alter/index.js +0 -65
  576. package/Database/Drivers/MySQL/Alter/index.js.map +0 -1
  577. package/Database/Drivers/MySQL/ColumnDefinition.js +0 -18
  578. package/Database/Drivers/MySQL/ColumnDefinition.js.map +0 -1
  579. package/Database/Drivers/MySQL/Create.js +0 -43
  580. package/Database/Drivers/MySQL/Create.js.map +0 -1
  581. package/Database/Drivers/MySQL/MysqlDriver.js +0 -92
  582. package/Database/Drivers/MySQL/MysqlDriver.js.map +0 -1
  583. package/Database/Drivers/MySQL/Schema.js.map +0 -1
  584. package/Database/Drivers/SQL/Schema.d.ts +0 -7
  585. package/Database/Drivers/SQL/Schema.d.ts.map +0 -1
  586. package/Database/Drivers/SQL/Schema.js.map +0 -1
  587. package/Database/Drivers/SQL/Statements/Alter.js +0 -25
  588. package/Database/Drivers/SQL/Statements/Alter.js.map +0 -1
  589. package/Database/Drivers/SQL/Statements/BaseStatement.js +0 -46
  590. package/Database/Drivers/SQL/Statements/BaseStatement.js.map +0 -1
  591. package/Database/Drivers/SQL/Statements/Delete.js.map +0 -1
  592. package/Database/Drivers/SQL/Statements/Insert.js +0 -24
  593. package/Database/Drivers/SQL/Statements/Insert.js.map +0 -1
  594. package/Database/Drivers/SQL/Statements/Select.js +0 -51
  595. package/Database/Drivers/SQL/Statements/Select.js.map +0 -1
  596. package/Database/Drivers/SQL/Statements/Update.js.map +0 -1
  597. package/Database/Drivers/SQLite/Create.js +0 -42
  598. package/Database/Drivers/SQLite/Create.js.map +0 -1
  599. package/Database/Drivers/SQLite/Schema.js +0 -49
  600. package/Database/Drivers/SQLite/Schema.js.map +0 -1
  601. package/Database/Drivers/SQLite/SqliteDriver.js +0 -114
  602. package/Database/Drivers/SQLite/SqliteDriver.js.map +0 -1
  603. package/Database/Drivers/SQLite/index.js +0 -27
  604. package/Database/Drivers/SQLite/index.js.map +0 -1
  605. package/Database/Drivers/SchemaContract.d.ts +0 -9
  606. package/Database/Drivers/SchemaContract.d.ts.map +0 -1
  607. package/Database/Drivers/SchemaContract.js +0 -10
  608. package/Database/Drivers/SchemaContract.js.map +0 -1
  609. package/Database/Drivers/Statement.js +0 -16
  610. package/Database/Drivers/Statement.js.map +0 -1
  611. package/Database/Drivers/index.js +0 -17
  612. package/Database/Drivers/index.js.map +0 -1
  613. package/Database/Entity.d.ts +0 -65
  614. package/Database/Entity.d.ts.map +0 -1
  615. package/Database/Entity.js +0 -252
  616. package/Database/Entity.js.map +0 -1
  617. package/Database/EntityNotFoundError.js +0 -11
  618. package/Database/EntityNotFoundError.js.map +0 -1
  619. package/Database/EntityProxyHandler.d.ts.map +0 -1
  620. package/Database/EntityProxyHandler.js +0 -31
  621. package/Database/EntityProxyHandler.js.map +0 -1
  622. package/Database/EntityQuery.js +0 -157
  623. package/Database/EntityQuery.js.map +0 -1
  624. package/Database/Fields.d.ts +0 -156
  625. package/Database/Fields.d.ts.map +0 -1
  626. package/Database/Fields.js +0 -545
  627. package/Database/Fields.js.map +0 -1
  628. package/Database/Helpers.js +0 -17
  629. package/Database/Helpers.js.map +0 -1
  630. package/Database/List.d.ts +0 -25
  631. package/Database/List.d.ts.map +0 -1
  632. package/Database/List.js +0 -50
  633. package/Database/List.js.map +0 -1
  634. package/Database/Migrations/Migration.js +0 -10
  635. package/Database/Migrations/Migration.js.map +0 -1
  636. package/Database/Migrations/MigrationHistory.js +0 -39
  637. package/Database/Migrations/MigrationHistory.js.map +0 -1
  638. package/Database/Migrations/Migrator.js +0 -118
  639. package/Database/Migrations/Migrator.js.map +0 -1
  640. package/Database/Migrations/index.js +0 -16
  641. package/Database/Migrations/index.js.map +0 -1
  642. package/Database/ORM/BaseRelationship.js +0 -11
  643. package/Database/ORM/BaseRelationship.js.map +0 -1
  644. package/Database/Query.js +0 -266
  645. package/Database/Query.js.map +0 -1
  646. package/Database/Seeders/SeederManager.js +0 -25
  647. package/Database/Seeders/SeederManager.js.map +0 -1
  648. package/Database/Seeders/index.js +0 -15
  649. package/Database/Seeders/index.js.map +0 -1
  650. package/Database/StringExpression.js +0 -15
  651. package/Database/StringExpression.js.map +0 -1
  652. package/Database/Types.d.ts +0 -118
  653. package/Database/Types.d.ts.map +0 -1
  654. package/Database/Types.js +0 -95
  655. package/Database/Types.js.map +0 -1
  656. package/Database/index.d.ts +0 -21
  657. package/Database/index.d.ts.map +0 -1
  658. package/Database/index.js +0 -21
  659. package/Database/index.js.map +0 -1
  660. package/Encryption/index.d.ts +0 -16
  661. package/Encryption/index.d.ts.map +0 -1
  662. package/Encryption/index.js +0 -54
  663. package/Encryption/index.js.map +0 -1
  664. package/Forms/Decorators.d.ts.map +0 -1
  665. package/Forms/Decorators.js +0 -29
  666. package/Forms/Decorators.js.map +0 -1
  667. package/Forms/Form.d.ts +0 -18
  668. package/Forms/Form.d.ts.map +0 -1
  669. package/Forms/Form.js +0 -70
  670. package/Forms/Form.js.map +0 -1
  671. package/Forms/FormFields.js +0 -36
  672. package/Forms/FormFields.js.map +0 -1
  673. package/Forms/index.js +0 -16
  674. package/Forms/index.js.map +0 -1
  675. package/Framework/App.js +0 -10
  676. package/Framework/App.js.map +0 -1
  677. package/Framework/Application.js +0 -92
  678. package/Framework/Application.js.map +0 -1
  679. package/Framework/Auth/Auth.js +0 -113
  680. package/Framework/Auth/Auth.js.map +0 -1
  681. package/Framework/Auth/User.js +0 -38
  682. package/Framework/Auth/User.js.map +0 -1
  683. package/Framework/Auth/index.d.ts +0 -6
  684. package/Framework/Auth/index.d.ts.map +0 -1
  685. package/Framework/Auth/index.js +0 -40
  686. package/Framework/Auth/index.js.map +0 -1
  687. package/Framework/Config/AppConfig.d.ts +0 -20
  688. package/Framework/Config/AppConfig.d.ts.map +0 -1
  689. package/Framework/Config/AppConfig.js +0 -13
  690. package/Framework/Config/AppConfig.js.map +0 -1
  691. package/Framework/Config/AuthConfig.js +0 -8
  692. package/Framework/Config/AuthConfig.js.map +0 -1
  693. package/Framework/Config/BaseConfig.js +0 -13
  694. package/Framework/Config/BaseConfig.js.map +0 -1
  695. package/Framework/Config/CacheConfig.d.ts +0 -16
  696. package/Framework/Config/CacheConfig.d.ts.map +0 -1
  697. package/Framework/Config/CacheConfig.js +0 -22
  698. package/Framework/Config/CacheConfig.js.map +0 -1
  699. package/Framework/Config/DatabaseConfig.js +0 -25
  700. package/Framework/Config/DatabaseConfig.js.map +0 -1
  701. package/Framework/Config/MailConfig.d.ts +0 -19
  702. package/Framework/Config/MailConfig.d.ts.map +0 -1
  703. package/Framework/Config/MailConfig.js +0 -12
  704. package/Framework/Config/MailConfig.js.map +0 -1
  705. package/Framework/Config/index.js +0 -19
  706. package/Framework/Config/index.js.map +0 -1
  707. package/Framework/Middleware/AuthMiddleware.d.ts +0 -8
  708. package/Framework/Middleware/AuthMiddleware.d.ts.map +0 -1
  709. package/Framework/Middleware/AuthMiddleware.js +0 -63
  710. package/Framework/Middleware/AuthMiddleware.js.map +0 -1
  711. package/Framework/Middleware/CorsMiddleware.d.ts +0 -7
  712. package/Framework/Middleware/CorsMiddleware.d.ts.map +0 -1
  713. package/Framework/Middleware/CorsMiddleware.js +0 -45
  714. package/Framework/Middleware/CorsMiddleware.js.map +0 -1
  715. package/Framework/Middleware/StaticAssetsMiddleware.d.ts +0 -15
  716. package/Framework/Middleware/StaticAssetsMiddleware.d.ts.map +0 -1
  717. package/Framework/Middleware/StaticAssetsMiddleware.js +0 -105
  718. package/Framework/Middleware/StaticAssetsMiddleware.js.map +0 -1
  719. package/Framework/Middleware/index.js +0 -15
  720. package/Framework/Middleware/index.js.map +0 -1
  721. package/Framework/Provider.js +0 -21
  722. package/Framework/Provider.js.map +0 -1
  723. package/Framework/Providers/CacheProvider.js +0 -39
  724. package/Framework/Providers/CacheProvider.js.map +0 -1
  725. package/Framework/Providers/DatabaseProvider.js +0 -64
  726. package/Framework/Providers/DatabaseProvider.js.map +0 -1
  727. package/Framework/Providers/MailProvider.js +0 -40
  728. package/Framework/Providers/MailProvider.js.map +0 -1
  729. package/Framework/Providers/WebsocketsProvider.d.ts.map +0 -1
  730. package/Framework/Providers/WebsocketsProvider.js +0 -122
  731. package/Framework/Providers/WebsocketsProvider.js.map +0 -1
  732. package/Framework/Resolvers/AuthResolver.d.ts.map +0 -1
  733. package/Framework/Resolvers/AuthResolver.js +0 -15
  734. package/Framework/Resolvers/AuthResolver.js.map +0 -1
  735. package/Framework/Resolvers/EntityResolver.js.map +0 -1
  736. package/Framework/Resolvers/FormResolver.js.map +0 -1
  737. package/Framework/index.js +0 -21
  738. package/Framework/index.js.map +0 -1
  739. package/Mail/Mailable.js +0 -10
  740. package/Mail/Mailable.js.map +0 -1
  741. package/Mail/Mailer.js +0 -25
  742. package/Mail/Mailer.js.map +0 -1
  743. package/Mail/PendingMail.js +0 -53
  744. package/Mail/PendingMail.js.map +0 -1
  745. package/Mail/SentMessage.js +0 -13
  746. package/Mail/SentMessage.js.map +0 -1
  747. package/Mail/Transports/MemoryTransport.js +0 -18
  748. package/Mail/Transports/MemoryTransport.js.map +0 -1
  749. package/Mail/Transports/SendGridTransport.js +0 -59
  750. package/Mail/Transports/SendGridTransport.js.map +0 -1
  751. package/Mail/index.js +0 -16
  752. package/Mail/index.js.map +0 -1
  753. package/Models/Model.js.map +0 -1
  754. package/Models/index.d.ts.map +0 -1
  755. package/Models/index.js +0 -59
  756. package/Models/index.js.map +0 -1
  757. package/Router/Action.d.ts +0 -17
  758. package/Router/Action.d.ts.map +0 -1
  759. package/Router/Action.js +0 -43
  760. package/Router/Action.js.map +0 -1
  761. package/Router/ActionRequest.d.ts +0 -17
  762. package/Router/ActionRequest.d.ts.map +0 -1
  763. package/Router/ActionRequest.js +0 -43
  764. package/Router/ActionRequest.js.map +0 -1
  765. package/Router/BaseController.js +0 -21
  766. package/Router/BaseController.js.map +0 -1
  767. package/Router/Decorators.d.ts +0 -19
  768. package/Router/Decorators.d.ts.map +0 -1
  769. package/Router/Decorators.js +0 -176
  770. package/Router/Decorators.js.map +0 -1
  771. package/Router/Http/ErrorHandler.js +0 -52
  772. package/Router/Http/ErrorHandler.js.map +0 -1
  773. package/Router/Http/ErrorHandlerInterface.js +0 -7
  774. package/Router/Http/ErrorHandlerInterface.js.map +0 -1
  775. package/Router/Http/Errors/HttpError.js +0 -16
  776. package/Router/Http/Errors/HttpError.js.map +0 -1
  777. package/Router/Http/Handler.d.ts +0 -17
  778. package/Router/Http/Handler.d.ts.map +0 -1
  779. package/Router/Http/Handler.js +0 -135
  780. package/Router/Http/Handler.js.map +0 -1
  781. package/Router/Http/HttpRoute.d.ts +0 -23
  782. package/Router/Http/HttpRoute.d.ts.map +0 -1
  783. package/Router/Http/HttpRoute.js +0 -111
  784. package/Router/Http/HttpRoute.js.map +0 -1
  785. package/Router/Http/Request.d.ts +0 -39
  786. package/Router/Http/Request.d.ts.map +0 -1
  787. package/Router/Http/Request.js +0 -196
  788. package/Router/Http/Request.js.map +0 -1
  789. package/Router/Http/Response.d.ts +0 -19
  790. package/Router/Http/Response.d.ts.map +0 -1
  791. package/Router/Http/Response.js +0 -43
  792. package/Router/Http/Response.js.map +0 -1
  793. package/Router/Http/Route.d.ts +0 -24
  794. package/Router/Http/Route.d.ts.map +0 -1
  795. package/Router/Http/Route.js +0 -111
  796. package/Router/Http/Route.js.map +0 -1
  797. package/Router/Http/index.d.ts +0 -84
  798. package/Router/Http/index.d.ts.map +0 -1
  799. package/Router/Http/index.js +0 -100
  800. package/Router/Http/index.js.map +0 -1
  801. package/Router/Metadata.d.ts +0 -41
  802. package/Router/Metadata.d.ts.map +0 -1
  803. package/Router/Metadata.js +0 -33
  804. package/Router/Metadata.js.map +0 -1
  805. package/Router/Middleware.d.ts +0 -7
  806. package/Router/Middleware.d.ts.map +0 -1
  807. package/Router/Middleware.js +0 -3
  808. package/Router/Middleware.js.map +0 -1
  809. package/Router/Request.d.ts +0 -24
  810. package/Router/Request.d.ts.map +0 -1
  811. package/Router/Request.js +0 -43
  812. package/Router/Request.js.map +0 -1
  813. package/Router/Route.d.ts +0 -14
  814. package/Router/Route.d.ts.map +0 -1
  815. package/Router/Route.js +0 -16
  816. package/Router/Route.js.map +0 -1
  817. package/Router/Router.d.ts +0 -13
  818. package/Router/Router.d.ts.map +0 -1
  819. package/Router/Router.js +0 -33
  820. package/Router/Router.js.map +0 -1
  821. package/Router/Servers/index.d.ts +0 -5
  822. package/Router/Servers/index.d.ts.map +0 -1
  823. package/Router/Servers/index.js +0 -15
  824. package/Router/Servers/index.js.map +0 -1
  825. package/Router/Servers/node.d.ts.map +0 -1
  826. package/Router/Servers/node.js +0 -31
  827. package/Router/Servers/node.js.map +0 -1
  828. package/Router/Servers/uNetworking.d.ts.map +0 -1
  829. package/Router/Servers/uNetworking.js +0 -36
  830. package/Router/Servers/uNetworking.js.map +0 -1
  831. package/Router/Websockets/ActionRequest.d.ts +0 -17
  832. package/Router/Websockets/ActionRequest.d.ts.map +0 -1
  833. package/Router/Websockets/ActionRequest.js +0 -43
  834. package/Router/Websockets/ActionRequest.js.map +0 -1
  835. package/Router/Websockets/Handler.d.ts +0 -14
  836. package/Router/Websockets/Handler.d.ts.map +0 -1
  837. package/Router/Websockets/Handler.js +0 -62
  838. package/Router/Websockets/Handler.js.map +0 -1
  839. package/Router/Websockets/WebsocketAction.d.ts +0 -7
  840. package/Router/Websockets/WebsocketAction.d.ts.map +0 -1
  841. package/Router/Websockets/WebsocketAction.js +0 -55
  842. package/Router/Websockets/WebsocketAction.js.map +0 -1
  843. package/Router/Websockets/WebsocketEvent.d.ts +0 -16
  844. package/Router/Websockets/WebsocketEvent.d.ts.map +0 -1
  845. package/Router/Websockets/WebsocketEvent.js +0 -53
  846. package/Router/Websockets/WebsocketEvent.js.map +0 -1
  847. package/Router/Websockets/WebsocketRequest.d.ts +0 -4
  848. package/Router/Websockets/WebsocketRequest.d.ts.map +0 -1
  849. package/Router/Websockets/WebsocketRequest.js +0 -8
  850. package/Router/Websockets/WebsocketRequest.js.map +0 -1
  851. package/Router/Websockets/WebsocketRoute.d.ts.map +0 -1
  852. package/Router/Websockets/WebsocketRoute.js +0 -46
  853. package/Router/Websockets/WebsocketRoute.js.map +0 -1
  854. package/Router/Websockets/index.d.ts +0 -17
  855. package/Router/Websockets/index.d.ts.map +0 -1
  856. package/Router/Websockets/index.js +0 -58
  857. package/Router/Websockets/index.js.map +0 -1
  858. package/Router/Websockets/types.d.ts +0 -21
  859. package/Router/Websockets/types.d.ts.map +0 -1
  860. package/Router/Websockets/types.js +0 -9
  861. package/Router/Websockets/types.js.map +0 -1
  862. package/Router/index.js +0 -19
  863. package/Router/index.js.map +0 -1
  864. package/Storage/File.d.ts.map +0 -1
  865. package/Storage/File.js +0 -47
  866. package/Storage/File.js.map +0 -1
  867. package/Storage/Storage.d.ts +0 -14
  868. package/Storage/Storage.d.ts.map +0 -1
  869. package/Storage/Storage.js +0 -106
  870. package/Storage/Storage.js.map +0 -1
  871. package/Storage/index.js +0 -17
  872. package/Storage/index.js.map +0 -1
  873. package/Storage/utils.d.ts +0 -6
  874. package/Storage/utils.d.ts.map +0 -1
  875. package/Storage/utils.js +0 -21
  876. package/Storage/utils.js.map +0 -1
  877. package/Support/Array.d.ts +0 -29
  878. package/Support/Array.d.ts.map +0 -1
  879. package/Support/Array.js +0 -112
  880. package/Support/Array.js.map +0 -1
  881. package/Support/Metadata.d.ts +0 -16
  882. package/Support/Metadata.d.ts.map +0 -1
  883. package/Support/Metadata.js +0 -32
  884. package/Support/Metadata.js.map +0 -1
  885. package/Support/String.js.map +0 -1
  886. package/Support/index.d.ts +0 -16
  887. package/Support/index.d.ts.map +0 -1
  888. package/Support/utils.js +0 -13
  889. package/Support/utils.js.map +0 -1
  890. package/Testing/TestCase.d.ts +0 -34
  891. package/Testing/TestCase.d.ts.map +0 -1
  892. package/Testing/TestCase.js +0 -138
  893. package/Testing/TestCase.js.map +0 -1
  894. package/Validation/Rules/Email.js +0 -21
  895. package/Validation/Rules/Email.js.map +0 -1
  896. package/Validation/Rules/FileExtension.js +0 -23
  897. package/Validation/Rules/FileExtension.js.map +0 -1
  898. package/Validation/Rules/MaxLength.js +0 -20
  899. package/Validation/Rules/MaxLength.js.map +0 -1
  900. package/Validation/Rules/MinLength.js +0 -20
  901. package/Validation/Rules/MinLength.js.map +0 -1
  902. package/Validation/Rules/Optional.js +0 -20
  903. package/Validation/Rules/Optional.js.map +0 -1
  904. package/Validation/Rules/Required.js +0 -27
  905. package/Validation/Rules/Required.js.map +0 -1
  906. package/Validation/Validator.js +0 -11
  907. package/Validation/Validator.js.map +0 -1
  908. package/Validation/index.d.ts +0 -11
  909. package/Validation/index.d.ts.map +0 -1
  910. package/Validation/index.js +0 -23
  911. package/Validation/index.js.map +0 -1
  912. /package/{Cache → build/Cache}/Cache.d.ts +0 -0
  913. /package/{Cache → build/Cache}/Cache.d.ts.map +0 -0
  914. /package/{Cache → build/Cache}/Cache.js +0 -0
  915. /package/{Cache → build/Cache}/Cache.js.map +0 -0
  916. /package/{Cache → build/Cache}/Stores/DatabaseStore.d.ts +0 -0
  917. /package/{Cache → build/Cache}/Stores/DatabaseStore.d.ts.map +0 -0
  918. /package/{Cache → build/Cache}/Stores/FileStore.d.ts +0 -0
  919. /package/{Cache → build/Cache}/Stores/FileStore.d.ts.map +0 -0
  920. /package/{Cache → build/Cache}/Stores/MemoryStore.d.ts +0 -0
  921. /package/{Cache → build/Cache}/Stores/MemoryStore.d.ts.map +0 -0
  922. /package/{Cache → build/Cache}/index.d.ts +0 -0
  923. /package/{Cache → build/Cache}/index.d.ts.map +0 -0
  924. /package/{Cache → build/Cache}/types.d.ts +0 -0
  925. /package/{Cache → build/Cache}/types.d.ts.map +0 -0
  926. /package/{Cache → build/Cache}/types.js +0 -0
  927. /package/{Cache → build/Cache}/types.js.map +0 -0
  928. /package/{Container → build/Container}/ClassResolver.d.ts +0 -0
  929. /package/{Container → build/Container}/ClassResolver.d.ts.map +0 -0
  930. /package/{Container → build/Container}/ClassResolver.js +0 -0
  931. /package/{Container → build/Container}/Contracts.js +0 -0
  932. /package/{Container → build/Container}/Contracts.js.map +0 -0
  933. /package/{Container → build/Container}/Metadata.d.ts.map +0 -0
  934. /package/{Container → build/Container}/Resolver.d.ts +0 -0
  935. /package/{Container → build/Container}/Resolver.d.ts.map +0 -0
  936. /package/{Container → build/Container}/index.d.ts +0 -0
  937. /package/{Container → build/Container}/index.d.ts.map +0 -0
  938. /package/{Database → build/Database}/Clauses/Where.d.ts +0 -0
  939. /package/{Database → build/Database}/Clauses/Where.d.ts.map +0 -0
  940. /package/{Database → build/Database}/Clauses/Where.js +0 -0
  941. /package/{Database → build/Database}/Clauses/Where.js.map +0 -0
  942. /package/{Database → build/Database}/Connection.d.ts +0 -0
  943. /package/{Database → build/Database}/Connection.d.ts.map +0 -0
  944. /package/{Database → build/Database}/Drivers/DatabaseDriver.d.ts +0 -0
  945. /package/{Database → build/Database}/Drivers/DatabaseDriver.d.ts.map +0 -0
  946. /package/{Database → build/Database}/Drivers/DatabaseDriver.js +0 -0
  947. /package/{Database → build/Database}/Drivers/DatabaseDriver.js.map +0 -0
  948. /package/{Database → build/Database}/Drivers/MySQL/Alter/index.d.ts +0 -0
  949. /package/{Database → build/Database}/Drivers/MySQL/Alter/index.d.ts.map +0 -0
  950. /package/{Database → build/Database}/Drivers/MySQL/ColumnDefinition.d.ts +0 -0
  951. /package/{Database → build/Database}/Drivers/MySQL/ColumnDefinition.d.ts.map +0 -0
  952. /package/{Database → build/Database}/Drivers/MySQL/Create.d.ts +0 -0
  953. /package/{Database → build/Database}/Drivers/MySQL/Create.d.ts.map +0 -0
  954. /package/{Database → build/Database}/Drivers/MySQL/MysqlDriver.d.ts +0 -0
  955. /package/{Database → build/Database}/Drivers/MySQL/MysqlDriver.d.ts.map +0 -0
  956. /package/{Database → build/Database}/Drivers/MySQL/Schema.d.ts +0 -0
  957. /package/{Database → build/Database}/Drivers/MySQL/Schema.d.ts.map +0 -0
  958. /package/{Database → build/Database}/Drivers/MySQL/Schema.js +0 -0
  959. /package/{Database → build/Database}/Drivers/MySQL/index.d.ts +0 -0
  960. /package/{Database → build/Database}/Drivers/MySQL/index.d.ts.map +0 -0
  961. /package/{Database → build/Database}/Drivers/MySQL/index.js +0 -0
  962. /package/{Database → build/Database}/Drivers/MySQL/index.js.map +0 -0
  963. /package/{Database → build/Database}/Drivers/SQL/Schema.js +0 -0
  964. /package/{Database → build/Database}/Drivers/SQL/Statements/Alter.d.ts +0 -0
  965. /package/{Database → build/Database}/Drivers/SQL/Statements/Alter.d.ts.map +0 -0
  966. /package/{Database → build/Database}/Drivers/SQL/Statements/BaseStatement.d.ts +0 -0
  967. /package/{Database → build/Database}/Drivers/SQL/Statements/BaseStatement.d.ts.map +0 -0
  968. /package/{Database → build/Database}/Drivers/SQL/Statements/Delete.d.ts +0 -0
  969. /package/{Database → build/Database}/Drivers/SQL/Statements/Delete.d.ts.map +0 -0
  970. /package/{Database → build/Database}/Drivers/SQL/Statements/Delete.js +0 -0
  971. /package/{Database → build/Database}/Drivers/SQL/Statements/Insert.d.ts +0 -0
  972. /package/{Database → build/Database}/Drivers/SQL/Statements/Insert.d.ts.map +0 -0
  973. /package/{Database → build/Database}/Drivers/SQL/Statements/Select.d.ts +0 -0
  974. /package/{Database → build/Database}/Drivers/SQL/Statements/Select.d.ts.map +0 -0
  975. /package/{Database → build/Database}/Drivers/SQL/Statements/Update.d.ts +0 -0
  976. /package/{Database → build/Database}/Drivers/SQL/Statements/Update.d.ts.map +0 -0
  977. /package/{Database → build/Database}/Drivers/SQL/Statements/Update.js +0 -0
  978. /package/{Database → build/Database}/Drivers/SQL/index.d.ts +0 -0
  979. /package/{Database → build/Database}/Drivers/SQL/index.d.ts.map +0 -0
  980. /package/{Database → build/Database}/Drivers/SQL/index.js +0 -0
  981. /package/{Database → build/Database}/Drivers/SQL/index.js.map +0 -0
  982. /package/{Database → build/Database}/Drivers/SQLite/Create.d.ts +0 -0
  983. /package/{Database → build/Database}/Drivers/SQLite/Create.d.ts.map +0 -0
  984. /package/{Database → build/Database}/Drivers/SQLite/Schema.d.ts +0 -0
  985. /package/{Database → build/Database}/Drivers/SQLite/Schema.d.ts.map +0 -0
  986. /package/{Database → build/Database}/Drivers/SQLite/SqliteDriver.d.ts +0 -0
  987. /package/{Database → build/Database}/Drivers/SQLite/SqliteDriver.d.ts.map +0 -0
  988. /package/{Database → build/Database}/Drivers/SQLite/index.d.ts +0 -0
  989. /package/{Database → build/Database}/Drivers/SQLite/index.d.ts.map +0 -0
  990. /package/{Database → build/Database}/Drivers/Statement.d.ts +0 -0
  991. /package/{Database → build/Database}/Drivers/Statement.d.ts.map +0 -0
  992. /package/{Database → build/Database}/Drivers/index.d.ts +0 -0
  993. /package/{Database → build/Database}/Drivers/index.d.ts.map +0 -0
  994. /package/{Database → build/Database}/EntityNotFoundError.d.ts +0 -0
  995. /package/{Database → build/Database}/EntityNotFoundError.d.ts.map +0 -0
  996. /package/{Database → build/Database}/EntityProxyHandler.d.ts +0 -0
  997. /package/{Database → build/Database}/EntityQuery.d.ts +0 -0
  998. /package/{Database → build/Database}/EntityQuery.d.ts.map +0 -0
  999. /package/{Database → build/Database}/Expression.d.ts +0 -0
  1000. /package/{Database → build/Database}/Expression.d.ts.map +0 -0
  1001. /package/{Database → build/Database}/Expression.js +0 -0
  1002. /package/{Database → build/Database}/Expression.js.map +0 -0
  1003. /package/{Database → build/Database}/Helpers.d.ts +0 -0
  1004. /package/{Database → build/Database}/Helpers.d.ts.map +0 -0
  1005. /package/{Database → build/Database}/Migrations/Migration.d.ts +0 -0
  1006. /package/{Database → build/Database}/Migrations/Migration.d.ts.map +0 -0
  1007. /package/{Database → build/Database}/Migrations/MigrationHistory.d.ts +0 -0
  1008. /package/{Database → build/Database}/Migrations/MigrationHistory.d.ts.map +0 -0
  1009. /package/{Database → build/Database}/Migrations/Migrator.d.ts +0 -0
  1010. /package/{Database → build/Database}/Migrations/Migrator.d.ts.map +0 -0
  1011. /package/{Database → build/Database}/Migrations/index.d.ts +0 -0
  1012. /package/{Database → build/Database}/Migrations/index.d.ts.map +0 -0
  1013. /package/{Database → build/Database}/ORM/BaseRelationship.d.ts +0 -0
  1014. /package/{Database → build/Database}/ORM/BaseRelationship.d.ts.map +0 -0
  1015. /package/{Database → build/Database}/Query.d.ts +0 -0
  1016. /package/{Database → build/Database}/Query.d.ts.map +0 -0
  1017. /package/{Database → build/Database}/Seeders/Seeder.d.ts +0 -0
  1018. /package/{Database → build/Database}/Seeders/Seeder.d.ts.map +0 -0
  1019. /package/{Database → build/Database}/Seeders/Seeder.js +0 -0
  1020. /package/{Database → build/Database}/Seeders/Seeder.js.map +0 -0
  1021. /package/{Database → build/Database}/Seeders/SeederManager.d.ts +0 -0
  1022. /package/{Database → build/Database}/Seeders/SeederManager.d.ts.map +0 -0
  1023. /package/{Database → build/Database}/Seeders/index.d.ts +0 -0
  1024. /package/{Database → build/Database}/Seeders/index.d.ts.map +0 -0
  1025. /package/{Database → build/Database}/StringExpression.d.ts +0 -0
  1026. /package/{Database → build/Database}/StringExpression.d.ts.map +0 -0
  1027. /package/{Forms → build/Forms}/Decorators.d.ts +0 -0
  1028. /package/{Forms → build/Forms}/FormFields.d.ts +0 -0
  1029. /package/{Forms → build/Forms}/FormFields.d.ts.map +0 -0
  1030. /package/{Forms → build/Forms}/index.d.ts +0 -0
  1031. /package/{Forms → build/Forms}/index.d.ts.map +0 -0
  1032. /package/{Framework → build/Framework}/App.d.ts +0 -0
  1033. /package/{Framework → build/Framework}/App.d.ts.map +0 -0
  1034. /package/{Framework → build/Framework}/Application.d.ts +0 -0
  1035. /package/{Framework → build/Framework}/Application.d.ts.map +0 -0
  1036. /package/{Framework → build/Framework}/Auth/Auth.d.ts +0 -0
  1037. /package/{Framework → build/Framework}/Auth/Auth.d.ts.map +0 -0
  1038. /package/{Framework → build/Framework}/Auth/Authenticatable.d.ts +0 -0
  1039. /package/{Framework → build/Framework}/Auth/Authenticatable.d.ts.map +0 -0
  1040. /package/{Framework → build/Framework}/Auth/Authenticatable.js +0 -0
  1041. /package/{Framework → build/Framework}/Auth/Authenticatable.js.map +0 -0
  1042. /package/{Framework → build/Framework}/Auth/User.d.ts +0 -0
  1043. /package/{Framework → build/Framework}/Auth/User.d.ts.map +0 -0
  1044. /package/{Framework → build/Framework}/Config/AuthConfig.d.ts +0 -0
  1045. /package/{Framework → build/Framework}/Config/AuthConfig.d.ts.map +0 -0
  1046. /package/{Framework → build/Framework}/Config/BaseConfig.d.ts +0 -0
  1047. /package/{Framework → build/Framework}/Config/BaseConfig.d.ts.map +0 -0
  1048. /package/{Framework → build/Framework}/Config/DatabaseConfig.d.ts +0 -0
  1049. /package/{Framework → build/Framework}/Config/DatabaseConfig.d.ts.map +0 -0
  1050. /package/{Framework → build/Framework}/Config/index.d.ts +0 -0
  1051. /package/{Framework → build/Framework}/Config/index.d.ts.map +0 -0
  1052. /package/{Framework → build/Framework}/Middleware/index.d.ts +0 -0
  1053. /package/{Framework → build/Framework}/Middleware/index.d.ts.map +0 -0
  1054. /package/{Framework → build/Framework}/Provider.d.ts +0 -0
  1055. /package/{Framework → build/Framework}/Provider.d.ts.map +0 -0
  1056. /package/{Framework → build/Framework}/Providers/CacheProvider.d.ts +0 -0
  1057. /package/{Framework → build/Framework}/Providers/CacheProvider.d.ts.map +0 -0
  1058. /package/{Framework → build/Framework}/Providers/DatabaseProvider.d.ts +0 -0
  1059. /package/{Framework → build/Framework}/Providers/DatabaseProvider.d.ts.map +0 -0
  1060. /package/{Framework → build/Framework}/Providers/MailProvider.d.ts +0 -0
  1061. /package/{Framework → build/Framework}/Providers/MailProvider.d.ts.map +0 -0
  1062. /package/{Framework → build/Framework}/Providers/WebsocketsProvider.d.ts +0 -0
  1063. /package/{Framework → build/Framework}/Resolvers/AuthResolver.d.ts +0 -0
  1064. /package/{Framework → build/Framework}/Resolvers/EntityResolver.d.ts +0 -0
  1065. /package/{Framework → build/Framework}/Resolvers/EntityResolver.d.ts.map +0 -0
  1066. /package/{Framework → build/Framework}/Resolvers/EntityResolver.js +0 -0
  1067. /package/{Framework → build/Framework}/Resolvers/FormResolver.d.ts +0 -0
  1068. /package/{Framework → build/Framework}/Resolvers/FormResolver.d.ts.map +0 -0
  1069. /package/{Framework → build/Framework}/Resolvers/FormResolver.js +0 -0
  1070. /package/{Framework → build/Framework}/RootDir.d.ts +0 -0
  1071. /package/{Framework → build/Framework}/RootDir.d.ts.map +0 -0
  1072. /package/{Framework → build/Framework}/RootDir.js +0 -0
  1073. /package/{Framework → build/Framework}/RootDir.js.map +0 -0
  1074. /package/{Framework → build/Framework}/index.d.ts +0 -0
  1075. /package/{Framework → build/Framework}/index.d.ts.map +0 -0
  1076. /package/{Mail → build/Mail}/MailAddress.d.ts +0 -0
  1077. /package/{Mail → build/Mail}/MailAddress.d.ts.map +0 -0
  1078. /package/{Mail → build/Mail}/MailAddress.js +0 -0
  1079. /package/{Mail → build/Mail}/MailAddress.js.map +0 -0
  1080. /package/{Mail → build/Mail}/MailTransport.d.ts +0 -0
  1081. /package/{Mail → build/Mail}/MailTransport.d.ts.map +0 -0
  1082. /package/{Mail → build/Mail}/MailTransport.js +0 -0
  1083. /package/{Mail → build/Mail}/MailTransport.js.map +0 -0
  1084. /package/{Mail → build/Mail}/Mailable.d.ts +0 -0
  1085. /package/{Mail → build/Mail}/Mailable.d.ts.map +0 -0
  1086. /package/{Mail → build/Mail}/Mailer.d.ts +0 -0
  1087. /package/{Mail → build/Mail}/Mailer.d.ts.map +0 -0
  1088. /package/{Mail → build/Mail}/PendingMail.d.ts +0 -0
  1089. /package/{Mail → build/Mail}/PendingMail.d.ts.map +0 -0
  1090. /package/{Mail → build/Mail}/SentMessage.d.ts +0 -0
  1091. /package/{Mail → build/Mail}/SentMessage.d.ts.map +0 -0
  1092. /package/{Mail → build/Mail}/Transports/MemoryTransport.d.ts +0 -0
  1093. /package/{Mail → build/Mail}/Transports/MemoryTransport.d.ts.map +0 -0
  1094. /package/{Mail → build/Mail}/Transports/SendGridTransport.d.ts +0 -0
  1095. /package/{Mail → build/Mail}/Transports/SendGridTransport.d.ts.map +0 -0
  1096. /package/{Mail → build/Mail}/index.d.ts +0 -0
  1097. /package/{Mail → build/Mail}/index.d.ts.map +0 -0
  1098. /package/{Models → build/Models}/Model.d.ts +0 -0
  1099. /package/{Models → build/Models}/Model.d.ts.map +0 -0
  1100. /package/{Models → build/Models}/Model.js +0 -0
  1101. /package/{Models → build/Models}/index.d.ts +0 -0
  1102. /package/{Router → build/Router}/BaseController.d.ts +0 -0
  1103. /package/{Router → build/Router}/BaseController.d.ts.map +0 -0
  1104. /package/{Router → build/Router}/Guard.d.ts +0 -0
  1105. /package/{Router → build/Router}/Guard.d.ts.map +0 -0
  1106. /package/{Router → build/Router}/Guard.js +0 -0
  1107. /package/{Router → build/Router}/Guard.js.map +0 -0
  1108. /package/{Router → build/Router}/Http/Contracts.d.ts +0 -0
  1109. /package/{Router → build/Router}/Http/Contracts.d.ts.map +0 -0
  1110. /package/{Router → build/Router}/Http/Contracts.js +0 -0
  1111. /package/{Router → build/Router}/Http/Contracts.js.map +0 -0
  1112. /package/{Router → build/Router}/Http/ErrorHandler.d.ts +0 -0
  1113. /package/{Router → build/Router}/Http/ErrorHandler.d.ts.map +0 -0
  1114. /package/{Router → build/Router}/Http/ErrorHandlerInterface.d.ts +0 -0
  1115. /package/{Router → build/Router}/Http/ErrorHandlerInterface.d.ts.map +0 -0
  1116. /package/{Router → build/Router}/Http/Errors/HttpError.d.ts +0 -0
  1117. /package/{Router → build/Router}/Http/Errors/HttpError.d.ts.map +0 -0
  1118. /package/{Router → build/Router}/RouteNotFoundError.d.ts +0 -0
  1119. /package/{Router → build/Router}/RouteNotFoundError.d.ts.map +0 -0
  1120. /package/{Router → build/Router}/RouteNotFoundError.js +0 -0
  1121. /package/{Router → build/Router}/RouteNotFoundError.js.map +0 -0
  1122. /package/{Router → build/Router}/Servers/node.d.ts +0 -0
  1123. /package/{Router → build/Router}/Servers/uNetworking.d.ts +0 -0
  1124. /package/{Router → build/Router}/Websockets/Request.d.ts +0 -0
  1125. /package/{Router → build/Router}/Websockets/Request.d.ts.map +0 -0
  1126. /package/{Router → build/Router}/Websockets/Request.js +0 -0
  1127. /package/{Router → build/Router}/Websockets/Request.js.map +0 -0
  1128. /package/{Router → build/Router}/Websockets/WebsocketRoute.d.ts +0 -0
  1129. /package/{Router → build/Router}/index.d.ts +0 -0
  1130. /package/{Router → build/Router}/index.d.ts.map +0 -0
  1131. /package/{Storage → build/Storage}/File.d.ts +0 -0
  1132. /package/{Storage → build/Storage}/Image.d.ts +0 -0
  1133. /package/{Storage → build/Storage}/Image.d.ts.map +0 -0
  1134. /package/{Storage → build/Storage}/Image.js +0 -0
  1135. /package/{Storage → build/Storage}/Image.js.map +0 -0
  1136. /package/{Storage → build/Storage}/InvalidImage.d.ts +0 -0
  1137. /package/{Storage → build/Storage}/InvalidImage.d.ts.map +0 -0
  1138. /package/{Storage → build/Storage}/InvalidImage.js +0 -0
  1139. /package/{Storage → build/Storage}/InvalidImage.js.map +0 -0
  1140. /package/{Storage → build/Storage}/index.d.ts +0 -0
  1141. /package/{Storage → build/Storage}/index.d.ts.map +0 -0
  1142. /package/{Support → build/Support}/Math.d.ts +0 -0
  1143. /package/{Support → build/Support}/Math.d.ts.map +0 -0
  1144. /package/{Support → build/Support}/Math.js +0 -0
  1145. /package/{Support → build/Support}/Math.js.map +0 -0
  1146. /package/{Support → build/Support}/String.d.ts +0 -0
  1147. /package/{Support → build/Support}/String.d.ts.map +0 -0
  1148. /package/{Support → build/Support}/String.js +0 -0
  1149. /package/{Support → build/Support}/index.js +0 -0
  1150. /package/{Support → build/Support}/index.js.map +0 -0
  1151. /package/{Support → build/Support}/utils.d.ts +0 -0
  1152. /package/{Support → build/Support}/utils.d.ts.map +0 -0
  1153. /package/{Validation → build/Validation}/Rule.d.ts +0 -0
  1154. /package/{Validation → build/Validation}/Rule.d.ts.map +0 -0
  1155. /package/{Validation → build/Validation}/Rule.js +0 -0
  1156. /package/{Validation → build/Validation}/Rule.js.map +0 -0
  1157. /package/{Validation → build/Validation}/RuleInterface.d.ts +0 -0
  1158. /package/{Validation → build/Validation}/RuleInterface.d.ts.map +0 -0
  1159. /package/{Validation → build/Validation}/RuleInterface.js +0 -0
  1160. /package/{Validation → build/Validation}/RuleInterface.js.map +0 -0
  1161. /package/{Validation → build/Validation}/Rules/Email.d.ts +0 -0
  1162. /package/{Validation → build/Validation}/Rules/Email.d.ts.map +0 -0
  1163. /package/{Validation → build/Validation}/Rules/FileExtension.d.ts +0 -0
  1164. /package/{Validation → build/Validation}/Rules/FileExtension.d.ts.map +0 -0
  1165. /package/{Validation → build/Validation}/Rules/MaxLength.d.ts +0 -0
  1166. /package/{Validation → build/Validation}/Rules/MaxLength.d.ts.map +0 -0
  1167. /package/{Validation → build/Validation}/Rules/MinLength.d.ts +0 -0
  1168. /package/{Validation → build/Validation}/Rules/MinLength.d.ts.map +0 -0
  1169. /package/{Validation → build/Validation}/Rules/Optional.d.ts +0 -0
  1170. /package/{Validation → build/Validation}/Rules/Optional.d.ts.map +0 -0
  1171. /package/{Validation → build/Validation}/Rules/Required.d.ts +0 -0
  1172. /package/{Validation → build/Validation}/Rules/Required.d.ts.map +0 -0
  1173. /package/{Validation → build/Validation}/Validator.d.ts +0 -0
  1174. /package/{Validation → build/Validation}/Validator.d.ts.map +0 -0
@@ -0,0 +1,816 @@
1
+ import { Entity } from './Entity'
2
+ import { EntityConstructor, EntityKeys, EntityMetadata, EntityObject, ID, Query, StringExpression } from './index'
3
+ import { List } from './List'
4
+ import { BaseRelationship } from './ORM/BaseRelationship'
5
+ import { wrap } from './Helpers'
6
+ import { EntityQuery } from './EntityQuery'
7
+
8
+ export interface EntityField<T extends Entity> {
9
+
10
+ value<K extends keyof T>(entity: T, key: string): T[K] | T[K][] | string | number | undefined;
11
+
12
+ set<K extends keyof T>(entity: T, key: T[K]): void;
13
+ }
14
+
15
+ export class ColumnField<T extends Entity> implements EntityField<T> {
16
+ constructor(
17
+ public entity: EntityConstructor<T>,
18
+ public property: string,
19
+ public type: () => Function,
20
+ public column: string
21
+ ) {}
22
+
23
+ value<K extends keyof T>(entity: T, key: string): T[K] | T[K][] | string | number | undefined {
24
+ return entity[key as K]
25
+ }
26
+
27
+ set(target: T, value: T[keyof T]) {
28
+ target[this.property as keyof T] = value
29
+ }
30
+ }
31
+
32
+ export class JSONField<T extends Entity> extends ColumnField<T> {
33
+
34
+ value<K extends keyof T>(entity: T, key: string): T[K] | T[K][] | string | number | undefined {
35
+ return JSON.stringify(entity[key as K])
36
+ }
37
+
38
+ set(target: T, value: T[keyof T]) {
39
+ target[this.property as keyof T] = typeof value === 'string' ? JSON.parse(value) : undefined
40
+ }
41
+ }
42
+
43
+ export abstract class InverseField<T extends Entity> implements EntityField<T> {
44
+ protected constructor(
45
+ public entity: EntityConstructor<T>,
46
+ public property: string,
47
+ public type: () => Function
48
+ ) {}
49
+
50
+ value<K extends keyof T>(entity: T, key: string): T[K] | T[K][] | string | number | undefined {
51
+ return entity[key as K]
52
+ }
53
+
54
+ abstract set(target: T, value: T[keyof T]): void
55
+
56
+ // relationshipColumnValue<K extends keyof T>(entity: T, value: T[K]): T[K] | T[K][] | string | number | undefined {
57
+ // return value;
58
+ // }
59
+ }
60
+
61
+ export class PrimaryField<T extends Entity> extends ColumnField<T> {
62
+ }
63
+
64
+ export abstract class RelationshipField<T extends Entity, R extends Entity> extends ColumnField<T> {
65
+ abstract relationClass: typeof BaseRelationship
66
+
67
+ protected constructor(
68
+ entity: EntityConstructor<T>,
69
+ property: string,
70
+ public type: () => EntityConstructor<R>,
71
+ public inverseBy: string,
72
+ column: string
73
+ ) {
74
+ super(entity, property, type, column)
75
+ }
76
+
77
+ get related() {
78
+ return this.type()
79
+ }
80
+
81
+ abstract match(entities: T[], relatedEntities: R[]): T[]
82
+
83
+ abstract matchCounts(entities: T[], counts: T[]): T[]
84
+
85
+ abstract getRelatedValue(
86
+ relatedEntities: R[],
87
+ eagerLoad: EntityQuery<T>['eagerLoad'],
88
+ customQuery?: (query: Query) => void
89
+ ): Promise<R[]>
90
+
91
+ abstract getRelatedCount(relatedEntities: R[], customQuery?: (query: Query) => void): Promise<T[]>
92
+
93
+ abstract update(target: T): void
94
+ }
95
+
96
+ export abstract class InverseRelationship<T extends Entity, R extends Entity> extends InverseField<T> {
97
+ abstract relationClass: typeof BaseRelationship
98
+
99
+ protected constructor(
100
+ entity: EntityConstructor<T>,
101
+ property: string,
102
+ public type: () => EntityConstructor<R>,
103
+ public inverseBy: string
104
+ ) {
105
+ super(entity, property, type)
106
+ }
107
+
108
+ get related() {
109
+ return this.type()
110
+ }
111
+
112
+ abstract match(entities: T[], relatedEntities: R[]): T[]
113
+
114
+ abstract matchCounts(entities: T[], counts: T[]): T[]
115
+
116
+ abstract getRelatedValue(
117
+ relatedEntities: R[],
118
+ eagerLoad: EntityQuery<T>['eagerLoad'],
119
+ customQuery?: (query: Query) => void
120
+ ): Promise<R[]>
121
+
122
+ abstract getRelatedCount(relatedEntities: R[], customQuery?: (query: Query) => void): Promise<T[]>
123
+
124
+ }
125
+
126
+ export class HasOneField<T extends Entity, R extends Entity> extends InverseRelationship<T, R> {
127
+ relationClass = HasOne
128
+
129
+ constructor(
130
+ entity: EntityConstructor<T>,
131
+ property: string,
132
+ type: () => EntityConstructor<R>,
133
+ inverseBy: string // TODO make it key of R
134
+ ) {
135
+ super(entity, property, type, inverseBy)
136
+ }
137
+
138
+ set(target: T, value: T[keyof T]) {
139
+ (target[this.property as keyof T] as InstanceType<this['relationClass']>).set(value as unknown as R)
140
+ }
141
+
142
+ async getRelatedValue(relatedEntities: R[], eagerLoad: EntityQuery<T>['eagerLoad'], customQuery?: (query: Query) => void) {
143
+ const parentIds = relatedEntities.pluck(this.entity.getPrimaryKey()) as number[]
144
+ const inverseByField = this.related.metadata.relationships[this.inverseBy]
145
+ const query = this.related.with(...eagerLoad).whereIn(inverseByField.column as EntityKeys<R>, parentIds)
146
+
147
+ customQuery?.(query)
148
+
149
+ return await query.get()
150
+ }
151
+
152
+ async getRelatedCount(relatedEntities: R[], customQuery?: (query: Query) => void) {
153
+ const relatedField = this.related.metadata.relationships[this.inverseBy]
154
+
155
+ const query = this.related.newQuery()
156
+ .whereIn(relatedField.column, relatedEntities.pluck(this.entity.getPrimaryKey()))
157
+ .select(relatedField.column)
158
+ .groupBy(relatedField.column)
159
+
160
+ customQuery?.(query)
161
+
162
+ return await query
163
+ .selectCount()
164
+ .get() as unknown as T[]
165
+ }
166
+
167
+ match(entities: T[], relatedEntities: R[]): T[] {
168
+ entities.forEach(entity => {
169
+ const inverseField = this.related.metadata.relationships[this.inverseBy]
170
+ const relatedEntity = relatedEntities.find(
171
+ related => related.original[inverseField.column as keyof object] === entity[this.entity.getPrimaryKey()]
172
+ );
173
+ // TODO fix these weird types. Get rid of `unknown`
174
+ (entity[this.property as keyof T] as unknown as BelongsTo<R>).set(relatedEntity as R)
175
+ })
176
+ return entities
177
+ }
178
+
179
+ matchCounts(entities: T[], counts: T[]): T[] {
180
+ const relatedField = this.related.metadata.relationships[this.inverseBy]
181
+ entities.forEach(entity => {
182
+ const count = counts.find(item => item.original[relatedField.column] === entity[this.entity.getPrimaryKey()])
183
+ entity[this.property + 'Count' as keyof T] = (count?.original.aggregate ?? 0) as unknown as T[keyof T]
184
+ })
185
+
186
+ return entities
187
+ }
188
+ }
189
+
190
+ export class HasManyField<T extends Entity, R extends Entity> extends InverseRelationship<T, R> {
191
+ relationClass = HasMany
192
+
193
+ constructor(entity: EntityConstructor<T>, property: string, type: () => EntityConstructor<R>, public inverseBy: string) {
194
+ super(entity, property, type, inverseBy)
195
+ }
196
+
197
+ set(target: T, value: T[keyof T]) {
198
+
199
+ }
200
+
201
+ async getRelatedValue(relatedEntities: R[], eagerLoad: EntityQuery<T>['eagerLoad'], customQuery?: (query: Query) => void) {
202
+ const parentIds = relatedEntities.pluck(this.entity.getPrimaryKey()) as number[]
203
+ const inverseByField = this.related.metadata.relationships[this.inverseBy]
204
+ const query = this.related.with(...eagerLoad).whereIn(inverseByField.column as EntityKeys<R>, parentIds)
205
+
206
+ customQuery?.(query)
207
+
208
+ return await query.get()
209
+ }
210
+
211
+ async getRelatedCount(relatedEntities: R[], customQuery?: (query: Query) => void) {
212
+ const relatedField = this.related.metadata.relationships[this.inverseBy]
213
+
214
+ const query = this.related.newQuery()
215
+ .whereIn(relatedField.column, relatedEntities.pluck(this.entity.getPrimaryKey()))
216
+ .select(relatedField.column)
217
+ .groupBy(relatedField.column)
218
+
219
+ customQuery?.(query)
220
+
221
+ return await query
222
+ .selectCount()
223
+ .get() as unknown as T[]
224
+ }
225
+
226
+ match(entities: T[], relatedEntities: R[]): T[] {
227
+ entities.forEach(entity => {
228
+ const inverseField = this.related.metadata.relationships[this.inverseBy]
229
+ const relatedEntity = relatedEntities.filter(
230
+ related => related.original[inverseField.column as keyof object] === entity[this.entity.getPrimaryKey()]
231
+ );
232
+ // TODO fix these weird types. Get rid of `unknown`
233
+ (entity[this.property as keyof T] as unknown as HasMany<R, T>).items = relatedEntity
234
+ })
235
+ return entities
236
+ }
237
+
238
+ matchCounts(entities: T[], counts: T[]): T[] {
239
+ const relatedField = this.related.metadata.relationships[this.inverseBy]
240
+ entities.forEach(entity => {
241
+ const count = counts.find(item => item.original[relatedField.column] === entity[this.entity.getPrimaryKey()])
242
+ entity[this.property + 'Count' as keyof T] = (count?.original.aggregate ?? 0) as unknown as T[keyof T]
243
+ })
244
+
245
+ return entities
246
+ }
247
+
248
+ async save(items: Partial<EntityObject<R> | R>[], parent: T) {
249
+ const entities: R[] = []
250
+ for await (const item of items) {
251
+ const entity = item instanceof Entity ? item : this.type().new(item)
252
+
253
+ entity.fill({
254
+ [this.inverseBy]: parent
255
+ })
256
+ await entity.save()
257
+ entities.push(entity as R)
258
+ }
259
+ return entities
260
+ }
261
+
262
+ getQuery(parent: T) {
263
+ const inverseField = this.related.metadata.relationships[this.inverseBy]
264
+ return this.type().newQuery().where(inverseField.column, parent[parent.getPrimaryKey()] as unknown as R[keyof R])
265
+ }
266
+ }
267
+
268
+ export class BelongsToField<T extends Entity, R extends Entity> extends RelationshipField<T, R> {
269
+ relationClass = BelongsTo
270
+
271
+ constructor(
272
+ entity: EntityConstructor<T>,
273
+ property: string,
274
+ type: () => EntityConstructor<R>,
275
+ inverseBy: string,
276
+ column?: string
277
+ ) {
278
+ super(entity, property, type, inverseBy, column || property + (entity.getPrimaryKey() as string).capitalize())
279
+ }
280
+
281
+ set(target: T, value: T[keyof T]) {
282
+ (target[this.property as keyof T] as InstanceType<this['relationClass']>).set(value as unknown as R)
283
+ }
284
+
285
+ update(target: T) {
286
+ (target[this.property as keyof T] as InstanceType<this['relationClass']>).update()
287
+ }
288
+
289
+ value<K extends keyof T>(entity: T, key: string) {
290
+ const field = entity[key as keyof T] as unknown as BelongsTo<R, T>
291
+ const instance = field.get()
292
+ if (instance) {
293
+ return instance[this.related.getPrimaryKey()]
294
+ }
295
+ // return new this.related({
296
+ // [this.related.getPrimaryKey()]: entity[key as K]
297
+ // }) as unknown as T[K]; // TODO get rid of `unknown`
298
+ // if (key === this.column) {
299
+ // return new this.related({
300
+ // [this.related.getPrimaryKey()]: entity[key as K]
301
+ // }) as unknown as T[K]; // TODO get rid of `unknown`
302
+ // }
303
+ // return entity[this.property as keyof T] as unknown as T[K];
304
+ }
305
+
306
+ async getRelatedValue(parents: R[], eagerLoad: EntityQuery<T>['eagerLoad'], customQuery?: (query: Query) => void) {
307
+ const relationIds = parents
308
+ .map(parent => {
309
+ const relation = (parent[this.property as keyof R] as unknown as BelongsTo<R>).get()
310
+ return relation?.[relation.getPrimaryKey()]
311
+ })
312
+ .filter(Boolean) as unknown as number[]
313
+ if (relationIds.length) {
314
+ const query = this.related.with(...eagerLoad).whereIn(this.related.getPrimaryKey() as EntityKeys<R>, relationIds)
315
+
316
+ if (customQuery) {
317
+ customQuery(query)
318
+ }
319
+
320
+ return await query.get()
321
+ }
322
+ return []
323
+ }
324
+
325
+ async getRelatedCount(relatedEntities: R[], customQuery?: (query: Query) => void) {
326
+ return []
327
+ }
328
+
329
+ match(entities: T[], relatedEntities: R[]): T[] {
330
+ return entities.map(entity => {
331
+ // TODO fix these weird types. Get rid of `unknown`
332
+ const related = (entity[this.property as keyof T] as unknown as BelongsTo<R>).get()
333
+ const value = related?.[related.getPrimaryKey()]
334
+ if (value) {
335
+ const instance = relatedEntities.findWhere(this.related.getPrimaryKey() as keyof R, value)
336
+ if (instance) {
337
+ this.set(entity, instance as unknown as T[keyof T])
338
+ }
339
+ }
340
+ return entity
341
+ })
342
+ }
343
+
344
+ matchCounts(entities: T[], counts: T[]): T[] {
345
+ return entities
346
+ }
347
+
348
+ getQuery(parent: T) {
349
+ return this.entity.newQuery().where(this.column, parent[parent.getPrimaryKey()] as unknown as T[keyof T])
350
+ }
351
+
352
+ async save(items: Partial<EntityObject<R> | R>[], parent: T) {
353
+ const entities: R[] = []
354
+ for await (const item of items) {
355
+ const entity = item instanceof Entity ? item : this.related.new(item)
356
+
357
+ entity.fill({
358
+ [this.property]: parent
359
+ })
360
+ await entity.save()
361
+ entities.push(entity as R)
362
+ }
363
+ return entities
364
+ }
365
+ }
366
+
367
+ export class BelongsToManyField<T extends Entity, R extends Entity> extends InverseRelationship<T, R> {
368
+ relationClass = BelongsToMany
369
+
370
+ constructor(
371
+ entity: EntityConstructor<T>,
372
+ property: string,
373
+ type: () => EntityConstructor<R>,
374
+ inverseBy: string,
375
+ public table?: string,
376
+ public parentColumn?: string,
377
+ public relatedColumn?: string
378
+ ) {
379
+ super(entity, property, type, inverseBy)
380
+ }
381
+
382
+ set(target: T, value: T[keyof T]) {
383
+ }
384
+
385
+ async getRelatedValue(parents: R[], eagerLoad: EntityQuery<T>['eagerLoad'], customQuery?: (query: Query) => void) {
386
+ const parentIds = parents.pluck(this.entity.getPrimaryKey()) as number[]
387
+ const relatedForeignKey = `${wrap(this.getPivotTable())}.${this.getRelatedForeignKey()}`
388
+ const parentForeignKey = `${wrap(this.getPivotTable())}.${this.getParentForeignKey()}`
389
+ const relatedKey = `${wrap(this.related.getTable())}.${this.related.getPrimaryKey()}`
390
+
391
+ const query = this.related
392
+ .with(...eagerLoad)
393
+ .addSelect(
394
+ new StringExpression(`${wrap(this.related.getTable())}.*`),
395
+ new StringExpression(relatedForeignKey),
396
+ new StringExpression(parentForeignKey)
397
+ )
398
+ .join(this.getPivotTable(), relatedForeignKey, '=', relatedKey)
399
+ .whereIn(parentForeignKey, parentIds.unique())
400
+
401
+ customQuery?.(query)
402
+
403
+ const results = await query.get()
404
+
405
+ return results.map(entity => {
406
+ entity.original.pivot = {
407
+ [this.getParentForeignKey()]: entity.original[this.getParentForeignKey()],
408
+ [this.getRelatedForeignKey()]: entity.original[this.getRelatedForeignKey()],
409
+ }
410
+ delete entity.original[this.getParentForeignKey()]
411
+ delete entity.original[this.getRelatedForeignKey()]
412
+
413
+ return entity
414
+ })
415
+ }
416
+
417
+ getParentForeignKey() {
418
+ return this.parentColumn || `${this.entity.name.toLowerCase()}${(this.entity.getPrimaryKey() as string).capitalize()}`
419
+ }
420
+
421
+ getRelatedForeignKey() {
422
+ return this.relatedColumn || `${this.related.name.toLowerCase()}${(this.related.getPrimaryKey() as string).capitalize()}`
423
+ }
424
+
425
+ async getRelatedCount(relatedEntities: R[], customQuery?: (query: Query) => void) {
426
+ const query = Query.table(this.getPivotTable())
427
+ .select(this.getParentForeignKey())
428
+ .groupBy(this.getParentForeignKey())
429
+ .whereIn(this.getParentForeignKey(), relatedEntities.pluck(this.related.getPrimaryKey()) as unknown as number[])
430
+
431
+ customQuery?.(query)
432
+
433
+ return await query.selectCount().get() as unknown as T[]
434
+
435
+ }
436
+
437
+ match(entities: T[], relatedEntities: R[]): T[] {
438
+ return entities.map(entity => {
439
+ const entityPrimaryKey = entity[this.entity.getPrimaryKey()];
440
+ (entity[this.property as keyof T] as unknown as BelongsToMany<R>).items = relatedEntities
441
+ .filter(related => related.original.pivot[this.getParentForeignKey()] === entityPrimaryKey)
442
+ return entity
443
+ })
444
+ }
445
+
446
+ matchCounts(entities: T[], counts: T[]): T[] {
447
+ entities.forEach(entity => {
448
+ const foreignKey = this.getParentForeignKey()
449
+ const count = counts.find(item =>
450
+ (item?.original?.[foreignKey] || item[foreignKey as keyof T]) === entity[this.entity.getPrimaryKey()]
451
+ )
452
+ // @ts-ignore
453
+ const aggregateValue = count?.aggregate || count?.original.aggregate
454
+ entity[this.property + 'Count' as keyof T] = (aggregateValue ?? 0) as unknown as T[keyof T]
455
+ })
456
+
457
+ return entities
458
+ }
459
+
460
+ getPivotTable() {
461
+ return this.table || [this.entity.getTable(), this.related.getTable()].sort().join('_')
462
+ }
463
+
464
+ value<K extends keyof T>(entity: T, key: string): T[K] {
465
+ const value = entity[key as K]
466
+ if (value instanceof Array) {
467
+ return value.map(related => {
468
+ if (related instanceof Entity) {
469
+ return related
470
+ }
471
+ const instance = this.related.new({[this.related.getPrimaryKey()]: related})
472
+ return instance
473
+ }) as unknown as T[K]
474
+ }
475
+ return value
476
+ }
477
+
478
+ async add(items: (R | ID)[], parent: T) {
479
+ const entities: R[] = []
480
+ // tslint:disable-next-line:no-any
481
+ const dataToInsert: Record<string, any>[] = []
482
+ for await (const item of items) {
483
+ dataToInsert.push({
484
+ [this.getRelatedForeignKey()]: item instanceof Entity ? item.getPrimaryKeyValue() : item,
485
+ [this.getParentForeignKey()]: parent.getPrimaryKeyValue(),
486
+ })
487
+ entities.push(this.related.new({[this.related.getPrimaryKey()]: item}))
488
+ }
489
+ if (dataToInsert.length) {
490
+ await Query.table(this.getPivotTable()).insert(dataToInsert)
491
+ }
492
+ return entities
493
+
494
+ }
495
+
496
+ getQuery(parent: T) {
497
+ return this.related.newQuery().whereIn(this.related.getPrimaryKey(), query => {
498
+ query.select(this.getRelatedForeignKey())
499
+ .table(this.getPivotTable())
500
+ .where(this.getParentForeignKey(), parent[parent.getPrimaryKey()] as unknown as string)
501
+ })
502
+ }
503
+ }
504
+
505
+ export interface EntityFieldOptions {
506
+ table?: string;
507
+ column?: string;
508
+ }
509
+
510
+ export interface BelongsToManyFieldOptions extends EntityFieldOptions {
511
+ foreignColumn?: string;
512
+ }
513
+
514
+ export class BelongsTo<T extends Entity, P extends Entity = Entity> extends BaseRelationship<T, P> {
515
+
516
+ private instance?: T
517
+
518
+ constructor(
519
+ relationship: RelationshipField<P, T>,
520
+ parent: P
521
+ ) {
522
+ super(relationship, parent)
523
+ this.update()
524
+ }
525
+
526
+ update() {
527
+ const parentId = this.parent.original[(this.relationship as RelationshipField<P, T>).column]
528
+ if (parentId && !this.instance) {
529
+ this.setById(parentId)
530
+ }
531
+ }
532
+
533
+ static relationship<T extends Entity, R extends Entity>(
534
+ metadata: EntityMetadata<T, R>,
535
+ entityClass: EntityConstructor<T>,
536
+ property: keyof T,
537
+ type: () => EntityConstructor<R>,
538
+ inverseBy: keyof R,
539
+ options?: EntityFieldOptions
540
+ ) {
541
+
542
+ metadata.relationships[property as string] = new BelongsToField(
543
+ entityClass,
544
+ property as string,
545
+ type,
546
+ inverseBy as string,
547
+ options?.column,
548
+ )
549
+
550
+ return metadata
551
+ }
552
+
553
+ get() {
554
+ return this.instance
555
+ }
556
+
557
+ set(instance: T | number) {
558
+ if (instance instanceof Entity) {
559
+ this.instance = instance
560
+ } else {
561
+ this.setById(instance)
562
+ }
563
+ }
564
+
565
+ setById(id: number) {
566
+ this.set(this.relationship.related.new({[this.relationship.related.getPrimaryKey()]: id}))
567
+ }
568
+
569
+ async save(data: EntityObject<T> | {} | undefined = {}): Promise<T | undefined> {
570
+ if (!this.instance) {
571
+ return
572
+ }
573
+ this.instance.fill({
574
+ ...data,
575
+ // [this.relationship.column]: this.parent
576
+ })
577
+
578
+ await this.instance.save()
579
+ return this.instance
580
+ }
581
+
582
+ toJSON() {
583
+ return this.instance?.toJSON()
584
+ }
585
+
586
+ }
587
+
588
+ export class HasOne<T extends Entity, P extends Entity = Entity> extends BaseRelationship<T, P> {
589
+
590
+ declare public relationship: RelationshipField<P, T>
591
+ private instance?: T
592
+
593
+ static relationship<T extends Entity, R extends Entity>(
594
+ metadata: EntityMetadata<T, R>,
595
+ entityClass: EntityConstructor<T>,
596
+ property: keyof T,
597
+ type: () => EntityConstructor<R>,
598
+ inverseBy: keyof R,
599
+ options?: EntityFieldOptions
600
+ ) {
601
+ metadata.inverseRelationships[property as string] = new HasOneField(
602
+ entityClass,
603
+ property as string,
604
+ type,
605
+ inverseBy as string,
606
+ )
607
+ return metadata
608
+ }
609
+
610
+ get() {
611
+ return this.instance
612
+ }
613
+
614
+ set(instance: T | number | undefined) {
615
+ if (!instance) {
616
+ return
617
+ }
618
+ if (instance instanceof Entity) {
619
+ this.instance = instance
620
+ } else {
621
+ this.setById(instance)
622
+ }
623
+ }
624
+
625
+ setById(id: number) {
626
+ this.set(this.relationship.related.new({[this.relationship.related.getPrimaryKey()]: id}))
627
+ }
628
+
629
+ async save(instance: T | undefined = this.instance): Promise<T | undefined> {
630
+ this.set(instance)
631
+
632
+ if (instance) {
633
+ (instance[this.relationship.inverseBy as keyof T] as unknown as BelongsTo<P, T>).set(this.parent)
634
+ await instance.save()
635
+ }
636
+
637
+ return this.instance
638
+ }
639
+
640
+ toJSON() {
641
+ return this.instance?.toJSON()
642
+ }
643
+ }
644
+
645
+ export class HasMany<T extends Entity, P extends Entity = Entity> extends List<T, P> {
646
+
647
+ constructor(
648
+ public relationship: HasManyField<P, T>,
649
+ parent: P
650
+ ) {
651
+ super(relationship, parent)
652
+ }
653
+
654
+ static relationship<T extends Entity, R extends Entity>(
655
+ metadata: EntityMetadata<T, R>,
656
+ entityClass: EntityConstructor<T>,
657
+ property: keyof T,
658
+ type: () => EntityConstructor<R>,
659
+ inverseBy: keyof R,
660
+ options?: EntityFieldOptions
661
+ ) {
662
+ metadata.inverseRelationships[property as string] = new HasManyField<T, R>(
663
+ entityClass,
664
+ property as string,
665
+ type,
666
+ inverseBy as string,
667
+ )
668
+
669
+ return metadata
670
+ }
671
+
672
+ async save(item: Partial<EntityObject<T> | T>): Promise<T> {
673
+ const instances = await this.saveMany(item)
674
+ return instances.first() as T
675
+ }
676
+
677
+ async saveMany(...items: Partial<EntityObject<T> | T>[]): Promise<T[]> {
678
+ if (!this.parent.exists) {
679
+ await this.parent.save()
680
+ }
681
+ const instances = await this.relationship.save(items, this.parent)
682
+
683
+ this.items.push(...instances)
684
+
685
+ return instances
686
+ }
687
+
688
+ async clear() {
689
+
690
+ }
691
+
692
+ }
693
+
694
+ export class BelongsToMany<T extends Entity, P extends Entity = Entity> extends List<T, P> {
695
+
696
+ constructor(
697
+ public relationship: BelongsToManyField<P, T>,
698
+ parent: P
699
+ ) {
700
+ super(relationship, parent)
701
+ }
702
+
703
+ static relationship<T extends Entity, R extends Entity>(
704
+ metadata: EntityMetadata<T, R>,
705
+ entityClass: EntityConstructor<T>,
706
+ property: keyof T,
707
+ type: () => EntityConstructor<R>,
708
+ inverseBy: keyof R,
709
+ options?: BelongsToManyFieldOptions
710
+ ) {
711
+ // options.column = options.column || (property as string) + (entityClass.getPrimaryKey() as string).capitalize();
712
+
713
+ const inverseField = metadata.inverseRelationships[inverseBy as string] as BelongsToManyField<T, R> | undefined
714
+
715
+ metadata.inverseRelationships[property as string] = new BelongsToManyField(
716
+ entityClass,
717
+ property as string,
718
+ type,
719
+ inverseBy as string,
720
+ options?.table || inverseField?.table,
721
+ options?.foreignColumn || inverseField?.parentColumn,
722
+ options?.column || inverseField?.relatedColumn,
723
+ )
724
+ return metadata
725
+ }
726
+
727
+ async has(item: T | ID) {
728
+ if (item instanceof Entity) {
729
+ item = item.getPrimaryKeyValue()
730
+ }
731
+ const relatedForeignKey = `${this.relationship.getPivotTable()}.${this.relationship.getRelatedForeignKey()}`
732
+ const parentForeignKey = `${this.relationship.getPivotTable()}.${this.relationship.getParentForeignKey()}`
733
+
734
+ return Boolean(
735
+ await Query.table(this.relationship.getPivotTable())
736
+ .where(parentForeignKey, this.parent[this.parent.getPrimaryKey()] as unknown as string)
737
+ .andWhere(relatedForeignKey, item)
738
+ .first()
739
+ )
740
+ }
741
+
742
+ async add(...items: (T | ID)[]) {
743
+ const ids = items.map(item => item instanceof Entity ? item.getPrimaryKeyValue() : item)
744
+ if (!this.parent.exists) {
745
+ await this.parent.save()
746
+ }
747
+ for await (const id of ids) {
748
+ if (!(await this.has(id))) {
749
+ this.items = this.items.concat(await this.relationship.add(items, this.parent))
750
+ }
751
+ }
752
+
753
+ return this.items
754
+ }
755
+
756
+ async remove(...items: (T | ID)[]) {
757
+ const ids = items.map(item => item instanceof Entity ? item.getPrimaryKeyValue() : item)
758
+
759
+ const relatedForeignKey = `${this.relationship.getPivotTable()}.${this.relationship.getRelatedForeignKey()}`
760
+ const parentForeignKey = `${this.relationship.getPivotTable()}.${this.relationship.getParentForeignKey()}`
761
+
762
+ await Query.table(this.relationship.getPivotTable())
763
+ .where(parentForeignKey, this.parent[this.parent.getPrimaryKey()] as unknown as string)
764
+ .whereIn(relatedForeignKey, ids)
765
+ .delete()
766
+
767
+ this.items = this.items.filter(item => !ids.includes(item.getPrimaryKeyValue()))
768
+ }
769
+
770
+ async toggle(...items: (T | ID)[]) {
771
+ const ids = items.map(item => item instanceof Entity ? item.getPrimaryKeyValue() : item)
772
+
773
+ const attachedEntities = await this.relationship.getQuery(this.parent).get()
774
+ const entitiesToDetach = ids.filter(item =>
775
+ attachedEntities.some(entity => entity.getPrimaryKeyValue() === item)
776
+ )
777
+ const entitiesToAttach = ids.filter(item =>
778
+ attachedEntities.some(entity => entity.getPrimaryKeyValue() as unknown as number !== item)
779
+ )
780
+ await this.add(...entitiesToAttach)
781
+ await this.remove(...entitiesToDetach)
782
+ }
783
+
784
+ async clear() {
785
+ const relatedForeignKey = `${this.relationship.getPivotTable()}.${this.relationship.getRelatedForeignKey()}`
786
+ const parentForeignKey = `${this.relationship.getPivotTable()}.${this.relationship.getParentForeignKey()}`
787
+
788
+ await Query.table(this.relationship.getPivotTable())
789
+ .where(parentForeignKey, this.parent[this.parent.getPrimaryKey()] as unknown as string)
790
+ .whereIn(relatedForeignKey, this.items.pluck(this.relationship.related.getPrimaryKey()))
791
+ .delete()
792
+
793
+ this.items = []
794
+ }
795
+
796
+ async sync(...items: (T | ID)[]) {
797
+ const ids = items.map(item => item instanceof Entity ? item.getPrimaryKeyValue() : item)
798
+
799
+ const existingItems = await this.get()
800
+ const primaryKey = this.relationship.type().getPrimaryKey()
801
+ const itemsToRemove = existingItems.filter(item => !ids.includes(item[primaryKey])).pluck(primaryKey)
802
+ const restOfItemsToAdd = ids.filter(item => !existingItems.findWhere(primaryKey, item as unknown as T[keyof T]))
803
+ await this.remove(...itemsToRemove)
804
+ await this.add(...restOfItemsToAdd)
805
+ }
806
+
807
+ async syncWithoutDetaching(...items: (T | ID)[]) {
808
+ const ids = items.map(item => item instanceof Entity ? item.getPrimaryKeyValue() : item)
809
+
810
+ const existingItems = await this.get()
811
+ const primaryKey = this.relationship.type().getPrimaryKey()
812
+ const restOfItemsToAdd = ids.filter(item => !existingItems.findWhere(primaryKey, item as unknown as T[keyof T]))
813
+ await this.add(...restOfItemsToAdd)
814
+ }
815
+
816
+ }