@thisisagile/easy 15.26.1 → 15.27.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 (678) hide show
  1. package/dist/chunk-35PSIDGU.mjs +17 -0
  2. package/dist/chunk-35PSIDGU.mjs.map +1 -0
  3. package/dist/chunk-3HTSHJPL.mjs +26 -0
  4. package/dist/chunk-3HTSHJPL.mjs.map +1 -0
  5. package/dist/chunk-3WOYFN2Q.mjs +18 -0
  6. package/dist/chunk-3WOYFN2Q.mjs.map +1 -0
  7. package/dist/chunk-4AP5H3OQ.mjs +46 -0
  8. package/dist/chunk-4AP5H3OQ.mjs.map +1 -0
  9. package/dist/chunk-4EVQZKMK.mjs +15 -0
  10. package/dist/chunk-4EVQZKMK.mjs.map +1 -0
  11. package/dist/chunk-4QX4EMLL.mjs +13 -0
  12. package/dist/chunk-4QX4EMLL.mjs.map +1 -0
  13. package/dist/chunk-5AF55QCJ.mjs +51 -0
  14. package/dist/chunk-5AF55QCJ.mjs.map +1 -0
  15. package/dist/chunk-6NOTDYUE.mjs +272 -0
  16. package/dist/chunk-6NOTDYUE.mjs.map +1 -0
  17. package/dist/chunk-6OW7KEN5.mjs +94 -0
  18. package/dist/chunk-6OW7KEN5.mjs.map +1 -0
  19. package/dist/chunk-74AOBBOZ.mjs +113 -0
  20. package/dist/chunk-74AOBBOZ.mjs.map +1 -0
  21. package/dist/chunk-7EP6VCI3.mjs +60 -0
  22. package/dist/chunk-7EP6VCI3.mjs.map +1 -0
  23. package/dist/{types/PageList.js → chunk-7NYZAGM3.mjs} +31 -48
  24. package/dist/chunk-7NYZAGM3.mjs.map +1 -0
  25. package/dist/chunk-7RIXMU5L.mjs +50 -0
  26. package/dist/chunk-7RIXMU5L.mjs.map +1 -0
  27. package/dist/chunk-A7OYYR2S.mjs +48 -0
  28. package/dist/chunk-A7OYYR2S.mjs.map +1 -0
  29. package/dist/chunk-ADJAEGCT.mjs +21 -0
  30. package/dist/chunk-ADJAEGCT.mjs.map +1 -0
  31. package/dist/chunk-AKYA7FHU.mjs +15 -0
  32. package/dist/chunk-AKYA7FHU.mjs.map +1 -0
  33. package/dist/chunk-CLKUH5JA.mjs +42 -0
  34. package/dist/chunk-CLKUH5JA.mjs.map +1 -0
  35. package/dist/chunk-CMRS457E.mjs +11 -0
  36. package/dist/chunk-CMRS457E.mjs.map +1 -0
  37. package/dist/chunk-D54TPU6G.mjs +43 -0
  38. package/dist/chunk-D54TPU6G.mjs.map +1 -0
  39. package/dist/chunk-DICMUQFL.mjs +11 -0
  40. package/dist/chunk-DICMUQFL.mjs.map +1 -0
  41. package/dist/chunk-EZC3HAYN.mjs +70 -0
  42. package/dist/chunk-EZC3HAYN.mjs.map +1 -0
  43. package/dist/chunk-FAAERRP2.mjs +37 -0
  44. package/dist/chunk-FAAERRP2.mjs.map +1 -0
  45. package/dist/chunk-FSK4W6I2.mjs +33 -0
  46. package/dist/chunk-FSK4W6I2.mjs.map +1 -0
  47. package/dist/chunk-G7QSW2EB.mjs +23 -0
  48. package/dist/chunk-G7QSW2EB.mjs.map +1 -0
  49. package/dist/chunk-GDD652NR.mjs +94 -0
  50. package/dist/chunk-GDD652NR.mjs.map +1 -0
  51. package/dist/chunk-GGC4TWMF.mjs +40 -0
  52. package/dist/chunk-GGC4TWMF.mjs.map +1 -0
  53. package/dist/chunk-GI5TZOAG.mjs +30 -0
  54. package/dist/chunk-GI5TZOAG.mjs.map +1 -0
  55. package/dist/chunk-GVX6S54O.mjs +54 -0
  56. package/dist/chunk-GVX6S54O.mjs.map +1 -0
  57. package/dist/chunk-H22IHXDC.mjs +23 -0
  58. package/dist/chunk-H22IHXDC.mjs.map +1 -0
  59. package/dist/chunk-H6GKGVYF.mjs +18 -0
  60. package/dist/chunk-H6GKGVYF.mjs.map +1 -0
  61. package/dist/chunk-HNB4RM5S.mjs +89 -0
  62. package/dist/chunk-HNB4RM5S.mjs.map +1 -0
  63. package/dist/chunk-I3VZW3XF.mjs +46 -0
  64. package/dist/chunk-I3VZW3XF.mjs.map +1 -0
  65. package/dist/chunk-IJFQ7PRU.mjs +19 -0
  66. package/dist/chunk-IJFQ7PRU.mjs.map +1 -0
  67. package/dist/chunk-JER7KLEK.mjs +82 -0
  68. package/dist/chunk-JER7KLEK.mjs.map +1 -0
  69. package/dist/chunk-JXJ5LRH3.mjs +30 -0
  70. package/dist/chunk-JXJ5LRH3.mjs.map +1 -0
  71. package/dist/chunk-L2BMMXCX.mjs +79 -0
  72. package/dist/chunk-L2BMMXCX.mjs.map +1 -0
  73. package/dist/chunk-LB7OMB5S.mjs +57 -0
  74. package/dist/chunk-LB7OMB5S.mjs.map +1 -0
  75. package/dist/chunk-LCDQWW2Y.mjs +18 -0
  76. package/dist/chunk-LCDQWW2Y.mjs.map +1 -0
  77. package/dist/chunk-LD64IICE.mjs +28 -0
  78. package/dist/chunk-LD64IICE.mjs.map +1 -0
  79. package/dist/chunk-LV7HNQ3N.mjs +183 -0
  80. package/dist/chunk-LV7HNQ3N.mjs.map +1 -0
  81. package/dist/chunk-M4UUIOW6.mjs +86 -0
  82. package/dist/chunk-M4UUIOW6.mjs.map +1 -0
  83. package/dist/chunk-MDLVDMKY.mjs +11 -0
  84. package/dist/chunk-MDLVDMKY.mjs.map +1 -0
  85. package/dist/chunk-NF7FTEE7.mjs +26 -0
  86. package/dist/chunk-NF7FTEE7.mjs.map +1 -0
  87. package/dist/chunk-NYTGMBLK.mjs +49 -0
  88. package/dist/chunk-NYTGMBLK.mjs.map +1 -0
  89. package/dist/chunk-O62PGEQ7.mjs +20 -0
  90. package/dist/chunk-O62PGEQ7.mjs.map +1 -0
  91. package/dist/chunk-OQNZEKWO.mjs +24 -0
  92. package/dist/chunk-OQNZEKWO.mjs.map +1 -0
  93. package/dist/chunk-OXBQSJDF.mjs +45 -0
  94. package/dist/chunk-OXBQSJDF.mjs.map +1 -0
  95. package/dist/chunk-PIRWVOO2.mjs +7 -0
  96. package/dist/chunk-PIRWVOO2.mjs.map +1 -0
  97. package/dist/chunk-PLIJ2CRV.mjs +25 -0
  98. package/dist/chunk-PLIJ2CRV.mjs.map +1 -0
  99. package/dist/chunk-PSIJUWZT.mjs +13 -0
  100. package/dist/chunk-PSIJUWZT.mjs.map +1 -0
  101. package/dist/chunk-QOGUHAMC.mjs +40 -0
  102. package/dist/chunk-QOGUHAMC.mjs.map +1 -0
  103. package/dist/chunk-SGSU4KYT.mjs +49 -0
  104. package/dist/chunk-SGSU4KYT.mjs.map +1 -0
  105. package/dist/chunk-SJGDB24D.mjs +41 -0
  106. package/dist/chunk-SJGDB24D.mjs.map +1 -0
  107. package/dist/chunk-SJGQU3OG.mjs +15 -0
  108. package/dist/chunk-SJGQU3OG.mjs.map +1 -0
  109. package/dist/chunk-SP4KAT3N.mjs +25 -0
  110. package/dist/chunk-SP4KAT3N.mjs.map +1 -0
  111. package/dist/chunk-SS3C77DP.mjs +134 -0
  112. package/dist/chunk-SS3C77DP.mjs.map +1 -0
  113. package/dist/chunk-SW2OCUH3.mjs +10 -0
  114. package/dist/chunk-SW2OCUH3.mjs.map +1 -0
  115. package/dist/chunk-UDLMLGTS.mjs +43 -0
  116. package/dist/chunk-UDLMLGTS.mjs.map +1 -0
  117. package/dist/chunk-V62IOKST.mjs +21 -0
  118. package/dist/chunk-V62IOKST.mjs.map +1 -0
  119. package/dist/chunk-WEXSGVXZ.mjs +53 -0
  120. package/dist/chunk-WEXSGVXZ.mjs.map +1 -0
  121. package/dist/chunk-WUFQM7VZ.mjs +20 -0
  122. package/dist/chunk-WUFQM7VZ.mjs.map +1 -0
  123. package/dist/chunk-YTWFWQNB.mjs +866 -0
  124. package/dist/chunk-YTWFWQNB.mjs.map +1 -0
  125. package/dist/chunk-ZHAJLP7P.mjs +49 -0
  126. package/dist/chunk-ZHAJLP7P.mjs.map +1 -0
  127. package/dist/chunk-ZNWOAXMK.mjs +46 -0
  128. package/dist/chunk-ZNWOAXMK.mjs.map +1 -0
  129. package/dist/data/Condition.mjs +19 -35
  130. package/dist/data/Condition.mjs.map +1 -1
  131. package/dist/data/Database.mjs +15 -12
  132. package/dist/data/Database.mjs.map +1 -1
  133. package/dist/data/Field.mjs +28 -6
  134. package/dist/data/Field.mjs.map +1 -1
  135. package/dist/data/InMemoryGateway.mjs +26 -4
  136. package/dist/data/InMemoryGateway.mjs.map +1 -1
  137. package/dist/domain/Audit.mjs +18 -24
  138. package/dist/domain/Audit.mjs.map +1 -1
  139. package/dist/domain/Child.mjs +28 -5
  140. package/dist/domain/Child.mjs.map +1 -1
  141. package/dist/domain/Entity.mjs +32 -6
  142. package/dist/domain/Entity.mjs.map +1 -1
  143. package/dist/domain/Repo.mjs +28 -5
  144. package/dist/domain/Repo.mjs.map +1 -1
  145. package/dist/domain/Struct.mjs +15 -25
  146. package/dist/domain/Struct.mjs.map +1 -1
  147. package/dist/domain/Typo.mjs +21 -4
  148. package/dist/domain/Typo.mjs.map +1 -1
  149. package/dist/domain/enums/Country.mjs +14 -262
  150. package/dist/domain/enums/Country.mjs.map +1 -1
  151. package/dist/domain/enums/Currency.mjs +17 -131
  152. package/dist/domain/enums/Currency.mjs.map +1 -1
  153. package/dist/domain/enums/Environment.mjs +21 -7
  154. package/dist/domain/enums/Environment.mjs.map +1 -1
  155. package/dist/domain/enums/Locale.mjs +581 -566
  156. package/dist/domain/enums/Locale.mjs.map +1 -1
  157. package/dist/domain/enums/UnitOfMeasurement.mjs +14 -12
  158. package/dist/domain/enums/UnitOfMeasurement.mjs.map +1 -1
  159. package/dist/domain/enums/UnitOfWeight.mjs +14 -10
  160. package/dist/domain/enums/UnitOfWeight.mjs.map +1 -1
  161. package/dist/domain/structs/Address.mjs +34 -8
  162. package/dist/domain/structs/Address.mjs.map +1 -1
  163. package/dist/domain/structs/Box.mjs +26 -5
  164. package/dist/domain/structs/Box.mjs.map +1 -1
  165. package/dist/domain/structs/Dimension.mjs +18 -26
  166. package/dist/domain/structs/Dimension.mjs.map +1 -1
  167. package/dist/domain/structs/Money.mjs +19 -32
  168. package/dist/domain/structs/Money.mjs.map +1 -1
  169. package/dist/domain/structs/Name.mjs +25 -6
  170. package/dist/domain/structs/Name.mjs.map +1 -1
  171. package/dist/domain/structs/Weight.mjs +26 -6
  172. package/dist/domain/structs/Weight.mjs.map +1 -1
  173. package/dist/domain/values/DateTime.mjs +17 -88
  174. package/dist/domain/values/DateTime.mjs.map +1 -1
  175. package/dist/domain/values/EAN.mjs +21 -4
  176. package/dist/domain/values/EAN.mjs.map +1 -1
  177. package/dist/domain/values/Email.mjs +23 -5
  178. package/dist/domain/values/Email.mjs.map +1 -1
  179. package/dist/domain/values/IBAN.mjs +21 -4
  180. package/dist/domain/values/IBAN.mjs.map +1 -1
  181. package/dist/domain/values/PostalCode.mjs +16 -13
  182. package/dist/domain/values/PostalCode.mjs.map +1 -1
  183. package/dist/domain/values/Slug.mjs +21 -4
  184. package/dist/domain/values/Slug.mjs.map +1 -1
  185. package/dist/domain/values/Url.mjs +22 -5
  186. package/dist/domain/values/Url.mjs.map +1 -1
  187. package/dist/health/HealthResource.mjs +32 -4
  188. package/dist/health/HealthResource.mjs.map +1 -1
  189. package/dist/health/HealthUri.mjs +15 -5
  190. package/dist/health/HealthUri.mjs.map +1 -1
  191. package/dist/http/CacheControl.mjs +16 -28
  192. package/dist/http/CacheControl.mjs.map +1 -1
  193. package/dist/http/ContentType.mjs +14 -15
  194. package/dist/http/ContentType.mjs.map +1 -1
  195. package/dist/http/HttpHeader.mjs +3 -4
  196. package/dist/http/HttpHeader.mjs.map +1 -1
  197. package/dist/http/HttpStatus.mjs +16 -80
  198. package/dist/http/HttpStatus.mjs.map +1 -1
  199. package/dist/http/HttpVerb.mjs +14 -11
  200. package/dist/http/HttpVerb.mjs.map +1 -1
  201. package/dist/http/LocalRequestStore.mjs +17 -3
  202. package/dist/http/LocalRequestStore.mjs.map +1 -1
  203. package/dist/http/OriginatedError.mjs +9 -5
  204. package/dist/http/OriginatedError.mjs.map +1 -1
  205. package/dist/http/RequestOptions.mjs +19 -59
  206. package/dist/http/RequestOptions.mjs.map +1 -1
  207. package/dist/http/Response.mjs +16 -9
  208. package/dist/http/Response.mjs.map +1 -1
  209. package/dist/http/RestResult.mjs +16 -26
  210. package/dist/http/RestResult.mjs.map +1 -1
  211. package/dist/http/Verb.mjs +27 -19
  212. package/dist/http/Verb.mjs.map +1 -1
  213. package/dist/index.js +4790 -27
  214. package/dist/index.js.map +1 -1
  215. package/dist/process/App.mjs +19 -4
  216. package/dist/process/App.mjs.map +1 -1
  217. package/dist/process/Manage.mjs +19 -3
  218. package/dist/process/Manage.mjs.map +1 -1
  219. package/dist/process/Scope.mjs +14 -18
  220. package/dist/process/Scope.mjs.map +1 -1
  221. package/dist/process/Search.mjs +15 -34
  222. package/dist/process/Search.mjs.map +1 -1
  223. package/dist/process/UseCase.mjs +24 -4
  224. package/dist/process/UseCase.mjs.map +1 -1
  225. package/dist/resources/Req.mjs +20 -4
  226. package/dist/resources/Req.mjs.map +1 -1
  227. package/dist/resources/Requires.mjs +18 -4
  228. package/dist/resources/Requires.mjs.map +1 -1
  229. package/dist/resources/Route.mjs +15 -32
  230. package/dist/resources/Route.mjs.map +1 -1
  231. package/dist/resources/Service.mjs +19 -3
  232. package/dist/resources/Service.mjs.map +1 -1
  233. package/dist/security/Jwt.mjs +21 -5
  234. package/dist/security/Jwt.mjs.map +1 -1
  235. package/dist/services/Api.mjs +25 -63
  236. package/dist/services/Api.mjs.map +1 -1
  237. package/dist/services/ApiGateway.mjs +27 -29
  238. package/dist/services/ApiGateway.mjs.map +1 -1
  239. package/dist/services/AxiosProvider.mjs +22 -23
  240. package/dist/services/AxiosProvider.mjs.map +1 -1
  241. package/dist/services/MappedRouteGateway.mjs +40 -5
  242. package/dist/services/MappedRouteGateway.mjs.map +1 -1
  243. package/dist/services/RouteGateway.mjs +28 -42
  244. package/dist/services/RouteGateway.mjs.map +1 -1
  245. package/dist/services/ViewRouteGateway.mjs +39 -5
  246. package/dist/services/ViewRouteGateway.mjs.map +1 -1
  247. package/dist/sql/Clause.mjs +19 -22
  248. package/dist/sql/Clause.mjs.map +1 -1
  249. package/dist/sql/Column.mjs +19 -64
  250. package/dist/sql/Column.mjs.map +1 -1
  251. package/dist/sql/Count.mjs +16 -7
  252. package/dist/sql/Count.mjs.map +1 -1
  253. package/dist/sql/Delete.mjs +15 -7
  254. package/dist/sql/Delete.mjs.map +1 -1
  255. package/dist/sql/Insert.mjs +17 -12
  256. package/dist/sql/Insert.mjs.map +1 -1
  257. package/dist/sql/Join.mjs +3 -18
  258. package/dist/sql/Join.mjs.map +1 -1
  259. package/dist/sql/Select.mjs +15 -40
  260. package/dist/sql/Select.mjs.map +1 -1
  261. package/dist/sql/SqlQuery.mjs +14 -11
  262. package/dist/sql/SqlQuery.mjs.map +1 -1
  263. package/dist/sql/Table.mjs +53 -12
  264. package/dist/sql/Table.mjs.map +1 -1
  265. package/dist/sql/TableGateway.mjs +27 -5
  266. package/dist/sql/TableGateway.mjs.map +1 -1
  267. package/dist/sql/Update.mjs +17 -13
  268. package/dist/sql/Update.mjs.map +1 -1
  269. package/dist/types/Array.mjs +9 -22
  270. package/dist/types/Array.mjs.map +1 -1
  271. package/dist/types/Builder.mjs +21 -7
  272. package/dist/types/Builder.mjs.map +1 -1
  273. package/dist/types/Cache.mjs +17 -3
  274. package/dist/types/Cache.mjs.map +1 -1
  275. package/dist/types/CacheAge.mjs +15 -36
  276. package/dist/types/CacheAge.mjs.map +1 -1
  277. package/dist/types/Case.mjs +13 -87
  278. package/dist/types/Case.mjs.map +1 -1
  279. package/dist/types/Constructor.mjs +11 -12
  280. package/dist/types/Constructor.mjs.map +1 -1
  281. package/dist/types/Context.mjs +17 -81
  282. package/dist/types/Context.mjs.map +1 -1
  283. package/dist/types/Enum.mjs +14 -46
  284. package/dist/types/Enum.mjs.map +1 -1
  285. package/dist/types/Exception.mjs +15 -22
  286. package/dist/types/Exception.mjs.map +1 -1
  287. package/dist/types/Falsy.mjs +4 -2
  288. package/dist/types/Falsy.mjs.map +1 -1
  289. package/dist/types/Func.mjs +3 -1
  290. package/dist/types/Func.mjs.map +1 -1
  291. package/dist/types/Gateway.mjs +14 -34
  292. package/dist/types/Gateway.mjs.map +1 -1
  293. package/dist/types/Get.mjs +6 -4
  294. package/dist/types/Get.mjs.map +1 -1
  295. package/dist/types/Id.mjs +5 -2
  296. package/dist/types/Id.mjs.map +1 -1
  297. package/dist/types/Is.mjs +21 -21
  298. package/dist/types/Is.mjs.map +1 -1
  299. package/dist/types/IsA.mjs +6 -3
  300. package/dist/types/IsA.mjs.map +1 -1
  301. package/dist/types/IsDate.mjs +6 -12
  302. package/dist/types/IsDate.mjs.map +1 -1
  303. package/dist/types/IsEqual.mjs +14 -11
  304. package/dist/types/IsEqual.mjs.map +1 -1
  305. package/dist/types/Json.mjs +14 -31
  306. package/dist/types/Json.mjs.map +1 -1
  307. package/dist/types/List.mjs +18 -170
  308. package/dist/types/List.mjs.map +1 -1
  309. package/dist/types/Message.mjs +6 -2
  310. package/dist/types/Message.mjs.map +1 -1
  311. package/dist/types/Meta.mjs +14 -41
  312. package/dist/types/Meta.mjs.map +1 -1
  313. package/dist/types/Nullish.mjs +3 -1
  314. package/dist/types/Nullish.mjs.map +1 -1
  315. package/dist/types/Number.mjs +14 -5
  316. package/dist/types/Number.mjs.map +1 -1
  317. package/dist/types/PageList.mjs +19 -118
  318. package/dist/types/PageList.mjs.map +1 -1
  319. package/dist/types/Parser.mjs +30 -7
  320. package/dist/types/Parser.mjs.map +1 -1
  321. package/dist/types/Primitive.mjs +4 -4
  322. package/dist/types/Primitive.mjs.map +1 -1
  323. package/dist/types/Repository.mjs +14 -40
  324. package/dist/types/Repository.mjs.map +1 -1
  325. package/dist/types/Result.mjs +14 -8
  326. package/dist/types/Result.mjs.map +1 -1
  327. package/dist/types/Results.mjs +15 -19
  328. package/dist/types/Results.mjs.map +1 -1
  329. package/dist/types/Sort.mjs +4 -2
  330. package/dist/types/Sort.mjs.map +1 -1
  331. package/dist/types/Tag.mjs +17 -3
  332. package/dist/types/Tag.mjs.map +1 -1
  333. package/dist/types/Template.mjs +14 -35
  334. package/dist/types/Template.mjs.map +1 -1
  335. package/dist/types/Text.mjs +19 -97
  336. package/dist/types/Text.mjs.map +1 -1
  337. package/dist/types/Try.mjs +14 -107
  338. package/dist/types/Try.mjs.map +1 -1
  339. package/dist/types/Uri.mjs +16 -74
  340. package/dist/types/Uri.mjs.map +1 -1
  341. package/dist/types/Uuid.mjs +5 -5
  342. package/dist/types/Uuid.mjs.map +1 -1
  343. package/dist/types/Validatable.mjs +6 -2
  344. package/dist/types/Validatable.mjs.map +1 -1
  345. package/dist/types/Value.mjs +14 -17
  346. package/dist/types/Value.mjs.map +1 -1
  347. package/dist/utils/Base64.mjs +3 -1
  348. package/dist/utils/Base64.mjs.map +1 -1
  349. package/dist/utils/Convert.mjs +15 -39
  350. package/dist/utils/Convert.mjs.map +1 -1
  351. package/dist/utils/If.mjs +10 -13
  352. package/dist/utils/If.mjs.map +1 -1
  353. package/dist/utils/Loading.mjs +6 -2
  354. package/dist/utils/Loading.mjs.map +1 -1
  355. package/dist/utils/Log.mjs +2 -0
  356. package/dist/utils/Log.mjs.map +1 -1
  357. package/dist/utils/Mapper.mjs +19 -101
  358. package/dist/utils/Mapper.mjs.map +1 -1
  359. package/dist/utils/Promise.mjs +19 -16
  360. package/dist/utils/Promise.mjs.map +1 -1
  361. package/dist/utils/Property.mjs +15 -14
  362. package/dist/utils/Property.mjs.map +1 -1
  363. package/dist/utils/Sentence.mjs +28 -14
  364. package/dist/utils/Sentence.mjs.map +1 -1
  365. package/dist/utils/State.mjs +7 -8
  366. package/dist/utils/State.mjs.map +1 -1
  367. package/dist/utils/Traverse.mjs +3 -5
  368. package/dist/utils/Traverse.mjs.map +1 -1
  369. package/dist/utils/View.mjs +21 -64
  370. package/dist/utils/View.mjs.map +1 -1
  371. package/dist/utils/Wait.mjs +5 -3
  372. package/dist/utils/Wait.mjs.map +1 -1
  373. package/dist/validation/Contraints.mjs +32 -29
  374. package/dist/validation/Contraints.mjs.map +1 -1
  375. package/dist/validation/Validate.mjs +16 -28
  376. package/dist/validation/Validate.mjs.map +1 -1
  377. package/dist/validation/When.mjs +14 -38
  378. package/dist/validation/When.mjs.map +1 -1
  379. package/package.json +4 -3
  380. package/dist/data/Condition.js +0 -71
  381. package/dist/data/Condition.js.map +0 -1
  382. package/dist/data/DataProvider.js +0 -17
  383. package/dist/data/DataProvider.js.map +0 -1
  384. package/dist/data/Database.js +0 -42
  385. package/dist/data/Database.js.map +0 -1
  386. package/dist/data/Field.js +0 -48
  387. package/dist/data/Field.js.map +0 -1
  388. package/dist/data/InMemoryGateway.js +0 -59
  389. package/dist/data/InMemoryGateway.js.map +0 -1
  390. package/dist/data/Query.js +0 -17
  391. package/dist/data/Query.js.map +0 -1
  392. package/dist/data/QueryProvider.js +0 -17
  393. package/dist/data/QueryProvider.js.map +0 -1
  394. package/dist/data/index.js +0 -35
  395. package/dist/data/index.js.map +0 -1
  396. package/dist/domain/Audit.js +0 -59
  397. package/dist/domain/Audit.js.map +0 -1
  398. package/dist/domain/Child.js +0 -49
  399. package/dist/domain/Child.js.map +0 -1
  400. package/dist/domain/Entity.js +0 -62
  401. package/dist/domain/Entity.js.map +0 -1
  402. package/dist/domain/Repo.js +0 -81
  403. package/dist/domain/Repo.js.map +0 -1
  404. package/dist/domain/Struct.js +0 -55
  405. package/dist/domain/Struct.js.map +0 -1
  406. package/dist/domain/Typo.js +0 -62
  407. package/dist/domain/Typo.js.map +0 -1
  408. package/dist/domain/enums/Country.js +0 -290
  409. package/dist/domain/enums/Country.js.map +0 -1
  410. package/dist/domain/enums/Currency.js +0 -159
  411. package/dist/domain/enums/Currency.js.map +0 -1
  412. package/dist/domain/enums/Environment.js +0 -35
  413. package/dist/domain/enums/Environment.js.map +0 -1
  414. package/dist/domain/enums/Locale.js +0 -605
  415. package/dist/domain/enums/Locale.js.map +0 -1
  416. package/dist/domain/enums/UnitOfMeasurement.js +0 -40
  417. package/dist/domain/enums/UnitOfMeasurement.js.map +0 -1
  418. package/dist/domain/enums/UnitOfWeight.js +0 -38
  419. package/dist/domain/enums/UnitOfWeight.js.map +0 -1
  420. package/dist/domain/enums/index.js +0 -33
  421. package/dist/domain/enums/index.js.map +0 -1
  422. package/dist/domain/index.js +0 -39
  423. package/dist/domain/index.js.map +0 -1
  424. package/dist/domain/structs/Address.js +0 -73
  425. package/dist/domain/structs/Address.js.map +0 -1
  426. package/dist/domain/structs/Box.js +0 -70
  427. package/dist/domain/structs/Box.js.map +0 -1
  428. package/dist/domain/structs/Dimension.js +0 -61
  429. package/dist/domain/structs/Dimension.js.map +0 -1
  430. package/dist/domain/structs/Money.js +0 -71
  431. package/dist/domain/structs/Money.js.map +0 -1
  432. package/dist/domain/structs/Name.js +0 -57
  433. package/dist/domain/structs/Name.js.map +0 -1
  434. package/dist/domain/structs/Weight.js +0 -71
  435. package/dist/domain/structs/Weight.js.map +0 -1
  436. package/dist/domain/structs/index.js +0 -33
  437. package/dist/domain/structs/index.js.map +0 -1
  438. package/dist/domain/values/DateTime.js +0 -120
  439. package/dist/domain/values/DateTime.js.map +0 -1
  440. package/dist/domain/values/EAN.js +0 -50
  441. package/dist/domain/values/EAN.js.map +0 -1
  442. package/dist/domain/values/Email.js +0 -57
  443. package/dist/domain/values/Email.js.map +0 -1
  444. package/dist/domain/values/IBAN.js +0 -50
  445. package/dist/domain/values/IBAN.js.map +0 -1
  446. package/dist/domain/values/PostalCode.js +0 -53
  447. package/dist/domain/values/PostalCode.js.map +0 -1
  448. package/dist/domain/values/Slug.js +0 -41
  449. package/dist/domain/values/Slug.js.map +0 -1
  450. package/dist/domain/values/Url.js +0 -57
  451. package/dist/domain/values/Url.js.map +0 -1
  452. package/dist/domain/values/index.js +0 -35
  453. package/dist/domain/values/index.js.map +0 -1
  454. package/dist/health/HealthResource.js +0 -49
  455. package/dist/health/HealthResource.js.map +0 -1
  456. package/dist/health/HealthUri.js +0 -33
  457. package/dist/health/HealthUri.js.map +0 -1
  458. package/dist/health/index.js +0 -25
  459. package/dist/health/index.js.map +0 -1
  460. package/dist/http/CacheControl.js +0 -56
  461. package/dist/http/CacheControl.js.map +0 -1
  462. package/dist/http/ContentType.js +0 -53
  463. package/dist/http/ContentType.js.map +0 -1
  464. package/dist/http/HttpHeader.js +0 -32
  465. package/dist/http/HttpHeader.js.map +0 -1
  466. package/dist/http/HttpStatus.js +0 -112
  467. package/dist/http/HttpStatus.js.map +0 -1
  468. package/dist/http/HttpVerb.js +0 -39
  469. package/dist/http/HttpVerb.js.map +0 -1
  470. package/dist/http/LocalRequestStore.js +0 -36
  471. package/dist/http/LocalRequestStore.js.map +0 -1
  472. package/dist/http/OriginatedError.js +0 -44
  473. package/dist/http/OriginatedError.js.map +0 -1
  474. package/dist/http/Request.js +0 -17
  475. package/dist/http/Request.js.map +0 -1
  476. package/dist/http/RequestOptions.js +0 -91
  477. package/dist/http/RequestOptions.js.map +0 -1
  478. package/dist/http/RequestProvider.js +0 -17
  479. package/dist/http/RequestProvider.js.map +0 -1
  480. package/dist/http/Response.js +0 -39
  481. package/dist/http/Response.js.map +0 -1
  482. package/dist/http/RestResult.js +0 -56
  483. package/dist/http/RestResult.js.map +0 -1
  484. package/dist/http/Verb.js +0 -61
  485. package/dist/http/Verb.js.map +0 -1
  486. package/dist/http/index.js +0 -45
  487. package/dist/http/index.js.map +0 -1
  488. package/dist/process/App.js +0 -35
  489. package/dist/process/App.js.map +0 -1
  490. package/dist/process/Manage.js +0 -43
  491. package/dist/process/Manage.js.map +0 -1
  492. package/dist/process/Scope.js +0 -46
  493. package/dist/process/Scope.js.map +0 -1
  494. package/dist/process/Search.js +0 -62
  495. package/dist/process/Search.js.map +0 -1
  496. package/dist/process/UseCase.js +0 -50
  497. package/dist/process/UseCase.js.map +0 -1
  498. package/dist/process/index.js +0 -31
  499. package/dist/process/index.js.map +0 -1
  500. package/dist/resources/AppProvider.js +0 -17
  501. package/dist/resources/AppProvider.js.map +0 -1
  502. package/dist/resources/Req.js +0 -54
  503. package/dist/resources/Req.js.map +0 -1
  504. package/dist/resources/Requires.js +0 -48
  505. package/dist/resources/Requires.js.map +0 -1
  506. package/dist/resources/Resource.js +0 -17
  507. package/dist/resources/Resource.js.map +0 -1
  508. package/dist/resources/Route.js +0 -62
  509. package/dist/resources/Route.js.map +0 -1
  510. package/dist/resources/Service.js +0 -49
  511. package/dist/resources/Service.js.map +0 -1
  512. package/dist/resources/index.js +0 -35
  513. package/dist/resources/index.js.map +0 -1
  514. package/dist/security/Jwt.js +0 -48
  515. package/dist/security/Jwt.js.map +0 -1
  516. package/dist/security/index.js +0 -23
  517. package/dist/security/index.js.map +0 -1
  518. package/dist/services/Api.js +0 -93
  519. package/dist/services/Api.js.map +0 -1
  520. package/dist/services/ApiGateway.js +0 -57
  521. package/dist/services/ApiGateway.js.map +0 -1
  522. package/dist/services/AxiosProvider.js +0 -61
  523. package/dist/services/AxiosProvider.js.map +0 -1
  524. package/dist/services/MappedRouteGateway.js +0 -52
  525. package/dist/services/MappedRouteGateway.js.map +0 -1
  526. package/dist/services/RouteGateway.js +0 -70
  527. package/dist/services/RouteGateway.js.map +0 -1
  528. package/dist/services/ViewRouteGateway.js +0 -55
  529. package/dist/services/ViewRouteGateway.js.map +0 -1
  530. package/dist/services/index.js +0 -33
  531. package/dist/services/index.js.map +0 -1
  532. package/dist/sql/Clause.js +0 -58
  533. package/dist/sql/Clause.js.map +0 -1
  534. package/dist/sql/Column.js +0 -96
  535. package/dist/sql/Column.js.map +0 -1
  536. package/dist/sql/Count.js +0 -35
  537. package/dist/sql/Count.js.map +0 -1
  538. package/dist/sql/Delete.js +0 -35
  539. package/dist/sql/Delete.js.map +0 -1
  540. package/dist/sql/Insert.js +0 -40
  541. package/dist/sql/Insert.js.map +0 -1
  542. package/dist/sql/Join.js +0 -46
  543. package/dist/sql/Join.js.map +0 -1
  544. package/dist/sql/Select.js +0 -68
  545. package/dist/sql/Select.js.map +0 -1
  546. package/dist/sql/SqlQuery.js +0 -39
  547. package/dist/sql/SqlQuery.js.map +0 -1
  548. package/dist/sql/Table.js +0 -63
  549. package/dist/sql/Table.js.map +0 -1
  550. package/dist/sql/TableGateway.js +0 -62
  551. package/dist/sql/TableGateway.js.map +0 -1
  552. package/dist/sql/Update.js +0 -41
  553. package/dist/sql/Update.js.map +0 -1
  554. package/dist/sql/index.js +0 -41
  555. package/dist/sql/index.js.map +0 -1
  556. package/dist/types/Array.js +0 -54
  557. package/dist/types/Array.js.map +0 -1
  558. package/dist/types/Builder.js +0 -43
  559. package/dist/types/Builder.js.map +0 -1
  560. package/dist/types/Cache.js +0 -38
  561. package/dist/types/Cache.js.map +0 -1
  562. package/dist/types/CacheAge.js +0 -64
  563. package/dist/types/CacheAge.js.map +0 -1
  564. package/dist/types/Case.js +0 -115
  565. package/dist/types/Case.js.map +0 -1
  566. package/dist/types/Constructor.js +0 -50
  567. package/dist/types/Constructor.js.map +0 -1
  568. package/dist/types/Context.js +0 -117
  569. package/dist/types/Context.js.map +0 -1
  570. package/dist/types/Enum.js +0 -76
  571. package/dist/types/Enum.js.map +0 -1
  572. package/dist/types/ErrorOrigin.js +0 -17
  573. package/dist/types/ErrorOrigin.js.map +0 -1
  574. package/dist/types/Exception.js +0 -54
  575. package/dist/types/Exception.js.map +0 -1
  576. package/dist/types/Falsy.js +0 -32
  577. package/dist/types/Falsy.js.map +0 -1
  578. package/dist/types/Func.js +0 -29
  579. package/dist/types/Func.js.map +0 -1
  580. package/dist/types/Gateway.js +0 -62
  581. package/dist/types/Gateway.js.map +0 -1
  582. package/dist/types/Get.js +0 -36
  583. package/dist/types/Get.js.map +0 -1
  584. package/dist/types/Id.js +0 -30
  585. package/dist/types/Id.js.map +0 -1
  586. package/dist/types/Identity.js +0 -17
  587. package/dist/types/Identity.js.map +0 -1
  588. package/dist/types/Is.js +0 -85
  589. package/dist/types/Is.js.map +0 -1
  590. package/dist/types/IsA.js +0 -33
  591. package/dist/types/IsA.js.map +0 -1
  592. package/dist/types/IsDate.js +0 -46
  593. package/dist/types/IsDate.js.map +0 -1
  594. package/dist/types/IsEqual.js +0 -39
  595. package/dist/types/IsEqual.js.map +0 -1
  596. package/dist/types/Json.js +0 -67
  597. package/dist/types/Json.js.map +0 -1
  598. package/dist/types/List.js +0 -208
  599. package/dist/types/List.js.map +0 -1
  600. package/dist/types/Message.js +0 -30
  601. package/dist/types/Message.js.map +0 -1
  602. package/dist/types/Meta.js +0 -71
  603. package/dist/types/Meta.js.map +0 -1
  604. package/dist/types/Nullish.js +0 -29
  605. package/dist/types/Nullish.js.map +0 -1
  606. package/dist/types/Number.js +0 -33
  607. package/dist/types/Number.js.map +0 -1
  608. package/dist/types/PageList.js.map +0 -1
  609. package/dist/types/Parser.js +0 -69
  610. package/dist/types/Parser.js.map +0 -1
  611. package/dist/types/Primitive.js +0 -32
  612. package/dist/types/Primitive.js.map +0 -1
  613. package/dist/types/Repository.js +0 -68
  614. package/dist/types/Repository.js.map +0 -1
  615. package/dist/types/Result.js +0 -38
  616. package/dist/types/Result.js.map +0 -1
  617. package/dist/types/Results.js +0 -51
  618. package/dist/types/Results.js.map +0 -1
  619. package/dist/types/Sort.js +0 -32
  620. package/dist/types/Sort.js.map +0 -1
  621. package/dist/types/Tag.js +0 -35
  622. package/dist/types/Tag.js.map +0 -1
  623. package/dist/types/Template.js +0 -65
  624. package/dist/types/Template.js.map +0 -1
  625. package/dist/types/Text.js +0 -137
  626. package/dist/types/Text.js.map +0 -1
  627. package/dist/types/Try.js +0 -137
  628. package/dist/types/Try.js.map +0 -1
  629. package/dist/types/TypeGuard.js +0 -17
  630. package/dist/types/TypeGuard.js.map +0 -1
  631. package/dist/types/Types.js +0 -17
  632. package/dist/types/Types.js.map +0 -1
  633. package/dist/types/Uri.js +0 -106
  634. package/dist/types/Uri.js.map +0 -1
  635. package/dist/types/Uuid.js +0 -35
  636. package/dist/types/Uuid.js.map +0 -1
  637. package/dist/types/Validatable.js +0 -30
  638. package/dist/types/Validatable.js.map +0 -1
  639. package/dist/types/Value.js +0 -47
  640. package/dist/types/Value.js.map +0 -1
  641. package/dist/types/index.js +0 -107
  642. package/dist/types/index.js.map +0 -1
  643. package/dist/utils/Base64.js +0 -33
  644. package/dist/utils/Base64.js.map +0 -1
  645. package/dist/utils/Convert.js +0 -69
  646. package/dist/utils/Convert.js.map +0 -1
  647. package/dist/utils/If.js +0 -47
  648. package/dist/utils/If.js.map +0 -1
  649. package/dist/utils/Loading.js +0 -30
  650. package/dist/utils/Loading.js.map +0 -1
  651. package/dist/utils/Log.js +0 -43
  652. package/dist/utils/Log.js.map +0 -1
  653. package/dist/utils/Mapper.js +0 -133
  654. package/dist/utils/Mapper.js.map +0 -1
  655. package/dist/utils/Promise.js +0 -56
  656. package/dist/utils/Promise.js.map +0 -1
  657. package/dist/utils/Property.js +0 -42
  658. package/dist/utils/Property.js.map +0 -1
  659. package/dist/utils/Sentence.js +0 -80
  660. package/dist/utils/Sentence.js.map +0 -1
  661. package/dist/utils/State.js +0 -36
  662. package/dist/utils/State.js.map +0 -1
  663. package/dist/utils/Traverse.js +0 -33
  664. package/dist/utils/Traverse.js.map +0 -1
  665. package/dist/utils/View.js +0 -86
  666. package/dist/utils/View.js.map +0 -1
  667. package/dist/utils/Wait.js +0 -39
  668. package/dist/utils/Wait.js.map +0 -1
  669. package/dist/utils/index.js +0 -47
  670. package/dist/utils/index.js.map +0 -1
  671. package/dist/validation/Contraints.js +0 -91
  672. package/dist/validation/Contraints.js.map +0 -1
  673. package/dist/validation/Validate.js +0 -46
  674. package/dist/validation/Validate.js.map +0 -1
  675. package/dist/validation/When.js +0 -68
  676. package/dist/validation/When.js.map +0 -1
  677. package/dist/validation/index.js +0 -27
  678. package/dist/validation/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/Meta.ts","../src/validation/When.ts","../src/validation/Validate.ts","../src/types/Try.ts","../src/types/List.ts","../src/types/Template.ts","../src/types/Text.ts","../src/types/Case.ts","../src/types/Context.ts","../src/types/Enum.ts","../src/types/Exception.ts","../src/types/Result.ts","../src/types/Results.ts","../src/types/Value.ts","../src/utils/Promise.ts"],"sourcesContent":["import 'reflect-metadata';\nimport { List, toList } from './List';\nimport { isDefined } from './Is';\nimport { on, use } from './Constructor';\nimport { Optional } from './Types';\n\ntype MetaParseOptions = { initial?: any; skipUndefined?: boolean };\n\ntype Entry<T = unknown> = [key: string, value: T];\n\nclass ClassMeta {\n constructor(readonly subject: any, private readonly data: any = (subject.prototype ?? subject).constructor) {}\n\n get = <T>(key: string): T => Reflect.getMetadata(key, this.data) as T;\n\n set = <T>(key: string, value: T): T => {\n Reflect.defineMetadata(key, value, this.data);\n return value;\n };\n\n entries = <T = unknown>(): List<Entry<T>> =>\n toList([...Object.entries(this.subject), ...Object.entries(Object.getPrototypeOf(this.subject))]) as List<Entry<T>>;\n\n parse = <Out, Value>(f: (v: Value) => Out, options: MetaParseOptions = {}): Record<string, Out> => {\n const { initial = {}, skipUndefined = false } = options;\n return this.entries<Value>().reduce((a, [k, val]) => use(f(val), v => (isDefined(v) || !skipUndefined ? on(a, a => (a[k] = v)) : a)), initial);\n };\n\n properties = (key?: string): List<PropertyMeta> =>\n toList([...Object.getOwnPropertyNames(this.subject), ...Object.getOwnPropertyNames(Object.getPrototypeOf(this.subject))])\n .map(p => this.property(p))\n .filter(p => (key ? p.get(key) : p));\n\n keys = <T = any>(key: string): List<T> =>\n this.properties()\n .map(p => p.get<T>(key))\n .reduce((list, u) => (u ? list.add(u) : list), toList<T>());\n\n values = <T = unknown>(): List<T> => toList([...Object.values<T>(this.subject), ...Object.values<T>(Object.getPrototypeOf(this.subject))]);\n\n property = (property: string | symbol): PropertyMeta => new PropertyMeta(this.subject, property);\n}\n\nclass PropertyMeta {\n constructor(readonly subject: any, readonly property: string | symbol, private readonly data = Reflect.getMetadata(property, subject)) {}\n\n get value(): any {\n return this.subject[this.property];\n }\n\n get = <T>(key: string): Optional<T> => (isDefined(this.data) && isDefined(this.data[key]) ? (this.data[key] as T) : undefined);\n\n set = <T>(key: string, value: T): T => {\n Reflect.defineMetadata(this.property, { ...this.data, [key]: value }, this.subject);\n return value;\n };\n}\n\nexport const meta = (subject: unknown): ClassMeta => new ClassMeta(subject ?? {});\n\nexport const entries = <T = unknown>(subject: Record<string, T>): List<Entry<T>> => meta(subject).entries<T>();\n","import { Constructor, ErrorOrigin, Exception, Get, isDefined, isEmpty, isIn, ofGet, Predicate, Results, toArray } from '../types';\nimport { validate } from './Validate';\nimport { reject, resolve } from '../utils';\n\nexport class When<W> {\n constructor(readonly subject: W, readonly valid = true, private results?: Results) {}\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","import {\n asString,\n choose,\n isArray,\n isEnum,\n isFunction,\n isResults,\n isValidatable,\n isValue,\n List,\n meta,\n Results,\n TemplateOptions,\n text,\n Text,\n toList,\n toName,\n toResult,\n toResults,\n tryTo,\n} from '../types';\nimport { Constraint } from './Contraints';\nimport { when } from './When';\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 tryTo(() => (isFunction((subject as any)[v.property]) ? (subject as any)[v.property]() : (subject as any)[v.property]))\n .map(actual => [actual, v.constraint(actual)])\n .map(([actual, res]) => (isResults(res) ? res : !res ? asResults(subject, v.text, { ...v, actual }) : toResults()))\n .recover(e => asResults(subject, asString(e))).value;\n\nconst constraints = (subject?: unknown): Results =>\n tryTo(() => validators(subject))\n .map(vs => vs.mapDefined(v => runValidator(v, subject)))\n .map(res => res.reduce((rs, r) => rs.add(...r.results), toResults())).value;\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 { isDefined, isEmpty, isTrue } from './Is';\nimport { validate } from '../validation';\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 { ArrayLike, toArray } from './Array';\nimport { Constructor, on } from './Constructor';\nimport { json, Json } from './Json';\nimport { isArray, isDefined, isEmpty } from './Is';\nimport { isA } from './IsA';\nimport { Get, GetProperty, ofGet, ofProperty } from './Get';\nimport { Id } from './Id';\nimport { asString } from './Text';\nimport { tryTo } from './Try';\nimport { meta } from './Meta';\nimport { Optional } from './Types';\n\nexport class List<T = unknown> extends Array<T> {\n asc(p: GetProperty<T, any>): List<T> {\n return this.sort((e1, e2) => (ofProperty(e1, p) > ofProperty(e2, p) ? 1 : -1));\n }\n\n desc(p: GetProperty<T, any>): List<T> {\n return this.sort((e1, e2) => (ofProperty(e1, p) < ofProperty(e2, p) ? 1 : -1));\n }\n\n first(p?: (value: T, index: number, array: T[]) => unknown, params?: unknown): T {\n return (p ? this.find(p, params) : this[0]) as T;\n }\n\n firstValue<V>(f: (t: T) => V, alt?: Get<V, T>): Optional<V> {\n return tryTo(() => this.first(t => !!f(t))).map(i => (i ? f(i) : ofGet(alt, i))).value;\n }\n\n isFirst(value: T): boolean {\n return value === this.first();\n }\n\n next(p?: (value: T, index: number, array: T[]) => unknown, params?: unknown): T {\n return p ? this[this.findIndex(p, params) + 1] : this[0];\n }\n\n prev(p?: (value: T, index: number, array: T[]) => unknown, params?: unknown): T {\n return p ? this[this.findIndex(p, params) - 1] : this[0];\n }\n\n last(p?: (value: T, index: number, array: T[]) => unknown, params?: unknown): T {\n return p ? this.filter(p, params).last() : this[this.length - 1];\n }\n\n isLast(value: T): boolean {\n return value === this.last();\n }\n\n overlaps(...items: ArrayLike<T>): boolean {\n return toList<T>(...items).some(i => this.some(t => i === t));\n }\n\n diff(others: ArrayLike<T>): List<T> {\n return this.filter(i => !others.includes(i));\n }\n\n diffByKey(others: ArrayLike<T>, key: keyof T): List<T> {\n return this.filter((i: any) => !others.some((o: any) => o[key] === i[key]));\n }\n\n symmetricDiff(others: ArrayLike<T>): List<T> {\n return this.diff(others).concat(toList<T>(...others).diff(this));\n }\n symmetricDiffByKey(others: ArrayLike<T>, key: keyof T): List<T> {\n return this.diffByKey(others, key).concat(toList<T>(...others).diffByKey(this, key));\n }\n\n intersect(others: ArrayLike<T>): List<T> {\n return this.filter(i => others.includes(i));\n }\n\n intersectByKey(others: ArrayLike<T>, key: keyof T): List<T> {\n return this.filter((i: any) => others.some((o: any) => o[key] === i[key]));\n }\n\n toJSON(): Json[] {\n return this.reduce((a, i) => {\n a.push(json.parse(i));\n return a;\n }, new Array<Json>());\n }\n\n map<U>(f: (value: T, index: number, array: T[]) => U, params?: unknown): List<U> {\n return toList<U>(super.map(f, params));\n }\n\n flatMap<U, This = unknown>(f: (this: This, value: T, index: number, array: T[]) => ReadonlyArray<U> | U, params?: This): List<U> {\n return toList<U>(super.flatMap(f, params));\n }\n\n mapDefined<U>(f: (value: T, index: number, array: T[]) => U, params?: unknown): List<NonNullable<U>> {\n return this.map(f, params).defined();\n }\n\n mapAsync(f: (i: T) => Promise<T>): Promise<List<T>> {\n return Promise.all(super.map(e => f(e))).then(a => toList<T>(a));\n }\n\n distinct(): List<T> {\n return this.filter((i, index) => this.indexOf(i) === index);\n }\n\n distinctByKey(key: keyof T): List<T> {\n return meta(this.toObject(key)).values();\n }\n\n filter(p: (value: T, index: number, array: T[]) => unknown, params?: unknown): List<T> {\n return toList<T>(super.filter(p, params));\n }\n\n sum(p: (t: T) => number): number {\n return this.reduce((sum: number, i) => sum + p(i), 0);\n }\n\n max(key: keyof T): T {\n return this.desc(key).first();\n }\n\n min(key: keyof T): T {\n return this.asc(key).first();\n }\n\n byId(id: Id): T {\n return this.first(i => asString((i as any).id) === asString(id));\n }\n\n add(...items: ArrayLike<T>): this {\n super.push(...toArray(...items));\n return this;\n }\n\n concat(...items: ConcatArray<T>[]): List<T>;\n concat(...items: (T | ConcatArray<T>)[]): List<T>;\n concat(...items: (T | ConcatArray<T>)[]): List<T> {\n return toList<T>(super.concat(...items));\n }\n\n reverse(): List<T> {\n return toList<T>(super.reverse());\n }\n\n splice(start: number, deleteCount?: number): List<T>;\n splice(start: number, deleteCount: number, ...items: T[]): List<T>;\n splice(start: number, deleteCount: number, ...items: T[]): List<T> {\n return toList<T>(super.splice(start, deleteCount, ...items));\n }\n\n remove(item: T): List<T> {\n const index = this.indexOf(item);\n if (index > -1) {\n this.splice(index, 1);\n }\n return this;\n }\n\n replace(key: keyof T, item: T): List<T> {\n tryTo(() => item[key])\n .map(k => this.findIndex(i => i[key] === k))\n .filter(i => i > -1)\n .map(i => (this[i] = item));\n return this;\n }\n\n switch(item: T): List<T> {\n return this.includes(item) ? this.remove(item) : this.add(item);\n }\n\n defined(): List<NonNullable<T>> {\n return this.reduce((l, v) => (isDefined(v) ? l.add(v) : l), toList<NonNullable<T>>());\n }\n\n toObject(key: keyof T, options: { deleteKey?: boolean } = {}): Record<string | number | symbol, T> {\n return this.reduce((o: any, i) => {\n o[i[key]] = i;\n if (options.deleteKey) delete o[i[key]][key];\n return o;\n }, {});\n }\n\n toObjectList(key: keyof T): Record<string | number | symbol, List<T>> {\n return this.reduce(\n (a, t) => {\n const k = t[key] as unknown as string | number | symbol;\n a[k] = a[k] ?? toList();\n a[k].push(t);\n return a;\n },\n {} as Record<string | number | symbol, List<T>>\n );\n }\n\n orElse(...alt: ArrayLike<T>): Optional<List<T>> {\n return !isEmpty(this) ? this : !isEmpty(...alt) ? toList<T>(...alt) : undefined;\n }\n\n weave(insertFrom: T[], interval: number): this {\n for (let i = interval, n = 0; i <= this.length && n < insertFrom.length; i += interval + 1) {\n this.splice(i, 0, insertFrom[n++]);\n }\n return this;\n }\n\n slice(start?: number, end?: number): List<T> {\n return toList(super.slice(start, end));\n }\n\n none(p: (t: T) => boolean): boolean {\n return !this.some(p);\n }\n\n chunk(chunkSize: number): List<List<T>> {\n return this.reduce((acc, _, index) => (index % chunkSize === 0 ? on(acc, a => a.push(this.slice(index, index + chunkSize))) : acc), toList<List<T>>());\n }\n}\n\nexport const toList = <T = unknown>(...items: ArrayLike<T>): List<T> => new List<T>().add(...items);\n\nexport const isList = <T>(l?: unknown): l is List<T> => isDefined(l) && isArray(l) && isA<List<T>>(l, 'first', 'last', 'asc', 'desc');\n\nexport const asList = <T>(c: Constructor<T>, items: unknown | unknown[] = []): List<T> => toList<T>(toArray(items).map(i => new c(i)));\n\nexport const maxValue = <T>(l: List<T>, key: keyof T): T[keyof T] | undefined => l.desc(key).first()?.[key];\n\nexport const minValue = <T>(l: List<T>, key: keyof T): T[keyof T] | undefined => l.asc(key).first()?.[key];\n","import { meta } from './Meta';\nimport { List, toList } from './List';\nimport { asString, text, Text, ToText } from './Text';\nimport { toName } from './Constructor';\nimport { tryTo } from './Try';\n\nexport type TemplateOptions = { type?: Text; property?: Text; actual?: Text; subject?: Text };\n\nexport class Template implements Text {\n constructor(\n private readonly template: string,\n private readonly subject: unknown = {},\n private readonly options = {}\n ) {}\n\n toString = (): string => {\n return meta(this.options)\n .entries()\n .reduce((t, [k]) => this.option(t, k), this.object())\n .replace(' ', ' ');\n };\n\n private readonly value = (subject: any, prop: string): string =>\n tryTo(() => prop.split('.'))\n .map(p => [p, p.splice(1)])\n .map(([p, ps]) => ps.reduce((t: ToText, s) => (t as any)[s], text(subject[p[0]])))\n .map(p => p.toString()).value;\n\n private readonly props = (tmpl: string, key: string, result: List<string> = toList()): string[] => {\n const i1 = tmpl.indexOf(`{${key}`);\n if (i1 < 0) {\n return result;\n }\n const i2 = tmpl.indexOf('}', i1);\n return this.props(tmpl.slice(i2 + 1), key, result.add(tmpl.substring(i1 + 1, i2)));\n };\n\n private readonly object = (): string => {\n return this.props(this.template, 'this').reduce((t: string, p) => t.replace(`{${p}}`, this.value(this.subject, p.replace('this.', ''))), this.template);\n };\n\n private readonly option = (tmpl: string, prop: string): string => {\n return this.props(tmpl, prop).reduce((t: string, p) => t.replace(`{${p}}`, this.value(this.options, p)), tmpl);\n };\n}\n\nexport const template = (tmpl: Text, subject: unknown, options: TemplateOptions = {}): Text =>\n new Template(asString(tmpl), subject, {\n type: toName(subject),\n subject: text(JSON.stringify(subject)),\n ...options,\n });\n","import { isDefined, isEmpty, isNotEmpty } from './Is';\nimport { toName } from './Constructor';\nimport { template } from './Template';\nimport { isFunc } from './Func';\nimport { Get, ofGet } from './Get';\nimport { toList } from './List';\nimport { JsonValue } from './Json';\nimport { Optional } from './Types';\n\nexport type Text = { toString(): string };\n\nexport const isText = (t?: unknown): t is Text => isDefined(t) && isFunc<string, any>((t as any).toString);\n\nexport const asString = (t?: unknown, alt: Get<Text> = ''): string => (isText(t) ? t : ofGet(alt)).toString();\n\nexport const replaceAll = (origin: Text, search: Text, replace: Text = ''): string => asString(origin).split(asString(search)).join(asString(replace));\n\nexport const toWords = (input: unknown): string[] => {\n return asString(input)\n .replace(/(\\p{Lower})(\\p{Upper})/gu, '$1 $2')\n .replace(/(\\p{Upper})(\\p{Upper}\\p{Lower})/gu, '$1 $2')\n .split(/[_\\W]+/g).filter(Boolean);\n};\n\nexport const kebab = (s = ''): string => toWords(s).join('-').toLowerCase();\n\nexport class ToText implements Text {\n constructor(readonly subject: string) {}\n\n get cap(): ToText {\n return this.map(s => s.charAt(0).toUpperCase() + s.slice(1).toLowerCase());\n }\n\n get title(): ToText {\n return this.map(s =>\n s\n .split(' ')\n .map(w => text(w).cap)\n .join(' ')\n );\n }\n\n get pascal(): ToText {\n return this.title.replace(' ', '');\n }\n\n get lower(): ToText {\n return this.map(s => s.toLowerCase());\n }\n\n get upper(): ToText {\n return this.map(s => s.toUpperCase());\n }\n\n get camel(): ToText {\n return this.title.trim.map(s => `${s.charAt(0).toLowerCase()}${s.slice(1)}`);\n }\n\n get kebab(): ToText {\n return this.lower.replace(' ', '-');\n }\n\n get strictKebab(): ToText {\n return this.map(s => s.replace(/[^a-z\\d]+/gi, ' ').trim()).kebab;\n }\n\n get slug(): ToText {\n return this.map(s =>\n s\n .replace(/ß/g, 'ss')\n .normalize('NFKD')\n .replace(/[\\u0300-\\u036F]/g, '')\n .toLowerCase()\n .replace(/[^a-z\\d]+/g, '-')\n .replace(/(^-)|(-$)/g, '')\n );\n }\n\n get snake(): ToText {\n return this.upper.replace(' ', '_');\n }\n\n get plural(): ToText {\n return this.ifLike('') ?? this.add('s');\n }\n\n get space(): ToText {\n return this.map(s => s.replace(/([a-z0-9])([A-Z])/g, '$1 $2').replace(/[_-]/g, ' '));\n }\n\n get sentence(): ToText {\n return this.isEmpty ? this : this.map(s => `${s.charAt(0).toUpperCase()}${s.slice(1)}.`);\n }\n\n get initials(): ToText {\n return this.map(s =>\n s\n .split(' ')\n .map(w => w[0])\n .join('')\n );\n }\n\n get trim(): ToText {\n return this.map(s => s.replace(/[- ,_#]/g, ''));\n }\n\n get isEmpty(): boolean {\n return isEmpty(this.toString());\n }\n\n parse = (subject: unknown, options = {}): ToText => text(template(this.subject, subject, { type: toName(subject), ...options }));\n\n is = (...others: unknown[]): boolean => others.some(o => this.toString() === text(o).toString());\n\n equals = this.is;\n\n isLike = (...others: unknown[]): boolean => others.some(o => this.trim.lower.is(text(o).trim.lower));\n\n ifLike = (...others: unknown[]): Optional<this> => (this.isLike(...others) ? this : undefined);\n\n endsWith = (end?: unknown): boolean => this.subject.endsWith(asString(end));\n\n startsWith = (end?: unknown): boolean => this.subject.startsWith(asString(end));\n\n first = (n: number): ToText => this.map(s => s.substring(0, n));\n\n last = (n: number): ToText => this.map(s => s.substring(s.length - n));\n\n map = (func: Get<string, string>): ToText => text(ofGet(func, this.subject));\n\n replace = (search: Text, replace: Text): ToText => this.map(s => replaceAll(s, search, replace));\n\n add = (add?: unknown, separator = ''): ToText => this.map(s => (isNotEmpty(add) ? `${s}${separator}${text(add)}` : s));\n\n with = (separator: string, ...other: unknown[]): ToText =>\n this.map(s =>\n toList(s)\n .add(...other.map(u => text(u).toString()))\n .filter(s => isNotEmpty(s))\n .join(separator)\n );\n\n toString(): string {\n return this.subject;\n }\n\n toJSON(): JsonValue {\n return this.subject;\n }\n}\n\nexport const text = (subject?: unknown, alt = ''): ToText => {\n const sub = subject ? asString(subject) : alt;\n return new ToText(sub !== '[object Object]' ? sub : '');\n};\n","import { Func, Get, isDefined, isEmpty, ofGet, Predicate, tryTo, TypeGuard } from './index';\nimport { validate } from '../validation';\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(protected value: V, protected outcome?: T) {}\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(protected value: V, protected outcome: T) {\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 { Uuid } from './Uuid';\nimport { text } from './Text';\nimport { Identity } from './Identity';\nimport { tryTo } from './Try';\nimport { Optional } from './Types';\n\nexport interface EnvContext {\n readonly domain: string;\n readonly name: string;\n readonly host: string;\n readonly port: number;\n readonly app: string;\n\n get(key: string, alt?: string): Optional<string>;\n}\n\nexport class DotEnvContext implements EnvContext {\n readonly domain = process.env.DOMAIN ?? 'easy';\n readonly name = process.env.ENVIRONMENT_NAME ?? '';\n readonly host = process.env.HOST ?? '';\n readonly port = Number.parseInt(process.env.PORT ?? '8080');\n readonly app = process.env.APP ?? '';\n\n readonly get = (key: string, alt?: string): Optional<string> =>\n tryTo(() =>\n text(key)\n .map(k => k.replace(/([a-z])([A-Z])/g, '$1 $2'))\n .snake.toString()\n ).map(k => process.env[k] ?? alt).value;\n}\n\nexport interface RequestContext {\n token?: any;\n identity?: Identity;\n jwt: string;\n correlationId?: Uuid;\n lastError?: string;\n lastErrorStack?: string;\n get<T>(key: string): T;\n set<T>(key: string, value: T): T;\n create: (f: () => void) => void;\n wrap<T>(f: () => Promise<T>): Promise<T>;\n}\n\nexport class BaseRequestContext implements RequestContext {\n private state: any = {};\n\n get token(): any {\n return this.get('token');\n }\n\n set token(token: any) {\n this.set('token', token);\n }\n\n get identity(): Identity {\n return this.token as Identity;\n }\n\n get jwt(): string {\n return this.get('jwt');\n }\n\n set jwt(jwt: string) {\n this.set('jwt', jwt);\n }\n\n get correlationId(): Uuid {\n return this.get('correlationId');\n }\n\n set correlationId(id: Uuid) {\n this.set('correlationId', id);\n }\n\n get lastError(): Optional<string> {\n return this.get('lastError');\n }\n\n set lastError(error: Optional<string>) {\n this.set('lastError', error);\n }\n\n public get<T>(key: string): T {\n return this.state[key] as T;\n }\n\n public set<T>(key: string, value: T): T {\n return (this.state[key] = value);\n }\n\n public readonly create = (f: () => void): void => f();\n\n public readonly wrap = <T>(f: () => Promise<T>): Promise<T> => f();\n}\n\n/**\n * @deprecated Renamed to BaseRequestContext\n */\nexport class BaseContext extends BaseRequestContext {}\n\nexport interface Contexts {\n env?: EnvContext;\n request?: RequestContext;\n other?: any;\n}\n\nexport class Context {\n constructor(protected state: Contexts = {}) {\n this.state = {\n ...{\n env: new DotEnvContext(),\n request: new BaseRequestContext(),\n other: {},\n },\n ...this.state,\n };\n }\n\n get env(): EnvContext {\n return this.state.env as EnvContext;\n }\n\n set env(env: EnvContext) {\n this.state.env = env;\n }\n\n get request(): RequestContext {\n return this.state.request as RequestContext;\n }\n\n set request(request: RequestContext) {\n this.state.request = request;\n }\n\n get other(): any {\n return this.state.other;\n }\n}\n\nexport const ctx = new Context();\n","import { Id } from './Id';\nimport { List, toList } from './List';\nimport { isAn } from './IsA';\nimport { meta } from './Meta';\nimport { isDefined } from './Is';\nimport { Validatable } from './Validatable';\nimport { JsonValue } from './Json';\nimport { Get, ofGet } from './Get';\nimport { TypeGuard } from './TypeGuard';\n\nexport abstract class Enum implements Validatable {\n protected constructor(readonly name: string, readonly id: Id = name.toLowerCase(), readonly code: string = id.toString()) {}\n\n get isValid(): boolean {\n return isDefined(this.id);\n }\n\n static all<E extends Enum>(): List<E> {\n return meta(this.allTuple<E>()).values<E>();\n }\n\n protected static allTuple<E extends Enum>(): Record<Id, E> {\n return meta(this).get(`all-${this.name}`) ?? meta(this).set(`all-${this.name}`, meta(this).values<E>().filter(isEnum).toObject('id'));\n }\n\n static filter<E extends Enum>(p: (value: E, index: number, array: E[]) => unknown, params?: unknown): List<E> {\n return this.all<E>().filter(p, params);\n }\n\n static first<E extends Enum>(p?: (value: E, index: number, array: E[]) => unknown, params?: unknown): E {\n return this.all<E>().first(p, params);\n }\n\n static byIds<E extends Enum>(ids: Id[] = []): List<E> {\n return toList(ids)\n .mapDefined(id => this.byId<E>(id))\n .distinct();\n }\n\n static byId<E extends Enum>(id: Id, alt?: Get<E, unknown>): E {\n return this.allTuple<E>()[id] ?? ofGet(alt);\n }\n\n equals<E extends Enum>(other: E | Id): other is E {\n return this.id === (isEnum(other) ? other.id : other);\n }\n\n isIn<E extends Enum>(...items: E[] | Id[]): boolean {\n return items.some(i => this.equals(i));\n }\n\n toJSON(): JsonValue {\n return this.id;\n }\n\n toString(): string {\n return this.id.toString();\n }\n}\n\nexport const isEnum: TypeGuard<Enum> = (e?: unknown): e is Enum => isDefined(e) && e instanceof Enum && isAn<Enum>(e, 'name', 'id', 'code');\n","import { asString, Text, text } from './Text';\nimport { Enum } from './Enum';\nimport { isDefined } from './Is';\nimport { Id } from './Id';\n\nexport class Exception extends Enum {\n static readonly AlreadyExists = new Exception('Subject already exists');\n static readonly DoesNotExist = new Exception('Does not exist');\n static readonly IsMissingId = new Exception('Subject is missing an id');\n static readonly IsNotImplemented = new Exception('Is not implemented');\n static readonly IsNotValid = new Exception('Is not valid');\n static readonly Unknown = new Exception('Unknown error');\n\n constructor(readonly message: string, id?: Id, readonly reason?: Text) {\n super(message, id ?? text(message).pascal.toString());\n }\n\n static readonly CouldNotExecute = (target: Text): Exception => new Exception(`Could not execute ${target}.`, 'CouldNotExecute');\n\n static readonly CouldNotValidate = (target: Text): Exception => new Exception(`Could not validate ${target}.`, 'CouldNotValidate');\n\n static readonly EnvironmentVariableNotFound = (variable: Text): Exception =>\n new Exception(`Environment variable ${text(variable).upper} could not be found.`, 'EnvironmentVariableNotFound');\n\n because = (reason: Text): Exception => new Exception(this.message, this.id, reason);\n}\n\nexport const isException = (e?: unknown, t?: Text): e is Exception => e instanceof Exception && (isDefined(t) ? e.equals(asString(t)) : true);\nexport const isDoesNotExist = (e?: unknown): e is Exception => e instanceof Exception && Exception.DoesNotExist.equals(e);\n","import { isA } from './IsA';\nimport { Text } from './Text';\nimport { ctx } from './Context';\nimport { TypeGuard } from './TypeGuard';\n\nexport type Result = { message: string; location?: string; domain?: string };\n\nexport const toResult = (message: Text, location?: Text, domain: Text = ctx.env.domain): Result => ({\n message: message.toString(),\n location: location?.toString(),\n domain: domain?.toString(),\n});\n\nexport const isResult: TypeGuard<Result> = (r?: unknown): r is Result => isA<Result>(r, 'message');\n","import { Text } from './Text';\nimport { isResult, Result, toResult } from './Result';\nimport { Validatable } from './Validatable';\nimport { isDefined } from './Is';\nimport { toArray } from './Array';\n\nconst parse = (...rs: (Text | Result)[]): Result[] => toArray(...rs).map(r => (isResult(r) ? r : toResult(r)));\n\nexport class Results implements Validatable {\n public readonly results: Result[];\n\n constructor(...rs: (Text | Result)[]) {\n this.results = parse(...rs);\n }\n\n get length(): number {\n return this.results.length;\n }\n\n get isValid(): boolean {\n return this.results.length === 0;\n }\n\n add = (...rs: (Text | Result)[]): Results => toResults(...this.results, ...parse(...rs));\n}\n\nexport const toResults = (...r: (Text | Result)[]): Results => new Results(...r);\n\nexport const isResults = (r?: unknown): r is Results => isDefined(r) && r instanceof Results;\n","import { asString, isDefined, JsonValue, Validatable } from './index';\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","import { ErrorOrigin, List, toArray, toList } from '../types';\n\ntype Pro<A> = A | PromiseLike<A>;\ntype Aw<A> = Awaited<A>;\n\nexport const resolve = <S = unknown>(subject: S | PromiseLike<S>): Promise<S> => Promise.resolve(subject);\nexport const reject = <S = never>(e: ErrorOrigin): Promise<S> => Promise.reject(e);\n\nexport const tuple = {\n 2: <F, S>(first: Pro<F>, second: Pro<S>): Promise<[Aw<F>, Aw<S>]> => Promise.all([first, second]),\n 3: <F, S, T>(first: Pro<F>, second: Pro<S>, third: Pro<T>): Promise<[Aw<F>, Aw<S>, Aw<T>]> => Promise.all([first, second, third]),\n 4: <F, S, T, Fo>(first: Pro<F>, second: Pro<S>, third: Pro<T>, forth: Pro<Fo>): Promise<[Aw<F>, Aw<S>, Aw<T>, Aw<Fo>]> =>\n Promise.all([first, second, third, forth]),\n 5: <F, S, T, Fo, Fi>(first: Pro<F>, second: Pro<S>, third: Pro<T>, forth: Pro<Fo>, fifth: Pro<Fi>): Promise<[Aw<F>, Aw<S>, Aw<T>, Aw<Fo>, Aw<Fi>]> =>\n Promise.all([first, second, third, forth, fifth]),\n all: <F, S>(first: Pro<F>, second: Pro<S>[]): Promise<[Aw<F>, Aw<S[]>]> => Promise.all([first, Promise.all(second)]),\n spread: <F, S>(first: Pro<F>, ...second: Pro<S>[]): Promise<[Aw<F>, Aw<S[]>]> => Promise.all([first, Promise.all(toArray(second))]),\n list: <T>(list: Pro<T>[]): Promise<List<Aw<T>>> => Promise.all([...list]).then(toList),\n};\n\nexport const tuple2 = tuple[2];\nexport const tuple3 = tuple[3];\nexport const tuple4 = tuple[4];\nexport const tuple5 = tuple[5];\n"],"mappings":"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","names":["template","List","a","template","ToText","s","Results"]}
@@ -0,0 +1,49 @@
1
+ import {
2
+ Exception,
3
+ reject
4
+ } from "./chunk-YTWFWQNB.mjs";
5
+
6
+ // src/types/Repository.ts
7
+ var Repository = class {
8
+ all(options) {
9
+ return reject(Exception.IsNotImplemented);
10
+ }
11
+ byId(id) {
12
+ return reject(Exception.IsNotImplemented);
13
+ }
14
+ byIds(...ids) {
15
+ return reject(Exception.IsNotImplemented);
16
+ }
17
+ byKey(key, options) {
18
+ return reject(Exception.IsNotImplemented);
19
+ }
20
+ by(key, value, options) {
21
+ return reject(Exception.IsNotImplemented);
22
+ }
23
+ search(q, options) {
24
+ return reject(Exception.IsNotImplemented);
25
+ }
26
+ filter(options) {
27
+ return reject(Exception.IsNotImplemented);
28
+ }
29
+ exists(id) {
30
+ return reject(Exception.IsNotImplemented);
31
+ }
32
+ add(t) {
33
+ return reject(Exception.IsNotImplemented);
34
+ }
35
+ update(id, json) {
36
+ return reject(Exception.IsNotImplemented);
37
+ }
38
+ remove(id) {
39
+ return reject(Exception.IsNotImplemented);
40
+ }
41
+ upsert(id, item) {
42
+ return reject(Exception.IsNotImplemented);
43
+ }
44
+ };
45
+
46
+ export {
47
+ Repository
48
+ };
49
+ //# sourceMappingURL=chunk-ZHAJLP7P.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/Repository.ts"],"sourcesContent":["import { Exception, FetchOptions, Id, Json, JsonValue, Key, List, PageList } from './index';\nimport { reject } from '../utils';\n\nexport class Repository<T, Options = FetchOptions> {\n all(options?: Options): Promise<PageList<T>> {\n return reject(Exception.IsNotImplemented);\n }\n\n byId(id: Id): Promise<T> {\n return reject(Exception.IsNotImplemented);\n }\n\n byIds(...ids: Id[]): Promise<List<T>> {\n return reject(Exception.IsNotImplemented);\n }\n\n byKey(key: Key, options?: Options): Promise<PageList<T>> {\n return reject(Exception.IsNotImplemented);\n }\n\n by(key: keyof T, value: JsonValue, options?: Options): Promise<PageList<T>> {\n return reject(Exception.IsNotImplemented);\n }\n\n search(q: JsonValue, options?: Options): Promise<PageList<T>> {\n return reject(Exception.IsNotImplemented);\n }\n\n filter(options?: Options): Promise<PageList<T>> {\n return reject(Exception.IsNotImplemented);\n }\n\n exists(id: Id): Promise<boolean> {\n return reject(Exception.IsNotImplemented);\n }\n\n add(t: T | Json): Promise<T> {\n return reject(Exception.IsNotImplemented);\n }\n\n update(id: Id, json: Json): Promise<T> {\n return reject(Exception.IsNotImplemented);\n }\n\n remove(id: Id): Promise<boolean> {\n return reject(Exception.IsNotImplemented);\n }\n\n upsert(id: Id, item: Json): Promise<T> {\n return reject(Exception.IsNotImplemented);\n }\n}\n"],"mappings":";;;;;;AAGO,IAAM,aAAN,MAA4C;AAAA,EACjD,IAAI,SAAyC;AAC3C,WAAO,OAAO,UAAU,gBAAgB;AAAA,EAC1C;AAAA,EAEA,KAAK,IAAoB;AACvB,WAAO,OAAO,UAAU,gBAAgB;AAAA,EAC1C;AAAA,EAEA,SAAS,KAA6B;AACpC,WAAO,OAAO,UAAU,gBAAgB;AAAA,EAC1C;AAAA,EAEA,MAAM,KAAU,SAAyC;AACvD,WAAO,OAAO,UAAU,gBAAgB;AAAA,EAC1C;AAAA,EAEA,GAAG,KAAc,OAAkB,SAAyC;AAC1E,WAAO,OAAO,UAAU,gBAAgB;AAAA,EAC1C;AAAA,EAEA,OAAO,GAAc,SAAyC;AAC5D,WAAO,OAAO,UAAU,gBAAgB;AAAA,EAC1C;AAAA,EAEA,OAAO,SAAyC;AAC9C,WAAO,OAAO,UAAU,gBAAgB;AAAA,EAC1C;AAAA,EAEA,OAAO,IAA0B;AAC/B,WAAO,OAAO,UAAU,gBAAgB;AAAA,EAC1C;AAAA,EAEA,IAAI,GAAyB;AAC3B,WAAO,OAAO,UAAU,gBAAgB;AAAA,EAC1C;AAAA,EAEA,OAAO,IAAQ,MAAwB;AACrC,WAAO,OAAO,UAAU,gBAAgB;AAAA,EAC1C;AAAA,EAEA,OAAO,IAA0B;AAC/B,WAAO,OAAO,UAAU,gBAAgB;AAAA,EAC1C;AAAA,EAEA,OAAO,IAAQ,MAAwB;AACrC,WAAO,OAAO,UAAU,gBAAgB;AAAA,EAC1C;AACF;","names":[]}
@@ -0,0 +1,46 @@
1
+ import {
2
+ toPageList
3
+ } from "./chunk-7NYZAGM3.mjs";
4
+ import {
5
+ choose,
6
+ resolve
7
+ } from "./chunk-YTWFWQNB.mjs";
8
+
9
+ // src/process/Search.ts
10
+ var Search = class {
11
+ constructor(repo) {
12
+ this.repo = repo;
13
+ }
14
+ all(options) {
15
+ return this.repo.all(options);
16
+ }
17
+ byId(id) {
18
+ return this.repo.byId(id);
19
+ }
20
+ byIds(...ids) {
21
+ return this.repo.byIds(...ids);
22
+ }
23
+ byKey(key, options) {
24
+ return this.repo.byKey(key, options);
25
+ }
26
+ query({ query, skip, take }) {
27
+ return this.search(query, { skip, take });
28
+ }
29
+ search(query, options) {
30
+ return choose(query).is.not.empty(
31
+ (q) => q,
32
+ (q) => this.repo.search(q, options)
33
+ ).else(() => resolve(toPageList()));
34
+ }
35
+ filter(options) {
36
+ return this.repo.filter(options);
37
+ }
38
+ exists(id) {
39
+ return this.repo.exists(id);
40
+ }
41
+ };
42
+
43
+ export {
44
+ Search
45
+ };
46
+ //# sourceMappingURL=chunk-ZNWOAXMK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/process/Search.ts"],"sourcesContent":["import { choose, FetchOptions, Id, JsonValue, Key, List, PageList, Repository, toPageList } from '../types';\nimport { resolve } from '../utils';\nimport { Req } from '../resources';\n\nexport class Search<T, Options = FetchOptions> {\n constructor(protected repo: Repository<T, Options>) {}\n\n all(options?: Options): Promise<PageList<T>> {\n return this.repo.all(options);\n }\n\n byId(id: Id): Promise<T> {\n return this.repo.byId(id);\n }\n\n byIds(...ids: Id[]): Promise<List<T>> {\n return this.repo.byIds(...ids);\n }\n\n byKey(key: Key, options?: Options): Promise<PageList<T>> {\n return this.repo.byKey(key, options);\n }\n\n query({ query, skip, take }: Req): Promise<PageList<T>> {\n return this.search(query, { skip, take } as Options);\n }\n\n search(query: JsonValue, options?: Options): Promise<PageList<T>> {\n return choose(query)\n .is.not.empty(\n q => q,\n q => this.repo.search(q, options)\n )\n .else(() => resolve(toPageList<T>()));\n }\n\n filter(options?: Options): Promise<PageList<T>> {\n return this.repo.filter(options);\n }\n\n exists(id: Id): Promise<boolean> {\n return this.repo.exists(id);\n }\n}\n"],"mappings":";;;;;;;;;AAIO,IAAM,SAAN,MAAwC;AAAA,EAC7C,YAAsB,MAA8B;AAA9B;AAAA,EAA+B;AAAA,EAErD,IAAI,SAAyC;AAC3C,WAAO,KAAK,KAAK,IAAI,OAAO;AAAA,EAC9B;AAAA,EAEA,KAAK,IAAoB;AACvB,WAAO,KAAK,KAAK,KAAK,EAAE;AAAA,EAC1B;AAAA,EAEA,SAAS,KAA6B;AACpC,WAAO,KAAK,KAAK,MAAM,GAAG,GAAG;AAAA,EAC/B;AAAA,EAEA,MAAM,KAAU,SAAyC;AACvD,WAAO,KAAK,KAAK,MAAM,KAAK,OAAO;AAAA,EACrC;AAAA,EAEA,MAAM,EAAE,OAAO,MAAM,KAAK,GAA8B;AACtD,WAAO,KAAK,OAAO,OAAO,EAAE,MAAM,KAAK,CAAY;AAAA,EACrD;AAAA,EAEA,OAAO,OAAkB,SAAyC;AAChE,WAAO,OAAO,KAAK,EAChB,GAAG,IAAI;AAAA,MACN,OAAK;AAAA,MACL,OAAK,KAAK,KAAK,OAAO,GAAG,OAAO;AAAA,IAClC,EACC,KAAK,MAAM,QAAQ,WAAc,CAAC,CAAC;AAAA,EACxC;AAAA,EAEA,OAAO,SAAyC;AAC9C,WAAO,KAAK,KAAK,OAAO,OAAO;AAAA,EACjC;AAAA,EAEA,OAAO,IAA0B;AAC/B,WAAO,KAAK,KAAK,OAAO,EAAE;AAAA,EAC5B;AACF;","names":[]}
@@ -1,39 +1,23 @@
1
+ import {
2
+ Condition,
3
+ LogicalCondition,
4
+ SortCondition,
5
+ isSortCondition,
6
+ toCondition
7
+ } from "../chunk-WEXSGVXZ.mjs";
8
+ import "../chunk-NYTGMBLK.mjs";
9
+ import "../chunk-YTWFWQNB.mjs";
10
+ import "../chunk-CMRS457E.mjs";
11
+ import "../chunk-5AF55QCJ.mjs";
12
+ import "../chunk-JXJ5LRH3.mjs";
13
+ import "../chunk-4QX4EMLL.mjs";
14
+ import "../chunk-SJGQU3OG.mjs";
15
+ import "../chunk-FAAERRP2.mjs";
16
+ import "../chunk-GI5TZOAG.mjs";
17
+ import "../chunk-PSIJUWZT.mjs";
18
+ import "../chunk-PIRWVOO2.mjs";
19
+ import "../chunk-OXBQSJDF.mjs";
1
20
  import "../chunk-4N72FQFX.mjs";
2
- import { isDefined, json } from "../types";
3
- import { convert } from "../utils";
4
- class Condition {
5
- constructor(key, operator, value) {
6
- this.key = key;
7
- this.operator = operator;
8
- this.value = value;
9
- }
10
- and = (...others) => new LogicalCondition("and", [this, ...others]);
11
- or = (...others) => new LogicalCondition("or", [this, ...others]);
12
- toJSON() {
13
- return { [this.key]: { [`$${this.operator}`]: json.parse(this.value) } };
14
- }
15
- }
16
- class LogicalCondition {
17
- constructor(operator, conditions) {
18
- this.operator = operator;
19
- this.conditions = conditions;
20
- }
21
- toJSON() {
22
- return { [`$${this.operator}`]: this.conditions.map((c) => c.toJSON()) };
23
- }
24
- }
25
- class SortCondition extends Condition {
26
- constructor(key, value) {
27
- super(key, "", value);
28
- this.key = key;
29
- this.value = value;
30
- }
31
- toJSON() {
32
- return { [this.key]: this.value };
33
- }
34
- }
35
- const toCondition = (field, operator, value, conv = convert.default) => new Condition(field, operator, conv.from(value));
36
- const isSortCondition = (s) => isDefined(s) && s instanceof SortCondition;
37
21
  export {
38
22
  Condition,
39
23
  LogicalCondition,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/data/Condition.ts"],"sourcesContent":["import { isDefined, json, Json, JsonValue, Sort } from '../types';\nimport { convert, Convert } from '../utils';\n\nexport class Condition {\n constructor(readonly key: string, readonly operator: string, readonly value: unknown) {}\n\n and = (...others: Condition[]): LogicalCondition => new LogicalCondition('and', [this, ...others]);\n or = (...others: Condition[]): LogicalCondition => new LogicalCondition('or', [this, ...others]);\n\n toJSON(): Json {\n return { [this.key]: { [`$${this.operator}`]: json.parse(this.value) } };\n }\n}\n\nexport class LogicalCondition {\n constructor(readonly operator: string, readonly conditions: Condition[]) {}\n\n toJSON(): Json {\n return { [`$${this.operator}`]: this.conditions.map(c => c.toJSON()) };\n }\n}\n\nexport class SortCondition extends Condition implements Sort {\n constructor(readonly key: string, readonly value: -1 | 1) {\n super(key, '', value);\n }\n\n toJSON(): Json {\n return { [this.key]: this.value };\n }\n}\n\nexport const toCondition = (field: string, operator: string, value: unknown, conv: Convert = convert.default): Condition =>\n new Condition(field, operator, conv.from(value) as JsonValue);\n\nexport const isSortCondition = (s?: unknown): s is SortCondition => isDefined(s) && s instanceof SortCondition;\n"],"mappings":";AAAA,SAAS,WAAW,YAAmC;AACvD,SAAS,eAAwB;AAE1B,MAAM,UAAU;AAAA,EACrB,YAAqB,KAAsB,UAA2B,OAAgB;AAAjE;AAAsB;AAA2B;AAAA,EAAiB;AAAA,EAEvF,MAAM,IAAI,WAA0C,IAAI,iBAAiB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EACjG,KAAK,IAAI,WAA0C,IAAI,iBAAiB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EAE/F,SAAe;AACb,WAAO,EAAE,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,GAAG,KAAK,MAAM,KAAK,KAAK,EAAE,EAAE;AAAA,EACzE;AACF;AAEO,MAAM,iBAAiB;AAAA,EAC5B,YAAqB,UAA2B,YAAyB;AAApD;AAA2B;AAAA,EAA0B;AAAA,EAE1E,SAAe;AACb,WAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,GAAG,KAAK,WAAW,IAAI,OAAK,EAAE,OAAO,CAAC,EAAE;AAAA,EACvE;AACF;AAEO,MAAM,sBAAsB,UAA0B;AAAA,EAC3D,YAAqB,KAAsB,OAAe;AACxD,UAAM,KAAK,IAAI,KAAK;AADD;AAAsB;AAAA,EAE3C;AAAA,EAEA,SAAe;AACb,WAAO,EAAE,CAAC,KAAK,GAAG,GAAG,KAAK,MAAM;AAAA,EAClC;AACF;AAEO,MAAM,cAAc,CAAC,OAAe,UAAkB,OAAgB,OAAgB,QAAQ,YACnG,IAAI,UAAU,OAAO,UAAU,KAAK,KAAK,KAAK,CAAc;AAEvD,MAAM,kBAAkB,CAAC,MAAoC,UAAU,CAAC,KAAK,aAAa;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,16 +1,19 @@
1
+ import {
2
+ Database,
3
+ DefaultProvider
4
+ } from "../chunk-SP4KAT3N.mjs";
5
+ import "../chunk-YTWFWQNB.mjs";
6
+ import "../chunk-CMRS457E.mjs";
7
+ import "../chunk-5AF55QCJ.mjs";
8
+ import "../chunk-JXJ5LRH3.mjs";
9
+ import "../chunk-4QX4EMLL.mjs";
10
+ import "../chunk-SJGQU3OG.mjs";
11
+ import "../chunk-FAAERRP2.mjs";
12
+ import "../chunk-GI5TZOAG.mjs";
13
+ import "../chunk-PSIJUWZT.mjs";
14
+ import "../chunk-PIRWVOO2.mjs";
15
+ import "../chunk-OXBQSJDF.mjs";
1
16
  import "../chunk-4N72FQFX.mjs";
2
- import { Enum, ofConstruct } from "../types";
3
- class DefaultProvider {
4
- }
5
- class Database extends Enum {
6
- constructor(name, provider, options) {
7
- super(name);
8
- this.provider = provider;
9
- this.options = options;
10
- }
11
- static Default = new Database("Default", DefaultProvider);
12
- provide = () => ofConstruct(this.provider, this);
13
- }
14
17
  export {
15
18
  Database,
16
19
  DefaultProvider
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/data/Database.ts"],"sourcesContent":["import { Constructor, Enum, ofConstruct } from '../types';\nimport { DataProvider } from './DataProvider';\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(name: string, readonly provider: Constructor<DataProvider> | DataProvider, readonly options?: DatabaseOptions) {\n super(name);\n }\n\n provide = <P>(): P => ofConstruct(this.provider, this);\n}\n"],"mappings":";AAAA,SAAsB,MAAM,mBAAmB;AAexC,MAAM,gBAAwC;AAAC;AAE/C,MAAM,iBAAiB,KAAK;AAAA,EAGjC,YAAY,MAAuB,UAA6D,SAA2B;AACzH,UAAM,IAAI;AADuB;AAA6D;AAAA,EAEhG;AAAA,EAJA,OAAgB,UAAU,IAAI,SAAS,WAAW,eAAe;AAAA,EAMjE,UAAU,MAAY,YAAY,KAAK,UAAU,IAAI;AACvD;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,8 +1,30 @@
1
+ import {
2
+ Property
3
+ } from "../chunk-PLIJ2CRV.mjs";
4
+ import {
5
+ SortCondition,
6
+ toCondition
7
+ } from "../chunk-WEXSGVXZ.mjs";
8
+ import "../chunk-NYTGMBLK.mjs";
9
+ import "../chunk-YTWFWQNB.mjs";
10
+ import "../chunk-CMRS457E.mjs";
11
+ import "../chunk-5AF55QCJ.mjs";
12
+ import "../chunk-JXJ5LRH3.mjs";
13
+ import "../chunk-4QX4EMLL.mjs";
14
+ import "../chunk-SJGQU3OG.mjs";
15
+ import {
16
+ toArray
17
+ } from "../chunk-FAAERRP2.mjs";
18
+ import "../chunk-GI5TZOAG.mjs";
19
+ import "../chunk-PSIJUWZT.mjs";
20
+ import "../chunk-PIRWVOO2.mjs";
21
+ import {
22
+ isDefined
23
+ } from "../chunk-OXBQSJDF.mjs";
1
24
  import "../chunk-4N72FQFX.mjs";
2
- import { Property } from "../utils";
3
- import { SortCondition, toCondition } from "./Condition";
4
- import { isDefined, toArray } from "../types";
5
- class Field extends Property {
25
+
26
+ // src/data/Field.ts
27
+ var Field = class extends Property {
6
28
  is = (value) => this.condition("eq", value);
7
29
  isNot = (value) => this.condition("ne", value);
8
30
  isIn = (...value) => this.condition("in", toArray(value));
@@ -15,8 +37,8 @@ class Field extends Property {
15
37
  asc = () => new SortCondition(this.property, 1);
16
38
  desc = () => new SortCondition(this.property, -1);
17
39
  condition = (operator, value) => toCondition(this.property, operator, value, this.options?.convert);
18
- }
19
- const isField = (f) => isDefined(f) && f instanceof Field;
40
+ };
41
+ var isField = (f) => isDefined(f) && f instanceof Field;
20
42
  export {
21
43
  Field,
22
44
  isField
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/data/Field.ts"],"sourcesContent":["import { Property } from '../utils';\nimport { Condition, SortCondition, toCondition } from './Condition';\nimport { isDefined, toArray } from '../types';\n\nexport class Field extends Property {\n is = (value: unknown): Condition => this.condition('eq', value);\n\n isNot = (value: unknown): Condition => this.condition('ne', value);\n\n isIn = (...value: unknown[]): Condition => this.condition('in', toArray(value));\n\n notIn = (...value: unknown[]): Condition => this.condition('nin', toArray(value));\n\n exists = (does: boolean): Condition => this.condition('exists', does);\n\n greater = (value: unknown): Condition => this.condition('gt', value);\n\n greaterEqual = (value: unknown): Condition => this.condition('gte', value);\n\n less = (value: unknown): Condition => this.condition('lt', value);\n\n lessEqual = (value: unknown): Condition => this.condition('lte', value);\n\n asc = (): SortCondition => new SortCondition(this.property, 1);\n\n desc = (): SortCondition => new SortCondition(this.property, -1);\n\n protected condition = (operator: string, value: unknown): Condition => toCondition(this.property, operator, value, this.options?.convert);\n}\n\nexport const isField = (f?: unknown): f is Field => isDefined(f) && f instanceof Field;\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAoB,eAAe,mBAAmB;AACtD,SAAS,WAAW,eAAe;AAE5B,MAAM,cAAc,SAAS;AAAA,EAClC,KAAK,CAAC,UAA8B,KAAK,UAAU,MAAM,KAAK;AAAA,EAE9D,QAAQ,CAAC,UAA8B,KAAK,UAAU,MAAM,KAAK;AAAA,EAEjE,OAAO,IAAI,UAAgC,KAAK,UAAU,MAAM,QAAQ,KAAK,CAAC;AAAA,EAE9E,QAAQ,IAAI,UAAgC,KAAK,UAAU,OAAO,QAAQ,KAAK,CAAC;AAAA,EAEhF,SAAS,CAAC,SAA6B,KAAK,UAAU,UAAU,IAAI;AAAA,EAEpE,UAAU,CAAC,UAA8B,KAAK,UAAU,MAAM,KAAK;AAAA,EAEnE,eAAe,CAAC,UAA8B,KAAK,UAAU,OAAO,KAAK;AAAA,EAEzE,OAAO,CAAC,UAA8B,KAAK,UAAU,MAAM,KAAK;AAAA,EAEhE,YAAY,CAAC,UAA8B,KAAK,UAAU,OAAO,KAAK;AAAA,EAEtE,MAAM,MAAqB,IAAI,cAAc,KAAK,UAAU,CAAC;AAAA,EAE7D,OAAO,MAAqB,IAAI,cAAc,KAAK,UAAU,EAAE;AAAA,EAErD,YAAY,CAAC,UAAkB,UAA8B,YAAY,KAAK,UAAU,UAAU,OAAO,KAAK,SAAS,OAAO;AAC1I;AAEO,MAAM,UAAU,CAAC,MAA4B,UAAU,CAAC,KAAK,aAAa;","names":[]}
1
+ {"version":3,"sources":["../../src/data/Field.ts"],"sourcesContent":["import { Property } from '../utils';\nimport { Condition, SortCondition, toCondition } from './Condition';\nimport { isDefined, toArray } from '../types';\n\nexport class Field extends Property {\n is = (value: unknown): Condition => this.condition('eq', value);\n\n isNot = (value: unknown): Condition => this.condition('ne', value);\n\n isIn = (...value: unknown[]): Condition => this.condition('in', toArray(value));\n\n notIn = (...value: unknown[]): Condition => this.condition('nin', toArray(value));\n\n exists = (does: boolean): Condition => this.condition('exists', does);\n\n greater = (value: unknown): Condition => this.condition('gt', value);\n\n greaterEqual = (value: unknown): Condition => this.condition('gte', value);\n\n less = (value: unknown): Condition => this.condition('lt', value);\n\n lessEqual = (value: unknown): Condition => this.condition('lte', value);\n\n asc = (): SortCondition => new SortCondition(this.property, 1);\n\n desc = (): SortCondition => new SortCondition(this.property, -1);\n\n protected condition = (operator: string, value: unknown): Condition => toCondition(this.property, operator, value, this.options?.convert);\n}\n\nexport const isField = (f?: unknown): f is Field => isDefined(f) && f instanceof Field;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,IAAM,QAAN,cAAoB,SAAS;AAAA,EAClC,KAAK,CAAC,UAA8B,KAAK,UAAU,MAAM,KAAK;AAAA,EAE9D,QAAQ,CAAC,UAA8B,KAAK,UAAU,MAAM,KAAK;AAAA,EAEjE,OAAO,IAAI,UAAgC,KAAK,UAAU,MAAM,QAAQ,KAAK,CAAC;AAAA,EAE9E,QAAQ,IAAI,UAAgC,KAAK,UAAU,OAAO,QAAQ,KAAK,CAAC;AAAA,EAEhF,SAAS,CAAC,SAA6B,KAAK,UAAU,UAAU,IAAI;AAAA,EAEpE,UAAU,CAAC,UAA8B,KAAK,UAAU,MAAM,KAAK;AAAA,EAEnE,eAAe,CAAC,UAA8B,KAAK,UAAU,OAAO,KAAK;AAAA,EAEzE,OAAO,CAAC,UAA8B,KAAK,UAAU,MAAM,KAAK;AAAA,EAEhE,YAAY,CAAC,UAA8B,KAAK,UAAU,OAAO,KAAK;AAAA,EAEtE,MAAM,MAAqB,IAAI,cAAc,KAAK,UAAU,CAAC;AAAA,EAE7D,OAAO,MAAqB,IAAI,cAAc,KAAK,UAAU,EAAE;AAAA,EAErD,YAAY,CAAC,UAAkB,UAA8B,YAAY,KAAK,UAAU,UAAU,OAAO,KAAK,SAAS,OAAO;AAC1I;AAEO,IAAM,UAAU,CAAC,MAA4B,UAAU,CAAC,KAAK,aAAa;","names":[]}
@@ -1,7 +1,29 @@
1
+ import {
2
+ Gateway
3
+ } from "../chunk-UDLMLGTS.mjs";
4
+ import {
5
+ toPageList
6
+ } from "../chunk-7NYZAGM3.mjs";
7
+ import {
8
+ Exception,
9
+ when
10
+ } from "../chunk-YTWFWQNB.mjs";
11
+ import "../chunk-CMRS457E.mjs";
12
+ import "../chunk-5AF55QCJ.mjs";
13
+ import "../chunk-JXJ5LRH3.mjs";
14
+ import "../chunk-4QX4EMLL.mjs";
15
+ import "../chunk-SJGQU3OG.mjs";
16
+ import "../chunk-FAAERRP2.mjs";
17
+ import "../chunk-GI5TZOAG.mjs";
18
+ import "../chunk-PSIJUWZT.mjs";
19
+ import "../chunk-PIRWVOO2.mjs";
20
+ import {
21
+ isDefined
22
+ } from "../chunk-OXBQSJDF.mjs";
1
23
  import "../chunk-4N72FQFX.mjs";
2
- import { Exception, Gateway, isDefined, toPageList } from "../types";
3
- import { when } from "../validation";
4
- class InMemoryGateway extends Gateway {
24
+
25
+ // src/data/InMemoryGateway.ts
26
+ var InMemoryGateway = class extends Gateway {
5
27
  constructor(data) {
6
28
  super();
7
29
  this.data = data;
@@ -29,7 +51,7 @@ class InMemoryGateway extends Gateway {
29
51
  update(item) {
30
52
  return when(item).not.contains((i) => i.id).reject(Exception.IsMissingId).then((i) => this.remove(i.id).then(() => this.add(i)));
31
53
  }
32
- }
54
+ };
33
55
  export {
34
56
  InMemoryGateway
35
57
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/data/InMemoryGateway.ts"],"sourcesContent":["import { Exception, FetchOptions, Gateway, Id, isDefined, Json, JsonValue, Optional, PageList, toPageList } from '../types';\nimport { when } from '../validation';\n\nexport class InMemoryGateway extends Gateway {\n constructor(private readonly data: Promise<PageList<Json>>) {\n super();\n }\n\n all(options?: FetchOptions): Promise<PageList<Json>> {\n return this.data.then(d => toPageList(d, d));\n }\n\n byId(id: Id): Promise<Optional<Json>> {\n return this.data.then(d => d.byId(id)).then(d => (d ? { ...d } : undefined));\n }\n\n by = (key: string, value: JsonValue): Promise<PageList<Json>> => {\n return this.data.then(d => d.filter(i => i[key] === value));\n };\n\n exists(id: Id): Promise<boolean> {\n return this.byId(id).then(d => isDefined(d));\n }\n\n add(item: Json): Promise<Json> {\n return when(item)\n .not.contains(i => i.id)\n .reject(Exception.IsMissingId)\n .then(i => this.exists(i.id as Id))\n .then(ex => when(ex).isTrue.reject(Exception.AlreadyExists))\n .then(() => this.data.then(d => d.add(item)))\n .then(() => ({ ...item }));\n }\n\n remove(id: Id): Promise<true> {\n return this.data\n .then(d =>\n when(d.findIndex(i => i.id === id))\n .with(i => i < 0)\n .reject(Exception.DoesNotExist)\n .then(i => d.splice(i, 1))\n )\n .then(() => true);\n }\n\n update(item: Json): Promise<Json> {\n return when(item)\n .not.contains(i => i.id)\n .reject(Exception.IsMissingId)\n .then(i => this.remove(i.id as Id).then(() => this.add(i)));\n }\n}\n"],"mappings":";AAAA,SAAS,WAAyB,SAAa,WAAgD,kBAAkB;AACjH,SAAS,YAAY;AAEd,MAAM,wBAAwB,QAAQ;AAAA,EAC3C,YAA6B,MAA+B;AAC1D,UAAM;AADqB;AAAA,EAE7B;AAAA,EAEA,IAAI,SAAiD;AACnD,WAAO,KAAK,KAAK,KAAK,OAAK,WAAW,GAAG,CAAC,CAAC;AAAA,EAC7C;AAAA,EAEA,KAAK,IAAiC;AACpC,WAAO,KAAK,KAAK,KAAK,OAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,OAAM,IAAI,EAAE,GAAG,EAAE,IAAI,MAAU;AAAA,EAC7E;AAAA,EAEA,KAAK,CAAC,KAAa,UAA8C;AAC/D,WAAO,KAAK,KAAK,KAAK,OAAK,EAAE,OAAO,OAAK,EAAE,GAAG,MAAM,KAAK,CAAC;AAAA,EAC5D;AAAA,EAEA,OAAO,IAA0B;AAC/B,WAAO,KAAK,KAAK,EAAE,EAAE,KAAK,OAAK,UAAU,CAAC,CAAC;AAAA,EAC7C;AAAA,EAEA,IAAI,MAA2B;AAC7B,WAAO,KAAK,IAAI,EACb,IAAI,SAAS,OAAK,EAAE,EAAE,EACtB,OAAO,UAAU,WAAW,EAC5B,KAAK,OAAK,KAAK,OAAO,EAAE,EAAQ,CAAC,EACjC,KAAK,QAAM,KAAK,EAAE,EAAE,OAAO,OAAO,UAAU,aAAa,CAAC,EAC1D,KAAK,MAAM,KAAK,KAAK,KAAK,OAAK,EAAE,IAAI,IAAI,CAAC,CAAC,EAC3C,KAAK,OAAO,EAAE,GAAG,KAAK,EAAE;AAAA,EAC7B;AAAA,EAEA,OAAO,IAAuB;AAC5B,WAAO,KAAK,KACT;AAAA,MAAK,OACJ,KAAK,EAAE,UAAU,OAAK,EAAE,OAAO,EAAE,CAAC,EAC/B,KAAK,OAAK,IAAI,CAAC,EACf,OAAO,UAAU,YAAY,EAC7B,KAAK,OAAK,EAAE,OAAO,GAAG,CAAC,CAAC;AAAA,IAC7B,EACC,KAAK,MAAM,IAAI;AAAA,EACpB;AAAA,EAEA,OAAO,MAA2B;AAChC,WAAO,KAAK,IAAI,EACb,IAAI,SAAS,OAAK,EAAE,EAAE,EACtB,OAAO,UAAU,WAAW,EAC5B,KAAK,OAAK,KAAK,OAAO,EAAE,EAAQ,EAAE,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;AAAA,EAC9D;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/data/InMemoryGateway.ts"],"sourcesContent":["import { Exception, FetchOptions, Gateway, Id, isDefined, Json, JsonValue, Optional, PageList, toPageList } from '../types';\nimport { when } from '../validation';\n\nexport class InMemoryGateway extends Gateway {\n constructor(private readonly data: Promise<PageList<Json>>) {\n super();\n }\n\n all(options?: FetchOptions): Promise<PageList<Json>> {\n return this.data.then(d => toPageList(d, d));\n }\n\n byId(id: Id): Promise<Optional<Json>> {\n return this.data.then(d => d.byId(id)).then(d => (d ? { ...d } : undefined));\n }\n\n by = (key: string, value: JsonValue): Promise<PageList<Json>> => {\n return this.data.then(d => d.filter(i => i[key] === value));\n };\n\n exists(id: Id): Promise<boolean> {\n return this.byId(id).then(d => isDefined(d));\n }\n\n add(item: Json): Promise<Json> {\n return when(item)\n .not.contains(i => i.id)\n .reject(Exception.IsMissingId)\n .then(i => this.exists(i.id as Id))\n .then(ex => when(ex).isTrue.reject(Exception.AlreadyExists))\n .then(() => this.data.then(d => d.add(item)))\n .then(() => ({ ...item }));\n }\n\n remove(id: Id): Promise<true> {\n return this.data\n .then(d =>\n when(d.findIndex(i => i.id === id))\n .with(i => i < 0)\n .reject(Exception.DoesNotExist)\n .then(i => d.splice(i, 1))\n )\n .then(() => true);\n }\n\n update(item: Json): Promise<Json> {\n return when(item)\n .not.contains(i => i.id)\n .reject(Exception.IsMissingId)\n .then(i => this.remove(i.id as Id).then(() => this.add(i)));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGO,IAAM,kBAAN,cAA8B,QAAQ;AAAA,EAC3C,YAA6B,MAA+B;AAC1D,UAAM;AADqB;AAAA,EAE7B;AAAA,EAEA,IAAI,SAAiD;AACnD,WAAO,KAAK,KAAK,KAAK,OAAK,WAAW,GAAG,CAAC,CAAC;AAAA,EAC7C;AAAA,EAEA,KAAK,IAAiC;AACpC,WAAO,KAAK,KAAK,KAAK,OAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,OAAM,IAAI,EAAE,GAAG,EAAE,IAAI,MAAU;AAAA,EAC7E;AAAA,EAEA,KAAK,CAAC,KAAa,UAA8C;AAC/D,WAAO,KAAK,KAAK,KAAK,OAAK,EAAE,OAAO,OAAK,EAAE,GAAG,MAAM,KAAK,CAAC;AAAA,EAC5D;AAAA,EAEA,OAAO,IAA0B;AAC/B,WAAO,KAAK,KAAK,EAAE,EAAE,KAAK,OAAK,UAAU,CAAC,CAAC;AAAA,EAC7C;AAAA,EAEA,IAAI,MAA2B;AAC7B,WAAO,KAAK,IAAI,EACb,IAAI,SAAS,OAAK,EAAE,EAAE,EACtB,OAAO,UAAU,WAAW,EAC5B,KAAK,OAAK,KAAK,OAAO,EAAE,EAAQ,CAAC,EACjC,KAAK,QAAM,KAAK,EAAE,EAAE,OAAO,OAAO,UAAU,aAAa,CAAC,EAC1D,KAAK,MAAM,KAAK,KAAK,KAAK,OAAK,EAAE,IAAI,IAAI,CAAC,CAAC,EAC3C,KAAK,OAAO,EAAE,GAAG,KAAK,EAAE;AAAA,EAC7B;AAAA,EAEA,OAAO,IAAuB;AAC5B,WAAO,KAAK,KACT;AAAA,MAAK,OACJ,KAAK,EAAE,UAAU,OAAK,EAAE,OAAO,EAAE,CAAC,EAC/B,KAAK,OAAK,IAAI,CAAC,EACf,OAAO,UAAU,YAAY,EAC7B,KAAK,OAAK,EAAE,OAAO,GAAG,CAAC,CAAC;AAAA,IAC7B,EACC,KAAK,MAAM,IAAI;AAAA,EACpB;AAAA,EAEA,OAAO,MAA2B;AAChC,WAAO,KAAK,IAAI,EACb,IAAI,SAAS,OAAK,EAAE,EAAE,EACtB,OAAO,UAAU,WAAW,EAC5B,KAAK,OAAK,KAAK,OAAO,EAAE,EAAQ,EAAE,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;AAAA,EAC9D;AACF;","names":[]}
@@ -1,28 +1,22 @@
1
1
  import {
2
- __decorateClass
3
- } from "../chunk-4N72FQFX.mjs";
4
- import { Struct } from "./Struct";
5
- import { choose, ctx } from "../types";
6
- import { required, valid } from "../validation";
7
- import { DateTime } from "./values";
8
- class Audit extends Struct {
9
- by = { id: this.state.by.id, user: this.state.by.user };
10
- when = new DateTime(this.state.when);
11
- constructor(json) {
12
- super(
13
- choose(json).is.defined(
14
- (j) => j,
15
- (j) => j
16
- ).else({ by: ctx.request?.identity ?? { id: 0, user: "easy" }, when: DateTime.now.toJSON() })
17
- );
18
- }
19
- }
20
- __decorateClass([
21
- required()
22
- ], Audit.prototype, "by", 2);
23
- __decorateClass([
24
- valid()
25
- ], Audit.prototype, "when", 2);
2
+ Audit
3
+ } from "../chunk-CLKUH5JA.mjs";
4
+ import "../chunk-74AOBBOZ.mjs";
5
+ import "../chunk-EZC3HAYN.mjs";
6
+ import "../chunk-ADJAEGCT.mjs";
7
+ import "../chunk-QOGUHAMC.mjs";
8
+ import "../chunk-YTWFWQNB.mjs";
9
+ import "../chunk-CMRS457E.mjs";
10
+ import "../chunk-5AF55QCJ.mjs";
11
+ import "../chunk-JXJ5LRH3.mjs";
12
+ import "../chunk-4QX4EMLL.mjs";
13
+ import "../chunk-SJGQU3OG.mjs";
14
+ import "../chunk-FAAERRP2.mjs";
15
+ import "../chunk-GI5TZOAG.mjs";
16
+ import "../chunk-PSIJUWZT.mjs";
17
+ import "../chunk-PIRWVOO2.mjs";
18
+ import "../chunk-OXBQSJDF.mjs";
19
+ import "../chunk-4N72FQFX.mjs";
26
20
  export {
27
21
  Audit
28
22
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/domain/Audit.ts"],"sourcesContent":["import { Struct } from './Struct';\nimport { choose, ctx, Id, Json } from '../types';\nimport { required, valid } from '../validation';\nimport { DateTime } from './values';\n\nexport class Audit extends Struct {\n @required() readonly by: { id: Id; user: string } = { id: this.state.by.id, user: this.state.by.user };\n @valid() readonly when: DateTime = new DateTime(this.state.when);\n\n constructor(json?: Json) {\n super(\n choose(json)\n .is.defined(\n j => j,\n j => j\n )\n .else({ by: ctx.request?.identity ?? { id: 0, user: 'easy' }, when: DateTime.now.toJSON() })\n );\n }\n}\n"],"mappings":";;;AAAA,SAAS,cAAc;AACvB,SAAS,QAAQ,WAAqB;AACtC,SAAS,UAAU,aAAa;AAChC,SAAS,gBAAgB;AAElB,MAAM,cAAc,OAAO;AAAA,EACX,KAA+B,EAAE,IAAI,KAAK,MAAM,GAAG,IAAI,MAAM,KAAK,MAAM,GAAG,KAAK;AAAA,EACnF,OAAiB,IAAI,SAAS,KAAK,MAAM,IAAI;AAAA,EAE/D,YAAY,MAAa;AACvB;AAAA,MACE,OAAO,IAAI,EACR,GAAG;AAAA,QACF,OAAK;AAAA,QACL,OAAK;AAAA,MACP,EACC,KAAK,EAAE,IAAI,IAAI,SAAS,YAAY,EAAE,IAAI,GAAG,MAAM,OAAO,GAAG,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;AAAA,IAC/F;AAAA,EACF;AACF;AAbuB;AAAA,EAApB,SAAS;AAAA,GADC,MACU;AACH;AAAA,EAAjB,MAAM;AAAA,GAFI,MAEO;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,15 +1,38 @@
1
+ import {
2
+ toId
3
+ } from "../chunk-MDLVDMKY.mjs";
4
+ import "../chunk-AKYA7FHU.mjs";
5
+ import {
6
+ required
7
+ } from "../chunk-EZC3HAYN.mjs";
8
+ import "../chunk-ADJAEGCT.mjs";
9
+ import {
10
+ Struct
11
+ } from "../chunk-QOGUHAMC.mjs";
12
+ import "../chunk-YTWFWQNB.mjs";
13
+ import "../chunk-CMRS457E.mjs";
14
+ import {
15
+ json
16
+ } from "../chunk-5AF55QCJ.mjs";
17
+ import "../chunk-JXJ5LRH3.mjs";
18
+ import "../chunk-4QX4EMLL.mjs";
19
+ import "../chunk-SJGQU3OG.mjs";
20
+ import "../chunk-FAAERRP2.mjs";
21
+ import "../chunk-GI5TZOAG.mjs";
22
+ import "../chunk-PSIJUWZT.mjs";
23
+ import "../chunk-PIRWVOO2.mjs";
24
+ import "../chunk-OXBQSJDF.mjs";
1
25
  import {
2
26
  __decorateClass
3
27
  } from "../chunk-4N72FQFX.mjs";
4
- import { Struct } from "./Struct";
5
- import { json, toId } from "../types";
6
- import { required } from "../validation";
7
- class Child extends Struct {
28
+
29
+ // src/domain/Child.ts
30
+ var Child = class extends Struct {
8
31
  id = this.state.id ?? toId();
9
32
  merge(a) {
10
33
  return json.merge(this, a, { id: this.id });
11
34
  }
12
- }
35
+ };
13
36
  __decorateClass([
14
37
  required()
15
38
  ], Child.prototype, "id", 2);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/domain/Child.ts"],"sourcesContent":["import { Struct } from './Struct';\nimport { Id, json, Json, toId } from '../types';\nimport { required } from '../validation';\n\nexport abstract class Child extends Struct {\n @required() readonly id: Id = this.state.id ?? toId();\n\n protected merge(a: unknown): Json {\n return json.merge(this, a, { id: this.id });\n }\n}\n"],"mappings":";;;AAAA,SAAS,cAAc;AACvB,SAAa,MAAY,YAAY;AACrC,SAAS,gBAAgB;AAElB,MAAe,cAAc,OAAO;AAAA,EACpB,KAAS,KAAK,MAAM,MAAM,KAAK;AAAA,EAE1C,MAAM,GAAkB;AAChC,WAAO,KAAK,MAAM,MAAM,GAAG,EAAE,IAAI,KAAK,GAAG,CAAC;AAAA,EAC5C;AACF;AALuB;AAAA,EAApB,SAAS;AAAA,GADU,MACC;","names":[]}
1
+ {"version":3,"sources":["../../src/domain/Child.ts"],"sourcesContent":["import { Struct } from './Struct';\nimport { Id, json, Json, toId } from '../types';\nimport { required } from '../validation';\n\nexport abstract class Child extends Struct {\n @required() readonly id: Id = this.state.id ?? toId();\n\n protected merge(a: unknown): Json {\n return json.merge(this, a, { id: this.id });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,IAAe,QAAf,cAA6B,OAAO;AAAA,EACpB,KAAS,KAAK,MAAM,MAAM,KAAK;AAAA,EAE1C,MAAM,GAAkB;AAChC,WAAO,KAAK,MAAM,MAAM,GAAG,EAAE,IAAI,KAAK,GAAG,CAAC;AAAA,EAC5C;AACF;AALuB;AAAA,EAApB,SAAS;AAAA,GADU,MACC;","names":[]}