@thisisagile/easy 17.26.1 → 17.26.3

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 (377) hide show
  1. package/dist/chunk-27MBNT3X.mjs +25 -0
  2. package/dist/chunk-27MBNT3X.mjs.map +1 -0
  3. package/dist/chunk-35SXXNQO.mjs +20 -0
  4. package/dist/chunk-35SXXNQO.mjs.map +1 -0
  5. package/dist/chunk-3M6NLHSO.mjs +18 -0
  6. package/dist/chunk-3M6NLHSO.mjs.map +1 -0
  7. package/dist/chunk-4CRBLF44.mjs +56 -0
  8. package/dist/chunk-4CRBLF44.mjs.map +1 -0
  9. package/dist/chunk-4K4X43SV.mjs +164 -0
  10. package/dist/chunk-4K4X43SV.mjs.map +1 -0
  11. package/dist/chunk-4LVZOQ6O.mjs +58 -0
  12. package/dist/chunk-4LVZOQ6O.mjs.map +1 -0
  13. package/dist/chunk-4N72FQFX.mjs +16 -0
  14. package/dist/chunk-4N72FQFX.mjs.map +1 -0
  15. package/dist/chunk-5AV36UKS.mjs +20 -0
  16. package/dist/chunk-5AV36UKS.mjs.map +1 -0
  17. package/dist/chunk-5DJPREIN.mjs +142 -0
  18. package/dist/chunk-5DJPREIN.mjs.map +1 -0
  19. package/dist/chunk-5ZHEIMZ7.mjs +79 -0
  20. package/dist/chunk-5ZHEIMZ7.mjs.map +1 -0
  21. package/dist/chunk-6QFV73AS.mjs +55 -0
  22. package/dist/chunk-6QFV73AS.mjs.map +1 -0
  23. package/dist/chunk-6UDAYZAZ.mjs +53 -0
  24. package/dist/chunk-6UDAYZAZ.mjs.map +1 -0
  25. package/dist/chunk-7HTKPMTI.mjs +72 -0
  26. package/dist/chunk-7HTKPMTI.mjs.map +1 -0
  27. package/dist/chunk-ABGKS4KE.mjs +297 -0
  28. package/dist/chunk-ABGKS4KE.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-AGTB4HMP.mjs +11 -0
  32. package/dist/chunk-AGTB4HMP.mjs.map +1 -0
  33. package/dist/chunk-AINW2476.mjs +90 -0
  34. package/dist/chunk-AINW2476.mjs.map +1 -0
  35. package/dist/chunk-BDA5LB4S.mjs +29 -0
  36. package/dist/chunk-BDA5LB4S.mjs.map +1 -0
  37. package/dist/chunk-BIEWRRM7.mjs +26 -0
  38. package/dist/chunk-BIEWRRM7.mjs.map +1 -0
  39. package/dist/chunk-BIHKQLEE.mjs +40 -0
  40. package/dist/chunk-BIHKQLEE.mjs.map +1 -0
  41. package/dist/chunk-CO2AFYVD.mjs +43 -0
  42. package/dist/chunk-CO2AFYVD.mjs.map +1 -0
  43. package/dist/chunk-CSAPGLC7.mjs +94 -0
  44. package/dist/chunk-CSAPGLC7.mjs.map +1 -0
  45. package/dist/chunk-CSHFNF34.mjs +35 -0
  46. package/dist/chunk-CSHFNF34.mjs.map +1 -0
  47. package/dist/chunk-CWWAGBYB.mjs +46 -0
  48. package/dist/chunk-CWWAGBYB.mjs.map +1 -0
  49. package/dist/chunk-DEJ7A5PY.mjs +43 -0
  50. package/dist/chunk-DEJ7A5PY.mjs.map +1 -0
  51. package/dist/chunk-DRABNNX2.mjs +107 -0
  52. package/dist/chunk-DRABNNX2.mjs.map +1 -0
  53. package/dist/chunk-DXQSIBC7.mjs +13 -0
  54. package/dist/chunk-DXQSIBC7.mjs.map +1 -0
  55. package/dist/chunk-F34HSIZ5.mjs +68 -0
  56. package/dist/chunk-F34HSIZ5.mjs.map +1 -0
  57. package/dist/chunk-GADZDWP3.mjs +20 -0
  58. package/dist/chunk-GADZDWP3.mjs.map +1 -0
  59. package/dist/chunk-GB2P3UEO.mjs +82 -0
  60. package/dist/chunk-GB2P3UEO.mjs.map +1 -0
  61. package/dist/chunk-GCY5A63A.mjs +25 -0
  62. package/dist/chunk-GCY5A63A.mjs.map +1 -0
  63. package/dist/chunk-HL2BC7Z2.mjs +76 -0
  64. package/dist/chunk-HL2BC7Z2.mjs.map +1 -0
  65. package/dist/chunk-HULI73W2.mjs +37 -0
  66. package/dist/chunk-HULI73W2.mjs.map +1 -0
  67. package/dist/chunk-J3DYDXXF.mjs +175 -0
  68. package/dist/chunk-J3DYDXXF.mjs.map +1 -0
  69. package/dist/chunk-JMIXHXWM.mjs +23 -0
  70. package/dist/chunk-JMIXHXWM.mjs.map +1 -0
  71. package/dist/chunk-KJVTSC6I.mjs +24 -0
  72. package/dist/chunk-KJVTSC6I.mjs.map +1 -0
  73. package/dist/chunk-L63NPT4K.mjs +39 -0
  74. package/dist/chunk-L63NPT4K.mjs.map +1 -0
  75. package/dist/chunk-LYRXR6GZ.mjs +54 -0
  76. package/dist/chunk-LYRXR6GZ.mjs.map +1 -0
  77. package/dist/chunk-MBRLKMEQ.mjs +54 -0
  78. package/dist/chunk-MBRLKMEQ.mjs.map +1 -0
  79. package/dist/chunk-MDXL65W4.mjs +49 -0
  80. package/dist/chunk-MDXL65W4.mjs.map +1 -0
  81. package/dist/chunk-OFGI5FLG.mjs +11 -0
  82. package/dist/chunk-OFGI5FLG.mjs.map +1 -0
  83. package/dist/chunk-OKPGJD64.mjs +41 -0
  84. package/dist/chunk-OKPGJD64.mjs.map +1 -0
  85. package/dist/chunk-OQNZEKWO.mjs +24 -0
  86. package/dist/chunk-OQNZEKWO.mjs.map +1 -0
  87. package/dist/chunk-PIQ5Z4RB.mjs +18 -0
  88. package/dist/chunk-PIQ5Z4RB.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-QBHHLIZY.mjs +51 -0
  92. package/dist/chunk-QBHHLIZY.mjs.map +1 -0
  93. package/dist/chunk-RNLFG4YX.mjs +20 -0
  94. package/dist/chunk-RNLFG4YX.mjs.map +1 -0
  95. package/dist/chunk-S6WR4MXU.mjs +324 -0
  96. package/dist/chunk-S6WR4MXU.mjs.map +1 -0
  97. package/dist/chunk-SDO3B3BQ.mjs +45 -0
  98. package/dist/chunk-SDO3B3BQ.mjs.map +1 -0
  99. package/dist/chunk-SJ4YFZKO.mjs +21 -0
  100. package/dist/chunk-SJ4YFZKO.mjs.map +1 -0
  101. package/dist/chunk-SJGQU3OG.mjs +15 -0
  102. package/dist/chunk-SJGQU3OG.mjs.map +1 -0
  103. package/dist/chunk-SPMDDHVK.mjs +40 -0
  104. package/dist/chunk-SPMDDHVK.mjs.map +1 -0
  105. package/dist/chunk-SSROJBD5.mjs +30 -0
  106. package/dist/chunk-SSROJBD5.mjs.map +1 -0
  107. package/dist/chunk-SW2OCUH3.mjs +10 -0
  108. package/dist/chunk-SW2OCUH3.mjs.map +1 -0
  109. package/dist/chunk-TCQRHKGS.mjs +20 -0
  110. package/dist/chunk-TCQRHKGS.mjs.map +1 -0
  111. package/dist/chunk-TNHYFGFF.mjs +60 -0
  112. package/dist/chunk-TNHYFGFF.mjs.map +1 -0
  113. package/dist/chunk-TYODLVCG.mjs +23 -0
  114. package/dist/chunk-TYODLVCG.mjs.map +1 -0
  115. package/dist/chunk-U5VBBUQ2.mjs +48 -0
  116. package/dist/chunk-U5VBBUQ2.mjs.map +1 -0
  117. package/dist/chunk-UYDZZAEK.mjs +11 -0
  118. package/dist/chunk-UYDZZAEK.mjs.map +1 -0
  119. package/dist/chunk-WJZFE5NE.mjs +17 -0
  120. package/dist/chunk-WJZFE5NE.mjs.map +1 -0
  121. package/dist/chunk-WSBULPUZ.mjs +30 -0
  122. package/dist/chunk-WSBULPUZ.mjs.map +1 -0
  123. package/dist/chunk-WSG55HKA.mjs +94 -0
  124. package/dist/chunk-WSG55HKA.mjs.map +1 -0
  125. package/dist/chunk-XL5IRJ2H.mjs +134 -0
  126. package/dist/chunk-XL5IRJ2H.mjs.map +1 -0
  127. package/dist/chunk-XUBQQUTS.mjs +50 -0
  128. package/dist/chunk-XUBQQUTS.mjs.map +1 -0
  129. package/dist/chunk-YPVIK4SP.mjs +57 -0
  130. package/dist/chunk-YPVIK4SP.mjs.map +1 -0
  131. package/dist/chunk-ZHXKBOK2.mjs +22 -0
  132. package/dist/chunk-ZHXKBOK2.mjs.map +1 -0
  133. package/dist/chunk-ZPNFXK7Y.mjs +36 -0
  134. package/dist/chunk-ZPNFXK7Y.mjs.map +1 -0
  135. package/dist/chunk-ZSLYORET.mjs +31 -0
  136. package/dist/chunk-ZSLYORET.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.js +3 -0
  190. package/dist/index.js.map +1 -1
  191. package/dist/index.mjs +115 -3476
  192. package/dist/index.mjs.map +1 -1
  193. package/dist/process/App.mjs +30 -0
  194. package/dist/process/App.mjs.map +1 -0
  195. package/dist/process/Manage.mjs +47 -0
  196. package/dist/process/Manage.mjs.map +1 -0
  197. package/dist/process/Scope.mjs +22 -0
  198. package/dist/process/Scope.mjs.map +1 -0
  199. package/dist/process/Search.mjs +31 -0
  200. package/dist/process/Search.mjs.map +1 -0
  201. package/dist/process/UseCase.mjs +53 -0
  202. package/dist/process/UseCase.mjs.map +1 -0
  203. package/dist/resources/Req.mjs +57 -0
  204. package/dist/resources/Req.mjs.map +1 -0
  205. package/dist/security/Jwt.mjs +77 -0
  206. package/dist/security/Jwt.mjs.map +1 -0
  207. package/dist/services/Api.mjs +44 -0
  208. package/dist/services/Api.mjs.map +1 -0
  209. package/dist/services/ApiGateway.mjs +45 -0
  210. package/dist/services/ApiGateway.mjs.map +1 -0
  211. package/dist/services/AxiosProvider.mjs +40 -0
  212. package/dist/services/AxiosProvider.mjs.map +1 -0
  213. package/dist/services/MappedRouteGateway.mjs +78 -0
  214. package/dist/services/MappedRouteGateway.mjs.map +1 -0
  215. package/dist/services/RouteGateway.mjs +46 -0
  216. package/dist/services/RouteGateway.mjs.map +1 -0
  217. package/dist/services/ViewRouteGateway.mjs +79 -0
  218. package/dist/services/ViewRouteGateway.mjs.map +1 -0
  219. package/dist/sql/Clause.mjs +24 -0
  220. package/dist/sql/Clause.mjs.map +1 -0
  221. package/dist/sql/Column.mjs +37 -0
  222. package/dist/sql/Column.mjs.map +1 -0
  223. package/dist/sql/Count.mjs +20 -0
  224. package/dist/sql/Count.mjs.map +1 -0
  225. package/dist/sql/Delete.mjs +19 -0
  226. package/dist/sql/Delete.mjs.map +1 -0
  227. package/dist/sql/Insert.mjs +21 -0
  228. package/dist/sql/Insert.mjs.map +1 -0
  229. package/dist/sql/Join.mjs +8 -0
  230. package/dist/sql/Join.mjs.map +1 -0
  231. package/dist/sql/Select.mjs +19 -0
  232. package/dist/sql/Select.mjs.map +1 -0
  233. package/dist/sql/SqlQuery.mjs +18 -0
  234. package/dist/sql/SqlQuery.mjs.map +1 -0
  235. package/dist/sql/Table.mjs +93 -0
  236. package/dist/sql/Table.mjs.map +1 -0
  237. package/dist/sql/TableGateway.mjs +72 -0
  238. package/dist/sql/TableGateway.mjs.map +1 -0
  239. package/dist/sql/Update.mjs +21 -0
  240. package/dist/sql/Update.mjs.map +1 -0
  241. package/dist/types/AnyKey.mjs +1 -0
  242. package/dist/types/AnyKey.mjs.map +1 -0
  243. package/dist/types/Array.mjs +16 -0
  244. package/dist/types/Array.mjs.map +1 -0
  245. package/dist/types/Builder.mjs +26 -0
  246. package/dist/types/Builder.mjs.map +1 -0
  247. package/dist/types/Cache.mjs +29 -0
  248. package/dist/types/Cache.mjs.map +1 -0
  249. package/dist/types/CacheAge.mjs +33 -0
  250. package/dist/types/CacheAge.mjs.map +1 -0
  251. package/dist/types/Case.mjs +29 -0
  252. package/dist/types/Case.mjs.map +1 -0
  253. package/dist/types/Constructor.mjs +23 -0
  254. package/dist/types/Constructor.mjs.map +1 -0
  255. package/dist/types/Context.mjs +28 -0
  256. package/dist/types/Context.mjs.map +1 -0
  257. package/dist/types/Currency.mjs +15 -0
  258. package/dist/types/Currency.mjs.map +1 -0
  259. package/dist/types/Enum.mjs +24 -0
  260. package/dist/types/Enum.mjs.map +1 -0
  261. package/dist/types/Environment.mjs +28 -0
  262. package/dist/types/Environment.mjs.map +1 -0
  263. package/dist/types/ErrorOrigin.mjs +1 -0
  264. package/dist/types/ErrorOrigin.mjs.map +1 -0
  265. package/dist/types/Exception.mjs +26 -0
  266. package/dist/types/Exception.mjs.map +1 -0
  267. package/dist/types/Falsy.mjs +10 -0
  268. package/dist/types/Falsy.mjs.map +1 -0
  269. package/dist/types/Func.mjs +8 -0
  270. package/dist/types/Func.mjs.map +1 -0
  271. package/dist/types/Gateway.mjs +24 -0
  272. package/dist/types/Gateway.mjs.map +1 -0
  273. package/dist/types/Get.mjs +13 -0
  274. package/dist/types/Get.mjs.map +1 -0
  275. package/dist/types/Id.mjs +13 -0
  276. package/dist/types/Id.mjs.map +1 -0
  277. package/dist/types/IdName.mjs +1 -0
  278. package/dist/types/IdName.mjs.map +1 -0
  279. package/dist/types/Identity.mjs +1 -0
  280. package/dist/types/Identity.mjs.map +1 -0
  281. package/dist/types/Indexed.mjs +15 -0
  282. package/dist/types/Indexed.mjs.map +1 -0
  283. package/dist/types/Is.mjs +42 -0
  284. package/dist/types/Is.mjs.map +1 -0
  285. package/dist/types/IsA.mjs +16 -0
  286. package/dist/types/IsA.mjs.map +1 -0
  287. package/dist/types/IsDate.mjs +14 -0
  288. package/dist/types/IsDate.mjs.map +1 -0
  289. package/dist/types/IsEqual.mjs +30 -0
  290. package/dist/types/IsEqual.mjs.map +1 -0
  291. package/dist/types/Json.d.ts +1 -0
  292. package/dist/types/Json.mjs +31 -0
  293. package/dist/types/Json.mjs.map +1 -0
  294. package/dist/types/List.mjs +27 -0
  295. package/dist/types/List.mjs.map +1 -0
  296. package/dist/types/Message.mjs +11 -0
  297. package/dist/types/Message.mjs.map +1 -0
  298. package/dist/types/Meta.mjs +19 -0
  299. package/dist/types/Meta.mjs.map +1 -0
  300. package/dist/types/Nullish.mjs +8 -0
  301. package/dist/types/Nullish.mjs.map +1 -0
  302. package/dist/types/Number.mjs +30 -0
  303. package/dist/types/Number.mjs.map +1 -0
  304. package/dist/types/Object.mjs +24 -0
  305. package/dist/types/Object.mjs.map +1 -0
  306. package/dist/types/PageList.mjs +40 -0
  307. package/dist/types/PageList.mjs.map +1 -0
  308. package/dist/types/Parser.mjs +80 -0
  309. package/dist/types/Parser.mjs.map +1 -0
  310. package/dist/types/Primitive.mjs +9 -0
  311. package/dist/types/Primitive.mjs.map +1 -0
  312. package/dist/types/Repository.mjs +24 -0
  313. package/dist/types/Repository.mjs.map +1 -0
  314. package/dist/types/Result.mjs +23 -0
  315. package/dist/types/Result.mjs.map +1 -0
  316. package/dist/types/Results.mjs +26 -0
  317. package/dist/types/Results.mjs.map +1 -0
  318. package/dist/types/Sort.mjs +10 -0
  319. package/dist/types/Sort.mjs.map +1 -0
  320. package/dist/types/Tag.mjs +26 -0
  321. package/dist/types/Tag.mjs.map +1 -0
  322. package/dist/types/Template.mjs +21 -0
  323. package/dist/types/Template.mjs.map +1 -0
  324. package/dist/types/Text.mjs +21 -0
  325. package/dist/types/Text.mjs.map +1 -0
  326. package/dist/types/ToText.mjs +23 -0
  327. package/dist/types/ToText.mjs.map +1 -0
  328. package/dist/types/Try.mjs +31 -0
  329. package/dist/types/Try.mjs.map +1 -0
  330. package/dist/types/TypeGuard.mjs +1 -0
  331. package/dist/types/TypeGuard.mjs.map +1 -0
  332. package/dist/types/Types.mjs +1 -0
  333. package/dist/types/Types.mjs.map +1 -0
  334. package/dist/types/Uri.mjs +119 -0
  335. package/dist/types/Uri.mjs.map +1 -0
  336. package/dist/types/Uuid.mjs +16 -0
  337. package/dist/types/Uuid.mjs.map +1 -0
  338. package/dist/types/Validatable.mjs +13 -0
  339. package/dist/types/Validatable.mjs.map +1 -0
  340. package/dist/types/Value.mjs +14 -0
  341. package/dist/types/Value.mjs.map +1 -0
  342. package/dist/utils/Base64.mjs +12 -0
  343. package/dist/utils/Base64.mjs.map +1 -0
  344. package/dist/utils/Convert.mjs +14 -0
  345. package/dist/utils/Convert.mjs.map +1 -0
  346. package/dist/utils/If.mjs +25 -0
  347. package/dist/utils/If.mjs.map +1 -0
  348. package/dist/utils/Loading.mjs +11 -0
  349. package/dist/utils/Loading.mjs.map +1 -0
  350. package/dist/utils/Log.mjs +21 -0
  351. package/dist/utils/Log.mjs.map +1 -0
  352. package/dist/utils/Mapper.mjs +28 -0
  353. package/dist/utils/Mapper.mjs.map +1 -0
  354. package/dist/utils/Promise.mjs +35 -0
  355. package/dist/utils/Promise.mjs.map +1 -0
  356. package/dist/utils/Property.mjs +13 -0
  357. package/dist/utils/Property.mjs.map +1 -0
  358. package/dist/utils/Seconds.mjs +18 -0
  359. package/dist/utils/Seconds.mjs.map +1 -0
  360. package/dist/utils/Sentence.mjs +71 -0
  361. package/dist/utils/Sentence.mjs.map +1 -0
  362. package/dist/utils/State.mjs +12 -0
  363. package/dist/utils/State.mjs.map +1 -0
  364. package/dist/utils/Traverse.mjs +12 -0
  365. package/dist/utils/Traverse.mjs.map +1 -0
  366. package/dist/utils/View.mjs +41 -0
  367. package/dist/utils/View.mjs.map +1 -0
  368. package/dist/utils/Wait.mjs +17 -0
  369. package/dist/utils/Wait.mjs.map +1 -0
  370. package/dist/validation/Contraints.mjs +65 -0
  371. package/dist/validation/Contraints.mjs.map +1 -0
  372. package/dist/validation/Validate.mjs +35 -0
  373. package/dist/validation/Validate.mjs.map +1 -0
  374. package/dist/validation/When.mjs +31 -0
  375. package/dist/validation/When.mjs.map +1 -0
  376. package/package.json +4 -13
  377. package/src/types/Json.ts +2 -0
@@ -0,0 +1,79 @@
1
+ import {
2
+ AxiosProvider
3
+ } from "./chunk-4CRBLF44.mjs";
4
+ import {
5
+ HttpVerb
6
+ } from "./chunk-5AV36UKS.mjs";
7
+ import {
8
+ RequestOptions,
9
+ toPageOptions
10
+ } from "./chunk-AINW2476.mjs";
11
+
12
+ // src/services/Api.ts
13
+ var Api = class {
14
+ constructor(provider = new AxiosProvider(), store) {
15
+ this.provider = provider;
16
+ this.store = store;
17
+ }
18
+ get(uri, options, transform, transformError = (r) => r) {
19
+ return this.execute({
20
+ uri: uri.skip(toPageOptions(options)?.skip).take(toPageOptions(options)?.take),
21
+ verb: HttpVerb.Get,
22
+ transform,
23
+ transformError,
24
+ options: this.options(HttpVerb.Get, options)
25
+ });
26
+ }
27
+ post(uri, body, options = RequestOptions.Json, transform, transformError = (r) => r) {
28
+ return this.execute({
29
+ uri,
30
+ verb: HttpVerb.Post,
31
+ body,
32
+ transform,
33
+ transformError,
34
+ options: this.options(HttpVerb.Post, options)
35
+ });
36
+ }
37
+ put(uri, body, options = RequestOptions.Json, transform, transformError = (r) => r) {
38
+ return this.execute({
39
+ uri,
40
+ verb: HttpVerb.Put,
41
+ body,
42
+ transform,
43
+ transformError,
44
+ options: this.options(HttpVerb.Put, options)
45
+ });
46
+ }
47
+ patch(uri, body, options = RequestOptions.Json, transform, transformError = (r) => r) {
48
+ return this.execute({
49
+ uri,
50
+ verb: HttpVerb.Patch,
51
+ body,
52
+ transform,
53
+ transformError,
54
+ options: this.options(HttpVerb.Patch, options)
55
+ });
56
+ }
57
+ delete(uri, options = RequestOptions.Json, transform, transformError = (r) => r) {
58
+ return this.execute({
59
+ uri,
60
+ verb: HttpVerb.Delete,
61
+ transform,
62
+ transformError,
63
+ options: this.options(HttpVerb.Delete, options)
64
+ });
65
+ }
66
+ options(verb, options) {
67
+ return options instanceof RequestOptions ? options : RequestOptions.Json;
68
+ }
69
+ execute(req) {
70
+ return this.store ? this.store.execute(req, () => this.provider.execute(req)) : this.provider.execute(req);
71
+ }
72
+ };
73
+ var api = new Api();
74
+
75
+ export {
76
+ Api,
77
+ api
78
+ };
79
+ //# sourceMappingURL=chunk-5ZHEIMZ7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/services/Api.ts"],"sourcesContent":["import { AxiosProvider } from './AxiosProvider';\nimport { RequestOptions, toPageOptions } from '../http/RequestOptions';\nimport { FetchOptions } from '../types/Gateway';\nimport { RequestProvider } from '../http/RequestProvider';\nimport { Store } from '../types/Cache';\nimport { Uri } from '../types/Uri';\nimport { HttpVerb } from '../http/HttpVerb';\nimport { Request } from '../http/Request';\nimport { Response } from '../http/Response';\n\nexport type RouteOptions = RequestOptions | FetchOptions;\n\nexport class Api {\n constructor(\n readonly provider: RequestProvider = new AxiosProvider(),\n protected store?: Store<Response, Request>\n ) {}\n\n get(uri: Uri, options?: RouteOptions, transform?: (r: any) => any, transformError = (r: any) => r): Promise<Response> {\n return this.execute({\n uri: uri.skip(toPageOptions(options)?.skip).take(toPageOptions(options)?.take),\n verb: HttpVerb.Get,\n transform,\n transformError,\n options: this.options(HttpVerb.Get, options),\n });\n }\n\n post(uri: Uri, body?: unknown, options: RouteOptions = RequestOptions.Json, transform?: (r: any) => any, transformError = (r: any) => r): Promise<Response> {\n return this.execute({\n uri,\n verb: HttpVerb.Post,\n body,\n transform,\n transformError,\n options: this.options(HttpVerb.Post, options),\n });\n }\n\n put(uri: Uri, body?: unknown, options: RouteOptions = RequestOptions.Json, transform?: (r: any) => any, transformError = (r: any) => r): Promise<Response> {\n return this.execute({\n uri,\n verb: HttpVerb.Put,\n body,\n transform,\n transformError,\n options: this.options(HttpVerb.Put, options),\n });\n }\n\n patch(uri: Uri, body?: unknown, options: RouteOptions = RequestOptions.Json, transform?: (r: any) => any, transformError = (r: any) => r): Promise<Response> {\n return this.execute({\n uri,\n verb: HttpVerb.Patch,\n body,\n transform,\n transformError,\n options: this.options(HttpVerb.Patch, options),\n });\n }\n\n delete(uri: Uri, options: RouteOptions = RequestOptions.Json, transform?: (b: any) => any, transformError = (r: any) => r): Promise<Response> {\n return this.execute({\n uri,\n verb: HttpVerb.Delete,\n transform,\n transformError,\n options: this.options(HttpVerb.Delete, options),\n });\n }\n\n options(verb: HttpVerb, options?: RouteOptions): RequestOptions {\n return options instanceof RequestOptions ? options : RequestOptions.Json;\n }\n\n execute(req: Request): Promise<Response> {\n return this.store ? this.store.execute(req, () => this.provider.execute(req)) : this.provider.execute(req);\n }\n}\n\nexport const api: Api = new Api();\n"],"mappings":";;;;;;;;;;;;AAYO,IAAM,MAAN,MAAU;AAAA,EACf,YACW,WAA4B,IAAI,cAAc,GAC7C,OACV;AAFS;AACC;AAAA,EACT;AAAA,EAEH,IAAI,KAAU,SAAwB,WAA6B,iBAAiB,CAAC,MAAW,GAAsB;AACpH,WAAO,KAAK,QAAQ;AAAA,MAClB,KAAK,IAAI,KAAK,cAAc,OAAO,GAAG,IAAI,EAAE,KAAK,cAAc,OAAO,GAAG,IAAI;AAAA,MAC7E,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA,SAAS,KAAK,QAAQ,SAAS,KAAK,OAAO;AAAA,IAC7C,CAAC;AAAA,EACH;AAAA,EAEA,KAAK,KAAU,MAAgB,UAAwB,eAAe,MAAM,WAA6B,iBAAiB,CAAC,MAAW,GAAsB;AAC1J,WAAO,KAAK,QAAQ;AAAA,MAClB;AAAA,MACA,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,KAAK,QAAQ,SAAS,MAAM,OAAO;AAAA,IAC9C,CAAC;AAAA,EACH;AAAA,EAEA,IAAI,KAAU,MAAgB,UAAwB,eAAe,MAAM,WAA6B,iBAAiB,CAAC,MAAW,GAAsB;AACzJ,WAAO,KAAK,QAAQ;AAAA,MAClB;AAAA,MACA,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,KAAK,QAAQ,SAAS,KAAK,OAAO;AAAA,IAC7C,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,KAAU,MAAgB,UAAwB,eAAe,MAAM,WAA6B,iBAAiB,CAAC,MAAW,GAAsB;AAC3J,WAAO,KAAK,QAAQ;AAAA,MAClB;AAAA,MACA,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,KAAK,QAAQ,SAAS,OAAO,OAAO;AAAA,IAC/C,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,KAAU,UAAwB,eAAe,MAAM,WAA6B,iBAAiB,CAAC,MAAW,GAAsB;AAC5I,WAAO,KAAK,QAAQ;AAAA,MAClB;AAAA,MACA,MAAM,SAAS;AAAA,MACf;AAAA,MACA;AAAA,MACA,SAAS,KAAK,QAAQ,SAAS,QAAQ,OAAO;AAAA,IAChD,CAAC;AAAA,EACH;AAAA,EAEA,QAAQ,MAAgB,SAAwC;AAC9D,WAAO,mBAAmB,iBAAiB,UAAU,eAAe;AAAA,EACtE;AAAA,EAEA,QAAQ,KAAiC;AACvC,WAAO,KAAK,QAAQ,KAAK,MAAM,QAAQ,KAAK,MAAM,KAAK,SAAS,QAAQ,GAAG,CAAC,IAAI,KAAK,SAAS,QAAQ,GAAG;AAAA,EAC3G;AACF;AAEO,IAAM,MAAW,IAAI,IAAI;","names":[]}
@@ -0,0 +1,55 @@
1
+ import {
2
+ HttpStatus,
3
+ isHttpStatus
4
+ } from "./chunk-WSG55HKA.mjs";
5
+ import {
6
+ isResponse
7
+ } from "./chunk-UYDZZAEK.mjs";
8
+ import {
9
+ choose
10
+ } from "./chunk-S6WR4MXU.mjs";
11
+ import {
12
+ isResults
13
+ } from "./chunk-CSHFNF34.mjs";
14
+ import {
15
+ isResult,
16
+ toResult
17
+ } from "./chunk-RNLFG4YX.mjs";
18
+ import {
19
+ toList
20
+ } from "./chunk-ABGKS4KE.mjs";
21
+ import {
22
+ isDefined,
23
+ isError
24
+ } from "./chunk-DEJ7A5PY.mjs";
25
+
26
+ // src/http/RestResult.ts
27
+ var hasErrors = (a) => isDefined(a?.error?.errors);
28
+ var hasItems = (a) => isDefined(a?.data.items);
29
+ var rest = {
30
+ toData: (status, items = [], totalItems, meta) => ({
31
+ data: {
32
+ code: status.status,
33
+ items: toList(items),
34
+ itemCount: items.length,
35
+ totalItems,
36
+ meta
37
+ }
38
+ }),
39
+ toError: (status, errors = [toResult(status.name)]) => ({
40
+ error: {
41
+ code: status.status,
42
+ message: status.name ?? errors[0].message ?? "Unknown",
43
+ errors: toList(errors),
44
+ errorCount: errors.length
45
+ }
46
+ }),
47
+ to: (payload, status) => choose(payload).is.not.defined((p) => p, void 0).type(isHttpStatus, (h) => rest.toError(h ?? status ?? HttpStatus.InternalServerError, [toResult(h.name)])).type(isResult, (r) => rest.toError(status ?? HttpStatus.BadRequest, [r])).type(isError, (e) => rest.toError(status ?? HttpStatus.BadRequest, [e])).type(isResults, (r) => rest.toError(status ?? HttpStatus.BadRequest, r.results)).type(isResponse, (r) => rest.toError(status ?? HttpStatus.byId(r.body.error?.code), r.body.error?.errors)).type(hasErrors, (e) => rest.toError(status ?? HttpStatus.byId(e.error.code, HttpStatus.BadRequest), e.error.errors)).type(hasItems, (d) => rest.toData(status ?? HttpStatus.byId(d.data.code, HttpStatus.Ok), d.data.items, d.data.totalItems, d.data.meta)).else((p) => rest.toData(status ?? HttpStatus.Ok, toList(p)))
48
+ };
49
+ var isRestResult = (r) => isDefined(r) && (isDefined(r.data) || isDefined(r.error));
50
+
51
+ export {
52
+ rest,
53
+ isRestResult
54
+ };
55
+ //# sourceMappingURL=chunk-6QFV73AS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/http/RestResult.ts"],"sourcesContent":["import { HttpStatus, isHttpStatus } from './HttpStatus';\nimport { isResponse } from './Response';\nimport { List, toList } from '../types/List';\nimport { Json } from '../types/Json';\nimport { isResult, Result, toResult } from '../types/Result';\nimport { isDefined, isError } from '../types/Is';\nimport { choose } from '../types/Case';\nimport { isResults } from '../types/Results';\nimport { Id } from '../types/Id';\n\nexport type RestResult = {\n data?: { code: number; items: List<Json>; itemCount: number; totalItems?: number; meta?: Json };\n error?: { code: number; message: string; errorCount: number; errors: List<Result> };\n};\n\nconst hasErrors = (a: any): a is { error: { code: number; errors: List<Result> } } => isDefined(a?.error?.errors);\nconst hasItems = (a: any): a is { data: { code: number; items: List<Json>; totalItems?: number; meta?: Json } } => isDefined(a?.data.items);\n\nexport const rest = {\n toData: (status: HttpStatus, items: Json[] = [], totalItems?: number, meta?: Json): RestResult => ({\n data: {\n code: status.status,\n items: toList(items),\n itemCount: items.length,\n totalItems,\n meta,\n },\n }),\n toError: (status: HttpStatus, errors: Result[] = [toResult(status.name)]): RestResult => ({\n error: {\n code: status.status,\n message: status.name ?? errors[0].message ?? 'Unknown',\n errors: toList(errors),\n errorCount: errors.length,\n },\n }),\n to: (payload?: any | any[], status?: HttpStatus): RestResult =>\n choose(payload)\n .is.not.defined(p => p, undefined as unknown as RestResult)\n .type(isHttpStatus, h => rest.toError(h ?? status ?? HttpStatus.InternalServerError, [toResult(h.name)]))\n .type(isResult, r => rest.toError(status ?? HttpStatus.BadRequest, [r]))\n .type(isError, e => rest.toError(status ?? HttpStatus.BadRequest, [e]))\n .type(isResults, r => rest.toError(status ?? HttpStatus.BadRequest, r.results))\n .type(isResponse, r => rest.toError(status ?? HttpStatus.byId(r.body.error?.code as Id), r.body.error?.errors))\n .type(hasErrors, e => rest.toError(status ?? HttpStatus.byId(e.error.code, HttpStatus.BadRequest), e.error.errors))\n .type(hasItems, d => rest.toData(status ?? HttpStatus.byId(d.data.code, HttpStatus.Ok), d.data.items, d.data.totalItems, d.data.meta))\n .else(p => rest.toData(status ?? HttpStatus.Ok, toList(p))),\n};\n\nexport const isRestResult = (r: unknown): r is RestResult => isDefined(r) && (isDefined((r as RestResult).data) || isDefined((r as RestResult).error));\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAM,YAAY,CAAC,MAAmE,UAAU,GAAG,OAAO,MAAM;AAChH,IAAM,WAAW,CAAC,MAAiG,UAAU,GAAG,KAAK,KAAK;AAEnI,IAAM,OAAO;AAAA,EAClB,QAAQ,CAAC,QAAoB,QAAgB,CAAC,GAAG,YAAqB,UAA6B;AAAA,IACjG,MAAM;AAAA,MACJ,MAAM,OAAO;AAAA,MACb,OAAO,OAAO,KAAK;AAAA,MACnB,WAAW,MAAM;AAAA,MACjB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EACA,SAAS,CAAC,QAAoB,SAAmB,CAAC,SAAS,OAAO,IAAI,CAAC,OAAmB;AAAA,IACxF,OAAO;AAAA,MACL,MAAM,OAAO;AAAA,MACb,SAAS,OAAO,QAAQ,OAAO,CAAC,EAAE,WAAW;AAAA,MAC7C,QAAQ,OAAO,MAAM;AAAA,MACrB,YAAY,OAAO;AAAA,IACrB;AAAA,EACF;AAAA,EACA,IAAI,CAAC,SAAuB,WAC1B,OAAO,OAAO,EACX,GAAG,IAAI,QAAQ,OAAK,GAAG,MAAkC,EACzD,KAAK,cAAc,OAAK,KAAK,QAAQ,KAAK,UAAU,WAAW,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EACvG,KAAK,UAAU,OAAK,KAAK,QAAQ,UAAU,WAAW,YAAY,CAAC,CAAC,CAAC,CAAC,EACtE,KAAK,SAAS,OAAK,KAAK,QAAQ,UAAU,WAAW,YAAY,CAAC,CAAC,CAAC,CAAC,EACrE,KAAK,WAAW,OAAK,KAAK,QAAQ,UAAU,WAAW,YAAY,EAAE,OAAO,CAAC,EAC7E,KAAK,YAAY,OAAK,KAAK,QAAQ,UAAU,WAAW,KAAK,EAAE,KAAK,OAAO,IAAU,GAAG,EAAE,KAAK,OAAO,MAAM,CAAC,EAC7G,KAAK,WAAW,OAAK,KAAK,QAAQ,UAAU,WAAW,KAAK,EAAE,MAAM,MAAM,WAAW,UAAU,GAAG,EAAE,MAAM,MAAM,CAAC,EACjH,KAAK,UAAU,OAAK,KAAK,OAAO,UAAU,WAAW,KAAK,EAAE,KAAK,MAAM,WAAW,EAAE,GAAG,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,IAAI,CAAC,EACpI,KAAK,OAAK,KAAK,OAAO,UAAU,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC;AAChE;AAEO,IAAM,eAAe,CAAC,MAAgC,UAAU,CAAC,MAAM,UAAW,EAAiB,IAAI,KAAK,UAAW,EAAiB,KAAK;","names":[]}
@@ -0,0 +1,53 @@
1
+ import {
2
+ convert
3
+ } from "./chunk-MDXL65W4.mjs";
4
+ import {
5
+ json
6
+ } from "./chunk-7HTKPMTI.mjs";
7
+ import {
8
+ isDefined
9
+ } from "./chunk-DEJ7A5PY.mjs";
10
+
11
+ // src/data/Condition.ts
12
+ var Condition = class {
13
+ constructor(key, operator, value) {
14
+ this.key = key;
15
+ this.operator = operator;
16
+ this.value = value;
17
+ }
18
+ and = (...others) => new LogicalCondition("and", [this, ...others]);
19
+ or = (...others) => new LogicalCondition("or", [this, ...others]);
20
+ toJSON() {
21
+ return { [this.key]: { [`$${this.operator}`]: json.parse(this.value) } };
22
+ }
23
+ };
24
+ var LogicalCondition = class {
25
+ constructor(operator, conditions) {
26
+ this.operator = operator;
27
+ this.conditions = conditions;
28
+ }
29
+ toJSON() {
30
+ return { [`$${this.operator}`]: this.conditions.map((c) => c.toJSON()) };
31
+ }
32
+ };
33
+ var SortCondition = class extends Condition {
34
+ constructor(key, value) {
35
+ super(key, "", value);
36
+ this.key = key;
37
+ this.value = value;
38
+ }
39
+ toJSON() {
40
+ return { [this.key]: this.value };
41
+ }
42
+ };
43
+ var toCondition = (field, operator, value, conv = convert.default) => new Condition(field, operator, conv.from(value));
44
+ var isSortCondition = (s) => isDefined(s) && s instanceof SortCondition;
45
+
46
+ export {
47
+ Condition,
48
+ LogicalCondition,
49
+ SortCondition,
50
+ toCondition,
51
+ isSortCondition
52
+ };
53
+ //# sourceMappingURL=chunk-6UDAYZAZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/Condition.ts"],"sourcesContent":["import { json, Json, JsonValue } from '../types/Json';\nimport { Sort } from '../types/Sort';\nimport { convert, Convert } from '../utils/Convert';\nimport { isDefined } from '../types/Is';\n\nexport class Condition {\n constructor(\n readonly key: string,\n readonly operator: string,\n readonly value: unknown\n ) {}\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(\n readonly operator: string,\n readonly conditions: Condition[]\n ) {}\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(\n readonly key: string,\n readonly value: -1 | 1\n ) {\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":";;;;;;;;;;;AAKO,IAAM,YAAN,MAAgB;AAAA,EACrB,YACW,KACA,UACA,OACT;AAHS;AACA;AACA;AAAA,EACR;AAAA,EAEH,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,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YACW,UACA,YACT;AAFS;AACA;AAAA,EACR;AAAA,EAEH,SAAe;AACb,WAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,GAAG,KAAK,WAAW,IAAI,OAAK,EAAE,OAAO,CAAC,EAAE;AAAA,EACvE;AACF;AAEO,IAAM,gBAAN,cAA4B,UAA0B;AAAA,EAC3D,YACW,KACA,OACT;AACA,UAAM,KAAK,IAAI,KAAK;AAHX;AACA;AAAA,EAGX;AAAA,EAEA,SAAe;AACb,WAAO,EAAE,CAAC,KAAK,GAAG,GAAG,KAAK,MAAM;AAAA,EAClC;AACF;AAEO,IAAM,cAAc,CAAC,OAAe,UAAkB,OAAgB,OAAgB,QAAQ,YACnG,IAAI,UAAU,OAAO,UAAU,KAAK,KAAK,KAAK,CAAc;AAEvD,IAAM,kBAAkB,CAAC,MAAoC,UAAU,CAAC,KAAK,aAAa;","names":[]}
@@ -0,0 +1,72 @@
1
+ import {
2
+ entries
3
+ } from "./chunk-HULI73W2.mjs";
4
+ import {
5
+ ifDefined
6
+ } from "./chunk-ABGKS4KE.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 takeFirst = (j) => entries(j).first(([, v]) => isDefined(v));
61
+ var any = (value) => new Any(value);
62
+
63
+ export {
64
+ isJson,
65
+ json,
66
+ toJson,
67
+ asJson,
68
+ takeFirstKey,
69
+ takeFirst,
70
+ any
71
+ };
72
+ //# sourceMappingURL=chunk-7HTKPMTI.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 takeFirst = <K extends string = string, T = any>(j: Record<K, T>): [K, T] => entries(j).first(([, v]) => isDefined(v)) as [K, T];\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,YAAY,CAAqC,MAA4B,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,UAAU,CAAC,CAAC;AAE3H,IAAM,MAAM,CAAwB,UAAqB,IAAI,IAAO,KAAK;","names":["s"]}
@@ -0,0 +1,297 @@
1
+ import {
2
+ traverse
3
+ } from "./chunk-SSROJBD5.mjs";
4
+ import {
5
+ toArray
6
+ } from "./chunk-CO2AFYVD.mjs";
7
+ import {
8
+ asString
9
+ } from "./chunk-BDA5LB4S.mjs";
10
+ import {
11
+ ofGet,
12
+ ofProperty
13
+ } from "./chunk-SJGQU3OG.mjs";
14
+ import {
15
+ isA
16
+ } from "./chunk-ZHXKBOK2.mjs";
17
+ import {
18
+ ofConstruct,
19
+ on,
20
+ use
21
+ } from "./chunk-ZPNFXK7Y.mjs";
22
+ import {
23
+ isArray,
24
+ isDefined,
25
+ isEmpty,
26
+ isNotEmpty,
27
+ isPresent,
28
+ isTrue
29
+ } from "./chunk-DEJ7A5PY.mjs";
30
+
31
+ // src/types/List.ts
32
+ var List = class extends Array {
33
+ get ids() {
34
+ return this.mapDefined((i) => i.id);
35
+ }
36
+ get indexed() {
37
+ return this.map((v, index) => ({ ...v, index }));
38
+ }
39
+ isSubSetOf(...items) {
40
+ return this.diff(items).length === 0;
41
+ }
42
+ isSuperSetOf(...items) {
43
+ return this.length > items.length && toList(...items).isSubSetOf(...this);
44
+ }
45
+ isIntersectingWith(...items) {
46
+ return this.intersect(items).length > 0;
47
+ }
48
+ isDisjointWith(...items) {
49
+ return !this.isIntersectingWith(...items);
50
+ }
51
+ areEqual(...items) {
52
+ return this.isSubSetOf(...items) && toList(...items).isSubSetOf(...this);
53
+ }
54
+ asc(p) {
55
+ return this.sort((e1, e2) => ofProperty(e1, p) > ofProperty(e2, p) ? 1 : -1);
56
+ }
57
+ desc(p) {
58
+ return this.sort((e1, e2) => ofProperty(e1, p) < ofProperty(e2, p) ? 1 : -1);
59
+ }
60
+ first(p, params) {
61
+ return p ? this.find(p, params) : this[0];
62
+ }
63
+ firstValue(f, alt) {
64
+ return ifDefined(
65
+ this.first((t) => !!f(t)),
66
+ f,
67
+ (v) => ofGet(alt, v)
68
+ );
69
+ }
70
+ isFirst(value) {
71
+ return value === this.first();
72
+ }
73
+ next(p, params) {
74
+ return p ? this[this.findIndex(p, params) + 1] : this[0];
75
+ }
76
+ prev(p, params) {
77
+ return p ? this[this.findIndex(p, params) - 1] : this[0];
78
+ }
79
+ last(p, params) {
80
+ return p ? this.filter(p, params).last() : this[this.length - 1];
81
+ }
82
+ isLast(value) {
83
+ return value === this.last();
84
+ }
85
+ overlaps(...items) {
86
+ return toList(...items).some((i) => this.some((t) => i === t));
87
+ }
88
+ diff(others) {
89
+ return this.filter((i) => !others.includes(i));
90
+ }
91
+ diffByKey(others, key) {
92
+ return this.filter((i) => !others.some((o) => o[key] === i[key]));
93
+ }
94
+ symmetricDiff(others) {
95
+ return this.diff(others).concat(toList(...others).diff(this));
96
+ }
97
+ symmetricDiffByKey(others, key) {
98
+ return this.diffByKey(others, key).concat(toList(...others).diffByKey(this, key));
99
+ }
100
+ intersect(others) {
101
+ return this.filter((i) => others.includes(i));
102
+ }
103
+ intersectByKey(others, key) {
104
+ return this.filter((i) => others.some((o) => o[key] === i[key]));
105
+ }
106
+ intersectBy(others, f) {
107
+ return this.filter((i) => others.some((o) => f(i, o)));
108
+ }
109
+ accumulate(...keys) {
110
+ return this.map((d, i, arr) => {
111
+ const acc = keys.reduce((acc2, v) => {
112
+ acc2[v] = i === 0 ? d[v] : arr[i - 1][v] + d[v];
113
+ return acc2;
114
+ }, d);
115
+ arr[i] = acc;
116
+ return acc;
117
+ });
118
+ }
119
+ toJSON() {
120
+ return this.reduce((a, i) => {
121
+ a.push(JSON.parse(JSON.stringify(i ?? {})));
122
+ return a;
123
+ }, new Array());
124
+ }
125
+ map(f, params) {
126
+ return toList(super.map(f, params));
127
+ }
128
+ flatMap(f, params) {
129
+ return toList(super.flatMap(f, params));
130
+ }
131
+ mapDefined(f, params) {
132
+ return this.map(f, params).defined();
133
+ }
134
+ mapAsync(f) {
135
+ return Promise.all(super.map((e) => f(e))).then((a) => toList(a));
136
+ }
137
+ mapSerial(f) {
138
+ return super.reduce((p, item) => p.then((results) => on(results, async (r) => r.push(await f(item)))), Promise.resolve(toList()));
139
+ }
140
+ distinct() {
141
+ return this.filter((i, index) => this.indexOf(i) === index);
142
+ }
143
+ distinctByKey(key) {
144
+ const seen = /* @__PURE__ */ new Set();
145
+ return this.filter((item) => !seen.has(item[key]) && seen.add(item[key]));
146
+ }
147
+ distinctByValue() {
148
+ const seen = /* @__PURE__ */ new Set();
149
+ return this.filter((item) => !seen.has(JSON.stringify(item)) && seen.add(JSON.stringify(item)));
150
+ }
151
+ filter(p, params) {
152
+ return toList(super.filter(p, params));
153
+ }
154
+ sum(p) {
155
+ return this.reduce((sum, i) => sum + p(i), 0);
156
+ }
157
+ max(p) {
158
+ return typeof p === "function" ? this.sort((e1, e2) => p(e1) < p(e2) ? 1 : -1).first() : this.desc(p).first();
159
+ }
160
+ min(p) {
161
+ return typeof p === "function" ? this.sort((e1, e2) => p(e1) > p(e2) ? 1 : -1).first() : this.asc(p).first();
162
+ }
163
+ byId(id) {
164
+ return this.first((i) => asString(i.id) === asString(id));
165
+ }
166
+ byKey(key, value) {
167
+ return this.first((i) => i[key] == value);
168
+ }
169
+ add(...items) {
170
+ super.push(...toArray(...items));
171
+ return this;
172
+ }
173
+ concat(...items) {
174
+ return toList(super.concat(...items));
175
+ }
176
+ reverse() {
177
+ return toList(super.reverse());
178
+ }
179
+ splice(start, deleteCount, ...items) {
180
+ return toList(super.splice(start, deleteCount, ...items));
181
+ }
182
+ remove(item) {
183
+ const index = this.indexOf(item);
184
+ if (index > -1) {
185
+ this.splice(index, 1);
186
+ }
187
+ return this;
188
+ }
189
+ replace(key, item) {
190
+ const index = this.findIndex((i) => i[key] === item?.[key]);
191
+ ifTrue(index != -1, () => this.splice(index, 1, item));
192
+ return this;
193
+ }
194
+ switch(item) {
195
+ return this.includes(item) ? this.remove(item) : this.add(item);
196
+ }
197
+ switchOn(item, on2) {
198
+ return use(
199
+ typeof on2 === "function" ? this.find(on2) : use(traverse(item, on2), (v) => this.find((i) => traverse(i, on2) === v)),
200
+ (i) => i ? this.remove(i) : this.add(item)
201
+ );
202
+ }
203
+ defined() {
204
+ return this.reduce((l, v) => isDefined(v) ? l.add(v) : l, toList());
205
+ }
206
+ toObject(key, options = {}) {
207
+ return this.reduce((o, i) => {
208
+ o[i[key]] = i;
209
+ if (options.deleteKey)
210
+ delete o[i[key]][key];
211
+ return o;
212
+ }, {});
213
+ }
214
+ toObjectList(key) {
215
+ return this.reduce(
216
+ (a, t) => {
217
+ const k = t[key];
218
+ a[k] = a[k] ?? toList();
219
+ a[k].push(t);
220
+ return a;
221
+ },
222
+ {}
223
+ );
224
+ }
225
+ orElse(...alt) {
226
+ return !isEmpty(this) ? this : !isEmpty(...alt) ? toList(...alt) : void 0;
227
+ }
228
+ weave(insertFrom, interval) {
229
+ for (let i = interval, n = 0; i <= this.length && n < insertFrom.length; i += interval + 1) {
230
+ this.splice(i, 0, insertFrom[n++]);
231
+ }
232
+ return this;
233
+ }
234
+ slice(start, end) {
235
+ return toList(super.slice(start, end));
236
+ }
237
+ none(p) {
238
+ return !this.some(p);
239
+ }
240
+ chunk(chunkSize) {
241
+ return this.reduce((acc, _, index) => index % chunkSize === 0 ? on(acc, (a) => a.push(this.slice(index, index + chunkSize))) : acc, toList());
242
+ }
243
+ //we needed to add U because of a Typescript issue with generics
244
+ update(p, val) {
245
+ return this.map((v, i, a) => p(v, i, a) ? ofGet(val, v, i, a) : v);
246
+ }
247
+ updateFirst(p, val) {
248
+ const index = this.findIndex(p);
249
+ return this.update((t, i) => p(t, i, this) && i == index, val);
250
+ }
251
+ updateFirstById(id, val) {
252
+ return this.updateFirst((i) => asString(i?.id) === asString(id), val);
253
+ }
254
+ updateById(id, val) {
255
+ return this.update((i) => asString(i?.id) === asString(id), val);
256
+ }
257
+ };
258
+ var toList = (...items) => new List().add(...items);
259
+ var isList = (l) => isDefined(l) && isArray(l) && isA(l, "first", "last", "asc", "desc");
260
+ var asList = (c, items = []) => toList(toArray(items).map((i) => new c(i)));
261
+ var maxValue = (l, key) => l.desc(key).first()?.[key];
262
+ var minValue = (l, key) => l.asc(key).first()?.[key];
263
+
264
+ // src/utils/If.ts
265
+ function ifTrue(o, f, alt) {
266
+ return isTrue(o) ? ofConstruct(f, o) : ofConstruct(alt, o);
267
+ }
268
+ function ifFalse(o, f, alt) {
269
+ return !isTrue(o) ? ofConstruct(f, o) : ofConstruct(alt, o);
270
+ }
271
+ function ifDefined(o, f, alt) {
272
+ return isDefined(o) ? ofConstruct(f, o) : ofConstruct(alt);
273
+ }
274
+ function ifNotEmpty(o, f = (o2) => o2, alt) {
275
+ return isNotEmpty(o) ? ofConstruct(f, o) : ofConstruct(alt, o);
276
+ }
277
+ function ifEither(os, f = (o) => o, alt) {
278
+ return use(
279
+ toList(os).first((o) => isPresent(o)),
280
+ (o) => isDefined(o) ? ofConstruct(f, o) : ofConstruct(alt, o)
281
+ );
282
+ }
283
+
284
+ export {
285
+ ifTrue,
286
+ ifFalse,
287
+ ifDefined,
288
+ ifNotEmpty,
289
+ ifEither,
290
+ List,
291
+ toList,
292
+ isList,
293
+ asList,
294
+ maxValue,
295
+ minValue
296
+ };
297
+ //# sourceMappingURL=chunk-ABGKS4KE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/List.ts","../src/utils/If.ts"],"sourcesContent":["import { ArrayLike, toArray } from './Array';\nimport { Constructor, on, use } from './Constructor';\nimport type { Json } from './Json';\nimport { isArray, isDefined, isEmpty } from './Is';\nimport { isA } from './IsA';\nimport { Get, GetProperty, ofGet, ofProperty } from './Get';\nimport type { Id } from './Id';\nimport { asString } from './Text';\nimport { Optional } from './Types';\nimport { ifDefined, ifTrue } from '../utils/If';\nimport { AnyKey } from './AnyKey';\nimport { traverse } from '../utils/Traverse';\nimport { Indexed } from './Indexed';\n\ntype Pred<T> = (value: T, index: number, obj: T[]) => unknown;\n\nexport class List<T = unknown> extends Array<T> {\n get ids(): List<Id> {\n return this.mapDefined(i => (i as any).id as Id);\n }\n\n get indexed(): List<Indexed<T>> {\n return this.map((v, index) => ({ ...v, index }));\n }\n\n isSubSetOf(...items: ArrayLike<T>): boolean {\n return this.diff(items).length === 0;\n }\n\n isSuperSetOf(...items: ArrayLike<T>): boolean {\n return this.length > items.length && toList(...items).isSubSetOf(...this);\n }\n\n isIntersectingWith(...items: ArrayLike<T>): boolean {\n return this.intersect(items).length > 0;\n }\n\n isDisjointWith(...items: ArrayLike<T>): boolean {\n return !this.isIntersectingWith(...items);\n }\n\n areEqual(...items: ArrayLike<T>): boolean {\n return this.isSubSetOf(...items) && toList(...items).isSubSetOf(...this);\n }\n\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?: Pred<T>, 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 ifDefined(\n this.first(t => !!f(t)),\n f,\n v => ofGet(alt, v)\n );\n }\n\n isFirst(value: T): boolean {\n return value === this.first();\n }\n\n next(p?: Pred<T>, params?: unknown): T {\n return p ? this[this.findIndex(p, params) + 1] : this[0];\n }\n\n prev(p?: Pred<T>, params?: unknown): T {\n return p ? this[this.findIndex(p, params) - 1] : this[0];\n }\n\n last(p?: Pred<T>, 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<U = T>(others: ArrayLike<U>, key: keyof T & keyof U): 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\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<U>(others: ArrayLike<U>, key: keyof T & keyof U): List<T> {\n return this.filter((i: any) => others.some((o: any) => o[key] === i[key]));\n }\n\n intersectBy<U>(others: ArrayLike<U>, f: (value: T, value2: U) => boolean): List<T> {\n return this.filter(i => others.some(o => f(i, o as U)));\n }\n\n accumulate(...keys: (keyof T)[]): List<T> {\n return this.map((d, i, arr) => {\n const acc = keys.reduce((acc, v) => {\n (acc as any)[v] = i === 0 ? d[v] : (arr[i - 1][v] as number) + (d[v] as number);\n return acc;\n }, d);\n arr[i] = acc;\n return acc;\n });\n }\n\n toJSON(): Json[] {\n return this.reduce((a, i) => {\n a.push(JSON.parse(JSON.stringify(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 mapSerial<U>(f: (i: T) => Promise<U>): Promise<List<U>> {\n return super.reduce((p, item) => p.then(results => on(results, async r => r.push(await f(item)))), Promise.resolve(toList<U>()));\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 const seen = new Set<T[keyof T]>();\n return this.filter(item => !seen.has(item[key]) && seen.add(item[key]));\n }\n\n distinctByValue(): List<T> {\n const seen = new Set<string>();\n return this.filter(item => !seen.has(JSON.stringify(item)) && seen.add(JSON.stringify(item)));\n }\n\n filter(p: Pred<T>, 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(p: (value: T) => any): T;\n\n max(key: keyof T): T;\n\n max(p: keyof T | ((value: T) => any)): T {\n return typeof p === 'function' ? this.sort((e1, e2) => (p(e1) < p(e2) ? 1 : -1)).first() : this.desc(p).first();\n }\n\n min(key: keyof T): T;\n\n min(p: (value: T) => any): T;\n\n min(p: keyof T | ((value: T) => any)): T {\n return typeof p === 'function' ? this.sort((e1, e2) => (p(e1) > p(e2) ? 1 : -1)).first() : this.asc(p).first();\n }\n\n byId(id: Id): T {\n return this.first(i => asString((i as any).id) === asString(id));\n }\n\n byKey(key: keyof T, value: unknown): T {\n return this.first(i => i[key] == value);\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\n concat(...items: (T | ConcatArray<T>)[]): List<T>;\n\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\n splice(start: number, deleteCount: number, ...items: T[]): List<T>;\n\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 const index = this.findIndex(i => i[key] === item?.[key]);\n ifTrue(index != -1, () => this.splice(index, 1, 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 switchOn<U = T>(item: U, on: AnyKey<U>): List<T>;\n\n switchOn<T>(item: T, on: Pred<T>): List<T>;\n\n switchOn<U = T>(item: T, on: AnyKey<U> | Pred<T>): List<T> {\n return use(typeof on === 'function' ? this.find(on) : use(traverse(item, on), v => this.find(i => traverse(i, on) === v)), i =>\n i ? this.remove(i) : this.add(item)\n );\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 //we needed to add U because of a Typescript issue with generics\n update<U = T>(p: Pred<T>, val: T | ((v: U) => T)): List<T> {\n return this.map((v, i, a) => (p(v, i, a) ? ofGet<T>(val, v, i, a) : v));\n }\n\n updateFirst<U = T>(p: Pred<T>, val: T | ((v: U) => T)) {\n const index = this.findIndex(p);\n return this.update((t, i) => p(t, i, this) && i == index, val);\n }\n\n updateFirstById<U = T>(id: Id, val: T | ((v: U) => T)) {\n return this.updateFirst(i => asString((i as any)?.id) === asString(id), val);\n }\n\n updateById<U = T>(id: Id, val: T | ((v: U) => T)) {\n return this.update(i => asString((i as any)?.id) === asString(id), val);\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 = []): 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 { isDefined, isNotEmpty, isPresent, isTrue } from '../types/Is';\nimport { Optional } from '../types/Types';\nimport { Construct, ofConstruct, use } from '../types/Constructor';\nimport { OneOrMore } from '../types/Array';\nimport { toList } from '../types/List';\n\nexport function ifTrue<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;\nexport function ifTrue<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifTrue<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out> {\n return isTrue(o) ? ofConstruct(f, o) : ofConstruct(alt, o);\n}\n\nexport function ifFalse<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;\nexport function ifFalse<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifFalse<Out, In = unknown>(o: unknown, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out> {\n return !isTrue(o) ? ofConstruct(f, o) : ofConstruct(alt, o);\n}\n\nexport function ifDefined<Out, In = unknown>(o: Optional<In>, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;\nexport function ifDefined<Out, In = unknown>(o: Optional<In>, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifDefined<Out, In = unknown>(o: Optional<In>, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out> {\n return isDefined(o) ? ofConstruct(f, o) : ofConstruct(alt);\n}\n\nexport function ifNotEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;\nexport function ifNotEmpty<Out, In = unknown>(o: In, f?: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifNotEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifNotEmpty<Out, In = unknown>(o: In, f: Construct<Out, NonNullable<In>> = o => o as Out, alt?: Construct<Out>): Optional<Out> {\n return isNotEmpty(o) ? ofConstruct(f, o) : ofConstruct(alt, o);\n}\n\nexport function ifEither<Out, In = unknown>(os: OneOrMore<In>, f: Construct<Out, NonNullable<In>>, alt: Construct<Out>): Out;\nexport function ifEither<Out, In = unknown>(os: OneOrMore<In>, f?: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifEither<Out, In = unknown>(os: OneOrMore<In>, f: Construct<Out, NonNullable<In>>, alt?: Construct<Out>): Optional<Out>;\nexport function ifEither<Out, In = unknown>(os: OneOrMore<In>, f: Construct<Out, NonNullable<In>> = o => o as Out, alt?: Construct<Out>): Optional<Out> {\n return use(\n toList(os).first(o => isPresent(o)),\n o => (isDefined(o) ? ofConstruct(f, o) : ofConstruct(alt, o))\n );\n}\n"],"mappings":"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","names":["acc","on","o"]}
@@ -0,0 +1,21 @@
1
+ // src/types/IsDate.ts
2
+ var isDate = (o) => o instanceof Date && !isNaN(o.getTime());
3
+ var days = {
4
+ add: (date, days2) => {
5
+ date.setDate(date.getDate() + days2);
6
+ return date;
7
+ },
8
+ today: () => /* @__PURE__ */ new Date(),
9
+ yesterday: () => days.add(days.today(), -1),
10
+ tomorrow: () => days.add(days.today(), 1)
11
+ };
12
+ var inPast = (o) => isDate(o) && o <= days.today();
13
+ var inFuture = (o) => isDate(o) && o > days.today();
14
+
15
+ export {
16
+ isDate,
17
+ days,
18
+ inPast,
19
+ inFuture
20
+ };
21
+ //# sourceMappingURL=chunk-ADJAEGCT.mjs.map