@thisisagile/easy 15.29.2 → 16.0.0

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 (619) hide show
  1. package/dist/{chunk-3MOFYE2N.mjs → chunk-2ZUDYGPP.mjs} +5 -5
  2. package/dist/chunk-2ZUDYGPP.mjs.map +1 -0
  3. package/dist/{chunk-A5MC57TL.mjs → chunk-3L4RAR24.mjs} +9 -7
  4. package/dist/chunk-3L4RAR24.mjs.map +1 -0
  5. package/dist/chunk-45GNHDKA.mjs +27 -0
  6. package/dist/chunk-45GNHDKA.mjs.map +1 -0
  7. package/dist/{chunk-BAXNN36F.mjs → chunk-4DJNTF2D.mjs} +5 -3
  8. package/dist/chunk-4DJNTF2D.mjs.map +1 -0
  9. package/dist/chunk-4G6AW6D6.mjs +35 -0
  10. package/dist/chunk-4G6AW6D6.mjs.map +1 -0
  11. package/dist/{chunk-I5MPU33B.mjs → chunk-5WSP2IYF.mjs} +4 -4
  12. package/dist/chunk-5WSP2IYF.mjs.map +1 -0
  13. package/dist/{chunk-GCPVSACZ.mjs → chunk-5YM5CLOG.mjs} +2 -2
  14. package/dist/{chunk-GUSPHVF2.mjs → chunk-6BQEFLOS.mjs} +5 -3
  15. package/dist/chunk-6BQEFLOS.mjs.map +1 -0
  16. package/dist/{chunk-MRIELSWP.mjs → chunk-6VLC4Z4H.mjs} +2 -2
  17. package/dist/chunk-6VLC4Z4H.mjs.map +1 -0
  18. package/dist/chunk-6YVMQB26.mjs +94 -0
  19. package/dist/chunk-6YVMQB26.mjs.map +1 -0
  20. package/dist/{chunk-YHL2CUBI.mjs → chunk-73UD7JJL.mjs} +2 -2
  21. package/dist/chunk-73UD7JJL.mjs.map +1 -0
  22. package/dist/{chunk-2L3GZ6NK.mjs → chunk-7K4QMDUN.mjs} +2 -2
  23. package/dist/chunk-7K4QMDUN.mjs.map +1 -0
  24. package/dist/{chunk-S5RHU67S.mjs → chunk-7TJ4VCBE.mjs} +15 -9
  25. package/dist/chunk-7TJ4VCBE.mjs.map +1 -0
  26. package/dist/{chunk-NKHZO3ME.mjs → chunk-A2JYVEBB.mjs} +4 -4
  27. package/dist/chunk-A2JYVEBB.mjs.map +1 -0
  28. package/dist/{chunk-57QV3J5N.mjs → chunk-A62OK7XE.mjs} +10 -6
  29. package/dist/{chunk-57QV3J5N.mjs.map → chunk-A62OK7XE.mjs.map} +1 -1
  30. package/dist/{chunk-TQUDYF6E.mjs → chunk-APYISY5K.mjs} +2 -2
  31. package/dist/chunk-APYISY5K.mjs.map +1 -0
  32. package/dist/{chunk-XLFC44Y3.mjs → chunk-ARTSACXM.mjs} +17 -22
  33. package/dist/chunk-ARTSACXM.mjs.map +1 -0
  34. package/dist/chunk-ARZEQQW5.mjs +315 -0
  35. package/dist/chunk-ARZEQQW5.mjs.map +1 -0
  36. package/dist/chunk-CAHTK3AT.mjs +30 -0
  37. package/dist/chunk-CAHTK3AT.mjs.map +1 -0
  38. package/dist/{chunk-ARN4MTMY.mjs → chunk-D4K4MC24.mjs} +3 -3
  39. package/dist/chunk-D4K4MC24.mjs.map +1 -0
  40. package/dist/{chunk-624IHTEI.mjs → chunk-D5FLGKVR.mjs} +18 -12
  41. package/dist/chunk-D5FLGKVR.mjs.map +1 -0
  42. package/dist/{chunk-UWNXWKBU.mjs → chunk-DEJ7A5PY.mjs} +1 -35
  43. package/dist/chunk-DEJ7A5PY.mjs.map +1 -0
  44. package/dist/chunk-DXQSIBC7.mjs +13 -0
  45. package/dist/chunk-DXQSIBC7.mjs.map +1 -0
  46. package/dist/{chunk-SG6BDC6T.mjs → chunk-EDVJUOFU.mjs} +18 -12
  47. package/dist/chunk-EDVJUOFU.mjs.map +1 -0
  48. package/dist/{chunk-IWLJEAQZ.mjs → chunk-EIJ3GSGG.mjs} +5 -3
  49. package/dist/chunk-EIJ3GSGG.mjs.map +1 -0
  50. package/dist/chunk-FHW5K2RR.mjs +150 -0
  51. package/dist/chunk-FHW5K2RR.mjs.map +1 -0
  52. package/dist/{chunk-WYT52YAX.mjs → chunk-GSZLYZSW.mjs} +23 -11
  53. package/dist/chunk-GSZLYZSW.mjs.map +1 -0
  54. package/dist/{chunk-I3DRDMCS.mjs → chunk-HBJMCX2I.mjs} +3 -3
  55. package/dist/chunk-HBJMCX2I.mjs.map +1 -0
  56. package/dist/{chunk-2KKIXOMB.mjs → chunk-HNVAFEZP.mjs} +3 -3
  57. package/dist/{chunk-QRN4Y2QC.mjs → chunk-HV4CI2QX.mjs} +18 -12
  58. package/dist/chunk-HV4CI2QX.mjs.map +1 -0
  59. package/dist/chunk-IAXKOENJ.mjs +55 -0
  60. package/dist/chunk-IAXKOENJ.mjs.map +1 -0
  61. package/dist/chunk-J6KN572O.mjs +20 -0
  62. package/dist/chunk-J6KN572O.mjs.map +1 -0
  63. package/dist/chunk-J7XKOXMW.mjs +203 -0
  64. package/dist/chunk-J7XKOXMW.mjs.map +1 -0
  65. package/dist/{chunk-RFG5LNDQ.mjs → chunk-JBJ2YERG.mjs} +6 -4
  66. package/dist/{chunk-RFG5LNDQ.mjs.map → chunk-JBJ2YERG.mjs.map} +1 -1
  67. package/dist/{chunk-J64VE55O.mjs → chunk-JFJLDIJB.mjs} +10 -10
  68. package/dist/chunk-JFJLDIJB.mjs.map +1 -0
  69. package/dist/{chunk-F4CWMZCV.mjs → chunk-JFU65NZU.mjs} +11 -9
  70. package/dist/chunk-JFU65NZU.mjs.map +1 -0
  71. package/dist/{chunk-PWCGCUT7.mjs → chunk-JSON7A4X.mjs} +6 -4
  72. package/dist/chunk-JSON7A4X.mjs.map +1 -0
  73. package/dist/chunk-JTGB3TSZ.mjs +24 -0
  74. package/dist/chunk-JTGB3TSZ.mjs.map +1 -0
  75. package/dist/{chunk-NOMZAVQC.mjs → chunk-KRLEHX37.mjs} +12 -6
  76. package/dist/chunk-KRLEHX37.mjs.map +1 -0
  77. package/dist/{chunk-H7NDGISC.mjs → chunk-LAR7AT6R.mjs} +2 -2
  78. package/dist/chunk-LAR7AT6R.mjs.map +1 -0
  79. package/dist/{chunk-OXVJLJIE.mjs → chunk-LXQQ5N6S.mjs} +2 -2
  80. package/dist/chunk-LYAPQ4QZ.mjs +40 -0
  81. package/dist/chunk-LYAPQ4QZ.mjs.map +1 -0
  82. package/dist/{chunk-QRLGQY7M.mjs → chunk-M47EOYDK.mjs} +6 -4
  83. package/dist/chunk-M47EOYDK.mjs.map +1 -0
  84. package/dist/{chunk-CJDDGEEK.mjs → chunk-NFWIUPZU.mjs} +8 -6
  85. package/dist/chunk-NFWIUPZU.mjs.map +1 -0
  86. package/dist/{chunk-7Z3YQCXR.mjs → chunk-NYYHRFBW.mjs} +6 -4
  87. package/dist/chunk-NYYHRFBW.mjs.map +1 -0
  88. package/dist/{chunk-4ROYPQPC.mjs → chunk-OFGI5FLG.mjs} +2 -2
  89. package/dist/chunk-PPWHEIZW.mjs +58 -0
  90. package/dist/chunk-PPWHEIZW.mjs.map +1 -0
  91. package/dist/chunk-Q5HABVOK.mjs +20 -0
  92. package/dist/chunk-Q5HABVOK.mjs.map +1 -0
  93. package/dist/{chunk-TG5IPJOG.mjs → chunk-QQRGOHU6.mjs} +2 -2
  94. package/dist/chunk-QQRGOHU6.mjs.map +1 -0
  95. package/dist/{chunk-5J3LAY32.mjs → chunk-QTPKH4PY.mjs} +5 -5
  96. package/dist/chunk-QTPKH4PY.mjs.map +1 -0
  97. package/dist/{chunk-65W3AYRE.mjs → chunk-RNROH3VJ.mjs} +6 -4
  98. package/dist/chunk-RNROH3VJ.mjs.map +1 -0
  99. package/dist/{chunk-GARRF3U7.mjs → chunk-TMZRZLA2.mjs} +3 -3
  100. package/dist/chunk-TMZRZLA2.mjs.map +1 -0
  101. package/dist/{chunk-L7JZMM3J.mjs → chunk-U53FLD4J.mjs} +4 -4
  102. package/dist/chunk-U53FLD4J.mjs.map +1 -0
  103. package/dist/{chunk-EB26LF5Z.mjs → chunk-UJEQAXZI.mjs} +4 -4
  104. package/dist/chunk-UJEQAXZI.mjs.map +1 -0
  105. package/dist/{chunk-ELFAMVTF.mjs → chunk-UKHDSTTZ.mjs} +5 -5
  106. package/dist/chunk-UKHDSTTZ.mjs.map +1 -0
  107. package/dist/chunk-UNHWYQ54.mjs +64 -0
  108. package/dist/chunk-UNHWYQ54.mjs.map +1 -0
  109. package/dist/chunk-USGZFNWP.mjs +34 -0
  110. package/dist/chunk-USGZFNWP.mjs.map +1 -0
  111. package/dist/{chunk-Y5WPU3ZU.mjs → chunk-UW6S2PNO.mjs} +12 -6
  112. package/dist/chunk-UW6S2PNO.mjs.map +1 -0
  113. package/dist/chunk-UYDZZAEK.mjs +11 -0
  114. package/dist/chunk-UYDZZAEK.mjs.map +1 -0
  115. package/dist/{chunk-GJFFYHHX.mjs → chunk-VV534JNS.mjs} +5 -3
  116. package/dist/chunk-VV534JNS.mjs.map +1 -0
  117. package/dist/{chunk-V7FP66LM.mjs → chunk-WJZFE5NE.mjs} +2 -2
  118. package/dist/chunk-WJZFE5NE.mjs.map +1 -0
  119. package/dist/{chunk-ZELLSP3E.mjs → chunk-X7FZPY3P.mjs} +6 -4
  120. package/dist/{chunk-ZELLSP3E.mjs.map → chunk-X7FZPY3P.mjs.map} +1 -1
  121. package/dist/{chunk-Q6RSBDMM.mjs → chunk-XBYDAQGZ.mjs} +2 -2
  122. package/dist/chunk-XBYDAQGZ.mjs.map +1 -0
  123. package/dist/{chunk-ZJKVMRGU.mjs → chunk-YSBACFUR.mjs} +5 -5
  124. package/dist/chunk-YSBACFUR.mjs.map +1 -0
  125. package/dist/chunk-ZHXKBOK2.mjs +22 -0
  126. package/dist/chunk-ZHXKBOK2.mjs.map +1 -0
  127. package/dist/chunk-ZPNFXK7Y.mjs +36 -0
  128. package/dist/chunk-ZPNFXK7Y.mjs.map +1 -0
  129. package/dist/data/Condition.d.ts +3 -2
  130. package/dist/data/Condition.mjs +12 -8
  131. package/dist/data/Database.d.ts +2 -1
  132. package/dist/data/Database.mjs +12 -7
  133. package/dist/data/Field.d.ts +1 -1
  134. package/dist/data/Field.mjs +15 -11
  135. package/dist/data/Field.mjs.map +1 -1
  136. package/dist/data/InMemoryGateway.d.ts +5 -1
  137. package/dist/data/InMemoryGateway.mjs +25 -10
  138. package/dist/data/InMemoryGateway.mjs.map +1 -1
  139. package/dist/data/Query.d.ts +1 -1
  140. package/dist/data/QueryProvider.d.ts +2 -1
  141. package/dist/domain/Audit.d.ts +3 -2
  142. package/dist/domain/Audit.mjs +25 -10
  143. package/dist/domain/Child.d.ts +2 -1
  144. package/dist/domain/Child.mjs +25 -10
  145. package/dist/domain/Child.mjs.map +1 -1
  146. package/dist/domain/{values/DateTime.d.ts → DateTime.d.ts} +3 -1
  147. package/dist/domain/DateTime.mjs +35 -0
  148. package/dist/domain/Entity.d.ts +2 -1
  149. package/dist/domain/Entity.mjs +27 -12
  150. package/dist/domain/Entity.mjs.map +1 -1
  151. package/dist/domain/Repo.d.ts +7 -1
  152. package/dist/domain/Repo.mjs +31 -12
  153. package/dist/domain/Repo.mjs.map +1 -1
  154. package/dist/domain/Struct.d.ts +2 -1
  155. package/dist/domain/Struct.mjs +22 -7
  156. package/dist/domain/Typo.d.ts +7 -2
  157. package/dist/domain/Typo.mjs +23 -8
  158. package/dist/domain/Typo.mjs.map +1 -1
  159. package/dist/health/HealthResource.d.ts +2 -2
  160. package/dist/health/HealthResource.mjs +30 -16
  161. package/dist/health/HealthResource.mjs.map +1 -1
  162. package/dist/health/HealthUri.d.ts +2 -2
  163. package/dist/health/HealthUri.mjs +22 -8
  164. package/dist/http/CacheControl.d.ts +1 -1
  165. package/dist/http/CacheControl.mjs +23 -9
  166. package/dist/http/ContentType.d.ts +2 -1
  167. package/dist/http/ContentType.mjs +12 -7
  168. package/dist/http/HttpStatus.d.ts +3 -1
  169. package/dist/http/HttpStatus.mjs +12 -7
  170. package/dist/http/HttpVerb.d.ts +1 -1
  171. package/dist/http/HttpVerb.mjs +12 -7
  172. package/dist/http/LocalRequestStore.d.ts +2 -1
  173. package/dist/http/LocalRequestStore.mjs +12 -6
  174. package/dist/http/LocalRequestStore.mjs.map +1 -1
  175. package/dist/http/OriginatedError.d.ts +1 -1
  176. package/dist/http/OriginatedError.mjs +1 -2
  177. package/dist/http/OriginatedError.mjs.map +1 -1
  178. package/dist/http/Request.d.ts +1 -1
  179. package/dist/http/RequestOptions.d.ts +6 -1
  180. package/dist/http/RequestOptions.mjs +16 -9
  181. package/dist/http/Response.d.ts +2 -5
  182. package/dist/http/Response.mjs +7 -13
  183. package/dist/http/RestResult.d.ts +3 -1
  184. package/dist/http/RestResult.mjs +23 -8
  185. package/dist/http/Verb.d.ts +4 -1
  186. package/dist/http/Verb.mjs +27 -13
  187. package/dist/http/toResponse.d.ts +6 -0
  188. package/dist/http/toResponse.mjs +33 -0
  189. package/dist/index.d.ts +118 -12
  190. package/dist/index.js +1645 -2904
  191. package/dist/index.js.map +1 -1
  192. package/dist/index.mjs +118 -12
  193. package/dist/index.mjs.map +1 -1
  194. package/dist/process/App.mjs +13 -7
  195. package/dist/process/App.mjs.map +1 -1
  196. package/dist/process/Manage.d.ts +3 -1
  197. package/dist/process/Manage.mjs +22 -8
  198. package/dist/process/Manage.mjs.map +1 -1
  199. package/dist/process/Scope.d.ts +4 -1
  200. package/dist/process/Scope.mjs +13 -7
  201. package/dist/process/Search.d.ts +7 -2
  202. package/dist/process/Search.mjs +22 -8
  203. package/dist/process/UseCase.d.ts +4 -1
  204. package/dist/process/UseCase.mjs +19 -10
  205. package/dist/process/UseCase.mjs.map +1 -1
  206. package/dist/resources/AppProvider.d.ts +1 -1
  207. package/dist/resources/Req.d.ts +6 -1
  208. package/dist/resources/Req.mjs +21 -7
  209. package/dist/resources/Req.mjs.map +1 -1
  210. package/dist/resources/Requires.d.ts +2 -1
  211. package/dist/resources/Requires.mjs +10 -6
  212. package/dist/resources/Requires.mjs.map +1 -1
  213. package/dist/resources/Route.d.ts +5 -3
  214. package/dist/resources/Route.mjs +21 -7
  215. package/dist/resources/Service.d.ts +3 -1
  216. package/dist/resources/Service.mjs +24 -8
  217. package/dist/resources/Service.mjs.map +1 -1
  218. package/dist/security/Jwt.d.ts +5 -1
  219. package/dist/security/Jwt.mjs +24 -8
  220. package/dist/security/Jwt.mjs.map +1 -1
  221. package/dist/services/Api.d.ts +8 -2
  222. package/dist/services/Api.mjs +32 -16
  223. package/dist/services/ApiGateway.d.ts +6 -2
  224. package/dist/services/ApiGateway.mjs +35 -19
  225. package/dist/services/AxiosProvider.d.ts +3 -1
  226. package/dist/services/AxiosProvider.mjs +30 -14
  227. package/dist/services/MappedRouteGateway.d.ts +7 -3
  228. package/dist/services/MappedRouteGateway.mjs +41 -24
  229. package/dist/services/MappedRouteGateway.mjs.map +1 -1
  230. package/dist/services/RouteGateway.d.ts +7 -1
  231. package/dist/services/RouteGateway.mjs +36 -20
  232. package/dist/services/ViewRouteGateway.d.ts +10 -6
  233. package/dist/services/ViewRouteGateway.mjs +39 -22
  234. package/dist/services/ViewRouteGateway.mjs.map +1 -1
  235. package/dist/sql/Clause.d.ts +3 -2
  236. package/dist/sql/Clause.mjs +7 -8
  237. package/dist/sql/Column.d.ts +3 -2
  238. package/dist/sql/Column.mjs +24 -10
  239. package/dist/sql/Count.mjs +11 -9
  240. package/dist/sql/Delete.mjs +10 -8
  241. package/dist/sql/Insert.d.ts +1 -1
  242. package/dist/sql/Insert.mjs +12 -10
  243. package/dist/sql/Select.d.ts +1 -1
  244. package/dist/sql/Select.mjs +10 -8
  245. package/dist/sql/SqlQuery.d.ts +5 -2
  246. package/dist/sql/SqlQuery.mjs +9 -7
  247. package/dist/sql/Table.d.ts +13 -12
  248. package/dist/sql/Table.mjs +37 -22
  249. package/dist/sql/Table.mjs.map +1 -1
  250. package/dist/sql/TableGateway.d.ts +6 -2
  251. package/dist/sql/TableGateway.mjs +23 -9
  252. package/dist/sql/TableGateway.mjs.map +1 -1
  253. package/dist/sql/Update.d.ts +1 -1
  254. package/dist/sql/Update.mjs +12 -10
  255. package/dist/types/Array.mjs +4 -2
  256. package/dist/types/Builder.mjs +2 -6
  257. package/dist/types/Builder.mjs.map +1 -1
  258. package/dist/types/Cache.mjs +10 -6
  259. package/dist/types/Cache.mjs.map +1 -1
  260. package/dist/types/CacheAge.mjs +22 -8
  261. package/dist/types/Case.d.ts +3 -1
  262. package/dist/types/Case.mjs +20 -6
  263. package/dist/types/Constructor.d.ts +1 -0
  264. package/dist/types/Constructor.mjs +5 -1
  265. package/dist/types/Context.mjs +12 -6
  266. package/dist/types/Enum.mjs +11 -6
  267. package/dist/{domain/enums → types}/Environment.d.ts +1 -1
  268. package/dist/types/Environment.mjs +28 -0
  269. package/dist/types/Environment.mjs.map +1 -0
  270. package/dist/types/ErrorOrigin.d.ts +1 -1
  271. package/dist/types/Exception.mjs +13 -6
  272. package/dist/types/Gateway.mjs +15 -7
  273. package/dist/types/Id.mjs +3 -4
  274. package/dist/types/Is.d.ts +0 -4
  275. package/dist/types/Is.mjs +1 -6
  276. package/dist/types/IsA.d.ts +2 -0
  277. package/dist/types/IsA.mjs +8 -4
  278. package/dist/types/IsEqual.mjs +21 -7
  279. package/dist/types/Json.mjs +10 -6
  280. package/dist/types/List.d.ts +3 -3
  281. package/dist/types/List.mjs +8 -6
  282. package/dist/types/Meta.d.ts +1 -2
  283. package/dist/types/Meta.mjs +10 -8
  284. package/dist/types/Number.mjs +21 -7
  285. package/dist/types/Object.d.ts +8 -0
  286. package/dist/types/Object.mjs +20 -0
  287. package/dist/types/PageList.mjs +21 -7
  288. package/dist/types/Parser.mjs +25 -10
  289. package/dist/types/Parser.mjs.map +1 -1
  290. package/dist/types/Primitive.mjs +2 -2
  291. package/dist/types/Repository.d.ts +5 -1
  292. package/dist/types/Repository.mjs +15 -7
  293. package/dist/types/Result.mjs +13 -6
  294. package/dist/types/Results.mjs +14 -6
  295. package/dist/types/Tag.mjs +10 -6
  296. package/dist/types/Tag.mjs.map +1 -1
  297. package/dist/types/Template.d.ts +41 -2
  298. package/dist/types/Template.mjs +19 -8
  299. package/dist/types/Text.d.ts +0 -38
  300. package/dist/types/Text.mjs +2 -10
  301. package/dist/types/Try.mjs +20 -6
  302. package/dist/types/Uri.mjs +21 -7
  303. package/dist/types/Uuid.mjs +2 -3
  304. package/dist/types/Validatable.mjs +5 -3
  305. package/dist/types/Value.d.ts +2 -1
  306. package/dist/types/Value.mjs +3 -6
  307. package/dist/utils/Base64.d.ts +1 -1
  308. package/dist/utils/Base64.mjs.map +1 -1
  309. package/dist/utils/Convert.mjs +3 -7
  310. package/dist/utils/If.d.ts +2 -1
  311. package/dist/utils/If.mjs +4 -2
  312. package/dist/utils/Loading.mjs +1 -2
  313. package/dist/utils/Loading.mjs.map +1 -1
  314. package/dist/utils/Log.d.ts +1 -1
  315. package/dist/utils/Log.mjs.map +1 -1
  316. package/dist/utils/Mapper.d.ts +6 -1
  317. package/dist/utils/Mapper.mjs +15 -10
  318. package/dist/utils/Promise.d.ts +2 -1
  319. package/dist/utils/Promise.mjs +9 -6
  320. package/dist/utils/Property.d.ts +2 -1
  321. package/dist/utils/Property.mjs +4 -8
  322. package/dist/utils/Sentence.d.ts +2 -1
  323. package/dist/utils/Sentence.mjs +11 -6
  324. package/dist/utils/Sentence.mjs.map +1 -1
  325. package/dist/utils/State.d.ts +1 -1
  326. package/dist/utils/State.mjs +4 -2
  327. package/dist/utils/View.d.ts +6 -1
  328. package/dist/utils/View.mjs +24 -9
  329. package/dist/validation/Contraints.d.ts +3 -1
  330. package/dist/validation/Contraints.mjs +21 -7
  331. package/dist/validation/Validate.d.ts +3 -1
  332. package/dist/validation/Validate.mjs +20 -6
  333. package/dist/validation/When.d.ts +4 -1
  334. package/dist/validation/When.mjs +20 -6
  335. package/package.json +2 -2
  336. package/src/data/Condition.ts +17 -5
  337. package/src/data/Database.ts +7 -2
  338. package/src/data/Field.ts +3 -2
  339. package/src/data/InMemoryGateway.ts +8 -2
  340. package/src/data/Query.ts +1 -1
  341. package/src/data/QueryProvider.ts +2 -1
  342. package/src/domain/Audit.ts +11 -7
  343. package/src/domain/Child.ts +3 -2
  344. package/src/domain/{values/DateTime.ts → DateTime.ts} +8 -2
  345. package/src/domain/Entity.ts +3 -2
  346. package/src/domain/Repo.ts +15 -4
  347. package/src/domain/Struct.ts +4 -2
  348. package/src/domain/Typo.ts +13 -4
  349. package/src/health/HealthResource.ts +5 -3
  350. package/src/health/HealthUri.ts +1 -1
  351. package/src/http/CacheControl.ts +9 -3
  352. package/src/http/ContentType.ts +8 -2
  353. package/src/http/HttpStatus.ts +4 -1
  354. package/src/http/HttpVerb.ts +1 -1
  355. package/src/http/LocalRequestStore.ts +3 -1
  356. package/src/http/OriginatedError.ts +6 -2
  357. package/src/http/Request.ts +1 -1
  358. package/src/http/RequestOptions.ts +16 -2
  359. package/src/http/Response.ts +4 -9
  360. package/src/http/RestResult.ts +7 -1
  361. package/src/http/Verb.ts +5 -2
  362. package/src/http/toResponse.ts +12 -0
  363. package/src/index.ts +129 -12
  364. package/src/process/Manage.ts +3 -1
  365. package/src/process/Scope.ts +12 -2
  366. package/src/process/Search.ts +9 -3
  367. package/src/process/UseCase.ts +12 -2
  368. package/src/resources/AppProvider.ts +1 -1
  369. package/src/resources/Req.ts +14 -3
  370. package/src/resources/Requires.ts +3 -2
  371. package/src/resources/Route.ts +8 -3
  372. package/src/resources/Service.ts +9 -2
  373. package/src/security/Jwt.ts +7 -1
  374. package/src/services/Api.ts +12 -3
  375. package/src/services/ApiGateway.ts +7 -2
  376. package/src/services/AxiosProvider.ts +14 -2
  377. package/src/services/MappedRouteGateway.ts +13 -4
  378. package/src/services/RouteGateway.ts +14 -3
  379. package/src/services/ViewRouteGateway.ts +7 -3
  380. package/src/sql/Clause.ts +10 -3
  381. package/src/sql/Column.ts +14 -4
  382. package/src/sql/Count.ts +1 -1
  383. package/src/sql/Delete.ts +1 -1
  384. package/src/sql/Insert.ts +5 -2
  385. package/src/sql/Select.ts +6 -2
  386. package/src/sql/SqlQuery.ts +9 -3
  387. package/src/sql/Table.ts +6 -3
  388. package/src/sql/TableGateway.ts +13 -5
  389. package/src/sql/Update.ts +6 -2
  390. package/src/types/CacheAge.ts +3 -1
  391. package/src/types/Case.ts +14 -4
  392. package/src/types/Constructor.ts +3 -1
  393. package/src/types/Context.ts +7 -8
  394. package/src/{domain/enums → types}/Environment.ts +1 -1
  395. package/src/types/ErrorOrigin.ts +1 -1
  396. package/src/types/Exception.ts +7 -2
  397. package/src/types/Gateway.ts +1 -1
  398. package/src/types/Is.ts +0 -7
  399. package/src/types/IsA.ts +4 -0
  400. package/src/types/Json.ts +2 -2
  401. package/src/types/List.ts +13 -12
  402. package/src/types/Meta.ts +12 -9
  403. package/src/types/Object.ts +16 -0
  404. package/src/types/Parser.ts +1 -1
  405. package/src/types/Repository.ts +7 -2
  406. package/src/types/Template.ts +149 -12
  407. package/src/types/Text.ts +3 -138
  408. package/src/types/Try.ts +1 -1
  409. package/src/types/Uri.ts +2 -1
  410. package/src/types/Value.ts +4 -1
  411. package/src/utils/Base64.ts +1 -1
  412. package/src/utils/Convert.ts +5 -2
  413. package/src/utils/If.ts +3 -1
  414. package/src/utils/Loading.ts +1 -1
  415. package/src/utils/Log.ts +1 -1
  416. package/src/utils/Mapper.ts +13 -2
  417. package/src/utils/Promise.ts +3 -1
  418. package/src/utils/Property.ts +6 -2
  419. package/src/utils/Sentence.ts +8 -2
  420. package/src/utils/State.ts +1 -1
  421. package/src/utils/View.ts +15 -22
  422. package/src/validation/Contraints.ts +9 -1
  423. package/src/validation/Validate.ts +26 -29
  424. package/src/validation/When.ts +13 -3
  425. package/dist/chunk-2L3GZ6NK.mjs.map +0 -1
  426. package/dist/chunk-3MOFYE2N.mjs.map +0 -1
  427. package/dist/chunk-5J3LAY32.mjs.map +0 -1
  428. package/dist/chunk-624IHTEI.mjs.map +0 -1
  429. package/dist/chunk-65W3AYRE.mjs.map +0 -1
  430. package/dist/chunk-7Z3YQCXR.mjs.map +0 -1
  431. package/dist/chunk-A5MC57TL.mjs.map +0 -1
  432. package/dist/chunk-ARN4MTMY.mjs.map +0 -1
  433. package/dist/chunk-BAXNN36F.mjs.map +0 -1
  434. package/dist/chunk-C7OPGGIF.mjs +0 -21
  435. package/dist/chunk-C7OPGGIF.mjs.map +0 -1
  436. package/dist/chunk-CJDDGEEK.mjs.map +0 -1
  437. package/dist/chunk-EB26LF5Z.mjs.map +0 -1
  438. package/dist/chunk-ELFAMVTF.mjs.map +0 -1
  439. package/dist/chunk-F4CWMZCV.mjs.map +0 -1
  440. package/dist/chunk-GARRF3U7.mjs.map +0 -1
  441. package/dist/chunk-GJFFYHHX.mjs.map +0 -1
  442. package/dist/chunk-GUSPHVF2.mjs.map +0 -1
  443. package/dist/chunk-H7NDGISC.mjs.map +0 -1
  444. package/dist/chunk-HBJUEFGA.mjs +0 -26
  445. package/dist/chunk-HBJUEFGA.mjs.map +0 -1
  446. package/dist/chunk-I2NKUYUM.mjs +0 -272
  447. package/dist/chunk-I2NKUYUM.mjs.map +0 -1
  448. package/dist/chunk-I3DRDMCS.mjs.map +0 -1
  449. package/dist/chunk-I5MPU33B.mjs.map +0 -1
  450. package/dist/chunk-IWLJEAQZ.mjs.map +0 -1
  451. package/dist/chunk-J64VE55O.mjs.map +0 -1
  452. package/dist/chunk-L7JZMM3J.mjs.map +0 -1
  453. package/dist/chunk-MRIELSWP.mjs.map +0 -1
  454. package/dist/chunk-NKHZO3ME.mjs.map +0 -1
  455. package/dist/chunk-NOMZAVQC.mjs.map +0 -1
  456. package/dist/chunk-PFAEQQXA.mjs +0 -900
  457. package/dist/chunk-PFAEQQXA.mjs.map +0 -1
  458. package/dist/chunk-PWCGCUT7.mjs.map +0 -1
  459. package/dist/chunk-Q5ATL34D.mjs +0 -13
  460. package/dist/chunk-Q5ATL34D.mjs.map +0 -1
  461. package/dist/chunk-Q6RSBDMM.mjs.map +0 -1
  462. package/dist/chunk-QRLGQY7M.mjs.map +0 -1
  463. package/dist/chunk-QRN4Y2QC.mjs.map +0 -1
  464. package/dist/chunk-S5RHU67S.mjs.map +0 -1
  465. package/dist/chunk-SG6BDC6T.mjs.map +0 -1
  466. package/dist/chunk-TG5IPJOG.mjs.map +0 -1
  467. package/dist/chunk-TQUDYF6E.mjs.map +0 -1
  468. package/dist/chunk-UWNXWKBU.mjs.map +0 -1
  469. package/dist/chunk-V7FP66LM.mjs.map +0 -1
  470. package/dist/chunk-WX6UP67J.mjs +0 -40
  471. package/dist/chunk-WX6UP67J.mjs.map +0 -1
  472. package/dist/chunk-WYT52YAX.mjs.map +0 -1
  473. package/dist/chunk-XLFC44Y3.mjs.map +0 -1
  474. package/dist/chunk-Y5WPU3ZU.mjs.map +0 -1
  475. package/dist/chunk-YHL2CUBI.mjs.map +0 -1
  476. package/dist/chunk-YUSOGMIJ.mjs +0 -183
  477. package/dist/chunk-YUSOGMIJ.mjs.map +0 -1
  478. package/dist/chunk-YXE66GAL.mjs +0 -19
  479. package/dist/chunk-YXE66GAL.mjs.map +0 -1
  480. package/dist/chunk-ZJKVMRGU.mjs.map +0 -1
  481. package/dist/data/index.d.ts +0 -7
  482. package/dist/data/index.mjs +0 -8
  483. package/dist/data/index.mjs.map +0 -1
  484. package/dist/domain/enums/Country.d.ts +0 -256
  485. package/dist/domain/enums/Country.mjs +0 -16
  486. package/dist/domain/enums/Currency.d.ts +0 -127
  487. package/dist/domain/enums/Currency.mjs +0 -19
  488. package/dist/domain/enums/Environment.mjs +0 -23
  489. package/dist/domain/enums/Environment.mjs.map +0 -1
  490. package/dist/domain/enums/Locale.d.ts +0 -571
  491. package/dist/domain/enums/Locale.mjs +0 -594
  492. package/dist/domain/enums/Locale.mjs.map +0 -1
  493. package/dist/domain/enums/UnitOfMeasurement.d.ts +0 -10
  494. package/dist/domain/enums/UnitOfMeasurement.mjs +0 -16
  495. package/dist/domain/enums/UnitOfMeasurement.mjs.map +0 -1
  496. package/dist/domain/enums/UnitOfWeight.d.ts +0 -8
  497. package/dist/domain/enums/UnitOfWeight.mjs +0 -16
  498. package/dist/domain/enums/UnitOfWeight.mjs.map +0 -1
  499. package/dist/domain/enums/index.d.ts +0 -6
  500. package/dist/domain/enums/index.mjs +0 -7
  501. package/dist/domain/enums/index.mjs.map +0 -1
  502. package/dist/domain/index.d.ts +0 -9
  503. package/dist/domain/index.mjs +0 -10
  504. package/dist/domain/index.mjs.map +0 -1
  505. package/dist/domain/structs/Address.d.ts +0 -12
  506. package/dist/domain/structs/Address.mjs +0 -65
  507. package/dist/domain/structs/Address.mjs.map +0 -1
  508. package/dist/domain/structs/Box.d.ts +0 -15
  509. package/dist/domain/structs/Box.mjs +0 -58
  510. package/dist/domain/structs/Box.mjs.map +0 -1
  511. package/dist/domain/structs/Dimension.d.ts +0 -10
  512. package/dist/domain/structs/Dimension.mjs +0 -20
  513. package/dist/domain/structs/Dimension.mjs.map +0 -1
  514. package/dist/domain/structs/Money.d.ts +0 -12
  515. package/dist/domain/structs/Money.mjs +0 -23
  516. package/dist/domain/structs/Money.mjs.map +0 -1
  517. package/dist/domain/structs/Name.d.ts +0 -9
  518. package/dist/domain/structs/Name.mjs +0 -42
  519. package/dist/domain/structs/Name.mjs.map +0 -1
  520. package/dist/domain/structs/Weight.d.ts +0 -13
  521. package/dist/domain/structs/Weight.mjs +0 -57
  522. package/dist/domain/structs/Weight.mjs.map +0 -1
  523. package/dist/domain/structs/index.d.ts +0 -6
  524. package/dist/domain/structs/index.mjs +0 -7
  525. package/dist/domain/structs/index.mjs.map +0 -1
  526. package/dist/domain/values/DateTime.mjs +0 -21
  527. package/dist/domain/values/EAN.d.ts +0 -5
  528. package/dist/domain/values/EAN.mjs +0 -30
  529. package/dist/domain/values/EAN.mjs.map +0 -1
  530. package/dist/domain/values/Email.d.ts +0 -8
  531. package/dist/domain/values/Email.mjs +0 -37
  532. package/dist/domain/values/Email.mjs.map +0 -1
  533. package/dist/domain/values/IBAN.d.ts +0 -5
  534. package/dist/domain/values/IBAN.mjs +0 -30
  535. package/dist/domain/values/IBAN.mjs.map +0 -1
  536. package/dist/domain/values/PostalCode.d.ts +0 -8
  537. package/dist/domain/values/PostalCode.mjs +0 -19
  538. package/dist/domain/values/PostalCode.mjs.map +0 -1
  539. package/dist/domain/values/Slug.d.ts +0 -6
  540. package/dist/domain/values/Slug.mjs +0 -31
  541. package/dist/domain/values/Slug.mjs.map +0 -1
  542. package/dist/domain/values/Url.d.ts +0 -22
  543. package/dist/domain/values/Url.mjs +0 -36
  544. package/dist/domain/values/Url.mjs.map +0 -1
  545. package/dist/domain/values/index.d.ts +0 -7
  546. package/dist/domain/values/index.mjs +0 -8
  547. package/dist/domain/values/index.mjs.map +0 -1
  548. package/dist/health/index.d.ts +0 -2
  549. package/dist/health/index.mjs +0 -3
  550. package/dist/health/index.mjs.map +0 -1
  551. package/dist/http/index.d.ts +0 -12
  552. package/dist/http/index.mjs +0 -13
  553. package/dist/http/index.mjs.map +0 -1
  554. package/dist/process/index.d.ts +0 -5
  555. package/dist/process/index.mjs +0 -6
  556. package/dist/process/index.mjs.map +0 -1
  557. package/dist/resources/index.d.ts +0 -7
  558. package/dist/resources/index.mjs +0 -8
  559. package/dist/resources/index.mjs.map +0 -1
  560. package/dist/security/index.d.ts +0 -1
  561. package/dist/security/index.mjs +0 -2
  562. package/dist/security/index.mjs.map +0 -1
  563. package/dist/services/index.d.ts +0 -6
  564. package/dist/services/index.mjs +0 -7
  565. package/dist/services/index.mjs.map +0 -1
  566. package/dist/sql/index.d.ts +0 -10
  567. package/dist/sql/index.mjs +0 -11
  568. package/dist/sql/index.mjs.map +0 -1
  569. package/dist/types/index.d.ts +0 -43
  570. package/dist/types/index.mjs +0 -44
  571. package/dist/types/index.mjs.map +0 -1
  572. package/dist/utils/index.d.ts +0 -13
  573. package/dist/utils/index.mjs +0 -14
  574. package/dist/utils/index.mjs.map +0 -1
  575. package/dist/validation/index.d.ts +0 -3
  576. package/dist/validation/index.mjs +0 -4
  577. package/dist/validation/index.mjs.map +0 -1
  578. package/src/data/index.ts +0 -7
  579. package/src/domain/enums/Country.ts +0 -265
  580. package/src/domain/enums/Currency.ts +0 -133
  581. package/src/domain/enums/Locale.ts +0 -579
  582. package/src/domain/enums/UnitOfMeasurement.ts +0 -13
  583. package/src/domain/enums/UnitOfWeight.ts +0 -11
  584. package/src/domain/enums/countries.json +0 -251
  585. package/src/domain/enums/currencies.json +0 -1073
  586. package/src/domain/enums/index.ts +0 -6
  587. package/src/domain/enums/locales.json +0 -565
  588. package/src/domain/index.ts +0 -9
  589. package/src/domain/structs/Address.ts +0 -22
  590. package/src/domain/structs/Box.ts +0 -29
  591. package/src/domain/structs/Dimension.ts +0 -25
  592. package/src/domain/structs/Money.ts +0 -31
  593. package/src/domain/structs/Name.ts +0 -15
  594. package/src/domain/structs/Weight.ts +0 -35
  595. package/src/domain/structs/index.ts +0 -6
  596. package/src/domain/values/EAN.ts +0 -12
  597. package/src/domain/values/Email.ts +0 -20
  598. package/src/domain/values/IBAN.ts +0 -12
  599. package/src/domain/values/PostalCode.ts +0 -17
  600. package/src/domain/values/Slug.ts +0 -14
  601. package/src/domain/values/Url.ts +0 -73
  602. package/src/domain/values/index.ts +0 -7
  603. package/src/health/index.ts +0 -2
  604. package/src/http/index.ts +0 -12
  605. package/src/process/index.ts +0 -5
  606. package/src/resources/index.ts +0 -7
  607. package/src/security/index.ts +0 -1
  608. package/src/services/index.ts +0 -6
  609. package/src/sql/index.ts +0 -10
  610. package/src/types/index.ts +0 -43
  611. package/src/utils/index.ts +0 -13
  612. package/src/validation/index.ts +0 -3
  613. /package/dist/{chunk-GCPVSACZ.mjs.map → chunk-5YM5CLOG.mjs.map} +0 -0
  614. /package/dist/{chunk-2KKIXOMB.mjs.map → chunk-HNVAFEZP.mjs.map} +0 -0
  615. /package/dist/{chunk-OXVJLJIE.mjs.map → chunk-LXQQ5N6S.mjs.map} +0 -0
  616. /package/dist/{chunk-4ROYPQPC.mjs.map → chunk-OFGI5FLG.mjs.map} +0 -0
  617. /package/dist/domain/{values/DateTime.mjs.map → DateTime.mjs.map} +0 -0
  618. /package/dist/{domain/enums/Country.mjs.map → http/toResponse.mjs.map} +0 -0
  619. /package/dist/{domain/enums/Currency.mjs.map → types/Object.mjs.map} +0 -0
@@ -1,30 +1,27 @@
1
+ import {
2
+ isResponse
3
+ } from "./chunk-UYDZZAEK.mjs";
1
4
  import {
2
5
  HttpStatus,
3
- isHttpStatus,
4
- toHttpStatus
5
- } from "./chunk-GARRF3U7.mjs";
6
+ isHttpStatus
7
+ } from "./chunk-TMZRZLA2.mjs";
8
+ import {
9
+ choose
10
+ } from "./chunk-ARZEQQW5.mjs";
11
+ import {
12
+ isResults
13
+ } from "./chunk-4G6AW6D6.mjs";
6
14
  import {
7
- choose,
8
15
  isResult,
9
- isResults,
10
- toList,
11
16
  toResult
12
- } from "./chunk-PFAEQQXA.mjs";
17
+ } from "./chunk-J6KN572O.mjs";
13
18
  import {
14
- isA
15
- } from "./chunk-Q5ATL34D.mjs";
19
+ toList
20
+ } from "./chunk-J7XKOXMW.mjs";
16
21
  import {
17
22
  isDefined,
18
23
  isError
19
- } from "./chunk-UWNXWKBU.mjs";
20
-
21
- // src/http/Response.ts
22
- var isResponse = (r) => isA(r, "status", "body");
23
- var toResponse = (status, body, headers) => ({
24
- status: toHttpStatus(status),
25
- headers,
26
- body: rest.to(body)
27
- });
24
+ } from "./chunk-DEJ7A5PY.mjs";
28
25
 
29
26
  // src/http/RestResult.ts
30
27
  var hasErrors = (a) => isDefined(a?.error?.errors);
@@ -53,8 +50,6 @@ var isRestResult = (r) => isDefined(r) && (isDefined(r.data) || isDefined(r.erro
53
50
 
54
51
  export {
55
52
  rest,
56
- isRestResult,
57
- isResponse,
58
- toResponse
53
+ isRestResult
59
54
  };
60
- //# sourceMappingURL=chunk-XLFC44Y3.mjs.map
55
+ //# sourceMappingURL=chunk-ARTSACXM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/http/RestResult.ts"],"sourcesContent":["import { HttpStatus, isHttpStatus } from './HttpStatus';\nimport { isResponse } from './Response';\nimport { List, toList } from '../types/List';\nimport { Json } from '../types/Json';\nimport { isResult, Result, toResult } from '../types/Result';\nimport { isDefined, isError } from '../types/Is';\nimport { choose } from '../types/Case';\nimport { isResults } from '../types/Results';\nimport { Id } from '../types/Id';\n\nexport type RestResult = {\n data?: { code: number; items: List<Json>; itemCount: number; totalItems?: number; meta?: Json };\n error?: { code: number; message: string; errorCount: number; errors: List<Result> };\n};\n\nconst hasErrors = (a: any): a is { error: { code: number; errors: List<Result> } } => isDefined(a?.error?.errors);\nconst hasItems = (a: any): a is { data: { code: number; items: List<Json>; totalItems?: number; meta?: Json } } => isDefined(a?.data.items);\n\nexport const rest = {\n toData: (status: HttpStatus, items: Json[] = [], totalItems?: number, meta?: Json): RestResult => ({\n data: {\n code: status.status,\n items: toList(items),\n itemCount: items.length,\n totalItems,\n meta,\n },\n }),\n toError: (status: HttpStatus, errors: Result[] = [toResult(status.name)]): RestResult => ({\n error: {\n code: status.status,\n message: status.name ?? errors[0].message ?? 'Unknown',\n errors: toList(errors),\n errorCount: errors.length,\n },\n }),\n to: (payload?: any | any[], status?: HttpStatus): RestResult =>\n choose(payload)\n .is.not.defined(p => p, undefined as unknown as RestResult)\n .type(isHttpStatus, h => rest.toError(h ?? status ?? HttpStatus.InternalServerError, [toResult(h.name)]))\n .type(isResult, r => rest.toError(status ?? HttpStatus.BadRequest, [r]))\n .type(isError, e => rest.toError(status ?? HttpStatus.BadRequest, [e]))\n .type(isResults, r => rest.toError(status ?? HttpStatus.BadRequest, r.results))\n .type(isResponse, r => rest.toError(status ?? HttpStatus.byId(r.body.error?.code as Id), r.body.error?.errors))\n .type(hasErrors, e => rest.toError(status ?? HttpStatus.byId(e.error.code, HttpStatus.BadRequest), e.error.errors))\n .type(hasItems, d => rest.toData(status ?? HttpStatus.byId(d.data.code, HttpStatus.Ok), d.data.items, d.data.totalItems, d.data.meta))\n .else(p => rest.toData(status ?? HttpStatus.Ok, toList(p))),\n};\n\nexport const isRestResult = (r: unknown): r is RestResult => isDefined(r) && (isDefined((r as RestResult).data) || isDefined((r as RestResult).error));\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAM,YAAY,CAAC,MAAmE,UAAU,GAAG,OAAO,MAAM;AAChH,IAAM,WAAW,CAAC,MAAiG,UAAU,GAAG,KAAK,KAAK;AAEnI,IAAM,OAAO;AAAA,EAClB,QAAQ,CAAC,QAAoB,QAAgB,CAAC,GAAG,YAAqB,UAA6B;AAAA,IACjG,MAAM;AAAA,MACJ,MAAM,OAAO;AAAA,MACb,OAAO,OAAO,KAAK;AAAA,MACnB,WAAW,MAAM;AAAA,MACjB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA,SAAS,CAAC,QAAoB,SAAmB,CAAC,SAAS,OAAO,IAAI,CAAC,OAAmB;AAAA,IACxF,OAAO;AAAA,MACL,MAAM,OAAO;AAAA,MACb,SAAS,OAAO,QAAQ,OAAO,CAAC,EAAE,WAAW;AAAA,MAC7C,QAAQ,OAAO,MAAM;AAAA,MACrB,YAAY,OAAO;AAAA,IACrB;AAAA,EACF;AAAA,EACA,IAAI,CAAC,SAAuB,WAC1B,OAAO,OAAO,EACX,GAAG,IAAI,QAAQ,OAAK,GAAG,MAAkC,EACzD,KAAK,cAAc,OAAK,KAAK,QAAQ,KAAK,UAAU,WAAW,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EACvG,KAAK,UAAU,OAAK,KAAK,QAAQ,UAAU,WAAW,YAAY,CAAC,CAAC,CAAC,CAAC,EACtE,KAAK,SAAS,OAAK,KAAK,QAAQ,UAAU,WAAW,YAAY,CAAC,CAAC,CAAC,CAAC,EACrE,KAAK,WAAW,OAAK,KAAK,QAAQ,UAAU,WAAW,YAAY,EAAE,OAAO,CAAC,EAC7E,KAAK,YAAY,OAAK,KAAK,QAAQ,UAAU,WAAW,KAAK,EAAE,KAAK,OAAO,IAAU,GAAG,EAAE,KAAK,OAAO,MAAM,CAAC,EAC7G,KAAK,WAAW,OAAK,KAAK,QAAQ,UAAU,WAAW,KAAK,EAAE,MAAM,MAAM,WAAW,UAAU,GAAG,EAAE,MAAM,MAAM,CAAC,EACjH,KAAK,UAAU,OAAK,KAAK,OAAO,UAAU,WAAW,KAAK,EAAE,KAAK,MAAM,WAAW,EAAE,GAAG,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,IAAI,CAAC,EACpI,KAAK,OAAK,KAAK,OAAO,UAAU,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC;AAChE;AAEO,IAAM,eAAe,CAAC,MAAgC,UAAU,CAAC,MAAM,UAAW,EAAiB,IAAI,KAAK,UAAW,EAAiB,KAAK;","names":[]}
@@ -0,0 +1,315 @@
1
+ import {
2
+ isValidatable
3
+ } from "./chunk-OFGI5FLG.mjs";
4
+ import {
5
+ isValue
6
+ } from "./chunk-CAHTK3AT.mjs";
7
+ import {
8
+ isResults,
9
+ toResults
10
+ } from "./chunk-4G6AW6D6.mjs";
11
+ import {
12
+ toResult
13
+ } from "./chunk-J6KN572O.mjs";
14
+ import {
15
+ reject,
16
+ resolve
17
+ } from "./chunk-USGZFNWP.mjs";
18
+ import {
19
+ Exception
20
+ } from "./chunk-LYAPQ4QZ.mjs";
21
+ import {
22
+ text
23
+ } from "./chunk-FHW5K2RR.mjs";
24
+ import {
25
+ isEnum
26
+ } from "./chunk-UNHWYQ54.mjs";
27
+ import {
28
+ meta
29
+ } from "./chunk-PPWHEIZW.mjs";
30
+ import {
31
+ toList
32
+ } from "./chunk-J7XKOXMW.mjs";
33
+ import {
34
+ toArray
35
+ } from "./chunk-X7FZPY3P.mjs";
36
+ import {
37
+ asString
38
+ } from "./chunk-45GNHDKA.mjs";
39
+ import {
40
+ ofGet
41
+ } from "./chunk-SJGQU3OG.mjs";
42
+ import {
43
+ ofConstruct,
44
+ toName
45
+ } from "./chunk-ZPNFXK7Y.mjs";
46
+ import {
47
+ isArray,
48
+ isDefined,
49
+ isEmpty,
50
+ isFunction,
51
+ isIn,
52
+ isTrue
53
+ } from "./chunk-DEJ7A5PY.mjs";
54
+
55
+ // src/types/Try.ts
56
+ var Try = class _Try {
57
+ is = {
58
+ defined: (prop) => this.filter((v) => isDefined(prop ? prop(v) : v)),
59
+ empty: (prop) => this.filter((v) => isEmpty(prop ? prop(v) : v)),
60
+ valid: (prop) => this.filter((v) => validate(prop ? prop(v) : v).isValid),
61
+ true: (prop) => this.filter((v) => isTrue(prop ? prop(v) : v)),
62
+ false: (prop) => this.filter((v) => !isTrue(prop ? prop(v) : v)),
63
+ not: {
64
+ defined: (prop) => this.filter((v) => !isDefined(prop ? prop(v) : v)),
65
+ empty: (prop) => this.filter((v) => !isEmpty(prop ? prop(v) : v)),
66
+ valid: (prop) => this.filter((v) => !validate(prop ? prop(v) : v).isValid)
67
+ }
68
+ };
69
+ if = this.is;
70
+ static of = (c, ...args) => {
71
+ try {
72
+ const out = ofGet(c, ...args);
73
+ return new Success(out instanceof _Try ? out.value : out);
74
+ } catch (e) {
75
+ return new Failure(e);
76
+ }
77
+ };
78
+ };
79
+ var Success = class extends Try {
80
+ constructor(value) {
81
+ super();
82
+ this.value = value;
83
+ }
84
+ get error() {
85
+ throw new Error("No error found");
86
+ }
87
+ get isValid() {
88
+ return true;
89
+ }
90
+ map(f) {
91
+ return tryTo(f, this.value);
92
+ }
93
+ recover(f) {
94
+ return this;
95
+ }
96
+ recoverFrom(type, f) {
97
+ return this;
98
+ }
99
+ accept(f) {
100
+ return tryTo(() => {
101
+ f(this.value);
102
+ return this;
103
+ });
104
+ }
105
+ filter(predicate) {
106
+ return tryTo(() => {
107
+ if (predicate(this.value))
108
+ return this;
109
+ throw new Error(`Applying filter(${predicate.toString()}) failed.`);
110
+ });
111
+ }
112
+ or(value) {
113
+ return this.value;
114
+ }
115
+ orElse(value) {
116
+ return this.value;
117
+ }
118
+ orThrow(_error) {
119
+ return this.value;
120
+ }
121
+ };
122
+ var Failure = class _Failure extends Try {
123
+ constructor(error) {
124
+ super();
125
+ this.error = error;
126
+ }
127
+ get value() {
128
+ throw this.error;
129
+ }
130
+ get isValid() {
131
+ return false;
132
+ }
133
+ map(f) {
134
+ return new _Failure(this.error);
135
+ }
136
+ recover(f) {
137
+ return tryTo(f, this.error);
138
+ }
139
+ recoverFrom(type, f) {
140
+ return tryTo(() => this.error instanceof type ? this.recover(f) : this);
141
+ }
142
+ accept(f) {
143
+ return this;
144
+ }
145
+ filter(predicate) {
146
+ return this;
147
+ }
148
+ or(value) {
149
+ return ofGet(value);
150
+ }
151
+ orElse(value) {
152
+ return ofGet(value);
153
+ }
154
+ orThrow(error) {
155
+ throw ofConstruct(error);
156
+ }
157
+ };
158
+ var tryTo = (c, ...args) => Try.of(c, ...args);
159
+
160
+ // src/types/Case.ts
161
+ var CaseBuilder = class {
162
+ constructor(v) {
163
+ this.v = v;
164
+ }
165
+ case(pred, out) {
166
+ return new Case(this.v).case(pred, out);
167
+ }
168
+ type(guard, out) {
169
+ return new Case(this.v).type(guard, out);
170
+ }
171
+ equals(value, out) {
172
+ return new Case(this.v).equals(value, out);
173
+ }
174
+ is = {
175
+ defined: (prop, out) => new Case(this.v).case(isDefined(prop(this.v)), out),
176
+ empty: (prop, out) => new Case(this.v).case(isEmpty(prop(this.v)), out),
177
+ valid: (prop, out) => new Case(this.v).case(validate(prop(this.v)).isValid, out),
178
+ not: {
179
+ defined: (prop, out) => new Case(this.v).case(!isDefined(prop(this.v)), out),
180
+ empty: (prop, out) => new Case(this.v).case(!isEmpty(prop(this.v)), out),
181
+ valid: (prop, out) => new Case(this.v).case(!validate(prop(this.v)).isValid, out)
182
+ }
183
+ };
184
+ if = this.is;
185
+ };
186
+ var Case = class _Case {
187
+ constructor(value, outcome) {
188
+ this.value = value;
189
+ this.outcome = outcome;
190
+ }
191
+ case(pred, out) {
192
+ return tryTo(pred, this.value).is.true().map(() => ofGet(out, this.value)).map((res) => new Found(this.value, res)).or(this);
193
+ }
194
+ type(guard, out) {
195
+ return tryTo(guard, this.value).is.true().map(() => out(this.value)).map((res) => new Found(this.value, res)).or(this);
196
+ }
197
+ equals(value, out) {
198
+ return this.case(this.value === value, out);
199
+ }
200
+ is = {
201
+ defined: (prop, out) => new _Case(this.value).case(isDefined(prop(this.value)), out),
202
+ empty: (prop, out) => new _Case(this.value).case(isEmpty(prop(this.value)), out),
203
+ valid: (prop, out) => new _Case(this.value).case(validate(prop(this.value)).isValid, out),
204
+ not: {
205
+ defined: (prop, out) => new _Case(this.value).case(!isDefined(prop(this.value)), out),
206
+ empty: (prop, out) => new _Case(this.value).case(!isEmpty(prop(this.value)), out),
207
+ valid: (prop, out) => new _Case(this.value).case(!validate(prop(this.value)).isValid, out)
208
+ }
209
+ };
210
+ if = this.is;
211
+ else(alt) {
212
+ return ofGet(alt, this.value);
213
+ }
214
+ };
215
+ var Found = class extends Case {
216
+ constructor(value, outcome) {
217
+ super(value, outcome);
218
+ this.value = value;
219
+ this.outcome = outcome;
220
+ }
221
+ case(pred, out) {
222
+ return this;
223
+ }
224
+ type(guard, out) {
225
+ return this;
226
+ }
227
+ equals(value, out) {
228
+ return this;
229
+ }
230
+ is = {
231
+ defined: (_prop, _out) => this,
232
+ empty: (_prop, _out) => this,
233
+ valid: (_prop, _out) => this,
234
+ not: {
235
+ defined: (_prop, _out) => this,
236
+ empty: (_prop, _out) => this,
237
+ valid: (_prop, _out) => this
238
+ }
239
+ };
240
+ if = this.is;
241
+ else(alt) {
242
+ return this.outcome;
243
+ }
244
+ };
245
+ var choose = (value) => new CaseBuilder(value);
246
+
247
+ // src/validation/Validate.ts
248
+ var asResults = (subject, template, options = {}) => toResults(toResult(text(template).parse(subject, options), toName(subject)));
249
+ var validators = (subject) => meta(subject).keys("constraint").reduce((list, vs) => list.add(vs), toList());
250
+ var runValidator = (v, subject) => {
251
+ try {
252
+ const actual = isFunction(subject[v.property]) ? subject[v.property]() : subject[v.property];
253
+ const constraint = v.constraint(actual);
254
+ return isResults(constraint) ? constraint : !constraint ? asResults(subject, v.text, { ...v, actual }) : toResults();
255
+ } catch (e) {
256
+ return asResults(subject, asString(e));
257
+ }
258
+ };
259
+ var constraints = (subject) => validators(subject).map((vs) => runValidator(vs, subject)).reduce((rs, r) => rs.add(...r.results), toResults());
260
+ var validate = (subject) => choose(subject).is.not.defined(
261
+ (s) => s,
262
+ () => toResults("Subject is not defined.")
263
+ ).type(isEnum, (e) => e.isValid ? toResults() : asResults(e, "This is not a valid {type}.")).type(isValue, (v) => v.isValid ? toResults() : asResults(v, "This is not a valid {type}.")).type(isArray, (a) => a.map((i) => validate(i)).reduce((rs, r) => rs.add(...r.results), toResults())).type(isValidatable, (v) => constraints(v)).else(toResults());
264
+ var validateReject = (subject) => when(subject).not.isValid.reject();
265
+ var isValid = (t) => validate(t).isValid;
266
+
267
+ // src/validation/When.ts
268
+ var When = class _When {
269
+ constructor(subject, valid = true, results) {
270
+ this.subject = subject;
271
+ this.valid = valid;
272
+ this.results = results;
273
+ }
274
+ get not() {
275
+ return this.clone(!this.valid);
276
+ }
277
+ get and() {
278
+ return this.clone(this.valid);
279
+ }
280
+ get isDefined() {
281
+ return this.clone(this.valid === isDefined(this.subject));
282
+ }
283
+ get isEmpty() {
284
+ return this.clone(this.valid === isEmpty(this.subject));
285
+ }
286
+ get isTrue() {
287
+ return this.clone(this.valid === !!this.subject);
288
+ }
289
+ get isValid() {
290
+ this.results = validate(this.subject);
291
+ return this.clone(this.valid === this.results.isValid);
292
+ }
293
+ isInstance = (c) => this.clone(this.valid === this.subject instanceof c);
294
+ with = (pred) => this.clone(this.valid === ofGet(pred, this.subject));
295
+ contains = (property) => this.clone(this.valid === isDefined(ofGet(property, this.subject)));
296
+ in = (...items) => this.clone(this.valid === isIn(this.subject, toArray(...items)));
297
+ is = (item) => this.clone(this.valid === (this.subject === item));
298
+ reject = (error) => !this.valid ? resolve(this.subject) : reject(ofGet(error, this.subject) ?? this.results ?? Exception.Unknown);
299
+ recover = (f) => resolve(!this.valid ? this.subject : f(this.subject));
300
+ clone = (result = true) => new _When(this.subject, result, this.results);
301
+ };
302
+ var when = (subject) => new When(subject);
303
+
304
+ export {
305
+ When,
306
+ when,
307
+ asResults,
308
+ validate,
309
+ validateReject,
310
+ isValid,
311
+ Try,
312
+ tryTo,
313
+ choose
314
+ };
315
+ //# sourceMappingURL=chunk-ARZEQQW5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/Try.ts","../src/types/Case.ts","../src/validation/Validate.ts","../src/validation/When.ts"],"sourcesContent":["import { isDefined, isEmpty, isTrue } from './Is';\nimport { validate } from '../validation/Validate';\nimport { Construct, Constructor, ofConstruct } from './Constructor';\nimport { Validatable } from './Validatable';\nimport { Get, ofGet } from './Get';\nimport { Func } from './Func';\nimport { Optional } from './Types';\n\nexport abstract class Try<T = unknown> implements Validatable {\n is = {\n defined: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isDefined(prop ? prop(v) : v)),\n empty: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isEmpty(prop ? prop(v) : v)),\n valid: (prop?: Func<unknown, T>): Try<T> => this.filter(v => validate(prop ? prop(v) : v).isValid),\n true: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isTrue(prop ? prop(v) : v)),\n false: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !isTrue(prop ? prop(v) : v)),\n not: {\n defined: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !isDefined(prop ? prop(v) : v)),\n empty: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !isEmpty(prop ? prop(v) : v)),\n valid: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !validate(prop ? prop(v) : v).isValid),\n },\n };\n\n if = this.is;\n\n abstract get value(): T;\n\n abstract get error(): Error;\n\n abstract get isValid(): boolean;\n\n static of = <T>(c: Get<T | Try<T>>, ...args: unknown[]): Try<T> => {\n try {\n const out = ofGet(c, ...args);\n return new Success(out instanceof Try ? out.value : out);\n } catch (e) {\n return new Failure(e as Error);\n }\n };\n\n abstract map<U>(f: Func<U | Try<U>, T>): Try<U>;\n\n abstract recover(f: Func<T | Try<T>, Error>): Try<T>;\n\n abstract recoverFrom(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T>;\n\n abstract accept(f: Func<void, T>): Try<T>;\n\n abstract filter(predicate: Func<boolean, T>): Try<T>;\n\n abstract or(value: Get<T>): T;\n\n abstract orElse(value?: Get<T>): Optional<T>;\n\n abstract orThrow(error: Construct<Error>): T;\n}\n\nclass Success<T> extends Try<T> {\n constructor(readonly value: T) {\n super();\n }\n\n get error(): Error {\n throw new Error('No error found');\n }\n\n get isValid(): boolean {\n return true;\n }\n\n map<U>(f: Func<U | Try<U>, T>): Try<U> {\n return tryTo<U>(f, this.value);\n }\n\n recover(f: Func<T | Try<T>, Error>): Try<T> {\n return this;\n }\n\n recoverFrom(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T> {\n return this;\n }\n\n accept(f: Func<void, T>): Try<T> {\n return tryTo(() => {\n f(this.value);\n return this;\n });\n }\n\n filter(predicate: Func<boolean, T>): Try<T> {\n return tryTo(() => {\n if (predicate(this.value)) return this;\n throw new Error(`Applying filter(${predicate.toString()}) failed.`);\n });\n }\n\n or(value: Get<T>): T {\n return this.value;\n }\n\n orElse(value?: Get<T>): Optional<T> {\n return this.value;\n }\n\n orThrow(_error: Construct<Error>): T {\n return this.value;\n }\n}\n\nclass Failure<T> extends Try<T> {\n constructor(readonly error: Error) {\n super();\n }\n\n get value(): T {\n throw this.error;\n }\n\n get isValid(): boolean {\n return false;\n }\n\n map<U>(f: Func<U | Try<U>, T>): Try<U> {\n return new Failure<U>(this.error);\n }\n\n recover<U>(f: Func<U | Try<U>, Error>): Try<U> {\n return tryTo<U>(f, this.error);\n }\n\n recoverFrom<U>(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T> {\n return tryTo(() => (this.error instanceof type ? this.recover(f) : this));\n }\n\n accept(f: Func<void, T>): Try<T> {\n return this;\n }\n\n filter(predicate: Func<boolean, T>): Try<T> {\n return this;\n }\n\n or(value: Get<T>): T {\n return ofGet(value);\n }\n\n orElse(value?: Get<T>): Optional<T> {\n return ofGet(value);\n }\n\n orThrow(error: Construct<Error>): T {\n throw ofConstruct(error);\n }\n}\n\nexport const tryTo = <T>(c: Get<T | Try<T>>, ...args: unknown[]) => Try.of<T>(c, ...args);\n","import { Get, ofGet, Predicate } from './Get';\nimport { TypeGuard } from './TypeGuard';\nimport { Func } from './Func';\nimport { isDefined, isEmpty } from './Is';\nimport { validate } from '../validation/Validate';\nimport { tryTo } from './Try';\n\nclass CaseBuilder<V> {\n constructor(readonly v: V) {}\n\n case<T>(pred: Predicate<V>, out: Get<T, V>): Case<T, V> {\n return new Case<T, V>(this.v).case(pred, out);\n }\n\n type<T, U = unknown>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> {\n return new Case<T, V>(this.v).type<U>(guard, out);\n }\n\n equals<T>(value: V, out: Get<T, V>): Case<T, V> {\n return new Case<T, V>(this.v).equals(value, out);\n }\n\n is = {\n defined: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(isDefined(prop(this.v)), out),\n empty: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(isEmpty(prop(this.v)), out),\n valid: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(validate(prop(this.v)).isValid, out),\n not: {\n defined: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!isDefined(prop(this.v)), out),\n empty: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!isEmpty(prop(this.v)), out),\n valid: <T>(prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!validate(prop(this.v)).isValid, out),\n },\n };\n\n if = this.is;\n}\n\nclass Case<T, V = unknown> {\n constructor(\n protected value: V,\n protected outcome?: T\n ) {}\n\n case(pred: Predicate<V>, out: Get<T, V>): Case<T, V> {\n return tryTo(pred, this.value)\n .is.true()\n .map(() => ofGet(out, this.value))\n .map(res => new Found(this.value, res) as Case<T, V>)\n .or(this);\n }\n\n type<U>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> {\n return tryTo(guard, this.value)\n .is.true()\n .map(() => out(this.value as unknown as U))\n .map(res => new Found(this.value, res) as Case<T, V>)\n .or(this);\n }\n\n equals(value: V, out: Get<T, V>): Case<T, V> {\n return this.case(this.value === value, out);\n }\n\n is = {\n defined: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(isDefined(prop(this.value)), out),\n empty: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(isEmpty(prop(this.value)), out),\n valid: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(validate(prop(this.value)).isValid, out),\n not: {\n defined: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!isDefined(prop(this.value)), out),\n empty: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!isEmpty(prop(this.value)), out),\n valid: (prop: Func<unknown, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!validate(prop(this.value)).isValid, out),\n },\n };\n\n if = this.is;\n\n else(alt: Get<T, V>): T {\n return ofGet<T, V>(alt, this.value);\n }\n}\n\nclass Found<T, V> extends Case<T, V> {\n constructor(\n protected value: V,\n protected outcome: T\n ) {\n super(value, outcome);\n }\n\n case(pred: Predicate<V>, out: Get<T, V>): this {\n return this;\n }\n\n type<U>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> {\n return this;\n }\n\n equals(value: V, out: Get<T, V>): Case<T, V> {\n return this;\n }\n\n is = {\n defined: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n empty: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n valid: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n not: {\n defined: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n empty: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n valid: (_prop: Func<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n },\n };\n\n if = this.is;\n\n else(alt: Get<T, V>): T {\n return this.outcome;\n }\n}\n\nexport const choose = <V>(value: V) => new CaseBuilder<V>(value);\n","import { Constraint } from './Contraints';\nimport { when } from './When';\nimport { text } from '../types/Template';\nimport type { TemplateOptions } from '../types/Template';\nimport { isResults, Results, toResults } from '../types/Results';\nimport { toName } from '../types/Constructor';\nimport { toResult } from '../types/Result';\nimport { List, toList } from '../types/List';\nimport { meta } from '../types/Meta';\nimport { isArray, isFunction } from '../types/Is';\nimport { asString } from '../types/Text';\nimport { choose } from '../types/Case';\nimport { isEnum } from '../types/Enum';\nimport { isValue } from '../types/Value';\nimport { isValidatable } from '../types/Validatable';\nimport type { Text } from '../types/Text';\n\nexport type Validator = { property: string | symbol; constraint: Constraint; text: Text; actual?: Text };\n\nexport const asResults = (subject: unknown, template: Text, options: TemplateOptions = {}): Results =>\n toResults(toResult(text(template).parse(subject, options), toName(subject)));\n\nconst validators = (subject: unknown): List<Validator> =>\n meta(subject)\n .keys<List<Validator>>('constraint')\n .reduce((list, vs) => list.add(vs), toList<Validator>());\n\nconst runValidator = (v: Validator, subject?: unknown): Results => {\n try {\n const actual = isFunction((subject as any)[v.property]) ? (subject as any)[v.property]() : (subject as any)[v.property];\n const constraint = v.constraint(actual);\n return isResults(constraint) ? constraint : !constraint ? asResults(subject, v.text, { ...v, actual }) : toResults();\n } catch (e) {\n return asResults(subject, asString(e));\n }\n};\n\nconst constraints = (subject?: unknown): Results =>\n validators(subject)\n .map(vs => runValidator(vs, subject))\n .reduce((rs, r) => rs.add(...r.results), toResults());\n\nexport const validate = (subject?: unknown): Results =>\n choose(subject)\n .is.not.defined(\n s => s,\n () => toResults('Subject is not defined.')\n )\n .type(isEnum, e => (e.isValid ? toResults() : asResults(e, 'This is not a valid {type}.')))\n .type(isValue, v => (v.isValid ? toResults() : asResults(v, 'This is not a valid {type}.')))\n .type(isArray, a => a.map(i => validate(i)).reduce((rs, r) => rs.add(...r.results), toResults()))\n .type(isValidatable, v => constraints(v))\n .else(toResults());\n\nexport const validateReject = <T>(subject: T): Promise<T> => when(subject).not.isValid.reject();\n\nexport const isValid = <T>(t: T): boolean => validate(t).isValid;\n","import { validate } from './Validate';\nimport { Results } from '../types/Results';\nimport { Constructor } from '../types/Constructor';\nimport { Get, ofGet, Predicate } from '../types/Get';\nimport { isDefined, isEmpty, isIn } from '../types/Is';\nimport { toArray } from '../types/Array';\nimport { ErrorOrigin } from '../types/ErrorOrigin';\nimport { reject, resolve } from '../utils/Promise';\nimport { Exception } from '../types/Exception';\n\nexport class When<W> {\n constructor(\n readonly subject: W,\n readonly valid = true,\n private results?: Results\n ) {}\n\n get not(): When<W> {\n return this.clone(!this.valid);\n }\n\n get and(): When<W> {\n return this.clone(this.valid);\n }\n\n get isDefined(): When<W> {\n return this.clone(this.valid === isDefined(this.subject));\n }\n\n get isEmpty(): When<W> {\n return this.clone(this.valid === isEmpty(this.subject));\n }\n\n get isTrue(): When<W> {\n return this.clone(this.valid === !!this.subject);\n }\n\n get isValid(): When<W> {\n this.results = validate(this.subject);\n return this.clone(this.valid === this.results.isValid);\n }\n\n isInstance = <U>(c: Constructor<U>): When<W> => this.clone(this.valid === this.subject instanceof c);\n\n with = (pred: Predicate<W>): When<W> => this.clone(this.valid === ofGet(pred, this.subject));\n\n contains = (property: (w: W) => unknown): When<W> => this.clone(this.valid === isDefined(ofGet(property, this.subject)));\n\n in = (...items: W[]): When<W> => this.clone(this.valid === isIn(this.subject, toArray(...items)));\n\n is = (item: W): When<W> => this.clone(this.valid === (this.subject === item));\n\n reject = (error?: Get<ErrorOrigin, W>): Promise<NonNullable<W>> =>\n !this.valid ? resolve(this.subject as NonNullable<W>) : reject(ofGet(error, this.subject) ?? this.results ?? Exception.Unknown);\n\n recover = (f: (item: W) => W | Promise<W>): Promise<W> => resolve(!this.valid ? this.subject : f(this.subject));\n\n protected clone = (result = true): When<W> => new When(this.subject, result, this.results);\n}\n\nexport const when = <T>(subject: T): When<T> => new When<T>(subject);\n"],"mappings":"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","names":[]}
@@ -0,0 +1,30 @@
1
+ import {
2
+ asString
3
+ } from "./chunk-45GNHDKA.mjs";
4
+ import {
5
+ isDefined
6
+ } from "./chunk-DEJ7A5PY.mjs";
7
+
8
+ // src/types/Value.ts
9
+ var Value = class {
10
+ constructor(value) {
11
+ this.value = value;
12
+ this.value = value;
13
+ }
14
+ get isValid() {
15
+ return isDefined(this.value);
16
+ }
17
+ toJSON() {
18
+ return this.value;
19
+ }
20
+ toString() {
21
+ return asString(this.value);
22
+ }
23
+ };
24
+ var isValue = (v) => v instanceof Value;
25
+
26
+ export {
27
+ Value,
28
+ isValue
29
+ };
30
+ //# sourceMappingURL=chunk-CAHTK3AT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/Value.ts"],"sourcesContent":["import { Validatable } from './Validatable';\nimport { isDefined } from './Is';\nimport { JsonValue } from './Json';\nimport { asString } from './Text';\n\nexport class Value<V = string> implements Validatable {\n constructor(readonly value: V) {\n this.value = value;\n }\n\n get isValid(): boolean {\n return isDefined(this.value);\n }\n\n toJSON(): JsonValue {\n return this.value as unknown as JsonValue;\n }\n\n toString(): string {\n return asString(this.value);\n }\n}\n\nexport const isValue = (v?: unknown): v is Value => v instanceof Value;\n"],"mappings":";;;;;;;;AAKO,IAAM,QAAN,MAA+C;AAAA,EACpD,YAAqB,OAAU;AAAV;AACnB,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,IAAI,UAAmB;AACrB,WAAO,UAAU,KAAK,KAAK;AAAA,EAC7B;AAAA,EAEA,SAAoB;AAClB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,WAAmB;AACjB,WAAO,SAAS,KAAK,KAAK;AAAA,EAC5B;AACF;AAEO,IAAM,UAAU,CAAC,MAA4B,aAAa;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  Enum
3
- } from "./chunk-PFAEQQXA.mjs";
3
+ } from "./chunk-UNHWYQ54.mjs";
4
4
  import {
5
5
  ofConstruct
6
- } from "./chunk-UWNXWKBU.mjs";
6
+ } from "./chunk-ZPNFXK7Y.mjs";
7
7
 
8
8
  // src/data/Database.ts
9
9
  var DefaultProvider = class {
@@ -22,4 +22,4 @@ export {
22
22
  DefaultProvider,
23
23
  Database
24
24
  };
25
- //# sourceMappingURL=chunk-ARN4MTMY.mjs.map
25
+ //# sourceMappingURL=chunk-D4K4MC24.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/Database.ts"],"sourcesContent":["import { DataProvider } from './DataProvider';\nimport { Enum } from '../types/Enum';\nimport { Constructor, ofConstruct } from '../types/Constructor';\n\nexport type DatabaseOptions = {\n user?: string;\n password?: string;\n host?: string;\n port?: number;\n cluster?: string;\n connectionString?: string;\n maxPoolSize?: number;\n minPoolSize?: number;\n maxIdleTimeMS?: number;\n};\n\nexport class DefaultProvider implements DataProvider {}\n\nexport class Database extends Enum {\n static readonly Default = new Database('Default', DefaultProvider);\n\n constructor(\n name: string,\n readonly provider: Constructor<DataProvider> | DataProvider,\n readonly options?: DatabaseOptions\n ) {\n super(name);\n }\n\n provide = <P>(): P => ofConstruct(this.provider, this);\n}\n"],"mappings":";;;;;;;;AAgBO,IAAM,kBAAN,MAA8C;AAAC;AAE/C,IAAM,WAAN,MAAM,kBAAiB,KAAK;AAAA,EAGjC,YACE,MACS,UACA,SACT;AACA,UAAM,IAAI;AAHD;AACA;AAAA,EAGX;AAAA,EARA,OAAgB,UAAU,IAAI,UAAS,WAAW,eAAe;AAAA,EAUjE,UAAU,MAAY,YAAY,KAAK,UAAU,IAAI;AACvD;","names":[]}
@@ -3,28 +3,34 @@ import {
3
3
  } from "./chunk-DICMUQFL.mjs";
4
4
  import {
5
5
  isEqual
6
- } from "./chunk-2KKIXOMB.mjs";
6
+ } from "./chunk-HNVAFEZP.mjs";
7
+ import {
8
+ asJson,
9
+ json
10
+ } from "./chunk-IAXKOENJ.mjs";
7
11
  import {
8
12
  isPageList,
9
13
  toPageList
10
- } from "./chunk-57QV3J5N.mjs";
14
+ } from "./chunk-A62OK7XE.mjs";
15
+ import {
16
+ choose
17
+ } from "./chunk-ARZEQQW5.mjs";
11
18
  import {
12
- asJson,
13
- choose,
14
- json,
15
19
  meta
16
- } from "./chunk-PFAEQQXA.mjs";
20
+ } from "./chunk-PPWHEIZW.mjs";
17
21
  import {
18
22
  ifDefined
19
- } from "./chunk-PWCGCUT7.mjs";
23
+ } from "./chunk-JSON7A4X.mjs";
24
+ import {
25
+ isConstructor,
26
+ use
27
+ } from "./chunk-ZPNFXK7Y.mjs";
20
28
  import {
21
29
  isArray,
22
30
  isBoolean,
23
- isConstructor,
24
31
  isFunction,
25
- isString,
26
- use
27
- } from "./chunk-UWNXWKBU.mjs";
32
+ isString
33
+ } from "./chunk-DEJ7A5PY.mjs";
28
34
 
29
35
  // src/utils/View.ts
30
36
  var ignore = Symbol("view.ignore");
@@ -82,4 +88,4 @@ export {
82
88
  view,
83
89
  views
84
90
  };
85
- //# sourceMappingURL=chunk-624IHTEI.mjs.map
91
+ //# sourceMappingURL=chunk-D5FLGKVR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/View.ts"],"sourcesContent":["import { traverse } from './Traverse';\nimport { ifDefined } from './If';\nimport { Primitive } from '../types/Primitive';\nimport { Constructor, isConstructor, use } from '../types/Constructor';\nimport { asJson, json, Json } from '../types/Json';\nimport { choose } from '../types/Case';\nimport { isArray, isBoolean, isFunction, isString } from '../types/Is';\nimport { meta } from '../types/Meta';\nimport { isPageList, PageList, toPageList } from '../types/PageList';\nimport { List } from '../types/List';\nimport { isEqual } from '../types/IsEqual';\nimport { DontInfer } from '../types/Types';\n\ntype Func<T = unknown> = (a: any, key?: string) => T;\ntype Viewer = { key: string; f: Func };\n\ntype ViewType = Primitive | Constructor | Func | View | undefined;\ntype ViewRecord<V = Json> = Partial<Record<keyof V, ViewType>>;\n\nconst ignore = Symbol('view.ignore');\nconst keep = Symbol('view.keep');\n\nexport const toViewer = (key: string, value: ViewType): Viewer =>\n choose(value)\n .is.not.defined(v => v, { key, f: () => undefined } as Viewer)\n .type(isBoolean, b => ({ key, f: () => b }))\n .equals(ignore, { key, f: () => undefined })\n .equals(keep, { key, f: (a: any) => traverse(a, key) })\n .type(isString, s => ({ key, f: (a: any) => traverse(a, s) }))\n .type(isConstructor, c => ({\n key,\n f: (a, key) => use(traverse(a, key), v => (isArray(v) ? v.map(i => optional(c, i)) : optional(c, v))),\n }))\n .type(isSimpleView, f => ({ key, f: (a: any) => f.from(traverse(a, key)) }))\n .type(isFunction, f => ({ key, f }))\n .else(v => ({ key, f: () => v }));\n\nconst optional = (c: Constructor, v: any) =>\n ifDefined(\n v,\n i => new c(i),\n () => v\n );\n\nconst toViewers = (views: ViewRecord): Viewer[] =>\n meta(views)\n .entries<ViewType>()\n .map(([k, v]) => toViewer(k, v));\n\nexport class View<V = Json> {\n constructor(\n private views = {} as ViewRecord<V>,\n readonly startsFrom: 'scratch' | 'source' = 'scratch',\n readonly viewers: Viewer[] = toViewers(views)\n ) {}\n\n get fromSource(): View<V> {\n return new View(this.views, 'source', this.viewers);\n }\n\n from<T = unknown>(source: PageList<T>): PageList<V>;\n from<T = unknown>(source: List<T>): List<V>;\n from<T = unknown>(source: T[]): V[];\n from<T = unknown>(source: T): V;\n from<T = unknown>(source: PageList<T> | List<T> | T[] | T): PageList<V> | List<V> | V[] | V {\n if (isPageList(source))\n return toPageList(\n source.map(s => this.reduce(s)),\n source\n );\n if (isArray(source)) return source.map(s => this.reduce(s));\n return this.reduce(source);\n }\n\n same = (one?: unknown, another?: unknown): boolean => isEqual(this.from(one), this.from(another));\n\n private reduce = (source: any): any =>\n use(asJson(source), src => this.viewers.reduce((acc, v) => json.set(acc, v.key, v.f(src, v.key)), this.startsFrom === 'scratch' ? {} : src));\n}\n\nexport const isSimpleView = (a: unknown): a is View => a instanceof View;\n\nexport const view = <V = Json>(views: ViewRecord<DontInfer<V>>): View<V> => new View<V>(views);\n\nexport const views = {\n ignore,\n keep,\n skip: ignore,\n value: (value: unknown) => () => value,\n or: {\n key: (altKey: string) => (a: unknown, key?: string) => traverse(a, key) ?? traverse(a, altKey),\n value: (altValue: unknown) => (a: unknown, key?: string) => traverse(a, key) ?? altValue,\n func: (altFunc: Func) => (a: unknown, key?: string) => traverse(a, key) ?? altFunc(a, key),\n },\n};\n\n// spread: (a: any, key: string) => ({...a, ...(use(traverse(a, key), v => isObject(v) ? v : ({[key]: v})))}),\n"],"mappings":"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","names":["key","views"]}
@@ -1,21 +1,3 @@
1
- import {
2
- isFunc
3
- } from "./chunk-PIRWVOO2.mjs";
4
-
5
- // src/types/Constructor.ts
6
- var isConstructor = (c) => (isDefined(c) && isFunc(c) && c.prototype && c.prototype.constructor) === c;
7
- var ofConstruct = (c, ...args) => isConstructor(c) ? new c(...args) : isFunc(c) ? c(...args) : c;
8
- var toName = (subject, postfix = "") => subject?.constructor?.name?.replace(postfix, "").toLowerCase() ?? "";
9
- var isPromise = (value) => {
10
- return value instanceof Promise;
11
- };
12
- var on = (t, f) => {
13
- const result = f(t);
14
- return isPromise(result) ? result.then(() => t) : t;
15
- };
16
- var use = (t, f) => f(t);
17
- var ifA = (c, t, alt) => !isPrimitive(t) && t instanceof c ? t : alt ? ifA(c, alt) : void 0;
18
-
19
1
  // src/types/Is.ts
20
2
  var isDefined = (o) => o !== void 0 && o !== null;
21
3
  var isUndefined = (v) => v === void 0 || v === null;
@@ -30,29 +12,15 @@ var isObject = (o) => o != null && typeof o === "object" && !isArray(o);
30
12
  var isEmptyObject = (o) => isObject(o) && Object.getOwnPropertyNames(o).length === 0;
31
13
  var isFunction = (o) => isDefined(o) && typeof o === "function";
32
14
  var isArray = (o) => isDefined(o) && o instanceof Array;
33
- var isInstance = (ctor, o) => isFunction(ctor) && o instanceof ctor;
34
15
  var isIn = (o, values) => isArray(values) && values.some((v) => v === o);
35
16
  var isIntersecting = (o, values) => isArray(o) && isArray(values) && o.some((ov) => isIn(ov, values));
36
17
  var isError = (e) => isDefined(e) && e instanceof Error;
37
- var isIdentity = (by) => use(by, (b) => isObject(b) && isDefined(b.id));
38
18
  var isNotPresent = (...os) => os.some(
39
19
  (o) => o === null || o === void 0 || o === "" || o instanceof Array && o.length === 0 || typeof o === "object" && Object.getOwnPropertyNames(o).length === 0
40
20
  );
41
21
  var isPresent = (...os) => !isNotPresent(...os);
42
22
 
43
- // src/types/Primitive.ts
44
- var isPrimitive = (v) => {
45
- return v === null || v === void 0 || isIn(typeof v, ["string", "number", "bigint", "boolean", "symbol"]);
46
- };
47
-
48
23
  export {
49
- isPrimitive,
50
- isConstructor,
51
- ofConstruct,
52
- toName,
53
- on,
54
- use,
55
- ifA,
56
24
  isDefined,
57
25
  isUndefined,
58
26
  isEmpty,
@@ -66,12 +34,10 @@ export {
66
34
  isEmptyObject,
67
35
  isFunction,
68
36
  isArray,
69
- isInstance,
70
37
  isIn,
71
38
  isIntersecting,
72
39
  isError,
73
- isIdentity,
74
40
  isNotPresent,
75
41
  isPresent
76
42
  };
77
- //# sourceMappingURL=chunk-UWNXWKBU.mjs.map
43
+ //# sourceMappingURL=chunk-DEJ7A5PY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/Is.ts"],"sourcesContent":["export const isDefined = <T = unknown>(o?: T): o is NonNullable<T> => o !== undefined && o !== null;\n\nexport const isUndefined = (v?: unknown): v is never => v === undefined || v === null;\n\nexport const isEmpty = (o?: unknown): boolean => o === '' || o === null || o === undefined || (isArray(o) && o.length === 0);\n\nexport const isNotEmpty = <T = unknown>(o?: unknown): o is NonNullable<T> => o !== '' && o !== null && o !== undefined && (!isArray(o) || o.length > 0);\n\nexport const isString = (o?: unknown): o is string => o instanceof String || typeof o === 'string';\n\nexport const isIsoDateString = (o?: unknown): o is string =>\n isString(o) && /^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$/.test(o);\n\nexport const isBoolean = (o?: unknown): o is boolean => isDefined(o) && typeof o === 'boolean';\n\nexport const isTrue = (o?: unknown): o is true => (isFunction(o) ? isTrue(o()) : isBoolean(o) ? o : !!o);\n\nexport const isNumber = (o?: unknown): o is number => isDefined(o) && typeof o === 'number' && !Number.isNaN(o);\n\nexport const isObject = (o?: unknown): o is Record<string, unknown> => o != null && typeof o === 'object' && !isArray(o);\n\nexport const isEmptyObject = (o?: unknown): boolean => isObject(o) && Object.getOwnPropertyNames(o).length === 0;\n\nexport const isFunction = (o?: unknown): o is (...params: unknown[]) => unknown => isDefined(o) && typeof o === 'function';\n\nexport const isArray = <T = any>(o?: unknown): o is Array<T> => isDefined(o) && o instanceof Array;\n\nexport const isIn = (o: unknown, values: unknown[]): boolean => isArray(values) && values.some(v => v === o);\n\nexport const isIntersecting = (o?: unknown[], values?: unknown[]): boolean => isArray(o) && isArray(values) && o.some(ov => isIn(ov, values));\n\nexport const isError = (e: unknown): e is Error => isDefined(e) && e instanceof Error;\n\nexport const isNotPresent = (...os: unknown[]): boolean =>\n os.some(\n o =>\n o === null ||\n o === undefined ||\n o === '' ||\n (o instanceof Array && o.length === 0) ||\n (typeof o === 'object' && Object.getOwnPropertyNames(o).length === 0)\n );\n\nexport const isPresent = (...os: unknown[]): boolean => !isNotPresent(...os);\n"],"mappings":";AAAO,IAAM,YAAY,CAAc,MAA+B,MAAM,UAAa,MAAM;AAExF,IAAM,cAAc,CAAC,MAA4B,MAAM,UAAa,MAAM;AAE1E,IAAM,UAAU,CAAC,MAAyB,MAAM,MAAM,MAAM,QAAQ,MAAM,UAAc,QAAQ,CAAC,KAAK,EAAE,WAAW;AAEnH,IAAM,aAAa,CAAc,MAAqC,MAAM,MAAM,MAAM,QAAQ,MAAM,WAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS;AAE9I,IAAM,WAAW,CAAC,MAA6B,aAAa,UAAU,OAAO,MAAM;AAEnF,IAAM,kBAAkB,CAAC,MAC9B,SAAS,CAAC,KAAK,6EAA6E,KAAK,CAAC;AAE7F,IAAM,YAAY,CAAC,MAA8B,UAAU,CAAC,KAAK,OAAO,MAAM;AAE9E,IAAM,SAAS,CAAC,MAA4B,WAAW,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC;AAE/F,IAAM,WAAW,CAAC,MAA6B,UAAU,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC,OAAO,MAAM,CAAC;AAEvG,IAAM,WAAW,CAAC,MAA8C,KAAK,QAAQ,OAAO,MAAM,YAAY,CAAC,QAAQ,CAAC;AAEhH,IAAM,gBAAgB,CAAC,MAAyB,SAAS,CAAC,KAAK,OAAO,oBAAoB,CAAC,EAAE,WAAW;AAExG,IAAM,aAAa,CAAC,MAAwD,UAAU,CAAC,KAAK,OAAO,MAAM;AAEzG,IAAM,UAAU,CAAU,MAA+B,UAAU,CAAC,KAAK,aAAa;AAEtF,IAAM,OAAO,CAAC,GAAY,WAA+B,QAAQ,MAAM,KAAK,OAAO,KAAK,OAAK,MAAM,CAAC;AAEpG,IAAM,iBAAiB,CAAC,GAAe,WAAgC,QAAQ,CAAC,KAAK,QAAQ,MAAM,KAAK,EAAE,KAAK,QAAM,KAAK,IAAI,MAAM,CAAC;AAErI,IAAM,UAAU,CAAC,MAA2B,UAAU,CAAC,KAAK,aAAa;AAEzE,IAAM,eAAe,IAAI,OAC9B,GAAG;AAAA,EACD,OACE,MAAM,QACN,MAAM,UACN,MAAM,MACL,aAAa,SAAS,EAAE,WAAW,KACnC,OAAO,MAAM,YAAY,OAAO,oBAAoB,CAAC,EAAE,WAAW;AACvE;AAEK,IAAM,YAAY,IAAI,OAA2B,CAAC,aAAa,GAAG,EAAE;","names":[]}
@@ -0,0 +1,13 @@
1
+ import {
2
+ isIn
3
+ } from "./chunk-DEJ7A5PY.mjs";
4
+
5
+ // src/types/Primitive.ts
6
+ var isPrimitive = (v) => {
7
+ return v === null || v === void 0 || isIn(typeof v, ["string", "number", "bigint", "boolean", "symbol"]);
8
+ };
9
+
10
+ export {
11
+ isPrimitive
12
+ };
13
+ //# sourceMappingURL=chunk-DXQSIBC7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/Primitive.ts"],"sourcesContent":["import { isIn } from './Is';\n\nexport type Primitive = string | number | bigint | boolean | symbol | null | undefined;\n\nexport const isPrimitive = (v?: unknown): v is Primitive => {\n return v === null || v === undefined || isIn(typeof v, ['string', 'number', 'bigint', 'boolean', 'symbol']);\n};\n"],"mappings":";;;;;AAIO,IAAM,cAAc,CAAC,MAAgC;AAC1D,SAAO,MAAM,QAAQ,MAAM,UAAa,KAAK,OAAO,GAAG,CAAC,UAAU,UAAU,UAAU,WAAW,QAAQ,CAAC;AAC5G;","names":[]}