@typetron/framework 0.5.22 → 0.5.25

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 (882) hide show
  1. package/build/Cache/Cache.d.ts +9 -0
  2. package/build/Cache/Cache.d.ts.map +1 -0
  3. package/build/Cache/Cache.js +7 -0
  4. package/build/Cache/Cache.js.map +1 -0
  5. package/build/Cache/Stores/DatabaseStore.d.ts +16 -0
  6. package/build/Cache/Stores/DatabaseStore.d.ts.map +1 -0
  7. package/build/Cache/Stores/DatabaseStore.js +105 -0
  8. package/build/Cache/Stores/DatabaseStore.js.map +1 -0
  9. package/build/Cache/Stores/FileStore.d.ts +16 -0
  10. package/build/Cache/Stores/FileStore.d.ts.map +1 -0
  11. package/build/Cache/Stores/FileStore.js +65 -0
  12. package/build/Cache/Stores/FileStore.js.map +1 -0
  13. package/build/Cache/Stores/MemoryStore.d.ts +13 -0
  14. package/build/Cache/Stores/MemoryStore.d.ts.map +1 -0
  15. package/build/Cache/Stores/MemoryStore.js +57 -0
  16. package/build/Cache/Stores/MemoryStore.js.map +1 -0
  17. package/build/Cache/index.d.ts +6 -0
  18. package/build/Cache/index.d.ts.map +1 -0
  19. package/build/Cache/index.js +22 -0
  20. package/build/Cache/index.js.map +1 -0
  21. package/build/Cache/types.d.ts +5 -0
  22. package/build/Cache/types.d.ts.map +1 -0
  23. package/build/Cache/types.js +3 -0
  24. package/build/Cache/types.js.map +1 -0
  25. package/build/Container/ClassResolver.d.ts +9 -0
  26. package/build/Container/ClassResolver.d.ts.map +1 -0
  27. package/build/Container/ClassResolver.js +93 -0
  28. package/build/Container/ClassResolver.js.map +1 -0
  29. package/build/Container/Container.d.ts +26 -0
  30. package/build/Container/Container.d.ts.map +1 -0
  31. package/build/Container/Container.js +132 -0
  32. package/build/Container/Container.js.map +1 -0
  33. package/build/Container/Contracts.d.ts +3 -0
  34. package/build/Container/Contracts.d.ts.map +1 -0
  35. package/build/Container/Contracts.js +3 -0
  36. package/build/Container/Contracts.js.map +1 -0
  37. package/build/Container/Decorators.d.ts +5 -0
  38. package/build/Container/Decorators.d.ts.map +1 -0
  39. package/build/Container/Decorators.js +21 -0
  40. package/build/Container/Decorators.js.map +1 -0
  41. package/build/Container/Metadata.d.ts +22 -0
  42. package/build/Container/Metadata.d.ts.map +1 -0
  43. package/build/Container/Metadata.js +18 -0
  44. package/build/Container/Metadata.js.map +1 -0
  45. package/build/Container/Resolver.d.ts +19 -0
  46. package/build/Container/Resolver.d.ts.map +1 -0
  47. package/build/Container/Resolver.js +17 -0
  48. package/build/Container/Resolver.js.map +1 -0
  49. package/build/Container/index.d.ts +6 -0
  50. package/build/Container/index.d.ts.map +1 -0
  51. package/build/Container/index.js +22 -0
  52. package/build/Container/index.js.map +1 -0
  53. package/build/Database/Clauses/Where.d.ts +1 -0
  54. package/build/Database/Clauses/Where.d.ts.map +1 -0
  55. package/build/Database/Clauses/Where.js +2 -0
  56. package/build/Database/Clauses/Where.js.map +1 -0
  57. package/build/Database/Connection.d.ts +21 -0
  58. package/build/Database/Connection.d.ts.map +1 -0
  59. package/build/Database/Connection.js +44 -0
  60. package/build/Database/Connection.js.map +1 -0
  61. package/build/Database/Decorators.d.ts +36 -0
  62. package/build/Database/Decorators.d.ts.map +1 -0
  63. package/build/Database/Decorators.js +116 -0
  64. package/build/Database/Decorators.js.map +1 -0
  65. package/build/Database/Drivers/DatabaseDriver.d.ts +29 -0
  66. package/build/Database/Drivers/DatabaseDriver.d.ts.map +1 -0
  67. package/build/Database/Drivers/DatabaseDriver.js +7 -0
  68. package/build/Database/Drivers/DatabaseDriver.js.map +1 -0
  69. package/build/Database/Drivers/MySQL/Alter/index.d.ts +34 -0
  70. package/build/Database/Drivers/MySQL/Alter/index.d.ts.map +1 -0
  71. package/build/Database/Drivers/MySQL/Alter/index.js +70 -0
  72. package/build/Database/Drivers/MySQL/Alter/index.js.map +1 -0
  73. package/build/Database/Drivers/MySQL/ColumnDefinition.d.ts +7 -0
  74. package/build/Database/Drivers/MySQL/ColumnDefinition.d.ts.map +1 -0
  75. package/build/Database/Drivers/MySQL/ColumnDefinition.js +19 -0
  76. package/build/Database/Drivers/MySQL/ColumnDefinition.js.map +1 -0
  77. package/build/Database/Drivers/MySQL/Create.d.ts +10 -0
  78. package/build/Database/Drivers/MySQL/Create.d.ts.map +1 -0
  79. package/build/Database/Drivers/MySQL/Create.js +44 -0
  80. package/build/Database/Drivers/MySQL/Create.js.map +1 -0
  81. package/build/Database/Drivers/MySQL/MysqlDriver.d.ts +42 -0
  82. package/build/Database/Drivers/MySQL/MysqlDriver.d.ts.map +1 -0
  83. package/build/Database/Drivers/MySQL/MysqlDriver.js +93 -0
  84. package/build/Database/Drivers/MySQL/MysqlDriver.js.map +1 -0
  85. package/build/Database/Drivers/MySQL/Schema.d.ts +16 -0
  86. package/build/Database/Drivers/MySQL/Schema.d.ts.map +1 -0
  87. package/build/Database/Drivers/MySQL/Schema.js +67 -0
  88. package/build/Database/Drivers/MySQL/Schema.js.map +1 -0
  89. package/build/Database/Drivers/MySQL/index.d.ts +2 -0
  90. package/build/Database/Drivers/MySQL/index.d.ts.map +1 -0
  91. package/build/Database/Drivers/MySQL/index.js +16 -0
  92. package/build/Database/Drivers/MySQL/index.js.map +1 -0
  93. package/build/Database/Drivers/SQL/Schema.d.ts +7 -0
  94. package/build/Database/Drivers/SQL/Schema.d.ts.map +1 -0
  95. package/build/Database/Drivers/SQL/Schema.js +58 -0
  96. package/build/Database/Drivers/SQL/Schema.js.map +1 -0
  97. package/build/Database/Drivers/SQL/Statements/Alter.d.ts +8 -0
  98. package/build/Database/Drivers/SQL/Statements/Alter.d.ts.map +1 -0
  99. package/build/Database/Drivers/SQL/Statements/Alter.js +22 -0
  100. package/build/Database/Drivers/SQL/Statements/Alter.js.map +1 -0
  101. package/build/Database/Drivers/SQL/Statements/BaseStatement.d.ts +13 -0
  102. package/build/Database/Drivers/SQL/Statements/BaseStatement.d.ts.map +1 -0
  103. package/build/Database/Drivers/SQL/Statements/BaseStatement.js +46 -0
  104. package/build/Database/Drivers/SQL/Statements/BaseStatement.js.map +1 -0
  105. package/build/Database/Drivers/SQL/Statements/Delete.d.ts +6 -0
  106. package/build/Database/Drivers/SQL/Statements/Delete.d.ts.map +1 -0
  107. package/build/Database/Drivers/SQL/Statements/Delete.js +20 -0
  108. package/build/Database/Drivers/SQL/Statements/Delete.js.map +1 -0
  109. package/build/Database/Drivers/SQL/Statements/Insert.d.ts +7 -0
  110. package/build/Database/Drivers/SQL/Statements/Insert.d.ts.map +1 -0
  111. package/build/Database/Drivers/SQL/Statements/Insert.js +24 -0
  112. package/build/Database/Drivers/SQL/Statements/Insert.js.map +1 -0
  113. package/build/Database/Drivers/SQL/Statements/Select.d.ts +8 -0
  114. package/build/Database/Drivers/SQL/Statements/Select.d.ts.map +1 -0
  115. package/build/Database/Drivers/SQL/Statements/Select.js +51 -0
  116. package/build/Database/Drivers/SQL/Statements/Select.js.map +1 -0
  117. package/build/Database/Drivers/SQL/Statements/Update.d.ts +7 -0
  118. package/build/Database/Drivers/SQL/Statements/Update.d.ts.map +1 -0
  119. package/build/Database/Drivers/SQL/Statements/Update.js +33 -0
  120. package/build/Database/Drivers/SQL/Statements/Update.js.map +1 -0
  121. package/build/Database/Drivers/SQL/index.d.ts +9 -0
  122. package/build/Database/Drivers/SQL/index.d.ts.map +1 -0
  123. package/build/Database/Drivers/SQL/index.js +3 -0
  124. package/build/Database/Drivers/SQL/index.js.map +1 -0
  125. package/build/Database/Drivers/SQLite/Create.d.ts +10 -0
  126. package/build/Database/Drivers/SQLite/Create.d.ts.map +1 -0
  127. package/build/Database/Drivers/SQLite/Create.js +43 -0
  128. package/build/Database/Drivers/SQLite/Create.js.map +1 -0
  129. package/build/Database/Drivers/SQLite/Schema.d.ts +16 -0
  130. package/build/Database/Drivers/SQLite/Schema.d.ts.map +1 -0
  131. package/build/Database/Drivers/SQLite/Schema.js +49 -0
  132. package/build/Database/Drivers/SQLite/Schema.js.map +1 -0
  133. package/build/Database/Drivers/SQLite/SqliteDriver.d.ts +43 -0
  134. package/build/Database/Drivers/SQLite/SqliteDriver.d.ts.map +1 -0
  135. package/build/Database/Drivers/SQLite/SqliteDriver.js +115 -0
  136. package/build/Database/Drivers/SQLite/SqliteDriver.js.map +1 -0
  137. package/build/Database/Drivers/SQLite/index.d.ts +3 -0
  138. package/build/Database/Drivers/SQLite/index.d.ts.map +1 -0
  139. package/build/Database/Drivers/SQLite/index.js +31 -0
  140. package/build/Database/Drivers/SQLite/index.js.map +1 -0
  141. package/build/Database/Drivers/SchemaContract.d.ts +9 -0
  142. package/build/Database/Drivers/SchemaContract.d.ts.map +1 -0
  143. package/build/Database/Drivers/SchemaContract.js +11 -0
  144. package/build/Database/Drivers/SchemaContract.js.map +1 -0
  145. package/build/Database/Drivers/Statement.d.ts +10 -0
  146. package/build/Database/Drivers/Statement.d.ts.map +1 -0
  147. package/build/Database/Drivers/Statement.js +17 -0
  148. package/build/Database/Drivers/Statement.js.map +1 -0
  149. package/build/Database/Drivers/index.d.ts +5 -0
  150. package/build/Database/Drivers/index.d.ts.map +1 -0
  151. package/build/Database/Drivers/index.js +21 -0
  152. package/build/Database/Drivers/index.js.map +1 -0
  153. package/build/Database/Entity.d.ts +64 -0
  154. package/build/Database/Entity.d.ts.map +1 -0
  155. package/build/Database/Entity.js +243 -0
  156. package/build/Database/Entity.js.map +1 -0
  157. package/build/Database/EntityNotFoundError.d.ts +6 -0
  158. package/build/Database/EntityNotFoundError.d.ts.map +1 -0
  159. package/build/Database/EntityNotFoundError.js +12 -0
  160. package/build/Database/EntityNotFoundError.js.map +1 -0
  161. package/build/Database/EntityProxyHandler.d.ts +6 -0
  162. package/build/Database/EntityProxyHandler.d.ts.map +1 -0
  163. package/build/Database/EntityProxyHandler.js +40 -0
  164. package/build/Database/EntityProxyHandler.js.map +1 -0
  165. package/build/Database/EntityQuery.d.ts +29 -0
  166. package/build/Database/EntityQuery.d.ts.map +1 -0
  167. package/build/Database/EntityQuery.js +158 -0
  168. package/build/Database/EntityQuery.js.map +1 -0
  169. package/build/Database/Expression.d.ts +4 -0
  170. package/build/Database/Expression.d.ts.map +1 -0
  171. package/build/Database/Expression.js +7 -0
  172. package/build/Database/Expression.js.map +1 -0
  173. package/build/Database/Fields.d.ts +156 -0
  174. package/build/Database/Fields.d.ts.map +1 -0
  175. package/build/Database/Fields.js +564 -0
  176. package/build/Database/Fields.js.map +1 -0
  177. package/build/Database/Helpers.d.ts +2 -0
  178. package/build/Database/Helpers.d.ts.map +1 -0
  179. package/build/Database/Helpers.js +16 -0
  180. package/build/Database/Helpers.js.map +1 -0
  181. package/build/Database/List.d.ts +24 -0
  182. package/build/Database/List.d.ts.map +1 -0
  183. package/build/Database/List.js +48 -0
  184. package/build/Database/List.js.map +1 -0
  185. package/build/Database/Migrations/Migration.d.ts +8 -0
  186. package/build/Database/Migrations/Migration.d.ts.map +1 -0
  187. package/build/Database/Migrations/Migration.js +11 -0
  188. package/build/Database/Migrations/Migration.js.map +1 -0
  189. package/build/Database/Migrations/MigrationHistory.d.ts +9 -0
  190. package/build/Database/Migrations/MigrationHistory.d.ts.map +1 -0
  191. package/build/Database/Migrations/MigrationHistory.js +43 -0
  192. package/build/Database/Migrations/MigrationHistory.js.map +1 -0
  193. package/build/Database/Migrations/Migrator.d.ts +21 -0
  194. package/build/Database/Migrations/Migrator.d.ts.map +1 -0
  195. package/build/Database/Migrations/Migrator.js +135 -0
  196. package/build/Database/Migrations/Migrator.js.map +1 -0
  197. package/build/Database/Migrations/index.d.ts +4 -0
  198. package/build/Database/Migrations/index.d.ts.map +1 -0
  199. package/build/Database/Migrations/index.js +20 -0
  200. package/build/Database/Migrations/index.js.map +1 -0
  201. package/build/Database/ORM/BaseRelationship.d.ts +8 -0
  202. package/build/Database/ORM/BaseRelationship.d.ts.map +1 -0
  203. package/build/Database/ORM/BaseRelationship.js +13 -0
  204. package/build/Database/ORM/BaseRelationship.js.map +1 -0
  205. package/build/Database/Query.d.ts +63 -0
  206. package/build/Database/Query.d.ts.map +1 -0
  207. package/build/Database/Query.js +264 -0
  208. package/build/Database/Query.js.map +1 -0
  209. package/build/Database/Seeders/Seeder.d.ts +4 -0
  210. package/build/Database/Seeders/Seeder.d.ts.map +1 -0
  211. package/build/Database/Seeders/Seeder.js +7 -0
  212. package/build/Database/Seeders/Seeder.js.map +1 -0
  213. package/build/Database/Seeders/SeederManager.d.ts +9 -0
  214. package/build/Database/Seeders/SeederManager.d.ts.map +1 -0
  215. package/build/Database/Seeders/SeederManager.js +27 -0
  216. package/build/Database/Seeders/SeederManager.js.map +1 -0
  217. package/build/Database/Seeders/index.d.ts +3 -0
  218. package/build/Database/Seeders/index.d.ts.map +1 -0
  219. package/build/Database/Seeders/index.js +19 -0
  220. package/build/Database/Seeders/index.js.map +1 -0
  221. package/build/Database/StringExpression.d.ts +7 -0
  222. package/build/Database/StringExpression.d.ts.map +1 -0
  223. package/build/Database/StringExpression.js +16 -0
  224. package/build/Database/StringExpression.js.map +1 -0
  225. package/build/Database/Types.d.ts +118 -0
  226. package/build/Database/Types.d.ts.map +1 -0
  227. package/build/Database/Types.js +106 -0
  228. package/build/Database/Types.js.map +1 -0
  229. package/build/Database/index.d.ts +21 -0
  230. package/build/Database/index.d.ts.map +1 -0
  231. package/build/Database/index.js +25 -0
  232. package/build/Database/index.js.map +1 -0
  233. package/build/Encryption/index.d.ts +15 -0
  234. package/build/Encryption/index.d.ts.map +1 -0
  235. package/build/Encryption/index.js +68 -0
  236. package/build/Encryption/index.js.map +1 -0
  237. package/build/Forms/Decorators.d.ts +7 -0
  238. package/build/Forms/Decorators.d.ts.map +1 -0
  239. package/build/Forms/Decorators.js +29 -0
  240. package/build/Forms/Decorators.js.map +1 -0
  241. package/build/Forms/Form.d.ts +18 -0
  242. package/build/Forms/Form.d.ts.map +1 -0
  243. package/build/Forms/Form.js +68 -0
  244. package/build/Forms/Form.js.map +1 -0
  245. package/build/Forms/FormFields.d.ts +10 -0
  246. package/build/Forms/FormFields.d.ts.map +1 -0
  247. package/build/Forms/FormFields.js +39 -0
  248. package/build/Forms/FormFields.js.map +1 -0
  249. package/build/Forms/index.d.ts +4 -0
  250. package/build/Forms/index.d.ts.map +1 -0
  251. package/build/Forms/index.js +20 -0
  252. package/build/Forms/index.js.map +1 -0
  253. package/build/Framework/App.d.ts +7 -0
  254. package/build/Framework/App.d.ts.map +1 -0
  255. package/build/Framework/App.js +11 -0
  256. package/build/Framework/App.js.map +1 -0
  257. package/build/Framework/Application.d.ts +17 -0
  258. package/build/Framework/Application.d.ts.map +1 -0
  259. package/build/Framework/Application.js +94 -0
  260. package/build/Framework/Application.js.map +1 -0
  261. package/build/Framework/Auth/Auth.d.ts +24 -0
  262. package/build/Framework/Auth/Auth.d.ts.map +1 -0
  263. package/build/Framework/Auth/Auth.js +116 -0
  264. package/build/Framework/Auth/Auth.js.map +1 -0
  265. package/build/Framework/Auth/Authenticatable.d.ts +7 -0
  266. package/build/Framework/Auth/Authenticatable.d.ts.map +1 -0
  267. package/build/Framework/Auth/Authenticatable.js +3 -0
  268. package/build/Framework/Auth/Authenticatable.js.map +1 -0
  269. package/build/Framework/Auth/User.d.ts +11 -0
  270. package/build/Framework/Auth/User.d.ts.map +1 -0
  271. package/build/Framework/Auth/User.js +41 -0
  272. package/build/Framework/Auth/User.js.map +1 -0
  273. package/build/Framework/Auth/index.d.ts +6 -0
  274. package/build/Framework/Auth/index.d.ts.map +1 -0
  275. package/build/Framework/Auth/index.js +44 -0
  276. package/build/Framework/Auth/index.js.map +1 -0
  277. package/build/Framework/Config/AppConfig.d.ts +26 -0
  278. package/build/Framework/Config/AppConfig.d.ts.map +1 -0
  279. package/build/Framework/Config/AppConfig.js +20 -0
  280. package/build/Framework/Config/AppConfig.js.map +1 -0
  281. package/build/Framework/Config/AuthConfig.d.ts +11 -0
  282. package/build/Framework/Config/AuthConfig.d.ts.map +1 -0
  283. package/build/Framework/Config/AuthConfig.js +13 -0
  284. package/build/Framework/Config/AuthConfig.js.map +1 -0
  285. package/build/Framework/Config/BaseConfig.d.ts +7 -0
  286. package/build/Framework/Config/BaseConfig.d.ts.map +1 -0
  287. package/build/Framework/Config/BaseConfig.js +14 -0
  288. package/build/Framework/Config/BaseConfig.js.map +1 -0
  289. package/build/Framework/Config/CacheConfig.d.ts +16 -0
  290. package/build/Framework/Config/CacheConfig.d.ts.map +1 -0
  291. package/build/Framework/Config/CacheConfig.js +37 -0
  292. package/build/Framework/Config/CacheConfig.js.map +1 -0
  293. package/build/Framework/Config/DatabaseConfig.d.ts +11 -0
  294. package/build/Framework/Config/DatabaseConfig.d.ts.map +1 -0
  295. package/build/Framework/Config/DatabaseConfig.js +23 -0
  296. package/build/Framework/Config/DatabaseConfig.js.map +1 -0
  297. package/build/Framework/Config/MailConfig.d.ts +19 -0
  298. package/build/Framework/Config/MailConfig.d.ts.map +1 -0
  299. package/build/Framework/Config/MailConfig.js +11 -0
  300. package/build/Framework/Config/MailConfig.js.map +1 -0
  301. package/build/Framework/Config/index.d.ts +7 -0
  302. package/build/Framework/Config/index.d.ts.map +1 -0
  303. package/build/Framework/Config/index.js +23 -0
  304. package/build/Framework/Config/index.js.map +1 -0
  305. package/build/Framework/Middleware/AuthMiddleware.d.ts +9 -0
  306. package/build/Framework/Middleware/AuthMiddleware.d.ts.map +1 -0
  307. package/build/Framework/Middleware/AuthMiddleware.js +78 -0
  308. package/build/Framework/Middleware/AuthMiddleware.js.map +1 -0
  309. package/build/Framework/Middleware/CorsMiddleware.d.ts +8 -0
  310. package/build/Framework/Middleware/CorsMiddleware.d.ts.map +1 -0
  311. package/build/Framework/Middleware/CorsMiddleware.js +47 -0
  312. package/build/Framework/Middleware/CorsMiddleware.js.map +1 -0
  313. package/build/Framework/Middleware/StaticAssetsMiddleware.d.ts +16 -0
  314. package/build/Framework/Middleware/StaticAssetsMiddleware.d.ts.map +1 -0
  315. package/build/Framework/Middleware/StaticAssetsMiddleware.js +120 -0
  316. package/build/Framework/Middleware/StaticAssetsMiddleware.js.map +1 -0
  317. package/build/Framework/Middleware/index.d.ts +3 -0
  318. package/build/Framework/Middleware/index.d.ts.map +1 -0
  319. package/build/Framework/Middleware/index.js +19 -0
  320. package/build/Framework/Middleware/index.js.map +1 -0
  321. package/build/Framework/Provider.d.ts +6 -0
  322. package/build/Framework/Provider.d.ts.map +1 -0
  323. package/build/Framework/Provider.js +22 -0
  324. package/build/Framework/Provider.js.map +1 -0
  325. package/build/Framework/Providers/CacheProvider.d.ts +7 -0
  326. package/build/Framework/Providers/CacheProvider.d.ts.map +1 -0
  327. package/build/Framework/Providers/CacheProvider.js +40 -0
  328. package/build/Framework/Providers/CacheProvider.js.map +1 -0
  329. package/build/Framework/Providers/DatabaseProvider.d.ts +10 -0
  330. package/build/Framework/Providers/DatabaseProvider.d.ts.map +1 -0
  331. package/build/Framework/Providers/DatabaseProvider.js +80 -0
  332. package/build/Framework/Providers/DatabaseProvider.js.map +1 -0
  333. package/build/Framework/Providers/MailProvider.d.ts +7 -0
  334. package/build/Framework/Providers/MailProvider.d.ts.map +1 -0
  335. package/build/Framework/Providers/MailProvider.js +41 -0
  336. package/build/Framework/Providers/MailProvider.js.map +1 -0
  337. package/build/Framework/Providers/WebsocketsProvider.d.ts +12 -0
  338. package/build/Framework/Providers/WebsocketsProvider.d.ts.map +1 -0
  339. package/build/Framework/Providers/WebsocketsProvider.js +144 -0
  340. package/build/Framework/Providers/WebsocketsProvider.js.map +1 -0
  341. package/build/Framework/Resolvers/AuthResolver.d.ts +6 -0
  342. package/build/Framework/Resolvers/AuthResolver.d.ts.map +1 -0
  343. package/build/Framework/Resolvers/AuthResolver.js +19 -0
  344. package/build/Framework/Resolvers/AuthResolver.js.map +1 -0
  345. package/build/Framework/Resolvers/EntityResolver.d.ts +10 -0
  346. package/build/Framework/Resolvers/EntityResolver.d.ts.map +1 -0
  347. package/build/Framework/Resolvers/EntityResolver.js +40 -0
  348. package/build/Framework/Resolvers/EntityResolver.js.map +1 -0
  349. package/build/Framework/Resolvers/FormResolver.d.ts +10 -0
  350. package/build/Framework/Resolvers/FormResolver.d.ts.map +1 -0
  351. package/build/Framework/Resolvers/FormResolver.js +34 -0
  352. package/build/Framework/Resolvers/FormResolver.js.map +1 -0
  353. package/build/Framework/RootDir.d.ts +3 -0
  354. package/build/Framework/RootDir.d.ts.map +1 -0
  355. package/build/Framework/RootDir.js +7 -0
  356. package/build/Framework/RootDir.js.map +1 -0
  357. package/build/Framework/index.d.ts +9 -0
  358. package/build/Framework/index.d.ts.map +1 -0
  359. package/build/Framework/index.js +25 -0
  360. package/build/Framework/index.js.map +1 -0
  361. package/build/Mail/MailAddress.d.ts +5 -0
  362. package/build/Mail/MailAddress.d.ts.map +1 -0
  363. package/build/Mail/MailAddress.js +3 -0
  364. package/build/Mail/MailAddress.js.map +1 -0
  365. package/build/Mail/MailTransport.d.ts +6 -0
  366. package/build/Mail/MailTransport.d.ts.map +1 -0
  367. package/build/Mail/MailTransport.js +7 -0
  368. package/build/Mail/MailTransport.js.map +1 -0
  369. package/build/Mail/Mailable.d.ts +18 -0
  370. package/build/Mail/Mailable.d.ts.map +1 -0
  371. package/build/Mail/Mailable.js +17 -0
  372. package/build/Mail/Mailable.js.map +1 -0
  373. package/build/Mail/Mailer.d.ts +12 -0
  374. package/build/Mail/Mailer.d.ts.map +1 -0
  375. package/build/Mail/Mailer.js +27 -0
  376. package/build/Mail/Mailer.js.map +1 -0
  377. package/build/Mail/PendingMail.d.ts +30 -0
  378. package/build/Mail/PendingMail.d.ts.map +1 -0
  379. package/build/Mail/PendingMail.js +54 -0
  380. package/build/Mail/PendingMail.js.map +1 -0
  381. package/build/Mail/SentMessage.d.ts +16 -0
  382. package/build/Mail/SentMessage.d.ts.map +1 -0
  383. package/build/Mail/SentMessage.js +20 -0
  384. package/build/Mail/SentMessage.js.map +1 -0
  385. package/build/Mail/Transports/MemoryTransport.d.ts +8 -0
  386. package/build/Mail/Transports/MemoryTransport.d.ts.map +1 -0
  387. package/build/Mail/Transports/MemoryTransport.js +15 -0
  388. package/build/Mail/Transports/MemoryTransport.js.map +1 -0
  389. package/build/Mail/Transports/SendGridTransport.d.ts +11 -0
  390. package/build/Mail/Transports/SendGridTransport.d.ts.map +1 -0
  391. package/build/Mail/Transports/SendGridTransport.js +106 -0
  392. package/build/Mail/Transports/SendGridTransport.js.map +1 -0
  393. package/build/Mail/index.d.ts +4 -0
  394. package/build/Mail/index.d.ts.map +1 -0
  395. package/build/Mail/index.js +20 -0
  396. package/build/Mail/index.js.map +1 -0
  397. package/build/Models/Model.d.ts +10 -0
  398. package/build/Models/Model.d.ts.map +1 -0
  399. package/build/Models/Model.js +36 -0
  400. package/build/Models/Model.js.map +1 -0
  401. package/build/Models/index.d.ts +22 -0
  402. package/build/Models/index.d.ts.map +1 -0
  403. package/build/Models/index.js +64 -0
  404. package/build/Models/index.js.map +1 -0
  405. package/build/Router/BaseController.d.ts +5 -0
  406. package/build/Router/BaseController.d.ts.map +1 -0
  407. package/build/Router/BaseController.js +22 -0
  408. package/build/Router/BaseController.js.map +1 -0
  409. package/build/Router/Decorators.d.ts +19 -0
  410. package/build/Router/Decorators.d.ts.map +1 -0
  411. package/build/Router/Decorators.js +175 -0
  412. package/build/Router/Decorators.js.map +1 -0
  413. package/build/Router/Guard.d.ts +5 -0
  414. package/build/Router/Guard.d.ts.map +1 -0
  415. package/build/Router/Guard.js +11 -0
  416. package/build/Router/Guard.js.map +1 -0
  417. package/build/Router/Http/Contracts.d.ts +4 -0
  418. package/build/Router/Http/Contracts.d.ts.map +1 -0
  419. package/build/Router/Http/Contracts.js +3 -0
  420. package/build/Router/Http/Contracts.js.map +1 -0
  421. package/build/Router/Http/ErrorHandler.d.ts +10 -0
  422. package/build/Router/Http/ErrorHandler.d.ts.map +1 -0
  423. package/build/Router/Http/ErrorHandler.js +53 -0
  424. package/build/Router/Http/ErrorHandler.js.map +1 -0
  425. package/build/Router/Http/ErrorHandlerInterface.d.ts +6 -0
  426. package/build/Router/Http/ErrorHandlerInterface.d.ts.map +1 -0
  427. package/build/Router/Http/ErrorHandlerInterface.js +8 -0
  428. package/build/Router/Http/ErrorHandlerInterface.js.map +1 -0
  429. package/build/Router/Http/Errors/HttpError.d.ts +8 -0
  430. package/build/Router/Http/Errors/HttpError.d.ts.map +1 -0
  431. package/build/Router/Http/Errors/HttpError.js +18 -0
  432. package/build/Router/Http/Errors/HttpError.js.map +1 -0
  433. package/build/Router/Http/Handler.d.ts +19 -0
  434. package/build/Router/Http/Handler.d.ts.map +1 -0
  435. package/build/Router/Http/Handler.js +164 -0
  436. package/build/Router/Http/Handler.js.map +1 -0
  437. package/build/Router/Http/HttpRoute.d.ts +25 -0
  438. package/build/Router/Http/HttpRoute.d.ts.map +1 -0
  439. package/build/Router/Http/HttpRoute.js +97 -0
  440. package/build/Router/Http/HttpRoute.js.map +1 -0
  441. package/build/Router/Http/Middleware.d.ts +7 -0
  442. package/build/Router/Http/Middleware.d.ts.map +1 -0
  443. package/build/Router/Http/Middleware.js +8 -0
  444. package/build/Router/Http/Middleware.js.map +1 -0
  445. package/build/Router/Http/Request.d.ts +38 -0
  446. package/build/Router/Http/Request.d.ts.map +1 -0
  447. package/build/Router/Http/Request.js +211 -0
  448. package/build/Router/Http/Request.js.map +1 -0
  449. package/build/Router/Http/Response.d.ts +14 -0
  450. package/build/Router/Http/Response.d.ts.map +1 -0
  451. package/build/Router/Http/Response.js +31 -0
  452. package/build/Router/Http/Response.js.map +1 -0
  453. package/build/Router/Http/index.d.ts +84 -0
  454. package/build/Router/Http/index.d.ts.map +1 -0
  455. package/build/Router/Http/index.js +104 -0
  456. package/build/Router/Http/index.js.map +1 -0
  457. package/build/Router/Metadata.d.ts +41 -0
  458. package/build/Router/Metadata.d.ts.map +1 -0
  459. package/build/Router/Metadata.js +33 -0
  460. package/build/Router/Metadata.js.map +1 -0
  461. package/build/Router/Middleware.d.ts +13 -0
  462. package/build/Router/Middleware.d.ts.map +1 -0
  463. package/build/Router/Middleware.js +7 -0
  464. package/build/Router/Middleware.js.map +1 -0
  465. package/build/Router/Request.d.ts +24 -0
  466. package/build/Router/Request.d.ts.map +1 -0
  467. package/build/Router/Request.js +44 -0
  468. package/build/Router/Request.js.map +1 -0
  469. package/build/Router/Route.d.ts +13 -0
  470. package/build/Router/Route.d.ts.map +1 -0
  471. package/build/Router/Route.js +20 -0
  472. package/build/Router/Route.js.map +1 -0
  473. package/build/Router/RouteNotFoundError.d.ts +4 -0
  474. package/build/Router/RouteNotFoundError.d.ts.map +1 -0
  475. package/build/Router/RouteNotFoundError.js +10 -0
  476. package/build/Router/RouteNotFoundError.js.map +1 -0
  477. package/build/Router/Router.d.ts +19 -0
  478. package/build/Router/Router.d.ts.map +1 -0
  479. package/build/Router/Router.js +36 -0
  480. package/build/Router/Router.js.map +1 -0
  481. package/build/Router/Servers/index.d.ts +5 -0
  482. package/build/Router/Servers/index.d.ts.map +1 -0
  483. package/build/Router/Servers/index.js +19 -0
  484. package/build/Router/Servers/index.js.map +1 -0
  485. package/build/Router/Servers/node.d.ts +3 -0
  486. package/build/Router/Servers/node.d.ts.map +1 -0
  487. package/build/Router/Servers/node.js +41 -0
  488. package/build/Router/Servers/node.js.map +1 -0
  489. package/build/Router/Servers/uNetworking.d.ts +3 -0
  490. package/build/Router/Servers/uNetworking.d.ts.map +1 -0
  491. package/build/Router/Servers/uNetworking.js +172 -0
  492. package/build/Router/Servers/uNetworking.js.map +1 -0
  493. package/build/Router/Websockets/Handler.d.ts +15 -0
  494. package/build/Router/Websockets/Handler.d.ts.map +1 -0
  495. package/build/Router/Websockets/Handler.js +70 -0
  496. package/build/Router/Websockets/Handler.js.map +1 -0
  497. package/build/Router/Websockets/Middleware.d.ts +7 -0
  498. package/build/Router/Websockets/Middleware.d.ts.map +1 -0
  499. package/build/Router/Websockets/Middleware.js +8 -0
  500. package/build/Router/Websockets/Middleware.js.map +1 -0
  501. package/build/Router/Websockets/Request.d.ts +4 -0
  502. package/build/Router/Websockets/Request.d.ts.map +1 -0
  503. package/build/Router/Websockets/Request.js +8 -0
  504. package/build/Router/Websockets/Request.js.map +1 -0
  505. package/build/Router/Websockets/WebsocketRoute.d.ts +7 -0
  506. package/build/Router/Websockets/WebsocketRoute.d.ts.map +1 -0
  507. package/build/Router/Websockets/WebsocketRoute.js +47 -0
  508. package/build/Router/Websockets/WebsocketRoute.js.map +1 -0
  509. package/build/Router/Websockets/index.d.ts +19 -0
  510. package/build/Router/Websockets/index.d.ts.map +1 -0
  511. package/build/Router/Websockets/index.js +68 -0
  512. package/build/Router/Websockets/index.js.map +1 -0
  513. package/build/Router/Websockets/types.d.ts +22 -0
  514. package/build/Router/Websockets/types.d.ts.map +1 -0
  515. package/build/Router/Websockets/types.js +9 -0
  516. package/build/Router/Websockets/types.js.map +1 -0
  517. package/build/Router/index.d.ts +7 -0
  518. package/build/Router/index.d.ts.map +1 -0
  519. package/build/Router/index.js +23 -0
  520. package/build/Router/index.js.map +1 -0
  521. package/build/Storage/File.d.ts +12 -0
  522. package/build/Storage/File.d.ts.map +1 -0
  523. package/build/Storage/File.js +65 -0
  524. package/build/Storage/File.js.map +1 -0
  525. package/build/Storage/Image.d.ts +4 -0
  526. package/build/Storage/Image.d.ts.map +1 -0
  527. package/build/Storage/Image.js +8 -0
  528. package/build/Storage/Image.js.map +1 -0
  529. package/build/Storage/InvalidImage.d.ts +4 -0
  530. package/build/Storage/InvalidImage.d.ts.map +1 -0
  531. package/build/Storage/InvalidImage.js +8 -0
  532. package/build/Storage/InvalidImage.js.map +1 -0
  533. package/build/Storage/Storage.d.ts +13 -0
  534. package/build/Storage/Storage.d.ts.map +1 -0
  535. package/build/Storage/Storage.js +120 -0
  536. package/build/Storage/Storage.js.map +1 -0
  537. package/build/Storage/index.d.ts +5 -0
  538. package/build/Storage/index.d.ts.map +1 -0
  539. package/build/Storage/index.js +21 -0
  540. package/build/Storage/index.js.map +1 -0
  541. package/build/Storage/utils.d.ts +5 -0
  542. package/build/Storage/utils.d.ts.map +1 -0
  543. package/build/Storage/utils.js +20 -0
  544. package/build/Storage/utils.js.map +1 -0
  545. package/build/Support/Array.d.ts +29 -0
  546. package/build/Support/Array.d.ts.map +1 -0
  547. package/build/Support/Array.js +112 -0
  548. package/build/Support/Array.js.map +1 -0
  549. package/build/Support/Math.d.ts +7 -0
  550. package/build/Support/Math.d.ts.map +1 -0
  551. package/build/Support/Math.js +8 -0
  552. package/build/Support/Math.js.map +1 -0
  553. package/build/Support/Metadata.d.ts +16 -0
  554. package/build/Support/Metadata.d.ts.map +1 -0
  555. package/build/Support/Metadata.js +33 -0
  556. package/build/Support/Metadata.js.map +1 -0
  557. package/build/Support/String.d.ts +12 -0
  558. package/build/Support/String.d.ts.map +1 -0
  559. package/build/Support/String.js +24 -0
  560. package/build/Support/String.js.map +1 -0
  561. package/build/Support/index.d.ts +16 -0
  562. package/build/Support/index.d.ts.map +1 -0
  563. package/build/Support/index.js +7 -0
  564. package/build/Support/index.js.map +1 -0
  565. package/build/Support/utils.d.ts +2 -0
  566. package/build/Support/utils.d.ts.map +1 -0
  567. package/build/Support/utils.js +12 -0
  568. package/build/Support/utils.js.map +1 -0
  569. package/build/Testing/TestCase.d.ts +33 -0
  570. package/build/Testing/TestCase.d.ts.map +1 -0
  571. package/build/Testing/TestCase.js +138 -0
  572. package/build/Testing/TestCase.js.map +1 -0
  573. package/build/Validation/Rule.d.ts +7 -0
  574. package/build/Validation/Rule.d.ts.map +1 -0
  575. package/build/Validation/Rule.js +7 -0
  576. package/build/Validation/Rule.js.map +1 -0
  577. package/build/Validation/RuleInterface.d.ts +7 -0
  578. package/build/Validation/RuleInterface.d.ts.map +1 -0
  579. package/build/Validation/RuleInterface.js +3 -0
  580. package/build/Validation/RuleInterface.js.map +1 -0
  581. package/build/Validation/Rules/Email.d.ts +4 -0
  582. package/build/Validation/Rules/Email.d.ts.map +1 -0
  583. package/build/Validation/Rules/Email.js +17 -0
  584. package/build/Validation/Rules/Email.js.map +1 -0
  585. package/build/Validation/Rules/FileExtension.d.ts +4 -0
  586. package/build/Validation/Rules/FileExtension.d.ts.map +1 -0
  587. package/build/Validation/Rules/FileExtension.js +19 -0
  588. package/build/Validation/Rules/FileExtension.js.map +1 -0
  589. package/build/Validation/Rules/MaxLength.d.ts +4 -0
  590. package/build/Validation/Rules/MaxLength.d.ts.map +1 -0
  591. package/build/Validation/Rules/MaxLength.js +16 -0
  592. package/build/Validation/Rules/MaxLength.js.map +1 -0
  593. package/build/Validation/Rules/MinLength.d.ts +4 -0
  594. package/build/Validation/Rules/MinLength.d.ts.map +1 -0
  595. package/build/Validation/Rules/MinLength.js +16 -0
  596. package/build/Validation/Rules/MinLength.js.map +1 -0
  597. package/build/Validation/Rules/Optional.d.ts +4 -0
  598. package/build/Validation/Rules/Optional.d.ts.map +1 -0
  599. package/build/Validation/Rules/Optional.js +16 -0
  600. package/build/Validation/Rules/Optional.js.map +1 -0
  601. package/build/Validation/Rules/Required.d.ts +4 -0
  602. package/build/Validation/Rules/Required.d.ts.map +1 -0
  603. package/build/Validation/Rules/Required.js +24 -0
  604. package/build/Validation/Rules/Required.js.map +1 -0
  605. package/build/Validation/Validator.d.ts +12 -0
  606. package/build/Validation/Validator.d.ts.map +1 -0
  607. package/build/Validation/Validator.js +13 -0
  608. package/build/Validation/Validator.js.map +1 -0
  609. package/build/Validation/index.d.ts +11 -0
  610. package/build/Validation/index.d.ts.map +1 -0
  611. package/build/Validation/index.js +27 -0
  612. package/build/Validation/index.js.map +1 -0
  613. package/package.json +10 -15
  614. package/.automaker/app_spec.txt +0 -440
  615. package/.automaker/categories.json +0 -1
  616. package/.automaker/features/a-b-testing-framework/feature.json +0 -14
  617. package/.automaker/features/account-lockout-protection/feature.json +0 -14
  618. package/.automaker/features/api-versioning/feature.json +0 -14
  619. package/.automaker/features/background-job-processing/feature.json +0 -12
  620. package/.automaker/features/cloud-storage-integration/feature.json +0 -14
  621. package/.automaker/features/compression-middleware/feature.json +0 -14
  622. package/.automaker/features/cors-and-security-headers/feature.json +0 -14
  623. package/.automaker/features/currency-and-timezone/feature.json +0 -14
  624. package/.automaker/features/database-backup-restore/feature.json +0 -14
  625. package/.automaker/features/database-query-logging/feature.json +0 -15
  626. package/.automaker/features/database-transaction-support/feature.json +0 -14
  627. package/.automaker/features/discord-notifications-channel/feature.json +0 -14
  628. package/.automaker/features/eager-loading-optimization/feature.json +0 -14
  629. package/.automaker/features/email-notifications-channel/feature.json +0 -14
  630. package/.automaker/features/error-tracking-integration/feature.json +0 -14
  631. package/.automaker/features/feature-flags/feature.json +0 -12
  632. package/.automaker/features/file-upload-handling/feature.json +0 -14
  633. package/.automaker/features/form-builder/feature.json +0 -14
  634. package/.automaker/features/full-text-search/feature.json +0 -14
  635. package/.automaker/features/graphql-api-support/feature.json +0 -14
  636. package/.automaker/features/graphql-documentation/feature.json +0 -14
  637. package/.automaker/features/graphql-subscriptions/feature.json +0 -15
  638. package/.automaker/features/html-view-rendering/feature.json +0 -14
  639. package/.automaker/features/http2-support/feature.json +0 -14
  640. package/.automaker/features/http3-quic-support/feature.json +0 -14
  641. package/.automaker/features/image-processing/feature.json +0 -14
  642. package/.automaker/features/internationalization-i18n/feature.json +0 -12
  643. package/.automaker/features/job-retries-and-failures/feature.json +0 -14
  644. package/.automaker/features/job-scheduling/feature.json +0 -14
  645. package/.automaker/features/locale-detection/feature.json +0 -14
  646. package/.automaker/features/log-rotation/feature.json +0 -14
  647. package/.automaker/features/logging-system/feature.json +0 -12
  648. package/.automaker/features/oauth-authentication/feature.json +0 -14
  649. package/.automaker/features/pagination-component/feature.json +0 -14
  650. package/.automaker/features/password-reset-flow/feature.json +0 -14
  651. package/.automaker/features/performance-monitoring/feature.json +0 -14
  652. package/.automaker/features/permission-management/feature.json +0 -14
  653. package/.automaker/features/policy-based-authorization/feature.json +0 -14
  654. package/.automaker/features/polymorphic-relationships/feature.json +0 -14
  655. package/.automaker/features/query-scopes/feature.json +0 -14
  656. package/.automaker/features/rate-limiting/feature.json +0 -14
  657. package/.automaker/features/request-validation-middleware/feature.json +0 -14
  658. package/.automaker/features/response-caching-headers/feature.json +0 -14
  659. package/.automaker/features/rest-api-documentation/feature.json +0 -14
  660. package/.automaker/features/role-based-access-control/feature.json +0 -14
  661. package/.automaker/features/session-management/feature.json +0 -14
  662. package/.automaker/features/session-middleware/feature.json +0 -14
  663. package/.automaker/features/slack-notifications-channel/feature.json +0 -14
  664. package/.automaker/features/sms-notifications-channel/feature.json +0 -14
  665. package/.automaker/features/soft-deletes/feature.json +0 -14
  666. package/.automaker/features/structured-logging/feature.json +0 -14
  667. package/.automaker/features/timestamps-and-auditing/feature.json +0 -14
  668. package/.automaker/features/two-factor-authentication/feature.json +0 -14
  669. package/.automaker/features/view-helpers-utilities/feature.json +0 -14
  670. package/.automaker/features/webhook-notifications/feature.json +0 -14
  671. package/.claude/settings.local.json +0 -10
  672. package/.editorconfig +0 -11
  673. package/.mocharc.json +0 -13
  674. package/CONTRIBUTING.md +0 -9
  675. package/Cache/Cache.ts +0 -13
  676. package/Cache/Stores/DatabaseStore.ts +0 -120
  677. package/Cache/Stores/FileStore.ts +0 -69
  678. package/Cache/Stores/MemoryStore.ts +0 -71
  679. package/Cache/index.ts +0 -5
  680. package/Cache/types.ts +0 -4
  681. package/Container/ClassResolver.ts +0 -106
  682. package/Container/Container.ts +0 -144
  683. package/Container/Contracts.ts +0 -3
  684. package/Container/Decorators.ts +0 -20
  685. package/Container/Metadata.ts +0 -16
  686. package/Container/Resolver.ts +0 -27
  687. package/Container/index.ts +0 -5
  688. package/Database/Clauses/Where.ts +0 -0
  689. package/Database/Connection.ts +0 -52
  690. package/Database/Decorators.ts +0 -142
  691. package/Database/Drivers/DatabaseDriver.ts +0 -37
  692. package/Database/Drivers/MySQL/Alter/index.ts +0 -55
  693. package/Database/Drivers/MySQL/ColumnDefinition.ts +0 -16
  694. package/Database/Drivers/MySQL/Create.ts +0 -47
  695. package/Database/Drivers/MySQL/MysqlDriver.ts +0 -123
  696. package/Database/Drivers/MySQL/Schema.ts +0 -82
  697. package/Database/Drivers/MySQL/index.ts +0 -13
  698. package/Database/Drivers/SQL/Schema.ts +0 -73
  699. package/Database/Drivers/SQL/Statements/Alter.ts +0 -22
  700. package/Database/Drivers/SQL/Statements/BaseStatement.ts +0 -55
  701. package/Database/Drivers/SQL/Statements/Delete.ts +0 -20
  702. package/Database/Drivers/SQL/Statements/Insert.ts +0 -24
  703. package/Database/Drivers/SQL/Statements/Select.ts +0 -55
  704. package/Database/Drivers/SQL/Statements/Update.ts +0 -33
  705. package/Database/Drivers/SQL/index.ts +0 -8
  706. package/Database/Drivers/SQLite/Create.ts +0 -45
  707. package/Database/Drivers/SQLite/Schema.ts +0 -54
  708. package/Database/Drivers/SQLite/SqliteDriver.ts +0 -144
  709. package/Database/Drivers/SQLite/index.ts +0 -15
  710. package/Database/Drivers/SchemaContract.ts +0 -11
  711. package/Database/Drivers/Statement.ts +0 -16
  712. package/Database/Drivers/index.ts +0 -4
  713. package/Database/Entity.ts +0 -377
  714. package/Database/EntityNotFoundError.ts +0 -5
  715. package/Database/EntityProxyHandler.ts +0 -43
  716. package/Database/EntityQuery.ts +0 -197
  717. package/Database/Expression.ts +0 -3
  718. package/Database/Fields.ts +0 -816
  719. package/Database/Helpers.ts +0 -12
  720. package/Database/List.ts +0 -71
  721. package/Database/Migrations/Migration.ts +0 -10
  722. package/Database/Migrations/MigrationHistory.ts +0 -20
  723. package/Database/Migrations/Migrator.ts +0 -122
  724. package/Database/Migrations/index.ts +0 -3
  725. package/Database/ORM/BaseRelationship.ts +0 -10
  726. package/Database/Query.ts +0 -374
  727. package/Database/Seeders/Seeder.ts +0 -3
  728. package/Database/Seeders/SeederManager.ts +0 -27
  729. package/Database/Seeders/index.ts +0 -2
  730. package/Database/StringExpression.ts +0 -9
  731. package/Database/Types.ts +0 -165
  732. package/Database/index.ts +0 -23
  733. package/Encryption/index.ts +0 -51
  734. package/Forms/Decorators.ts +0 -29
  735. package/Forms/Form.ts +0 -70
  736. package/Forms/FormFields.ts +0 -36
  737. package/Forms/index.ts +0 -3
  738. package/Framework/App.ts +0 -10
  739. package/Framework/Application.ts +0 -118
  740. package/Framework/Auth/Auth.ts +0 -122
  741. package/Framework/Auth/Authenticatable.ts +0 -9
  742. package/Framework/Auth/User.ts +0 -27
  743. package/Framework/Auth/index.ts +0 -29
  744. package/Framework/Config/AppConfig.ts +0 -25
  745. package/Framework/Config/AuthConfig.ts +0 -11
  746. package/Framework/Config/BaseConfig.ts +0 -9
  747. package/Framework/Config/CacheConfig.ts +0 -38
  748. package/Framework/Config/DatabaseConfig.ts +0 -21
  749. package/Framework/Config/MailConfig.ts +0 -30
  750. package/Framework/Config/index.ts +0 -6
  751. package/Framework/Middleware/AuthMiddleware.ts +0 -31
  752. package/Framework/Middleware/CorsMiddleware.ts +0 -32
  753. package/Framework/Middleware/StaticAssetsMiddleware.ts +0 -76
  754. package/Framework/Middleware/index.ts +0 -2
  755. package/Framework/Provider.ts +0 -9
  756. package/Framework/Providers/CacheProvider.ts +0 -28
  757. package/Framework/Providers/DatabaseProvider.ts +0 -36
  758. package/Framework/Providers/MailProvider.ts +0 -31
  759. package/Framework/Providers/WebsocketsProvider.ts +0 -141
  760. package/Framework/Resolvers/AuthResolver.ts +0 -23
  761. package/Framework/Resolvers/EntityResolver.ts +0 -41
  762. package/Framework/Resolvers/FormResolver.ts +0 -37
  763. package/Framework/RootDir.ts +0 -1
  764. package/Framework/index.ts +0 -8
  765. package/Frontend/Angular/Readme.md +0 -7
  766. package/Frontend/Angular/index.ts +0 -24
  767. package/Frontend/Angular/package-lock.json +0 -2767
  768. package/Frontend/Angular/package.json +0 -38
  769. package/Frontend/Angular/tsconfig.json +0 -20
  770. package/Frontend/Websockets/Readme.md +0 -86
  771. package/Frontend/Websockets/index.ts +0 -99
  772. package/Frontend/Websockets/package-lock.json +0 -4371
  773. package/Frontend/Websockets/package.json +0 -45
  774. package/Frontend/Websockets/tsc-alias.config.json +0 -7
  775. package/Frontend/Websockets/tsconfig.json +0 -20
  776. package/Mail/MailAddress.ts +0 -4
  777. package/Mail/MailTransport.ts +0 -6
  778. package/Mail/Mailable.ts +0 -16
  779. package/Mail/Mailer.ts +0 -27
  780. package/Mail/PendingMail.ts +0 -68
  781. package/Mail/SentMessage.ts +0 -20
  782. package/Mail/Transports/MemoryTransport.ts +0 -13
  783. package/Mail/Transports/SendGridTransport.ts +0 -95
  784. package/Mail/index.ts +0 -3
  785. package/Models/Model.ts +0 -41
  786. package/Models/index.ts +0 -54
  787. package/Router/BaseController.ts +0 -7
  788. package/Router/Decorators.ts +0 -224
  789. package/Router/Guard.ts +0 -10
  790. package/Router/Http/Contracts.ts +0 -4
  791. package/Router/Http/ErrorHandler.ts +0 -45
  792. package/Router/Http/ErrorHandlerInterface.ts +0 -6
  793. package/Router/Http/Errors/HttpError.ts +0 -15
  794. package/Router/Http/Handler.ts +0 -183
  795. package/Router/Http/HttpRoute.ts +0 -110
  796. package/Router/Http/Middleware.ts +0 -7
  797. package/Router/Http/Request.ts +0 -225
  798. package/Router/Http/Response.ts +0 -35
  799. package/Router/Http/index.ts +0 -85
  800. package/Router/Metadata.ts +0 -34
  801. package/Router/Middleware.ts +0 -16
  802. package/Router/Request.ts +0 -65
  803. package/Router/Route.ts +0 -16
  804. package/Router/RouteNotFoundError.ts +0 -5
  805. package/Router/Router.ts +0 -35
  806. package/Router/Servers/index.ts +0 -6
  807. package/Router/Servers/node.ts +0 -49
  808. package/Router/Servers/uNetworking.ts +0 -151
  809. package/Router/Websockets/Handler.ts +0 -82
  810. package/Router/Websockets/Middleware.ts +0 -7
  811. package/Router/Websockets/Request.ts +0 -3
  812. package/Router/Websockets/WebsocketRoute.ts +0 -61
  813. package/Router/Websockets/index.ts +0 -59
  814. package/Router/Websockets/types.ts +0 -24
  815. package/Router/index.ts +0 -6
  816. package/Storage/File.ts +0 -30
  817. package/Storage/Image.ts +0 -19
  818. package/Storage/InvalidImage.ts +0 -3
  819. package/Storage/Storage.ts +0 -98
  820. package/Storage/index.ts +0 -4
  821. package/Storage/utils.ts +0 -18
  822. package/Support/Array.ts +0 -184
  823. package/Support/Math.ts +0 -12
  824. package/Support/Metadata.ts +0 -31
  825. package/Support/String.ts +0 -38
  826. package/Support/index.ts +0 -19
  827. package/Support/utils.ts +0 -7
  828. package/Testing/TestCase.ts +0 -193
  829. package/Validation/Rule.ts +0 -9
  830. package/Validation/RuleInterface.ts +0 -10
  831. package/Validation/Rules/Email.ts +0 -20
  832. package/Validation/Rules/FileExtension.ts +0 -21
  833. package/Validation/Rules/MaxLength.ts +0 -17
  834. package/Validation/Rules/MinLength.ts +0 -18
  835. package/Validation/Rules/Optional.ts +0 -18
  836. package/Validation/Rules/Required.ts +0 -29
  837. package/Validation/Validator.ts +0 -7
  838. package/Validation/index.ts +0 -12
  839. package/benchmark.ts +0 -47
  840. package/eslint.config.mjs +0 -78
  841. package/tests/.nycrc.json +0 -19
  842. package/tests/Cache/DatabaseStoreTest.ts +0 -110
  843. package/tests/Cache/FileStoreTest.ts +0 -93
  844. package/tests/Cache/MemoryStoreTest.ts +0 -92
  845. package/tests/Container/ContainerTest.ts +0 -336
  846. package/tests/Database/Drivers/MySQL/AlterTest.ts +0 -100
  847. package/tests/Database/Drivers/MySQL/CreateTest.ts +0 -39
  848. package/tests/Database/Drivers/MysqlDriverTest.ts +0 -140
  849. package/tests/Database/Drivers/SqliteDriverTest.ts +0 -126
  850. package/tests/Database/Entities/Article.ts +0 -21
  851. package/tests/Database/Entities/Profile.ts +0 -21
  852. package/tests/Database/Entities/Role.ts +0 -15
  853. package/tests/Database/Entities/User.ts +0 -35
  854. package/tests/Database/EntityRelationshipsTest.ts +0 -475
  855. package/tests/Database/EntityTest.ts +0 -202
  856. package/tests/Database/Migrations/RunnerTest.ts +0 -96
  857. package/tests/Database/Migrations/migrations/1.createUserTable.ts +0 -12
  858. package/tests/Database/Migrations/migrations/2.createArticlesTable.ts +0 -12
  859. package/tests/Database/QueryTest.ts +0 -573
  860. package/tests/Database/SchemaTest.ts +0 -32
  861. package/tests/Database/Seeders/RunnerTest.ts +0 -30
  862. package/tests/Database/Seeders/seeders/RandomSeeder.ts +0 -10
  863. package/tests/Database/utils.ts +0 -16
  864. package/tests/Forms/FormsTest.ts +0 -59
  865. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.ts +0 -129
  866. package/tests/Framework/Middleware/articles/my-article.html +0 -1
  867. package/tests/Framework/Middleware/articles/some-directory/index.html +0 -1
  868. package/tests/Framework/Middleware/assets/styles.css +0 -3
  869. package/tests/Framework/Resolvers/EntityResolverTest.ts +0 -48
  870. package/tests/Framework/Router/RouterTest.ts +0 -33
  871. package/tests/Mail/MailerTest.ts +0 -76
  872. package/tests/Model/ModelTest.ts +0 -183
  873. package/tests/Router/HttpHandlerTest.ts +0 -72
  874. package/tests/Router/RequestTest.ts +0 -77
  875. package/tests/Router/WebSocketsHandlerTest.ts +0 -51
  876. package/tests/Storage/StorageTest.ts +0 -97
  877. package/tests/Support/ArrayTest.ts +0 -167
  878. package/tests/Support/StringTest.ts +0 -18
  879. package/tests/Validation/RulesTest.ts +0 -54
  880. package/tests/tsconfig.json +0 -5
  881. package/tsconfig.json +0 -53
  882. package/types.d.ts +0 -8
@@ -1,377 +0,0 @@
1
- import { EntityProxyHandler } from './EntityProxyHandler'
2
- import { EntityQuery } from './EntityQuery'
3
- import { ChildObject, KeysOfType } from '../Support'
4
- import { EntityMetadata, EntityMetadataKey, ID } from './Decorators'
5
- import { EntityNotFoundError } from './EntityNotFoundError'
6
- import { BelongsTo, BelongsToMany, ColumnField, HasMany, HasOne, InverseField } from './Fields'
7
- import { BooleanOperator, Direction, Operator, WhereFunction, WhereValue } from './Types'
8
- import { DotNotationProperties, EntityConstructor, EntityKeys, EntityObject } from './index'
9
- import { Query } from './Query'
10
- import { List } from './List'
11
-
12
- export abstract class Entity {
13
-
14
- exists = false
15
- // tslint:disable-next-line:no-any
16
- original: Record<string, any> = {}
17
-
18
- constructor() {
19
- const entityProxyHandler = new EntityProxyHandler<this>()
20
- const proxy = new Proxy(this, entityProxyHandler)
21
-
22
- // Weird JS issues: "filling" an instance with data is not possible since the default values of child entities
23
- // are assigned after the constructor of base class (this constructor exactly) is called.
24
- // Calling "proxy.fill will update the instance but then the default values will overwrite them"
25
- // proxy.fill(this.original = data || {})
26
-
27
- return proxy
28
- }
29
-
30
- static get metadata(): EntityMetadata<Entity, Entity> {
31
- return Reflect.getMetadata(EntityMetadataKey, this.prototype) ?? new EntityMetadata<Entity, Entity>()
32
- }
33
-
34
- get metadata(): EntityMetadata<Entity, Entity> {
35
- return this.static.metadata
36
- }
37
-
38
- get static(): EntityConstructor<this> {
39
- return this.constructor as EntityConstructor<this>
40
- }
41
-
42
- static where<T extends Entity, K extends EntityKeys<T>>(
43
- this: EntityConstructor<T>,
44
- column: EntityKeys<T>,
45
- operator: Operator | Query | WhereValue | T[K],
46
- value?: Query | WhereValue | T[K],
47
- boolean?: BooleanOperator
48
- ): EntityQuery<T> {
49
- const columnMetadata = {
50
- ...this.metadata.columns,
51
- ...this.metadata.relationships
52
- }[column as string]
53
- return this.newQuery().where(columnMetadata.column, operator, value, boolean)
54
- }
55
-
56
- static whereIn<T extends Entity, K extends EntityKeys<T>>(
57
- this: EntityConstructor<T>,
58
- column: EntityKeys<T>,
59
- value: Query | WhereValue[] | T[K][],
60
- boolean?: BooleanOperator
61
- ): EntityQuery<T> {
62
- const columnMetadata = {
63
- ...this.metadata.columns,
64
- ...this.metadata.relationships
65
- }[column as string]
66
- return this.newQuery().whereIn(columnMetadata.column, value, boolean)
67
- }
68
-
69
- static whereNotIn<T extends Entity, K extends EntityKeys<T>>(
70
- this: EntityConstructor<T>,
71
- column: EntityKeys<T>,
72
- value: Query | WhereFunction | WhereValue[] | T[K][]
73
- ): EntityQuery<T> {
74
- const columnMetadata = {
75
- ...this.metadata.columns,
76
- ...this.metadata.relationships
77
- }[column as string]
78
- return this.newQuery().whereNotIn(columnMetadata.column, value)
79
- }
80
-
81
- static whereLike<T extends Entity, K extends EntityKeys<T>>(
82
- this: EntityConstructor<T>,
83
- column: EntityKeys<T>,
84
- value?: WhereValue | T[K],
85
- boolean?: BooleanOperator
86
- ): EntityQuery<T> {
87
- const columnMetadata = {
88
- ...this.metadata.columns,
89
- ...this.metadata.relationships
90
- }[column as string]
91
- return this.newQuery().whereLike(columnMetadata.column, value as WhereValue, boolean)
92
- }
93
-
94
- static async first<T extends Entity, K extends EntityKeys<T>>(
95
- this: EntityConstructor<T>,
96
- ...columns: EntityKeys<T>[]
97
- ): Promise<T | undefined> {
98
- return this.newQuery().first(...columns)
99
- }
100
-
101
- // static first2: <T extends Entity>(this: EntityConstructor<T>, ...params: Parameters<Query<T>['first']>) => Query<T>['first'];
102
-
103
- // tslint:disable-next-line:no-any
104
- static async firstOrNew<T extends Entity, K extends keyof Entity>(
105
- this: EntityConstructor<T>,
106
- properties: Partial<EntityObject<T>>,
107
- values?: Partial<EntityObject<T>>
108
- ): Promise<T> {
109
- return this.newQuery().firstOrNew(properties, values)
110
- }
111
-
112
- // tslint:disable-next-line:no-any
113
- static async firstOrCreate<T extends Entity, K extends keyof Entity>(
114
- this: EntityConstructor<T>,
115
- properties: Partial<EntityObject<T>>,
116
- values?: Partial<EntityObject<T>>
117
- ): Promise<T> {
118
- return (await this.firstOrNew(properties, values)).save()
119
- }
120
-
121
- static orderBy<T extends Entity, K extends EntityKeys<T>>(
122
- this: EntityConstructor<T>,
123
- column: EntityKeys<T>,
124
- direction?: Direction
125
- ): EntityQuery<T> {
126
- return this.newQuery().orderBy(column, direction)
127
- }
128
-
129
- static getTable<T extends Entity>(this: EntityConstructor<T>): string {
130
- return this.metadata.table || this.name.toLowerCase() // TODO make metadata.table un-optional
131
- }
132
-
133
- static new<T extends Entity, K extends keyof T>(
134
- this: EntityConstructor<T>,
135
- data: Partial<ChildObject<T, Entity>> | {},
136
- exists = false
137
- ): T {
138
- const instance = new (this as any)()
139
- instance.fill(instance.original = data)
140
- instance.exists = exists
141
-
142
- return instance
143
- }
144
-
145
- static create<T extends Entity>(this: EntityConstructor<T>, data?: ChildObject<T, Entity> | {}): Promise<T> {
146
- return this.new(data ?? {}).save()
147
- }
148
-
149
- static async insert<T extends Entity>(this: EntityConstructor<T>, data: (ChildObject<T, Entity> | {})[]): Promise<void> {
150
- const dataToSave = data.map(piece => {
151
- const instance = this.new(piece)
152
- return instance.getDataToSave(piece)
153
- })
154
-
155
- const query = this.newQuery()
156
-
157
- await query.insert(dataToSave)
158
- }
159
-
160
- static async get<T extends Entity>(this: EntityConstructor<T>, ...columns: EntityKeys<T> []): Promise<T[]> {
161
- return this.newQuery().get(...columns)
162
- }
163
-
164
- static with<T extends Entity>(
165
- this: EntityConstructor<T>,
166
- ...relations: (
167
- // tslint:disable-next-line:no-any
168
- KeysOfType<T, BelongsTo<any> | HasOne<any> | HasMany<any> | BelongsToMany<any>> | DotNotationProperties<T> |
169
- // tslint:disable-next-line:no-any max-line-length
170
- [KeysOfType<T, BelongsTo<any> | HasOne<any> | HasMany<any> | BelongsToMany<any>> | DotNotationProperties<T>, (Query: EntityQuery<any>) => void]
171
- )[]
172
- ) {
173
- return this.newQuery().with(...relations)
174
- }
175
-
176
- static withCount<T extends Entity, K extends KeysOfType<T, List<Entity>>>(
177
- this: EntityConstructor<T>,
178
- ...relations: (
179
- // tslint:disable-next-line:no-any
180
- KeysOfType<T, BelongsTo<any> | HasOne<any> | HasMany<any> | BelongsToMany<any>> | DotNotationProperties<T> |
181
- // tslint:disable-next-line:no-any max-line-length
182
- [KeysOfType<T, BelongsTo<any> | HasOne<any> | HasMany<any> | BelongsToMany<any>> | DotNotationProperties<T>, (Query: EntityQuery<any>) => void]
183
- )[]
184
- ) {
185
- return this.newQuery().withCount(...relations)
186
- }
187
-
188
- static async find<T extends Entity>(this: EntityConstructor<T>, id: string | number | ID): Promise<T | undefined> {
189
- return this.newQuery().where('id' as keyof T, id as number).first()
190
- }
191
-
192
- static async findOrFail<T extends Entity>(this: EntityConstructor<T>, id: string | number | ID): Promise<T> {
193
- const query = this.newQuery().where('id' as keyof T, id as number)
194
- const instance = await query.first()
195
- if (!instance || !Object.entries(instance).length) {
196
- throw new EntityNotFoundError(this, `No records found for entity '${this.name}' when querying with parameters [${query.getBindings().join(', ')}]`)
197
- }
198
- return instance
199
- }
200
-
201
- static getPrimaryKey<T extends Entity>(): EntityKeys<T> {
202
- return 'id' as EntityKeys<T>
203
- }
204
-
205
- static hydrate<T extends Entity>(modelType: EntityConstructor<T>, models: Partial<ChildObject<T, Entity>>[], exist = false) {
206
- return models.map(data => {
207
- return modelType.new(data, exist)
208
- })
209
- }
210
-
211
- static newQuery<T extends Entity>(this: EntityConstructor<T>): EntityQuery<T> {
212
- return (new EntityQuery(this)).table(this.getTable()) as EntityQuery<T>
213
- }
214
-
215
- getTable(): string {
216
- return this.static.getTable()
217
- }
218
-
219
- async load(
220
- ...relations: (
221
- // tslint:disable-next-line:no-any
222
- KeysOfType<this, BelongsTo<any> | HasOne<any> | HasMany<any> | BelongsToMany<any>> | DotNotationProperties<this> |
223
- // tslint:disable-next-line:no-any max-line-length
224
- [KeysOfType<this, BelongsTo<any> | HasOne<any> | HasMany<any> | BelongsToMany<any>> | DotNotationProperties<this>, (Query: EntityQuery<any>) => void]
225
- )[]
226
- ) {
227
- await this.newQuery().with(...relations).eagerLoadRelationships([this])
228
-
229
- return this
230
- }
231
-
232
- async loadCount<K extends KeysOfType<this, List<Entity>>>(
233
- ...relations: (
234
- // tslint:disable-next-line:no-any
235
- KeysOfType<this, BelongsTo<any> | HasOne<any> | HasMany<any> | BelongsToMany<any>> | DotNotationProperties<this> |
236
- // tslint:disable-next-line:no-any max-line-length
237
- [KeysOfType<this, BelongsTo<any> | HasOne<any> | HasMany<any> | BelongsToMany<any>> | DotNotationProperties<this>, (Query: EntityQuery<any>) => void]
238
- )[]
239
- ) {
240
- await this.newQuery().withCount<K>(...relations).eagerLoadRelationshipsCounts([this])
241
-
242
- return this
243
- }
244
-
245
- newQuery<T extends Entity>(this: T) {
246
- return this.static.newQuery()
247
- }
248
-
249
- static async delete<T extends Entity>(this: EntityConstructor<T>, ...ids: [ID, ...ID[]]) {
250
- await this.newQuery().whereIn(this.getPrimaryKey(), ids).delete()
251
- }
252
-
253
- private getDataToSave(data: ChildObject<this, Entity> | object) {
254
- this.fill(data)
255
-
256
- this.updateTimestamps()
257
-
258
- // tslint:disable-next-line:no-any
259
- const dataToSave: Record<string, any> = {}
260
-
261
- // TODO diff the values so we don't update every value from the entity
262
- Object.values({...this.metadata.columns, ...this.metadata.relationships}).forEach(field => {
263
- dataToSave[field.column] = field.value(this, field.property)
264
- })
265
- return dataToSave
266
- }
267
-
268
-
269
- fill(data: ChildObject<this, Entity> | object) {
270
- // TODO, check if we need to uncomment this
271
- // const relationships = this.metadata.relationships
272
- // Object.keys(relationships).forEach(key => {
273
- // relationships[key].update(this)
274
- // })
275
- const fields = {...this.metadata.columns, ...this.metadata.relationships, ...this.metadata.inverseRelationships}
276
- Object.keys(data).forEach(key => {
277
- const field = fields[key]
278
- if (field) {
279
- const value = data[key as keyof object]
280
- field.set(this, this.convertValueByType(value, field))
281
- }
282
- })
283
-
284
- return this
285
- }
286
-
287
- async delete() {
288
- if (!this.exists) {
289
- return
290
- }
291
-
292
- await this.newQuery().where(this.getPrimaryKey(), this[this.getPrimaryKey()]).delete()
293
- }
294
-
295
- static async truncate<T extends Entity>(this: EntityConstructor<T>) {
296
- await this.newQuery().truncate()
297
- }
298
-
299
- async save(data: ChildObject<this, Entity> | object = {}): Promise<this> {
300
- const dataToSave = this.getDataToSave(data)
301
-
302
- const query = this.newQuery()
303
-
304
- if (this.exists) {
305
- delete dataToSave[this.getPrimaryKey() as string]
306
- await query.where(this.getPrimaryKey(), this[this.getPrimaryKey()]).update(dataToSave)
307
- } else {
308
- const id = await query.insertOne(dataToSave)
309
- this.exists = true
310
- this.fill({id})
311
- }
312
-
313
- return this
314
- }
315
-
316
- getPrimaryKey<T extends Entity>(this: T): EntityKeys<T> {
317
- return this.static.getPrimaryKey()
318
- }
319
-
320
- getPrimaryKeyValue<T extends Entity>(this: T): ID {
321
- return this[this.static.getPrimaryKey()]
322
- }
323
-
324
- toJSON() {
325
- return Object.keys({...this.metadata.columns, ...this.metadata.allRelationships})
326
- .reduce((obj, key) => {
327
- if (Object.prototype.hasOwnProperty.call(this, key)) {
328
- obj[key as keyof this] = this[key as keyof this]
329
- }
330
- return obj
331
- }, {} as { [K in keyof this]: this[K] })
332
- }
333
-
334
- private updateTimestamps() {
335
- const metadata = this.metadata
336
- const columnsToFill: Record<keyof this, unknown> = {} as Record<keyof this, unknown>
337
-
338
- const createdAtValue = metadata.createdAtColumn ? this[metadata.createdAtColumn as keyof this] as unknown as Date : undefined
339
- if (metadata.createdAtColumn && !createdAtValue) {
340
- columnsToFill[metadata.createdAtColumn as keyof this] = new Date()
341
- }
342
-
343
- const updatedAtValue = metadata.updatedAtColumn ? this[metadata.updatedAtColumn as keyof this] as unknown as Date : undefined
344
- if (metadata.updatedAtColumn &&
345
- (!updatedAtValue || updatedAtValue?.getTime() === new Date(this.original[metadata.updatedAtColumn]).getTime())
346
- ) {
347
- columnsToFill[metadata.updatedAtColumn as keyof this] = new Date()
348
- }
349
-
350
- this.fill(columnsToFill)
351
- }
352
-
353
- private convertValueByType(value: unknown, property: ColumnField<Entity> | InverseField<Entity>) {
354
- const converter = types.get(property.type()) || (() => value)
355
- return converter(value)
356
- }
357
- }
358
-
359
- const types: Map<Function, Function> = new Map()
360
- types.set(Date, (value: number | string) => value ? new Date(value) : value)
361
- types.set(String, (value: object) => value ? String(value) : value)
362
- types.set(Boolean, (value: string) => Boolean(value))
363
-
364
- // let handler = {
365
- // set: (target, prop, value) => {
366
- // console.log(target, prop, value);
367
- // target[prop] = value;
368
- // return true;
369
- // },
370
- // get: (target, prop) => {
371
- // if(!(prop in Entity))
372
- // return () => {return new Query};
373
- // return target[prop];
374
- // }
375
- // };
376
-
377
- // Object.setPrototypeOf(Entity, new Proxy({}, new EntityProxyHandler(Entity)));
@@ -1,5 +0,0 @@
1
- import { Entity } from './Entity'
2
-
3
- export class EntityNotFoundError extends Error {
4
- constructor(public entity: typeof Entity, message: string) {super(message)}
5
- }
@@ -1,43 +0,0 @@
1
- import { Entity } from './Entity'
2
- import { EntityQuery } from './EntityQuery'
3
- import { EntityConstructor } from './index'
4
-
5
- export class EntityProxyHandler<T extends Entity> {
6
-
7
- set<K extends keyof T>(target: T, property: string, value: T[K]) {
8
- target[property as keyof T] = value
9
- return true
10
- }
11
-
12
- get(target: T, property: string) {
13
- if (!(property in target)) {
14
- const targetConstructor = target.constructor as EntityConstructor<T>
15
- const query = new EntityQuery(targetConstructor)
16
- const queryProperty = query[property as keyof EntityQuery<T>] as Function
17
- if (typeof queryProperty === 'function') {
18
- // @ts-ignore
19
- query.table(target.constructor.getTable())
20
- return (...args: object[]) => {
21
- return queryProperty.apply(query, args)
22
- }
23
- }
24
- }
25
-
26
- const value = target[property as keyof T]
27
-
28
- if (!value) {
29
- const relationships = target.metadata.allRelationships
30
- if (relationships[property]) {
31
- const relationship = (relationships[property] as any)
32
- const relationshipClass = new relationship.relationClass(relationships[property], target) as unknown as T[keyof T]
33
- return target[property as keyof T] = relationshipClass
34
- }
35
- }
36
-
37
- return value
38
- // if (typeof value === 'function') {
39
- // return value.bind(target);
40
- // }
41
- // return value;
42
- }
43
- }
@@ -1,197 +0,0 @@
1
- import { Query } from './Query'
2
- import { Entity } from './Entity'
3
- import { DotNotationProperties, EntityConstructor, EntityObject, StringExpression } from './index'
4
- import { KeysOfType } from '@Typetron/Support'
5
- import { BelongsTo, BelongsToMany, HasMany, HasOne } from './Fields'
6
- import { List } from './List'
7
- import { RelationsTree, RelationsTreeQuery } from './Types'
8
-
9
- export class EntityQuery<T extends Entity> extends Query<T> {
10
-
11
- // tslint:disable-next-line:no-any
12
- eagerLoad: (string | [string, RelationsTreeQuery])[] = []
13
- // tslint:disable-next-line:no-any
14
- eagerLoadCount: (string | [string, RelationsTreeQuery])[] = []
15
-
16
- constructor(public entity: EntityConstructor<T>) {
17
- super()
18
- }
19
-
20
- async get<K extends keyof T>(...columns: (K | string | StringExpression)[]): Promise<T[]> {
21
- let entities = await super.get(...columns)
22
-
23
- entities = this.entity.hydrate(this.entity, entities, true)
24
-
25
- entities = await this.eagerLoadRelationships(entities)
26
-
27
- return await this.eagerLoadRelationshipsCounts(entities)
28
- }
29
-
30
- public async eagerLoadRelationships(entities: T[]) {
31
-
32
- const relationsTree = this.tree(this.eagerLoad)
33
-
34
- await Object.keys(relationsTree).forEachAsync(async (relationName) => {
35
- const relationValue = relationsTree[relationName]
36
- const relation = this.entity.metadata.allRelationships[relationName]
37
-
38
- if (!relation) {
39
- throw new Error(`Relation '${relationName}' doesn't not exist on entity '${this.entity.name}'`)
40
- }
41
-
42
- // tslint:disable-next-line:no-any
43
- let fieldQueryFunction: undefined | RelationsTreeQuery
44
- let otherRelations: this['eagerLoad'] = []
45
- if (relationValue instanceof Function) {
46
- fieldQueryFunction = relationValue
47
- } else {
48
- otherRelations = this.treeBack(relationValue)
49
- }
50
-
51
- const results = await relation.getRelatedValue(entities, otherRelations, fieldQueryFunction as (query: Query) => void)
52
-
53
- // if (results.length) {
54
- entities = relation.match(entities, results) as T[]
55
- // }
56
- })
57
- // await this.eagerLoad.forEachAsync(async (field) => {
58
- // // tslint:disable-next-line:no-any
59
- // let fieldName: string, fieldQueryFunction: undefined | RelationsTreeQuery
60
- // if (field instanceof Array) {
61
- // fieldName = field[0]
62
- // fieldQueryFunction = field[1]
63
- // } else {
64
- // fieldName = field
65
- // }
66
- // const [first, ...rest] = fieldName.split('.')
67
- // const relation = this.entity.metadata.allRelationships[first]
68
- // const results = await relation.getRelatedValue(entities, [rest.join('.')], fieldQueryFunction as (query: Query) => void)
69
- // if (results.length) {
70
- // entities = relation.match(entities, results) as T[]
71
- // }
72
- // })
73
- return entities
74
- }
75
-
76
- public async eagerLoadRelationshipsCounts(entities: T[]) {
77
- await this.eagerLoadCount.forEachAsync(async (field) => {
78
- // tslint:disable-next-line:no-any
79
- let fieldName: string, fieldQueryFunction: undefined | RelationsTreeQuery
80
- if (field instanceof Array) {
81
- fieldName = field[0]
82
- fieldQueryFunction = field[1]
83
- } else {
84
- fieldName = field
85
- }
86
-
87
- const relation = this.entity.metadata.allRelationships[fieldName]
88
- const results = await relation.getRelatedCount(entities, fieldQueryFunction as ((query: Query) => void))
89
- if (results.length) {
90
- entities = relation.matchCounts(entities, results) as T[]
91
- }
92
- })
93
- return entities
94
- }
95
-
96
- async first<K extends keyof T>(...columns: (K | string | StringExpression)[]): Promise<T | undefined> {
97
- const entityData = await super.first(...columns)
98
- if (!entityData) {
99
- return undefined
100
- }
101
- let entity = this.entity.new(entityData, true)
102
-
103
- entity = (await this.eagerLoadRelationships([entity])).first() as T
104
-
105
- return (await this.eagerLoadRelationshipsCounts([entity])).first()
106
- }
107
-
108
- async firstOrNew<K extends keyof T>(
109
- // tslint:disable-next-line:no-any
110
- properties: Partial<EntityObject<T> | Record<string, any>>,
111
- values?: Partial<EntityObject<T>>
112
- ): Promise<T> {
113
- Object.entries(properties).forEach(([property, value]) => {
114
- const field = this.entity.metadata.columns[property] || this.entity.metadata.relationships[property]
115
- const finalValue = value instanceof Entity ? value[value.getPrimaryKey()] : value
116
- if (finalValue === undefined) {
117
- this.andWhereNull(field.column)
118
- } else {
119
- this.andWhere(field.column, finalValue)
120
- }
121
- })
122
- const instance = await this.first()
123
- if (!instance) {
124
- return this.entity.new({...properties, ...values})
125
- }
126
- instance.exists = true
127
- return instance
128
- }
129
-
130
- with(
131
- ...relations: (
132
- // tslint:disable-next-line:no-any
133
- KeysOfType<T, BelongsTo<any> | HasOne<any> | HasMany<any> | BelongsToMany<any>> | DotNotationProperties<this> |
134
- // tslint:disable-next-line:no-any max-line-length
135
- [KeysOfType<T, BelongsTo<any> | HasOne<any> | HasMany<any> | BelongsToMany<any>> | DotNotationProperties<this>, RelationsTreeQuery]
136
- )[]
137
- ) {
138
- relations = relations.filter(Boolean)
139
- if (relations.length) {
140
- // tslint:disable-next-line:no-any
141
- this.eagerLoad = this.eagerLoad.concat(relations as string | [string, RelationsTreeQuery]).unique()
142
- }
143
-
144
- return this
145
- }
146
-
147
- withCount<K extends KeysOfType<T, List<Entity>>>(
148
- ...relations: (
149
- // tslint:disable-next-line:no-any
150
- KeysOfType<T, BelongsTo<any> | HasOne<any> | HasMany<any> | BelongsToMany<any>> | DotNotationProperties<this> |
151
- // tslint:disable-next-line:no-any max-line-length
152
- [KeysOfType<T, BelongsTo<any> | HasOne<any> | HasMany<any> | BelongsToMany<any>> | DotNotationProperties<this>, RelationsTreeQuery]
153
- )[]
154
- ) {
155
- // @ts-ignore
156
- this.eagerLoadCount = this.eagerLoadCount.concat(relations)
157
-
158
- return this
159
- }
160
-
161
- private tree(relations: this['eagerLoad']) {
162
- const tree: RelationsTree = {}
163
-
164
- relations.forEach(relation => {
165
- let relationName: string
166
- let relationValue: RelationsTreeQuery | {} = {}
167
- if (relation instanceof Array) {
168
- relationName = relation[0]
169
- relationValue = relation[1]
170
- } else {
171
- relationName = relation
172
- }
173
-
174
- let container = tree
175
- const relationStringParts = relationName.split('.')
176
- relationStringParts.forEach((part, index) => {
177
- const value = index === relationStringParts.length - 1 ? relationValue : {}
178
- // @ts-ignore
179
- container = (container[part] ? container[part] : container[part] = value)
180
- })
181
- })
182
-
183
- return tree
184
- }
185
-
186
- private treeBack(relationsTree: RelationsTree): this['eagerLoad'] {
187
- return Object.keys(relationsTree).map(relationName => {
188
- const item = relationsTree[relationName]
189
-
190
- if (item instanceof Function) {
191
- return [relationName, item]
192
- } else {
193
- return [relationName, this.treeBack(item)].filter(Boolean).join('.')
194
- }
195
- })
196
- }
197
- }
@@ -1,3 +0,0 @@
1
- export abstract class Expression {
2
- abstract toSQL(): string
3
- }