@typetron/framework 0.3.17 → 0.4.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 (509) hide show
  1. package/Cache/Cache.d.ts +9 -0
  2. package/Cache/Cache.d.ts.map +1 -0
  3. package/Cache/Cache.js +7 -0
  4. package/Cache/Cache.js.map +1 -0
  5. package/Cache/Stores/DatabaseStore.d.ts +16 -0
  6. package/Cache/Stores/DatabaseStore.d.ts.map +1 -0
  7. package/Cache/Stores/DatabaseStore.js +104 -0
  8. package/Cache/Stores/DatabaseStore.js.map +1 -0
  9. package/Cache/Stores/FileStore.d.ts +16 -0
  10. package/Cache/Stores/FileStore.d.ts.map +1 -0
  11. package/Cache/Stores/FileStore.js +63 -0
  12. package/Cache/Stores/FileStore.js.map +1 -0
  13. package/Cache/Stores/MemoryStore.d.ts +13 -0
  14. package/Cache/Stores/MemoryStore.d.ts.map +1 -0
  15. package/Cache/Stores/MemoryStore.js +60 -0
  16. package/Cache/Stores/MemoryStore.js.map +1 -0
  17. package/Cache/index.d.ts +6 -0
  18. package/Cache/index.d.ts.map +1 -0
  19. package/Cache/index.js +18 -0
  20. package/Cache/index.js.map +1 -0
  21. package/Cache/types.d.ts +5 -0
  22. package/Cache/types.d.ts.map +1 -0
  23. package/Cache/types.js +3 -0
  24. package/Cache/types.js.map +1 -0
  25. package/Container/ClassResolver.d.ts +8 -8
  26. package/Container/ClassResolver.d.ts.map +1 -1
  27. package/Container/ClassResolver.js +92 -87
  28. package/Container/ClassResolver.js.map +1 -1
  29. package/Container/Container.d.ts +24 -24
  30. package/Container/Container.d.ts.map +1 -1
  31. package/Container/Container.js +119 -118
  32. package/Container/Container.js.map +1 -1
  33. package/Container/Contracts.d.ts +2 -2
  34. package/Container/Contracts.js +2 -2
  35. package/Container/Decorators.d.ts +4 -4
  36. package/Container/Decorators.js +21 -21
  37. package/Container/Decorators.js.map +1 -1
  38. package/Container/Metadata.d.ts +20 -20
  39. package/Container/Metadata.js +18 -18
  40. package/Container/Resolver.d.ts +18 -18
  41. package/Container/Resolver.js +15 -15
  42. package/Container/index.d.ts +5 -5
  43. package/Container/index.js +17 -17
  44. package/Database/Clauses/Where.js +1 -1
  45. package/Database/Connection.d.ts +20 -20
  46. package/Database/Connection.js +42 -42
  47. package/Database/Decorators.d.ts +36 -36
  48. package/Database/Decorators.js +115 -116
  49. package/Database/Decorators.js.map +1 -1
  50. package/Database/Drivers/DatabaseDriver.d.ts +28 -28
  51. package/Database/Drivers/DatabaseDriver.js +6 -6
  52. package/Database/Drivers/MySQL/Alter/index.d.ts +33 -33
  53. package/Database/Drivers/MySQL/Alter/index.js +61 -61
  54. package/Database/Drivers/MySQL/ColumnDefinition.d.ts +6 -6
  55. package/Database/Drivers/MySQL/ColumnDefinition.js +17 -17
  56. package/Database/Drivers/MySQL/Create.d.ts +9 -9
  57. package/Database/Drivers/MySQL/Create.js +37 -37
  58. package/Database/Drivers/MySQL/MysqlDriver.d.ts +41 -41
  59. package/Database/Drivers/MySQL/MysqlDriver.js +75 -76
  60. package/Database/Drivers/MySQL/MysqlDriver.js.map +1 -1
  61. package/Database/Drivers/MySQL/Schema.d.ts +15 -15
  62. package/Database/Drivers/MySQL/Schema.js +66 -65
  63. package/Database/Drivers/MySQL/Schema.js.map +1 -1
  64. package/Database/Drivers/MySQL/index.d.ts +1 -1
  65. package/Database/Drivers/MySQL/index.js +15 -15
  66. package/Database/Drivers/SQL/Schema.d.ts +6 -6
  67. package/Database/Drivers/SQL/Schema.js +57 -57
  68. package/Database/Drivers/SQL/Statements/Alter.d.ts +7 -7
  69. package/Database/Drivers/SQL/Statements/Alter.js +17 -17
  70. package/Database/Drivers/SQL/Statements/BaseStatement.d.ts +12 -12
  71. package/Database/Drivers/SQL/Statements/BaseStatement.js +45 -46
  72. package/Database/Drivers/SQL/Statements/BaseStatement.js.map +1 -1
  73. package/Database/Drivers/SQL/Statements/Delete.d.ts +5 -5
  74. package/Database/Drivers/SQL/Statements/Delete.js +16 -16
  75. package/Database/Drivers/SQL/Statements/Insert.d.ts +6 -6
  76. package/Database/Drivers/SQL/Statements/Insert.js +22 -23
  77. package/Database/Drivers/SQL/Statements/Insert.js.map +1 -1
  78. package/Database/Drivers/SQL/Statements/Select.d.ts +7 -7
  79. package/Database/Drivers/SQL/Statements/Select.js +44 -44
  80. package/Database/Drivers/SQL/Statements/Update.d.ts +6 -6
  81. package/Database/Drivers/SQL/Statements/Update.js +27 -27
  82. package/Database/Drivers/SQL/index.d.ts +8 -8
  83. package/Database/Drivers/SQL/index.js +2 -2
  84. package/Database/Drivers/SQLite/Create.d.ts +9 -9
  85. package/Database/Drivers/SQLite/Create.js +36 -36
  86. package/Database/Drivers/SQLite/Schema.d.ts +15 -15
  87. package/Database/Drivers/SQLite/Schema.js +46 -44
  88. package/Database/Drivers/SQLite/Schema.js.map +1 -1
  89. package/Database/Drivers/SQLite/SqliteDriver.d.ts +42 -42
  90. package/Database/Drivers/SQLite/SqliteDriver.d.ts.map +1 -1
  91. package/Database/Drivers/SQLite/SqliteDriver.js +102 -102
  92. package/Database/Drivers/SQLite/SqliteDriver.js.map +1 -1
  93. package/Database/Drivers/SQLite/index.d.ts +2 -2
  94. package/Database/Drivers/SQLite/index.js +26 -26
  95. package/Database/Drivers/SchemaContract.d.ts +8 -8
  96. package/Database/Drivers/SchemaContract.js +9 -9
  97. package/Database/Drivers/Statement.d.ts +9 -9
  98. package/Database/Drivers/Statement.js +15 -15
  99. package/Database/Drivers/index.d.ts +4 -4
  100. package/Database/Drivers/index.js +16 -16
  101. package/Database/Entity.d.ts +64 -64
  102. package/Database/Entity.d.ts.map +1 -1
  103. package/Database/Entity.js +251 -252
  104. package/Database/Entity.js.map +1 -1
  105. package/Database/EntityNotFoundError.d.ts +5 -5
  106. package/Database/EntityNotFoundError.js +10 -10
  107. package/Database/EntityProxyHandler.d.ts +5 -5
  108. package/Database/EntityProxyHandler.js +30 -30
  109. package/Database/EntityQuery.d.ts +28 -28
  110. package/Database/EntityQuery.js +156 -156
  111. package/Database/Expression.d.ts +3 -3
  112. package/Database/Expression.js +6 -6
  113. package/Database/Fields.d.ts +155 -155
  114. package/Database/Fields.js +544 -548
  115. package/Database/Fields.js.map +1 -1
  116. package/Database/Helpers.d.ts +1 -1
  117. package/Database/Helpers.js +16 -16
  118. package/Database/List.d.ts +24 -24
  119. package/Database/List.d.ts.map +1 -1
  120. package/Database/List.js +49 -49
  121. package/Database/List.js.map +1 -1
  122. package/Database/Migrations/Migration.d.ts +7 -7
  123. package/Database/Migrations/Migration.js +9 -9
  124. package/Database/Migrations/MigrationHistory.d.ts +8 -8
  125. package/Database/Migrations/MigrationHistory.js +38 -38
  126. package/Database/Migrations/Migrator.d.ts +20 -20
  127. package/Database/Migrations/Migrator.js +117 -118
  128. package/Database/Migrations/Migrator.js.map +1 -1
  129. package/Database/Migrations/index.d.ts +3 -3
  130. package/Database/Migrations/index.js +15 -15
  131. package/Database/ORM/BaseRelationship.d.ts +7 -7
  132. package/Database/ORM/BaseRelationship.js +10 -10
  133. package/Database/Query.d.ts +62 -62
  134. package/Database/Query.d.ts.map +1 -1
  135. package/Database/Query.js +265 -264
  136. package/Database/Query.js.map +1 -1
  137. package/Database/Seeders/Seeder.d.ts +3 -3
  138. package/Database/Seeders/Seeder.js +6 -6
  139. package/Database/Seeders/SeederManager.d.ts +8 -8
  140. package/Database/Seeders/SeederManager.js +24 -24
  141. package/Database/Seeders/index.d.ts +2 -2
  142. package/Database/Seeders/index.js +14 -14
  143. package/Database/StringExpression.d.ts +6 -6
  144. package/Database/StringExpression.js +14 -14
  145. package/Database/Types.d.ts +117 -117
  146. package/Database/Types.d.ts.map +1 -1
  147. package/Database/Types.js +94 -94
  148. package/Database/Types.js.map +1 -1
  149. package/Database/index.d.ts +20 -20
  150. package/Database/index.js +20 -20
  151. package/Encryption/index.d.ts +15 -15
  152. package/Encryption/index.js +53 -53
  153. package/Encryption/index.js.map +1 -1
  154. package/Forms/Decorators.d.ts +6 -6
  155. package/Forms/Decorators.js +28 -28
  156. package/Forms/Form.d.ts +17 -17
  157. package/Forms/Form.js +69 -69
  158. package/Forms/FormFields.d.ts +9 -9
  159. package/Forms/FormFields.js +35 -35
  160. package/Forms/index.d.ts +3 -3
  161. package/Forms/index.js +15 -15
  162. package/Framework/App.d.ts +6 -6
  163. package/Framework/App.js +9 -9
  164. package/Framework/Application.d.ts +17 -17
  165. package/Framework/Application.d.ts.map +1 -1
  166. package/Framework/Application.js +93 -93
  167. package/Framework/Application.js.map +1 -1
  168. package/Framework/Auth/Auth.d.ts +24 -24
  169. package/Framework/Auth/Auth.js +108 -108
  170. package/Framework/Auth/Authenticatable.d.ts +6 -6
  171. package/Framework/Auth/Authenticatable.js +2 -2
  172. package/Framework/Auth/User.d.ts +10 -10
  173. package/Framework/Auth/User.js +37 -37
  174. package/Framework/Auth/index.d.ts +5 -5
  175. package/Framework/Auth/index.d.ts.map +1 -1
  176. package/Framework/Auth/index.js +45 -45
  177. package/Framework/Auth/index.js.map +1 -1
  178. package/Framework/Config/AppConfig.d.ts +19 -18
  179. package/Framework/Config/AppConfig.d.ts.map +1 -1
  180. package/Framework/Config/AppConfig.js +12 -11
  181. package/Framework/Config/AppConfig.js.map +1 -1
  182. package/Framework/Config/AuthConfig.d.ts +8 -8
  183. package/Framework/Config/AuthConfig.js +7 -7
  184. package/Framework/Config/BaseConfig.d.ts +6 -6
  185. package/Framework/Config/BaseConfig.js +12 -12
  186. package/Framework/Config/CacheConfig.d.ts +16 -0
  187. package/Framework/Config/CacheConfig.d.ts.map +1 -0
  188. package/Framework/Config/CacheConfig.js +22 -0
  189. package/Framework/Config/CacheConfig.js.map +1 -0
  190. package/Framework/Config/DatabaseConfig.d.ts +10 -10
  191. package/Framework/Config/DatabaseConfig.js +24 -25
  192. package/Framework/Config/DatabaseConfig.js.map +1 -1
  193. package/Framework/Config/MailConfig.d.ts +19 -0
  194. package/Framework/Config/MailConfig.d.ts.map +1 -0
  195. package/Framework/Config/MailConfig.js +12 -0
  196. package/Framework/Config/MailConfig.js.map +1 -0
  197. package/Framework/Config/index.d.ts +6 -4
  198. package/Framework/Config/index.d.ts.map +1 -1
  199. package/Framework/Config/index.js +18 -16
  200. package/Framework/Config/index.js.map +1 -1
  201. package/Framework/Middleware/AuthMiddleware.d.ts +7 -7
  202. package/Framework/Middleware/AuthMiddleware.js +62 -63
  203. package/Framework/Middleware/AuthMiddleware.js.map +1 -1
  204. package/Framework/Middleware/CorsMiddleware.d.ts +6 -6
  205. package/Framework/Middleware/CorsMiddleware.d.ts.map +1 -1
  206. package/Framework/Middleware/CorsMiddleware.js +44 -43
  207. package/Framework/Middleware/CorsMiddleware.js.map +1 -1
  208. package/Framework/Middleware/StaticAssetsMiddleware.d.ts +14 -14
  209. package/Framework/Middleware/StaticAssetsMiddleware.js +103 -104
  210. package/Framework/Middleware/StaticAssetsMiddleware.js.map +1 -1
  211. package/Framework/Middleware/index.d.ts +2 -2
  212. package/Framework/Middleware/index.js +14 -14
  213. package/Framework/Provider.d.ts +5 -5
  214. package/Framework/Provider.js +20 -20
  215. package/Framework/Providers/CacheProvider.d.ts +7 -0
  216. package/Framework/Providers/CacheProvider.d.ts.map +1 -0
  217. package/Framework/Providers/CacheProvider.js +39 -0
  218. package/Framework/Providers/CacheProvider.js.map +1 -0
  219. package/Framework/Providers/DatabaseProvider.d.ts +9 -9
  220. package/Framework/Providers/DatabaseProvider.js +63 -63
  221. package/Framework/Providers/MailProvider.d.ts +7 -0
  222. package/Framework/Providers/MailProvider.d.ts.map +1 -0
  223. package/Framework/Providers/MailProvider.js +40 -0
  224. package/Framework/Providers/MailProvider.js.map +1 -0
  225. package/Framework/Providers/WebsocketsProvider.d.ts +12 -12
  226. package/Framework/Providers/WebsocketsProvider.d.ts.map +1 -1
  227. package/Framework/Providers/WebsocketsProvider.js +118 -122
  228. package/Framework/Providers/WebsocketsProvider.js.map +1 -1
  229. package/Framework/Resolvers/AuthResolver.d.ts +5 -5
  230. package/Framework/Resolvers/AuthResolver.js +14 -14
  231. package/Framework/Resolvers/EntityResolver.d.ts +9 -9
  232. package/Framework/Resolvers/EntityResolver.js +39 -40
  233. package/Framework/Resolvers/EntityResolver.js.map +1 -1
  234. package/Framework/Resolvers/FormResolver.d.ts +9 -9
  235. package/Framework/Resolvers/FormResolver.js +32 -32
  236. package/Framework/RootDir.d.ts +2 -2
  237. package/Framework/RootDir.js +6 -6
  238. package/Framework/index.d.ts +8 -6
  239. package/Framework/index.d.ts.map +1 -1
  240. package/Framework/index.js +20 -18
  241. package/Framework/index.js.map +1 -1
  242. package/Frontend/Angular/index.d.ts +8 -0
  243. package/Frontend/Angular/index.d.ts.map +1 -0
  244. package/Frontend/Angular/index.js +20 -0
  245. package/Frontend/Angular/index.js.map +1 -0
  246. package/Frontend/Websockets/index.js +76 -0
  247. package/Frontend/Websockets/index.js.map +1 -0
  248. package/LICENSE.md +20 -20
  249. package/Mail/MailAddress.d.ts +5 -0
  250. package/Mail/MailAddress.d.ts.map +1 -0
  251. package/Mail/MailAddress.js +3 -0
  252. package/Mail/MailAddress.js.map +1 -0
  253. package/Mail/MailTransport.d.ts +6 -0
  254. package/Mail/MailTransport.d.ts.map +1 -0
  255. package/Mail/MailTransport.js +7 -0
  256. package/Mail/MailTransport.js.map +1 -0
  257. package/Mail/Mailable.d.ts +18 -0
  258. package/Mail/Mailable.d.ts.map +1 -0
  259. package/Mail/Mailable.js +10 -0
  260. package/Mail/Mailable.js.map +1 -0
  261. package/Mail/Mailer.d.ts +12 -0
  262. package/Mail/Mailer.d.ts.map +1 -0
  263. package/Mail/Mailer.js +25 -0
  264. package/Mail/Mailer.js.map +1 -0
  265. package/Mail/PendingMail.d.ts +30 -0
  266. package/Mail/PendingMail.d.ts.map +1 -0
  267. package/Mail/PendingMail.js +53 -0
  268. package/Mail/PendingMail.js.map +1 -0
  269. package/Mail/SentMessage.d.ts +16 -0
  270. package/Mail/SentMessage.d.ts.map +1 -0
  271. package/Mail/SentMessage.js +13 -0
  272. package/Mail/SentMessage.js.map +1 -0
  273. package/Mail/Transports/MemoryTransport.d.ts +8 -0
  274. package/Mail/Transports/MemoryTransport.d.ts.map +1 -0
  275. package/Mail/Transports/MemoryTransport.js +18 -0
  276. package/Mail/Transports/MemoryTransport.js.map +1 -0
  277. package/Mail/Transports/SendGridTransport.d.ts +11 -0
  278. package/Mail/Transports/SendGridTransport.d.ts.map +1 -0
  279. package/Mail/Transports/SendGridTransport.js +59 -0
  280. package/Mail/Transports/SendGridTransport.js.map +1 -0
  281. package/Mail/index.d.ts +4 -0
  282. package/Mail/index.d.ts.map +1 -0
  283. package/Mail/index.js +16 -0
  284. package/Mail/index.js.map +1 -0
  285. package/Models/Model.d.ts +9 -9
  286. package/Models/Model.js +35 -35
  287. package/Models/Model.js.map +1 -1
  288. package/Models/index.d.ts +21 -21
  289. package/Models/index.d.ts.map +1 -1
  290. package/Models/index.js +58 -58
  291. package/Models/index.js.map +1 -1
  292. package/Router/BaseController.d.ts +4 -4
  293. package/Router/BaseController.js +20 -20
  294. package/Router/Decorators.d.ts +21 -21
  295. package/Router/Decorators.js +170 -170
  296. package/Router/Guard.d.ts +4 -4
  297. package/Router/Guard.js +10 -10
  298. package/Router/Http/Contracts.d.ts +3 -3
  299. package/Router/Http/Contracts.js +2 -2
  300. package/Router/Http/ErrorHandler.d.ts +9 -9
  301. package/Router/Http/ErrorHandler.js +51 -51
  302. package/Router/Http/ErrorHandlerInterface.d.ts +5 -5
  303. package/Router/Http/ErrorHandlerInterface.js +6 -6
  304. package/Router/Http/Errors/HttpError.d.ts +7 -7
  305. package/Router/Http/Errors/HttpError.js +15 -15
  306. package/Router/Http/Handler.d.ts +15 -15
  307. package/Router/Http/Handler.d.ts.map +1 -1
  308. package/Router/Http/Handler.js +131 -131
  309. package/Router/Http/Handler.js.map +1 -1
  310. package/Router/Http/Request.d.ts +27 -22
  311. package/Router/Http/Request.d.ts.map +1 -1
  312. package/Router/Http/Request.js +185 -151
  313. package/Router/Http/Request.js.map +1 -1
  314. package/Router/Http/Response.d.ts +18 -17
  315. package/Router/Http/Response.d.ts.map +1 -1
  316. package/Router/Http/Response.js +42 -51
  317. package/Router/Http/Response.js.map +1 -1
  318. package/Router/Http/index.d.ts +83 -83
  319. package/Router/Http/index.js +99 -99
  320. package/Router/Metadata.d.ts +31 -31
  321. package/Router/Metadata.js +25 -25
  322. package/Router/Middleware.d.ts +5 -5
  323. package/Router/Middleware.js +2 -2
  324. package/Router/Route.d.ts +23 -23
  325. package/Router/Route.js +110 -110
  326. package/Router/RouteNotFoundError.d.ts +3 -3
  327. package/Router/RouteNotFoundError.js +9 -9
  328. package/Router/Router.d.ts +12 -12
  329. package/Router/Router.js +32 -32
  330. package/Router/Servers/index.d.ts +5 -0
  331. package/Router/Servers/index.d.ts.map +1 -0
  332. package/Router/Servers/index.js +15 -0
  333. package/Router/Servers/index.js.map +1 -0
  334. package/Router/Servers/node.d.ts +3 -0
  335. package/Router/Servers/node.d.ts.map +1 -0
  336. package/Router/Servers/node.js +15 -0
  337. package/Router/Servers/node.js.map +1 -0
  338. package/Router/Servers/uNetworking.d.ts +3 -0
  339. package/Router/Servers/uNetworking.d.ts.map +1 -0
  340. package/Router/Servers/uNetworking.js +33 -0
  341. package/Router/Servers/uNetworking.js.map +1 -0
  342. package/Router/Websockets/Handler.d.ts +12 -12
  343. package/Router/Websockets/Handler.d.ts.map +1 -1
  344. package/Router/Websockets/Handler.js +59 -59
  345. package/Router/Websockets/Handler.js.map +1 -1
  346. package/Router/Websockets/WebsocketEvent.d.ts +15 -15
  347. package/Router/Websockets/WebsocketEvent.js +52 -53
  348. package/Router/Websockets/WebsocketEvent.js.map +1 -1
  349. package/Router/Websockets/index.d.ts +16 -16
  350. package/Router/Websockets/index.d.ts.map +1 -1
  351. package/Router/Websockets/index.js +57 -57
  352. package/Router/Websockets/index.js.map +1 -1
  353. package/Router/Websockets/types.d.ts +20 -20
  354. package/Router/Websockets/types.d.ts.map +1 -1
  355. package/Router/Websockets/types.js +8 -8
  356. package/Router/index.d.ts +6 -6
  357. package/Router/index.js +18 -18
  358. package/Router/micro.d.ts +3 -0
  359. package/Router/micro.d.ts.map +1 -0
  360. package/Router/micro.js +44 -0
  361. package/Router/micro.js.map +1 -0
  362. package/Storage/File.d.ts +11 -11
  363. package/Storage/File.js +46 -46
  364. package/Storage/Image.d.ts +3 -3
  365. package/Storage/Image.js +7 -7
  366. package/Storage/InvalidImage.d.ts +3 -3
  367. package/Storage/InvalidImage.js +7 -7
  368. package/Storage/Storage.d.ts +13 -12
  369. package/Storage/Storage.d.ts.map +1 -1
  370. package/Storage/Storage.js +104 -110
  371. package/Storage/Storage.js.map +1 -1
  372. package/Storage/index.d.ts +4 -4
  373. package/Storage/index.js +16 -16
  374. package/Storage/utils.d.ts +5 -5
  375. package/Storage/utils.js +20 -20
  376. package/Support/Array.d.ts +28 -28
  377. package/Support/Array.d.ts.map +1 -1
  378. package/Support/Array.js +111 -108
  379. package/Support/Array.js.map +1 -1
  380. package/Support/Math.d.ts +6 -6
  381. package/Support/Math.js +7 -7
  382. package/Support/Metadata.d.ts +15 -14
  383. package/Support/Metadata.d.ts.map +1 -1
  384. package/Support/Metadata.js +31 -20
  385. package/Support/Metadata.js.map +1 -1
  386. package/Support/String.d.ts +11 -11
  387. package/Support/String.js +23 -23
  388. package/Support/index.d.ts +14 -13
  389. package/Support/index.d.ts.map +1 -1
  390. package/Support/index.js +6 -5
  391. package/Support/index.js.map +1 -1
  392. package/Support/utils.d.ts +2 -0
  393. package/Support/utils.d.ts.map +1 -0
  394. package/Support/utils.js +13 -0
  395. package/Support/utils.js.map +1 -0
  396. package/Testing/TestCase.d.ts +32 -32
  397. package/Testing/TestCase.js +129 -130
  398. package/Testing/TestCase.js.map +1 -1
  399. package/Validation/Rule.d.ts +6 -6
  400. package/Validation/Rule.js +6 -6
  401. package/Validation/RuleInterface.d.ts +6 -6
  402. package/Validation/RuleInterface.js +2 -2
  403. package/Validation/Rules/Email.d.ts +3 -3
  404. package/Validation/Rules/Email.js +20 -20
  405. package/Validation/Rules/Email.js.map +1 -1
  406. package/Validation/Rules/FileExtension.d.ts +3 -3
  407. package/Validation/Rules/FileExtension.js +22 -22
  408. package/Validation/Rules/FileExtension.js.map +1 -1
  409. package/Validation/Rules/MaxLength.d.ts +3 -3
  410. package/Validation/Rules/MaxLength.js +19 -19
  411. package/Validation/Rules/MaxLength.js.map +1 -1
  412. package/Validation/Rules/MinLength.d.ts +3 -3
  413. package/Validation/Rules/MinLength.js +19 -19
  414. package/Validation/Rules/MinLength.js.map +1 -1
  415. package/Validation/Rules/Optional.d.ts +3 -3
  416. package/Validation/Rules/Optional.js +19 -19
  417. package/Validation/Rules/Required.d.ts +3 -3
  418. package/Validation/Rules/Required.js +26 -26
  419. package/Validation/Rules/Required.js.map +1 -1
  420. package/Validation/Validator.d.ts +11 -11
  421. package/Validation/Validator.js +10 -10
  422. package/Validation/index.d.ts +9 -9
  423. package/Validation/index.js +21 -21
  424. package/benchmark-index.js.map +1 -0
  425. package/benchmark.js.map +1 -0
  426. package/index.d.ts +2 -0
  427. package/index.d.ts.map +1 -0
  428. package/index.js +41 -0
  429. package/index.js.map +1 -0
  430. package/package.json +70 -64
  431. package/test.js.map +1 -0
  432. package/tests/Cache/DatabaseStoreTest.d.ts +2 -0
  433. package/tests/Cache/DatabaseStoreTest.d.ts.map +1 -0
  434. package/tests/Cache/DatabaseStoreTest.js +137 -0
  435. package/tests/Cache/DatabaseStoreTest.js.map +1 -0
  436. package/tests/Cache/FileStoreTest.d.ts +2 -0
  437. package/tests/Cache/FileStoreTest.d.ts.map +1 -0
  438. package/tests/Cache/FileStoreTest.js +142 -0
  439. package/tests/Cache/FileStoreTest.js.map +1 -0
  440. package/tests/Cache/MemoryStoreTest.d.ts +2 -0
  441. package/tests/Cache/MemoryStoreTest.d.ts.map +1 -0
  442. package/tests/Cache/MemoryStoreTest.js +141 -0
  443. package/tests/Cache/MemoryStoreTest.js.map +1 -0
  444. package/tests/Container/ContainerTest.d.ts +1 -1
  445. package/tests/Container/ContainerTest.js +395 -395
  446. package/tests/Database/Drivers/MySQL/AlterTest.d.ts +1 -1
  447. package/tests/Database/Drivers/MySQL/AlterTest.js +135 -135
  448. package/tests/Database/Drivers/MySQL/CreateTest.d.ts +1 -1
  449. package/tests/Database/Drivers/MySQL/CreateTest.js +57 -57
  450. package/tests/Database/Drivers/MysqlDriverTest.d.ts +1 -1
  451. package/tests/Database/Drivers/MysqlDriverTest.js +149 -149
  452. package/tests/Database/Drivers/SqliteDriverTest.d.ts +1 -1
  453. package/tests/Database/Drivers/SqliteDriverTest.js +135 -135
  454. package/tests/Database/Entities/Article.d.ts +10 -10
  455. package/tests/Database/Entities/Article.js +42 -42
  456. package/tests/Database/Entities/Profile.d.ts +10 -10
  457. package/tests/Database/Entities/Profile.js +38 -38
  458. package/tests/Database/Entities/Role.d.ts +8 -8
  459. package/tests/Database/Entities/Role.js +30 -30
  460. package/tests/Database/Entities/User.d.ts +15 -15
  461. package/tests/Database/Entities/User.js +57 -57
  462. package/tests/Database/EntityRelationshipsTest.d.ts +1 -1
  463. package/tests/Database/EntityRelationshipsTest.js +547 -552
  464. package/tests/Database/EntityRelationshipsTest.js.map +1 -1
  465. package/tests/Database/EntityTest.d.ts +1 -1
  466. package/tests/Database/EntityTest.js +233 -233
  467. package/tests/Database/Migrations/RunnerTest.d.ts +1 -1
  468. package/tests/Database/Migrations/RunnerTest.js +111 -111
  469. package/tests/Database/Migrations/migrations/1.createUserTable.d.ts +5 -5
  470. package/tests/Database/Migrations/migrations/1.createUserTable.js +13 -13
  471. package/tests/Database/Migrations/migrations/2.createArticlesTable.d.ts +5 -5
  472. package/tests/Database/Migrations/migrations/2.createArticlesTable.js +13 -13
  473. package/tests/Database/QueryTest.d.ts +1 -1
  474. package/tests/Database/QueryTest.js +622 -622
  475. package/tests/Database/SchemaTest.d.ts +1 -1
  476. package/tests/Database/SchemaTest.js +45 -45
  477. package/tests/Database/Seeders/RunnerTest.d.ts +1 -1
  478. package/tests/Database/Seeders/RunnerTest.js +43 -43
  479. package/tests/Database/Seeders/RunnerTest.js.map +1 -1
  480. package/tests/Database/Seeders/seeders/RandomSeeder.d.ts +4 -4
  481. package/tests/Database/Seeders/seeders/RandomSeeder.js +13 -13
  482. package/tests/Database/utils.d.ts +5 -5
  483. package/tests/Database/utils.js +18 -18
  484. package/tests/Forms/FormsTest.d.ts +1 -1
  485. package/tests/Forms/FormsTest.js +79 -79
  486. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.d.ts +1 -1
  487. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.js +165 -165
  488. package/tests/Framework/Resolvers/EntityResolverTest.d.ts +1 -1
  489. package/tests/Framework/Resolvers/EntityResolverTest.js +59 -59
  490. package/tests/Mail/MailerTest.d.ts +2 -0
  491. package/tests/Mail/MailerTest.d.ts.map +1 -0
  492. package/tests/Mail/MailerTest.js +98 -0
  493. package/tests/Mail/MailerTest.js.map +1 -0
  494. package/tests/Model/ModelTest.d.ts +1 -1
  495. package/tests/Model/ModelTest.js +233 -233
  496. package/tests/Router/HttpHandlerTest.d.ts +1 -1
  497. package/tests/Router/HttpHandlerTest.js +36 -36
  498. package/tests/Router/WebSocketsHandlerTest.d.ts +1 -1
  499. package/tests/Router/WebSocketsHandlerTest.js +35 -35
  500. package/tests/Support/ArrayTest.d.ts +1 -1
  501. package/tests/Support/ArrayTest.js +258 -258
  502. package/tests/Support/StringTest.d.ts +1 -1
  503. package/tests/Support/StringTest.js +38 -38
  504. package/tests/Validation/RulesTest.d.ts +1 -1
  505. package/tests/Validation/RulesTest.js +67 -67
  506. package/Database/Drivers/SQL/Statements/Create.d.ts +0 -7
  507. package/Database/Drivers/SQL/Statements/Create.d.ts.map +0 -1
  508. package/Database/Drivers/SQL/Statements/Create.js +0 -22
  509. package/Database/Drivers/SQL/Statements/Create.js.map +0 -1
@@ -1,553 +1,548 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const mocha_1 = require("@testdeck/mocha");
13
- const Database_1 = require("../../Database");
14
- const User_1 = require("./Entities/User");
15
- const Article_1 = require("./Entities/Article");
16
- const Role_1 = require("./Entities/Role");
17
- const Profile_1 = require("./Entities/Profile");
18
- const chai_1 = require("chai");
19
- const Fields_1 = require("../../Database/Fields");
20
- let EntityRelationshipsTest = class EntityRelationshipsTest {
21
- constructor() {
22
- this.joe = {
23
- name: 'Joe',
24
- email: 'joe@example.com',
25
- };
26
- this.doe = {
27
- name: 'Doe',
28
- email: 'doe@example.com',
29
- };
30
- this.admin = {
31
- name: 'Admin'
32
- };
33
- this.developer = {
34
- name: 'Developer'
35
- };
36
- }
37
- async before() {
38
- Database_1.Query.connection = new Database_1.Connection(new Database_1.SqliteDriver(':memory:'));
39
- // Query.connection = new Connection(new MysqlDriver({
40
- // host: 'localhost', user: 'root', password: 'root', database: 'typetron_test'
41
- // }))
42
- await Database_1.Query.connection.driver.schema.synchronize([User_1.User, Profile_1.Profile, Article_1.Article, Role_1.Role].pluck('metadata'));
43
- }
44
- async after() {
45
- for await (const entity of [User_1.User, Profile_1.Profile, Article_1.Article, Role_1.Role]) {
46
- await entity.truncate();
47
- }
48
- await Database_1.Query.table('role_users').truncate();
49
- }
50
- async hydratesEntityWithRelationships() {
51
- const user = new User_1.User();
52
- chai_1.expect(user).to.haveOwnProperty('profile');
53
- chai_1.expect(user.profile).to.be.instanceOf(Fields_1.HasOne);
54
- chai_1.expect(user).to.haveOwnProperty('articles');
55
- chai_1.expect(user.articles).to.be.instanceOf(Fields_1.HasMany);
56
- chai_1.expect(user).to.haveOwnProperty('roles');
57
- chai_1.expect(user.roles).to.be.instanceOf(Fields_1.BelongsToMany);
58
- }
59
- async hasOneSave() {
60
- var _a, _b, _c;
61
- const user = await User_1.User.create(this.joe);
62
- const profile = new Profile_1.Profile().fill({
63
- address: 'address'
64
- });
65
- await user.profile.save(profile);
66
- chai_1.expect((_a = user.profile.get()) === null || _a === void 0 ? void 0 : _a.id).to.be.equal(profile.id);
67
- chai_1.expect((_c = (_b = user.profile.get()) === null || _b === void 0 ? void 0 : _b.user.get()) === null || _c === void 0 ? void 0 : _c.id).to.be.equal(user.id);
68
- chai_1.expect(await Profile_1.Profile.first()).to.be.instanceOf(Profile_1.Profile);
69
- }
70
- async hasOneLoad() {
71
- var _a, _b, _c;
72
- const user = await User_1.User.create(this.joe);
73
- const profile = new Profile_1.Profile().fill({
74
- address: 'address'
75
- });
76
- await user.profile.save(profile);
77
- const sameUser = await User_1.User.findOrFail(user.id);
78
- chai_1.expect(sameUser.profile).to.be.instanceOf(Fields_1.HasOne);
79
- chai_1.expect(sameUser.profile.get()).to.be.equal(undefined);
80
- await sameUser.load('profile');
81
- chai_1.expect((_a = sameUser.profile.get()) === null || _a === void 0 ? void 0 : _a.id).to.be.equal((_b = user.profile.get()) === null || _b === void 0 ? void 0 : _b.id);
82
- chai_1.expect((_c = sameUser.profile.get()) === null || _c === void 0 ? void 0 : _c.address).to.be.equal('address');
83
- }
84
- async hasOneEagerLoad() {
85
- const user = await User_1.User.create(this.joe);
86
- const profile = new Profile_1.Profile().fill({
87
- address: 'address'
88
- });
89
- await user.profile.save(profile);
90
- const sameUser = await User_1.User.with('profile').where('id', user.id).first();
91
- chai_1.expect(sameUser.profile.get()).to.deep.include({
92
- id: profile.id,
93
- address: 'address'
94
- });
95
- }
96
- async hasManySave() {
97
- const user = await User_1.User.create(this.joe);
98
- const article = new Article_1.Article().fill({
99
- title: 'title',
100
- content: 'content',
101
- });
102
- await user.articles.save(article);
103
- chai_1.expect(user.articles).to.have.length(1);
104
- chai_1.expect(user.articles[0]).to.deep.include({
105
- id: article.id,
106
- title: 'title',
107
- content: 'content',
108
- });
109
- }
110
- async hasManySaveUsingPlainObject() {
111
- const user = await User_1.User.create(this.joe);
112
- await user.articles.save({
113
- title: 'title',
114
- content: 'content',
115
- });
116
- chai_1.expect(user.articles).to.have.length(1);
117
- chai_1.expect(user.articles[0]).to.deep.include({
118
- title: 'title',
119
- content: 'content',
120
- });
121
- }
122
- async hasManySaveUsingSaveOnUnsavedParent() {
123
- const user = new User_1.User().fill(this.joe);
124
- await user.articles.save(new Article_1.Article().fill({
125
- title: 'title',
126
- content: 'content',
127
- }));
128
- chai_1.expect(user.articles).to.have.length(1);
129
- chai_1.expect(user.articles[0]).to.deep.include({
130
- title: 'title',
131
- content: 'content',
132
- });
133
- }
134
- async hasManyLoad() {
135
- const user = await User_1.User.create(this.joe);
136
- await Article_1.Article.create({
137
- title: 'title',
138
- content: 'content',
139
- author: user
140
- });
141
- await user.load('articles');
142
- chai_1.expect(user.articles).to.be.instanceOf(Fields_1.HasMany);
143
- chai_1.expect(user.articles[0]).to.deep.include({
144
- title: 'title',
145
- content: 'content',
146
- });
147
- }
148
- async hasManyGet() {
149
- const user = await User_1.User.create(this.joe);
150
- const article = new Article_1.Article().fill({
151
- title: 'title',
152
- content: 'content',
153
- });
154
- await user.articles.save(article);
155
- await user.articles.load();
156
- chai_1.expect(user.articles[0]).to.deep.include({
157
- title: 'title',
158
- content: 'content',
159
- });
160
- }
161
- async hasManyEagerLoad() {
162
- const user = new User_1.User().fill(this.joe);
163
- const article = new Article_1.Article().fill({
164
- title: 'title',
165
- content: 'content',
166
- });
167
- await user.articles.save(article);
168
- const sameUser = await User_1.User.with('articles').where('id', user.id).first();
169
- chai_1.expect(sameUser.articles).to.have.length(1);
170
- chai_1.expect(user.articles[0]).to.deep.include({
171
- id: article.id,
172
- title: 'title',
173
- content: 'content',
174
- });
175
- }
176
- async hasManyQuery() {
177
- const user = await User_1.User.create(this.joe);
178
- await user.articles.saveMany({
179
- title: 'title',
180
- content: `joe's content`,
181
- }, {
182
- title: 'other title',
183
- content: 'other content',
184
- });
185
- const doe = await User_1.User.create(this.doe);
186
- await doe.articles.save({
187
- title: 'title',
188
- content: `doe's content`,
189
- });
190
- const articles = await user.articles.where('title', 'title').get();
191
- chai_1.expect(articles).to.have.length(1);
192
- chai_1.expect(user.articles[0]).to.deep.include({
193
- title: 'title',
194
- content: `joe's content`,
195
- });
196
- }
197
- async belongsToSave() {
198
- const user = await User_1.User.create(this.joe);
199
- const article = new Article_1.Article();
200
- await user.articles.save(article);
201
- chai_1.expect(user.articles).to.have.length(1);
202
- chai_1.expect(user.articles[0].author).to.be.instanceof(Fields_1.BelongsTo);
203
- }
204
- async belongsToEagerLoad() {
205
- const user = await User_1.User.create(this.joe);
206
- const article = new Article_1.Article();
207
- await user.articles.save(article);
208
- const articles = await Article_1.Article.with('author').get();
209
- chai_1.expect(articles).to.have.length(1);
210
- chai_1.expect(articles[0].author).to.be.instanceof(Fields_1.BelongsTo);
211
- }
212
- async belongsToEagerLoadWithCustomQuery() {
213
- const joe = await User_1.User.create(this.joe);
214
- await joe.articles.save(Article_1.Article.new({ title: 'article1' }));
215
- await joe.articles.save(Article_1.Article.new({ title: 'article2' }));
216
- const user = await User_1.User.with(['articles', query => query.where('title', 'article1')]).first();
217
- chai_1.expect(user.articles).to.have.length(1);
218
- }
219
- // @test
220
- // async deepBelongsToEagerLoadWithCustomQuery() {
221
- // const admin = await Role.create(this.admin)
222
- //
223
- // const joe = await User.create(this.joe)
224
- // await joe.profile.save(new Profile({address: 'south address'}))
225
- // const doe = await User.create(this.doe)
226
- // await doe.profile.save(new Profile({address: 'east address'}))
227
- //
228
- // await admin.users.add(joe, doe)
229
- //
230
- // const role = await Role.with(['users.profile', query => query.whereLike('address', '%east%')]).first() as Role
231
- //
232
- // expect(role.users).to.have.length(1)
233
- // expect(role.users[0].name).to.be.equal(doe.name)
234
- // }
235
- async belongsToLoad() {
236
- const user = await User_1.User.create(this.joe);
237
- let article = new Article_1.Article();
238
- await user.articles.save(article);
239
- article = await Article_1.Article.findOrFail(article.id);
240
- const a = await Article_1.Article.get();
241
- const u = await User_1.User.get();
242
- await article.load('author');
243
- chai_1.expect(article.author).to.be.instanceOf(Fields_1.BelongsTo);
244
- chai_1.expect(article.author.get()).to.be.instanceOf(User_1.User);
245
- }
246
- async belongsToReLoad() {
247
- var _a;
248
- const user = await User_1.User.create(this.joe);
249
- const article = new Article_1.Article();
250
- await user.articles.save(article);
251
- await article.load('author');
252
- chai_1.expect(article.author).to.be.instanceOf(Fields_1.BelongsTo);
253
- chai_1.expect(article.author.get()).to.be.instanceOf(User_1.User);
254
- chai_1.expect((_a = article.author.get()) === null || _a === void 0 ? void 0 : _a.id).to.be.equal(user.id);
255
- }
256
- async belongsToManySave() {
257
- const user = new User_1.User().fill(this.joe);
258
- const admin = await Role_1.Role.create(this.admin);
259
- const developer = await Role_1.Role.create(this.developer);
260
- await user.roles.add(admin.id, developer.id);
261
- chai_1.expect(user.roles).to.have.length(2);
262
- chai_1.expect(user.roles[0].id).to.be.equal(admin.id);
263
- chai_1.expect(user.roles[1].id).to.be.equal(developer.id);
264
- }
265
- async belongsToManyEagerLoad() {
266
- const user = await User_1.User.create(this.joe);
267
- const admin = await Role_1.Role.create(this.admin);
268
- const developer = await Role_1.Role.create(this.developer);
269
- await user.roles.add(admin.id, developer.id);
270
- const sameUser = await User_1.User.with('roles').where('id', user.id).first();
271
- chai_1.expect(sameUser.roles).to.have.length(2);
272
- chai_1.expect(sameUser.roles[0]).to.deep.include({
273
- id: admin.id,
274
- name: admin.name
275
- });
276
- chai_1.expect(sameUser.roles[1]).to.deep.include({
277
- id: developer.id,
278
- name: developer.name
279
- });
280
- }
281
- async belongsToManyClearing() {
282
- const user = new User_1.User().fill(this.joe);
283
- const admin = await Role_1.Role.create(this.admin);
284
- const developer = await Role_1.Role.create(this.developer);
285
- await user.roles.add(admin.id, developer.id);
286
- chai_1.expect(user.roles).to.have.length(2);
287
- await user.roles.clear();
288
- chai_1.expect(user.roles).to.have.length(0);
289
- }
290
- async belongsToManyRemove() {
291
- const user = new User_1.User().fill(this.joe);
292
- const admin = await Role_1.Role.create(this.admin);
293
- const developer = await Role_1.Role.create(this.developer);
294
- await user.roles.add(admin.id, developer.id);
295
- chai_1.expect(user.roles).to.have.length(2);
296
- await user.roles.remove(admin.id);
297
- chai_1.expect(user.roles).to.have.length(1);
298
- }
299
- async belongsToManySync() {
300
- const user = new User_1.User().fill(this.joe);
301
- const admin = await Role_1.Role.create(this.admin);
302
- const developer = await Role_1.Role.create(this.developer);
303
- const manager = await Role_1.Role.create({ name: 'Manager' });
304
- await user.roles.add(admin.id, manager.id);
305
- await user.roles.sync(admin.id, developer);
306
- chai_1.expect(user.roles).to.have.length(2);
307
- chai_1.expect(user.roles[0]).to.have.property('id', admin.id);
308
- chai_1.expect(user.roles[1]).to.have.property('id', developer.id);
309
- }
310
- async belongsToManySyncWithoutDetaching() {
311
- const user = new User_1.User().fill(this.joe);
312
- const admin = await Role_1.Role.create(this.admin);
313
- const developer = await Role_1.Role.create(this.developer);
314
- const manager = await Role_1.Role.create({ name: 'manager' });
315
- await user.roles.add(admin.id, manager.id);
316
- await user.roles.syncWithoutDetaching(admin.id, developer);
317
- chai_1.expect(user.roles).to.have.length(3);
318
- chai_1.expect(user.roles[0]).to.have.property('id', admin.id);
319
- chai_1.expect(user.roles[1]).to.have.property('id', manager.id);
320
- chai_1.expect(user.roles[2]).to.have.property('id', developer.id);
321
- }
322
- async belongsToManyToggle() {
323
- const user = new User_1.User().fill(this.joe);
324
- const admin = await Role_1.Role.create(this.admin);
325
- await user.roles.add(admin.id);
326
- chai_1.expect(user.roles).to.have.length(1);
327
- chai_1.expect(user.roles[0]).to.have.property('id', admin.id);
328
- const developer = await Role_1.Role.create(this.developer);
329
- await user.roles.toggle(admin.id, developer.id);
330
- chai_1.expect(user.roles).to.have.length(1);
331
- chai_1.expect(user.roles[0]).to.have.property('id', developer.id);
332
- }
333
- async belongsToManyLoad() {
334
- const user = new User_1.User().fill(this.joe);
335
- const admin = await Role_1.Role.create(this.admin);
336
- await user.roles.add(admin.id);
337
- const sameUser = await User_1.User.first();
338
- await sameUser.load('roles');
339
- chai_1.expect(sameUser.roles[0]).to.deep.include(this.admin);
340
- }
341
- async belongsToManyQuery() {
342
- const user = new User_1.User().fill(this.joe);
343
- const admin = await Role_1.Role.create(this.admin);
344
- const developer = await Role_1.Role.create(this.developer);
345
- await user.roles.add(admin.id, developer.id);
346
- chai_1.expect(user.roles).to.have.length(2);
347
- const roles = await user.roles.where('name', developer.name).get();
348
- chai_1.expect(roles).to.have.length(1);
349
- chai_1.expect(roles[0]).to.deep.include(this.developer);
350
- }
351
- async belongsToManyHas() {
352
- const user = new User_1.User().fill(this.joe);
353
- const admin = await Role_1.Role.create(this.admin);
354
- const developer = await Role_1.Role.create(this.developer);
355
- await user.roles.add(admin.id);
356
- chai_1.expect(await user.roles.has(admin)).to.be.equal(true);
357
- chai_1.expect(await user.roles.has(developer.id)).to.be.equal(false);
358
- }
359
- async nestedEagerLoading() {
360
- var _a;
361
- let user = await User_1.User.create(this.joe);
362
- await user.articles.save(new Article_1.Article());
363
- user = await User_1.User.find(user.id);
364
- await user.load('articles.author');
365
- chai_1.expect((_a = user.articles[0].author.get()) === null || _a === void 0 ? void 0 : _a.name).to.be.equal(user.name);
366
- }
367
- async multipleNestedEagerLoading() {
368
- var _a, _b, _c, _d;
369
- let adminRole = await Role_1.Role.create({ name: 'Admin' });
370
- const joe = await User_1.User.create(this.joe);
371
- await adminRole.users.add(joe);
372
- await joe.articles.save(new Article_1.Article().fill({ title: 'title' }));
373
- await joe.profile.save(new Profile_1.Profile().fill({ address: 'address' }));
374
- adminRole = await Role_1.Role.find(adminRole.id);
375
- await adminRole.load('users.articles.author', 'users.profile.user');
376
- chai_1.expect(adminRole.users[0].articles[0].title).to.be.equal('title');
377
- chai_1.expect((_a = adminRole.users[0].profile.get()) === null || _a === void 0 ? void 0 : _a.address).to.be.equal('address');
378
- chai_1.expect((_b = adminRole.users[0].articles[0].author.get()) === null || _b === void 0 ? void 0 : _b.name).to.be.equal(joe.name);
379
- chai_1.expect((_d = (_c = adminRole.users[0].profile.get()) === null || _c === void 0 ? void 0 : _c.user.get()) === null || _d === void 0 ? void 0 : _d.name).to.be.equal(joe.name);
380
- }
381
- };
382
- __decorate([
383
- mocha_1.test,
384
- __metadata("design:type", Function),
385
- __metadata("design:paramtypes", []),
386
- __metadata("design:returntype", Promise)
387
- ], EntityRelationshipsTest.prototype, "hydratesEntityWithRelationships", null);
388
- __decorate([
389
- mocha_1.test,
390
- __metadata("design:type", Function),
391
- __metadata("design:paramtypes", []),
392
- __metadata("design:returntype", Promise)
393
- ], EntityRelationshipsTest.prototype, "hasOneSave", null);
394
- __decorate([
395
- mocha_1.test,
396
- __metadata("design:type", Function),
397
- __metadata("design:paramtypes", []),
398
- __metadata("design:returntype", Promise)
399
- ], EntityRelationshipsTest.prototype, "hasOneLoad", null);
400
- __decorate([
401
- mocha_1.test,
402
- __metadata("design:type", Function),
403
- __metadata("design:paramtypes", []),
404
- __metadata("design:returntype", Promise)
405
- ], EntityRelationshipsTest.prototype, "hasOneEagerLoad", null);
406
- __decorate([
407
- mocha_1.test,
408
- __metadata("design:type", Function),
409
- __metadata("design:paramtypes", []),
410
- __metadata("design:returntype", Promise)
411
- ], EntityRelationshipsTest.prototype, "hasManySave", null);
412
- __decorate([
413
- mocha_1.test,
414
- __metadata("design:type", Function),
415
- __metadata("design:paramtypes", []),
416
- __metadata("design:returntype", Promise)
417
- ], EntityRelationshipsTest.prototype, "hasManySaveUsingPlainObject", null);
418
- __decorate([
419
- mocha_1.test,
420
- __metadata("design:type", Function),
421
- __metadata("design:paramtypes", []),
422
- __metadata("design:returntype", Promise)
423
- ], EntityRelationshipsTest.prototype, "hasManySaveUsingSaveOnUnsavedParent", null);
424
- __decorate([
425
- mocha_1.test,
426
- __metadata("design:type", Function),
427
- __metadata("design:paramtypes", []),
428
- __metadata("design:returntype", Promise)
429
- ], EntityRelationshipsTest.prototype, "hasManyLoad", null);
430
- __decorate([
431
- mocha_1.test,
432
- __metadata("design:type", Function),
433
- __metadata("design:paramtypes", []),
434
- __metadata("design:returntype", Promise)
435
- ], EntityRelationshipsTest.prototype, "hasManyGet", null);
436
- __decorate([
437
- mocha_1.test,
438
- __metadata("design:type", Function),
439
- __metadata("design:paramtypes", []),
440
- __metadata("design:returntype", Promise)
441
- ], EntityRelationshipsTest.prototype, "hasManyEagerLoad", null);
442
- __decorate([
443
- mocha_1.test,
444
- __metadata("design:type", Function),
445
- __metadata("design:paramtypes", []),
446
- __metadata("design:returntype", Promise)
447
- ], EntityRelationshipsTest.prototype, "hasManyQuery", null);
448
- __decorate([
449
- mocha_1.test,
450
- __metadata("design:type", Function),
451
- __metadata("design:paramtypes", []),
452
- __metadata("design:returntype", Promise)
453
- ], EntityRelationshipsTest.prototype, "belongsToSave", null);
454
- __decorate([
455
- mocha_1.test,
456
- __metadata("design:type", Function),
457
- __metadata("design:paramtypes", []),
458
- __metadata("design:returntype", Promise)
459
- ], EntityRelationshipsTest.prototype, "belongsToEagerLoad", null);
460
- __decorate([
461
- mocha_1.test,
462
- __metadata("design:type", Function),
463
- __metadata("design:paramtypes", []),
464
- __metadata("design:returntype", Promise)
465
- ], EntityRelationshipsTest.prototype, "belongsToEagerLoadWithCustomQuery", null);
466
- __decorate([
467
- mocha_1.test,
468
- __metadata("design:type", Function),
469
- __metadata("design:paramtypes", []),
470
- __metadata("design:returntype", Promise)
471
- ], EntityRelationshipsTest.prototype, "belongsToLoad", null);
472
- __decorate([
473
- mocha_1.test,
474
- __metadata("design:type", Function),
475
- __metadata("design:paramtypes", []),
476
- __metadata("design:returntype", Promise)
477
- ], EntityRelationshipsTest.prototype, "belongsToReLoad", null);
478
- __decorate([
479
- mocha_1.test,
480
- __metadata("design:type", Function),
481
- __metadata("design:paramtypes", []),
482
- __metadata("design:returntype", Promise)
483
- ], EntityRelationshipsTest.prototype, "belongsToManySave", null);
484
- __decorate([
485
- mocha_1.test,
486
- __metadata("design:type", Function),
487
- __metadata("design:paramtypes", []),
488
- __metadata("design:returntype", Promise)
489
- ], EntityRelationshipsTest.prototype, "belongsToManyEagerLoad", null);
490
- __decorate([
491
- mocha_1.test,
492
- __metadata("design:type", Function),
493
- __metadata("design:paramtypes", []),
494
- __metadata("design:returntype", Promise)
495
- ], EntityRelationshipsTest.prototype, "belongsToManyClearing", null);
496
- __decorate([
497
- mocha_1.test,
498
- __metadata("design:type", Function),
499
- __metadata("design:paramtypes", []),
500
- __metadata("design:returntype", Promise)
501
- ], EntityRelationshipsTest.prototype, "belongsToManyRemove", null);
502
- __decorate([
503
- mocha_1.test,
504
- __metadata("design:type", Function),
505
- __metadata("design:paramtypes", []),
506
- __metadata("design:returntype", Promise)
507
- ], EntityRelationshipsTest.prototype, "belongsToManySync", null);
508
- __decorate([
509
- mocha_1.test,
510
- __metadata("design:type", Function),
511
- __metadata("design:paramtypes", []),
512
- __metadata("design:returntype", Promise)
513
- ], EntityRelationshipsTest.prototype, "belongsToManySyncWithoutDetaching", null);
514
- __decorate([
515
- mocha_1.test,
516
- __metadata("design:type", Function),
517
- __metadata("design:paramtypes", []),
518
- __metadata("design:returntype", Promise)
519
- ], EntityRelationshipsTest.prototype, "belongsToManyToggle", null);
520
- __decorate([
521
- mocha_1.test,
522
- __metadata("design:type", Function),
523
- __metadata("design:paramtypes", []),
524
- __metadata("design:returntype", Promise)
525
- ], EntityRelationshipsTest.prototype, "belongsToManyLoad", null);
526
- __decorate([
527
- mocha_1.test,
528
- __metadata("design:type", Function),
529
- __metadata("design:paramtypes", []),
530
- __metadata("design:returntype", Promise)
531
- ], EntityRelationshipsTest.prototype, "belongsToManyQuery", null);
532
- __decorate([
533
- mocha_1.test,
534
- __metadata("design:type", Function),
535
- __metadata("design:paramtypes", []),
536
- __metadata("design:returntype", Promise)
537
- ], EntityRelationshipsTest.prototype, "belongsToManyHas", null);
538
- __decorate([
539
- mocha_1.test,
540
- __metadata("design:type", Function),
541
- __metadata("design:paramtypes", []),
542
- __metadata("design:returntype", Promise)
543
- ], EntityRelationshipsTest.prototype, "nestedEagerLoading", null);
544
- __decorate([
545
- mocha_1.test,
546
- __metadata("design:type", Function),
547
- __metadata("design:paramtypes", []),
548
- __metadata("design:returntype", Promise)
549
- ], EntityRelationshipsTest.prototype, "multipleNestedEagerLoading", null);
550
- EntityRelationshipsTest = __decorate([
551
- mocha_1.suite
552
- ], EntityRelationshipsTest);
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const mocha_1 = require("@testdeck/mocha");
13
+ const Database_1 = require("../../Database");
14
+ const User_1 = require("./Entities/User");
15
+ const Article_1 = require("./Entities/Article");
16
+ const Role_1 = require("./Entities/Role");
17
+ const Profile_1 = require("./Entities/Profile");
18
+ const chai_1 = require("chai");
19
+ const Fields_1 = require("../../Database/Fields");
20
+ let EntityRelationshipsTest = class EntityRelationshipsTest {
21
+ constructor() {
22
+ this.joe = {
23
+ name: 'Joe',
24
+ email: 'joe@example.com',
25
+ };
26
+ this.doe = {
27
+ name: 'Doe',
28
+ email: 'doe@example.com',
29
+ };
30
+ this.admin = {
31
+ name: 'Admin'
32
+ };
33
+ this.developer = {
34
+ name: 'Developer'
35
+ };
36
+ }
37
+ async before() {
38
+ Database_1.Query.connection = new Database_1.Connection(new Database_1.SqliteDriver(':memory:'));
39
+ // Query.connection = new Connection(new MysqlDriver({
40
+ // host: 'localhost', user: 'root', password: 'root', database: 'typetron_test'
41
+ // }))
42
+ await Database_1.Query.connection.driver.schema.synchronize([User_1.User, Profile_1.Profile, Article_1.Article, Role_1.Role].pluck('metadata'));
43
+ }
44
+ async after() {
45
+ for await (const entity of [User_1.User, Profile_1.Profile, Article_1.Article, Role_1.Role]) {
46
+ await entity.truncate();
47
+ }
48
+ await Database_1.Query.table('role_users').truncate();
49
+ }
50
+ async hydratesEntityWithRelationships() {
51
+ const user = new User_1.User();
52
+ chai_1.expect(user).to.haveOwnProperty('profile');
53
+ chai_1.expect(user.profile).to.be.instanceOf(Fields_1.HasOne);
54
+ chai_1.expect(user).to.haveOwnProperty('articles');
55
+ chai_1.expect(user.articles).to.be.instanceOf(Fields_1.HasMany);
56
+ chai_1.expect(user).to.haveOwnProperty('roles');
57
+ chai_1.expect(user.roles).to.be.instanceOf(Fields_1.BelongsToMany);
58
+ }
59
+ async hasOneSave() {
60
+ const user = await User_1.User.create(this.joe);
61
+ const profile = new Profile_1.Profile().fill({
62
+ address: 'address'
63
+ });
64
+ await user.profile.save(profile);
65
+ chai_1.expect(user.profile.get()?.id).to.be.equal(profile.id);
66
+ chai_1.expect(user.profile.get()?.user.get()?.id).to.be.equal(user.id);
67
+ chai_1.expect(await Profile_1.Profile.first()).to.be.instanceOf(Profile_1.Profile);
68
+ }
69
+ async hasOneLoad() {
70
+ const user = await User_1.User.create(this.joe);
71
+ const profile = new Profile_1.Profile().fill({
72
+ address: 'address'
73
+ });
74
+ await user.profile.save(profile);
75
+ const sameUser = await User_1.User.findOrFail(user.id);
76
+ chai_1.expect(sameUser.profile).to.be.instanceOf(Fields_1.HasOne);
77
+ chai_1.expect(sameUser.profile.get()).to.be.equal(undefined);
78
+ await sameUser.load('profile');
79
+ chai_1.expect(sameUser.profile.get()?.id).to.be.equal(user.profile.get()?.id);
80
+ chai_1.expect(sameUser.profile.get()?.address).to.be.equal('address');
81
+ }
82
+ async hasOneEagerLoad() {
83
+ const user = await User_1.User.create(this.joe);
84
+ const profile = new Profile_1.Profile().fill({
85
+ address: 'address'
86
+ });
87
+ await user.profile.save(profile);
88
+ const sameUser = await User_1.User.with('profile').where('id', user.id).first();
89
+ chai_1.expect(sameUser.profile.get()).to.deep.include({
90
+ id: profile.id,
91
+ address: 'address'
92
+ });
93
+ }
94
+ async hasManySave() {
95
+ const user = await User_1.User.create(this.joe);
96
+ const article = new Article_1.Article().fill({
97
+ title: 'title',
98
+ content: 'content',
99
+ });
100
+ await user.articles.save(article);
101
+ chai_1.expect(user.articles).to.have.length(1);
102
+ chai_1.expect(user.articles[0]).to.deep.include({
103
+ id: article.id,
104
+ title: 'title',
105
+ content: 'content',
106
+ });
107
+ }
108
+ async hasManySaveUsingPlainObject() {
109
+ const user = await User_1.User.create(this.joe);
110
+ await user.articles.save({
111
+ title: 'title',
112
+ content: 'content',
113
+ });
114
+ chai_1.expect(user.articles).to.have.length(1);
115
+ chai_1.expect(user.articles[0]).to.deep.include({
116
+ title: 'title',
117
+ content: 'content',
118
+ });
119
+ }
120
+ async hasManySaveUsingSaveOnUnsavedParent() {
121
+ const user = new User_1.User().fill(this.joe);
122
+ await user.articles.save(new Article_1.Article().fill({
123
+ title: 'title',
124
+ content: 'content',
125
+ }));
126
+ chai_1.expect(user.articles).to.have.length(1);
127
+ chai_1.expect(user.articles[0]).to.deep.include({
128
+ title: 'title',
129
+ content: 'content',
130
+ });
131
+ }
132
+ async hasManyLoad() {
133
+ const user = await User_1.User.create(this.joe);
134
+ await Article_1.Article.create({
135
+ title: 'title',
136
+ content: 'content',
137
+ author: user
138
+ });
139
+ await user.load('articles');
140
+ chai_1.expect(user.articles).to.be.instanceOf(Fields_1.HasMany);
141
+ chai_1.expect(user.articles[0]).to.deep.include({
142
+ title: 'title',
143
+ content: 'content',
144
+ });
145
+ }
146
+ async hasManyGet() {
147
+ const user = await User_1.User.create(this.joe);
148
+ const article = new Article_1.Article().fill({
149
+ title: 'title',
150
+ content: 'content',
151
+ });
152
+ await user.articles.save(article);
153
+ await user.articles.load();
154
+ chai_1.expect(user.articles[0]).to.deep.include({
155
+ title: 'title',
156
+ content: 'content',
157
+ });
158
+ }
159
+ async hasManyEagerLoad() {
160
+ const user = new User_1.User().fill(this.joe);
161
+ const article = new Article_1.Article().fill({
162
+ title: 'title',
163
+ content: 'content',
164
+ });
165
+ await user.articles.save(article);
166
+ const sameUser = await User_1.User.with('articles').where('id', user.id).first();
167
+ chai_1.expect(sameUser.articles).to.have.length(1);
168
+ chai_1.expect(user.articles[0]).to.deep.include({
169
+ id: article.id,
170
+ title: 'title',
171
+ content: 'content',
172
+ });
173
+ }
174
+ async hasManyQuery() {
175
+ const user = await User_1.User.create(this.joe);
176
+ await user.articles.saveMany({
177
+ title: 'title',
178
+ content: `joe's content`,
179
+ }, {
180
+ title: 'other title',
181
+ content: 'other content',
182
+ });
183
+ const doe = await User_1.User.create(this.doe);
184
+ await doe.articles.save({
185
+ title: 'title',
186
+ content: `doe's content`,
187
+ });
188
+ const articles = await user.articles.where('title', 'title').get();
189
+ chai_1.expect(articles).to.have.length(1);
190
+ chai_1.expect(user.articles[0]).to.deep.include({
191
+ title: 'title',
192
+ content: `joe's content`,
193
+ });
194
+ }
195
+ async belongsToSave() {
196
+ const user = await User_1.User.create(this.joe);
197
+ const article = new Article_1.Article();
198
+ await user.articles.save(article);
199
+ chai_1.expect(user.articles).to.have.length(1);
200
+ chai_1.expect(user.articles[0].author).to.be.instanceof(Fields_1.BelongsTo);
201
+ }
202
+ async belongsToEagerLoad() {
203
+ const user = await User_1.User.create(this.joe);
204
+ const article = new Article_1.Article();
205
+ await user.articles.save(article);
206
+ const articles = await Article_1.Article.with('author').get();
207
+ chai_1.expect(articles).to.have.length(1);
208
+ chai_1.expect(articles[0].author).to.be.instanceof(Fields_1.BelongsTo);
209
+ }
210
+ async belongsToEagerLoadWithCustomQuery() {
211
+ const joe = await User_1.User.create(this.joe);
212
+ await joe.articles.save(Article_1.Article.new({ title: 'article1' }));
213
+ await joe.articles.save(Article_1.Article.new({ title: 'article2' }));
214
+ const user = await User_1.User.with(['articles', query => query.where('title', 'article1')]).first();
215
+ chai_1.expect(user.articles).to.have.length(1);
216
+ }
217
+ // @test
218
+ // async deepBelongsToEagerLoadWithCustomQuery() {
219
+ // const admin = await Role.create(this.admin)
220
+ //
221
+ // const joe = await User.create(this.joe)
222
+ // await joe.profile.save(new Profile({address: 'south address'}))
223
+ // const doe = await User.create(this.doe)
224
+ // await doe.profile.save(new Profile({address: 'east address'}))
225
+ //
226
+ // await admin.users.add(joe, doe)
227
+ //
228
+ // const role = await Role.with(['users.profile', query => query.whereLike('address', '%east%')]).first() as Role
229
+ //
230
+ // expect(role.users).to.have.length(1)
231
+ // expect(role.users[0].name).to.be.equal(doe.name)
232
+ // }
233
+ async belongsToLoad() {
234
+ const user = await User_1.User.create(this.joe);
235
+ let article = new Article_1.Article();
236
+ await user.articles.save(article);
237
+ article = await Article_1.Article.findOrFail(article.id);
238
+ const a = await Article_1.Article.get();
239
+ const u = await User_1.User.get();
240
+ await article.load('author');
241
+ chai_1.expect(article.author).to.be.instanceOf(Fields_1.BelongsTo);
242
+ chai_1.expect(article.author.get()).to.be.instanceOf(User_1.User);
243
+ }
244
+ async belongsToReLoad() {
245
+ const user = await User_1.User.create(this.joe);
246
+ const article = new Article_1.Article();
247
+ await user.articles.save(article);
248
+ await article.load('author');
249
+ chai_1.expect(article.author).to.be.instanceOf(Fields_1.BelongsTo);
250
+ chai_1.expect(article.author.get()).to.be.instanceOf(User_1.User);
251
+ chai_1.expect(article.author.get()?.id).to.be.equal(user.id);
252
+ }
253
+ async belongsToManySave() {
254
+ const user = new User_1.User().fill(this.joe);
255
+ const admin = await Role_1.Role.create(this.admin);
256
+ const developer = await Role_1.Role.create(this.developer);
257
+ await user.roles.add(admin.id, developer.id);
258
+ chai_1.expect(user.roles).to.have.length(2);
259
+ chai_1.expect(user.roles[0].id).to.be.equal(admin.id);
260
+ chai_1.expect(user.roles[1].id).to.be.equal(developer.id);
261
+ }
262
+ async belongsToManyEagerLoad() {
263
+ const user = await User_1.User.create(this.joe);
264
+ const admin = await Role_1.Role.create(this.admin);
265
+ const developer = await Role_1.Role.create(this.developer);
266
+ await user.roles.add(admin.id, developer.id);
267
+ const sameUser = await User_1.User.with('roles').where('id', user.id).first();
268
+ chai_1.expect(sameUser.roles).to.have.length(2);
269
+ chai_1.expect(sameUser.roles[0]).to.deep.include({
270
+ id: admin.id,
271
+ name: admin.name
272
+ });
273
+ chai_1.expect(sameUser.roles[1]).to.deep.include({
274
+ id: developer.id,
275
+ name: developer.name
276
+ });
277
+ }
278
+ async belongsToManyClearing() {
279
+ const user = new User_1.User().fill(this.joe);
280
+ const admin = await Role_1.Role.create(this.admin);
281
+ const developer = await Role_1.Role.create(this.developer);
282
+ await user.roles.add(admin.id, developer.id);
283
+ chai_1.expect(user.roles).to.have.length(2);
284
+ await user.roles.clear();
285
+ chai_1.expect(user.roles).to.have.length(0);
286
+ }
287
+ async belongsToManyRemove() {
288
+ const user = new User_1.User().fill(this.joe);
289
+ const admin = await Role_1.Role.create(this.admin);
290
+ const developer = await Role_1.Role.create(this.developer);
291
+ await user.roles.add(admin.id, developer.id);
292
+ chai_1.expect(user.roles).to.have.length(2);
293
+ await user.roles.remove(admin.id);
294
+ chai_1.expect(user.roles).to.have.length(1);
295
+ }
296
+ async belongsToManySync() {
297
+ const user = new User_1.User().fill(this.joe);
298
+ const admin = await Role_1.Role.create(this.admin);
299
+ const developer = await Role_1.Role.create(this.developer);
300
+ const manager = await Role_1.Role.create({ name: 'Manager' });
301
+ await user.roles.add(admin.id, manager.id);
302
+ await user.roles.sync(admin.id, developer);
303
+ chai_1.expect(user.roles).to.have.length(2);
304
+ chai_1.expect(user.roles[0]).to.have.property('id', admin.id);
305
+ chai_1.expect(user.roles[1]).to.have.property('id', developer.id);
306
+ }
307
+ async belongsToManySyncWithoutDetaching() {
308
+ const user = new User_1.User().fill(this.joe);
309
+ const admin = await Role_1.Role.create(this.admin);
310
+ const developer = await Role_1.Role.create(this.developer);
311
+ const manager = await Role_1.Role.create({ name: 'manager' });
312
+ await user.roles.add(admin.id, manager.id);
313
+ await user.roles.syncWithoutDetaching(admin.id, developer);
314
+ chai_1.expect(user.roles).to.have.length(3);
315
+ chai_1.expect(user.roles[0]).to.have.property('id', admin.id);
316
+ chai_1.expect(user.roles[1]).to.have.property('id', manager.id);
317
+ chai_1.expect(user.roles[2]).to.have.property('id', developer.id);
318
+ }
319
+ async belongsToManyToggle() {
320
+ const user = new User_1.User().fill(this.joe);
321
+ const admin = await Role_1.Role.create(this.admin);
322
+ await user.roles.add(admin.id);
323
+ chai_1.expect(user.roles).to.have.length(1);
324
+ chai_1.expect(user.roles[0]).to.have.property('id', admin.id);
325
+ const developer = await Role_1.Role.create(this.developer);
326
+ await user.roles.toggle(admin.id, developer.id);
327
+ chai_1.expect(user.roles).to.have.length(1);
328
+ chai_1.expect(user.roles[0]).to.have.property('id', developer.id);
329
+ }
330
+ async belongsToManyLoad() {
331
+ const user = new User_1.User().fill(this.joe);
332
+ const admin = await Role_1.Role.create(this.admin);
333
+ await user.roles.add(admin.id);
334
+ const sameUser = await User_1.User.first();
335
+ await sameUser.load('roles');
336
+ chai_1.expect(sameUser.roles[0]).to.deep.include(this.admin);
337
+ }
338
+ async belongsToManyQuery() {
339
+ const user = new User_1.User().fill(this.joe);
340
+ const admin = await Role_1.Role.create(this.admin);
341
+ const developer = await Role_1.Role.create(this.developer);
342
+ await user.roles.add(admin.id, developer.id);
343
+ chai_1.expect(user.roles).to.have.length(2);
344
+ const roles = await user.roles.where('name', developer.name).get();
345
+ chai_1.expect(roles).to.have.length(1);
346
+ chai_1.expect(roles[0]).to.deep.include(this.developer);
347
+ }
348
+ async belongsToManyHas() {
349
+ const user = new User_1.User().fill(this.joe);
350
+ const admin = await Role_1.Role.create(this.admin);
351
+ const developer = await Role_1.Role.create(this.developer);
352
+ await user.roles.add(admin.id);
353
+ chai_1.expect(await user.roles.has(admin)).to.be.equal(true);
354
+ chai_1.expect(await user.roles.has(developer.id)).to.be.equal(false);
355
+ }
356
+ async nestedEagerLoading() {
357
+ let user = await User_1.User.create(this.joe);
358
+ await user.articles.save(new Article_1.Article());
359
+ user = await User_1.User.find(user.id);
360
+ await user.load('articles.author');
361
+ chai_1.expect(user.articles[0].author.get()?.name).to.be.equal(user.name);
362
+ }
363
+ async multipleNestedEagerLoading() {
364
+ let adminRole = await Role_1.Role.create({ name: 'Admin' });
365
+ const joe = await User_1.User.create(this.joe);
366
+ await adminRole.users.add(joe);
367
+ await joe.articles.save(new Article_1.Article().fill({ title: 'title' }));
368
+ await joe.profile.save(new Profile_1.Profile().fill({ address: 'address' }));
369
+ adminRole = await Role_1.Role.find(adminRole.id);
370
+ await adminRole.load('users.articles.author', 'users.profile.user');
371
+ chai_1.expect(adminRole.users[0].articles[0].title).to.be.equal('title');
372
+ chai_1.expect(adminRole.users[0].profile.get()?.address).to.be.equal('address');
373
+ chai_1.expect(adminRole.users[0].articles[0].author.get()?.name).to.be.equal(joe.name);
374
+ chai_1.expect(adminRole.users[0].profile.get()?.user.get()?.name).to.be.equal(joe.name);
375
+ }
376
+ };
377
+ __decorate([
378
+ mocha_1.test,
379
+ __metadata("design:type", Function),
380
+ __metadata("design:paramtypes", []),
381
+ __metadata("design:returntype", Promise)
382
+ ], EntityRelationshipsTest.prototype, "hydratesEntityWithRelationships", null);
383
+ __decorate([
384
+ mocha_1.test,
385
+ __metadata("design:type", Function),
386
+ __metadata("design:paramtypes", []),
387
+ __metadata("design:returntype", Promise)
388
+ ], EntityRelationshipsTest.prototype, "hasOneSave", null);
389
+ __decorate([
390
+ mocha_1.test,
391
+ __metadata("design:type", Function),
392
+ __metadata("design:paramtypes", []),
393
+ __metadata("design:returntype", Promise)
394
+ ], EntityRelationshipsTest.prototype, "hasOneLoad", null);
395
+ __decorate([
396
+ mocha_1.test,
397
+ __metadata("design:type", Function),
398
+ __metadata("design:paramtypes", []),
399
+ __metadata("design:returntype", Promise)
400
+ ], EntityRelationshipsTest.prototype, "hasOneEagerLoad", null);
401
+ __decorate([
402
+ mocha_1.test,
403
+ __metadata("design:type", Function),
404
+ __metadata("design:paramtypes", []),
405
+ __metadata("design:returntype", Promise)
406
+ ], EntityRelationshipsTest.prototype, "hasManySave", null);
407
+ __decorate([
408
+ mocha_1.test,
409
+ __metadata("design:type", Function),
410
+ __metadata("design:paramtypes", []),
411
+ __metadata("design:returntype", Promise)
412
+ ], EntityRelationshipsTest.prototype, "hasManySaveUsingPlainObject", null);
413
+ __decorate([
414
+ mocha_1.test,
415
+ __metadata("design:type", Function),
416
+ __metadata("design:paramtypes", []),
417
+ __metadata("design:returntype", Promise)
418
+ ], EntityRelationshipsTest.prototype, "hasManySaveUsingSaveOnUnsavedParent", null);
419
+ __decorate([
420
+ mocha_1.test,
421
+ __metadata("design:type", Function),
422
+ __metadata("design:paramtypes", []),
423
+ __metadata("design:returntype", Promise)
424
+ ], EntityRelationshipsTest.prototype, "hasManyLoad", null);
425
+ __decorate([
426
+ mocha_1.test,
427
+ __metadata("design:type", Function),
428
+ __metadata("design:paramtypes", []),
429
+ __metadata("design:returntype", Promise)
430
+ ], EntityRelationshipsTest.prototype, "hasManyGet", null);
431
+ __decorate([
432
+ mocha_1.test,
433
+ __metadata("design:type", Function),
434
+ __metadata("design:paramtypes", []),
435
+ __metadata("design:returntype", Promise)
436
+ ], EntityRelationshipsTest.prototype, "hasManyEagerLoad", null);
437
+ __decorate([
438
+ mocha_1.test,
439
+ __metadata("design:type", Function),
440
+ __metadata("design:paramtypes", []),
441
+ __metadata("design:returntype", Promise)
442
+ ], EntityRelationshipsTest.prototype, "hasManyQuery", null);
443
+ __decorate([
444
+ mocha_1.test,
445
+ __metadata("design:type", Function),
446
+ __metadata("design:paramtypes", []),
447
+ __metadata("design:returntype", Promise)
448
+ ], EntityRelationshipsTest.prototype, "belongsToSave", null);
449
+ __decorate([
450
+ mocha_1.test,
451
+ __metadata("design:type", Function),
452
+ __metadata("design:paramtypes", []),
453
+ __metadata("design:returntype", Promise)
454
+ ], EntityRelationshipsTest.prototype, "belongsToEagerLoad", null);
455
+ __decorate([
456
+ mocha_1.test,
457
+ __metadata("design:type", Function),
458
+ __metadata("design:paramtypes", []),
459
+ __metadata("design:returntype", Promise)
460
+ ], EntityRelationshipsTest.prototype, "belongsToEagerLoadWithCustomQuery", null);
461
+ __decorate([
462
+ mocha_1.test,
463
+ __metadata("design:type", Function),
464
+ __metadata("design:paramtypes", []),
465
+ __metadata("design:returntype", Promise)
466
+ ], EntityRelationshipsTest.prototype, "belongsToLoad", null);
467
+ __decorate([
468
+ mocha_1.test,
469
+ __metadata("design:type", Function),
470
+ __metadata("design:paramtypes", []),
471
+ __metadata("design:returntype", Promise)
472
+ ], EntityRelationshipsTest.prototype, "belongsToReLoad", null);
473
+ __decorate([
474
+ mocha_1.test,
475
+ __metadata("design:type", Function),
476
+ __metadata("design:paramtypes", []),
477
+ __metadata("design:returntype", Promise)
478
+ ], EntityRelationshipsTest.prototype, "belongsToManySave", null);
479
+ __decorate([
480
+ mocha_1.test,
481
+ __metadata("design:type", Function),
482
+ __metadata("design:paramtypes", []),
483
+ __metadata("design:returntype", Promise)
484
+ ], EntityRelationshipsTest.prototype, "belongsToManyEagerLoad", null);
485
+ __decorate([
486
+ mocha_1.test,
487
+ __metadata("design:type", Function),
488
+ __metadata("design:paramtypes", []),
489
+ __metadata("design:returntype", Promise)
490
+ ], EntityRelationshipsTest.prototype, "belongsToManyClearing", null);
491
+ __decorate([
492
+ mocha_1.test,
493
+ __metadata("design:type", Function),
494
+ __metadata("design:paramtypes", []),
495
+ __metadata("design:returntype", Promise)
496
+ ], EntityRelationshipsTest.prototype, "belongsToManyRemove", null);
497
+ __decorate([
498
+ mocha_1.test,
499
+ __metadata("design:type", Function),
500
+ __metadata("design:paramtypes", []),
501
+ __metadata("design:returntype", Promise)
502
+ ], EntityRelationshipsTest.prototype, "belongsToManySync", null);
503
+ __decorate([
504
+ mocha_1.test,
505
+ __metadata("design:type", Function),
506
+ __metadata("design:paramtypes", []),
507
+ __metadata("design:returntype", Promise)
508
+ ], EntityRelationshipsTest.prototype, "belongsToManySyncWithoutDetaching", null);
509
+ __decorate([
510
+ mocha_1.test,
511
+ __metadata("design:type", Function),
512
+ __metadata("design:paramtypes", []),
513
+ __metadata("design:returntype", Promise)
514
+ ], EntityRelationshipsTest.prototype, "belongsToManyToggle", null);
515
+ __decorate([
516
+ mocha_1.test,
517
+ __metadata("design:type", Function),
518
+ __metadata("design:paramtypes", []),
519
+ __metadata("design:returntype", Promise)
520
+ ], EntityRelationshipsTest.prototype, "belongsToManyLoad", null);
521
+ __decorate([
522
+ mocha_1.test,
523
+ __metadata("design:type", Function),
524
+ __metadata("design:paramtypes", []),
525
+ __metadata("design:returntype", Promise)
526
+ ], EntityRelationshipsTest.prototype, "belongsToManyQuery", null);
527
+ __decorate([
528
+ mocha_1.test,
529
+ __metadata("design:type", Function),
530
+ __metadata("design:paramtypes", []),
531
+ __metadata("design:returntype", Promise)
532
+ ], EntityRelationshipsTest.prototype, "belongsToManyHas", null);
533
+ __decorate([
534
+ mocha_1.test,
535
+ __metadata("design:type", Function),
536
+ __metadata("design:paramtypes", []),
537
+ __metadata("design:returntype", Promise)
538
+ ], EntityRelationshipsTest.prototype, "nestedEagerLoading", null);
539
+ __decorate([
540
+ mocha_1.test,
541
+ __metadata("design:type", Function),
542
+ __metadata("design:paramtypes", []),
543
+ __metadata("design:returntype", Promise)
544
+ ], EntityRelationshipsTest.prototype, "multipleNestedEagerLoading", null);
545
+ EntityRelationshipsTest = __decorate([
546
+ mocha_1.suite
547
+ ], EntityRelationshipsTest);
553
548
  //# sourceMappingURL=EntityRelationshipsTest.js.map