@thisisagile/easy 17.26.0 → 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 -12
@@ -0,0 +1,142 @@
1
+ import {
2
+ seconds
3
+ } from "./chunk-P5MN5NGC.mjs";
4
+ import {
5
+ isDate
6
+ } from "./chunk-ADJAEGCT.mjs";
7
+ import {
8
+ choose,
9
+ tryTo
10
+ } from "./chunk-LGLRWA42.mjs";
11
+ import {
12
+ Value
13
+ } from "./chunk-WSBULPUZ.mjs";
14
+ import {
15
+ ifDefined
16
+ } from "./chunk-HOVTNDHS.mjs";
17
+ import {
18
+ isA
19
+ } from "./chunk-ZHXKBOK2.mjs";
20
+ import {
21
+ use
22
+ } from "./chunk-ZPNFXK7Y.mjs";
23
+ import {
24
+ isDefined,
25
+ isNumber,
26
+ isString
27
+ } from "./chunk-DEJ7A5PY.mjs";
28
+
29
+ // src/domain/DateTime.ts
30
+ import { DateTime as LuxonDateTime, Settings } from "luxon";
31
+ Settings.defaultZone = "utc";
32
+ var DateTime = class _DateTime extends Value {
33
+ luxon;
34
+ constructor(value, format) {
35
+ const luxon = choose(value).type(isString, (v) => format ? LuxonDateTime.fromFormat(v, format, { setZone: true }) : LuxonDateTime.fromISO(v, { setZone: true })).type(isNumber, (v) => LuxonDateTime.fromMillis(v)).type(isDate, (v) => LuxonDateTime.fromJSDate(v)).type(isDateTime, (v) => v.luxon).else(value instanceof LuxonDateTime ? value : LuxonDateTime.fromISO(void 0));
36
+ super(luxon.toISO() ?? void 0);
37
+ this.luxon = luxon;
38
+ }
39
+ static get now() {
40
+ return new _DateTime(LuxonDateTime.utc());
41
+ }
42
+ get isValid() {
43
+ return isDefined(this.value) && this.utc.isValid;
44
+ }
45
+ /**
46
+ * @deprecated Deprecated in favor for DateTime.from as that also accepts locales and another DateTime
47
+ */
48
+ get fromNow() {
49
+ return this.from();
50
+ }
51
+ get inAmsterdam() {
52
+ return this.withZone("Europe/Amsterdam");
53
+ }
54
+ get inNewYork() {
55
+ return this.withZone("America/New_York");
56
+ }
57
+ get inLondon() {
58
+ return this.withZone("Europe/London");
59
+ }
60
+ get inWarsaw() {
61
+ return this.withZone("Europe/Warsaw");
62
+ }
63
+ get utc() {
64
+ return this.luxon.setZone("utc");
65
+ }
66
+ from(dateOrLocale, maybeLocale) {
67
+ return use(
68
+ (isString(dateOrLocale) ? dateOrLocale : maybeLocale) ?? "en",
69
+ (locale) => ifDefined(
70
+ isA(dateOrLocale) ? dateOrLocale : void 0,
71
+ (d) => this.utc.setLocale(locale).toRelative({ base: d.utc }),
72
+ () => this.utc.setLocale(locale).toRelative()
73
+ )
74
+ ) ?? "";
75
+ }
76
+ isAfter(dt2) {
77
+ return this.utc > dt2.utc;
78
+ }
79
+ isBefore(dt2) {
80
+ return this.utc < dt2.utc;
81
+ }
82
+ equals(dt2) {
83
+ return this.utc.hasSame(dt2.utc, "millisecond");
84
+ }
85
+ add(n, unit = "day") {
86
+ return new _DateTime(this.luxon.plus(isNumber(n) ? { [unit]: n } : n));
87
+ }
88
+ subtract(n, unit = "day") {
89
+ return new _DateTime(this.luxon.minus(isNumber(n) ? { [unit]: n } : n));
90
+ }
91
+ diff(other, unit = "day", opts) {
92
+ return Math[opts?.rounding ?? "floor"](this.utc.diff(other.utc).as(unit));
93
+ }
94
+ startOf(unit = "day") {
95
+ return new _DateTime(this.luxon.startOf(unit));
96
+ }
97
+ endOf(unit = "day") {
98
+ return new _DateTime(this.luxon.endOf(unit));
99
+ }
100
+ isWeekend() {
101
+ return this.luxon.isWeekend;
102
+ }
103
+ withZone(zone) {
104
+ return new _DateTime(this.luxon.setZone(zone));
105
+ }
106
+ toString() {
107
+ return this.value ?? "";
108
+ }
109
+ toJSON() {
110
+ return this.utc.toISO();
111
+ }
112
+ toFormat(format) {
113
+ return this.luxon.toFormat(format);
114
+ }
115
+ toLocale(locale = "nl-NL", format = "D") {
116
+ return this.luxon.setLocale(locale).toFormat(format);
117
+ }
118
+ toFull(locale) {
119
+ return this.toLocale(locale, "DDD");
120
+ }
121
+ toDate() {
122
+ return this.isValid ? this.utc.toJSDate() : void 0;
123
+ }
124
+ toEpoch() {
125
+ return this.luxon.toMillis();
126
+ }
127
+ ago(end = _DateTime.now) {
128
+ return seconds.toText(end.diff(this, "second"));
129
+ }
130
+ withClock(clock) {
131
+ return tryTo(() => [this.toDate(), clock.toDate()]).map(([td, cd]) => new Date(td.getFullYear(), td.getMonth(), td.getDate(), cd.getHours(), cd.getMinutes(), cd.getSeconds())).map((d) => new _DateTime(d)).value;
132
+ }
133
+ };
134
+ var isDateTime = (dt2) => isDefined(dt2) && dt2 instanceof DateTime;
135
+ var dt = (dt2) => new DateTime(dt2);
136
+
137
+ export {
138
+ DateTime,
139
+ isDateTime,
140
+ dt
141
+ };
142
+ //# sourceMappingURL=chunk-QNNYTOR7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/domain/DateTime.ts"],"sourcesContent":["import { DateTime as LuxonDateTime, DateTimeUnit as LuxonDateTimeUnit, DurationUnit as LuxonDurationUnit, Settings } from 'luxon';\nimport { Value } from '../types/Value';\nimport { Optional } from '../types/Types';\nimport { choose } from '../types/Case';\nimport { isDefined, isNumber, isString } from '../types/Is';\nimport { isDate } from '../types/IsDate';\nimport { isA } from '../types/IsA';\nimport { ifDefined } from '../utils/If';\nimport { JsonValue } from '../types/Json';\nimport { seconds } from '../utils/Seconds';\nimport { tryTo } from '../types/Try';\nimport { use } from '../types/Constructor';\n\nSettings.defaultZone = 'utc';\n\nexport type DateTimeUnit = LuxonDateTimeUnit;\nexport type DurationUnit = LuxonDurationUnit;\nexport type Duration = Partial<Record<DurationUnit, number>>;\n\nexport type DiffOptions = {\n rounding: 'floor' | 'ceil' | 'round';\n};\n\nexport type DatetimeInput = string | number | Date | DateTime | null;\n\nexport class DateTime extends Value<Optional<string>> {\n protected readonly luxon: LuxonDateTime;\n\n constructor(value?: DatetimeInput);\n constructor(value?: string, format?: string);\n constructor(value?: DatetimeInput, format?: string) {\n const luxon = choose(value)\n .type(isString, v => (format ? LuxonDateTime.fromFormat(v, format, { setZone: true }) : LuxonDateTime.fromISO(v, { setZone: true })))\n .type(isNumber, v => LuxonDateTime.fromMillis(v))\n .type(isDate, v => LuxonDateTime.fromJSDate(v))\n .type(isDateTime, v => v.luxon)\n // Allow constructing with LuxonDateTime without exposing types\n .else(value instanceof LuxonDateTime ? value : LuxonDateTime.fromISO(undefined as any));\n\n super(luxon.toISO() ?? undefined);\n this.luxon = luxon;\n }\n\n static get now(): DateTime {\n return new DateTime(LuxonDateTime.utc() as any);\n }\n\n get isValid(): boolean {\n return isDefined(this.value) && this.utc.isValid;\n }\n\n /**\n * @deprecated Deprecated in favor for DateTime.from as that also accepts locales and another DateTime\n */\n get fromNow(): string {\n return this.from();\n }\n\n get inAmsterdam(): DateTime {\n return this.withZone('Europe/Amsterdam');\n }\n\n get inNewYork(): DateTime {\n return this.withZone('America/New_York');\n }\n\n get inLondon(): DateTime {\n return this.withZone('Europe/London');\n }\n\n get inWarsaw(): DateTime {\n return this.withZone('Europe/Warsaw');\n }\n\n protected get utc(): LuxonDateTime {\n return this.luxon.setZone('utc');\n }\n\n from(locale?: string): string;\n\n from(date?: DateTime, locale?: string): string;\n\n from(dateOrLocale?: string | DateTime, maybeLocale?: string): string {\n return (\n use((isString(dateOrLocale) ? dateOrLocale : maybeLocale) ?? 'en', locale =>\n ifDefined(\n isA<DateTime>(dateOrLocale) ? dateOrLocale : undefined,\n d => this.utc.setLocale(locale).toRelative({ base: d.utc }),\n () => this.utc.setLocale(locale).toRelative()\n )\n ) ?? ''\n );\n }\n\n isAfter(dt: DateTime): boolean {\n return this.utc > dt.utc;\n }\n\n isBefore(dt: DateTime): boolean {\n return this.utc < dt.utc;\n }\n\n equals(dt: DateTime): boolean {\n return this.utc.hasSame(dt.utc, 'millisecond');\n }\n\n add(n: number, unit?: DurationUnit): DateTime;\n\n add(duration: Duration): DateTime;\n\n add(n: number | Duration, unit: DurationUnit = 'day'): DateTime {\n return new DateTime(this.luxon.plus(isNumber(n) ? { [unit]: n } : n) as any);\n }\n\n subtract(n: number, unit?: DurationUnit): DateTime;\n\n subtract(duration: Duration): DateTime;\n\n subtract(n: number | Duration, unit: DurationUnit = 'day'): DateTime {\n return new DateTime(this.luxon.minus(isNumber(n) ? { [unit]: n } : n) as any);\n }\n\n diff(other: DateTime, unit: DateTimeUnit = 'day', opts?: DiffOptions): number {\n return Math[opts?.rounding ?? 'floor'](this.utc.diff(other.utc).as(unit));\n }\n\n startOf(unit: DateTimeUnit = 'day'): DateTime {\n return new DateTime(this.luxon.startOf(unit) as any);\n }\n\n endOf(unit: DateTimeUnit = 'day'): DateTime {\n return new DateTime(this.luxon.endOf(unit) as any);\n }\n\n isWeekend(): boolean {\n return this.luxon.isWeekend;\n }\n\n withZone(zone: string): DateTime {\n return new DateTime(this.luxon.setZone(zone) as any);\n }\n\n toString(): string {\n return this.value ?? '';\n }\n\n toJSON(): JsonValue {\n return this.utc.toISO();\n }\n\n toFormat(format: string): string {\n return this.luxon.toFormat(format);\n }\n\n toLocale(locale = 'nl-NL', format = 'D'): string {\n return this.luxon.setLocale(locale).toFormat(format);\n }\n\n toFull(locale?: string): string {\n return this.toLocale(locale, 'DDD');\n }\n\n toDate(): Optional<Date> {\n return this.isValid ? this.utc.toJSDate() : undefined;\n }\n\n toEpoch(): number {\n return this.luxon.toMillis();\n }\n\n ago(end: DateTime = DateTime.now): string {\n return seconds.toText(end.diff(this, 'second'));\n }\n\n withClock(clock: DateTime): DateTime {\n return tryTo(() => [this.toDate() as Date, clock.toDate() as Date])\n .map(([td, cd]) => new Date(td.getFullYear(), td.getMonth(), td.getDate(), cd.getHours(), cd.getMinutes(), cd.getSeconds()))\n .map(d => new DateTime(d)).value;\n }\n}\n\nexport const isDateTime = (dt?: unknown): dt is DateTime => isDefined(dt) && dt instanceof DateTime;\n\nexport const dt = (dt?: DatetimeInput): DateTime => new DateTime(dt);\n"],"mappings":"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","names":["dt"]}
@@ -0,0 +1,175 @@
1
+ import {
2
+ choose
3
+ } from "./chunk-LGLRWA42.mjs";
4
+ import {
5
+ List,
6
+ isList,
7
+ toList
8
+ } from "./chunk-HOVTNDHS.mjs";
9
+ import {
10
+ isA
11
+ } from "./chunk-ZHXKBOK2.mjs";
12
+ import {
13
+ ofConstruct
14
+ } from "./chunk-ZPNFXK7Y.mjs";
15
+ import {
16
+ isNumber
17
+ } from "./chunk-DEJ7A5PY.mjs";
18
+
19
+ // src/types/PageList.ts
20
+ var toFilter = (field, value) => toShortFilter(field, field, value);
21
+ var toShortFilter = (field, shortField, value) => ({
22
+ field,
23
+ shortField,
24
+ values: [{ value }]
25
+ });
26
+ var PageList = class extends List {
27
+ _options;
28
+ get options() {
29
+ return this._options;
30
+ }
31
+ get take() {
32
+ return this._options?.take ?? 250;
33
+ }
34
+ get skip() {
35
+ return this._options?.skip ?? 0;
36
+ }
37
+ get total() {
38
+ return this._options?.total;
39
+ }
40
+ get sorts() {
41
+ return this._options?.sorts;
42
+ }
43
+ get filters() {
44
+ return this._options?.filters;
45
+ }
46
+ get meta() {
47
+ return {
48
+ take: this.take,
49
+ skip: this.skip,
50
+ total: this.total,
51
+ sorts: this.sorts,
52
+ filters: this.filters
53
+ };
54
+ }
55
+ get ids() {
56
+ return this.mapDefined((i) => i.id);
57
+ }
58
+ asc(p) {
59
+ return toPageList(super.asc(p), this);
60
+ }
61
+ desc(p) {
62
+ return toPageList(super.desc(p), this);
63
+ }
64
+ diff(others) {
65
+ return toPageList(super.diff(others), this);
66
+ }
67
+ diffByKey(others, key) {
68
+ return toPageList(super.diffByKey(others, key), this);
69
+ }
70
+ symmetricDiff(others) {
71
+ return toPageList(super.symmetricDiff(others), this);
72
+ }
73
+ symmetricDiffByKey(others, key) {
74
+ return toPageList(super.symmetricDiffByKey(others, key), this);
75
+ }
76
+ intersect(others) {
77
+ return toPageList(super.intersect(others), this);
78
+ }
79
+ intersectByKey(others, key) {
80
+ return toPageList(super.intersectByKey(others, key), this);
81
+ }
82
+ map(f, params) {
83
+ const items = super.map(f, params);
84
+ return toPageList(items, this);
85
+ }
86
+ flatMap(f, params) {
87
+ return toPageList(super.flatMap(f, params), this);
88
+ }
89
+ mapDefined(f, params) {
90
+ return toPageList(super.mapDefined(f, params), this);
91
+ }
92
+ mapAsync(f) {
93
+ return super.mapAsync(f).then((r) => toPageList(r, this));
94
+ }
95
+ areEqual(...items) {
96
+ return this.isSubSetOf(...items) && toList(...items).isSubSetOf(...this);
97
+ }
98
+ distinct() {
99
+ return toPageList(super.distinct(), this);
100
+ }
101
+ distinctByKey(key) {
102
+ return toPageList(super.distinctByKey(key), this);
103
+ }
104
+ distinctByValue() {
105
+ return toPageList(super.distinctByValue(), this);
106
+ }
107
+ filter(p, params) {
108
+ return toPageList(super.filter(p, params), this);
109
+ }
110
+ accumulate(...keys) {
111
+ return toPageList(super.accumulate(...keys), this);
112
+ }
113
+ concat(...items) {
114
+ return toPageList(super.concat(...items), this);
115
+ }
116
+ reverse() {
117
+ return toPageList(super.reverse(), this);
118
+ }
119
+ splice(start, deleteCount, ...items) {
120
+ return toPageList(super.splice(start, deleteCount, ...items), this);
121
+ }
122
+ remove(item) {
123
+ return toPageList(super.remove(item), this);
124
+ }
125
+ replace(key, item) {
126
+ return toPageList(super.replace(key, item), this);
127
+ }
128
+ switch(item) {
129
+ return toPageList(super.switch(item), this);
130
+ }
131
+ defined() {
132
+ return toPageList(super.defined(), this);
133
+ }
134
+ orElse(...alt) {
135
+ return toPageList(super.orElse(...alt), this);
136
+ }
137
+ slice(start, end) {
138
+ return toPageList(super.slice(start, end), this);
139
+ }
140
+ //we needed to add U because of a Typescript issue with generics
141
+ update(p, val) {
142
+ return toPageList(super.update(p, val), this);
143
+ }
144
+ updateFirst(p, val) {
145
+ return toPageList(super.updateFirst(p, val), this);
146
+ }
147
+ updateFirstById(id, val) {
148
+ return toPageList(super.updateFirstById(id, val), this);
149
+ }
150
+ updateById(id, val) {
151
+ return toPageList(super.updateById(id, val), this);
152
+ }
153
+ setPageOptions(options) {
154
+ this._options = options;
155
+ return this;
156
+ }
157
+ };
158
+ var isPageList = (l) => isList(l) && isA(l, "total");
159
+ var toPageList = (items = [], options) => {
160
+ return choose(items).case(
161
+ (i) => i.length === 1 && isNumber(i[0]),
162
+ (i) => new PageList().add(...i)
163
+ ).else((i) => new PageList(...i)).setPageOptions(isPageList(options) ? options.options : options);
164
+ };
165
+ var asPageList = (c, items = toPageList()) => items.map((i) => ofConstruct(c, i));
166
+
167
+ export {
168
+ toFilter,
169
+ toShortFilter,
170
+ PageList,
171
+ isPageList,
172
+ toPageList,
173
+ asPageList
174
+ };
175
+ //# sourceMappingURL=chunk-RHOK5QZR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/PageList.ts"],"sourcesContent":["import { isList, List, toList } from './List';\nimport { Construct, ofConstruct } from './Constructor';\nimport { isA } from './IsA';\nimport { PlainSort, Sort } from './Sort';\nimport { GetProperty } from './Get';\nimport { ArrayLike } from './Array';\nimport { Optional } from './Types';\nimport { isNumber } from './Is';\nimport { choose } from './Case';\nimport type { Id } from './Id';\n\nexport type FilterValue = { label?: string; value: any; count?: number };\nexport type Filter = { label?: string; field: string; shortField?: string; values: FilterValue[] };\n\nexport const toFilter = (field: string, value: any): Filter => toShortFilter(field, field, value);\nexport const toShortFilter = (field: string, shortField: string, value: any): Filter => ({\n field,\n shortField,\n values: [{ value }],\n});\n\nexport type PageOptions = { take?: number; skip?: number; sort?: Sort[]; sorts?: PlainSort; filters?: Filter[] };\nexport type PageListOptions = Exclude<PageOptions, 'sort'> & { total?: number };\n\nexport class PageList<T = unknown> extends List<T> {\n private _options?: PageListOptions;\n\n get options(): Optional<PageListOptions> {\n return this._options;\n }\n\n get take(): number {\n return this._options?.take ?? 250;\n }\n\n get skip(): number {\n return this._options?.skip ?? 0;\n }\n\n get total(): Optional<number> {\n return this._options?.total;\n }\n\n get sorts(): Optional<PlainSort> {\n return this._options?.sorts;\n }\n\n get filters(): Optional<Filter[]> {\n return this._options?.filters;\n }\n\n get meta(): PageListOptions {\n return {\n take: this.take,\n skip: this.skip,\n total: this.total,\n sorts: this.sorts,\n filters: this.filters,\n };\n }\n\n get ids(): PageList<Id> {\n return this.mapDefined(i => (i as any).id as Id);\n }\n\n asc(p: GetProperty<T, any>): PageList<T> {\n return toPageList(super.asc(p), this);\n }\n\n desc(p: GetProperty<T, any>): PageList<T> {\n return toPageList(super.desc(p), this);\n }\n\n diff(others: ArrayLike<T>): PageList<T> {\n return toPageList(super.diff(others), this);\n }\n\n diffByKey<U = T>(others: ArrayLike<U>, key: keyof T & keyof U): PageList<T> {\n return toPageList(super.diffByKey(others, key), this);\n }\n\n symmetricDiff(others: ArrayLike<T>): PageList<T> {\n return toPageList(super.symmetricDiff(others), this);\n }\n\n symmetricDiffByKey(others: ArrayLike<T>, key: keyof T): PageList<T> {\n return toPageList(super.symmetricDiffByKey(others, key), this);\n }\n\n intersect(others: ArrayLike<T>): PageList<T> {\n return toPageList(super.intersect(others), this);\n }\n\n intersectByKey<U>(others: ArrayLike<U>, key: keyof T & keyof U): PageList<T> {\n return toPageList(super.intersectByKey(others, key), this);\n }\n\n map<U>(f: (value: T, index: number, array: T[]) => U, params?: unknown): PageList<U> {\n const items = super.map(f, params);\n return toPageList(items, this);\n }\n\n flatMap<U, This = unknown>(f: (this: This, value: T, index: number, array: T[]) => ReadonlyArray<U> | U, params?: This): PageList<U> {\n return toPageList(super.flatMap(f, params), this);\n }\n\n mapDefined<U>(f: (value: T, index: number, array: T[]) => U, params?: unknown): PageList<NonNullable<U>> {\n return toPageList(super.mapDefined(f, params), this);\n }\n\n mapAsync(f: (i: T) => Promise<T>): Promise<PageList<T>> {\n return super.mapAsync(f).then(r => toPageList(r, this));\n }\n\n areEqual(...items: ArrayLike<T>): boolean {\n return this.isSubSetOf(...items) && toList(...items).isSubSetOf(...this);\n }\n\n distinct(): PageList<T> {\n return toPageList(super.distinct(), this);\n }\n\n distinctByKey(key: keyof T): PageList<T> {\n return toPageList(super.distinctByKey(key), this);\n }\n\n distinctByValue(): PageList<T> {\n return toPageList(super.distinctByValue(), this);\n }\n\n filter(p: (value: T, index: number, array: T[]) => unknown, params?: unknown): PageList<T> {\n return toPageList(super.filter(p, params), this);\n }\n\n accumulate(...keys: (keyof T)[]): PageList<T> {\n return toPageList(super.accumulate(...keys), this);\n }\n\n concat(...items: ConcatArray<T>[]): PageList<T>;\n\n concat(...items: (T | ConcatArray<T>)[]): PageList<T>;\n\n concat(...items: (T | ConcatArray<T>)[]): PageList<T> {\n return toPageList(super.concat(...items), this);\n }\n\n reverse(): PageList<T> {\n return toPageList(super.reverse(), this);\n }\n\n splice(start: number, deleteCount?: number): PageList<T>;\n\n splice(start: number, deleteCount: number, ...items: T[]): PageList<T>;\n\n splice(start: number, deleteCount: number, ...items: T[]): PageList<T> {\n return toPageList(super.splice(start, deleteCount, ...items), this);\n }\n\n remove(item: T): PageList<T> {\n return toPageList(super.remove(item), this);\n }\n\n replace(key: keyof T, item: T): PageList<T> {\n return toPageList(super.replace(key, item), this);\n }\n\n switch(item: T): PageList<T> {\n return toPageList(super.switch(item), this);\n }\n\n defined(): PageList<NonNullable<T>> {\n return toPageList(super.defined(), this);\n }\n\n orElse(...alt: ArrayLike<T>): Optional<PageList<T>> {\n return toPageList(super.orElse(...alt), this);\n }\n\n slice(start?: number, end?: number): PageList<T> {\n return toPageList(super.slice(start, end), this);\n }\n\n //we needed to add U because of a Typescript issue with generics\n update<U = T>(p: (value: T, index: number, array: T[]) => unknown, val: T | ((v: U) => T)): PageList<T> {\n return toPageList(super.update(p, val), this);\n }\n\n updateFirst<U = T>(p: (value: T, index: number, array: T[]) => unknown, val: T | ((v: U) => T)): PageList<T> {\n return toPageList(super.updateFirst(p, val), this);\n }\n\n updateFirstById<U = T>(id: Id, val: T | ((v: U) => T)): PageList<T> {\n return toPageList(super.updateFirstById(id, val), this);\n }\n\n updateById<U = T>(id: Id, val: T | ((v: U) => T)): PageList<T> {\n return toPageList(super.updateById(id, val), this);\n }\n\n private setPageOptions(options?: PageListOptions): this {\n this._options = options;\n return this;\n }\n}\n\nexport const isPageList = <T>(l?: unknown): l is PageList<T> => isList<T>(l) && isA(l, 'total');\n\nexport const toPageList = <T>(items: T[] = [], options?: PageListOptions | PageList): PageList<T> => {\n return (\n choose(items)\n .case(\n i => i.length === 1 && isNumber(i[0]),\n i => new PageList<T>().add(...i)\n )\n .else(i => new PageList<T>(...i)) as any\n ).setPageOptions(isPageList(options) ? options.options : options);\n};\n\n/* @deprecated No longer needed as the PageList is now a class that extends from List, use the map function */\nexport const asPageList = <T, U>(c: Construct<T>, items = toPageList<U>()): PageList<T> => items.map(i => ofConstruct(c, i));\n"],"mappings":"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","names":[]}
@@ -0,0 +1,20 @@
1
+ import {
2
+ ctx
3
+ } from "./chunk-PR6DFFCE.mjs";
4
+ import {
5
+ isA
6
+ } from "./chunk-ZHXKBOK2.mjs";
7
+
8
+ // src/types/Result.ts
9
+ var toResult = (message, location, domain = ctx.env.domain) => ({
10
+ message: message.toString(),
11
+ location: location?.toString(),
12
+ domain: domain?.toString()
13
+ });
14
+ var isResult = (r) => isA(r, "message");
15
+
16
+ export {
17
+ toResult,
18
+ isResult
19
+ };
20
+ //# sourceMappingURL=chunk-RS7CT7BU.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/Result.ts"],"sourcesContent":["import { isA } from './IsA';\nimport { Text } from './Text';\nimport { ctx } from './Context';\nimport { TypeGuard } from './TypeGuard';\n\nexport type Result = { message: string; location?: string; domain?: string };\n\nexport const toResult = (message: Text, location?: Text, domain: Text = ctx.env.domain): Result => ({\n message: message.toString(),\n location: location?.toString(),\n domain: domain?.toString(),\n});\n\nexport const isResult: TypeGuard<Result> = (r?: unknown): r is Result => isA<Result>(r, 'message');\n"],"mappings":";;;;;;;;AAOO,IAAM,WAAW,CAAC,SAAe,UAAiB,SAAe,IAAI,IAAI,YAAoB;AAAA,EAClG,SAAS,QAAQ,SAAS;AAAA,EAC1B,UAAU,UAAU,SAAS;AAAA,EAC7B,QAAQ,QAAQ,SAAS;AAC3B;AAEO,IAAM,WAA8B,CAAC,MAA6B,IAAY,GAAG,SAAS;","names":[]}
@@ -0,0 +1,18 @@
1
+ import {
2
+ Select
3
+ } from "./chunk-D7UFAVDX.mjs";
4
+ import {
5
+ ifGet
6
+ } from "./chunk-SJGQU3OG.mjs";
7
+
8
+ // src/sql/Count.ts
9
+ var Count = class extends Select {
10
+ toString() {
11
+ return `SELECT COUNT(*)` + ifGet(this._top, ` TOP ${this._top}`, "") + ` FROM ${this.table}` + ifGet(this.clauses.length, ` WHERE ${this.clauses.join(" AND ")}`, "") + ifGet(this.grouped.length, ` GROUP BY ${this.grouped.join(", ")}`, "") + ";";
12
+ }
13
+ };
14
+
15
+ export {
16
+ Count
17
+ };
18
+ //# sourceMappingURL=chunk-RUFO75IB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sql/Count.ts"],"sourcesContent":["import { Select } from './Select';\nimport { ifGet } from '../types/Get';\n\nexport class Count extends Select {\n toString(): string {\n return (\n `SELECT COUNT(*)` +\n ifGet(this._top, ` TOP ${this._top}`, '') +\n ` FROM ${this.table}` +\n ifGet(this.clauses.length, ` WHERE ${this.clauses.join(' AND ')}`, '') +\n ifGet(this.grouped.length, ` GROUP BY ${this.grouped.join(', ')}`, '') +\n ';'\n );\n }\n}\n"],"mappings":";;;;;;;;AAGO,IAAM,QAAN,cAAoB,OAAO;AAAA,EAChC,WAAmB;AACjB,WACE,oBACA,MAAM,KAAK,MAAM,QAAQ,KAAK,IAAI,IAAI,EAAE,IACxC,SAAS,KAAK,KAAK,KACnB,MAAM,KAAK,QAAQ,QAAQ,UAAU,KAAK,QAAQ,KAAK,OAAO,CAAC,IAAI,EAAE,IACrE,MAAM,KAAK,QAAQ,QAAQ,aAAa,KAAK,QAAQ,KAAK,IAAI,CAAC,IAAI,EAAE,IACrE;AAAA,EAEJ;AACF;","names":[]}
@@ -0,0 +1,164 @@
1
+ import {
2
+ entries
3
+ } from "./chunk-4VZHB642.mjs";
4
+ import {
5
+ toList
6
+ } from "./chunk-HOVTNDHS.mjs";
7
+ import {
8
+ asString,
9
+ capitalize,
10
+ replaceAll
11
+ } from "./chunk-BDA5LB4S.mjs";
12
+ import {
13
+ ofGet
14
+ } from "./chunk-SJGQU3OG.mjs";
15
+ import {
16
+ toName
17
+ } from "./chunk-ZPNFXK7Y.mjs";
18
+ import {
19
+ isEmpty,
20
+ isNotEmpty
21
+ } from "./chunk-DEJ7A5PY.mjs";
22
+
23
+ // src/types/ToText.ts
24
+ var ToText = class {
25
+ constructor(subject) {
26
+ this.subject = subject;
27
+ }
28
+ get cap() {
29
+ return this.map((s) => capitalize(s?.toLowerCase()));
30
+ }
31
+ get capFirst() {
32
+ return this.map((s) => capitalize(s));
33
+ }
34
+ get title() {
35
+ return this.map(
36
+ (s) => s.split(" ").map((w) => text(w).cap).join(" ")
37
+ );
38
+ }
39
+ get pascal() {
40
+ return this.title.replace(" ", "");
41
+ }
42
+ get lower() {
43
+ return this.map((s) => s.toLowerCase());
44
+ }
45
+ get upper() {
46
+ return this.map((s) => s.toUpperCase());
47
+ }
48
+ get camel() {
49
+ return this.title.trim.map((s) => `${s.charAt(0).toLowerCase()}${s.slice(1)}`);
50
+ }
51
+ get kebab() {
52
+ return this.lower.replace(" ", "-");
53
+ }
54
+ get strictKebab() {
55
+ return this.map((s) => s.replace(/[^a-z\d]+/gi, " ").trim()).kebab;
56
+ }
57
+ get slug() {
58
+ return this.map(
59
+ (s) => s.replace(/ß/g, "ss").normalize("NFKD").replace(/[\u0300-\u036F]/g, "").toLowerCase().replace(/[^a-z\d]+/g, "-").replace(/(^-)|(-$)/g, "")
60
+ );
61
+ }
62
+ get snake() {
63
+ return this.upper.replace(" ", "_");
64
+ }
65
+ get plural() {
66
+ return this.ifLike("") ?? this.add("s");
67
+ }
68
+ get space() {
69
+ return this.map((s) => s.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/[_-]/g, " "));
70
+ }
71
+ get sentence() {
72
+ return this.isEmpty ? this : this.map((s) => `${s.charAt(0).toUpperCase()}${s.slice(1)}.`);
73
+ }
74
+ get initials() {
75
+ return this.map(
76
+ (s) => s.split(" ").map((w) => w[0]).join("")
77
+ );
78
+ }
79
+ get trim() {
80
+ return this.map((s) => s.replace(/[- ,_#]/g, ""));
81
+ }
82
+ get trimSentence() {
83
+ return this.map(
84
+ (s) => s.replace(/[\u200B-\u200D\uFEFF]/g, "").replace(/[\s\u00A0]+/g, " ").replace(/\s+([.,;:!?])/g, "$1").trim()
85
+ );
86
+ }
87
+ get isEmpty() {
88
+ return isEmpty(this.toString());
89
+ }
90
+ parse = (subject, options = {}) => text(template(this.subject, subject, { type: toName(subject), ...options }));
91
+ is = (...others) => others.some((o) => this.toString() === text(o).toString());
92
+ equals = this.is;
93
+ isLike = (...others) => others.some((o) => this.trim.lower.is(text(o).trim.lower));
94
+ ifLike = (...others) => this.isLike(...others) ? this : void 0;
95
+ endsWith = (end) => this.subject.endsWith(asString(end));
96
+ startsWith = (end) => this.subject.startsWith(asString(end));
97
+ first = (n) => this.map((s) => s.substring(0, n));
98
+ last = (n) => this.map((s) => s.substring(s.length - n));
99
+ map = (func) => text(ofGet(func, this.subject));
100
+ replace = (search, replace) => this.map((s) => replaceAll(s, search, replace));
101
+ add = (add, separator = "") => this.map((s) => isNotEmpty(add) ? `${s}${separator}${text(add)}` : s);
102
+ with = (separator, ...other) => this.map(
103
+ (s) => toList(s).add(...other.map((u) => text(u).toString())).filter((s2) => isNotEmpty(s2)).join(separator)
104
+ );
105
+ split = (separator = " ") => toList(this.subject.split(separator));
106
+ toString() {
107
+ return this.subject;
108
+ }
109
+ toJSON() {
110
+ return this.subject;
111
+ }
112
+ };
113
+ function text(subject, alt = "") {
114
+ const sub = subject ? asString(subject) : alt;
115
+ return new ToText(sub !== "[object Object]" ? sub : "");
116
+ }
117
+ function textValue(subject, prop) {
118
+ const p = prop.split(".");
119
+ const root = subject?.[p[0]];
120
+ const initial = typeof root === "object" && root !== null ? root : text(root);
121
+ return p.splice(1).reduce((t, s) => t?.[s], initial)?.toString() ?? "";
122
+ }
123
+
124
+ // src/types/Template.ts
125
+ var Template = class {
126
+ constructor(template2, subject = {}, options = {}) {
127
+ this.template = template2;
128
+ this.subject = subject;
129
+ this.options = options;
130
+ }
131
+ toString = () => {
132
+ return entries(this.options).reduce((t, [k]) => this.option(t, k), this.object()).replace(" ", " ");
133
+ };
134
+ props = (tmpl, key, result = toList()) => {
135
+ const i1 = tmpl.indexOf(`{${key}`);
136
+ if (i1 < 0) {
137
+ return result;
138
+ }
139
+ const i2 = tmpl.indexOf("}", i1);
140
+ return this.props(tmpl.slice(i2 + 1), key, result.add(tmpl.substring(i1 + 1, i2)));
141
+ };
142
+ object = () => {
143
+ return this.props(this.template, "this").reduce((t, p) => t.replace(`{${p}}`, textValue(this.subject, p.replace("this.", ""))), this.template);
144
+ };
145
+ option = (tmpl, prop) => {
146
+ return this.props(tmpl, prop).reduce((t, p) => t.replace(`{${p}}`, textValue(this.options, p)), tmpl);
147
+ };
148
+ };
149
+ function template(tmpl, subject, options = {}) {
150
+ return new Template(asString(tmpl), subject, {
151
+ type: toName(subject),
152
+ subject: text(JSON.stringify(subject)),
153
+ ...options
154
+ });
155
+ }
156
+
157
+ export {
158
+ Template,
159
+ template,
160
+ ToText,
161
+ text,
162
+ textValue
163
+ };
164
+ //# sourceMappingURL=chunk-RWGCMC6L.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/ToText.ts","../src/types/Template.ts"],"sourcesContent":["import { asString, capitalize, replaceAll, Text } from './Text';\nimport { toName } from './Constructor';\nimport { Optional } from './Types';\nimport { Get, ofGet } from './Get';\nimport { isEmpty, isNotEmpty } from './Is';\nimport { List, toList } from './List';\nimport { JsonValue } from './Json';\nimport { template } from './Template';\n\nexport class ToText implements Text {\n constructor(readonly subject: string) {}\n\n get cap(): ToText {\n return this.map(s => capitalize(s?.toLowerCase()));\n }\n\n get capFirst(): ToText {\n return this.map(s => capitalize(s));\n }\n\n get title(): ToText {\n return this.map(s =>\n s\n .split(' ')\n .map(w => text(w).cap)\n .join(' ')\n );\n }\n\n get pascal(): ToText {\n return this.title.replace(' ', '');\n }\n\n get lower(): ToText {\n return this.map(s => s.toLowerCase());\n }\n\n get upper(): ToText {\n return this.map(s => s.toUpperCase());\n }\n\n get camel(): ToText {\n return this.title.trim.map(s => `${s.charAt(0).toLowerCase()}${s.slice(1)}`);\n }\n\n get kebab(): ToText {\n return this.lower.replace(' ', '-');\n }\n\n get strictKebab(): ToText {\n return this.map(s => s.replace(/[^a-z\\d]+/gi, ' ').trim()).kebab;\n }\n\n get slug(): ToText {\n return this.map(s =>\n s\n .replace(/ß/g, 'ss')\n .normalize('NFKD')\n .replace(/[\\u0300-\\u036F]/g, '')\n .toLowerCase()\n .replace(/[^a-z\\d]+/g, '-')\n .replace(/(^-)|(-$)/g, '')\n );\n }\n\n get snake(): ToText {\n return this.upper.replace(' ', '_');\n }\n\n get plural(): ToText {\n return this.ifLike('') ?? this.add('s');\n }\n\n get space(): ToText {\n return this.map(s => s.replace(/([a-z0-9])([A-Z])/g, '$1 $2').replace(/[_-]/g, ' '));\n }\n\n get sentence(): ToText {\n return this.isEmpty ? this : this.map(s => `${s.charAt(0).toUpperCase()}${s.slice(1)}.`);\n }\n\n get initials(): ToText {\n return this.map(s =>\n s\n .split(' ')\n .map(w => w[0])\n .join('')\n );\n }\n\n get trim(): ToText {\n return this.map(s => s.replace(/[- ,_#]/g, ''));\n }\n\n get trimSentence(): ToText {\n return this.map(s =>\n s\n .replace(/[\\u200B-\\u200D\\uFEFF]/g, '')\n .replace(/[\\s\\u00A0]+/g, ' ')\n .replace(/\\s+([.,;:!?])/g, '$1')\n .trim()\n );\n }\n\n get isEmpty(): boolean {\n return isEmpty(this.toString());\n }\n\n parse = (subject: unknown, options = {}): ToText => text(template(this.subject, subject, { type: toName(subject), ...options }));\n\n is = (...others: unknown[]): boolean => others.some(o => this.toString() === text(o).toString());\n\n equals = this.is;\n\n isLike = (...others: unknown[]): boolean => others.some(o => this.trim.lower.is(text(o).trim.lower));\n\n ifLike = (...others: unknown[]): Optional<this> => (this.isLike(...others) ? this : undefined);\n\n endsWith = (end?: unknown): boolean => this.subject.endsWith(asString(end));\n\n startsWith = (end?: unknown): boolean => this.subject.startsWith(asString(end));\n\n first = (n: number): ToText => this.map(s => s.substring(0, n));\n\n last = (n: number): ToText => this.map(s => s.substring(s.length - n));\n\n map = (func: Get<string, string>): ToText => text(ofGet(func, this.subject));\n\n replace = (search: Text, replace: Text): ToText => this.map(s => replaceAll(s, search, replace));\n\n add = (add?: unknown, separator = ''): ToText => this.map(s => (isNotEmpty(add) ? `${s}${separator}${text(add)}` : s));\n\n with = (separator: string, ...other: unknown[]): ToText =>\n this.map(s =>\n toList(s)\n .add(...other.map(u => text(u).toString()))\n .filter(s => isNotEmpty(s))\n .join(separator)\n );\n\n split = (separator: string = ' '): List<string> => toList(this.subject.split(separator));\n\n toString(): string {\n return this.subject;\n }\n\n toJSON(): JsonValue {\n return this.subject;\n }\n}\n\nexport function text(subject?: unknown, alt = ''): ToText {\n const sub = subject ? asString(subject) : alt;\n return new ToText(sub !== '[object Object]' ? sub : '');\n}\n\nexport function textValue(subject: any, prop: string): string {\n const p = prop.split('.');\n const root = subject?.[p[0]];\n const initial = typeof root === 'object' && root !== null ? root : text(root);\n return (\n p\n .splice(1)\n .reduce((t, s) => t?.[s], initial)\n ?.toString() ?? ''\n );\n}\n","import { List, toList } from './List';\nimport { asString, Text } from './Text';\nimport { toName } from './Constructor';\nimport { entries } from './Object';\nimport { text, textValue } from './ToText';\n\nexport type TemplateOptions = { type?: Text; property?: Text; actual?: Text; subject?: Text };\n\nexport class Template implements Text {\n constructor(\n private readonly template: string,\n private readonly subject: unknown = {},\n private readonly options: TemplateOptions = {}\n ) {}\n\n toString = (): string => {\n return entries(this.options)\n .reduce((t, [k]) => this.option(t, k), this.object())\n .replace(' ', ' ');\n };\n\n private readonly props = (tmpl: string, key: string, result: List<string> = toList()): string[] => {\n const i1 = tmpl.indexOf(`{${key}`);\n if (i1 < 0) {\n return result;\n }\n const i2 = tmpl.indexOf('}', i1);\n return this.props(tmpl.slice(i2 + 1), key, result.add(tmpl.substring(i1 + 1, i2)));\n };\n\n private readonly object = (): string => {\n return this.props(this.template, 'this').reduce((t: string, p) => t.replace(`{${p}}`, textValue(this.subject, p.replace('this.', ''))), this.template);\n };\n\n private readonly option = (tmpl: string, prop: string): string => {\n return this.props(tmpl, prop).reduce((t: string, p) => t.replace(`{${p}}`, textValue(this.options, p)), tmpl);\n };\n}\n\nexport function template(tmpl: Text, subject: unknown, options: TemplateOptions = {}): Text {\n return new Template(asString(tmpl), subject, {\n type: toName(subject),\n subject: text(JSON.stringify(subject)),\n ...options,\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AASO,IAAM,SAAN,MAA6B;AAAA,EAClC,YAAqB,SAAiB;AAAjB;AAAA,EAAkB;AAAA,EAEvC,IAAI,MAAc;AAChB,WAAO,KAAK,IAAI,OAAK,WAAW,GAAG,YAAY,CAAC,CAAC;AAAA,EACnD;AAAA,EAEA,IAAI,WAAmB;AACrB,WAAO,KAAK,IAAI,OAAK,WAAW,CAAC,CAAC;AAAA,EACpC;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK;AAAA,MAAI,OACd,EACG,MAAM,GAAG,EACT,IAAI,OAAK,KAAK,CAAC,EAAE,GAAG,EACpB,KAAK,GAAG;AAAA,IACb;AAAA,EACF;AAAA,EAEA,IAAI,SAAiB;AACnB,WAAO,KAAK,MAAM,QAAQ,KAAK,EAAE;AAAA,EACnC;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,IAAI,OAAK,EAAE,YAAY,CAAC;AAAA,EACtC;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,IAAI,OAAK,EAAE,YAAY,CAAC;AAAA,EACtC;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,MAAM,KAAK,IAAI,OAAK,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE;AAAA,EAC7E;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,MAAM,QAAQ,KAAK,GAAG;AAAA,EACpC;AAAA,EAEA,IAAI,cAAsB;AACxB,WAAO,KAAK,IAAI,OAAK,EAAE,QAAQ,eAAe,GAAG,EAAE,KAAK,CAAC,EAAE;AAAA,EAC7D;AAAA,EAEA,IAAI,OAAe;AACjB,WAAO,KAAK;AAAA,MAAI,OACd,EACG,QAAQ,MAAM,IAAI,EAClB,UAAU,MAAM,EAChB,QAAQ,oBAAoB,EAAE,EAC9B,YAAY,EACZ,QAAQ,cAAc,GAAG,EACzB,QAAQ,cAAc,EAAE;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,MAAM,QAAQ,KAAK,GAAG;AAAA,EACpC;AAAA,EAEA,IAAI,SAAiB;AACnB,WAAO,KAAK,OAAO,EAAE,KAAK,KAAK,IAAI,GAAG;AAAA,EACxC;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,IAAI,OAAK,EAAE,QAAQ,sBAAsB,OAAO,EAAE,QAAQ,SAAS,GAAG,CAAC;AAAA,EACrF;AAAA,EAEA,IAAI,WAAmB;AACrB,WAAO,KAAK,UAAU,OAAO,KAAK,IAAI,OAAK,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG;AAAA,EACzF;AAAA,EAEA,IAAI,WAAmB;AACrB,WAAO,KAAK;AAAA,MAAI,OACd,EACG,MAAM,GAAG,EACT,IAAI,OAAK,EAAE,CAAC,CAAC,EACb,KAAK,EAAE;AAAA,IACZ;AAAA,EACF;AAAA,EAEA,IAAI,OAAe;AACjB,WAAO,KAAK,IAAI,OAAK,EAAE,QAAQ,YAAY,EAAE,CAAC;AAAA,EAChD;AAAA,EAEA,IAAI,eAAuB;AACzB,WAAO,KAAK;AAAA,MAAI,OACd,EACG,QAAQ,0BAA0B,EAAE,EACpC,QAAQ,gBAAgB,GAAG,EAC3B,QAAQ,kBAAkB,IAAI,EAC9B,KAAK;AAAA,IACV;AAAA,EACF;AAAA,EAEA,IAAI,UAAmB;AACrB,WAAO,QAAQ,KAAK,SAAS,CAAC;AAAA,EAChC;AAAA,EAEA,QAAQ,CAAC,SAAkB,UAAU,CAAC,MAAc,KAAK,SAAS,KAAK,SAAS,SAAS,EAAE,MAAM,OAAO,OAAO,GAAG,GAAG,QAAQ,CAAC,CAAC;AAAA,EAE/H,KAAK,IAAI,WAA+B,OAAO,KAAK,OAAK,KAAK,SAAS,MAAM,KAAK,CAAC,EAAE,SAAS,CAAC;AAAA,EAE/F,SAAS,KAAK;AAAA,EAEd,SAAS,IAAI,WAA+B,OAAO,KAAK,OAAK,KAAK,KAAK,MAAM,GAAG,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC;AAAA,EAEnG,SAAS,IAAI,WAAuC,KAAK,OAAO,GAAG,MAAM,IAAI,OAAO;AAAA,EAEpF,WAAW,CAAC,QAA2B,KAAK,QAAQ,SAAS,SAAS,GAAG,CAAC;AAAA,EAE1E,aAAa,CAAC,QAA2B,KAAK,QAAQ,WAAW,SAAS,GAAG,CAAC;AAAA,EAE9E,QAAQ,CAAC,MAAsB,KAAK,IAAI,OAAK,EAAE,UAAU,GAAG,CAAC,CAAC;AAAA,EAE9D,OAAO,CAAC,MAAsB,KAAK,IAAI,OAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAAA,EAErE,MAAM,CAAC,SAAsC,KAAK,MAAM,MAAM,KAAK,OAAO,CAAC;AAAA,EAE3E,UAAU,CAAC,QAAc,YAA0B,KAAK,IAAI,OAAK,WAAW,GAAG,QAAQ,OAAO,CAAC;AAAA,EAE/F,MAAM,CAAC,KAAe,YAAY,OAAe,KAAK,IAAI,OAAM,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC,KAAK,CAAE;AAAA,EAErH,OAAO,CAAC,cAAsB,UAC5B,KAAK;AAAA,IAAI,OACP,OAAO,CAAC,EACL,IAAI,GAAG,MAAM,IAAI,OAAK,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,EACzC,OAAO,CAAAA,OAAK,WAAWA,EAAC,CAAC,EACzB,KAAK,SAAS;AAAA,EACnB;AAAA,EAEF,QAAQ,CAAC,YAAoB,QAAsB,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAC;AAAA,EAEvF,WAAmB;AACjB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,SAAoB;AAClB,WAAO,KAAK;AAAA,EACd;AACF;AAEO,SAAS,KAAK,SAAmB,MAAM,IAAY;AACxD,QAAM,MAAM,UAAU,SAAS,OAAO,IAAI;AAC1C,SAAO,IAAI,OAAO,QAAQ,oBAAoB,MAAM,EAAE;AACxD;AAEO,SAAS,UAAU,SAAc,MAAsB;AAC5D,QAAM,IAAI,KAAK,MAAM,GAAG;AACxB,QAAM,OAAO,UAAU,EAAE,CAAC,CAAC;AAC3B,QAAM,UAAU,OAAO,SAAS,YAAY,SAAS,OAAO,OAAO,KAAK,IAAI;AAC5E,SACE,EACG,OAAO,CAAC,EACR,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,OAAO,GAC/B,SAAS,KAAK;AAEtB;;;AC9JO,IAAM,WAAN,MAA+B;AAAA,EACpC,YACmBC,WACA,UAAmB,CAAC,GACpB,UAA2B,CAAC,GAC7C;AAHiB,oBAAAA;AACA;AACA;AAAA,EAChB;AAAA,EAEH,WAAW,MAAc;AACvB,WAAO,QAAQ,KAAK,OAAO,EACxB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,OAAO,GAAG,CAAC,GAAG,KAAK,OAAO,CAAC,EACnD,QAAQ,MAAM,GAAG;AAAA,EACtB;AAAA,EAEiB,QAAQ,CAAC,MAAc,KAAa,SAAuB,OAAO,MAAgB;AACjG,UAAM,KAAK,KAAK,QAAQ,IAAI,GAAG,EAAE;AACjC,QAAI,KAAK,GAAG;AACV,aAAO;AAAA,IACT;AACA,UAAM,KAAK,KAAK,QAAQ,KAAK,EAAE;AAC/B,WAAO,KAAK,MAAM,KAAK,MAAM,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,UAAU,KAAK,GAAG,EAAE,CAAC,CAAC;AAAA,EACnF;AAAA,EAEiB,SAAS,MAAc;AACtC,WAAO,KAAK,MAAM,KAAK,UAAU,MAAM,EAAE,OAAO,CAAC,GAAW,MAAM,EAAE,QAAQ,IAAI,CAAC,KAAK,UAAU,KAAK,SAAS,EAAE,QAAQ,SAAS,EAAE,CAAC,CAAC,GAAG,KAAK,QAAQ;AAAA,EACvJ;AAAA,EAEiB,SAAS,CAAC,MAAc,SAAyB;AAChE,WAAO,KAAK,MAAM,MAAM,IAAI,EAAE,OAAO,CAAC,GAAW,MAAM,EAAE,QAAQ,IAAI,CAAC,KAAK,UAAU,KAAK,SAAS,CAAC,CAAC,GAAG,IAAI;AAAA,EAC9G;AACF;AAEO,SAAS,SAAS,MAAY,SAAkB,UAA2B,CAAC,GAAS;AAC1F,SAAO,IAAI,SAAS,SAAS,IAAI,GAAG,SAAS;AAAA,IAC3C,MAAM,OAAO,OAAO;AAAA,IACpB,SAAS,KAAK,KAAK,UAAU,OAAO,CAAC;AAAA,IACrC,GAAG;AAAA,EACL,CAAC;AACH;","names":["s","template"]}
@@ -0,0 +1,35 @@
1
+ import {
2
+ isResult,
3
+ toResult
4
+ } from "./chunk-RS7CT7BU.mjs";
5
+ import {
6
+ toArray
7
+ } from "./chunk-CO2AFYVD.mjs";
8
+ import {
9
+ isDefined
10
+ } from "./chunk-DEJ7A5PY.mjs";
11
+
12
+ // src/types/Results.ts
13
+ var parse = (...rs) => toArray(...rs).map((r) => isResult(r) ? r : toResult(r));
14
+ var Results = class {
15
+ results;
16
+ constructor(...rs) {
17
+ this.results = parse(...rs);
18
+ }
19
+ get length() {
20
+ return this.results.length;
21
+ }
22
+ get isValid() {
23
+ return this.results.length === 0;
24
+ }
25
+ add = (...rs) => toResults(...this.results, ...parse(...rs));
26
+ };
27
+ var toResults = (...r) => new Results(...r);
28
+ var isResults = (r) => isDefined(r) && r instanceof Results;
29
+
30
+ export {
31
+ Results,
32
+ toResults,
33
+ isResults
34
+ };
35
+ //# sourceMappingURL=chunk-SCVGZWV7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/Results.ts"],"sourcesContent":["import { Text } from './Text';\nimport { isResult, Result, toResult } from './Result';\nimport { Validatable } from './Validatable';\nimport { isDefined } from './Is';\nimport { toArray } from './Array';\n\nconst parse = (...rs: (Text | Result)[]): Result[] => toArray(...rs).map(r => (isResult(r) ? r : toResult(r)));\n\nexport class Results implements Validatable {\n public readonly results: Result[];\n\n constructor(...rs: (Text | Result)[]) {\n this.results = parse(...rs);\n }\n\n get length(): number {\n return this.results.length;\n }\n\n get isValid(): boolean {\n return this.results.length === 0;\n }\n\n add = (...rs: (Text | Result)[]): Results => toResults(...this.results, ...parse(...rs));\n}\n\nexport const toResults = (...r: (Text | Result)[]): Results => new Results(...r);\n\nexport const isResults = (r?: unknown): r is Results => isDefined(r) && r instanceof Results;\n"],"mappings":";;;;;;;;;;;;AAMA,IAAM,QAAQ,IAAI,OAAoC,QAAQ,GAAG,EAAE,EAAE,IAAI,OAAM,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,CAAE;AAEtG,IAAM,UAAN,MAAqC;AAAA,EAC1B;AAAA,EAEhB,eAAe,IAAuB;AACpC,SAAK,UAAU,MAAM,GAAG,EAAE;AAAA,EAC5B;AAAA,EAEA,IAAI,SAAiB;AACnB,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAI,UAAmB;AACrB,WAAO,KAAK,QAAQ,WAAW;AAAA,EACjC;AAAA,EAEA,MAAM,IAAI,OAAmC,UAAU,GAAG,KAAK,SAAS,GAAG,MAAM,GAAG,EAAE,CAAC;AACzF;AAEO,IAAM,YAAY,IAAI,MAAkC,IAAI,QAAQ,GAAG,CAAC;AAExE,IAAM,YAAY,CAAC,MAA8B,UAAU,CAAC,KAAK,aAAa;","names":[]}
@@ -0,0 +1,21 @@
1
+ import {
2
+ asString
3
+ } from "./chunk-BDA5LB4S.mjs";
4
+ import {
5
+ isString
6
+ } from "./chunk-DEJ7A5PY.mjs";
7
+
8
+ // src/types/Uuid.ts
9
+ import { v4 as uuid } from "uuid";
10
+ var toUuid = () => uuid();
11
+ var isValidUuid = new RegExp(/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i);
12
+ var isUuid = (id) => isString(id) && isValidUuid.test(id);
13
+ var includeUuid = new RegExp(/\b[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\b/i);
14
+ var includesUuid = (value) => includeUuid.test(asString(value));
15
+
16
+ export {
17
+ toUuid,
18
+ isUuid,
19
+ includesUuid
20
+ };
21
+ //# sourceMappingURL=chunk-SJ4YFZKO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/Uuid.ts"],"sourcesContent":["import { v4 as uuid } from 'uuid';\nimport { isString } from './Is';\nimport { asString } from './Text';\n\nexport type Uuid = string;\nexport const toUuid = (): Uuid => uuid();\n\nconst isValidUuid = new RegExp(/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i);\nexport const isUuid = (id?: unknown): id is Uuid => isString(id) && isValidUuid.test(id);\n\nconst includeUuid = new RegExp(/\\b[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\\b/i);\nexport const includesUuid = (value?: unknown): boolean => includeUuid.test(asString(value));\n"],"mappings":";;;;;;;;AAAA,SAAS,MAAM,YAAY;AAKpB,IAAM,SAAS,MAAY,KAAK;AAEvC,IAAM,cAAc,IAAI,OAAO,iEAAiE;AACzF,IAAM,SAAS,CAAC,OAA6B,SAAS,EAAE,KAAK,YAAY,KAAK,EAAE;AAEvF,IAAM,cAAc,IAAI,OAAO,8EAA8E;AACtG,IAAM,eAAe,CAAC,UAA6B,YAAY,KAAK,SAAS,KAAK,CAAC;","names":[]}