@typetron/websockets 0.3.9 → 0.3.10

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 (410) hide show
  1. package/Container/ClassResolver.d.ts +9 -0
  2. package/Container/ClassResolver.d.ts.map +1 -0
  3. package/Container/ClassResolver.js +88 -0
  4. package/Container/ClassResolver.js.map +1 -0
  5. package/Container/Container.d.ts +25 -0
  6. package/Container/Container.d.ts.map +1 -0
  7. package/Container/Container.js +122 -0
  8. package/Container/Container.js.map +1 -0
  9. package/Container/Contracts.d.ts +3 -0
  10. package/Container/Contracts.d.ts.map +1 -0
  11. package/Container/Contracts.js +3 -0
  12. package/Container/Contracts.js.map +1 -0
  13. package/Container/Decorators.d.ts +5 -0
  14. package/Container/Decorators.d.ts.map +1 -0
  15. package/Container/Decorators.js +22 -0
  16. package/Container/Decorators.js.map +1 -0
  17. package/Container/Metadata.d.ts +21 -0
  18. package/Container/Metadata.d.ts.map +1 -0
  19. package/Container/Metadata.js +19 -0
  20. package/Container/Metadata.js.map +1 -0
  21. package/Container/Resolver.d.ts +19 -0
  22. package/Container/Resolver.d.ts.map +1 -0
  23. package/Container/Resolver.js +16 -0
  24. package/Container/Resolver.js.map +1 -0
  25. package/Container/index.d.ts +6 -0
  26. package/Container/index.d.ts.map +1 -0
  27. package/Container/index.js +18 -0
  28. package/Container/index.js.map +1 -0
  29. package/Database/Connection.d.ts +24 -0
  30. package/Database/Connection.d.ts.map +1 -0
  31. package/Database/Connection.js +43 -0
  32. package/Database/Connection.js.map +1 -0
  33. package/Database/Decorators.d.ts +32 -0
  34. package/Database/Decorators.d.ts.map +1 -0
  35. package/Database/Decorators.js +114 -0
  36. package/Database/Decorators.js.map +1 -0
  37. package/Database/Drivers/DatabaseDriver.d.ts +31 -0
  38. package/Database/Drivers/DatabaseDriver.d.ts.map +1 -0
  39. package/Database/Drivers/DatabaseDriver.js +7 -0
  40. package/Database/Drivers/DatabaseDriver.js.map +1 -0
  41. package/Database/Drivers/MySQL/MysqlDriver.d.ts +38 -0
  42. package/Database/Drivers/MySQL/MysqlDriver.d.ts.map +1 -0
  43. package/Database/Drivers/MySQL/MysqlDriver.js +81 -0
  44. package/Database/Drivers/MySQL/MysqlDriver.js.map +1 -0
  45. package/Database/Drivers/MySQL/Schema.d.ts +6 -0
  46. package/Database/Drivers/MySQL/Schema.d.ts.map +1 -0
  47. package/Database/Drivers/MySQL/Schema.js +12 -0
  48. package/Database/Drivers/MySQL/Schema.js.map +1 -0
  49. package/Database/Drivers/SQL/Schema.d.ts +12 -0
  50. package/Database/Drivers/SQL/Schema.d.ts.map +1 -0
  51. package/Database/Drivers/SQL/Schema.js +100 -0
  52. package/Database/Drivers/SQL/Schema.js.map +1 -0
  53. package/Database/Drivers/SQL/Statements/Alter.d.ts +8 -0
  54. package/Database/Drivers/SQL/Statements/Alter.d.ts.map +1 -0
  55. package/Database/Drivers/SQL/Statements/Alter.js +25 -0
  56. package/Database/Drivers/SQL/Statements/Alter.js.map +1 -0
  57. package/Database/Drivers/SQL/Statements/BaseStatement.d.ts +13 -0
  58. package/Database/Drivers/SQL/Statements/BaseStatement.d.ts.map +1 -0
  59. package/Database/Drivers/SQL/Statements/BaseStatement.js +47 -0
  60. package/Database/Drivers/SQL/Statements/BaseStatement.js.map +1 -0
  61. package/Database/Drivers/SQL/Statements/Create.d.ts +7 -0
  62. package/Database/Drivers/SQL/Statements/Create.d.ts.map +1 -0
  63. package/Database/Drivers/SQL/Statements/Create.js +22 -0
  64. package/Database/Drivers/SQL/Statements/Create.js.map +1 -0
  65. package/Database/Drivers/SQL/Statements/Delete.d.ts +6 -0
  66. package/Database/Drivers/SQL/Statements/Delete.d.ts.map +1 -0
  67. package/Database/Drivers/SQL/Statements/Delete.js +22 -0
  68. package/Database/Drivers/SQL/Statements/Delete.js.map +1 -0
  69. package/Database/Drivers/SQL/Statements/Insert.d.ts +7 -0
  70. package/Database/Drivers/SQL/Statements/Insert.d.ts.map +1 -0
  71. package/Database/Drivers/SQL/Statements/Insert.js +24 -0
  72. package/Database/Drivers/SQL/Statements/Insert.js.map +1 -0
  73. package/Database/Drivers/SQL/Statements/Select.d.ts +8 -0
  74. package/Database/Drivers/SQL/Statements/Select.d.ts.map +1 -0
  75. package/Database/Drivers/SQL/Statements/Select.js +54 -0
  76. package/Database/Drivers/SQL/Statements/Select.js.map +1 -0
  77. package/Database/Drivers/SQL/Statements/Update.d.ts +7 -0
  78. package/Database/Drivers/SQL/Statements/Update.d.ts.map +1 -0
  79. package/Database/Drivers/SQL/Statements/Update.js +35 -0
  80. package/Database/Drivers/SQL/Statements/Update.js.map +1 -0
  81. package/Database/Drivers/SQLite/Schema.d.ts +6 -0
  82. package/Database/Drivers/SQLite/Schema.d.ts.map +1 -0
  83. package/Database/Drivers/SQLite/Schema.js +12 -0
  84. package/Database/Drivers/SQLite/Schema.js.map +1 -0
  85. package/Database/Drivers/SQLite/SqliteDriver.d.ts +39 -0
  86. package/Database/Drivers/SQLite/SqliteDriver.d.ts.map +1 -0
  87. package/Database/Drivers/SQLite/SqliteDriver.js +98 -0
  88. package/Database/Drivers/SQLite/SqliteDriver.js.map +1 -0
  89. package/Database/Drivers/SchemaContract.d.ts +11 -0
  90. package/Database/Drivers/SchemaContract.d.ts.map +1 -0
  91. package/Database/Drivers/SchemaContract.js +10 -0
  92. package/Database/Drivers/SchemaContract.js.map +1 -0
  93. package/Database/Drivers/Statement.d.ts +9 -0
  94. package/Database/Drivers/Statement.d.ts.map +1 -0
  95. package/Database/Drivers/Statement.js +14 -0
  96. package/Database/Drivers/Statement.js.map +1 -0
  97. package/Database/Drivers/index.d.ts +5 -0
  98. package/Database/Drivers/index.d.ts.map +1 -0
  99. package/Database/Drivers/index.js +17 -0
  100. package/Database/Drivers/index.js.map +1 -0
  101. package/Database/Entity.d.ts +65 -0
  102. package/Database/Entity.d.ts.map +1 -0
  103. package/Database/Entity.js +252 -0
  104. package/Database/Entity.js.map +1 -0
  105. package/Database/EntityNotFoundError.d.ts +6 -0
  106. package/Database/EntityNotFoundError.d.ts.map +1 -0
  107. package/Database/EntityNotFoundError.js +11 -0
  108. package/Database/EntityNotFoundError.js.map +1 -0
  109. package/Database/EntityProxyHandler.d.ts +6 -0
  110. package/Database/EntityProxyHandler.d.ts.map +1 -0
  111. package/Database/EntityProxyHandler.js +31 -0
  112. package/Database/EntityProxyHandler.js.map +1 -0
  113. package/Database/EntityQuery.d.ts +29 -0
  114. package/Database/EntityQuery.d.ts.map +1 -0
  115. package/Database/EntityQuery.js +157 -0
  116. package/Database/EntityQuery.js.map +1 -0
  117. package/Database/Expression.d.ts +6 -0
  118. package/Database/Expression.d.ts.map +1 -0
  119. package/Database/Expression.js +13 -0
  120. package/Database/Expression.js.map +1 -0
  121. package/Database/Fields.d.ts +156 -0
  122. package/Database/Fields.d.ts.map +1 -0
  123. package/Database/Fields.js +549 -0
  124. package/Database/Fields.js.map +1 -0
  125. package/Database/Helpers.d.ts +2 -0
  126. package/Database/Helpers.d.ts.map +1 -0
  127. package/Database/Helpers.js +11 -0
  128. package/Database/Helpers.js.map +1 -0
  129. package/Database/List.d.ts +25 -0
  130. package/Database/List.d.ts.map +1 -0
  131. package/Database/List.js +50 -0
  132. package/Database/List.js.map +1 -0
  133. package/Database/ORM/BaseRelationship.d.ts +8 -0
  134. package/Database/ORM/BaseRelationship.d.ts.map +1 -0
  135. package/Database/ORM/BaseRelationship.js +11 -0
  136. package/Database/ORM/BaseRelationship.js.map +1 -0
  137. package/Database/Query.d.ts +62 -0
  138. package/Database/Query.d.ts.map +1 -0
  139. package/Database/Query.js +263 -0
  140. package/Database/Query.js.map +1 -0
  141. package/Database/Types.d.ts +118 -0
  142. package/Database/Types.d.ts.map +1 -0
  143. package/Database/Types.js +95 -0
  144. package/Database/Types.js.map +1 -0
  145. package/Database/index.d.ts +20 -0
  146. package/Database/index.d.ts.map +1 -0
  147. package/Database/index.js +20 -0
  148. package/Database/index.js.map +1 -0
  149. package/Forms/Decorators.d.ts +7 -0
  150. package/Forms/Decorators.d.ts.map +1 -0
  151. package/Forms/Decorators.js +29 -0
  152. package/Forms/Decorators.js.map +1 -0
  153. package/Forms/Form.d.ts +18 -0
  154. package/Forms/Form.d.ts.map +1 -0
  155. package/Forms/Form.js +70 -0
  156. package/Forms/Form.js.map +1 -0
  157. package/Forms/FormFields.d.ts +10 -0
  158. package/Forms/FormFields.d.ts.map +1 -0
  159. package/Forms/FormFields.js +36 -0
  160. package/Forms/FormFields.js.map +1 -0
  161. package/Forms/index.d.ts +4 -0
  162. package/Forms/index.d.ts.map +1 -0
  163. package/Forms/index.js +16 -0
  164. package/Forms/index.js.map +1 -0
  165. package/Framework/App.d.ts +7 -0
  166. package/Framework/App.d.ts.map +1 -0
  167. package/Framework/App.js +10 -0
  168. package/Framework/App.js.map +1 -0
  169. package/Framework/Application.d.ts +18 -0
  170. package/Framework/Application.d.ts.map +1 -0
  171. package/Framework/Application.js +94 -0
  172. package/Framework/Application.js.map +1 -0
  173. package/Framework/Auth/Auth.d.ts +25 -0
  174. package/Framework/Auth/Auth.d.ts.map +1 -0
  175. package/Framework/Auth/Auth.js +114 -0
  176. package/Framework/Auth/Auth.js.map +1 -0
  177. package/Framework/Auth/Authenticatable.d.ts +7 -0
  178. package/Framework/Auth/Authenticatable.d.ts.map +1 -0
  179. package/Framework/Auth/Authenticatable.js +3 -0
  180. package/Framework/Auth/Authenticatable.js.map +1 -0
  181. package/Framework/Auth/User.d.ts +11 -0
  182. package/Framework/Auth/User.d.ts.map +1 -0
  183. package/Framework/Auth/User.js +38 -0
  184. package/Framework/Auth/User.js.map +1 -0
  185. package/Framework/Auth/index.d.ts +6 -0
  186. package/Framework/Auth/index.d.ts.map +1 -0
  187. package/Framework/Auth/index.js +46 -0
  188. package/Framework/Auth/index.js.map +1 -0
  189. package/Framework/Config/AppConfig.d.ts +19 -0
  190. package/Framework/Config/AppConfig.d.ts.map +1 -0
  191. package/Framework/Config/AppConfig.js +12 -0
  192. package/Framework/Config/AppConfig.js.map +1 -0
  193. package/Framework/Config/AuthConfig.d.ts +9 -0
  194. package/Framework/Config/AuthConfig.d.ts.map +1 -0
  195. package/Framework/Config/AuthConfig.js +8 -0
  196. package/Framework/Config/AuthConfig.js.map +1 -0
  197. package/Framework/Config/BaseConfig.d.ts +7 -0
  198. package/Framework/Config/BaseConfig.d.ts.map +1 -0
  199. package/Framework/Config/BaseConfig.js +13 -0
  200. package/Framework/Config/BaseConfig.js.map +1 -0
  201. package/Framework/Config/DatabaseConfig.d.ts +10 -0
  202. package/Framework/Config/DatabaseConfig.d.ts.map +1 -0
  203. package/Framework/Config/DatabaseConfig.js +25 -0
  204. package/Framework/Config/DatabaseConfig.js.map +1 -0
  205. package/Framework/Config/index.d.ts +5 -0
  206. package/Framework/Config/index.d.ts.map +1 -0
  207. package/Framework/Config/index.js +17 -0
  208. package/Framework/Config/index.js.map +1 -0
  209. package/Framework/Middleware/StaticAssetsMiddleware.d.ts +15 -0
  210. package/Framework/Middleware/StaticAssetsMiddleware.d.ts.map +1 -0
  211. package/Framework/Middleware/StaticAssetsMiddleware.js +105 -0
  212. package/Framework/Middleware/StaticAssetsMiddleware.js.map +1 -0
  213. package/Framework/Provider.d.ts +6 -0
  214. package/Framework/Provider.d.ts.map +1 -0
  215. package/Framework/Provider.js +21 -0
  216. package/Framework/Provider.js.map +1 -0
  217. package/Framework/Providers/DatabaseProvider.d.ts +10 -0
  218. package/Framework/Providers/DatabaseProvider.d.ts.map +1 -0
  219. package/Framework/Providers/DatabaseProvider.js +64 -0
  220. package/Framework/Providers/DatabaseProvider.js.map +1 -0
  221. package/Framework/Providers/WebsocketsProvider.d.ts +13 -0
  222. package/Framework/Providers/WebsocketsProvider.d.ts.map +1 -0
  223. package/Framework/Providers/WebsocketsProvider.js +123 -0
  224. package/Framework/Providers/WebsocketsProvider.js.map +1 -0
  225. package/Framework/Resolvers/AuthResolver.d.ts +6 -0
  226. package/Framework/Resolvers/AuthResolver.d.ts.map +1 -0
  227. package/Framework/Resolvers/AuthResolver.js +15 -0
  228. package/Framework/Resolvers/AuthResolver.js.map +1 -0
  229. package/Framework/Resolvers/EntityResolver.d.ts +10 -0
  230. package/Framework/Resolvers/EntityResolver.d.ts.map +1 -0
  231. package/Framework/Resolvers/EntityResolver.js +41 -0
  232. package/Framework/Resolvers/EntityResolver.js.map +1 -0
  233. package/Framework/Resolvers/FormResolver.d.ts +10 -0
  234. package/Framework/Resolvers/FormResolver.d.ts.map +1 -0
  235. package/Framework/Resolvers/FormResolver.js +33 -0
  236. package/Framework/Resolvers/FormResolver.js.map +1 -0
  237. package/Framework/RootDir.d.ts +3 -0
  238. package/Framework/RootDir.d.ts.map +1 -0
  239. package/Framework/RootDir.js +7 -0
  240. package/Framework/RootDir.js.map +1 -0
  241. package/Framework/index.d.ts +7 -0
  242. package/Framework/index.d.ts.map +1 -0
  243. package/Framework/index.js +19 -0
  244. package/Framework/index.js.map +1 -0
  245. package/Frontend/Websockets/index.d.ts +3 -2
  246. package/Frontend/Websockets/index.d.ts.map +1 -1
  247. package/Frontend/Websockets/index.js +3 -2
  248. package/Frontend/Websockets/index.js.map +1 -1
  249. package/Router/BaseController.d.ts +5 -0
  250. package/Router/BaseController.d.ts.map +1 -0
  251. package/Router/BaseController.js +21 -0
  252. package/Router/BaseController.js.map +1 -0
  253. package/Router/Decorators.d.ts +22 -0
  254. package/Router/Decorators.d.ts.map +1 -0
  255. package/Router/Decorators.js +171 -0
  256. package/Router/Decorators.js.map +1 -0
  257. package/Router/Guard.d.ts +5 -0
  258. package/Router/Guard.d.ts.map +1 -0
  259. package/Router/Guard.js +11 -0
  260. package/Router/Guard.js.map +1 -0
  261. package/Router/Http/Contracts.d.ts +4 -0
  262. package/Router/Http/Contracts.d.ts.map +1 -0
  263. package/Router/Http/Contracts.js +3 -0
  264. package/Router/Http/Contracts.js.map +1 -0
  265. package/Router/Http/ErrorHandler.d.ts +10 -0
  266. package/Router/Http/ErrorHandler.d.ts.map +1 -0
  267. package/Router/Http/ErrorHandler.js +52 -0
  268. package/Router/Http/ErrorHandler.js.map +1 -0
  269. package/Router/Http/ErrorHandlerInterface.d.ts +6 -0
  270. package/Router/Http/ErrorHandlerInterface.d.ts.map +1 -0
  271. package/Router/Http/ErrorHandlerInterface.js +7 -0
  272. package/Router/Http/ErrorHandlerInterface.js.map +1 -0
  273. package/Router/Http/Errors/HttpError.d.ts +8 -0
  274. package/Router/Http/Errors/HttpError.d.ts.map +1 -0
  275. package/Router/Http/Errors/HttpError.js +16 -0
  276. package/Router/Http/Errors/HttpError.js.map +1 -0
  277. package/Router/Http/Handler.d.ts +16 -0
  278. package/Router/Http/Handler.d.ts.map +1 -0
  279. package/Router/Http/Handler.js +132 -0
  280. package/Router/Http/Handler.js.map +1 -0
  281. package/Router/Http/Request.d.ts +23 -0
  282. package/Router/Http/Request.d.ts.map +1 -0
  283. package/Router/Http/Request.js +152 -0
  284. package/Router/Http/Request.js.map +1 -0
  285. package/Router/Http/Response.d.ts +18 -0
  286. package/Router/Http/Response.d.ts.map +1 -0
  287. package/Router/Http/Response.js +52 -0
  288. package/Router/Http/Response.js.map +1 -0
  289. package/Router/Http/index.d.ts +84 -0
  290. package/Router/Http/index.d.ts.map +1 -0
  291. package/Router/Http/index.js +100 -0
  292. package/Router/Http/index.js.map +1 -0
  293. package/Router/Metadata.d.ts +32 -0
  294. package/Router/Metadata.d.ts.map +1 -0
  295. package/Router/Metadata.js +26 -0
  296. package/Router/Metadata.js.map +1 -0
  297. package/Router/Middleware.d.ts +6 -0
  298. package/Router/Middleware.d.ts.map +1 -0
  299. package/Router/Middleware.js +3 -0
  300. package/Router/Middleware.js.map +1 -0
  301. package/Router/Route.d.ts +24 -0
  302. package/Router/Route.d.ts.map +1 -0
  303. package/Router/Route.js +111 -0
  304. package/Router/Route.js.map +1 -0
  305. package/Router/RouteNotFoundError.d.ts +4 -0
  306. package/Router/RouteNotFoundError.d.ts.map +1 -0
  307. package/Router/RouteNotFoundError.js +10 -0
  308. package/Router/RouteNotFoundError.js.map +1 -0
  309. package/Router/Router.d.ts +13 -0
  310. package/Router/Router.d.ts.map +1 -0
  311. package/Router/Router.js +33 -0
  312. package/Router/Router.js.map +1 -0
  313. package/Router/Websockets/Handler.d.ts +13 -0
  314. package/Router/Websockets/Handler.d.ts.map +1 -0
  315. package/Router/Websockets/Handler.js +60 -0
  316. package/Router/Websockets/Handler.js.map +1 -0
  317. package/Router/Websockets/WebsocketEvent.d.ts +16 -0
  318. package/Router/Websockets/WebsocketEvent.d.ts.map +1 -0
  319. package/Router/Websockets/WebsocketEvent.js +54 -0
  320. package/Router/Websockets/WebsocketEvent.js.map +1 -0
  321. package/Router/Websockets/index.d.ts +17 -0
  322. package/Router/Websockets/index.d.ts.map +1 -0
  323. package/Router/Websockets/index.js +58 -0
  324. package/Router/Websockets/index.js.map +1 -0
  325. package/Router/Websockets/types.d.ts +4 -0
  326. package/Router/Websockets/types.d.ts.map +1 -1
  327. package/Router/index.d.ts +7 -0
  328. package/Router/index.d.ts.map +1 -0
  329. package/Router/index.js +19 -0
  330. package/Router/index.js.map +1 -0
  331. package/Storage/File.d.ts +12 -0
  332. package/Storage/File.d.ts.map +1 -0
  333. package/Storage/File.js +47 -0
  334. package/Storage/File.js.map +1 -0
  335. package/Storage/Image.d.ts +4 -0
  336. package/Storage/Image.d.ts.map +1 -0
  337. package/Storage/Image.js +8 -0
  338. package/Storage/Image.js.map +1 -0
  339. package/Storage/Storage.d.ts +13 -0
  340. package/Storage/Storage.d.ts.map +1 -0
  341. package/Storage/Storage.js +111 -0
  342. package/Storage/Storage.js.map +1 -0
  343. package/Storage/index.d.ts +5 -0
  344. package/Storage/index.d.ts.map +1 -0
  345. package/Storage/index.js +17 -0
  346. package/Storage/index.js.map +1 -0
  347. package/Storage/utils.d.ts +6 -0
  348. package/Storage/utils.d.ts.map +1 -0
  349. package/Storage/utils.js +21 -0
  350. package/Storage/utils.js.map +1 -0
  351. package/Support/Array.d.ts +25 -0
  352. package/Support/Array.d.ts.map +1 -0
  353. package/Support/Array.js +91 -0
  354. package/Support/Array.js.map +1 -0
  355. package/Support/Math.d.ts +7 -0
  356. package/Support/Math.d.ts.map +1 -0
  357. package/Support/Math.js +8 -0
  358. package/Support/Math.js.map +1 -0
  359. package/Support/Metadata.d.ts +15 -0
  360. package/Support/Metadata.d.ts.map +1 -0
  361. package/Support/Metadata.js +21 -0
  362. package/Support/Metadata.js.map +1 -0
  363. package/Support/String.d.ts +12 -0
  364. package/Support/String.d.ts.map +1 -0
  365. package/Support/String.js +24 -0
  366. package/Support/String.js.map +1 -0
  367. package/Support/index.d.ts +14 -0
  368. package/Support/index.d.ts.map +1 -0
  369. package/Support/index.js +6 -0
  370. package/Support/index.js.map +1 -0
  371. package/Validation/Rule.d.ts +7 -0
  372. package/Validation/Rule.d.ts.map +1 -0
  373. package/Validation/Rule.js +7 -0
  374. package/Validation/Rule.js.map +1 -0
  375. package/Validation/RuleInterface.d.ts +7 -0
  376. package/Validation/RuleInterface.d.ts.map +1 -0
  377. package/Validation/RuleInterface.js +3 -0
  378. package/Validation/RuleInterface.js.map +1 -0
  379. package/Validation/Rules/Email.d.ts +4 -0
  380. package/Validation/Rules/Email.d.ts.map +1 -0
  381. package/Validation/Rules/Email.js +21 -0
  382. package/Validation/Rules/Email.js.map +1 -0
  383. package/Validation/Rules/MaxLength.d.ts +4 -0
  384. package/Validation/Rules/MaxLength.d.ts.map +1 -0
  385. package/Validation/Rules/MaxLength.js +20 -0
  386. package/Validation/Rules/MaxLength.js.map +1 -0
  387. package/Validation/Rules/MinLength.d.ts +4 -0
  388. package/Validation/Rules/MinLength.d.ts.map +1 -0
  389. package/Validation/Rules/MinLength.js +20 -0
  390. package/Validation/Rules/MinLength.js.map +1 -0
  391. package/Validation/Rules/Optional.d.ts +4 -0
  392. package/Validation/Rules/Optional.d.ts.map +1 -0
  393. package/Validation/Rules/Optional.js +20 -0
  394. package/Validation/Rules/Optional.js.map +1 -0
  395. package/Validation/Rules/Required.d.ts +4 -0
  396. package/Validation/Rules/Required.d.ts.map +1 -0
  397. package/Validation/Rules/Required.js +27 -0
  398. package/Validation/Rules/Required.js.map +1 -0
  399. package/Validation/Validator.d.ts +12 -0
  400. package/Validation/Validator.d.ts.map +1 -0
  401. package/Validation/Validator.js +11 -0
  402. package/Validation/Validator.js.map +1 -0
  403. package/Validation/index.d.ts +10 -0
  404. package/Validation/index.d.ts.map +1 -0
  405. package/Validation/index.js +22 -0
  406. package/Validation/index.js.map +1 -0
  407. package/index.d.ts +4 -1
  408. package/index.d.ts.map +1 -1
  409. package/index.js.map +1 -1
  410. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Types.js","sourceRoot":"","sources":["../../../../Database/Types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { ChildKeys, ChildObject, Constructor } from '../Support';
2
+ import { Entity } from './Entity';
3
+ import { BaseRelationship } from './ORM/BaseRelationship';
4
+ export declare type EntityKeys<T extends Entity> = ChildKeys<T, Entity>;
5
+ export declare type EntityColumns<T extends Entity> = {
6
+ [P in EntityKeys<T>]: T[P] extends Function ? never : P;
7
+ }[EntityKeys<T>];
8
+ export declare type EntityObject<T extends Entity> = ChildObject<{
9
+ [P in keyof T]: T[P] extends BaseRelationship<infer U> ? U | number : T[P];
10
+ }, Entity>;
11
+ export declare type EntityConstructor<T extends Entity> = typeof Entity & Constructor<T>;
12
+ export declare type DotNotationProperties<T> = string;
13
+ export * from './Query';
14
+ export * from './Entity';
15
+ export * from './Decorators';
16
+ export * from './Expression';
17
+ export * from './Drivers';
18
+ export * from './Fields';
19
+ export * from './Connection';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../Database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,oBAAY,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAChE,oBAAY,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;KAAG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,KAAK,GAAG,CAAC;CAAE,CAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AAEzH,oBAAY,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,WAAW,CAAC;KACpD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;CAC7E,EAAE,MAAM,CAAC,CAAC;AACX,oBAAY,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI,OAAO,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAEjF,oBAAY,qBAAqB,CAAC,CAAC,IAAI,MAAM,CAAC;AAE9C,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA"}
@@ -0,0 +1,20 @@
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("./Query"), exports);
14
+ __exportStar(require("./Entity"), exports);
15
+ __exportStar(require("./Decorators"), exports);
16
+ __exportStar(require("./Expression"), exports);
17
+ __exportStar(require("./Drivers"), exports);
18
+ __exportStar(require("./Fields"), exports);
19
+ __exportStar(require("./Connection"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Database/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAcA,0CAAuB;AACvB,2CAAwB;AACxB,+CAA4B;AAC5B,+CAA4B;AAC5B,4CAAyB;AACzB,2CAAwB;AACxB,+CAA4B"}
@@ -0,0 +1,7 @@
1
+ import { RuleInterface } from '../Validation';
2
+ import { Type } from '../Support';
3
+ import { Form } from './Form';
4
+ export declare const FormMetadataKey = "form:fields";
5
+ export declare function Field<T extends Form>(name?: string): (target: T, property: string) => void;
6
+ export declare function Rules(...rules: (Type<RuleInterface> | ((...args: any[]) => Type<RuleInterface>))[]): (target: Object, property: string) => void;
7
+ //# sourceMappingURL=Decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Decorators.d.ts","sourceRoot":"","sources":["../../../../Forms/Decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,eAAO,MAAM,eAAe,gBAAgB,CAAA;AAE5C,wBAAgB,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,YACvB,CAAC,YAAY,MAAM,UAQ9C;AAGD,wBAAgB,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,YACvE,MAAM,YAAY,MAAM,UAQnD"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Rules = exports.Field = exports.FormMetadataKey = void 0;
4
+ const FormFields_1 = require("./FormFields");
5
+ exports.FormMetadataKey = 'form:fields';
6
+ function Field(name) {
7
+ return function (target, property) {
8
+ const fields = Reflect.getMetadata(exports.FormMetadataKey, target.constructor) || {};
9
+ const type = Reflect.getMetadata('design:type', target, property);
10
+ const field = fields[property] || new FormFields_1.FormField(name || property, type);
11
+ field.name = name || property;
12
+ fields[property] = field;
13
+ Reflect.defineMetadata(exports.FormMetadataKey, fields, target.constructor);
14
+ };
15
+ }
16
+ exports.Field = Field;
17
+ // tslint:disable-next-line:no-any
18
+ function Rules(...rules) {
19
+ return function (target, property) {
20
+ const fields = Reflect.getMetadata(exports.FormMetadataKey, target.constructor) || {};
21
+ const type = Reflect.getMetadata('design:type', target, property);
22
+ const field = fields[property] || new FormFields_1.FormField(property, type);
23
+ field.rules = rules;
24
+ fields[property] = field;
25
+ Reflect.defineMetadata(exports.FormMetadataKey, fields, target.constructor);
26
+ };
27
+ }
28
+ exports.Rules = Rules;
29
+ //# sourceMappingURL=Decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Decorators.js","sourceRoot":"","sources":["../../../../Forms/Decorators.ts"],"names":[],"mappings":";;;AAEA,6CAAwC;AAG3B,QAAA,eAAe,GAAG,aAAa,CAAA;AAE5C,SAAgB,KAAK,CAAiB,IAAa;IAC/C,OAAO,UAAS,MAAS,EAAE,QAAgB;QACvC,MAAM,MAAM,GAA+B,OAAO,CAAC,WAAW,CAAC,uBAAe,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QACzG,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,sBAAS,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvE,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,QAAQ,CAAA;QAC7B,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAA;QACxB,OAAO,CAAC,cAAc,CAAC,uBAAe,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;IACvE,CAAC,CAAA;AACL,CAAC;AATD,sBASC;AAED,kCAAkC;AAClC,SAAgB,KAAK,CAAC,GAAG,KAA0E;IAC/F,OAAO,UAAS,MAAc,EAAE,QAAgB;QAC5C,MAAM,MAAM,GAA+B,OAAO,CAAC,WAAW,CAAC,uBAAe,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QACzG,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,sBAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC/D,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;QACnB,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAA;QACxB,OAAO,CAAC,cAAc,CAAC,uBAAe,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;IACvE,CAAC,CAAA;AACL,CAAC;AATD,sBASC"}
@@ -0,0 +1,18 @@
1
+ import { ChildKeys, ChildObject, Constructor } from '../Support';
2
+ import { FormField } from './FormFields';
3
+ export declare type FormFields<T> = ChildObject<T, Form>;
4
+ export declare abstract class Form {
5
+ readonly errors: {
6
+ [key: string]: Record<string, string>;
7
+ };
8
+ static fields<T extends Form>(this: Constructor<T>): Record<ChildKeys<T, Form>, FormField>;
9
+ fields(): Record<never, FormField>;
10
+ valid(): boolean;
11
+ validated(): {
12
+ [key: string]: any;
13
+ };
14
+ value(): Record<string, any>;
15
+ fill(data: Partial<FormFields<this>>): void;
16
+ toJSON(): Record<string, any>;
17
+ }
18
+ //# sourceMappingURL=Form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../../Forms/Form.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,oBAAY,UAAU,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAEjD,8BACsB,IAAI;IAEtB,QAAQ,CAAC,MAAM,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAC,CAAK;IAE7D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC;IAI1F,MAAM;IAIN,KAAK;IAYL,SAAS;;;IAYT,KAAK;IAWL,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAUpC,MAAM;CAGT"}
package/Forms/Form.js ADDED
@@ -0,0 +1,70 @@
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 Form_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.Form = void 0;
11
+ const Decorators_1 = require("./Decorators");
12
+ const Container_1 = require("../Container");
13
+ let Form = Form_1 = class Form {
14
+ constructor() {
15
+ this.errors = {};
16
+ }
17
+ static fields() {
18
+ return Reflect.getMetadata(Decorators_1.FormMetadataKey, this);
19
+ }
20
+ fields() {
21
+ return this.constructor.fields();
22
+ }
23
+ valid() {
24
+ const fields = Object.values(this.fields());
25
+ fields.forEach(field => {
26
+ const errors = field.validate(this[field.name]);
27
+ if (errors) {
28
+ this.errors[field.name] = errors;
29
+ }
30
+ });
31
+ return !Object.keys(this.errors).length;
32
+ }
33
+ validated() {
34
+ const fields = Object.values(this.fields());
35
+ return fields.filter(field => !this.errors[field.name])
36
+ .reduce((obj, field) => {
37
+ const value = this[field.name];
38
+ if (value) {
39
+ obj[field.name] = value;
40
+ }
41
+ return obj;
42
+ }, {});
43
+ }
44
+ value() {
45
+ const fields = Object.values(this.fields());
46
+ // tslint:disable-next-line:no-any
47
+ const value = {};
48
+ fields.forEach(field => {
49
+ value[field.name] = this[field.name];
50
+ });
51
+ return value;
52
+ }
53
+ fill(data) {
54
+ const fields = Object.values(this.fields());
55
+ fields.forEach(field => {
56
+ if (field.name in data) {
57
+ // @ts-ignore
58
+ this[field.name] = data[field.name];
59
+ }
60
+ });
61
+ }
62
+ toJSON() {
63
+ return this.value();
64
+ }
65
+ };
66
+ Form = Form_1 = __decorate([
67
+ Container_1.Injectable(Container_1.Scope.TRANSIENT)
68
+ ], Form);
69
+ exports.Form = Form;
70
+ //# sourceMappingURL=Form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.js","sourceRoot":"","sources":["../../../../Forms/Form.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,6CAA8C;AAI9C,4CAAgD;AAKhD,IAAsB,IAAI,YAA1B,MAAsB,IAAI;IAA1B;QAEa,WAAM,GAA4C,EAAE,CAAA;IA0DjE,CAAC;IAxDG,MAAM,CAAC,MAAM;QACT,OAAO,OAAO,CAAC,WAAW,CAAC,4BAAe,EAAE,IAAI,CAAC,CAAA;IACrD,CAAC;IAED,MAAM;QACF,OAAQ,IAAI,CAAC,WAAiD,CAAC,MAAM,EAAE,CAAA;IAC3E,CAAC;IAED,KAAK;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAgB,CAAA;QAC1D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAA8B,CAAC,CAAC,CAAA;YACzE,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;aACnC;QACL,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;IAC3C,CAAC;IAED,SAAS;QACL,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAgB,CAAA;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAClD,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAkB,CAAC,CAAA;YAC5C,IAAI,KAAK,EAAE;gBACP,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;aAC1B;YACD,OAAO,GAAG,CAAA;QACd,CAAC,EAA8B,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAgB,CAAA;QAC1D,kCAAkC;QAClC,MAAM,KAAK,GAAwB,EAAE,CAAA;QACrC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAA8B,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,IAAI,CAAC,IAA+B;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAgB,CAAA;QAC1D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;gBACpB,aAAa;gBACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;aACtC;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;CACJ,CAAA;AA5DqB,IAAI;IADzB,sBAAU,CAAC,iBAAK,CAAC,SAAS,CAAC;GACN,IAAI,CA4DzB;AA5DqB,oBAAI"}
@@ -0,0 +1,10 @@
1
+ import { Type } from '../Support';
2
+ import { RuleInterface } from '../Validation';
3
+ export declare class FormField {
4
+ name: string;
5
+ type: any;
6
+ rules: (Type<RuleInterface> | ((...args: any[]) => Type<RuleInterface>))[];
7
+ constructor(name: string, type: any, rules?: (Type<RuleInterface> | ((...args: any[]) => Type<RuleInterface>))[]);
8
+ validate(value: any): Record<string, string> | undefined;
9
+ }
10
+ //# sourceMappingURL=FormFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormFields.d.ts","sourceRoot":"","sources":["../../../../Forms/FormFields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAY,aAAa,EAAE,MAAM,eAAe,CAAA;AAEvD,qBAAa,SAAS;IAEP,IAAI,EAAE,MAAM;IAEZ,IAAI,EAAE,GAAG;IAET,KAAK,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAG;gBAJ3E,IAAI,EAAE,MAAM,EAEZ,IAAI,EAAE,GAAG,EAET,KAAK,GAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAQ;IAK3F,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;CAqB3D"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormField = void 0;
4
+ const Validation_1 = require("../Validation");
5
+ class FormField {
6
+ constructor(name,
7
+ // tslint:disable-next-line:no-any
8
+ type,
9
+ // tslint:disable-next-line:no-any
10
+ rules = []) {
11
+ this.name = name;
12
+ this.type = type;
13
+ this.rules = rules;
14
+ }
15
+ // tslint:disable-next-line:no-any
16
+ validate(value) {
17
+ const errors = {};
18
+ let hasErrors = false;
19
+ if (this.rules.includes(Validation_1.Optional) && (value === undefined || value === null)) {
20
+ return;
21
+ }
22
+ this.rules.forEach(rule => {
23
+ if (!rule.prototype.passes) {
24
+ rule = rule();
25
+ }
26
+ const instance = new rule;
27
+ if (!instance.passes(this.name, value)) {
28
+ hasErrors = true;
29
+ errors[instance.identifier] = instance.message(this.name, value);
30
+ }
31
+ });
32
+ return hasErrors ? errors : undefined;
33
+ }
34
+ }
35
+ exports.FormField = FormField;
36
+ //# sourceMappingURL=FormFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormFields.js","sourceRoot":"","sources":["../../../../Forms/FormFields.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAEvD,MAAa,SAAS;IAClB,YACW,IAAY;IACnB,kCAAkC;IAC3B,IAAS;IAChB,kCAAkC;IAC3B,QAA8E,EAAE;QAJhF,SAAI,GAAJ,IAAI,CAAQ;QAEZ,SAAI,GAAJ,IAAI,CAAK;QAET,UAAK,GAAL,KAAK,CAA2E;IAE3F,CAAC;IAED,kCAAkC;IAClC,QAAQ,CAAC,KAAU;QACf,MAAM,MAAM,GAA2B,EAAE,CAAA;QACzC,IAAI,SAAS,GAAG,KAAK,CAAA;QAErB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,qBAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE;YAC1E,OAAM;SACT;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBACxB,IAAI,GAAI,IAAiB,EAAE,CAAA;aAC9B;YACD,MAAM,QAAQ,GAAG,IAAK,IAAmC,CAAA;YACzD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;gBACpC,SAAS,GAAG,IAAI,CAAA;gBAChB,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;aACnE;QACL,CAAC,CAAC,CAAA;QAEF,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IACzC,CAAC;CACJ;AAhCD,8BAgCC"}
@@ -0,0 +1,4 @@
1
+ export * from './Form';
2
+ export * from './Decorators';
3
+ export * from './FormFields';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../Forms/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
package/Forms/index.js ADDED
@@ -0,0 +1,16 @@
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("./Form"), exports);
14
+ __exportStar(require("./Decorators"), exports);
15
+ __exportStar(require("./FormFields"), exports);
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../Forms/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAsB;AACtB,+CAA4B;AAC5B,+CAA4B"}
@@ -0,0 +1,7 @@
1
+ import { Application } from './Application';
2
+ import { ServiceIdentifier } from '../Container/Contracts';
3
+ export declare class App {
4
+ static instance: Application;
5
+ static get<T>(service: ServiceIdentifier<T> | string): T;
6
+ }
7
+ //# sourceMappingURL=App.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../Framework/App.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,qBAAa,GAAG;IACZ,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAA;IAE5B,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;CAG3D"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.App = void 0;
4
+ class App {
5
+ static get(service) {
6
+ return App.instance.get(service);
7
+ }
8
+ }
9
+ exports.App = App;
10
+ //# sourceMappingURL=App.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../../Framework/App.ts"],"names":[],"mappings":";;;AAGA,MAAa,GAAG;IAGZ,MAAM,CAAC,GAAG,CAAI,OAAsC;QAChD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;CACJ;AAND,kBAMC"}
@@ -0,0 +1,18 @@
1
+ import { Container } from '../Container';
2
+ import { Type } from '../Support';
3
+ import { Provider } from './Provider';
4
+ export declare class Application extends Container {
5
+ directory: string;
6
+ configDirectory: string;
7
+ static defaultConfigDirectory: string;
8
+ config: Map<Function, object>;
9
+ constructor(directory: string, configDirectory?: string);
10
+ static create(directory: string, configDirectory?: string): Promise<Application>;
11
+ startServer(): Promise<void>;
12
+ registerProviders(providers: Type<Provider>[]): Promise<void>;
13
+ private loadConfig;
14
+ private registerResolvers;
15
+ private bootstrap;
16
+ private checkAppSecret;
17
+ }
18
+ //# sourceMappingURL=Application.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../../../../Framework/Application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAarC,qBAAa,WAAY,SAAQ,SAAS;IAKnB,SAAS,EAAE,MAAM;IAAS,eAAe;IAJ5D,MAAM,CAAC,sBAAsB,SAAW;IAEjC,MAAM,wBAA8B;gBAExB,SAAS,EAAE,MAAM,EAAS,eAAe,SAAqC;WAQpF,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,SAAqC;IAMrF,WAAW;IAYJ,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAS5C,UAAU;IAsBxB,OAAO,CAAC,iBAAiB;YAMX,SAAS;YAmBT,cAAc;CAM/B"}
@@ -0,0 +1,94 @@
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.Application = void 0;
7
+ const Container_1 = require("../Container");
8
+ const App_1 = require("./App");
9
+ const Config_1 = require("./Config");
10
+ const FormResolver_1 = require("./Resolvers/FormResolver");
11
+ const EntityResolver_1 = require("./Resolvers/EntityResolver");
12
+ const RootDir_1 = require("./RootDir");
13
+ const StaticAssetsMiddleware_1 = require("./Middleware/StaticAssetsMiddleware");
14
+ const Http_1 = require("../Router/Http");
15
+ const Storage_1 = require("../Storage");
16
+ const AuthResolver_1 = require("./Resolvers/AuthResolver");
17
+ const fs_1 = __importDefault(require("fs"));
18
+ const path_1 = __importDefault(require("path"));
19
+ const WebsocketsProvider_1 = require("./Providers/WebsocketsProvider");
20
+ class Application extends Container_1.Container {
21
+ constructor(directory, configDirectory = Application.defaultConfigDirectory) {
22
+ super();
23
+ this.directory = directory;
24
+ this.configDirectory = configDirectory;
25
+ this.config = new Map();
26
+ Application.setInstance(this);
27
+ this.set(Application, App_1.App.instance = this);
28
+ this.set(Container_1.Container, this);
29
+ this.set(RootDir_1.RootDir, directory);
30
+ }
31
+ static async create(directory, configDirectory = Application.defaultConfigDirectory) {
32
+ const app = new this(fs_1.default.realpathSync.native(directory), configDirectory);
33
+ await app.bootstrap();
34
+ return app;
35
+ }
36
+ async startServer() {
37
+ const httpHandler = this.get(Http_1.Handler);
38
+ const appConfig = this.get(Config_1.AppConfig);
39
+ if (appConfig.websocketsPort) {
40
+ await this.registerProviders([WebsocketsProvider_1.WebsocketsProvider]);
41
+ }
42
+ return httpHandler.startServer(this);
43
+ }
44
+ async registerProviders(providers) {
45
+ await Promise.all(providers.map(provider => {
46
+ const instance = this.get(provider);
47
+ return instance.register();
48
+ }));
49
+ }
50
+ async loadConfig(configDirectory) {
51
+ const configsPath = path_1.default.join(this.directory, configDirectory);
52
+ const storage = this.get(Storage_1.Storage);
53
+ if (!await storage.exists(configsPath)) {
54
+ console.warn(`Config path '${configsPath}' does not exist. Running with default config.`);
55
+ }
56
+ storage
57
+ .files(configsPath)
58
+ .whereIn('extension', ['ts'])
59
+ .forEach(file => {
60
+ const configItem = require(file.path).default;
61
+ if (configItem && configItem.constructor) {
62
+ configItem.applyNewValues();
63
+ this.config.set(configItem.constructor, configItem);
64
+ this.set(configItem.constructor, configItem);
65
+ }
66
+ });
67
+ }
68
+ registerResolvers() {
69
+ this.resolvers.unshift(new FormResolver_1.FormResolver(this));
70
+ this.resolvers.unshift(new EntityResolver_1.EntityResolver(this));
71
+ this.resolvers.unshift(new AuthResolver_1.AuthResolver(this));
72
+ }
73
+ async bootstrap() {
74
+ await this.loadConfig(this.configDirectory);
75
+ this.set(Http_1.ErrorHandlerInterface, this.get(Http_1.ErrorHandler));
76
+ const appConfig = this.get(Config_1.AppConfig);
77
+ await this.checkAppSecret();
78
+ if (appConfig.staticAssets) {
79
+ appConfig.middleware.unshift(StaticAssetsMiddleware_1.StaticAssetsMiddleware);
80
+ }
81
+ this.registerResolvers();
82
+ const providers = appConfig.providers || [];
83
+ await this.registerProviders(providers);
84
+ }
85
+ async checkAppSecret() {
86
+ const authConfig = this.get(Config_1.AuthConfig);
87
+ if (!authConfig.signature) {
88
+ throw new Error(`APP_SECRET is not setup in your '.env' file.`);
89
+ }
90
+ }
91
+ }
92
+ exports.Application = Application;
93
+ Application.defaultConfigDirectory = 'config';
94
+ //# sourceMappingURL=Application.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Application.js","sourceRoot":"","sources":["../../../../Framework/Application.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { User } from './User';
2
+ import { AuthConfig } from '../Config';
3
+ import { ID } from '../../Database';
4
+ import { Crypt, JWT, JWToken } from '@Typetron/Encryption';
5
+ export declare class Auth {
6
+ authConfig: AuthConfig;
7
+ jwt: JWT;
8
+ crypt: Crypt;
9
+ id?: ID;
10
+ /**
11
+ * This is primarily used in websocket connections so we don't need to pass the auth token for each weboscket message
12
+ */
13
+ expiresAt: Date;
14
+ private savedUser?;
15
+ get authenticable(): typeof User;
16
+ user<T extends User>(): Promise<T | undefined>;
17
+ login(username: string, password: string): Promise<string>;
18
+ loginById(id: ID): Promise<string>;
19
+ loginUser(authenticable: User): Promise<string>;
20
+ sign(id: ID, expiresAtTimestampInSeconds?: number): Promise<string>;
21
+ register<T extends User>(username: string, password: string): Promise<T>;
22
+ verify(token: string): Promise<JWToken<number>>;
23
+ private set;
24
+ }
25
+ //# sourceMappingURL=Auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../../../Framework/Auth/Auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAc,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE1D,qBACa,IAAI;IAGb,UAAU,EAAE,UAAU,CAAA;IAGtB,GAAG,EAAE,GAAG,CAAA;IAGR,KAAK,EAAE,KAAK,CAAA;IAEZ,EAAE,CAAC,EAAE,EAAE,CAAA;IAEP;;OAEG;IACH,SAAS,OAAa;IAEtB,OAAO,CAAC,SAAS,CAAC,CAAM;IAExB,IAAI,aAAa,IAAI,OAAO,IAAI,CAE/B;IAkBK,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAkB9C,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUhE,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlC,SAAS,CAAC,aAAa,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/C,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,2BAA2B,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAY7D,QAAQ,CAAC,CAAC,SAAS,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAOxE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAQrD,OAAO,CAAC,GAAG;CAWd"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Auth = void 0;
13
+ const Container_1 = require("../../Container");
14
+ const Config_1 = require("../Config");
15
+ const Encryption_1 = require("@Typetron/Encryption");
16
+ let Auth = class Auth {
17
+ constructor() {
18
+ /**
19
+ * This is primarily used in websocket connections so we don't need to pass the auth token for each weboscket message
20
+ */
21
+ this.expiresAt = new Date();
22
+ }
23
+ get authenticable() {
24
+ return this.authConfig.entity;
25
+ }
26
+ // @BeforeRequest() // TODO implement the container's '@BeforeRequest' decorator to do something before each request.
27
+ // For example, load the authenticated user in memory again
28
+ // async before() {
29
+ // if (!this.id) {
30
+ // return undefined
31
+ // throw new Error('You tried to use the Auth service without authenticating the user. ' +
32
+ // 'Please use the AuthMiddleware or authenticate the user before using this route')
33
+ // }
34
+ //
35
+ // const user = await this.authenticable.find(this.id)
36
+ // if (!user) {
37
+ // throw new Error(`Authenticated user with ID ${this.id} not found `)
38
+ // }
39
+ // this.savedUser = await this.authenticable.find(this.id)
40
+ // }
41
+ async user() {
42
+ // if (this.savedUser) { // TODO this if statement should be removed using the @BeforeRequest decorator above
43
+ // return this.savedUser as T
44
+ // }
45
+ if (!this.id) {
46
+ return undefined;
47
+ throw new Error('You tried to use the Auth service without authenticating the user. Please use the AuthMiddleware or authenticate the user before using this route');
48
+ }
49
+ const user = await this.authenticable.find(this.id);
50
+ if (!user) {
51
+ throw new Error(`Authenticated user with ID ${this.id} not found `);
52
+ }
53
+ return this.savedUser = user;
54
+ }
55
+ async login(username, password) {
56
+ const user = await this.authenticable.where((new this.authenticable).getUsername(), username).first();
57
+ if (!user || !await this.crypt.compare(password, user.password)) {
58
+ throw new Error('Invalid credentials');
59
+ }
60
+ delete this.savedUser;
61
+ return this.sign(this.id = user.id);
62
+ }
63
+ loginById(id) {
64
+ return this.sign(id);
65
+ }
66
+ loginUser(authenticable) {
67
+ return this.loginById(authenticable[authenticable.getId()]);
68
+ }
69
+ sign(id, expiresAtTimestampInSeconds) {
70
+ return this.jwt.sign({
71
+ sub: this.set(id, expiresAtTimestampInSeconds)
72
+ }, this.authConfig.signature, {
73
+ expiresIn: this.authConfig.duration
74
+ });
75
+ }
76
+ async register(username, password) {
77
+ return await this.authenticable.create({
78
+ [(new this.authenticable).getUsername()]: username,
79
+ password: await this.crypt.hash(password, this.authConfig.saltRounds),
80
+ });
81
+ }
82
+ async verify(token) {
83
+ const payload = await this.jwt.verify(token, this.authConfig.signature);
84
+ this.set(payload.sub, payload.exp);
85
+ return payload;
86
+ }
87
+ set(id, expiresAtTimestampInSeconds) {
88
+ if (expiresAtTimestampInSeconds) {
89
+ this.expiresAt = new Date(expiresAtTimestampInSeconds * 1000);
90
+ }
91
+ else {
92
+ this.expiresAt = new Date();
93
+ this.expiresAt.setSeconds(this.expiresAt.getSeconds() + this.authConfig.duration);
94
+ }
95
+ return this.id = id;
96
+ }
97
+ };
98
+ __decorate([
99
+ Container_1.Inject(),
100
+ __metadata("design:type", Config_1.AuthConfig)
101
+ ], Auth.prototype, "authConfig", void 0);
102
+ __decorate([
103
+ Container_1.Inject(),
104
+ __metadata("design:type", Encryption_1.JWT)
105
+ ], Auth.prototype, "jwt", void 0);
106
+ __decorate([
107
+ Container_1.Inject(),
108
+ __metadata("design:type", Encryption_1.Crypt)
109
+ ], Auth.prototype, "crypt", void 0);
110
+ Auth = __decorate([
111
+ Container_1.Injectable(Container_1.Scope.REQUEST)
112
+ ], Auth);
113
+ exports.Auth = Auth;
114
+ //# sourceMappingURL=Auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../../../../Framework/Auth/Auth.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA2D;AAE3D,sCAAsC;AAEtC,qDAA0D;AAG1D,IAAa,IAAI,GAAjB,MAAa,IAAI;IAAjB;QAaI;;WAEG;QACH,cAAS,GAAG,IAAI,IAAI,EAAE,CAAA;IAkG1B,CAAC;IA9FG,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IACjC,CAAC;IAED,qHAAqH;IACrH,4DAA4D;IAC5D,mBAAmB;IACnB,sBAAsB;IACtB,2BAA2B;IAC3B,kGAAkG;IAClG,gGAAgG;IAChG,QAAQ;IACR,EAAE;IACF,0DAA0D;IAC1D,mBAAmB;IACnB,8EAA8E;IAC9E,QAAQ;IACR,8DAA8D;IAC9D,IAAI;IAEJ,KAAK,CAAC,IAAI;QACN,6GAA6G;QAC7G,iCAAiC;QACjC,IAAI;QAEJ,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACV,OAAO,SAAS,CAAA;YAChB,MAAM,IAAI,KAAK,CAAC,mJAAmJ,CAAC,CAAA;SACvK;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnD,IAAI,CAAC,IAAI,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,EAAE,aAAa,CAAC,CAAA;SACtE;QAED,OAAO,IAAI,CAAC,SAAS,GAAG,IAAS,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,QAAgB;QAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAsB,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAA;QACzH,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC7D,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACzC;QAED,OAAO,IAAI,CAAC,SAAS,CAAA;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,SAAS,CAAC,EAAM;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACxB,CAAC;IAED,SAAS,CAAC,aAAmB;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,CAAC,EAAM,EAAE,2BAAoC;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAChB;YACI,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,2BAA2B,CAAC;SACjD,EACD,IAAI,CAAC,UAAU,CAAC,SAAS,EACzB;YACI,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ;SACtC,CACJ,CAAA;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAiB,QAAgB,EAAE,QAAgB;QAC7D,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YACnC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAmB,CAAC,EAAE,QAAQ;YACnE,QAAQ,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;SACxE,CAAM,CAAA;IACX,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACtB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAS,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAE/E,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAElC,OAAO,OAAO,CAAA;IAClB,CAAC;IAEO,GAAG,CAAC,EAAM,EAAE,2BAAoC;QACpD,IAAI,2BAA2B,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAA;SAChE;aAAM;YACH,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;YAC3B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;SACpF;QAED,OAAO,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACvB,CAAC;CAEJ,CAAA;AA/GG;IADC,kBAAM,EAAE;8BACG,mBAAU;wCAAA;AAGtB;IADC,kBAAM,EAAE;8BACJ,gBAAG;iCAAA;AAGR;IADC,kBAAM,EAAE;8BACF,kBAAK;mCAAA;AATH,IAAI;IADhB,sBAAU,CAAC,iBAAK,CAAC,OAAO,CAAC;GACb,IAAI,CAkHhB;AAlHY,oBAAI"}
@@ -0,0 +1,7 @@
1
+ import { Entity, EntityColumns } from '../../Database';
2
+ export interface Authenticatable<T extends Entity> {
3
+ getId(): EntityColumns<T>;
4
+ getUsername(): EntityColumns<T>;
5
+ getPassword(): EntityColumns<T>;
6
+ }
7
+ //# sourceMappingURL=Authenticatable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Authenticatable.d.ts","sourceRoot":"","sources":["../../../../../Framework/Auth/Authenticatable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEtD,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM;IAC7C,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;IAE1B,WAAW,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;IAEhC,WAAW,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;CACnC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Authenticatable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Authenticatable.js","sourceRoot":"","sources":["../../../../../Framework/Auth/Authenticatable.ts"],"names":[],"mappings":""}