@thisisagile/easy 17.26.1 → 17.26.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-2AB6ZQHC.mjs +26 -0
- package/dist/chunk-2AB6ZQHC.mjs.map +1 -0
- package/dist/chunk-4DJUHTQO.mjs +55 -0
- package/dist/chunk-4DJUHTQO.mjs.map +1 -0
- package/dist/chunk-4HWEQEHM.mjs +20 -0
- package/dist/chunk-4HWEQEHM.mjs.map +1 -0
- package/dist/chunk-4N72FQFX.mjs +16 -0
- package/dist/chunk-4N72FQFX.mjs.map +1 -0
- package/dist/chunk-4SWYJEN5.mjs +82 -0
- package/dist/chunk-4SWYJEN5.mjs.map +1 -0
- package/dist/chunk-4VZHB642.mjs +37 -0
- package/dist/chunk-4VZHB642.mjs.map +1 -0
- package/dist/chunk-ADJAEGCT.mjs +21 -0
- package/dist/chunk-ADJAEGCT.mjs.map +1 -0
- package/dist/chunk-AGTB4HMP.mjs +11 -0
- package/dist/chunk-AGTB4HMP.mjs.map +1 -0
- package/dist/chunk-BDA5LB4S.mjs +29 -0
- package/dist/chunk-BDA5LB4S.mjs.map +1 -0
- package/dist/chunk-BZOYP6X7.mjs +134 -0
- package/dist/chunk-BZOYP6X7.mjs.map +1 -0
- package/dist/chunk-CO2AFYVD.mjs +43 -0
- package/dist/chunk-CO2AFYVD.mjs.map +1 -0
- package/dist/chunk-D7UFAVDX.mjs +54 -0
- package/dist/chunk-D7UFAVDX.mjs.map +1 -0
- package/dist/chunk-DEFTEK45.mjs +40 -0
- package/dist/chunk-DEFTEK45.mjs.map +1 -0
- package/dist/chunk-DEJ7A5PY.mjs +43 -0
- package/dist/chunk-DEJ7A5PY.mjs.map +1 -0
- package/dist/chunk-DLA22ZCC.mjs +20 -0
- package/dist/chunk-DLA22ZCC.mjs.map +1 -0
- package/dist/chunk-DXQSIBC7.mjs +13 -0
- package/dist/chunk-DXQSIBC7.mjs.map +1 -0
- package/dist/chunk-ELDS3NWV.mjs +23 -0
- package/dist/chunk-ELDS3NWV.mjs.map +1 -0
- package/dist/chunk-ELUKCMQZ.mjs +50 -0
- package/dist/chunk-ELUKCMQZ.mjs.map +1 -0
- package/dist/chunk-FN7HN3YK.mjs +58 -0
- package/dist/chunk-FN7HN3YK.mjs.map +1 -0
- package/dist/chunk-GCY5A63A.mjs +25 -0
- package/dist/chunk-GCY5A63A.mjs.map +1 -0
- package/dist/chunk-GO66AIDJ.mjs +76 -0
- package/dist/chunk-GO66AIDJ.mjs.map +1 -0
- package/dist/chunk-GVTADDU5.mjs +39 -0
- package/dist/chunk-GVTADDU5.mjs.map +1 -0
- package/dist/chunk-GZIULZH2.mjs +79 -0
- package/dist/chunk-GZIULZH2.mjs.map +1 -0
- package/dist/chunk-HOVTNDHS.mjs +297 -0
- package/dist/chunk-HOVTNDHS.mjs.map +1 -0
- package/dist/chunk-HPM4L4MH.mjs +20 -0
- package/dist/chunk-HPM4L4MH.mjs.map +1 -0
- package/dist/chunk-HSOXY623.mjs +53 -0
- package/dist/chunk-HSOXY623.mjs.map +1 -0
- package/dist/chunk-IH4VU7UP.mjs +31 -0
- package/dist/chunk-IH4VU7UP.mjs.map +1 -0
- package/dist/chunk-JPWRHLXY.mjs +51 -0
- package/dist/chunk-JPWRHLXY.mjs.map +1 -0
- package/dist/chunk-L5KXXMUH.mjs +46 -0
- package/dist/chunk-L5KXXMUH.mjs.map +1 -0
- package/dist/chunk-L5ZI7SPN.mjs +90 -0
- package/dist/chunk-L5ZI7SPN.mjs.map +1 -0
- package/dist/chunk-LGLRWA42.mjs +324 -0
- package/dist/chunk-LGLRWA42.mjs.map +1 -0
- package/dist/chunk-LKTTPV6U.mjs +70 -0
- package/dist/chunk-LKTTPV6U.mjs.map +1 -0
- package/dist/chunk-LONFFS5R.mjs +107 -0
- package/dist/chunk-LONFFS5R.mjs.map +1 -0
- package/dist/chunk-LUHR6633.mjs +54 -0
- package/dist/chunk-LUHR6633.mjs.map +1 -0
- package/dist/chunk-MDXL65W4.mjs +49 -0
- package/dist/chunk-MDXL65W4.mjs.map +1 -0
- package/dist/chunk-N22QIDIK.mjs +25 -0
- package/dist/chunk-N22QIDIK.mjs.map +1 -0
- package/dist/chunk-NBYO2U6Q.mjs +48 -0
- package/dist/chunk-NBYO2U6Q.mjs.map +1 -0
- package/dist/chunk-NPCTXURR.mjs +23 -0
- package/dist/chunk-NPCTXURR.mjs.map +1 -0
- package/dist/chunk-OFGI5FLG.mjs +11 -0
- package/dist/chunk-OFGI5FLG.mjs.map +1 -0
- package/dist/chunk-OGLPG6DF.mjs +18 -0
- package/dist/chunk-OGLPG6DF.mjs.map +1 -0
- package/dist/chunk-OKPGJD64.mjs +41 -0
- package/dist/chunk-OKPGJD64.mjs.map +1 -0
- package/dist/chunk-OQNZEKWO.mjs +24 -0
- package/dist/chunk-OQNZEKWO.mjs.map +1 -0
- package/dist/chunk-OWLQ6U7M.mjs +57 -0
- package/dist/chunk-OWLQ6U7M.mjs.map +1 -0
- package/dist/chunk-P5MN5NGC.mjs +24 -0
- package/dist/chunk-P5MN5NGC.mjs.map +1 -0
- package/dist/chunk-PIRWVOO2.mjs +7 -0
- package/dist/chunk-PIRWVOO2.mjs.map +1 -0
- package/dist/chunk-PR6DFFCE.mjs +94 -0
- package/dist/chunk-PR6DFFCE.mjs.map +1 -0
- package/dist/chunk-QMASVXTD.mjs +40 -0
- package/dist/chunk-QMASVXTD.mjs.map +1 -0
- package/dist/chunk-QNNYTOR7.mjs +142 -0
- package/dist/chunk-QNNYTOR7.mjs.map +1 -0
- package/dist/chunk-RHOK5QZR.mjs +175 -0
- package/dist/chunk-RHOK5QZR.mjs.map +1 -0
- package/dist/chunk-RS7CT7BU.mjs +20 -0
- package/dist/chunk-RS7CT7BU.mjs.map +1 -0
- package/dist/chunk-RUFO75IB.mjs +18 -0
- package/dist/chunk-RUFO75IB.mjs.map +1 -0
- package/dist/chunk-RWGCMC6L.mjs +164 -0
- package/dist/chunk-RWGCMC6L.mjs.map +1 -0
- package/dist/chunk-SCVGZWV7.mjs +35 -0
- package/dist/chunk-SCVGZWV7.mjs.map +1 -0
- package/dist/chunk-SJ4YFZKO.mjs +21 -0
- package/dist/chunk-SJ4YFZKO.mjs.map +1 -0
- package/dist/chunk-SJGQU3OG.mjs +15 -0
- package/dist/chunk-SJGQU3OG.mjs.map +1 -0
- package/dist/chunk-SSROJBD5.mjs +30 -0
- package/dist/chunk-SSROJBD5.mjs.map +1 -0
- package/dist/chunk-SW2OCUH3.mjs +10 -0
- package/dist/chunk-SW2OCUH3.mjs.map +1 -0
- package/dist/chunk-TNZJKUDY.mjs +45 -0
- package/dist/chunk-TNZJKUDY.mjs.map +1 -0
- package/dist/chunk-UXADDXCJ.mjs +68 -0
- package/dist/chunk-UXADDXCJ.mjs.map +1 -0
- package/dist/chunk-UYDZZAEK.mjs +11 -0
- package/dist/chunk-UYDZZAEK.mjs.map +1 -0
- package/dist/chunk-VBZTERRM.mjs +94 -0
- package/dist/chunk-VBZTERRM.mjs.map +1 -0
- package/dist/chunk-WJZFE5NE.mjs +17 -0
- package/dist/chunk-WJZFE5NE.mjs.map +1 -0
- package/dist/chunk-WLTLSV2I.mjs +20 -0
- package/dist/chunk-WLTLSV2I.mjs.map +1 -0
- package/dist/chunk-WOSYMEQL.mjs +60 -0
- package/dist/chunk-WOSYMEQL.mjs.map +1 -0
- package/dist/chunk-WSBULPUZ.mjs +30 -0
- package/dist/chunk-WSBULPUZ.mjs.map +1 -0
- package/dist/chunk-WVTNXVBL.mjs +56 -0
- package/dist/chunk-WVTNXVBL.mjs.map +1 -0
- package/dist/chunk-ZHXKBOK2.mjs +22 -0
- package/dist/chunk-ZHXKBOK2.mjs.map +1 -0
- package/dist/chunk-ZPNFXK7Y.mjs +36 -0
- package/dist/chunk-ZPNFXK7Y.mjs.map +1 -0
- package/dist/data/Condition.mjs +29 -0
- package/dist/data/Condition.mjs.map +1 -0
- package/dist/data/DataProvider.mjs +1 -0
- package/dist/data/DataProvider.mjs.map +1 -0
- package/dist/data/Database.mjs +23 -0
- package/dist/data/Database.mjs.map +1 -0
- package/dist/data/Field.mjs +47 -0
- package/dist/data/Field.mjs.map +1 -0
- package/dist/data/InMemoryGateway.mjs +70 -0
- package/dist/data/InMemoryGateway.mjs.map +1 -0
- package/dist/data/Query.mjs +1 -0
- package/dist/data/Query.mjs.map +1 -0
- package/dist/data/QueryProvider.mjs +1 -0
- package/dist/data/QueryProvider.mjs.map +1 -0
- package/dist/domain/Audit.mjs +36 -0
- package/dist/domain/Audit.mjs.map +1 -0
- package/dist/domain/Child.mjs +54 -0
- package/dist/domain/Child.mjs.map +1 -0
- package/dist/domain/DateTime.mjs +36 -0
- package/dist/domain/DateTime.mjs.map +1 -0
- package/dist/domain/Entity.mjs +71 -0
- package/dist/domain/Entity.mjs.map +1 -0
- package/dist/domain/Repo.mjs +96 -0
- package/dist/domain/Repo.mjs.map +1 -0
- package/dist/domain/Struct.mjs +33 -0
- package/dist/domain/Struct.mjs.map +1 -0
- package/dist/domain/Typo.mjs +114 -0
- package/dist/domain/Typo.mjs.map +1 -0
- package/dist/http/CacheControl.mjs +66 -0
- package/dist/http/CacheControl.mjs.map +1 -0
- package/dist/http/ContentType.mjs +21 -0
- package/dist/http/ContentType.mjs.map +1 -0
- package/dist/http/HttpHeader.mjs +8 -0
- package/dist/http/HttpHeader.mjs.map +1 -0
- package/dist/http/HttpStatus.mjs +25 -0
- package/dist/http/HttpStatus.mjs.map +1 -0
- package/dist/http/HttpVerb.mjs +21 -0
- package/dist/http/HttpVerb.mjs.map +1 -0
- package/dist/http/LocalRequestStore.mjs +29 -0
- package/dist/http/LocalRequestStore.mjs.map +1 -0
- package/dist/http/Request.mjs +1 -0
- package/dist/http/Request.mjs.map +1 -0
- package/dist/http/RequestOptions.mjs +30 -0
- package/dist/http/RequestOptions.mjs.map +1 -0
- package/dist/http/RequestProvider.mjs +1 -0
- package/dist/http/RequestProvider.mjs.map +1 -0
- package/dist/http/Response.mjs +13 -0
- package/dist/http/Response.mjs.map +1 -0
- package/dist/http/RestResult.mjs +34 -0
- package/dist/http/RestResult.mjs.map +1 -0
- package/dist/http/toResponse.mjs +33 -0
- package/dist/http/toResponse.mjs.map +1 -0
- package/dist/index.mjs +115 -3476
- package/dist/index.mjs.map +1 -1
- package/dist/process/App.mjs +30 -0
- package/dist/process/App.mjs.map +1 -0
- package/dist/process/Manage.mjs +47 -0
- package/dist/process/Manage.mjs.map +1 -0
- package/dist/process/Scope.mjs +22 -0
- package/dist/process/Scope.mjs.map +1 -0
- package/dist/process/Search.mjs +31 -0
- package/dist/process/Search.mjs.map +1 -0
- package/dist/process/UseCase.mjs +53 -0
- package/dist/process/UseCase.mjs.map +1 -0
- package/dist/resources/Req.mjs +57 -0
- package/dist/resources/Req.mjs.map +1 -0
- package/dist/security/Jwt.mjs +77 -0
- package/dist/security/Jwt.mjs.map +1 -0
- package/dist/services/Api.mjs +44 -0
- package/dist/services/Api.mjs.map +1 -0
- package/dist/services/ApiGateway.mjs +45 -0
- package/dist/services/ApiGateway.mjs.map +1 -0
- package/dist/services/AxiosProvider.mjs +40 -0
- package/dist/services/AxiosProvider.mjs.map +1 -0
- package/dist/services/MappedRouteGateway.mjs +78 -0
- package/dist/services/MappedRouteGateway.mjs.map +1 -0
- package/dist/services/RouteGateway.mjs +46 -0
- package/dist/services/RouteGateway.mjs.map +1 -0
- package/dist/services/ViewRouteGateway.mjs +79 -0
- package/dist/services/ViewRouteGateway.mjs.map +1 -0
- package/dist/sql/Clause.mjs +24 -0
- package/dist/sql/Clause.mjs.map +1 -0
- package/dist/sql/Column.mjs +37 -0
- package/dist/sql/Column.mjs.map +1 -0
- package/dist/sql/Count.mjs +20 -0
- package/dist/sql/Count.mjs.map +1 -0
- package/dist/sql/Delete.mjs +19 -0
- package/dist/sql/Delete.mjs.map +1 -0
- package/dist/sql/Insert.mjs +21 -0
- package/dist/sql/Insert.mjs.map +1 -0
- package/dist/sql/Join.mjs +8 -0
- package/dist/sql/Join.mjs.map +1 -0
- package/dist/sql/Select.mjs +19 -0
- package/dist/sql/Select.mjs.map +1 -0
- package/dist/sql/SqlQuery.mjs +18 -0
- package/dist/sql/SqlQuery.mjs.map +1 -0
- package/dist/sql/Table.mjs +93 -0
- package/dist/sql/Table.mjs.map +1 -0
- package/dist/sql/TableGateway.mjs +72 -0
- package/dist/sql/TableGateway.mjs.map +1 -0
- package/dist/sql/Update.mjs +21 -0
- package/dist/sql/Update.mjs.map +1 -0
- package/dist/types/AnyKey.mjs +1 -0
- package/dist/types/AnyKey.mjs.map +1 -0
- package/dist/types/Array.mjs +16 -0
- package/dist/types/Array.mjs.map +1 -0
- package/dist/types/Builder.mjs +26 -0
- package/dist/types/Builder.mjs.map +1 -0
- package/dist/types/Cache.mjs +29 -0
- package/dist/types/Cache.mjs.map +1 -0
- package/dist/types/CacheAge.mjs +33 -0
- package/dist/types/CacheAge.mjs.map +1 -0
- package/dist/types/Case.mjs +29 -0
- package/dist/types/Case.mjs.map +1 -0
- package/dist/types/Constructor.mjs +23 -0
- package/dist/types/Constructor.mjs.map +1 -0
- package/dist/types/Context.mjs +28 -0
- package/dist/types/Context.mjs.map +1 -0
- package/dist/types/Currency.mjs +15 -0
- package/dist/types/Currency.mjs.map +1 -0
- package/dist/types/Enum.mjs +24 -0
- package/dist/types/Enum.mjs.map +1 -0
- package/dist/types/Environment.mjs +28 -0
- package/dist/types/Environment.mjs.map +1 -0
- package/dist/types/ErrorOrigin.mjs +1 -0
- package/dist/types/ErrorOrigin.mjs.map +1 -0
- package/dist/types/Exception.mjs +26 -0
- package/dist/types/Exception.mjs.map +1 -0
- package/dist/types/Falsy.mjs +10 -0
- package/dist/types/Falsy.mjs.map +1 -0
- package/dist/types/Func.mjs +8 -0
- package/dist/types/Func.mjs.map +1 -0
- package/dist/types/Gateway.mjs +24 -0
- package/dist/types/Gateway.mjs.map +1 -0
- package/dist/types/Get.mjs +13 -0
- package/dist/types/Get.mjs.map +1 -0
- package/dist/types/Id.mjs +13 -0
- package/dist/types/Id.mjs.map +1 -0
- package/dist/types/IdName.mjs +1 -0
- package/dist/types/IdName.mjs.map +1 -0
- package/dist/types/Identity.mjs +1 -0
- package/dist/types/Identity.mjs.map +1 -0
- package/dist/types/Indexed.mjs +15 -0
- package/dist/types/Indexed.mjs.map +1 -0
- package/dist/types/Is.mjs +42 -0
- package/dist/types/Is.mjs.map +1 -0
- package/dist/types/IsA.mjs +16 -0
- package/dist/types/IsA.mjs.map +1 -0
- package/dist/types/IsDate.mjs +14 -0
- package/dist/types/IsDate.mjs.map +1 -0
- package/dist/types/IsEqual.mjs +30 -0
- package/dist/types/IsEqual.mjs.map +1 -0
- package/dist/types/Json.mjs +29 -0
- package/dist/types/Json.mjs.map +1 -0
- package/dist/types/List.mjs +27 -0
- package/dist/types/List.mjs.map +1 -0
- package/dist/types/Message.mjs +11 -0
- package/dist/types/Message.mjs.map +1 -0
- package/dist/types/Meta.mjs +19 -0
- package/dist/types/Meta.mjs.map +1 -0
- package/dist/types/Nullish.mjs +8 -0
- package/dist/types/Nullish.mjs.map +1 -0
- package/dist/types/Number.mjs +30 -0
- package/dist/types/Number.mjs.map +1 -0
- package/dist/types/Object.mjs +24 -0
- package/dist/types/Object.mjs.map +1 -0
- package/dist/types/PageList.mjs +40 -0
- package/dist/types/PageList.mjs.map +1 -0
- package/dist/types/Parser.mjs +80 -0
- package/dist/types/Parser.mjs.map +1 -0
- package/dist/types/Primitive.mjs +9 -0
- package/dist/types/Primitive.mjs.map +1 -0
- package/dist/types/Repository.mjs +24 -0
- package/dist/types/Repository.mjs.map +1 -0
- package/dist/types/Result.mjs +23 -0
- package/dist/types/Result.mjs.map +1 -0
- package/dist/types/Results.mjs +26 -0
- package/dist/types/Results.mjs.map +1 -0
- package/dist/types/Sort.mjs +10 -0
- package/dist/types/Sort.mjs.map +1 -0
- package/dist/types/Tag.mjs +26 -0
- package/dist/types/Tag.mjs.map +1 -0
- package/dist/types/Template.mjs +21 -0
- package/dist/types/Template.mjs.map +1 -0
- package/dist/types/Text.mjs +21 -0
- package/dist/types/Text.mjs.map +1 -0
- package/dist/types/ToText.mjs +23 -0
- package/dist/types/ToText.mjs.map +1 -0
- package/dist/types/Try.mjs +31 -0
- package/dist/types/Try.mjs.map +1 -0
- package/dist/types/TypeGuard.mjs +1 -0
- package/dist/types/TypeGuard.mjs.map +1 -0
- package/dist/types/Types.mjs +1 -0
- package/dist/types/Types.mjs.map +1 -0
- package/dist/types/Uri.mjs +119 -0
- package/dist/types/Uri.mjs.map +1 -0
- package/dist/types/Uuid.mjs +16 -0
- package/dist/types/Uuid.mjs.map +1 -0
- package/dist/types/Validatable.mjs +13 -0
- package/dist/types/Validatable.mjs.map +1 -0
- package/dist/types/Value.mjs +14 -0
- package/dist/types/Value.mjs.map +1 -0
- package/dist/utils/Base64.mjs +12 -0
- package/dist/utils/Base64.mjs.map +1 -0
- package/dist/utils/Convert.mjs +14 -0
- package/dist/utils/Convert.mjs.map +1 -0
- package/dist/utils/If.mjs +25 -0
- package/dist/utils/If.mjs.map +1 -0
- package/dist/utils/Loading.mjs +11 -0
- package/dist/utils/Loading.mjs.map +1 -0
- package/dist/utils/Log.mjs +21 -0
- package/dist/utils/Log.mjs.map +1 -0
- package/dist/utils/Mapper.mjs +28 -0
- package/dist/utils/Mapper.mjs.map +1 -0
- package/dist/utils/Promise.mjs +35 -0
- package/dist/utils/Promise.mjs.map +1 -0
- package/dist/utils/Property.mjs +13 -0
- package/dist/utils/Property.mjs.map +1 -0
- package/dist/utils/Seconds.mjs +18 -0
- package/dist/utils/Seconds.mjs.map +1 -0
- package/dist/utils/Sentence.mjs +71 -0
- package/dist/utils/Sentence.mjs.map +1 -0
- package/dist/utils/State.mjs +12 -0
- package/dist/utils/State.mjs.map +1 -0
- package/dist/utils/Traverse.mjs +12 -0
- package/dist/utils/Traverse.mjs.map +1 -0
- package/dist/utils/View.mjs +41 -0
- package/dist/utils/View.mjs.map +1 -0
- package/dist/utils/Wait.mjs +17 -0
- package/dist/utils/Wait.mjs.map +1 -0
- package/dist/validation/Contraints.mjs +65 -0
- package/dist/validation/Contraints.mjs.map +1 -0
- package/dist/validation/Validate.mjs +35 -0
- package/dist/validation/Validate.mjs.map +1 -0
- package/dist/validation/When.mjs +31 -0
- package/dist/validation/When.mjs.map +1 -0
- package/package.json +4 -13
|
@@ -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":[]}
|