@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
@@ -0,0 +1,9 @@
1
+ export declare abstract class Cache {
2
+ abstract has(name: string): Promise<boolean>;
3
+ abstract get<T>(name: string, defaultValue?: T | (() => T | Promise<T>)): Promise<T | undefined>;
4
+ abstract remember<T>(name: string, defaultValue?: T | (() => T | Promise<T>), duration?: number): Promise<T | undefined>;
5
+ abstract set(name: string, data: any, duration?: number): Promise<void>;
6
+ abstract delete(name: string): Promise<void>;
7
+ abstract flush(): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=Cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../Cache/Cache.ts"],"names":[],"mappings":"AAAA,8BAAsB,KAAK;IACvB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAE5C,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAEhG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAExH,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE5C,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAClC"}
package/Cache/Cache.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Cache = void 0;
4
+ class Cache {
5
+ }
6
+ exports.Cache = Cache;
7
+ //# sourceMappingURL=Cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../Cache/Cache.ts"],"names":[],"mappings":";;;AAAA,MAAsB,KAAK;CAY1B;AAZD,sBAYC"}
@@ -0,0 +1,16 @@
1
+ import { Cache } from '@Typetron/Cache';
2
+ export declare class DatabaseStore extends Cache {
3
+ table: string;
4
+ constructor(table: string);
5
+ private get cacheTable();
6
+ private getNameHash;
7
+ has(name: string): Promise<boolean>;
8
+ get<T>(name: string, defaultValue?: T | (() => T | Promise<T>)): Promise<T | undefined>;
9
+ remember<T>(name: string, defaultValue?: T | (() => T | Promise<T>), durationInSeconds?: number): Promise<T | undefined>;
10
+ set(name: string, value: any, durationInSeconds?: number): Promise<void>;
11
+ delete(name: string): Promise<void>;
12
+ flush(): Promise<void>;
13
+ private getDefaultValue;
14
+ private makeSureTheTableExists;
15
+ }
16
+ //# sourceMappingURL=DatabaseStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseStore.d.ts","sourceRoot":"","sources":["../../../Cache/Stores/DatabaseStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAOvC,qBAAa,aAAc,SAAQ,KAAK;IACjB,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;IAIhC,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,WAAW;IAIb,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAqBvF,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAYxH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAId,eAAe;YAQf,sBAAsB;CAwBvC"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatabaseStore = void 0;
4
+ const Cache_1 = require("@Typetron/Cache");
5
+ const Database_1 = require("@Typetron/Database");
6
+ const utils_1 = require("@Typetron/Support/utils");
7
+ const crypto_1 = require("crypto");
8
+ const Create_1 = require("@Typetron/Database/Drivers/SQLite/Create");
9
+ class DatabaseStore extends Cache_1.Cache {
10
+ constructor(table) {
11
+ super();
12
+ this.table = table;
13
+ }
14
+ get cacheTable() {
15
+ return new Database_1.Query().table(this.table);
16
+ }
17
+ getNameHash(name) {
18
+ return crypto_1.createHash('sha1').update(name).digest('hex');
19
+ }
20
+ async has(name) {
21
+ const row = await this.cacheTable.where('name', this.getNameHash(name)).first();
22
+ return !!row;
23
+ }
24
+ async get(name, defaultValue) {
25
+ if (!await Database_1.Query.connection.driver.tableExists(this.table)) {
26
+ return undefined;
27
+ }
28
+ const row = await this.cacheTable.where('name', this.getNameHash(name)).first();
29
+ if (!row) {
30
+ return this.getDefaultValue(defaultValue);
31
+ }
32
+ const currentTime = Date.now();
33
+ if (row.date && row.date < currentTime) {
34
+ await this.delete(name);
35
+ return this.getDefaultValue(defaultValue);
36
+ }
37
+ return utils_1.JSONSafeParse(String(row.value));
38
+ }
39
+ async remember(name, defaultValue, durationInSeconds) {
40
+ const value = await this.get(name);
41
+ if (!value) {
42
+ const newValue = await this.getDefaultValue(defaultValue);
43
+ await this.set(name, newValue, durationInSeconds);
44
+ return newValue;
45
+ }
46
+ return value;
47
+ }
48
+ async set(name, value, durationInSeconds) {
49
+ await this.makeSureTheTableExists();
50
+ const expirationTime = durationInSeconds ? Date.now() + durationInSeconds * 1000 : undefined;
51
+ const serializedValue = JSON.stringify(value);
52
+ const existing = await this.cacheTable.where('name', this.getNameHash(name)).first();
53
+ if (existing) {
54
+ await this.cacheTable.where('name', this.getNameHash(name)).update({
55
+ value: serializedValue,
56
+ date: expirationTime
57
+ });
58
+ }
59
+ else {
60
+ await this.cacheTable.insert({
61
+ name: this.getNameHash(name),
62
+ value: serializedValue,
63
+ date: expirationTime
64
+ });
65
+ }
66
+ }
67
+ async delete(name) {
68
+ await this.cacheTable.where('name', this.getNameHash(name)).delete();
69
+ }
70
+ async flush() {
71
+ await this.cacheTable.delete();
72
+ }
73
+ async getDefaultValue(defaultValue) {
74
+ const valueFunction = typeof defaultValue === 'function'
75
+ ? defaultValue
76
+ : () => defaultValue;
77
+ return valueFunction();
78
+ }
79
+ async makeSureTheTableExists() {
80
+ if (!await Database_1.Query.connection.driver.tableExists(this.table)) {
81
+ const createStatement = new Create_1.Create(this.table, [
82
+ {
83
+ name: 'name',
84
+ type: 'string',
85
+ primaryKey: true,
86
+ nullable: true,
87
+ },
88
+ {
89
+ name: 'value',
90
+ type: 'string',
91
+ nullable: true,
92
+ },
93
+ {
94
+ name: 'date',
95
+ type: 'integer',
96
+ nullable: true,
97
+ },
98
+ ]);
99
+ await Database_1.Query.connection.driver.run(createStatement.toSQL());
100
+ }
101
+ }
102
+ }
103
+ exports.DatabaseStore = DatabaseStore;
104
+ //# sourceMappingURL=DatabaseStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseStore.js","sourceRoot":"","sources":["../../../Cache/Stores/DatabaseStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Cache } from '@Typetron/Cache';
2
+ import { Storage } from '@Typetron/Storage';
3
+ export declare class FileStore extends Cache {
4
+ storage: Storage;
5
+ directory: string;
6
+ constructor(storage: Storage, directory: string);
7
+ has(name: string): Promise<boolean>;
8
+ get<T>(name: string, defaultValue?: T | (() => T | Promise<T>)): Promise<T | undefined>;
9
+ remember<T>(name: string, defaultValue?: T | (() => T | Promise<T>), durationInSeconds?: number): Promise<T | undefined>;
10
+ set(name: string, value: any, durationInSeconds?: number): Promise<void>;
11
+ delete(name: string): Promise<void>;
12
+ flush(): Promise<void>;
13
+ private path;
14
+ private getDefaultValue;
15
+ }
16
+ //# sourceMappingURL=FileStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileStore.d.ts","sourceRoot":"","sources":["../../../Cache/Stores/FileStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAM3C,qBAAa,SAAU,SAAQ,KAAK;IACb,OAAO,EAAE,OAAO;IAAS,SAAS,EAAE,MAAM;gBAA1C,OAAO,EAAE,OAAO,EAAS,SAAS,EAAE,MAAM;IAIvD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAInC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAavF,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAYxH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,OAAO,CAAC,IAAI;YAKE,eAAe;CAOhC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FileStore = void 0;
7
+ const Cache_1 = require("@Typetron/Cache");
8
+ const node_crypto_1 = require("node:crypto");
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const utils_1 = require("@Typetron/Support/utils");
11
+ class FileStore extends Cache_1.Cache {
12
+ constructor(storage, directory) {
13
+ super();
14
+ this.storage = storage;
15
+ this.directory = directory;
16
+ }
17
+ async has(name) {
18
+ return await this.storage.exists(this.path(name));
19
+ }
20
+ async get(name, defaultValue) {
21
+ const item = await this.storage.read(this.path(name))
22
+ .then(async (data) => utils_1.JSONSafeParse(data.toString()) ?? { value: await this.getDefaultValue(defaultValue) })
23
+ .catch(async () => ({ value: await this.getDefaultValue(defaultValue) }));
24
+ if (item['date'] && item['date'] < new Date().getTime()) {
25
+ await this.delete(name);
26
+ return this.getDefaultValue(defaultValue);
27
+ }
28
+ return item['value'];
29
+ }
30
+ async remember(name, defaultValue, durationInSeconds) {
31
+ const data = await this.get(name);
32
+ if (data !== undefined) {
33
+ return data;
34
+ }
35
+ const value = await this.getDefaultValue(defaultValue);
36
+ await this.set(name, value, durationInSeconds);
37
+ return value;
38
+ }
39
+ async set(name, value, durationInSeconds) {
40
+ await this.storage.put(this.path(name), JSON.stringify({
41
+ value,
42
+ date: durationInSeconds ? Date.now() + durationInSeconds * 1000 : undefined
43
+ }));
44
+ }
45
+ async delete(name) {
46
+ await this.storage.delete(this.path(name));
47
+ }
48
+ async flush() {
49
+ await this.storage.deleteDirectory(this.directory);
50
+ }
51
+ path(key) {
52
+ const hashKey = node_crypto_1.createHash('sha1').update(key).digest('hex');
53
+ return node_path_1.default.join(this.directory, '/', hashKey);
54
+ }
55
+ async getDefaultValue(defaultValue) {
56
+ const valueFunction = typeof defaultValue === 'function'
57
+ ? defaultValue
58
+ : () => defaultValue;
59
+ return valueFunction();
60
+ }
61
+ }
62
+ exports.FileStore = FileStore;
63
+ //# sourceMappingURL=FileStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileStore.js","sourceRoot":"","sources":["../../../Cache/Stores/FileStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Cache } from '@Typetron/Cache';
2
+ import { CacheItem } from '@Typetron/Cache/types';
3
+ export declare class MemoryStore extends Cache {
4
+ cache: Map<string, CacheItem<unknown>>;
5
+ has(name: string): Promise<boolean>;
6
+ get<T>(name: string, defaultValue?: T | (() => T | Promise<T>)): Promise<T | undefined>;
7
+ remember<T>(name: string, defaultValue?: T | (() => T | Promise<T>), durationInSeconds?: number): Promise<T | undefined>;
8
+ set(name: string, value: any, durationInSeconds?: number): Promise<void>;
9
+ delete(name: string): Promise<void>;
10
+ flush(): Promise<void>;
11
+ private getDefaultValue;
12
+ }
13
+ //# sourceMappingURL=MemoryStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryStore.d.ts","sourceRoot":"","sources":["../../../Cache/Stores/MemoryStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,qBAAa,WAAY,SAAQ,KAAK;IAC3B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAY;IAEnD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBnC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAWvF,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAYxH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAId,eAAe;CAOhC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryStore = void 0;
4
+ const Cache_1 = require("@Typetron/Cache");
5
+ class MemoryStore extends Cache_1.Cache {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.cache = new Map();
9
+ }
10
+ async has(name) {
11
+ const cacheItem = this.cache.get(name);
12
+ if (!cacheItem) {
13
+ return false;
14
+ }
15
+ const currentTime = Date.now();
16
+ if (cacheItem.date && cacheItem.date < currentTime) {
17
+ this.cache.delete(name);
18
+ return false;
19
+ }
20
+ return true;
21
+ }
22
+ async get(name, defaultValue) {
23
+ const cacheItem = this.cache.get(name);
24
+ if (!await this.has(name)) {
25
+ return this.getDefaultValue(defaultValue);
26
+ }
27
+ return cacheItem.value;
28
+ }
29
+ // return (cacheItem as CacheItem<T>).value as T
30
+ async remember(name, defaultValue, durationInSeconds) {
31
+ const cacheItem = this.cache.get(name);
32
+ if (await this.has(name)) {
33
+ return cacheItem.value;
34
+ }
35
+ const value = await this.getDefaultValue(defaultValue);
36
+ await this.set(name, value, durationInSeconds);
37
+ return value;
38
+ }
39
+ async set(name, value, durationInSeconds) {
40
+ const expirationTime = durationInSeconds ? Date.now() + durationInSeconds * 1000 : Infinity;
41
+ this.cache.set(name, {
42
+ value: value,
43
+ date: expirationTime
44
+ });
45
+ }
46
+ async delete(name) {
47
+ this.cache.delete(name);
48
+ }
49
+ async flush() {
50
+ this.cache.clear();
51
+ }
52
+ async getDefaultValue(defaultValue) {
53
+ const valueFunction = typeof defaultValue === 'function'
54
+ ? defaultValue
55
+ : () => defaultValue;
56
+ return valueFunction();
57
+ }
58
+ }
59
+ exports.MemoryStore = MemoryStore;
60
+ //# sourceMappingURL=MemoryStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryStore.js","sourceRoot":"","sources":["../../../Cache/Stores/MemoryStore.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAGvC,MAAa,WAAY,SAAQ,aAAK;IAAtC;;QACW,UAAK,GAAoC,IAAI,GAAG,EAAE,CAAA;IAkE7D,CAAC;IAhEG,KAAK,CAAC,GAAG,CAAC,IAAY;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEtC,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,KAAK,CAAA;SACf;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAE9B,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,GAAG,WAAW,EAAE;YAChD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACvB,OAAO,KAAK,CAAA;SACf;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,IAAY,EAAE,YAAyC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEtC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;SAC5C;QAED,OAAO,SAAU,CAAC,KAAU,CAAA;IAChC,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,QAAQ,CAAI,IAAY,EAAE,YAAyC,EAAE,iBAA0B;QACjG,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEtC,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO,SAAU,CAAC,KAAU,CAAA;SAC/B;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;QACtD,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAA;QAC9C,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,KAAU,EAAE,iBAA0B;QAC1D,MAAM,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;QAE3F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;YACjB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,cAAc;SACvB,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAI,YAA2C;QACxE,MAAM,aAAa,GAAG,OAAO,YAAY,KAAK,UAAU;YACpD,CAAC,CAAC,YAAoC;YACtC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAA;QAExB,OAAO,aAAa,EAAE,CAAA;IAC1B,CAAC;CACJ;AAnED,kCAmEC"}
@@ -0,0 +1,6 @@
1
+ export * from './types';
2
+ export * from './Cache';
3
+ export * from './Stores/MemoryStore';
4
+ export * from './Stores/FileStore';
5
+ export * from './Stores/DatabaseStore';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../Cache/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA"}
package/Cache/index.js ADDED
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./types"), exports);
14
+ __exportStar(require("./Cache"), exports);
15
+ __exportStar(require("./Stores/MemoryStore"), exports);
16
+ __exportStar(require("./Stores/FileStore"), exports);
17
+ __exportStar(require("./Stores/DatabaseStore"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../Cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAuB;AACvB,0CAAuB;AACvB,uDAAoC;AACpC,qDAAkC;AAClC,yDAAsC"}
@@ -0,0 +1,5 @@
1
+ export interface CacheItem<T> {
2
+ value?: T;
3
+ date?: number;
4
+ }
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../Cache/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS,CAAC,CAAC;IACxB,KAAK,CAAC,EAAE,CAAC,CAAA;IACT,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB"}
package/Cache/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../Cache/types.ts"],"names":[],"mappings":""}
@@ -1,9 +1,9 @@
1
- import { Constructor } from '../Support';
2
- import { BaseResolver } from './Resolver';
3
- import { Container } from './Container';
4
- export declare class ClassResolver extends BaseResolver {
5
- canResolve<T>(abstract: Constructor<T>): boolean;
6
- resolve<T>(abstract: Constructor<T>, parametersValues: object[]): T | Promise<T>;
7
- reload<T>(abstract: Constructor<T>, concrete: T, container?: Container): T;
8
- }
1
+ import { Constructor } from '../Support';
2
+ import { BaseResolver } from './Resolver';
3
+ import { Container } from './Container';
4
+ export declare class ClassResolver extends BaseResolver {
5
+ canResolve<T>(abstract: Constructor<T>): boolean;
6
+ resolve<T>(abstract: Constructor<T>, parametersValues: object[]): T | Promise<T>;
7
+ reload<T>(abstract: Constructor<T>, concrete: T, container?: Container): T;
8
+ }
9
9
  //# sourceMappingURL=ClassResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClassResolver.d.ts","sourceRoot":"","sources":["../../Container/ClassResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,qBAAa,aAAc,SAAQ,YAAY;IAE3C,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO;IAIhD,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE;IA2D/D,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,GAAE,SAA0B,GAAG,CAAC;CAqB7F"}
1
+ {"version":3,"file":"ClassResolver.d.ts","sourceRoot":"","sources":["../../Container/ClassResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,qBAAa,aAAc,SAAQ,YAAY;IAC3C,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO;IAIhD,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE;IAiE/D,MAAM,CAAC,CAAC,EACJ,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EACxB,QAAQ,EAAE,CAAC,EACX,SAAS,GAAE,SAA0B,GACtC,CAAC;CAyBP"}
@@ -1,88 +1,93 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClassResolver = void 0;
4
- const Resolver_1 = require("./Resolver");
5
- const Metadata_1 = require("./Metadata");
6
- class ClassResolver extends Resolver_1.BaseResolver {
7
- canResolve(abstract) {
8
- return abstract.prototype && abstract.prototype.constructor.name;
9
- }
10
- resolve(abstract, parametersValues) {
11
- const parametersTypes = Reflect.getMetadata('design:paramtypes', abstract) || [];
12
- const parameters = parametersTypes.map((parameterType, index) => {
13
- if (parametersValues[index]) {
14
- return parametersValues[index];
15
- }
16
- if (parameterType.name === 'Object' && parametersValues[index]) {
17
- parameterType = parametersValues[index]; // || this.getParameterValue(abstract, index);
18
- }
19
- return this.container.get(parameterType);
20
- });
21
- const instance = new abstract(...parameters);
22
- const metadata = Metadata_1.InjectableMetadata.get(abstract);
23
- let asyncDependencies = 0;
24
- let resolve;
25
- let reject;
26
- for (const dependency in metadata.dependencies) {
27
- const dependencyAbstract = metadata.dependencies[dependency];
28
- if (!dependencyAbstract) {
29
- continue;
30
- }
31
- const value = this.container.get(dependencyAbstract);
32
- if (value instanceof Promise) {
33
- asyncDependencies++;
34
- value.then(resolvedValue => {
35
- instance[dependency] = resolvedValue;
36
- asyncDependencies--;
37
- if (!asyncDependencies) {
38
- resolve(instance);
39
- }
40
- }).catch(error => {
41
- reject(error);
42
- });
43
- }
44
- else {
45
- instance[dependency] = value;
46
- }
47
- }
48
- if (asyncDependencies) {
49
- return new Promise((resolveFunction, rejectFunction) => {
50
- resolve = resolveFunction;
51
- reject = rejectFunction;
52
- });
53
- }
54
- return instance;
55
- }
56
- // TODO figure out how to use this better
57
- // private getParameterValue<T>(abstract: Constructor<T>, index: number) {
58
- // const injectMetadata = Reflect.getMetadata('container:inject', abstract);
59
- // if (!injectMetadata) {
60
- // throw new Error(`No binding found for parameter ${index} in '${abstract.name}'`);
61
- // }
62
- // const value = injectMetadata.find((metadata: any) => metadata.index === index);
63
- // return value.abstract;
64
- // }
65
- reload(abstract, concrete, container = this.container) {
66
- const metadata = Metadata_1.InjectableMetadata.get(abstract);
67
- for (const dependencyName in metadata.dependencies) {
68
- if (!metadata.dependencies[dependencyName]) {
69
- continue;
70
- }
71
- const dependency = metadata.dependencies[dependencyName];
72
- if (!dependency) {
73
- continue;
74
- }
75
- if (typeof dependency === 'symbol') {
76
- concrete[dependencyName] = container.get(dependency);
77
- continue;
78
- }
79
- const dependencyMetadata = Metadata_1.InjectableMetadata.get(dependency);
80
- if (dependencyMetadata.scope === Metadata_1.Scope.REQUEST) {
81
- concrete[dependencyName] = container.get(dependency);
82
- }
83
- }
84
- return concrete;
85
- }
86
- }
87
- exports.ClassResolver = ClassResolver;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClassResolver = void 0;
4
+ const Resolver_1 = require("./Resolver");
5
+ const Metadata_1 = require("./Metadata");
6
+ const Metadata_2 = require("@Typetron/Support/Metadata");
7
+ class ClassResolver extends Resolver_1.BaseResolver {
8
+ canResolve(abstract) {
9
+ return abstract.prototype && abstract.prototype.constructor.name;
10
+ }
11
+ resolve(abstract, parametersValues) {
12
+ // TODO improve this since it looks very hard to write next time
13
+ const parametersTypes = Metadata_2.ParametersTypesMetadata.get(abstract).parameters
14
+ ?? (Metadata_2.ParametersTypesMetadata.get(abstract).parameters = Reflect.getMetadata('design:paramtypes', abstract) ?? []);
15
+ const parameters = parametersTypes.map((parameterType, index) => {
16
+ if (parametersValues[index]) {
17
+ return parametersValues[index];
18
+ }
19
+ if (parameterType.name === 'Object' && parametersValues[index]) {
20
+ parameterType = parametersValues[index]; // || this.getParameterValue(abstract, index);
21
+ }
22
+ return this.container.get(parameterType);
23
+ });
24
+ const instance = new abstract(...parameters);
25
+ const metadata = Metadata_1.InjectableMetadata.get(abstract);
26
+ let asyncDependencies = 0;
27
+ let resolve;
28
+ let reject;
29
+ for (const dependency in metadata.dependencies) {
30
+ const dependencyAbstract = metadata.dependencies[dependency];
31
+ if (!dependencyAbstract) {
32
+ continue;
33
+ }
34
+ const value = this.container.get(dependencyAbstract);
35
+ if (value instanceof Promise) {
36
+ asyncDependencies++;
37
+ value
38
+ .then((resolvedValue) => {
39
+ instance[dependency] = resolvedValue;
40
+ asyncDependencies--;
41
+ if (!asyncDependencies) {
42
+ resolve(instance);
43
+ }
44
+ })
45
+ .catch((error) => {
46
+ reject(error);
47
+ });
48
+ }
49
+ else {
50
+ instance[dependency] = value;
51
+ }
52
+ }
53
+ if (asyncDependencies) {
54
+ return new Promise((resolveFunction, rejectFunction) => {
55
+ resolve = resolveFunction;
56
+ reject = rejectFunction;
57
+ });
58
+ }
59
+ return instance;
60
+ }
61
+ // TODO figure out how to use this better
62
+ // private getParameterValue<T>(abstract: Constructor<T>, index: number) {
63
+ // const injectMetadata = Reflect.getMetadata('container:inject', abstract);
64
+ // if (!injectMetadata) {
65
+ // throw new Error(`No binding found for parameter ${index} in '${abstract.name}'`);
66
+ // }
67
+ // const value = injectMetadata.find((metadata: any) => metadata.index === index);
68
+ // return value.abstract;
69
+ // }
70
+ reload(abstract, concrete, container = this.container) {
71
+ const metadata = Metadata_1.InjectableMetadata.get(abstract);
72
+ for (const dependencyName in metadata.dependencies) {
73
+ if (!metadata.dependencies[dependencyName]) {
74
+ continue;
75
+ }
76
+ const dependency = metadata.dependencies[dependencyName];
77
+ if (!dependency) {
78
+ continue;
79
+ }
80
+ if (typeof dependency === 'symbol') {
81
+ concrete[dependencyName] = container.get(dependency);
82
+ continue;
83
+ }
84
+ const dependencyMetadata = Metadata_1.InjectableMetadata.get(dependency);
85
+ if (dependencyMetadata.scope === Metadata_1.Scope.REQUEST) {
86
+ concrete[dependencyName] = container.get(dependency);
87
+ }
88
+ }
89
+ return concrete;
90
+ }
91
+ }
92
+ exports.ClassResolver = ClassResolver;
88
93
  //# sourceMappingURL=ClassResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClassResolver.js","sourceRoot":"","sources":["../../Container/ClassResolver.ts"],"names":[],"mappings":";;;AACA,yCAAyC;AACzC,yCAAsD;AAGtD,MAAa,aAAc,SAAQ,uBAAY;IAE3C,UAAU,CAAI,QAAwB;QAClC,OAAO,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAA;IACpE,CAAC;IAED,OAAO,CAAI,QAAwB,EAAE,gBAA0B;QAC3D,MAAM,eAAe,GAAkB,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAA;QAE/F,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE;YAC5D,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;gBACzB,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAA;aACjC;YACD,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;gBAC5D,aAAa,GAAI,gBAAgB,CAAC,KAAK,CAAiB,CAAA,CAAC,8CAA8C;aAC1G;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAA;QAE5C,MAAM,QAAQ,GAAG,6BAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,iBAAiB,GAAG,CAAC,CAAA;QACzB,IAAI,OAA4C,CAAA;QAChD,IAAI,MAAkC,CAAA;QACtC,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,YAAY,EAAE;YAC5C,MAAM,kBAAkB,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;YAC5D,IAAI,CAAC,kBAAkB,EAAE;gBACrB,SAAQ;aACX;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAe,CAAA;YAClE,IAAI,KAAK,YAAY,OAAO,EAAE;gBAC1B,iBAAiB,EAAE,CAAA;gBACnB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;oBACvB,QAAQ,CAAC,UAAqB,CAAC,GAAG,aAAa,CAAA;oBAC/C,iBAAiB,EAAE,CAAA;oBACnB,IAAI,CAAC,iBAAiB,EAAE;wBACpB,OAAO,CAAC,QAAQ,CAAC,CAAA;qBACpB;gBACL,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBACb,MAAM,CAAC,KAAK,CAAC,CAAA;gBACjB,CAAC,CAAC,CAAA;aACL;iBAAM;gBACH,QAAQ,CAAC,UAAqB,CAAC,GAAG,KAAK,CAAA;aAC1C;SACJ;QACD,IAAI,iBAAiB,EAAE;YACnB,OAAO,IAAI,OAAO,CAAI,CAAC,eAAe,EAAE,cAAc,EAAE,EAAE;gBACtD,OAAO,GAAG,eAAe,CAAA;gBACzB,MAAM,GAAG,cAAc,CAAA;YAC3B,CAAC,CAAC,CAAA;SACL;QAED,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,yCAAyC;IACzC,0EAA0E;IAC1E,gFAAgF;IAChF,6BAA6B;IAC7B,4FAA4F;IAC5F,QAAQ;IACR,sFAAsF;IACtF,6BAA6B;IAC7B,IAAI;IAEJ,MAAM,CAAI,QAAwB,EAAE,QAAW,EAAE,YAAuB,IAAI,CAAC,SAAS;QAClF,MAAM,QAAQ,GAAG,6BAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjD,KAAK,MAAM,cAAc,IAAI,QAAQ,CAAC,YAAY,EAAE;YAChD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE;gBACxC,SAAQ;aACX;YACD,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;YACxD,IAAI,CAAC,UAAU,EAAE;gBACb,SAAQ;aACX;YACD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;gBAChC,QAAQ,CAAC,cAAyB,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAe,CAAA;gBAC7E,SAAQ;aACX;YACD,MAAM,kBAAkB,GAAG,6BAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YAC7D,IAAI,kBAAkB,CAAC,KAAK,KAAK,gBAAK,CAAC,OAAO,EAAE;gBAC5C,QAAQ,CAAC,cAAyB,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAe,CAAA;aAChF;SACJ;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;CACJ;AAtFD,sCAsFC"}
1
+ {"version":3,"file":"ClassResolver.js","sourceRoot":"","sources":["../../Container/ClassResolver.ts"],"names":[],"mappings":"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"}