@thisisagile/easy 17.26.1 → 17.26.2

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 (373) hide show
  1. package/dist/chunk-2AB6ZQHC.mjs +26 -0
  2. package/dist/chunk-2AB6ZQHC.mjs.map +1 -0
  3. package/dist/chunk-4DJUHTQO.mjs +55 -0
  4. package/dist/chunk-4DJUHTQO.mjs.map +1 -0
  5. package/dist/chunk-4HWEQEHM.mjs +20 -0
  6. package/dist/chunk-4HWEQEHM.mjs.map +1 -0
  7. package/dist/chunk-4N72FQFX.mjs +16 -0
  8. package/dist/chunk-4N72FQFX.mjs.map +1 -0
  9. package/dist/chunk-4SWYJEN5.mjs +82 -0
  10. package/dist/chunk-4SWYJEN5.mjs.map +1 -0
  11. package/dist/chunk-4VZHB642.mjs +37 -0
  12. package/dist/chunk-4VZHB642.mjs.map +1 -0
  13. package/dist/chunk-ADJAEGCT.mjs +21 -0
  14. package/dist/chunk-ADJAEGCT.mjs.map +1 -0
  15. package/dist/chunk-AGTB4HMP.mjs +11 -0
  16. package/dist/chunk-AGTB4HMP.mjs.map +1 -0
  17. package/dist/chunk-BDA5LB4S.mjs +29 -0
  18. package/dist/chunk-BDA5LB4S.mjs.map +1 -0
  19. package/dist/chunk-BZOYP6X7.mjs +134 -0
  20. package/dist/chunk-BZOYP6X7.mjs.map +1 -0
  21. package/dist/chunk-CO2AFYVD.mjs +43 -0
  22. package/dist/chunk-CO2AFYVD.mjs.map +1 -0
  23. package/dist/chunk-D7UFAVDX.mjs +54 -0
  24. package/dist/chunk-D7UFAVDX.mjs.map +1 -0
  25. package/dist/chunk-DEFTEK45.mjs +40 -0
  26. package/dist/chunk-DEFTEK45.mjs.map +1 -0
  27. package/dist/chunk-DEJ7A5PY.mjs +43 -0
  28. package/dist/chunk-DEJ7A5PY.mjs.map +1 -0
  29. package/dist/chunk-DLA22ZCC.mjs +20 -0
  30. package/dist/chunk-DLA22ZCC.mjs.map +1 -0
  31. package/dist/chunk-DXQSIBC7.mjs +13 -0
  32. package/dist/chunk-DXQSIBC7.mjs.map +1 -0
  33. package/dist/chunk-ELDS3NWV.mjs +23 -0
  34. package/dist/chunk-ELDS3NWV.mjs.map +1 -0
  35. package/dist/chunk-ELUKCMQZ.mjs +50 -0
  36. package/dist/chunk-ELUKCMQZ.mjs.map +1 -0
  37. package/dist/chunk-FN7HN3YK.mjs +58 -0
  38. package/dist/chunk-FN7HN3YK.mjs.map +1 -0
  39. package/dist/chunk-GCY5A63A.mjs +25 -0
  40. package/dist/chunk-GCY5A63A.mjs.map +1 -0
  41. package/dist/chunk-GO66AIDJ.mjs +76 -0
  42. package/dist/chunk-GO66AIDJ.mjs.map +1 -0
  43. package/dist/chunk-GVTADDU5.mjs +39 -0
  44. package/dist/chunk-GVTADDU5.mjs.map +1 -0
  45. package/dist/chunk-GZIULZH2.mjs +79 -0
  46. package/dist/chunk-GZIULZH2.mjs.map +1 -0
  47. package/dist/chunk-HOVTNDHS.mjs +297 -0
  48. package/dist/chunk-HOVTNDHS.mjs.map +1 -0
  49. package/dist/chunk-HPM4L4MH.mjs +20 -0
  50. package/dist/chunk-HPM4L4MH.mjs.map +1 -0
  51. package/dist/chunk-HSOXY623.mjs +53 -0
  52. package/dist/chunk-HSOXY623.mjs.map +1 -0
  53. package/dist/chunk-IH4VU7UP.mjs +31 -0
  54. package/dist/chunk-IH4VU7UP.mjs.map +1 -0
  55. package/dist/chunk-JPWRHLXY.mjs +51 -0
  56. package/dist/chunk-JPWRHLXY.mjs.map +1 -0
  57. package/dist/chunk-L5KXXMUH.mjs +46 -0
  58. package/dist/chunk-L5KXXMUH.mjs.map +1 -0
  59. package/dist/chunk-L5ZI7SPN.mjs +90 -0
  60. package/dist/chunk-L5ZI7SPN.mjs.map +1 -0
  61. package/dist/chunk-LGLRWA42.mjs +324 -0
  62. package/dist/chunk-LGLRWA42.mjs.map +1 -0
  63. package/dist/chunk-LKTTPV6U.mjs +70 -0
  64. package/dist/chunk-LKTTPV6U.mjs.map +1 -0
  65. package/dist/chunk-LONFFS5R.mjs +107 -0
  66. package/dist/chunk-LONFFS5R.mjs.map +1 -0
  67. package/dist/chunk-LUHR6633.mjs +54 -0
  68. package/dist/chunk-LUHR6633.mjs.map +1 -0
  69. package/dist/chunk-MDXL65W4.mjs +49 -0
  70. package/dist/chunk-MDXL65W4.mjs.map +1 -0
  71. package/dist/chunk-N22QIDIK.mjs +25 -0
  72. package/dist/chunk-N22QIDIK.mjs.map +1 -0
  73. package/dist/chunk-NBYO2U6Q.mjs +48 -0
  74. package/dist/chunk-NBYO2U6Q.mjs.map +1 -0
  75. package/dist/chunk-NPCTXURR.mjs +23 -0
  76. package/dist/chunk-NPCTXURR.mjs.map +1 -0
  77. package/dist/chunk-OFGI5FLG.mjs +11 -0
  78. package/dist/chunk-OFGI5FLG.mjs.map +1 -0
  79. package/dist/chunk-OGLPG6DF.mjs +18 -0
  80. package/dist/chunk-OGLPG6DF.mjs.map +1 -0
  81. package/dist/chunk-OKPGJD64.mjs +41 -0
  82. package/dist/chunk-OKPGJD64.mjs.map +1 -0
  83. package/dist/chunk-OQNZEKWO.mjs +24 -0
  84. package/dist/chunk-OQNZEKWO.mjs.map +1 -0
  85. package/dist/chunk-OWLQ6U7M.mjs +57 -0
  86. package/dist/chunk-OWLQ6U7M.mjs.map +1 -0
  87. package/dist/chunk-P5MN5NGC.mjs +24 -0
  88. package/dist/chunk-P5MN5NGC.mjs.map +1 -0
  89. package/dist/chunk-PIRWVOO2.mjs +7 -0
  90. package/dist/chunk-PIRWVOO2.mjs.map +1 -0
  91. package/dist/chunk-PR6DFFCE.mjs +94 -0
  92. package/dist/chunk-PR6DFFCE.mjs.map +1 -0
  93. package/dist/chunk-QMASVXTD.mjs +40 -0
  94. package/dist/chunk-QMASVXTD.mjs.map +1 -0
  95. package/dist/chunk-QNNYTOR7.mjs +142 -0
  96. package/dist/chunk-QNNYTOR7.mjs.map +1 -0
  97. package/dist/chunk-RHOK5QZR.mjs +175 -0
  98. package/dist/chunk-RHOK5QZR.mjs.map +1 -0
  99. package/dist/chunk-RS7CT7BU.mjs +20 -0
  100. package/dist/chunk-RS7CT7BU.mjs.map +1 -0
  101. package/dist/chunk-RUFO75IB.mjs +18 -0
  102. package/dist/chunk-RUFO75IB.mjs.map +1 -0
  103. package/dist/chunk-RWGCMC6L.mjs +164 -0
  104. package/dist/chunk-RWGCMC6L.mjs.map +1 -0
  105. package/dist/chunk-SCVGZWV7.mjs +35 -0
  106. package/dist/chunk-SCVGZWV7.mjs.map +1 -0
  107. package/dist/chunk-SJ4YFZKO.mjs +21 -0
  108. package/dist/chunk-SJ4YFZKO.mjs.map +1 -0
  109. package/dist/chunk-SJGQU3OG.mjs +15 -0
  110. package/dist/chunk-SJGQU3OG.mjs.map +1 -0
  111. package/dist/chunk-SSROJBD5.mjs +30 -0
  112. package/dist/chunk-SSROJBD5.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-TNZJKUDY.mjs +45 -0
  116. package/dist/chunk-TNZJKUDY.mjs.map +1 -0
  117. package/dist/chunk-UXADDXCJ.mjs +68 -0
  118. package/dist/chunk-UXADDXCJ.mjs.map +1 -0
  119. package/dist/chunk-UYDZZAEK.mjs +11 -0
  120. package/dist/chunk-UYDZZAEK.mjs.map +1 -0
  121. package/dist/chunk-VBZTERRM.mjs +94 -0
  122. package/dist/chunk-VBZTERRM.mjs.map +1 -0
  123. package/dist/chunk-WJZFE5NE.mjs +17 -0
  124. package/dist/chunk-WJZFE5NE.mjs.map +1 -0
  125. package/dist/chunk-WLTLSV2I.mjs +20 -0
  126. package/dist/chunk-WLTLSV2I.mjs.map +1 -0
  127. package/dist/chunk-WOSYMEQL.mjs +60 -0
  128. package/dist/chunk-WOSYMEQL.mjs.map +1 -0
  129. package/dist/chunk-WSBULPUZ.mjs +30 -0
  130. package/dist/chunk-WSBULPUZ.mjs.map +1 -0
  131. package/dist/chunk-WVTNXVBL.mjs +56 -0
  132. package/dist/chunk-WVTNXVBL.mjs.map +1 -0
  133. package/dist/chunk-ZHXKBOK2.mjs +22 -0
  134. package/dist/chunk-ZHXKBOK2.mjs.map +1 -0
  135. package/dist/chunk-ZPNFXK7Y.mjs +36 -0
  136. package/dist/chunk-ZPNFXK7Y.mjs.map +1 -0
  137. package/dist/data/Condition.mjs +29 -0
  138. package/dist/data/Condition.mjs.map +1 -0
  139. package/dist/data/DataProvider.mjs +1 -0
  140. package/dist/data/DataProvider.mjs.map +1 -0
  141. package/dist/data/Database.mjs +23 -0
  142. package/dist/data/Database.mjs.map +1 -0
  143. package/dist/data/Field.mjs +47 -0
  144. package/dist/data/Field.mjs.map +1 -0
  145. package/dist/data/InMemoryGateway.mjs +70 -0
  146. package/dist/data/InMemoryGateway.mjs.map +1 -0
  147. package/dist/data/Query.mjs +1 -0
  148. package/dist/data/Query.mjs.map +1 -0
  149. package/dist/data/QueryProvider.mjs +1 -0
  150. package/dist/data/QueryProvider.mjs.map +1 -0
  151. package/dist/domain/Audit.mjs +36 -0
  152. package/dist/domain/Audit.mjs.map +1 -0
  153. package/dist/domain/Child.mjs +54 -0
  154. package/dist/domain/Child.mjs.map +1 -0
  155. package/dist/domain/DateTime.mjs +36 -0
  156. package/dist/domain/DateTime.mjs.map +1 -0
  157. package/dist/domain/Entity.mjs +71 -0
  158. package/dist/domain/Entity.mjs.map +1 -0
  159. package/dist/domain/Repo.mjs +96 -0
  160. package/dist/domain/Repo.mjs.map +1 -0
  161. package/dist/domain/Struct.mjs +33 -0
  162. package/dist/domain/Struct.mjs.map +1 -0
  163. package/dist/domain/Typo.mjs +114 -0
  164. package/dist/domain/Typo.mjs.map +1 -0
  165. package/dist/http/CacheControl.mjs +66 -0
  166. package/dist/http/CacheControl.mjs.map +1 -0
  167. package/dist/http/ContentType.mjs +21 -0
  168. package/dist/http/ContentType.mjs.map +1 -0
  169. package/dist/http/HttpHeader.mjs +8 -0
  170. package/dist/http/HttpHeader.mjs.map +1 -0
  171. package/dist/http/HttpStatus.mjs +25 -0
  172. package/dist/http/HttpStatus.mjs.map +1 -0
  173. package/dist/http/HttpVerb.mjs +21 -0
  174. package/dist/http/HttpVerb.mjs.map +1 -0
  175. package/dist/http/LocalRequestStore.mjs +29 -0
  176. package/dist/http/LocalRequestStore.mjs.map +1 -0
  177. package/dist/http/Request.mjs +1 -0
  178. package/dist/http/Request.mjs.map +1 -0
  179. package/dist/http/RequestOptions.mjs +30 -0
  180. package/dist/http/RequestOptions.mjs.map +1 -0
  181. package/dist/http/RequestProvider.mjs +1 -0
  182. package/dist/http/RequestProvider.mjs.map +1 -0
  183. package/dist/http/Response.mjs +13 -0
  184. package/dist/http/Response.mjs.map +1 -0
  185. package/dist/http/RestResult.mjs +34 -0
  186. package/dist/http/RestResult.mjs.map +1 -0
  187. package/dist/http/toResponse.mjs +33 -0
  188. package/dist/http/toResponse.mjs.map +1 -0
  189. package/dist/index.mjs +115 -3476
  190. package/dist/index.mjs.map +1 -1
  191. package/dist/process/App.mjs +30 -0
  192. package/dist/process/App.mjs.map +1 -0
  193. package/dist/process/Manage.mjs +47 -0
  194. package/dist/process/Manage.mjs.map +1 -0
  195. package/dist/process/Scope.mjs +22 -0
  196. package/dist/process/Scope.mjs.map +1 -0
  197. package/dist/process/Search.mjs +31 -0
  198. package/dist/process/Search.mjs.map +1 -0
  199. package/dist/process/UseCase.mjs +53 -0
  200. package/dist/process/UseCase.mjs.map +1 -0
  201. package/dist/resources/Req.mjs +57 -0
  202. package/dist/resources/Req.mjs.map +1 -0
  203. package/dist/security/Jwt.mjs +77 -0
  204. package/dist/security/Jwt.mjs.map +1 -0
  205. package/dist/services/Api.mjs +44 -0
  206. package/dist/services/Api.mjs.map +1 -0
  207. package/dist/services/ApiGateway.mjs +45 -0
  208. package/dist/services/ApiGateway.mjs.map +1 -0
  209. package/dist/services/AxiosProvider.mjs +40 -0
  210. package/dist/services/AxiosProvider.mjs.map +1 -0
  211. package/dist/services/MappedRouteGateway.mjs +78 -0
  212. package/dist/services/MappedRouteGateway.mjs.map +1 -0
  213. package/dist/services/RouteGateway.mjs +46 -0
  214. package/dist/services/RouteGateway.mjs.map +1 -0
  215. package/dist/services/ViewRouteGateway.mjs +79 -0
  216. package/dist/services/ViewRouteGateway.mjs.map +1 -0
  217. package/dist/sql/Clause.mjs +24 -0
  218. package/dist/sql/Clause.mjs.map +1 -0
  219. package/dist/sql/Column.mjs +37 -0
  220. package/dist/sql/Column.mjs.map +1 -0
  221. package/dist/sql/Count.mjs +20 -0
  222. package/dist/sql/Count.mjs.map +1 -0
  223. package/dist/sql/Delete.mjs +19 -0
  224. package/dist/sql/Delete.mjs.map +1 -0
  225. package/dist/sql/Insert.mjs +21 -0
  226. package/dist/sql/Insert.mjs.map +1 -0
  227. package/dist/sql/Join.mjs +8 -0
  228. package/dist/sql/Join.mjs.map +1 -0
  229. package/dist/sql/Select.mjs +19 -0
  230. package/dist/sql/Select.mjs.map +1 -0
  231. package/dist/sql/SqlQuery.mjs +18 -0
  232. package/dist/sql/SqlQuery.mjs.map +1 -0
  233. package/dist/sql/Table.mjs +93 -0
  234. package/dist/sql/Table.mjs.map +1 -0
  235. package/dist/sql/TableGateway.mjs +72 -0
  236. package/dist/sql/TableGateway.mjs.map +1 -0
  237. package/dist/sql/Update.mjs +21 -0
  238. package/dist/sql/Update.mjs.map +1 -0
  239. package/dist/types/AnyKey.mjs +1 -0
  240. package/dist/types/AnyKey.mjs.map +1 -0
  241. package/dist/types/Array.mjs +16 -0
  242. package/dist/types/Array.mjs.map +1 -0
  243. package/dist/types/Builder.mjs +26 -0
  244. package/dist/types/Builder.mjs.map +1 -0
  245. package/dist/types/Cache.mjs +29 -0
  246. package/dist/types/Cache.mjs.map +1 -0
  247. package/dist/types/CacheAge.mjs +33 -0
  248. package/dist/types/CacheAge.mjs.map +1 -0
  249. package/dist/types/Case.mjs +29 -0
  250. package/dist/types/Case.mjs.map +1 -0
  251. package/dist/types/Constructor.mjs +23 -0
  252. package/dist/types/Constructor.mjs.map +1 -0
  253. package/dist/types/Context.mjs +28 -0
  254. package/dist/types/Context.mjs.map +1 -0
  255. package/dist/types/Currency.mjs +15 -0
  256. package/dist/types/Currency.mjs.map +1 -0
  257. package/dist/types/Enum.mjs +24 -0
  258. package/dist/types/Enum.mjs.map +1 -0
  259. package/dist/types/Environment.mjs +28 -0
  260. package/dist/types/Environment.mjs.map +1 -0
  261. package/dist/types/ErrorOrigin.mjs +1 -0
  262. package/dist/types/ErrorOrigin.mjs.map +1 -0
  263. package/dist/types/Exception.mjs +26 -0
  264. package/dist/types/Exception.mjs.map +1 -0
  265. package/dist/types/Falsy.mjs +10 -0
  266. package/dist/types/Falsy.mjs.map +1 -0
  267. package/dist/types/Func.mjs +8 -0
  268. package/dist/types/Func.mjs.map +1 -0
  269. package/dist/types/Gateway.mjs +24 -0
  270. package/dist/types/Gateway.mjs.map +1 -0
  271. package/dist/types/Get.mjs +13 -0
  272. package/dist/types/Get.mjs.map +1 -0
  273. package/dist/types/Id.mjs +13 -0
  274. package/dist/types/Id.mjs.map +1 -0
  275. package/dist/types/IdName.mjs +1 -0
  276. package/dist/types/IdName.mjs.map +1 -0
  277. package/dist/types/Identity.mjs +1 -0
  278. package/dist/types/Identity.mjs.map +1 -0
  279. package/dist/types/Indexed.mjs +15 -0
  280. package/dist/types/Indexed.mjs.map +1 -0
  281. package/dist/types/Is.mjs +42 -0
  282. package/dist/types/Is.mjs.map +1 -0
  283. package/dist/types/IsA.mjs +16 -0
  284. package/dist/types/IsA.mjs.map +1 -0
  285. package/dist/types/IsDate.mjs +14 -0
  286. package/dist/types/IsDate.mjs.map +1 -0
  287. package/dist/types/IsEqual.mjs +30 -0
  288. package/dist/types/IsEqual.mjs.map +1 -0
  289. package/dist/types/Json.mjs +29 -0
  290. package/dist/types/Json.mjs.map +1 -0
  291. package/dist/types/List.mjs +27 -0
  292. package/dist/types/List.mjs.map +1 -0
  293. package/dist/types/Message.mjs +11 -0
  294. package/dist/types/Message.mjs.map +1 -0
  295. package/dist/types/Meta.mjs +19 -0
  296. package/dist/types/Meta.mjs.map +1 -0
  297. package/dist/types/Nullish.mjs +8 -0
  298. package/dist/types/Nullish.mjs.map +1 -0
  299. package/dist/types/Number.mjs +30 -0
  300. package/dist/types/Number.mjs.map +1 -0
  301. package/dist/types/Object.mjs +24 -0
  302. package/dist/types/Object.mjs.map +1 -0
  303. package/dist/types/PageList.mjs +40 -0
  304. package/dist/types/PageList.mjs.map +1 -0
  305. package/dist/types/Parser.mjs +80 -0
  306. package/dist/types/Parser.mjs.map +1 -0
  307. package/dist/types/Primitive.mjs +9 -0
  308. package/dist/types/Primitive.mjs.map +1 -0
  309. package/dist/types/Repository.mjs +24 -0
  310. package/dist/types/Repository.mjs.map +1 -0
  311. package/dist/types/Result.mjs +23 -0
  312. package/dist/types/Result.mjs.map +1 -0
  313. package/dist/types/Results.mjs +26 -0
  314. package/dist/types/Results.mjs.map +1 -0
  315. package/dist/types/Sort.mjs +10 -0
  316. package/dist/types/Sort.mjs.map +1 -0
  317. package/dist/types/Tag.mjs +26 -0
  318. package/dist/types/Tag.mjs.map +1 -0
  319. package/dist/types/Template.mjs +21 -0
  320. package/dist/types/Template.mjs.map +1 -0
  321. package/dist/types/Text.mjs +21 -0
  322. package/dist/types/Text.mjs.map +1 -0
  323. package/dist/types/ToText.mjs +23 -0
  324. package/dist/types/ToText.mjs.map +1 -0
  325. package/dist/types/Try.mjs +31 -0
  326. package/dist/types/Try.mjs.map +1 -0
  327. package/dist/types/TypeGuard.mjs +1 -0
  328. package/dist/types/TypeGuard.mjs.map +1 -0
  329. package/dist/types/Types.mjs +1 -0
  330. package/dist/types/Types.mjs.map +1 -0
  331. package/dist/types/Uri.mjs +119 -0
  332. package/dist/types/Uri.mjs.map +1 -0
  333. package/dist/types/Uuid.mjs +16 -0
  334. package/dist/types/Uuid.mjs.map +1 -0
  335. package/dist/types/Validatable.mjs +13 -0
  336. package/dist/types/Validatable.mjs.map +1 -0
  337. package/dist/types/Value.mjs +14 -0
  338. package/dist/types/Value.mjs.map +1 -0
  339. package/dist/utils/Base64.mjs +12 -0
  340. package/dist/utils/Base64.mjs.map +1 -0
  341. package/dist/utils/Convert.mjs +14 -0
  342. package/dist/utils/Convert.mjs.map +1 -0
  343. package/dist/utils/If.mjs +25 -0
  344. package/dist/utils/If.mjs.map +1 -0
  345. package/dist/utils/Loading.mjs +11 -0
  346. package/dist/utils/Loading.mjs.map +1 -0
  347. package/dist/utils/Log.mjs +21 -0
  348. package/dist/utils/Log.mjs.map +1 -0
  349. package/dist/utils/Mapper.mjs +28 -0
  350. package/dist/utils/Mapper.mjs.map +1 -0
  351. package/dist/utils/Promise.mjs +35 -0
  352. package/dist/utils/Promise.mjs.map +1 -0
  353. package/dist/utils/Property.mjs +13 -0
  354. package/dist/utils/Property.mjs.map +1 -0
  355. package/dist/utils/Seconds.mjs +18 -0
  356. package/dist/utils/Seconds.mjs.map +1 -0
  357. package/dist/utils/Sentence.mjs +71 -0
  358. package/dist/utils/Sentence.mjs.map +1 -0
  359. package/dist/utils/State.mjs +12 -0
  360. package/dist/utils/State.mjs.map +1 -0
  361. package/dist/utils/Traverse.mjs +12 -0
  362. package/dist/utils/Traverse.mjs.map +1 -0
  363. package/dist/utils/View.mjs +41 -0
  364. package/dist/utils/View.mjs.map +1 -0
  365. package/dist/utils/Wait.mjs +17 -0
  366. package/dist/utils/Wait.mjs.map +1 -0
  367. package/dist/validation/Contraints.mjs +65 -0
  368. package/dist/validation/Contraints.mjs.map +1 -0
  369. package/dist/validation/Validate.mjs +35 -0
  370. package/dist/validation/Validate.mjs.map +1 -0
  371. package/dist/validation/When.mjs +31 -0
  372. package/dist/validation/When.mjs.map +1 -0
  373. package/package.json +4 -13
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/http/RequestOptions.ts"],"sourcesContent":["import { HttpHeader } from './HttpHeader';\nimport { ContentType } from './ContentType';\nimport { PageOptions } from '../types/PageList';\nimport { Optional } from '../types/Types';\nimport { Text } from '../types/Text';\nimport { Enum } from '../types/Enum';\nimport { CacheAge } from '../types/CacheAge';\nimport { ctx } from '../types/Context';\nimport { toUuid } from '../types/Uuid';\nimport { Id } from '../types/Id';\nimport { on } from '../types/Constructor';\nimport { asString } from '../types/Text';\nimport { isDefined, isNotEmpty } from '../types/Is';\n\nexport const toPageOptions = (options?: RequestOptions | PageOptions): Optional<PageOptions> =>\n options instanceof RequestOptions ? options.pageOptions : options;\n\nexport class RequestOptions extends Enum {\n public requestOptions: { maxRedirects?: number; validateStatus?: (status: number) => boolean; timeout?: CacheAge } = {};\n\n constructor(\n readonly type: ContentType = ContentType.Json,\n readonly headers: { [key: string]: any } = {},\n public pageOptions?: PageOptions\n ) {\n super(type.name);\n this.headers['Content-Type'] = type.id;\n this.headers[HttpHeader.Correlation] = ctx.request.correlationId ?? toUuid();\n }\n\n static get Form(): RequestOptions {\n return new RequestOptions(ContentType.Form);\n }\n\n static get Json(): RequestOptions {\n return new RequestOptions(ContentType.Json);\n }\n\n static get Stream(): RequestOptions {\n return new RequestOptions(ContentType.Stream);\n }\n\n static get Text(): RequestOptions {\n return new RequestOptions(ContentType.Text);\n }\n\n static get Xml(): RequestOptions {\n return new RequestOptions(ContentType.Xml);\n }\n\n page = (options: PageOptions): this => {\n this.pageOptions = options;\n return this;\n };\n\n authorization = (auth: string): this => this.setHeader('Authorization', auth);\n\n apiKey = (apiKey: string): this => this.setHeader('apiKey', apiKey);\n\n setHeader = (key: Text, value: Id | boolean): this => on(this, t => (t.headers[asString(key)] = value));\n\n setHeaderUnlessPresent = (key: string, value?: Id | boolean): this => (value ? this.setHeader(key, this.headers[key] ?? value) : this);\n\n accept = (type: ContentType): this => this.setHeader('Accept', type.id);\n\n bearer = (jwt: Text): this => {\n return isNotEmpty(jwt) ? this.authorization(`Bearer ${jwt}`) : this;\n };\n\n basic = (username: Text, password: Text): this => {\n const basicAuth = Buffer.from(`${username}:${password}`, 'utf8').toString('base64');\n return this.authorization(`Basic ${basicAuth}`);\n };\n\n maxRedirects = (max?: number): this => {\n this.requestOptions.maxRedirects = max;\n return this;\n };\n\n validateStatus = (validate?: (status: number) => boolean): this => {\n this.requestOptions.validateStatus = validate;\n return this;\n };\n\n timeout = (t?: CacheAge): this => {\n this.requestOptions.timeout = t;\n return this;\n };\n}\n\nexport const isRequestOptions = (o?: unknown): o is RequestOptions => isDefined(o) && o instanceof RequestOptions;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAcO,IAAM,gBAAgB,CAAC,YAC5B,mBAAmB,iBAAiB,QAAQ,cAAc;AAErD,IAAM,iBAAN,MAAM,wBAAuB,KAAK;AAAA,EAGvC,YACW,OAAoB,YAAY,MAChC,UAAkC,CAAC,GACrC,aACP;AACA,UAAM,KAAK,IAAI;AAJN;AACA;AACF;AAGP,SAAK,QAAQ,cAAc,IAAI,KAAK;AACpC,SAAK,QAAQ,WAAW,WAAW,IAAI,IAAI,QAAQ,iBAAiB,OAAO;AAAA,EAC7E;AAAA,EAVO,iBAA8G,CAAC;AAAA,EAYtH,WAAW,OAAuB;AAChC,WAAO,IAAI,gBAAe,YAAY,IAAI;AAAA,EAC5C;AAAA,EAEA,WAAW,OAAuB;AAChC,WAAO,IAAI,gBAAe,YAAY,IAAI;AAAA,EAC5C;AAAA,EAEA,WAAW,SAAyB;AAClC,WAAO,IAAI,gBAAe,YAAY,MAAM;AAAA,EAC9C;AAAA,EAEA,WAAW,OAAuB;AAChC,WAAO,IAAI,gBAAe,YAAY,IAAI;AAAA,EAC5C;AAAA,EAEA,WAAW,MAAsB;AAC/B,WAAO,IAAI,gBAAe,YAAY,GAAG;AAAA,EAC3C;AAAA,EAEA,OAAO,CAAC,YAA+B;AACrC,SAAK,cAAc;AACnB,WAAO;AAAA,EACT;AAAA,EAEA,gBAAgB,CAAC,SAAuB,KAAK,UAAU,iBAAiB,IAAI;AAAA,EAE5E,SAAS,CAAC,WAAyB,KAAK,UAAU,UAAU,MAAM;AAAA,EAElE,YAAY,CAAC,KAAW,UAA8B,GAAG,MAAM,OAAM,EAAE,QAAQ,SAAS,GAAG,CAAC,IAAI,KAAM;AAAA,EAEtG,yBAAyB,CAAC,KAAa,UAAgC,QAAQ,KAAK,UAAU,KAAK,KAAK,QAAQ,GAAG,KAAK,KAAK,IAAI;AAAA,EAEjI,SAAS,CAAC,SAA4B,KAAK,UAAU,UAAU,KAAK,EAAE;AAAA,EAEtE,SAAS,CAAC,QAAoB;AAC5B,WAAO,WAAW,GAAG,IAAI,KAAK,cAAc,UAAU,GAAG,EAAE,IAAI;AAAA,EACjE;AAAA,EAEA,QAAQ,CAAC,UAAgB,aAAyB;AAChD,UAAM,YAAY,OAAO,KAAK,GAAG,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE,SAAS,QAAQ;AAClF,WAAO,KAAK,cAAc,SAAS,SAAS,EAAE;AAAA,EAChD;AAAA,EAEA,eAAe,CAAC,QAAuB;AACrC,SAAK,eAAe,eAAe;AACnC,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB,CAAC,aAAiD;AACjE,SAAK,eAAe,iBAAiB;AACrC,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,CAAC,MAAuB;AAChC,SAAK,eAAe,UAAU;AAC9B,WAAO;AAAA,EACT;AACF;AAEO,IAAM,mBAAmB,CAAC,MAAqC,UAAU,CAAC,KAAK,aAAa;","names":[]}
@@ -0,0 +1,324 @@
1
+ import {
2
+ isValidatable
3
+ } from "./chunk-OFGI5FLG.mjs";
4
+ import {
5
+ isResults,
6
+ toResults
7
+ } from "./chunk-SCVGZWV7.mjs";
8
+ import {
9
+ toResult
10
+ } from "./chunk-RS7CT7BU.mjs";
11
+ import {
12
+ reject,
13
+ resolve
14
+ } from "./chunk-LUHR6633.mjs";
15
+ import {
16
+ Exception
17
+ } from "./chunk-DEFTEK45.mjs";
18
+ import {
19
+ isValue
20
+ } from "./chunk-WSBULPUZ.mjs";
21
+ import {
22
+ text
23
+ } from "./chunk-RWGCMC6L.mjs";
24
+ import {
25
+ isEnum
26
+ } from "./chunk-UXADDXCJ.mjs";
27
+ import {
28
+ meta
29
+ } from "./chunk-FN7HN3YK.mjs";
30
+ import {
31
+ toList
32
+ } from "./chunk-HOVTNDHS.mjs";
33
+ import {
34
+ toArray
35
+ } from "./chunk-CO2AFYVD.mjs";
36
+ import {
37
+ asString
38
+ } from "./chunk-BDA5LB4S.mjs";
39
+ import {
40
+ ofGet
41
+ } from "./chunk-SJGQU3OG.mjs";
42
+ import {
43
+ ofConstruct,
44
+ toName
45
+ } from "./chunk-ZPNFXK7Y.mjs";
46
+ import {
47
+ isArray,
48
+ isDefined,
49
+ isEmpty,
50
+ isFunction,
51
+ isIn,
52
+ isTrue
53
+ } from "./chunk-DEJ7A5PY.mjs";
54
+
55
+ // src/types/Try.ts
56
+ var Try = class _Try {
57
+ is = {
58
+ defined: (prop) => this.filter((v) => isDefined(prop ? prop(v) : v)),
59
+ empty: (prop) => this.filter((v) => isEmpty(prop ? prop(v) : v)),
60
+ valid: (prop) => this.filter((v) => validate(prop ? prop(v) : v).isValid),
61
+ true: (prop) => this.filter((v) => isTrue(prop ? prop(v) : v)),
62
+ false: (prop) => this.filter((v) => !isTrue(prop ? prop(v) : v)),
63
+ not: {
64
+ defined: (prop) => this.filter((v) => !isDefined(prop ? prop(v) : v)),
65
+ empty: (prop) => this.filter((v) => !isEmpty(prop ? prop(v) : v)),
66
+ valid: (prop) => this.filter((v) => !validate(prop ? prop(v) : v).isValid)
67
+ }
68
+ };
69
+ if = this.is;
70
+ static of = (c, ...args) => {
71
+ try {
72
+ const out = ofGet(c, ...args);
73
+ return new Success(out instanceof _Try ? out.value : out);
74
+ } catch (e) {
75
+ return new Failure(e);
76
+ }
77
+ };
78
+ };
79
+ var Success = class extends Try {
80
+ constructor(value) {
81
+ super();
82
+ this.value = value;
83
+ }
84
+ get error() {
85
+ throw new Error("No error found");
86
+ }
87
+ get isValid() {
88
+ return true;
89
+ }
90
+ map(f) {
91
+ return tryTo(f, this.value);
92
+ }
93
+ recover(f) {
94
+ return this;
95
+ }
96
+ recoverFrom(type, f) {
97
+ return this;
98
+ }
99
+ accept(f) {
100
+ return tryTo(() => {
101
+ f(this.value);
102
+ return this;
103
+ });
104
+ }
105
+ filter(predicate) {
106
+ return tryTo(() => {
107
+ if (predicate(this.value))
108
+ return this;
109
+ throw new Error(`Applying filter(${predicate.toString()}) failed.`);
110
+ });
111
+ }
112
+ or(value) {
113
+ return this.value;
114
+ }
115
+ orElse(value) {
116
+ return this.value;
117
+ }
118
+ orThrow(_error) {
119
+ return this.value;
120
+ }
121
+ };
122
+ var Failure = class _Failure extends Try {
123
+ constructor(error) {
124
+ super();
125
+ this.error = error;
126
+ }
127
+ get value() {
128
+ throw this.error;
129
+ }
130
+ get isValid() {
131
+ return false;
132
+ }
133
+ map(f) {
134
+ return new _Failure(this.error);
135
+ }
136
+ recover(f) {
137
+ return tryTo(f, this.error);
138
+ }
139
+ recoverFrom(type, f) {
140
+ return tryTo(() => this.error instanceof type ? this.recover(f) : this);
141
+ }
142
+ accept(f) {
143
+ return this;
144
+ }
145
+ filter(predicate) {
146
+ return this;
147
+ }
148
+ or(value) {
149
+ return ofGet(value);
150
+ }
151
+ orElse(value) {
152
+ return ofGet(value);
153
+ }
154
+ orThrow(error) {
155
+ throw ofConstruct(error);
156
+ }
157
+ };
158
+ var tryTo = (c, ...args) => Try.of(c, ...args);
159
+
160
+ // src/types/Case.ts
161
+ var CaseBuilder = class {
162
+ constructor(v) {
163
+ this.v = v;
164
+ }
165
+ is = {
166
+ defined: (prop, out) => new Case(this.v).case(isDefined(prop(this.v)), out),
167
+ empty: (prop, out) => new Case(this.v).case(isEmpty(prop(this.v)), out),
168
+ valid: (prop, out) => new Case(this.v).case(validate(prop(this.v)).isValid, out),
169
+ in: (prop, out) => new Case(this.v).case(ofGet(prop, this.v).includes(this.v), out),
170
+ not: {
171
+ defined: (prop, out) => new Case(this.v).case(!isDefined(prop(this.v)), out),
172
+ empty: (prop, out) => new Case(this.v).case(!isEmpty(prop(this.v)), out),
173
+ valid: (prop, out) => new Case(this.v).case(!validate(prop(this.v)).isValid, out),
174
+ in: (prop, out) => new Case(this.v).case(!ofGet(prop, this.v).includes(this.v), out)
175
+ }
176
+ };
177
+ if = this.is;
178
+ case(pred, out) {
179
+ return new Case(this.v).case(pred, out);
180
+ }
181
+ type(guard, out) {
182
+ return new Case(this.v).type(guard, out);
183
+ }
184
+ equals(value, out) {
185
+ return new Case(this.v).equals(value, out);
186
+ }
187
+ };
188
+ var Case = class _Case {
189
+ constructor(value, outcome) {
190
+ this.value = value;
191
+ this.outcome = outcome;
192
+ }
193
+ is = {
194
+ defined: (prop, out) => new _Case(this.value).case(isDefined(prop(this.value)), out),
195
+ empty: (prop, out) => new _Case(this.value).case(isEmpty(prop(this.value)), out),
196
+ valid: (prop, out) => new _Case(this.value).case(validate(prop(this.value)).isValid, out),
197
+ in: (prop, out) => new _Case(this.value).case(ofGet(prop, this.value).includes(this.value), out),
198
+ not: {
199
+ defined: (prop, out) => new _Case(this.value).case(!isDefined(prop(this.value)), out),
200
+ empty: (prop, out) => new _Case(this.value).case(!isEmpty(prop(this.value)), out),
201
+ valid: (prop, out) => new _Case(this.value).case(!validate(prop(this.value)).isValid, out),
202
+ in: (prop, out) => new _Case(this.value).case(!ofGet(prop, this.value).includes(this.value), out)
203
+ }
204
+ };
205
+ if = this.is;
206
+ case(pred, out) {
207
+ return tryTo(pred, this.value).is.true().map(() => ofGet(out, this.value)).map((res) => new Found(this.value, res)).or(this);
208
+ }
209
+ type(guard, out) {
210
+ return tryTo(guard, this.value).is.true().map(() => out(this.value)).map((res) => new Found(this.value, res)).or(this);
211
+ }
212
+ equals(value, out) {
213
+ return this.case(this.value === value, out);
214
+ }
215
+ else(alt) {
216
+ return ofGet(alt, this.value);
217
+ }
218
+ };
219
+ var Found = class extends Case {
220
+ constructor(value, outcome) {
221
+ super(value, outcome);
222
+ this.value = value;
223
+ this.outcome = outcome;
224
+ }
225
+ is = {
226
+ defined: (_prop, _out) => this,
227
+ empty: (_prop, _out) => this,
228
+ valid: (_prop, _out) => this,
229
+ in: (_prop, _out) => this,
230
+ not: {
231
+ defined: (_prop, _out) => this,
232
+ empty: (_prop, _out) => this,
233
+ valid: (_prop, _out) => this,
234
+ in: (_prop, _out) => this
235
+ }
236
+ };
237
+ if = this.is;
238
+ case(pred, out) {
239
+ return this;
240
+ }
241
+ type(guard, out) {
242
+ return this;
243
+ }
244
+ equals(value, out) {
245
+ return this;
246
+ }
247
+ else(alt) {
248
+ return this.outcome;
249
+ }
250
+ };
251
+ var choose = (value) => new CaseBuilder(value);
252
+
253
+ // src/validation/Validate.ts
254
+ var asResults = (subject, template, options = {}) => toResults(toResult(text(template).parse(subject, options), toName(subject)));
255
+ var validators = (subject) => meta(subject).keys("constraint").reduce((list, vs) => list.add(vs), toList());
256
+ var runValidator = (v, subject) => {
257
+ try {
258
+ const actual = isFunction(subject[v.property]) ? subject[v.property]() : subject[v.property];
259
+ const constraint = v.constraint(actual);
260
+ return isResults(constraint) ? constraint : !constraint ? asResults(subject, v.text, {
261
+ ...v,
262
+ actual
263
+ }) : toResults();
264
+ } catch (e) {
265
+ return asResults(subject, asString(e));
266
+ }
267
+ };
268
+ var constraints = (subject) => validators(subject).map((vs) => runValidator(vs, subject)).reduce((rs, r) => rs.add(...r.results), toResults());
269
+ var validate = (subject) => choose(subject).is.not.defined(
270
+ (s) => s,
271
+ () => toResults("Subject is not defined.")
272
+ ).type(isEnum, (e) => e.isValid ? toResults() : asResults(e, "This is not a valid {type}.")).type(isValue, (v) => v.isValid ? toResults() : asResults(v, "This is not a valid {type}.")).type(isArray, (a) => a.map((i) => validate(i)).reduce((rs, r) => rs.add(...r.results), toResults())).type(isValidatable, (v) => constraints(v)).else(toResults());
273
+ var validateReject = (subject) => when(subject).not.isValid.reject();
274
+ var isValid = (t) => validate(t).isValid;
275
+
276
+ // src/validation/When.ts
277
+ var When = class _When {
278
+ constructor(subject, valid = true, results) {
279
+ this.subject = subject;
280
+ this.valid = valid;
281
+ this.results = results;
282
+ }
283
+ get not() {
284
+ return this.clone(!this.valid);
285
+ }
286
+ get and() {
287
+ return this.clone(this.valid);
288
+ }
289
+ get isDefined() {
290
+ return this.clone(this.valid === isDefined(this.subject));
291
+ }
292
+ get isEmpty() {
293
+ return this.clone(this.valid === isEmpty(this.subject));
294
+ }
295
+ get isTrue() {
296
+ return this.clone(this.valid === !!this.subject);
297
+ }
298
+ get isValid() {
299
+ this.results = validate(this.subject);
300
+ return this.clone(this.valid === this.results.isValid);
301
+ }
302
+ isInstance = (c) => this.clone(this.valid === this.subject instanceof c);
303
+ with = (pred) => this.clone(this.valid === ofGet(pred, this.subject));
304
+ contains = (property) => this.clone(this.valid === isDefined(ofGet(property, this.subject)));
305
+ in = (...items) => this.clone(this.valid === isIn(this.subject, toArray(...items)));
306
+ is = (item) => this.clone(this.valid === (this.subject === item));
307
+ reject = (error) => !this.valid ? resolve(this.subject) : reject(ofGet(error, this.subject) ?? this.results ?? Exception.Unknown);
308
+ recover = (f) => resolve(!this.valid ? this.subject : f(this.subject));
309
+ clone = (result = true) => new _When(this.subject, result, this.results);
310
+ };
311
+ var when = (subject) => new When(subject);
312
+
313
+ export {
314
+ When,
315
+ when,
316
+ asResults,
317
+ validate,
318
+ validateReject,
319
+ isValid,
320
+ Try,
321
+ tryTo,
322
+ choose
323
+ };
324
+ //# sourceMappingURL=chunk-LGLRWA42.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/Try.ts","../src/types/Case.ts","../src/validation/Validate.ts","../src/validation/When.ts"],"sourcesContent":["import { isDefined, isEmpty, isTrue } from './Is';\nimport { validate } from '../validation/Validate';\nimport { Construct, Constructor, ofConstruct } from './Constructor';\nimport { Validatable } from './Validatable';\nimport { Get, ofGet } from './Get';\nimport { Func } from './Func';\nimport { Optional } from './Types';\n\nexport abstract class Try<T = unknown> implements Validatable {\n is = {\n defined: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isDefined(prop ? prop(v) : v)),\n empty: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isEmpty(prop ? prop(v) : v)),\n valid: (prop?: Func<unknown, T>): Try<T> => this.filter(v => validate(prop ? prop(v) : v).isValid),\n true: (prop?: Func<unknown, T>): Try<T> => this.filter(v => isTrue(prop ? prop(v) : v)),\n false: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !isTrue(prop ? prop(v) : v)),\n not: {\n defined: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !isDefined(prop ? prop(v) : v)),\n empty: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !isEmpty(prop ? prop(v) : v)),\n valid: (prop?: Func<unknown, T>): Try<T> => this.filter(v => !validate(prop ? prop(v) : v).isValid),\n },\n };\n\n if = this.is;\n\n abstract get value(): T;\n\n abstract get error(): Error;\n\n abstract get isValid(): boolean;\n\n static of = <T>(c: Get<T | Try<T>>, ...args: unknown[]): Try<T> => {\n try {\n const out = ofGet(c, ...args);\n return new Success(out instanceof Try ? out.value : out);\n } catch (e) {\n return new Failure(e as Error);\n }\n };\n\n abstract map<U>(f: Func<U | Try<U>, T>): Try<U>;\n\n abstract recover(f: Func<T | Try<T>, Error>): Try<T>;\n\n abstract recoverFrom(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T>;\n\n abstract accept(f: Func<void, T>): Try<T>;\n\n abstract filter(predicate: Func<boolean, T>): Try<T>;\n\n abstract or(value: Get<T>): T;\n\n abstract orElse(value?: Get<T>): Optional<T>;\n\n abstract orThrow(error: Construct<Error>): T;\n}\n\nclass Success<T> extends Try<T> {\n constructor(readonly value: T) {\n super();\n }\n\n get error(): Error {\n throw new Error('No error found');\n }\n\n get isValid(): boolean {\n return true;\n }\n\n map<U>(f: Func<U | Try<U>, T>): Try<U> {\n return tryTo<U>(f, this.value);\n }\n\n recover(f: Func<T | Try<T>, Error>): Try<T> {\n return this;\n }\n\n recoverFrom(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T> {\n return this;\n }\n\n accept(f: Func<void, T>): Try<T> {\n return tryTo(() => {\n f(this.value);\n return this;\n });\n }\n\n filter(predicate: Func<boolean, T>): Try<T> {\n return tryTo(() => {\n if (predicate(this.value)) return this;\n throw new Error(`Applying filter(${predicate.toString()}) failed.`);\n });\n }\n\n or(value: Get<T>): T {\n return this.value;\n }\n\n orElse(value?: Get<T>): Optional<T> {\n return this.value;\n }\n\n orThrow(_error: Construct<Error>): T {\n return this.value;\n }\n}\n\nclass Failure<T> extends Try<T> {\n constructor(readonly error: Error) {\n super();\n }\n\n get value(): T {\n throw this.error;\n }\n\n get isValid(): boolean {\n return false;\n }\n\n map<U>(f: Func<U | Try<U>, T>): Try<U> {\n return new Failure<U>(this.error);\n }\n\n recover<U>(f: Func<U | Try<U>, Error>): Try<U> {\n return tryTo<U>(f, this.error);\n }\n\n recoverFrom<U>(type: Constructor<Error>, f: Func<T | Try<T>, Error>): Try<T> {\n return tryTo(() => (this.error instanceof type ? this.recover(f) : this));\n }\n\n accept(f: Func<void, T>): Try<T> {\n return this;\n }\n\n filter(predicate: Func<boolean, T>): Try<T> {\n return this;\n }\n\n or(value: Get<T>): T {\n return ofGet(value);\n }\n\n orElse(value?: Get<T>): Optional<T> {\n return ofGet(value);\n }\n\n orThrow(error: Construct<Error>): T {\n throw ofConstruct(error);\n }\n}\n\nexport const tryTo = <T>(c: Get<T | Try<T>>, ...args: unknown[]) => Try.of<T>(c, ...args);\n","import { Get, ofGet, Predicate } from './Get';\nimport { TypeGuard } from './TypeGuard';\nimport { Func } from './Func';\nimport { isDefined, isEmpty } from './Is';\nimport { validate } from '../validation/Validate';\nimport { tryTo } from './Try';\n\nclass CaseBuilder<V> {\n 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 in: <T>(prop: Get<Array<V>, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(ofGet(prop, this.v).includes(this.v), 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 in: <T>(prop: Get<Array<V>, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.v).case(!ofGet(prop, this.v).includes(this.v), out),\n },\n };\n if = this.is;\n\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\nclass Case<T, V = unknown> {\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 in: (prop: Get<Array<V>, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(ofGet(prop, this.value).includes(this.value), 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 in: (prop: Get<Array<V>, V>, out: Get<T, V>): Case<T, V> => new Case<T, V>(this.value).case(!ofGet(prop, this.value).includes(this.value), out),\n },\n };\n if = this.is;\n\n constructor(\n protected value: V,\n protected outcome?: T\n ) {}\n\n case(pred: Predicate<V>, out: Get<T, V>): Case<T, V> {\n return tryTo(pred, this.value)\n .is.true()\n .map(() => ofGet(out, this.value))\n .map(res => new Found(this.value, res) as Case<T, V>)\n .or(this);\n }\n\n type<U>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> {\n return tryTo(guard, this.value)\n .is.true()\n .map(() => out(this.value as unknown as U))\n .map(res => new Found(this.value, res) as Case<T, V>)\n .or(this);\n }\n\n equals(value: V, out: Get<T, V>): Case<T, V> {\n return this.case(this.value === value, out);\n }\n\n 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 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 in: (_prop: Get<Array<V>, 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 in: (_prop: Get<unknown, V>, _out: Get<T, V>): Case<T, V> => this,\n },\n };\n if = this.is;\n\n constructor(\n protected value: V,\n protected outcome: T\n ) {\n super(value, outcome);\n }\n\n case(pred: Predicate<V>, out: Get<T, V>): this {\n return this;\n }\n\n type<U>(guard: TypeGuard<U>, out: Func<T, U>): Case<T, V> {\n return this;\n }\n\n equals(value: V, out: Get<T, V>): Case<T, V> {\n return this;\n }\n\n else(alt: Get<T, V>): T {\n return this.outcome;\n }\n}\n\nexport const choose = <V>(value: V) => new CaseBuilder<V>(value);\n","import { Constraint } from './Contraints';\nimport { when } from './When';\nimport type { TemplateOptions } from '../types/Template';\nimport { isResults, Results, toResults } from '../types/Results';\nimport { toName } from '../types/Constructor';\nimport { toResult } from '../types/Result';\nimport { List, toList } from '../types/List';\nimport { meta } from '../types/Meta';\nimport { isArray, isFunction } from '../types/Is';\nimport type { Text } from '../types/Text';\nimport { asString } from '../types/Text';\nimport { choose } from '../types/Case';\nimport { isEnum } from '../types/Enum';\nimport { isValue } from '../types/Value';\nimport { isValidatable } from '../types/Validatable';\nimport { text } from '../types/ToText';\n\nexport type Validator = { property: string | symbol; constraint: Constraint; text: Text; actual?: Text };\n\nexport const asResults = (subject: unknown, template: Text, options: TemplateOptions = {}): Results =>\n toResults(toResult(text(template).parse(subject, options), toName(subject)));\n\nconst validators = (subject: unknown): List<Validator> =>\n meta(subject)\n .keys<List<Validator>>('constraint')\n .reduce((list, vs) => list.add(vs), toList<Validator>());\n\nconst runValidator = (v: Validator, subject?: unknown): Results => {\n try {\n const actual = isFunction((subject as any)[v.property]) ? (subject as any)[v.property]() : (subject as any)[v.property];\n const constraint = v.constraint(actual);\n return isResults(constraint)\n ? constraint\n : !constraint\n ? asResults(subject, v.text, {\n ...v,\n actual,\n })\n : toResults();\n } catch (e) {\n return asResults(subject, asString(e));\n }\n};\n\nconst constraints = (subject?: unknown): Results =>\n validators(subject)\n .map(vs => runValidator(vs, subject))\n .reduce((rs, r) => rs.add(...r.results), toResults());\n\nexport const validate = (subject?: unknown): Results =>\n choose(subject)\n .is.not.defined(\n s => s,\n () => toResults('Subject is not defined.')\n )\n .type(isEnum, e => (e.isValid ? toResults() : asResults(e, 'This is not a valid {type}.')))\n .type(isValue, v => (v.isValid ? toResults() : asResults(v, 'This is not a valid {type}.')))\n .type(isArray, a => a.map(i => validate(i)).reduce((rs, r) => rs.add(...r.results), toResults()))\n .type(isValidatable, v => constraints(v))\n .else(toResults());\n\nexport const validateReject = <T>(subject: T): Promise<T> => when(subject).not.isValid.reject();\n\nexport const isValid = <T>(t: T): boolean => validate(t).isValid;\n","import { validate } from './Validate';\nimport { Results } from '../types/Results';\nimport { Constructor } from '../types/Constructor';\nimport { Get, ofGet, Predicate } from '../types/Get';\nimport { isDefined, isEmpty, isIn } from '../types/Is';\nimport { toArray } from '../types/Array';\nimport { ErrorOrigin } from '../types/ErrorOrigin';\nimport { reject, resolve } from '../utils/Promise';\nimport { Exception } from '../types/Exception';\n\nexport class When<W> {\n constructor(\n readonly subject: W,\n readonly valid = true,\n private results?: Results\n ) {}\n\n get not(): When<W> {\n return this.clone(!this.valid);\n }\n\n get and(): When<W> {\n return this.clone(this.valid);\n }\n\n get isDefined(): When<W> {\n return this.clone(this.valid === isDefined(this.subject));\n }\n\n get isEmpty(): When<W> {\n return this.clone(this.valid === isEmpty(this.subject));\n }\n\n get isTrue(): When<W> {\n return this.clone(this.valid === !!this.subject);\n }\n\n get isValid(): When<W> {\n this.results = validate(this.subject);\n return this.clone(this.valid === this.results.isValid);\n }\n\n isInstance = <U>(c: Constructor<U>): When<W> => this.clone(this.valid === this.subject instanceof c);\n\n with = (pred: Predicate<W>): When<W> => this.clone(this.valid === ofGet(pred, this.subject));\n\n contains = (property: (w: W) => unknown): When<W> => this.clone(this.valid === isDefined(ofGet(property, this.subject)));\n\n in = (...items: W[]): When<W> => this.clone(this.valid === isIn(this.subject, toArray(...items)));\n\n is = (item: W): When<W> => this.clone(this.valid === (this.subject === item));\n\n reject = (error?: Get<ErrorOrigin, W>): Promise<NonNullable<W>> =>\n !this.valid ? resolve(this.subject as NonNullable<W>) : reject(ofGet(error, this.subject) ?? this.results ?? Exception.Unknown);\n\n recover = (f: (item: W) => W | Promise<W>): Promise<W> => resolve(!this.valid ? this.subject : f(this.subject));\n\n protected clone = (result = true): When<W> => new When(this.subject, result, this.results);\n}\n\nexport const when = <T>(subject: T): When<T> => new When<T>(subject);\n"],"mappings":"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","names":[]}
@@ -0,0 +1,70 @@
1
+ import {
2
+ entries
3
+ } from "./chunk-4VZHB642.mjs";
4
+ import {
5
+ ifDefined
6
+ } from "./chunk-HOVTNDHS.mjs";
7
+ import {
8
+ ofGet
9
+ } from "./chunk-SJGQU3OG.mjs";
10
+ import {
11
+ isA
12
+ } from "./chunk-ZHXKBOK2.mjs";
13
+ import {
14
+ isDefined,
15
+ isEmpty,
16
+ isObject
17
+ } from "./chunk-DEJ7A5PY.mjs";
18
+
19
+ // src/types/Json.ts
20
+ var isJson = (subject) => isA(subject, "toJSON");
21
+ var json = {
22
+ parse: (subject) => JSON.parse(JSON.stringify(subject ?? {})),
23
+ merge: (...subjects) => json.parse(subjects.map((s) => asJson(s, (s2) => json.parse(s2))).reduce((js, j) => ({ ...js, ...j }), {})),
24
+ delete: (subject, key) => {
25
+ ifDefined(subject, () => delete subject[key]);
26
+ return subject;
27
+ },
28
+ set: (subject, key = "", value) => isEmpty(key) ? subject : value !== void 0 ? { ...subject, ...{ [key]: value } } : json.delete(subject, key),
29
+ omit: (subject, ...keys) => keys.reduce((js, k) => json.delete(js, k), json.parse(subject)),
30
+ pick: (subject, ...keys) => keys.reduce((js, k) => json.set(js, k, subject[k]), {}),
31
+ defaults: (options = {}, defaults = {}) => json.merge(defaults, options),
32
+ isSubset: (subject, subset) => !entries(subset).some(([k, v]) => subject[k] !== v),
33
+ split: (t, keys, prop = "extracted") => {
34
+ const extracted = {};
35
+ const rest = { ...t };
36
+ keys.forEach((key) => {
37
+ if (key in t) {
38
+ ifDefined(t[key], (v) => extracted[key] = v);
39
+ delete rest[key];
40
+ }
41
+ });
42
+ return { [prop]: extracted, ...rest };
43
+ }
44
+ };
45
+ var toJson = json.merge;
46
+ var asJson = (j, alt = {}) => isJson(j) ? j.toJSON() : isObject(j) ? j : ofGet(alt, j);
47
+ var Any = class {
48
+ constructor(value) {
49
+ this.value = value;
50
+ }
51
+ merge = (...subjects) => any(json.merge(this.value, ...subjects));
52
+ delete = (key) => any(json.delete(this.value, key));
53
+ omit = (...keys) => any(json.omit(this.value, ...keys));
54
+ set = (key, value) => any(json.set(this.value, key, value));
55
+ toJSON() {
56
+ return this.value;
57
+ }
58
+ };
59
+ var takeFirstKey = (j, alt = "") => entries(asJson(j)).first(([, v]) => isDefined(v))?.[0] ?? alt;
60
+ var any = (value) => new Any(value);
61
+
62
+ export {
63
+ isJson,
64
+ json,
65
+ toJson,
66
+ asJson,
67
+ takeFirstKey,
68
+ any
69
+ };
70
+ //# sourceMappingURL=chunk-LKTTPV6U.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/Json.ts"],"sourcesContent":["import { isA } from './IsA';\nimport { isDefined, isEmpty, isObject } from './Is';\nimport { Get, ofGet } from './Get';\nimport { ifDefined } from '../utils/If';\nimport { TypeGuard } from './TypeGuard';\nimport { entries } from './Object';\n\nexport type JsonValue = string | number | boolean | null | Json | JsonValue[];\nexport type Json = { [key: string]: JsonValue };\n\nexport const isJson: TypeGuard<{ toJSON: () => Json }> = (subject?: unknown): subject is { toJSON: () => Json } =>\n isA<{ toJSON: () => Json }>(subject, 'toJSON');\n\nexport const json = {\n parse: <T extends Json = Json>(subject: unknown): T => JSON.parse(JSON.stringify(subject ?? {})),\n merge: (...subjects: unknown[]): Json => json.parse(subjects.map(s => asJson(s, s => json.parse(s))).reduce((js, j) => ({ ...js, ...j }), {})),\n delete: <T extends Json = Json>(subject: T, key: string): T => {\n ifDefined(subject, () => delete (subject as any)[key]);\n return subject;\n },\n set: <T extends Json = Json>(subject: T, key = '', value?: unknown): T =>\n isEmpty(key) ? subject : value !== undefined ? { ...(subject as any), ...{ [key]: value as JsonValue } } : json.delete(subject, key),\n omit: <T extends Json = Json>(subject: T, ...keys: string[]): T => keys.reduce((js, k) => json.delete(js, k), json.parse<T>(subject)),\n pick: <T extends Json = Json>(subject: T, ...keys: string[]): T => keys.reduce((js, k) => json.set(js, k, (subject as any)[k]), {} as T),\n defaults: <T extends Json = Json>(options: Partial<T> = {}, defaults: Partial<T> = {}): T => json.merge(defaults, options) as T,\n isSubset: (subject: Json, subset: Json): boolean => !entries(subset).some(([k, v]) => subject[k] !== v),\n split: <T extends Record<string, unknown>, K extends string = 'extracted'>(\n t: T,\n keys: readonly (keyof T)[],\n prop: K = 'extracted' as K\n ): {\n [P in K]: Partial<T>;\n } => {\n const extracted = {} as Partial<T>;\n const rest = { ...t };\n keys.forEach(key => {\n if (key in t) {\n ifDefined(t[key], v => (extracted[key] = v));\n delete rest[key as string];\n }\n });\n return { [prop]: extracted, ...rest };\n },\n};\n\nexport const toJson = json.merge;\n\nexport const asJson = (j?: unknown, alt: Get<Json> = {}): Json => (isJson(j) ? j.toJSON() : isObject(j) ? (j as Json) : ofGet(alt, j));\n\nclass Any<T extends Json> {\n constructor(readonly value: T) {}\n\n merge = (...subjects: T[]): Any<T> => any<T>(json.merge(this.value, ...subjects) as T);\n delete = (key: keyof T): Any<T> => any<T>(json.delete<T>(this.value, key as string));\n omit = (...keys: (keyof T)[]): Any<T> => any<T>(json.omit<T>(this.value, ...(keys as string[])));\n set = (key: keyof T, value?: unknown): Any<T> => any<T>(json.set(this.value, key as string, value));\n\n toJSON(): Json {\n return this.value;\n }\n}\n\nexport const takeFirstKey = (j: unknown, alt: string = ''): string => entries(asJson(j)).first(([, v]) => isDefined(v))?.[0] ?? alt;\n\nexport const any = <T extends Json = Json>(value: T): Any<T> => new Any<T>(value);\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAUO,IAAM,SAA4C,CAAC,YACxD,IAA4B,SAAS,QAAQ;AAExC,IAAM,OAAO;AAAA,EAClB,OAAO,CAAwB,YAAwB,KAAK,MAAM,KAAK,UAAU,WAAW,CAAC,CAAC,CAAC;AAAA,EAC/F,OAAO,IAAI,aAA8B,KAAK,MAAM,SAAS,IAAI,OAAK,OAAO,GAAG,CAAAA,OAAK,KAAK,MAAMA,EAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,GAAG,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAAA,EAC7I,QAAQ,CAAwB,SAAY,QAAmB;AAC7D,cAAU,SAAS,MAAM,OAAQ,QAAgB,GAAG,CAAC;AACrD,WAAO;AAAA,EACT;AAAA,EACA,KAAK,CAAwB,SAAY,MAAM,IAAI,UACjD,QAAQ,GAAG,IAAI,UAAU,UAAU,SAAY,EAAE,GAAI,SAAiB,GAAG,EAAE,CAAC,GAAG,GAAG,MAAmB,EAAE,IAAI,KAAK,OAAO,SAAS,GAAG;AAAA,EACrI,MAAM,CAAwB,YAAe,SAAsB,KAAK,OAAO,CAAC,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,GAAG,KAAK,MAAS,OAAO,CAAC;AAAA,EACpI,MAAM,CAAwB,YAAe,SAAsB,KAAK,OAAO,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,GAAI,QAAgB,CAAC,CAAC,GAAG,CAAC,CAAM;AAAA,EACvI,UAAU,CAAwB,UAAsB,CAAC,GAAG,WAAuB,CAAC,MAAS,KAAK,MAAM,UAAU,OAAO;AAAA,EACzH,UAAU,CAAC,SAAe,WAA0B,CAAC,QAAQ,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC;AAAA,EACtG,OAAO,CACL,GACA,MACA,OAAU,gBAGP;AACH,UAAM,YAAY,CAAC;AACnB,UAAM,OAAO,EAAE,GAAG,EAAE;AACpB,SAAK,QAAQ,SAAO;AAClB,UAAI,OAAO,GAAG;AACZ,kBAAU,EAAE,GAAG,GAAG,OAAM,UAAU,GAAG,IAAI,CAAE;AAC3C,eAAO,KAAK,GAAa;AAAA,MAC3B;AAAA,IACF,CAAC;AACD,WAAO,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,KAAK;AAAA,EACtC;AACF;AAEO,IAAM,SAAS,KAAK;AAEpB,IAAM,SAAS,CAAC,GAAa,MAAiB,CAAC,MAAa,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,SAAS,CAAC,IAAK,IAAa,MAAM,KAAK,CAAC;AAEpI,IAAM,MAAN,MAA0B;AAAA,EACxB,YAAqB,OAAU;AAAV;AAAA,EAAW;AAAA,EAEhC,QAAQ,IAAI,aAA0B,IAAO,KAAK,MAAM,KAAK,OAAO,GAAG,QAAQ,CAAM;AAAA,EACrF,SAAS,CAAC,QAAyB,IAAO,KAAK,OAAU,KAAK,OAAO,GAAa,CAAC;AAAA,EACnF,OAAO,IAAI,SAA8B,IAAO,KAAK,KAAQ,KAAK,OAAO,GAAI,IAAiB,CAAC;AAAA,EAC/F,MAAM,CAAC,KAAc,UAA4B,IAAO,KAAK,IAAI,KAAK,OAAO,KAAe,KAAK,CAAC;AAAA,EAElG,SAAe;AACb,WAAO,KAAK;AAAA,EACd;AACF;AAEO,IAAM,eAAe,CAAC,GAAY,MAAc,OAAe,QAAQ,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK;AAEzH,IAAM,MAAM,CAAwB,UAAqB,IAAI,IAAO,KAAK;","names":["s"]}
@@ -0,0 +1,107 @@
1
+ import {
2
+ isEqual
3
+ } from "./chunk-ELDS3NWV.mjs";
4
+ import {
5
+ isPageList,
6
+ toPageList
7
+ } from "./chunk-RHOK5QZR.mjs";
8
+ import {
9
+ asJson,
10
+ json
11
+ } from "./chunk-LKTTPV6U.mjs";
12
+ import {
13
+ choose
14
+ } from "./chunk-LGLRWA42.mjs";
15
+ import {
16
+ isEnumConstructor
17
+ } from "./chunk-UXADDXCJ.mjs";
18
+ import {
19
+ meta
20
+ } from "./chunk-FN7HN3YK.mjs";
21
+ import {
22
+ ifDefined
23
+ } from "./chunk-HOVTNDHS.mjs";
24
+ import {
25
+ traverse
26
+ } from "./chunk-SSROJBD5.mjs";
27
+ import {
28
+ isConstructor,
29
+ use
30
+ } from "./chunk-ZPNFXK7Y.mjs";
31
+ import {
32
+ isArray,
33
+ isBoolean,
34
+ isFunction,
35
+ isString
36
+ } from "./chunk-DEJ7A5PY.mjs";
37
+
38
+ // src/utils/View.ts
39
+ var ignore = Symbol("view.ignore");
40
+ var keep = Symbol("view.keep");
41
+ var json2 = Symbol("view.json");
42
+ var spread = "view.spread";
43
+ var toViewer = (key, value) => choose(value).is.not.defined((v) => v, { key, f: () => void 0 }).type(isBoolean, (b) => ({ key, f: () => b })).equals(ignore, { key, f: () => void 0 }).equals(keep, { key, f: (a) => traverse(a, key) }).equals(json2, { key, f: (a) => asJson(traverse(a, key)) }).type(isString, (s) => ({ key, f: (a) => traverse(a, s) })).type(isEnumConstructor, (c) => ({
44
+ key,
45
+ f: (a, key2) => use(traverse(a, key2), (v) => isArray(v) ? c.byIds(v) : c.byId(v))
46
+ })).type(isConstructor, (c) => ({
47
+ key,
48
+ f: (a, key2) => use(traverse(a, key2), (v) => isArray(v) ? v.map((i) => optional(c, i)) : optional(c, v))
49
+ })).type(isSimpleView, (f) => ({ key, f: (a) => ifDefined(traverse(a, key), (v) => f.from(v)) })).type(isFunction, (f) => ({ key, f })).else((v) => ({ key, f: () => v }));
50
+ var optional = (c, v) => ifDefined(
51
+ v,
52
+ (i) => new c(i),
53
+ () => v
54
+ );
55
+ var toViewers = (views2) => meta(views2).entries().map(([k, v]) => toViewer(k, v));
56
+ var View = class _View {
57
+ constructor(views2 = {}, startsFrom = "scratch", viewers = toViewers(views2)) {
58
+ this.views = views2;
59
+ this.startsFrom = startsFrom;
60
+ this.viewers = viewers;
61
+ }
62
+ get fromSource() {
63
+ return new _View(this.views, "source", this.viewers);
64
+ }
65
+ from(source) {
66
+ if (isPageList(source))
67
+ return toPageList(
68
+ source.map((s) => this.reduce(s)),
69
+ source.options
70
+ );
71
+ if (isArray(source))
72
+ return source.map((s) => this.reduce(s));
73
+ return this.reduce(source);
74
+ }
75
+ same = (one, another) => isEqual(this.from(one), this.from(another));
76
+ reduce = (source) => use(
77
+ asJson(source),
78
+ (src) => this.viewers.reduce(
79
+ (acc, v) => v.key === spread ? { ...acc, ...asJson(v.f(src, v.key)) } : json.set(acc, v.key, v.f(src, v.key)),
80
+ this.startsFrom === "scratch" ? {} : src
81
+ )
82
+ );
83
+ };
84
+ var isSimpleView = (a) => a instanceof View;
85
+ var view = (views2) => new View(views2);
86
+ var views = {
87
+ ignore,
88
+ keep,
89
+ json: json2,
90
+ spread,
91
+ skip: ignore,
92
+ value: (value) => () => value,
93
+ or: {
94
+ key: (altKey) => (a, key) => traverse(a, key) ?? traverse(a, altKey),
95
+ value: (altValue) => (a, key) => traverse(a, key) ?? altValue,
96
+ func: (altFunc) => (a, key) => traverse(a, key) ?? altFunc(a, key)
97
+ }
98
+ };
99
+
100
+ export {
101
+ toViewer,
102
+ View,
103
+ isSimpleView,
104
+ view,
105
+ views
106
+ };
107
+ //# sourceMappingURL=chunk-LONFFS5R.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/View.ts"],"sourcesContent":["import { traverse } from './Traverse';\nimport { ifDefined } from './If';\nimport { Primitive } from '../types/Primitive';\nimport { Constructor, isConstructor, use } from '../types/Constructor';\nimport { asJson, json as typesJson } from '../types/Json';\nimport { choose } from '../types/Case';\nimport { isArray, isBoolean, isFunction, isString } from '../types/Is';\nimport { meta } from '../types/Meta';\nimport { isPageList, PageList, toPageList } from '../types/PageList';\nimport { List } from '../types/List';\nimport { isEqual } from '../types/IsEqual';\nimport { DontInfer } from '../types/Types';\nimport { EnumConstructor, isEnumConstructor } from '../types/Enum';\nimport { Id } from '../types/Id';\n\ntype Func<T = unknown> = (a: any, key?: string) => T;\ntype Viewer = { key: string; f: Func };\n\ntype ViewType<V = any> = Primitive | EnumConstructor | Constructor | Func | View<V> | undefined;\ntype ViewRecord<V = any> = Partial<Record<keyof V, ViewType>>;\n\nconst ignore = Symbol('view.ignore');\nconst keep = Symbol('view.keep');\nconst json = Symbol('view.json');\nconst spread = 'view.spread';\n\nexport const toViewer = (key: string, value: ViewType): Viewer =>\n choose(value)\n .is.not.defined(v => v, { key, f: () => undefined } as Viewer)\n .type(isBoolean, b => ({ key, f: () => b }))\n .equals(ignore, { key, f: () => undefined })\n .equals(keep, { key, f: (a: any) => traverse(a, key) })\n .equals(json, { key, f: (a: any) => asJson(traverse(a, key)) })\n .type(isString, s => ({ key, f: (a: any) => traverse(a, s) }))\n .type(isEnumConstructor, c => ({\n key,\n f: (a, key) => use(traverse(a, key), v => (isArray(v) ? c.byIds(v) : c.byId(v as Id))),\n }))\n .type(isConstructor, c => ({\n key,\n f: (a, key) => use(traverse(a, key), v => (isArray(v) ? v.map(i => optional(c, i)) : optional(c, v))),\n }))\n .type(isSimpleView, f => ({ key, f: (a: any) => ifDefined(traverse(a, key), v => f.from(v)) }))\n .type(isFunction, f => ({ key, f }))\n .else(v => ({ key, f: () => v }));\n\nconst optional = (c: Constructor, v: any) =>\n ifDefined(\n v,\n i => new c(i),\n () => v\n );\n\nconst toViewers = (views: ViewRecord): Viewer[] =>\n meta(views)\n .entries<ViewType>()\n .map(([k, v]) => toViewer(k, v));\n\nexport class View<V = any> {\n constructor(\n private views = {} as ViewRecord<V>,\n readonly startsFrom: 'scratch' | 'source' = 'scratch',\n readonly viewers: Viewer[] = toViewers(views)\n ) {}\n\n get fromSource(): View<V> {\n return new View(this.views, 'source', this.viewers);\n }\n\n from<T = unknown>(source: PageList<T>): PageList<V>;\n from<T = unknown>(source: List<T>): List<V>;\n from<T = unknown>(source: T[]): V[];\n from<T = unknown>(source: T): V;\n from<T = unknown>(source: PageList<T> | List<T> | T[] | T): PageList<V> | List<V> | V[] | V {\n if (isPageList(source))\n return toPageList(\n source.map(s => this.reduce(s)),\n source.options\n );\n if (isArray(source)) return source.map(s => this.reduce(s));\n return this.reduce(source);\n }\n\n same = (one?: unknown, another?: unknown): boolean => isEqual(this.from(one), this.from(another));\n\n private reduce = (source: any): any =>\n use(asJson(source), src =>\n this.viewers.reduce(\n (acc, v) => (v.key === spread ? { ...acc, ...asJson(v.f(src, v.key)) } : typesJson.set(acc, v.key, v.f(src, v.key))),\n this.startsFrom === 'scratch' ? {} : src\n )\n );\n}\n\nexport const isSimpleView = (a: unknown): a is View => a instanceof View;\n\nexport const view = <V = any>(views: ViewRecord<DontInfer<V>>): View<V> => new View<V>(views);\n\nexport const views = {\n ignore,\n keep,\n json,\n spread,\n skip: ignore,\n value: (value: unknown) => () => value,\n or: {\n key: (altKey: string) => (a: unknown, key?: string) => traverse(a, key) ?? traverse(a, altKey),\n value: (altValue: unknown) => (a: unknown, key?: string) => traverse(a, key) ?? altValue,\n func: (altFunc: Func) => (a: unknown, key?: string) => traverse(a, key) ?? altFunc(a, key),\n },\n};\n\n// spread: (a: any, key: string) => ({...a, ...(use(traverse(a, key), v => isObject(v) ? v : ({[key]: v})))}),\n"],"mappings":"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","names":["json","key","views"]}
@@ -0,0 +1,54 @@
1
+ import {
2
+ keys,
3
+ values
4
+ } from "./chunk-4VZHB642.mjs";
5
+ import {
6
+ toList
7
+ } from "./chunk-HOVTNDHS.mjs";
8
+ import {
9
+ toArray
10
+ } from "./chunk-CO2AFYVD.mjs";
11
+ import {
12
+ asString
13
+ } from "./chunk-BDA5LB4S.mjs";
14
+ import {
15
+ on,
16
+ use
17
+ } from "./chunk-ZPNFXK7Y.mjs";
18
+
19
+ // src/utils/Promise.ts
20
+ var resolve = (subject) => Promise.resolve(subject);
21
+ var reject = (e) => Promise.reject(e);
22
+ var tuple = {
23
+ 2: (first, second) => Promise.all([first, second]),
24
+ 3: (first, second, third) => Promise.all([first, second, third]),
25
+ 4: (first, second, third, forth) => Promise.all([first, second, third, forth]),
26
+ 5: (first, second, third, forth, fifth) => Promise.all([first, second, third, forth, fifth]),
27
+ all: (first, second) => Promise.all([first, Promise.all(second)]),
28
+ spread: (first, ...second) => Promise.all([first, Promise.all(toArray(second))]),
29
+ list: (list) => Promise.all([...list]).then(toList),
30
+ settled: (list) => Promise.allSettled([...list]).then((rs) => ({
31
+ fulfilled: toList(...rs.filter((r) => r.status === "fulfilled").map((r) => r.value)),
32
+ rejected: toList(...rs.filter((r) => r.status === "rejected").map((r) => asString(r.reason)))
33
+ })),
34
+ object: (obj) => use(keys(obj), (ks) => tuple.list(values(obj)).then((vs) => vs.reduce((acc, v, i) => on(acc, (a) => a[ks[i]] = v), {})))
35
+ };
36
+ var tuple2 = tuple[2];
37
+ var tuple3 = tuple[3];
38
+ var tuple4 = tuple[4];
39
+ var tuple5 = tuple[5];
40
+ var tupleO = tuple.object;
41
+ var settled = tuple.settled;
42
+
43
+ export {
44
+ resolve,
45
+ reject,
46
+ tuple,
47
+ tuple2,
48
+ tuple3,
49
+ tuple4,
50
+ tuple5,
51
+ tupleO,
52
+ settled
53
+ };
54
+ //# sourceMappingURL=chunk-LUHR6633.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/Promise.ts"],"sourcesContent":["import { toArray } from '../types/Array';\nimport { ErrorOrigin } from '../types/ErrorOrigin';\nimport { List, toList } from '../types/List';\nimport { asString } from '../types/Text';\nimport { on, use } from '../types/Constructor';\nimport { keys, values } from '../types/Object';\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 settled: <T>(list: Pro<T>[]): Promise<{ fulfilled: List<Aw<T>>; rejected: List<string> }> =>\n Promise.allSettled([...list]).then(rs => ({\n fulfilled: toList(...rs.filter(r => r.status === 'fulfilled').map(r => r.value)),\n rejected: toList(...rs.filter(r => r.status === 'rejected').map(r => asString(r.reason))),\n })),\n object: <T extends Record<string, unknown>>(obj: T): Promise<{ [K in keyof T]: Aw<T[K]> }> =>\n use(keys(obj), ks => tuple.list(values(obj)).then(vs => vs.reduce((acc: any, v, i) => on(acc, a => (a[ks[i]] = v)), {}) as { [K in keyof T]: Aw<T[K]> })),\n};\n\nexport const tuple2 = tuple[2];\nexport const tuple3 = tuple[3];\nexport const tuple4 = tuple[4];\nexport const tuple5 = tuple[5];\nexport const tupleO = tuple.object;\nexport const settled = tuple.settled;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAUO,IAAM,UAAU,CAAc,YAA4C,QAAQ,QAAQ,OAAO;AACjG,IAAM,SAAS,CAAY,MAA+B,QAAQ,OAAO,CAAC;AAE1E,IAAM,QAAQ;AAAA,EACnB,GAAG,CAAO,OAAe,WAA4C,QAAQ,IAAI,CAAC,OAAO,MAAM,CAAC;AAAA,EAChG,GAAG,CAAU,OAAe,QAAgB,UAAkD,QAAQ,IAAI,CAAC,OAAO,QAAQ,KAAK,CAAC;AAAA,EAChI,GAAG,CAAc,OAAe,QAAgB,OAAe,UAC7D,QAAQ,IAAI,CAAC,OAAO,QAAQ,OAAO,KAAK,CAAC;AAAA,EAC3C,GAAG,CAAkB,OAAe,QAAgB,OAAe,OAAgB,UACjF,QAAQ,IAAI,CAAC,OAAO,QAAQ,OAAO,OAAO,KAAK,CAAC;AAAA,EAClD,KAAK,CAAO,OAAe,WAAgD,QAAQ,IAAI,CAAC,OAAO,QAAQ,IAAI,MAAM,CAAC,CAAC;AAAA,EACnH,QAAQ,CAAO,UAAkB,WAAgD,QAAQ,IAAI,CAAC,OAAO,QAAQ,IAAI,QAAQ,MAAM,CAAC,CAAC,CAAC;AAAA,EAClI,MAAM,CAAI,SAAyC,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,MAAM;AAAA,EACrF,SAAS,CAAI,SACX,QAAQ,WAAW,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,SAAO;AAAA,IACxC,WAAW,OAAO,GAAG,GAAG,OAAO,OAAK,EAAE,WAAW,WAAW,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC;AAAA,IAC/E,UAAU,OAAO,GAAG,GAAG,OAAO,OAAK,EAAE,WAAW,UAAU,EAAE,IAAI,OAAK,SAAS,EAAE,MAAM,CAAC,CAAC;AAAA,EAC1F,EAAE;AAAA,EACJ,QAAQ,CAAoC,QAC1C,IAAI,KAAK,GAAG,GAAG,QAAM,MAAM,KAAK,OAAO,GAAG,CAAC,EAAE,KAAK,QAAM,GAAG,OAAO,CAAC,KAAU,GAAG,MAAM,GAAG,KAAK,OAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAE,GAAG,CAAC,CAAC,CAAiC,CAAC;AAC5J;AAEO,IAAM,SAAS,MAAM,CAAC;AACtB,IAAM,SAAS,MAAM,CAAC;AACtB,IAAM,SAAS,MAAM,CAAC;AACtB,IAAM,SAAS,MAAM,CAAC;AACtB,IAAM,SAAS,MAAM;AACrB,IAAM,UAAU,MAAM;","names":[]}