@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.
- 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 -12
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import {
|
|
2
|
+
asString
|
|
3
|
+
} from "./chunk-BDA5LB4S.mjs";
|
|
4
|
+
|
|
5
|
+
// src/utils/Convert.ts
|
|
6
|
+
var Convert = class {
|
|
7
|
+
constructor(from, to) {
|
|
8
|
+
this.from = from;
|
|
9
|
+
this.to = to;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
var convert = {
|
|
13
|
+
default: new Convert(
|
|
14
|
+
(a) => a,
|
|
15
|
+
(a) => a
|
|
16
|
+
),
|
|
17
|
+
ignore: new Convert(
|
|
18
|
+
() => void 0,
|
|
19
|
+
() => void 0
|
|
20
|
+
),
|
|
21
|
+
toBool: {
|
|
22
|
+
fromNumber: new Convert(
|
|
23
|
+
(b) => b ? 1 : 0,
|
|
24
|
+
(n) => n !== 0
|
|
25
|
+
),
|
|
26
|
+
fromString: new Convert(
|
|
27
|
+
(b) => b ? "true" : "false",
|
|
28
|
+
(s) => s === "true"
|
|
29
|
+
)
|
|
30
|
+
},
|
|
31
|
+
toDate: {
|
|
32
|
+
fromString: new Convert(
|
|
33
|
+
(s) => new Date(s).toISOString(),
|
|
34
|
+
(s) => s
|
|
35
|
+
)
|
|
36
|
+
},
|
|
37
|
+
toNumber: {
|
|
38
|
+
fromString: new Convert(
|
|
39
|
+
(n) => asString(n),
|
|
40
|
+
(s) => parseInt(s)
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export {
|
|
46
|
+
Convert,
|
|
47
|
+
convert
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=chunk-MDXL65W4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/Convert.ts"],"sourcesContent":["import { asString } from '../types/Text';\n\nexport class Convert<From = unknown, To = unknown> {\n constructor(\n public readonly from: (f: From) => To,\n public readonly to: (t: To) => From\n ) {}\n}\n\nexport const convert = {\n default: new Convert<any, any>(\n a => a,\n a => a\n ),\n ignore: new Convert<any, any>(\n () => undefined,\n () => undefined\n ),\n toBool: {\n fromNumber: new Convert<boolean, number>(\n b => (b ? 1 : 0),\n n => n !== 0\n ),\n fromString: new Convert<boolean, string>(\n b => (b ? 'true' : 'false'),\n s => s === 'true'\n ),\n },\n toDate: {\n fromString: new Convert<string, string>(\n s => new Date(s).toISOString(),\n s => s\n ),\n },\n toNumber: {\n fromString: new Convert<number, string>(\n n => asString(n),\n s => parseInt(s)\n ),\n },\n};\n"],"mappings":";;;;;AAEO,IAAM,UAAN,MAA4C;AAAA,EACjD,YACkB,MACA,IAChB;AAFgB;AACA;AAAA,EACf;AACL;AAEO,IAAM,UAAU;AAAA,EACrB,SAAS,IAAI;AAAA,IACX,OAAK;AAAA,IACL,OAAK;AAAA,EACP;AAAA,EACA,QAAQ,IAAI;AAAA,IACV,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA,QAAQ;AAAA,IACN,YAAY,IAAI;AAAA,MACd,OAAM,IAAI,IAAI;AAAA,MACd,OAAK,MAAM;AAAA,IACb;AAAA,IACA,YAAY,IAAI;AAAA,MACd,OAAM,IAAI,SAAS;AAAA,MACnB,OAAK,MAAM;AAAA,IACb;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,YAAY,IAAI;AAAA,MACd,OAAK,IAAI,KAAK,CAAC,EAAE,YAAY;AAAA,MAC7B,OAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,YAAY,IAAI;AAAA,MACd,OAAK,SAAS,CAAC;AAAA,MACf,OAAK,SAAS,CAAC;AAAA,IACjB;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Enum
|
|
3
|
+
} from "./chunk-UXADDXCJ.mjs";
|
|
4
|
+
import {
|
|
5
|
+
ofConstruct
|
|
6
|
+
} from "./chunk-ZPNFXK7Y.mjs";
|
|
7
|
+
|
|
8
|
+
// src/data/Database.ts
|
|
9
|
+
var DefaultProvider = class {
|
|
10
|
+
};
|
|
11
|
+
var Database = class _Database extends Enum {
|
|
12
|
+
constructor(name, provider, options) {
|
|
13
|
+
super(name);
|
|
14
|
+
this.provider = provider;
|
|
15
|
+
this.options = options;
|
|
16
|
+
}
|
|
17
|
+
static Default = new _Database("Default", DefaultProvider);
|
|
18
|
+
provide = () => ofConstruct(this.provider, this);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
DefaultProvider,
|
|
23
|
+
Database
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=chunk-N22QIDIK.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/data/Database.ts"],"sourcesContent":["import { DataProvider } from './DataProvider';\nimport { Enum } from '../types/Enum';\nimport { Constructor, ofConstruct } from '../types/Constructor';\n\nexport type DatabaseOptions = {\n user?: string;\n password?: string;\n host?: string;\n port?: number;\n cluster?: string;\n connectionString?: string;\n maxPoolSize?: number;\n minPoolSize?: number;\n maxIdleTimeMS?: number;\n socketTimeoutMS?: number;\n // Query specific options\n queryTimeoutMS?: number;\n};\n\nexport class DefaultProvider implements DataProvider {}\n\nexport class Database extends Enum {\n static readonly Default = new Database('Default', DefaultProvider);\n\n constructor(\n name: string,\n readonly provider: Constructor<DataProvider> | DataProvider,\n readonly options?: DatabaseOptions\n ) {\n super(name);\n }\n\n provide = <P>(): P => ofConstruct(this.provider, this);\n}\n"],"mappings":";;;;;;;;AAmBO,IAAM,kBAAN,MAA8C;AAAC;AAE/C,IAAM,WAAN,MAAM,kBAAiB,KAAK;AAAA,EAGjC,YACE,MACS,UACA,SACT;AACA,UAAM,IAAI;AAHD;AACA;AAAA,EAGX;AAAA,EARA,OAAgB,UAAU,IAAI,UAAS,WAAW,eAAe;AAAA,EAUjE,UAAU,MAAY,YAAY,KAAK,UAAU,IAAI;AACvD;","names":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import {
|
|
2
|
+
toPageList
|
|
3
|
+
} from "./chunk-RHOK5QZR.mjs";
|
|
4
|
+
import {
|
|
5
|
+
choose
|
|
6
|
+
} from "./chunk-LGLRWA42.mjs";
|
|
7
|
+
import {
|
|
8
|
+
resolve
|
|
9
|
+
} from "./chunk-LUHR6633.mjs";
|
|
10
|
+
|
|
11
|
+
// src/process/Search.ts
|
|
12
|
+
var Search = class {
|
|
13
|
+
constructor(repo) {
|
|
14
|
+
this.repo = repo;
|
|
15
|
+
}
|
|
16
|
+
all(options) {
|
|
17
|
+
return this.repo.all(options);
|
|
18
|
+
}
|
|
19
|
+
byId(id) {
|
|
20
|
+
return this.repo.byId(id);
|
|
21
|
+
}
|
|
22
|
+
byIds(...ids) {
|
|
23
|
+
return this.repo.byIds(...ids);
|
|
24
|
+
}
|
|
25
|
+
byKey(key, options) {
|
|
26
|
+
return this.repo.byKey(key, options);
|
|
27
|
+
}
|
|
28
|
+
query({ query, skip, take }) {
|
|
29
|
+
return this.search(query, { skip, take });
|
|
30
|
+
}
|
|
31
|
+
search(query, options) {
|
|
32
|
+
return choose(query).is.not.empty(
|
|
33
|
+
(q) => q,
|
|
34
|
+
(q) => this.repo.search(q, options)
|
|
35
|
+
).else(() => resolve(toPageList()));
|
|
36
|
+
}
|
|
37
|
+
filter(options) {
|
|
38
|
+
return this.repo.filter(options);
|
|
39
|
+
}
|
|
40
|
+
exists(id) {
|
|
41
|
+
return this.repo.exists(id);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export {
|
|
46
|
+
Search
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=chunk-NBYO2U6Q.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/process/Search.ts"],"sourcesContent":["import { FetchOptions } from '../types/Gateway';\nimport { Repository } from '../types/Repository';\nimport { PageList, toPageList } from '../types/PageList';\nimport { Id, Key } from '../types/Id';\nimport { List } from '../types/List';\nimport { Req } from '../resources/Req';\nimport { JsonValue } from '../types/Json';\nimport { choose } from '../types/Case';\nimport { resolve } from '../utils/Promise';\n\nexport class Search<T, Options = FetchOptions> {\n constructor(protected repo: Repository<T, Options>) {}\n\n all(options?: Options): Promise<PageList<T>> {\n return this.repo.all(options);\n }\n\n byId(id: Id): Promise<T> {\n return this.repo.byId(id);\n }\n\n byIds(...ids: Id[]): Promise<List<T>> {\n return this.repo.byIds(...ids);\n }\n\n byKey(key: Key, options?: Options): Promise<PageList<T>> {\n return this.repo.byKey(key, options);\n }\n\n query({ query, skip, take }: Req): Promise<PageList<T>> {\n return this.search(query, { skip, take } as Options);\n }\n\n search(query: JsonValue, options?: Options): Promise<PageList<T>> {\n return choose(query)\n .is.not.empty(\n q => q,\n q => this.repo.search(q, options)\n )\n .else(() => resolve(toPageList<T>()));\n }\n\n filter(options?: Options): Promise<PageList<T>> {\n return this.repo.filter(options);\n }\n\n exists(id: Id): Promise<boolean> {\n return this.repo.exists(id);\n }\n}\n"],"mappings":";;;;;;;;;;;AAUO,IAAM,SAAN,MAAwC;AAAA,EAC7C,YAAsB,MAA8B;AAA9B;AAAA,EAA+B;AAAA,EAErD,IAAI,SAAyC;AAC3C,WAAO,KAAK,KAAK,IAAI,OAAO;AAAA,EAC9B;AAAA,EAEA,KAAK,IAAoB;AACvB,WAAO,KAAK,KAAK,KAAK,EAAE;AAAA,EAC1B;AAAA,EAEA,SAAS,KAA6B;AACpC,WAAO,KAAK,KAAK,MAAM,GAAG,GAAG;AAAA,EAC/B;AAAA,EAEA,MAAM,KAAU,SAAyC;AACvD,WAAO,KAAK,KAAK,MAAM,KAAK,OAAO;AAAA,EACrC;AAAA,EAEA,MAAM,EAAE,OAAO,MAAM,KAAK,GAA8B;AACtD,WAAO,KAAK,OAAO,OAAO,EAAE,MAAM,KAAK,CAAY;AAAA,EACrD;AAAA,EAEA,OAAO,OAAkB,SAAyC;AAChE,WAAO,OAAO,KAAK,EAChB,GAAG,IAAI;AAAA,MACN,OAAK;AAAA,MACL,OAAK,KAAK,KAAK,OAAO,GAAG,OAAO;AAAA,IAClC,EACC,KAAK,MAAM,QAAQ,WAAc,CAAC,CAAC;AAAA,EACxC;AAAA,EAEA,OAAO,SAAyC;AAC9C,WAAO,KAAK,KAAK,OAAO,OAAO;AAAA,EACjC;AAAA,EAEA,OAAO,IAA0B;AAC/B,WAAO,KAAK,KAAK,OAAO,EAAE;AAAA,EAC5B;AACF;","names":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SqlQuery
|
|
3
|
+
} from "./chunk-WLTLSV2I.mjs";
|
|
4
|
+
import {
|
|
5
|
+
quote
|
|
6
|
+
} from "./chunk-OKPGJD64.mjs";
|
|
7
|
+
|
|
8
|
+
// src/sql/Insert.ts
|
|
9
|
+
var Insert = class extends SqlQuery {
|
|
10
|
+
constructor(table, fields) {
|
|
11
|
+
super(table);
|
|
12
|
+
this.table = table;
|
|
13
|
+
this.fields = fields;
|
|
14
|
+
}
|
|
15
|
+
toString() {
|
|
16
|
+
return `INSERT INTO ${this.table} (${Object.keys(this.fields).join(", ")}) OUTPUT INSERTED.* VALUES (${Object.values(this.fields).map((v) => quote(v)).join(", ")});`;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export {
|
|
21
|
+
Insert
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=chunk-NPCTXURR.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sql/Insert.ts"],"sourcesContent":["import { SqlQuery } from './SqlQuery';\nimport { quote } from './Clause';\nimport { Table } from './Table';\nimport { Json } from '../types/Json';\n\nexport class Insert extends SqlQuery {\n constructor(\n protected table: Table,\n protected fields: Json\n ) {\n super(table);\n }\n\n toString(): string {\n return (\n `INSERT INTO ${this.table} ` +\n `(${Object.keys(this.fields).join(', ')}) OUTPUT INSERTED.* ` +\n `VALUES (${Object.values(this.fields)\n .map(v => quote(v))\n .join(', ')});`\n );\n }\n}\n"],"mappings":";;;;;;;;AAKO,IAAM,SAAN,cAAqB,SAAS;AAAA,EACnC,YACY,OACA,QACV;AACA,UAAM,KAAK;AAHD;AACA;AAAA,EAGZ;AAAA,EAEA,WAAmB;AACjB,WACE,eAAe,KAAK,KAAK,KACrB,OAAO,KAAK,KAAK,MAAM,EAAE,KAAK,IAAI,CAAC,+BAC5B,OAAO,OAAO,KAAK,MAAM,EACjC,IAAI,OAAK,MAAM,CAAC,CAAC,EACjB,KAAK,IAAI,CAAC;AAAA,EAEjB;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/Validatable.ts"],"sourcesContent":["import { isA } from './IsA';\nimport { TypeGuard } from './TypeGuard';\n\nexport interface Validatable {\n isValid: boolean;\n}\n\nexport const isValidatable: TypeGuard<Validatable> = (v?: unknown): v is Validatable => isA<Validatable>(v, 'isValid');\n"],"mappings":";;;;;AAOO,IAAM,gBAAwC,CAAC,MAAkC,IAAiB,GAAG,SAAS;","names":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SqlQuery
|
|
3
|
+
} from "./chunk-WLTLSV2I.mjs";
|
|
4
|
+
import {
|
|
5
|
+
ifGet
|
|
6
|
+
} from "./chunk-SJGQU3OG.mjs";
|
|
7
|
+
|
|
8
|
+
// src/sql/Delete.ts
|
|
9
|
+
var Delete = class extends SqlQuery {
|
|
10
|
+
toString() {
|
|
11
|
+
return `DELETE FROM ${this.table}` + ifGet(this.clauses.length, ` WHERE ${this.clauses.join(" AND ")};`, ";");
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export {
|
|
16
|
+
Delete
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=chunk-OGLPG6DF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sql/Delete.ts"],"sourcesContent":["import { SqlQuery } from './SqlQuery';\nimport { ifGet } from '../types/Get';\n\nexport class Delete extends SqlQuery {\n toString(): string {\n return `DELETE FROM ${this.table}` + ifGet(this.clauses.length, ` WHERE ${this.clauses.join(' AND ')};`, ';');\n }\n}\n"],"mappings":";;;;;;;;AAGO,IAAM,SAAN,cAAqB,SAAS;AAAA,EACnC,WAAmB;AACjB,WAAO,eAAe,KAAK,KAAK,KAAK,MAAM,KAAK,QAAQ,QAAQ,UAAU,KAAK,QAAQ,KAAK,OAAO,CAAC,KAAK,GAAG;AAAA,EAC9G;AACF;","names":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import {
|
|
2
|
+
convert
|
|
3
|
+
} from "./chunk-MDXL65W4.mjs";
|
|
4
|
+
import {
|
|
5
|
+
isA
|
|
6
|
+
} from "./chunk-ZHXKBOK2.mjs";
|
|
7
|
+
import {
|
|
8
|
+
isBoolean,
|
|
9
|
+
isNumber
|
|
10
|
+
} from "./chunk-DEJ7A5PY.mjs";
|
|
11
|
+
|
|
12
|
+
// src/sql/Clause.ts
|
|
13
|
+
var quote = (a) => isNumber(a) || isBoolean(a) || isClause(a) ? a.toString() : `'${a}'`;
|
|
14
|
+
var Clause = class {
|
|
15
|
+
constructor(first, operator, second) {
|
|
16
|
+
this.first = first;
|
|
17
|
+
this.operator = operator;
|
|
18
|
+
this.second = second;
|
|
19
|
+
}
|
|
20
|
+
and = (other) => new ParathesizedClause(this, "AND", other);
|
|
21
|
+
or = (other) => new ParathesizedClause(this, "OR", other);
|
|
22
|
+
toString() {
|
|
23
|
+
return `${this.first} ${this.operator} ${quote(this.second)}`;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
var ParathesizedClause = class extends Clause {
|
|
27
|
+
toString() {
|
|
28
|
+
return `(${this.first} ${this.operator} ${quote(this.second)})`;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
var toClause = (first, operator, second, conv = convert.default) => new Clause(first, operator, conv.from(second));
|
|
32
|
+
var isClause = (c) => isA(c, "and", "or");
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
quote,
|
|
36
|
+
Clause,
|
|
37
|
+
ParathesizedClause,
|
|
38
|
+
toClause,
|
|
39
|
+
isClause
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=chunk-OKPGJD64.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sql/Clause.ts"],"sourcesContent":["import { isBoolean, isNumber } from '../types/Is';\nimport { convert, Convert } from '../utils/Convert';\nimport { TypeGuard } from '../types/TypeGuard';\nimport { isA } from '../types/IsA';\nimport type { Text } from '../types/Text';\n\nexport const quote = (a: unknown): string => (isNumber(a) || isBoolean(a) || isClause(a) ? a.toString() : `'${a as string}'`);\n\nexport class Clause implements Text {\n constructor(\n readonly first: unknown,\n readonly operator: string,\n readonly second: unknown\n ) {}\n\n and = (other: Clause): Clause => new ParathesizedClause(this, 'AND', other);\n or = (other: Clause): Clause => new ParathesizedClause(this, 'OR', other);\n\n toString(): string {\n return `${this.first} ${this.operator} ${quote(this.second)}`;\n }\n}\n\nexport class ParathesizedClause extends Clause {\n toString(): string {\n return `(${this.first} ${this.operator} ${quote(this.second)})`;\n }\n}\n\nexport const toClause = (first: unknown, operator: string, second: unknown, conv: Convert = convert.default): Clause =>\n new Clause(first, operator, conv.from(second));\n\nexport const isClause: TypeGuard<Clause> = (c?: unknown): c is Clause => isA<Clause>(c, 'and', 'or');\n"],"mappings":";;;;;;;;;;;;AAMO,IAAM,QAAQ,CAAC,MAAwB,SAAS,CAAC,KAAK,UAAU,CAAC,KAAK,SAAS,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,CAAW;AAElH,IAAM,SAAN,MAA6B;AAAA,EAClC,YACW,OACA,UACA,QACT;AAHS;AACA;AACA;AAAA,EACR;AAAA,EAEH,MAAM,CAAC,UAA0B,IAAI,mBAAmB,MAAM,OAAO,KAAK;AAAA,EAC1E,KAAK,CAAC,UAA0B,IAAI,mBAAmB,MAAM,MAAM,KAAK;AAAA,EAExE,WAAmB;AACjB,WAAO,GAAG,KAAK,KAAK,IAAI,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,CAAC;AAAA,EAC7D;AACF;AAEO,IAAM,qBAAN,cAAiC,OAAO;AAAA,EAC7C,WAAmB;AACjB,WAAO,IAAI,KAAK,KAAK,IAAI,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,CAAC;AAAA,EAC9D;AACF;AAEO,IAAM,WAAW,CAAC,OAAgB,UAAkB,QAAiB,OAAgB,QAAQ,YAClG,IAAI,OAAO,OAAO,UAAU,KAAK,KAAK,MAAM,CAAC;AAExC,IAAM,WAA8B,CAAC,MAA6B,IAAY,GAAG,OAAO,IAAI;","names":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// src/sql/Join.ts
|
|
2
|
+
var Join = class {
|
|
3
|
+
constructor(first, second, c, c2) {
|
|
4
|
+
this.first = first;
|
|
5
|
+
this.second = second;
|
|
6
|
+
this.c = c;
|
|
7
|
+
this.c2 = c2;
|
|
8
|
+
this.db = this.first.db;
|
|
9
|
+
}
|
|
10
|
+
db;
|
|
11
|
+
on(c, c2) {
|
|
12
|
+
this.c = c;
|
|
13
|
+
this.c2 = c2;
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
toString() {
|
|
17
|
+
return `${this.first} JOIN ${this.second} ON ${this.c} = ${this.c2}`;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
Join
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=chunk-OQNZEKWO.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/sql/Join.ts"],"sourcesContent":["import { Column } from './Column';\nimport { Table } from './Table';\n\nexport class Join {\n readonly db;\n constructor(private first: Table, private second: Table, private c?: Column, private c2?: Column) {\n this.db = this.first.db;\n }\n\n on(c: Column, c2: Column): this {\n this.c = c;\n this.c2 = c2;\n return this;\n }\n\n toString(): string {\n return `${this.first} JOIN ${this.second} ON ${this.c} = ${this.c2}`;\n }\n}\n"],"mappings":";AAGO,IAAM,OAAN,MAAW;AAAA,EAEhB,YAAoB,OAAsB,QAAuB,GAAoB,IAAa;AAA9E;AAAsB;AAAuB;AAAoB;AACnF,SAAK,KAAK,KAAK,MAAM;AAAA,EACvB;AAAA,EAHS;AAAA,EAKT,GAAG,GAAW,IAAkB;AAC9B,SAAK,IAAI;AACT,SAAK,KAAK;AACV,WAAO;AAAA,EACT;AAAA,EAEA,WAAmB;AACjB,WAAO,GAAG,KAAK,KAAK,SAAS,KAAK,MAAM,OAAO,KAAK,CAAC,MAAM,KAAK,EAAE;AAAA,EACpE;AACF;","names":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import {
|
|
2
|
+
asNumber
|
|
3
|
+
} from "./chunk-HPM4L4MH.mjs";
|
|
4
|
+
import {
|
|
5
|
+
choose
|
|
6
|
+
} from "./chunk-LGLRWA42.mjs";
|
|
7
|
+
import {
|
|
8
|
+
asString
|
|
9
|
+
} from "./chunk-BDA5LB4S.mjs";
|
|
10
|
+
import {
|
|
11
|
+
isNumber,
|
|
12
|
+
isString
|
|
13
|
+
} from "./chunk-DEJ7A5PY.mjs";
|
|
14
|
+
|
|
15
|
+
// src/types/CacheAge.ts
|
|
16
|
+
var ageNumber = (s) => asNumber(s.replace(/[a-z]/g, ""));
|
|
17
|
+
var cacheAge = {
|
|
18
|
+
toMilliseconds: (ca) => choose(asString(ca)).case(
|
|
19
|
+
(c) => c.endsWith("ms"),
|
|
20
|
+
(c) => ageNumber(c)
|
|
21
|
+
).case(
|
|
22
|
+
(c) => c.endsWith("s"),
|
|
23
|
+
(c) => ageNumber(c) * 1e3
|
|
24
|
+
).case(
|
|
25
|
+
(c) => c.endsWith("m"),
|
|
26
|
+
(c) => ageNumber(c) * 60 * 1e3
|
|
27
|
+
).case(
|
|
28
|
+
(c) => c.endsWith("h"),
|
|
29
|
+
(c) => ageNumber(c) * 3600 * 1e3
|
|
30
|
+
).case(
|
|
31
|
+
(c) => c.endsWith("d"),
|
|
32
|
+
(c) => ageNumber(c) * 24 * 3600 * 1e3
|
|
33
|
+
).else(ca),
|
|
34
|
+
toSeconds: (ca) => choose(asString(ca)).case(
|
|
35
|
+
(c) => c.endsWith("ms"),
|
|
36
|
+
(c) => ageNumber(c) / 1e3
|
|
37
|
+
).case(
|
|
38
|
+
(c) => c.endsWith("s"),
|
|
39
|
+
(c) => ageNumber(c)
|
|
40
|
+
).case(
|
|
41
|
+
(c) => c.endsWith("m"),
|
|
42
|
+
(c) => ageNumber(c) * 60
|
|
43
|
+
).case(
|
|
44
|
+
(c) => c.endsWith("h"),
|
|
45
|
+
(c) => ageNumber(c) * 3600
|
|
46
|
+
).case(
|
|
47
|
+
(c) => c.endsWith("d"),
|
|
48
|
+
(c) => ageNumber(c) * 24 * 3600
|
|
49
|
+
).else(ca)
|
|
50
|
+
};
|
|
51
|
+
var isCacheAge = (ca) => isString(ca) || isNumber(ca);
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
cacheAge,
|
|
55
|
+
isCacheAge
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=chunk-OWLQ6U7M.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/CacheAge.ts"],"sourcesContent":["import { asNumber } from './Number';\nimport { choose } from './Case';\nimport { asString } from './Text';\nimport { isNumber, isString } from './Is';\n\nexport type CacheAge = `${number}${'ms' | 's' | 'm' | 'h' | 'd'}` | number;\n\nconst ageNumber = (s: string): number => asNumber(s.replace(/[a-z]/g, ''));\n\nexport const cacheAge = {\n toMilliseconds: (ca: CacheAge): number =>\n choose(asString(ca))\n .case(\n c => c.endsWith('ms'),\n c => ageNumber(c)\n )\n .case(\n c => c.endsWith('s'),\n c => ageNumber(c) * 1000\n )\n .case(\n c => c.endsWith('m'),\n c => ageNumber(c) * 60 * 1000\n )\n .case(\n c => c.endsWith('h'),\n c => ageNumber(c) * 3600 * 1000\n )\n .case(\n c => c.endsWith('d'),\n c => ageNumber(c) * 24 * 3600 * 1000\n )\n .else(ca as number),\n\n toSeconds: (ca: CacheAge): number =>\n choose(asString(ca))\n .case(\n c => c.endsWith('ms'),\n c => ageNumber(c) / 1000\n )\n .case(\n c => c.endsWith('s'),\n c => ageNumber(c)\n )\n .case(\n c => c.endsWith('m'),\n c => ageNumber(c) * 60\n )\n .case(\n c => c.endsWith('h'),\n c => ageNumber(c) * 3600\n )\n .case(\n c => c.endsWith('d'),\n c => ageNumber(c) * 24 * 3600\n )\n .else(ca as number),\n};\n\nexport const isCacheAge = (ca?: unknown): ca is CacheAge => isString(ca) || isNumber(ca);\n"],"mappings":";;;;;;;;;;;;;;;AAOA,IAAM,YAAY,CAAC,MAAsB,SAAS,EAAE,QAAQ,UAAU,EAAE,CAAC;AAElE,IAAM,WAAW;AAAA,EACtB,gBAAgB,CAAC,OACf,OAAO,SAAS,EAAE,CAAC,EAChB;AAAA,IACC,OAAK,EAAE,SAAS,IAAI;AAAA,IACpB,OAAK,UAAU,CAAC;AAAA,EAClB,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI;AAAA,EACtB,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI,KAAK;AAAA,EAC3B,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI,OAAO;AAAA,EAC7B,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI,KAAK,OAAO;AAAA,EAClC,EACC,KAAK,EAAY;AAAA,EAEtB,WAAW,CAAC,OACV,OAAO,SAAS,EAAE,CAAC,EAChB;AAAA,IACC,OAAK,EAAE,SAAS,IAAI;AAAA,IACpB,OAAK,UAAU,CAAC,IAAI;AAAA,EACtB,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC;AAAA,EAClB,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI;AAAA,EACtB,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI;AAAA,EACtB,EACC;AAAA,IACC,OAAK,EAAE,SAAS,GAAG;AAAA,IACnB,OAAK,UAAU,CAAC,IAAI,KAAK;AAAA,EAC3B,EACC,KAAK,EAAY;AACxB;AAEO,IAAM,aAAa,CAAC,OAAiC,SAAS,EAAE,KAAK,SAAS,EAAE;","names":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ifTrue,
|
|
3
|
+
toList
|
|
4
|
+
} from "./chunk-HOVTNDHS.mjs";
|
|
5
|
+
|
|
6
|
+
// src/utils/Seconds.ts
|
|
7
|
+
var seconds = {
|
|
8
|
+
toDuration: (s) => {
|
|
9
|
+
const seconds2 = s % 60;
|
|
10
|
+
const minutes = Math.floor(s / 60) % 60;
|
|
11
|
+
const hours = Math.floor(s / 3600) % 24;
|
|
12
|
+
const days = Math.floor(s / 86400);
|
|
13
|
+
return { days, hours, minutes, seconds: seconds2 };
|
|
14
|
+
},
|
|
15
|
+
toText: (s) => {
|
|
16
|
+
const { days, hours, minutes, seconds: secs } = seconds.toDuration(s);
|
|
17
|
+
return toList(ifTrue(days, `${days}d`), ifTrue(hours, `${hours}h`), ifTrue(minutes, `${minutes}m`), ifTrue(days + hours + minutes === 0, `${secs}s`)).mapDefined((s2) => s2).join(" ");
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
seconds
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=chunk-P5MN5NGC.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/Seconds.ts"],"sourcesContent":["import { ifTrue } from './If';\nimport { toList } from '../types/List';\n\nexport const seconds = {\n toDuration: (s: number) => {\n const seconds = s % 60;\n const minutes = Math.floor(s / 60) % 60;\n const hours = Math.floor(s / 3600) % 24;\n const days = Math.floor(s / 86400);\n return { days, hours, minutes, seconds };\n },\n\n toText: (s: number): string => {\n const { days, hours, minutes, seconds: secs } = seconds.toDuration(s);\n return toList(ifTrue(days, `${days}d`), ifTrue(hours, `${hours}h`), ifTrue(minutes, `${minutes}m`), ifTrue(days + hours + minutes === 0, `${secs}s`))\n .mapDefined(s => s)\n .join(' ');\n },\n};\n"],"mappings":";;;;;;AAGO,IAAM,UAAU;AAAA,EACrB,YAAY,CAAC,MAAc;AACzB,UAAMA,WAAU,IAAI;AACpB,UAAM,UAAU,KAAK,MAAM,IAAI,EAAE,IAAI;AACrC,UAAM,QAAQ,KAAK,MAAM,IAAI,IAAI,IAAI;AACrC,UAAM,OAAO,KAAK,MAAM,IAAI,KAAK;AACjC,WAAO,EAAE,MAAM,OAAO,SAAS,SAAAA,SAAQ;AAAA,EACzC;AAAA,EAEA,QAAQ,CAAC,MAAsB;AAC7B,UAAM,EAAE,MAAM,OAAO,SAAS,SAAS,KAAK,IAAI,QAAQ,WAAW,CAAC;AACpE,WAAO,OAAO,OAAO,MAAM,GAAG,IAAI,GAAG,GAAG,OAAO,OAAO,GAAG,KAAK,GAAG,GAAG,OAAO,SAAS,GAAG,OAAO,GAAG,GAAG,OAAO,OAAO,QAAQ,YAAY,GAAG,GAAG,IAAI,GAAG,CAAC,EACjJ,WAAW,CAAAC,OAAKA,EAAC,EACjB,KAAK,GAAG;AAAA,EACb;AACF;","names":["seconds","s"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/Func.ts"],"sourcesContent":["export type Func<T, Args = unknown> = (...args: Args[]) => T;\n\nexport const isFunc = <T, Args>(o?: unknown): o is (...params: Args[]) => T => !!o && typeof o === 'function';\n"],"mappings":";AAEO,IAAM,SAAS,CAAU,MAA+C,CAAC,CAAC,KAAK,OAAO,MAAM;","names":[]}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import {
|
|
2
|
+
text
|
|
3
|
+
} from "./chunk-RWGCMC6L.mjs";
|
|
4
|
+
|
|
5
|
+
// src/types/Context.ts
|
|
6
|
+
var DotEnvContext = class {
|
|
7
|
+
domain = process.env.DOMAIN ?? "easy";
|
|
8
|
+
name = process.env.ENVIRONMENT_NAME ?? "";
|
|
9
|
+
host = process.env.HOST ?? "";
|
|
10
|
+
port = Number.parseInt(process.env.PORT ?? "8080");
|
|
11
|
+
app = process.env.APP ?? "";
|
|
12
|
+
get = (key, alt) => {
|
|
13
|
+
const k = text(key).map((k2) => k2.replace(/([a-z])([A-Z])/g, "$1 $2")).snake.toString();
|
|
14
|
+
return process.env[k] ?? alt;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
var BaseRequestContext = class {
|
|
18
|
+
state = {};
|
|
19
|
+
get token() {
|
|
20
|
+
return this.get("token");
|
|
21
|
+
}
|
|
22
|
+
set token(token) {
|
|
23
|
+
this.set("token", token);
|
|
24
|
+
}
|
|
25
|
+
get identity() {
|
|
26
|
+
return this.token;
|
|
27
|
+
}
|
|
28
|
+
get jwt() {
|
|
29
|
+
return this.get("jwt");
|
|
30
|
+
}
|
|
31
|
+
set jwt(jwt) {
|
|
32
|
+
this.set("jwt", jwt);
|
|
33
|
+
}
|
|
34
|
+
get correlationId() {
|
|
35
|
+
return this.get("correlationId");
|
|
36
|
+
}
|
|
37
|
+
set correlationId(id) {
|
|
38
|
+
this.set("correlationId", id);
|
|
39
|
+
}
|
|
40
|
+
get lastError() {
|
|
41
|
+
return this.get("lastError");
|
|
42
|
+
}
|
|
43
|
+
set lastError(error) {
|
|
44
|
+
this.set("lastError", error);
|
|
45
|
+
}
|
|
46
|
+
get(key) {
|
|
47
|
+
return this.state[key];
|
|
48
|
+
}
|
|
49
|
+
set(key, value) {
|
|
50
|
+
return this.state[key] = value;
|
|
51
|
+
}
|
|
52
|
+
create = (f) => f();
|
|
53
|
+
wrap = (f) => f();
|
|
54
|
+
};
|
|
55
|
+
var BaseContext = class extends BaseRequestContext {
|
|
56
|
+
};
|
|
57
|
+
var Context = class {
|
|
58
|
+
constructor(state = {}) {
|
|
59
|
+
this.state = state;
|
|
60
|
+
this.state = {
|
|
61
|
+
...{
|
|
62
|
+
env: new DotEnvContext(),
|
|
63
|
+
request: new BaseRequestContext(),
|
|
64
|
+
other: {}
|
|
65
|
+
},
|
|
66
|
+
...this.state
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
get env() {
|
|
70
|
+
return this.state.env;
|
|
71
|
+
}
|
|
72
|
+
set env(env) {
|
|
73
|
+
this.state.env = env;
|
|
74
|
+
}
|
|
75
|
+
get request() {
|
|
76
|
+
return this.state.request;
|
|
77
|
+
}
|
|
78
|
+
set request(request) {
|
|
79
|
+
this.state.request = request;
|
|
80
|
+
}
|
|
81
|
+
get other() {
|
|
82
|
+
return this.state.other;
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
var ctx = new Context();
|
|
86
|
+
|
|
87
|
+
export {
|
|
88
|
+
DotEnvContext,
|
|
89
|
+
BaseRequestContext,
|
|
90
|
+
BaseContext,
|
|
91
|
+
Context,
|
|
92
|
+
ctx
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=chunk-PR6DFFCE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/Context.ts"],"sourcesContent":["import { Uuid } from './Uuid';\nimport { Identity } from './Identity';\nimport { Optional } from './Types';\n\nimport { text } from './ToText';\n\nexport interface EnvContext {\n readonly domain: string;\n readonly name: string;\n readonly host: string;\n readonly port: number;\n readonly app: string;\n\n get(key: string, alt?: string): Optional<string>;\n}\n\nexport class DotEnvContext implements EnvContext {\n readonly domain = process.env.DOMAIN ?? 'easy';\n readonly name = process.env.ENVIRONMENT_NAME ?? '';\n readonly host = process.env.HOST ?? '';\n readonly port = Number.parseInt(process.env.PORT ?? '8080');\n readonly app = process.env.APP ?? '';\n\n readonly get = (key: string, alt?: string): Optional<string> => {\n const k = text(key)\n .map(k => k.replace(/([a-z])([A-Z])/g, '$1 $2'))\n .snake.toString();\n return process.env[k] ?? alt;\n };\n}\n\nexport interface RequestContext {\n token?: any;\n identity?: Identity;\n jwt: string;\n correlationId?: Uuid;\n lastError?: string;\n lastErrorStack?: string;\n create: (f: () => void) => void;\n\n get<T>(key: string): T;\n\n set<T>(key: string, value: T): T;\n\n wrap<T>(f: () => Promise<T>): Promise<T>;\n}\n\nexport class BaseRequestContext implements RequestContext {\n private state: any = {};\n\n get token(): any {\n return this.get('token');\n }\n\n set token(token: any) {\n this.set('token', token);\n }\n\n get identity(): Identity {\n return this.token as Identity;\n }\n\n get jwt(): string {\n return this.get('jwt');\n }\n\n set jwt(jwt: string) {\n this.set('jwt', jwt);\n }\n\n get correlationId(): Uuid {\n return this.get('correlationId');\n }\n\n set correlationId(id: Uuid) {\n this.set('correlationId', id);\n }\n\n get lastError(): Optional<string> {\n return this.get('lastError');\n }\n\n set lastError(error: Optional<string>) {\n this.set('lastError', error);\n }\n\n public get<T>(key: string): T {\n return this.state[key] as T;\n }\n\n public set<T>(key: string, value: T): T {\n return (this.state[key] = value);\n }\n\n public readonly create = (f: () => void): void => f();\n\n public readonly wrap = <T>(f: () => Promise<T>): Promise<T> => f();\n}\n\n/**\n * @deprecated Renamed to BaseRequestContext\n */\nexport class BaseContext extends BaseRequestContext {}\n\nexport interface Contexts {\n env?: EnvContext;\n request?: RequestContext;\n other?: any;\n}\n\nexport class Context {\n constructor(protected state: Contexts = {}) {\n this.state = {\n ...{\n env: new DotEnvContext(),\n request: new BaseRequestContext(),\n other: {},\n },\n ...this.state,\n };\n }\n\n get env(): EnvContext {\n return this.state.env as EnvContext;\n }\n\n set env(env: EnvContext) {\n this.state.env = env;\n }\n\n get request(): RequestContext {\n return this.state.request as RequestContext;\n }\n\n set request(request: RequestContext) {\n this.state.request = request;\n }\n\n get other(): any {\n return this.state.other;\n }\n}\n\nexport const ctx = new Context();\n"],"mappings":";;;;;AAgBO,IAAM,gBAAN,MAA0C;AAAA,EACtC,SAAS,QAAQ,IAAI,UAAU;AAAA,EAC/B,OAAO,QAAQ,IAAI,oBAAoB;AAAA,EACvC,OAAO,QAAQ,IAAI,QAAQ;AAAA,EAC3B,OAAO,OAAO,SAAS,QAAQ,IAAI,QAAQ,MAAM;AAAA,EACjD,MAAM,QAAQ,IAAI,OAAO;AAAA,EAEzB,MAAM,CAAC,KAAa,QAAmC;AAC9D,UAAM,IAAI,KAAK,GAAG,EACf,IAAI,CAAAA,OAAKA,GAAE,QAAQ,mBAAmB,OAAO,CAAC,EAC9C,MAAM,SAAS;AAClB,WAAO,QAAQ,IAAI,CAAC,KAAK;AAAA,EAC3B;AACF;AAkBO,IAAM,qBAAN,MAAmD;AAAA,EAChD,QAAa,CAAC;AAAA,EAEtB,IAAI,QAAa;AACf,WAAO,KAAK,IAAI,OAAO;AAAA,EACzB;AAAA,EAEA,IAAI,MAAM,OAAY;AACpB,SAAK,IAAI,SAAS,KAAK;AAAA,EACzB;AAAA,EAEA,IAAI,WAAqB;AACvB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,MAAc;AAChB,WAAO,KAAK,IAAI,KAAK;AAAA,EACvB;AAAA,EAEA,IAAI,IAAI,KAAa;AACnB,SAAK,IAAI,OAAO,GAAG;AAAA,EACrB;AAAA,EAEA,IAAI,gBAAsB;AACxB,WAAO,KAAK,IAAI,eAAe;AAAA,EACjC;AAAA,EAEA,IAAI,cAAc,IAAU;AAC1B,SAAK,IAAI,iBAAiB,EAAE;AAAA,EAC9B;AAAA,EAEA,IAAI,YAA8B;AAChC,WAAO,KAAK,IAAI,WAAW;AAAA,EAC7B;AAAA,EAEA,IAAI,UAAU,OAAyB;AACrC,SAAK,IAAI,aAAa,KAAK;AAAA,EAC7B;AAAA,EAEO,IAAO,KAAgB;AAC5B,WAAO,KAAK,MAAM,GAAG;AAAA,EACvB;AAAA,EAEO,IAAO,KAAa,OAAa;AACtC,WAAQ,KAAK,MAAM,GAAG,IAAI;AAAA,EAC5B;AAAA,EAEgB,SAAS,CAAC,MAAwB,EAAE;AAAA,EAEpC,OAAO,CAAI,MAAoC,EAAE;AACnE;AAKO,IAAM,cAAN,cAA0B,mBAAmB;AAAC;AAQ9C,IAAM,UAAN,MAAc;AAAA,EACnB,YAAsB,QAAkB,CAAC,GAAG;AAAtB;AACpB,SAAK,QAAQ;AAAA,MACX,GAAG;AAAA,QACD,KAAK,IAAI,cAAc;AAAA,QACvB,SAAS,IAAI,mBAAmB;AAAA,QAChC,OAAO,CAAC;AAAA,MACV;AAAA,MACA,GAAG,KAAK;AAAA,IACV;AAAA,EACF;AAAA,EAEA,IAAI,MAAkB;AACpB,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEA,IAAI,IAAI,KAAiB;AACvB,SAAK,MAAM,MAAM;AAAA,EACnB;AAAA,EAEA,IAAI,UAA0B;AAC5B,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEA,IAAI,QAAQ,SAAyB;AACnC,SAAK,MAAM,UAAU;AAAA,EACvB;AAAA,EAEA,IAAI,QAAa;AACf,WAAO,KAAK,MAAM;AAAA,EACpB;AACF;AAEO,IAAM,MAAM,IAAI,QAAQ;","names":["k"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
json
|
|
3
|
+
} from "./chunk-LKTTPV6U.mjs";
|
|
4
|
+
import {
|
|
5
|
+
validate
|
|
6
|
+
} from "./chunk-LGLRWA42.mjs";
|
|
7
|
+
import {
|
|
8
|
+
isDefined
|
|
9
|
+
} from "./chunk-DEJ7A5PY.mjs";
|
|
10
|
+
|
|
11
|
+
// src/domain/Struct.ts
|
|
12
|
+
var Struct = class {
|
|
13
|
+
constructor(state = {}) {
|
|
14
|
+
this.state = state;
|
|
15
|
+
}
|
|
16
|
+
get isValid() {
|
|
17
|
+
return validate(this).isValid;
|
|
18
|
+
}
|
|
19
|
+
toJSON() {
|
|
20
|
+
return json.delete(json.parse({ ...this }), "state");
|
|
21
|
+
}
|
|
22
|
+
toString() {
|
|
23
|
+
return this.constructor.name;
|
|
24
|
+
}
|
|
25
|
+
update(_add) {
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
merge(a) {
|
|
29
|
+
return json.merge(this, a);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
function isStruct(s) {
|
|
33
|
+
return isDefined(s) && s instanceof Struct;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export {
|
|
37
|
+
Struct,
|
|
38
|
+
isStruct
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=chunk-QMASVXTD.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/domain/Struct.ts"],"sourcesContent":["import { Validatable } from '../types/Validatable';\nimport { validate } from '../validation/Validate';\nimport { json, Json } from '../types/Json';\nimport { isDefined } from '../types/Is';\n\nexport abstract class Struct implements Validatable {\n constructor(protected readonly state: any = {}) {}\n\n get isValid(): boolean {\n return validate(this).isValid;\n }\n\n toJSON(): Json {\n return json.delete(json.parse({ ...this }), 'state');\n }\n\n toString(): string {\n return this.constructor.name;\n }\n\n update(_add: Json): Struct {\n return this;\n }\n\n protected merge(a: unknown): Json {\n return json.merge(this, a);\n }\n}\n\nexport function isStruct(s?: unknown): s is Struct {\n return isDefined(s) && s instanceof Struct;\n}\n"],"mappings":";;;;;;;;;;;AAKO,IAAe,SAAf,MAA6C;AAAA,EAClD,YAA+B,QAAa,CAAC,GAAG;AAAjB;AAAA,EAAkB;AAAA,EAEjD,IAAI,UAAmB;AACrB,WAAO,SAAS,IAAI,EAAE;AAAA,EACxB;AAAA,EAEA,SAAe;AACb,WAAO,KAAK,OAAO,KAAK,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO;AAAA,EACrD;AAAA,EAEA,WAAmB;AACjB,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,OAAO,MAAoB;AACzB,WAAO;AAAA,EACT;AAAA,EAEU,MAAM,GAAkB;AAChC,WAAO,KAAK,MAAM,MAAM,CAAC;AAAA,EAC3B;AACF;AAEO,SAAS,SAAS,GAA0B;AACjD,SAAO,UAAU,CAAC,KAAK,aAAa;AACtC;","names":[]}
|